:root{--ink:#1a1a1f;--ink-soft:#6b6b76;--ink-faint:#9c9ca6;--bg:#fff;--surface:#fbfbfc;--border:#e8e8ec;--border-strong:#d7d7dd;--accent:#4f46e5;--accent-strong:#3730b8;--accent-soft:#eeecfd;--success:#0e8a52;--success-soft:#e8f7ef;--danger:#d13c2e;--danger-soft:#fdeceb;--warning:#9a6300;--warning-soft:#fbf1dd;--radius-lg:14px;--radius-md:10px;--radius-sm:8px;color:var(--ink);background:var(--bg);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}*{box-sizing:border-box}body{min-width:320px;min-height:100vh;margin:0}button,input{font:inherit}.app-shell{max-width:1160px;min-height:100vh;margin:0 auto;padding:0 32px 64px}.topbar{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;gap:24px;padding:22px 0;display:flex}.brand-block{align-items:center;gap:12px;display:flex}.brand-mark{background:var(--accent);color:#fff;border-radius:9px;justify-content:center;align-items:center;width:34px;height:34px;font-size:15px;font-weight:700;display:grid}.eyebrow,.section-kicker{color:var(--ink-faint);letter-spacing:.04em;text-transform:uppercase;margin:0 0 4px;font-size:11px;font-weight:600}h1{margin-bottom:0;font-size:16px;font-weight:700;line-height:1.2}h2{letter-spacing:-.01em;margin:0 0 6px;font-size:24px;font-weight:700;line-height:1.2}h3{margin-bottom:0;font-size:15px;font-weight:700}h4{margin:0;font-size:15px;font-weight:700}p{margin-top:0}.tab-list{gap:4px;display:flex}.tab-item{color:var(--ink-soft);cursor:pointer;background:0 0;border:none;border-radius:999px;align-items:center;gap:7px;min-height:34px;padding:0 14px;font-size:13.5px;font-weight:600;transition:background .15s,color .15s;display:inline-flex}.tab-item:hover{background:var(--surface);color:var(--ink)}.tab-item.active{background:var(--accent-soft);color:var(--accent-strong)}.icon-button{border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--ink-soft);cursor:pointer;background:0 0;justify-content:center;align-items:center;width:34px;height:34px;transition:border-color .15s,color .15s;display:grid}.icon-button:hover{border-color:var(--border-strong);color:var(--ink)}.name-preview{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);justify-content:space-between;align-items:center;gap:16px;margin-top:20px;padding:16px 20px;display:flex}.name-preview strong{overflow-wrap:anywhere;font-family:JetBrains Mono,Segoe UI Mono,ui-monospace,SFMono-Regular,Consolas,monospace;font-size:16px;display:block}.badge{border-radius:999px;flex:none;align-items:center;gap:6px;min-height:30px;padding:0 12px;font-size:12.5px;font-weight:700;display:inline-flex}.badge.ok{background:var(--success-soft);color:var(--success)}.badge.danger{background:var(--danger-soft);color:var(--danger)}.workspace{padding-top:32px}.pane-heading{margin-bottom:24px}.pane-heading-row{justify-content:space-between;align-items:flex-start;gap:16px;display:flex}.pane-subtitle{color:var(--ink-soft);max-width:560px;margin-top:2px;font-size:14px;line-height:1.5}.panel{background:var(--bg);border:1px solid var(--border);border-radius:var(--radius-lg);padding:24px}.muted-text{color:var(--ink-soft);line-height:1.5}.standard-card h3{margin:2px 0 6px;font-size:19px}dl{border-top:1px solid var(--border);gap:12px;margin:20px 0 0;padding-top:18px;display:grid}dl div{justify-content:space-between;align-items:center;display:flex}dt{color:var(--ink-soft);font-size:13.5px}dd{margin:0;font-weight:700}.builder-layout{grid-template-columns:minmax(0,1fr) 300px;align-items:start;gap:28px;display:grid}.field-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;display:grid}.field{gap:6px;display:grid}.field span{color:var(--ink);justify-content:space-between;align-items:center;font-size:13.5px;font-weight:600;display:flex}.field small{color:var(--ink-faint);letter-spacing:.03em;text-transform:uppercase;font-size:10.5px;font-weight:700}.field input{border:1px solid var(--border-strong);border-radius:var(--radius-sm);outline:none;width:100%;min-height:40px;padding:0 12px;transition:border-color .15s,box-shadow .15s}.field input:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.field input.has-error{border-color:var(--danger)}.field-issue{margin:0;font-size:12px;line-height:1.4}.field-issue.error{color:var(--danger)}.field-issue.warning{color:var(--warning)}.findings-panel{position:sticky;top:20px}.empty-state{color:var(--success);align-items:center;gap:10px;margin-top:14px;display:flex}.empty-state p{color:var(--ink-soft);margin-bottom:0}.issue-list{gap:8px;margin:14px 0 0;padding:0;list-style:none;display:grid}.issue-list li{border-radius:var(--radius-sm);align-items:flex-start;gap:8px;padding:10px 12px;font-size:13px;line-height:1.4;display:flex}.issue-list .error{background:var(--danger-soft);color:var(--danger)}.issue-list .warning{background:var(--warning-soft);color:var(--warning)}.muted-pill{background:var(--surface);border:1px solid var(--border);color:var(--ink-soft);border-radius:999px;flex:none;padding:6px 12px;font-size:12.5px;font-weight:700}.database-layout{grid-template-columns:minmax(260px,.4fr) minmax(0,.6fr);gap:20px;display:grid}.field-map{gap:6px;display:grid}.field-map-item{border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--ink);cursor:pointer;text-align:left;background:0 0;justify-content:space-between;align-items:center;gap:14px;width:100%;min-height:54px;padding:10px 14px;transition:border-color .15s,background .15s;display:flex}.field-map-item:disabled{color:var(--ink-faint);cursor:default;opacity:.6}.field-map-item.selected{background:var(--accent-soft);border-color:var(--accent)}.field-map-item span{gap:2px;min-width:0;display:grid}.field-map-item strong{font-size:13.5px}.field-map-item small{color:var(--ink-soft);text-overflow:ellipsis;white-space:nowrap;font-size:12px;overflow:hidden}.field-map-item em{background:var(--surface);border:1px solid var(--border);color:var(--ink-soft);border-radius:999px;flex:none;padding:4px 9px;font-size:11px;font-style:normal;font-weight:700}.field-map-item.selected em{background:var(--accent);border-color:var(--accent);color:#fff}.catalog-browser{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);min-width:0;padding:18px}.catalog-title{justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:14px;display:flex}.catalog-title span{color:var(--ink-soft);flex:none;font-size:12.5px;font-weight:700}.catalog-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;max-height:420px;padding-right:4px;display:grid;overflow:auto}.field-map-note{margin-top:10px;padding:0 4px}.catalog-edit-list{gap:8px;margin-bottom:14px;display:grid}.catalog-edit-row{grid-template-columns:110px minmax(0,1fr) auto;align-items:center;gap:8px;display:grid}.catalog-edit-row .cell-input{background:var(--bg);border-color:var(--border-strong);width:100%}.catalog-label-input{font-family:inherit!important}.icon-button.danger:hover{border-color:var(--danger);color:var(--danger)}.catalog-entry{background:var(--bg);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--ink);cursor:pointer;text-align:left;gap:4px;min-height:78px;padding:11px 13px;transition:border-color .15s;display:grid}.catalog-entry:hover{border-color:var(--accent)}.catalog-entry strong{color:var(--accent-strong);font-family:JetBrains Mono,Segoe UI Mono,ui-monospace,SFMono-Regular,Consolas,monospace;font-size:15.5px}.catalog-entry span{font-size:13px;line-height:1.28}.catalog-entry small{color:var(--ink-faint);font-size:11.5px;font-weight:600}.folder-line{color:var(--ink-soft);align-items:center;gap:10px;margin-bottom:18px;font-size:13.5px;display:flex}.folder-line strong{color:var(--ink)}.link-button{color:var(--accent);cursor:pointer;background:0 0;border:none;padding:0;font-size:13px;font-weight:600;text-decoration:underline}.link-button:disabled{color:var(--ink-faint);cursor:not-allowed}.onboarding-card{background:var(--surface);border:1px dashed var(--border-strong);border-radius:var(--radius-lg);grid-template-columns:auto 1fr auto;align-items:center;gap:16px;margin-bottom:18px;padding:20px 24px;display:grid}.onboarding-icon{color:var(--accent)}.onboarding-card h3{margin-bottom:4px}.onboarding-card .hint-text{max-width:480px}@media (width<=780px){.onboarding-card{grid-template-columns:1fr;justify-items:start}}.primary-button{background:var(--accent);border-radius:var(--radius-sm);color:#fff;cursor:pointer;border:none;flex:none;align-items:center;gap:8px;min-height:38px;padding:0 16px;font-size:13.5px;font-weight:600;transition:background .15s;display:inline-flex}.primary-button:hover{background:var(--accent-strong)}.primary-button:disabled{background:var(--border-strong);color:var(--ink-faint);cursor:not-allowed}.hint-text{color:var(--ink-soft);margin:0;font-size:13.5px;line-height:1.5}.hint-text.error-text{color:var(--danger);font-weight:600}.compliance-bar{align-items:center;gap:12px;margin-bottom:16px;display:flex}.compliance-bar>span:first-child{color:var(--ink-soft);flex:none;font-size:13px}.compliance-bar strong{color:var(--ink)}.compliance-track{background:var(--border);border-radius:999px;flex:auto;max-width:220px;height:6px;overflow:hidden}.compliance-fill{background:var(--success);border-radius:999px;height:100%;transition:width .2s}.compliance-percent{color:var(--ink-soft);flex:none;font-size:13px;font-weight:700}.status-icon.ok{color:var(--success)}.status-icon.danger{color:var(--danger)}.cell-input{background:0 0;border:1px solid #0000;border-radius:6px;outline:none;width:110px;min-height:32px;padding:0 8px;font-family:JetBrains Mono,Segoe UI Mono,ui-monospace,SFMono-Regular,Consolas,monospace;font-size:12.5px;transition:border-color .15s,background .15s}.cell-input:hover{border-color:var(--border-strong)}.cell-input:focus{background:var(--bg);border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.cell-input.has-error{border-color:var(--danger)}.grid-table th{white-space:nowrap}.table-panel{padding:8px}.table-wrap{overflow-x:auto}table{border-collapse:collapse;width:100%;min-width:760px}th,td{border-bottom:1px solid var(--border);text-align:left;vertical-align:middle;padding:12px 14px}th{color:var(--ink-faint);letter-spacing:.04em;text-transform:uppercase;font-size:11px;font-weight:700}td{font-size:13.5px}tbody tr:last-child td{border-bottom:none}.mono-cell{font-family:JetBrains Mono,Segoe UI Mono,ui-monospace,SFMono-Regular,Consolas,monospace;font-size:12.5px}.dot{border-radius:999px;width:8px;height:8px;margin-right:8px;display:inline-block}.dot.ok{background:var(--success)}.dot.danger{background:var(--danger)}.text-button{border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--ink);cursor:pointer;background:0 0;align-items:center;gap:6px;min-height:32px;padding:0 12px;font-size:13px;font-weight:600;transition:border-color .15s,color .15s;display:inline-flex}.text-button:hover{border-color:var(--accent);color:var(--accent-strong)}@media (width<=980px){.builder-layout,.database-layout{grid-template-columns:1fr}.findings-panel{position:static}.field-grid,.catalog-grid{grid-template-columns:1fr}}@media (width<=640px){.app-shell{padding:0 18px 48px}.topbar{flex-direction:column;align-items:flex-start;gap:14px}.tab-list{flex-wrap:wrap}.name-preview,.pane-heading-row{flex-direction:column;align-items:stretch}.badge{justify-content:center;width:100%}}.empty-select{color:var(--ink-faint)}.domain-toggle{background:var(--surface);border:1px solid var(--border);border-radius:999px;gap:4px;margin-bottom:20px;padding:4px;display:inline-flex}.domain-toggle-item{color:var(--ink-soft);cursor:pointer;background:0 0;border:none;border-radius:999px;align-items:center;gap:7px;min-height:34px;padding:0 16px;font-size:13px;font-weight:600;transition:background .15s,color .15s;display:inline-flex}.domain-toggle-item.active{background:var(--accent);color:#fff}.example-panel{margin-bottom:20px}.example-name{flex-wrap:wrap;gap:0;margin:6px 0 8px;font-family:JetBrains Mono,Segoe UI Mono,ui-monospace,SFMono-Regular,Consolas,monospace;font-size:20px;font-weight:700;display:flex}.example-segment{color:var(--accent-strong)}.example-separator{color:var(--ink-faint);padding:0 2px}.reference-list{gap:4px;margin-top:14px;display:grid}.reference-row{border-bottom:1px solid var(--border);grid-template-columns:200px minmax(0,1fr) auto;align-items:center;gap:4px 16px;padding:14px 0;display:grid}.reference-row:last-child{border-bottom:none}.reference-name{align-items:center;gap:10px;display:flex}.reference-row .hint-text{margin:0}.reference-example{color:var(--accent-strong);justify-self:end;font-size:13px}.requirement-pill{letter-spacing:.02em;text-transform:uppercase;border-radius:999px;padding:3px 9px;font-size:10.5px;font-weight:700}.requirement-pill.required{background:var(--accent-soft);color:var(--accent-strong)}.requirement-pill.optional{background:var(--surface);border:1px solid var(--border);color:var(--ink-soft)}.requirement-pill.metadata{background:var(--warning-soft);color:var(--warning)}@media (width<=780px){.reference-row{grid-template-columns:1fr}.reference-example{justify-self:start}}.sync-badge{border-radius:999px;flex:none;align-items:center;gap:6px;min-height:30px;padding:0 12px;font-size:12px;font-weight:700;display:inline-flex}.sync-badge.ok{background:var(--success-soft);color:var(--success)}.sync-badge.off{background:var(--warning-soft);color:var(--warning)}.project-bar{flex-wrap:wrap;align-items:center;gap:10px;margin-bottom:18px;display:flex}.project-name-input{max-width:260px}.project-open-select{max-width:220px}.table-toolbar{flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:12px;display:flex}.toolbar-search{min-width:180px;max-width:260px}.bulk-bar{flex-wrap:wrap;align-items:center;gap:10px;margin-bottom:12px;display:flex}.confirm-bar{background:var(--warning-soft);border:1px solid var(--warning);border-radius:var(--radius-md);color:var(--warning);flex-wrap:wrap;align-items:center;gap:10px;margin-bottom:14px;padding:12px 16px;display:flex}.confirm-bar span{flex:260px;font-size:13.5px}.result-bar{border-radius:var(--radius-md);flex-wrap:wrap;align-items:center;gap:10px;margin-bottom:14px;padding:12px 16px;display:flex}.result-bar.ok{background:var(--success-soft);color:var(--success)}.result-bar.warning{background:var(--warning-soft);color:var(--warning)}.result-bar .issue-list{flex-basis:100%}.status-icon.applied{color:var(--accent)}.grid-table input[type=checkbox]{cursor:pointer;width:16px;height:16px}.pane-heading-actions{flex:none;align-items:center;gap:8px;display:flex}.back-link{color:var(--ink-soft);align-items:center;gap:5px;margin-bottom:8px;display:inline-flex}.back-link:hover{color:var(--accent)}.project-layout{grid-template-columns:240px minmax(0,1fr);align-items:start;gap:20px;display:grid}.project-main{min-width:0}.tree-panel{max-height:640px;padding:10px;position:sticky;top:20px;overflow-y:auto}.file-tree{gap:2px;display:grid}.tree-node{border-radius:var(--radius-sm);color:var(--ink);cursor:pointer;text-align:left;background:0 0;border:none;align-items:center;gap:6px;width:100%;min-height:32px;padding:0 8px;font-size:13px;display:flex}.tree-node:hover{background:var(--surface)}.tree-node.active{background:var(--accent-soft);color:var(--accent-strong);font-weight:600}.tree-toggle,.tree-toggle-spacer{color:var(--ink-faint);flex:none;justify-content:center;align-items:center;width:14px;display:inline-flex}.tree-name{text-overflow:ellipsis;white-space:nowrap;flex:auto;overflow:hidden}.tree-count{color:var(--ink-faint);flex:none;font-size:11.5px;font-weight:700}.tree-node.active .tree-count{color:var(--accent-strong)}.new-project-bar{flex-wrap:wrap;align-items:center;gap:10px;margin-bottom:18px;display:flex}.home-toolbar{justify-content:space-between;align-items:center;gap:10px;margin-bottom:16px;display:flex}.view-toggle{gap:4px;display:flex}.icon-button.active{border-color:var(--accent);color:var(--accent)}.project-gallery{grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:14px;display:grid}.project-card{background:var(--bg);border:1px solid var(--border);border-radius:var(--radius-lg);cursor:pointer;text-align:left;gap:6px;padding:18px;transition:border-color .15s;display:grid}.project-card:hover{border-color:var(--accent)}.project-card-header{color:var(--accent);justify-content:space-between;align-items:center;margin-bottom:4px;display:flex}.project-card-delete{border-radius:var(--radius-sm);color:var(--ink-faint);justify-content:center;align-items:center;width:26px;height:26px;display:inline-flex}.project-card-delete:hover{background:var(--danger-soft);color:var(--danger)}.project-card strong{font-size:15px}.project-card-date{color:var(--ink-faint)}@media (width<=900px){.project-layout{grid-template-columns:1fr}.tree-panel{max-height:260px;position:static}}
