@import"https://fonts.googleapis.com/css2?family=IBM+Plex+Mono:wght@400;500;600&family=IBM+Plex+Sans:wght@400;500;600;700&display=swap";:root{--ink: #10161f;--ink-soft: #55616f;--ink-faint: #8794a3;--surface: #ffffff;--canvas: #f4f6f8;--rail: #141c26;--rail-hover: #1f2a38;--rail-on: #24364b;--line: #dce2e9;--line-strong: #c2ccd6;--steel: #2c5c8a;--steel-dark: #1f4c75;--steel-soft: #eaf1f8;--pass: #0e7a4b;--pass-bg: #e6f4ec;--warn: #a9691a;--warn-bg: #fdf2e0;--fail: #b3261e;--fail-bg: #fbe9e8;--radius: 6px;--mono: "IBM Plex Mono", ui-monospace, monospace}*{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;font-family:IBM Plex Sans,system-ui,sans-serif;font-size:13px;color:var(--ink);background:var(--canvas);-webkit-font-smoothing:antialiased}a{color:var(--steel);text-decoration:none}a:hover{text-decoration:underline}h1,h2,h3{margin:0;letter-spacing:-.01em}code,.mono{font-family:var(--mono);font-size:12px}code{padding:1px 5px;background:var(--steel-soft);border-radius:3px;color:var(--steel-dark)}input,select,textarea,button{font:inherit;color:inherit}input,select,textarea{padding:6px 9px;border:1px solid var(--line-strong);border-radius:4px;background:#fff;outline:none}input:focus,select:focus,textarea:focus{border-color:var(--steel);box-shadow:0 0 0 3px #2c5c8a24}input[type=checkbox]{padding:0;width:14px;height:14px;accent-color:var(--steel)}input:disabled{background:var(--canvas);color:var(--ink-soft)}.muted{color:var(--ink-faint)}.small{font-size:11px}.nowrap{white-space:nowrap}.strong{font-weight:600}.spacer{flex:1}.spin{animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.btn{display:inline-flex;align-items:center;gap:6px;height:30px;padding:0 11px;border:1px solid var(--line-strong);border-radius:4px;background:#fff;color:var(--ink);font-weight:500;cursor:pointer;white-space:nowrap;text-decoration:none}.btn:hover{background:var(--canvas);text-decoration:none}.btn:disabled{opacity:.55;cursor:default}.btn-primary{background:var(--steel);border-color:var(--steel);color:#fff}.btn-primary:hover{background:var(--steel-dark)}.btn-pass{background:var(--pass);border-color:var(--pass);color:#fff}.btn-pass:hover{background:#0a6a40}.btn-fail{background:#fff;border-color:#e3b3b0;color:var(--fail)}.btn-fail:hover{background:var(--fail-bg)}.icon-btn{display:inline-grid;place-items:center;width:28px;height:28px;padding:0;border:1px solid transparent;border-radius:4px;background:transparent;color:inherit;cursor:pointer}.icon-btn:hover{background:#7f8c9b24}.shell{display:grid;grid-template-columns:208px minmax(0,1fr);min-height:100%}.rail{position:sticky;top:0;height:100vh;display:flex;flex-direction:column;background:var(--rail);color:#c9d3de}.rail-brand{display:flex;align-items:center;gap:10px;padding:16px 16px 14px;border-bottom:1px solid rgba(255,255,255,.07)}.rail-brand strong{display:block;color:#fff;font-size:15px}.rail-brand small{display:block;color:#8696a8;font-size:10px;letter-spacing:.1em;text-transform:uppercase}.rail-logo{width:30px;height:30px;display:grid;place-items:center;border:1.5px solid #9fb4c9;border-radius:6px;color:#fff;font-weight:700}.rail-close{display:none;margin-left:auto;color:#fff}.rail nav{flex:1;padding:6px 10px;overflow-y:auto}.rail-label{margin:16px 8px 6px;color:#6f8094;font-size:10px;font-weight:600;letter-spacing:.12em;text-transform:uppercase}.rail-link{display:flex;align-items:center;gap:10px;padding:8px 10px;margin-bottom:2px;border-radius:5px;color:#c9d3de;font-weight:500}.rail-link:hover{background:var(--rail-hover);color:#fff;text-decoration:none}.rail-link.on{background:var(--rail-on);color:#fff;box-shadow:inset 3px 0 #6fa3d6}.rail-user{display:flex;align-items:center;gap:10px;padding:12px 14px;border-top:1px solid rgba(255,255,255,.07)}.rail-user div{min-width:0;flex:1}.rail-user strong,.rail-user small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.rail-user strong{color:#fff;font-size:12px}.rail-user small{color:#8696a8;font-size:11px;text-transform:capitalize}.rail-user small+small{text-transform:none}.rail-avatar{width:32px;height:32px;flex:none;display:grid;place-items:center;border:1px solid #50647a;border-radius:50%;color:#fff;font-size:11px;font-weight:600}.rail-avatar:hover{text-decoration:none;background:var(--rail-hover)}.rail-user .icon-btn{color:#8696a8}.main{min-width:0}.menu-btn,.rail-scrim{display:none}.page{min-height:100vh}.page-bar{position:sticky;top:0;z-index:5;display:flex;align-items:center;gap:16px;min-height:54px;padding:8px 24px;background:#fff;border-bottom:1px solid var(--line)}.page-bar-title{min-width:0}.page-bar h1{font-size:16px;font-weight:600}.page-bar-actions{margin-left:auto;display:flex;align-items:center;gap:8px;flex-wrap:wrap;justify-content:flex-end}.crumbs{display:flex;flex-wrap:wrap;color:var(--ink-faint);font-size:11px}.crumbs i{margin:0 6px;font-style:normal;opacity:.6}.content{padding:20px 24px 40px;display:grid;gap:16px}.content.narrow{max-width:640px}.card{background:#fff;border:1px solid var(--line);border-radius:var(--radius);overflow:hidden}.card-pad{padding:18px}.card-pad h2{font-size:14px;margin-bottom:12px}.card-head{display:flex;align-items:center;gap:12px;padding:12px 14px;border-bottom:1px solid var(--line)}.card-head h2{display:flex;align-items:center;gap:7px;font-size:13px;font-weight:600}.card-head .btn{margin-left:auto}.hint{margin-left:auto;color:var(--ink-faint);font-size:11px}.section-title{margin:18px 0 8px;font-size:12px;color:var(--ink-soft);text-transform:uppercase;letter-spacing:.06em}.help{margin:0 0 10px;color:var(--ink-soft);font-size:12px;line-height:1.7}.kpis{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px}.kpi{padding:14px 16px;background:#fff;border:1px solid var(--line);border-radius:var(--radius);border-top:3px solid var(--steel)}.kpi span{display:block;color:var(--ink-soft);font-size:11px;text-transform:uppercase;letter-spacing:.05em}.kpi strong{display:block;margin-top:6px;font-size:22px;font-weight:600;font-variant-numeric:tabular-nums}.pill{display:inline-block;padding:2px 8px;border-radius:10px;font-size:11px;font-weight:600;white-space:nowrap}.pill-pass{background:var(--pass-bg);color:var(--pass)}.pill-warn{background:var(--warn-bg);color:var(--warn)}.pill-fail{background:var(--fail-bg);color:var(--fail)}.pill-neutral{background:#eef1f4;color:var(--ink-soft)}.pill-info{background:var(--steel-soft);color:var(--steel)}.progress{display:flex;align-items:center;gap:8px;min-width:120px}.progress-track{flex:1;height:6px;background:#e8edf2;border-radius:3px;overflow:hidden}.progress-track i{display:block;height:100%;background:var(--pass)}.progress-text{color:var(--ink-soft);font-size:11px;font-variant-numeric:tabular-nums}.chips{display:inline-flex;flex-wrap:wrap;gap:4px}.chip{padding:1px 6px;background:var(--steel-soft);border:1px solid #d4e2ef;border-radius:3px;color:var(--steel-dark);font-size:11px}.grid{width:100%;border-collapse:collapse}.grid th{position:sticky;top:0;z-index:1;height:32px;padding:0 10px;background:#f7f9fb;border-bottom:1px solid var(--line);color:var(--ink-soft);font-size:11px;font-weight:600;text-align:left;white-space:nowrap}.grid td{height:32px;padding:5px 10px;border-bottom:1px solid #edf0f3;vertical-align:middle}.grid tbody tr:hover td{background:#f7f9fb}.grid .num{text-align:right;font-variant-numeric:tabular-nums}.grid .check{width:34px;text-align:center}.grid .wrap{white-space:normal;min-width:200px;max-width:420px;line-height:1.4}.grid .sub{display:block;color:var(--ink-faint);font-size:11px;font-weight:400}.grid th .sub{color:var(--ink-faint)}.grid .actions-cell{text-align:right;white-space:nowrap}.grid .actions-cell>*+*{margin-left:8px}.row-link{cursor:pointer;-webkit-user-select:none;user-select:none}.row-selected td{background:var(--steel-soft)!important}.grid-data td{white-space:nowrap;max-width:280px;overflow:hidden;text-overflow:ellipsis;font-family:var(--mono);font-size:12px}.grid-data td.null{color:var(--ink-faint)}.rownum{width:44px;color:var(--ink-faint);text-align:right;font-size:11px!important}.grid td.changed{background:#fff7e0}.grid tbody tr:hover td.changed{background:#fdefc6}.grid td.noted{box-shadow:inset 3px 0 0 var(--fail)}.grid td .before{display:block;color:var(--ink-faint);font-size:10px;text-decoration:line-through}.note-icon{margin-right:4px;color:var(--fail);vertical-align:-1px}.changed-row td{background:#fff7e0}.warn-text{color:var(--fail)!important}.scroll{overflow:auto;max-height:calc(100vh - 230px);background:#fff;border:1px solid var(--line);border-radius:var(--radius)}.legend{display:flex;align-items:center;gap:6px;margin-top:8px}.swatch{display:inline-block;width:12px;height:12px;border-radius:2px;margin-left:10px}.swatch.changed{background:#fff7e0;border:1px solid #ecd9a4;margin-left:0}.swatch.noted{background:#fff;box-shadow:inset 3px 0 0 var(--fail);border:1px solid var(--line)}.object-layout{display:grid;grid-template-columns:200px 1fr;min-height:calc(100vh - 54px)}.table-list{padding:12px 8px;background:#fff;border-right:1px solid var(--line)}.table-list header{display:flex;align-items:center;justify-content:space-between;padding:0 6px 8px;color:var(--ink-soft);font-size:11px;font-weight:600;letter-spacing:.08em;text-transform:uppercase}.table-item{display:flex;align-items:center;gap:8px;width:100%;padding:7px 8px;margin-bottom:2px;border:0;border-radius:4px;background:transparent;color:var(--ink-soft);text-align:left;cursor:pointer}.table-item:hover{background:var(--canvas);color:var(--ink)}.table-item.on{background:var(--steel-soft);color:var(--steel-dark);font-weight:600;box-shadow:inset 3px 0 0 var(--steel)}.table-list-empty{padding:0 8px;font-size:12px}.object-main{min-width:0;padding:0 20px 30px}.tabs{position:sticky;top:54px;z-index:4;display:flex;align-items:center;gap:2px;margin:0 -20px 14px;padding:0 20px;background:var(--canvas);border-bottom:1px solid var(--line)}.tabs button{padding:11px 14px;margin-bottom:-1px;border:0;border-bottom:2px solid transparent;background:none;color:var(--ink-soft);font-weight:500;cursor:pointer}.tabs button:hover{color:var(--ink)}.tabs button.on{color:var(--steel);border-bottom-color:var(--steel);font-weight:600}.tabs-table{margin-left:auto;padding:2px 8px;background:#fff;border:1px solid var(--line);border-radius:4px;color:var(--ink-soft)}.toolbar{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:10px}.card .toolbar{margin:0;padding:10px 14px;border-bottom:1px solid var(--line)}.search{display:flex;align-items:center;gap:6px;padding:0 8px;height:30px;background:#fff;border:1px solid var(--line-strong);border-radius:4px;color:var(--ink-faint)}.search input{border:0;padding:0;width:150px;box-shadow:none}.inline{display:inline-flex;align-items:center;gap:6px;color:var(--ink-soft);white-space:nowrap}.inline select{padding:4px 6px}.segmented{display:inline-flex;padding:2px;background:#e8edf2;border-radius:5px}.segmented button{padding:6px 12px;border:0;border-radius:4px;background:transparent;color:var(--ink-soft);cursor:pointer}.segmented button.on{background:#fff;color:var(--ink);font-weight:600;box-shadow:0 1px 3px #1423321f}.segmented-sm button{padding:4px 9px;font-size:12px}.segmented button span{margin-left:3px;color:var(--ink-faint);font-size:11px}.selection-bar{position:sticky;top:96px;z-index:3;display:flex;align-items:center;gap:8px;margin-bottom:10px;padding:8px 12px;background:var(--steel-soft);border:1px solid #c9dbec;border-radius:var(--radius)}.selection-bar strong{margin-right:8px;color:var(--steel-dark)}.summary{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:10px}.summary span{padding:6px 10px;background:#fff;border:1px solid var(--line);border-radius:4px;color:var(--ink-soft)}.summary strong{color:var(--ink);font-variant-numeric:tabular-nums}.summary .changed-key{background:#fff7e0;border-color:#ecd9a4}.summary .note-key{box-shadow:inset 3px 0 0 var(--fail)}.notice{padding:9px 12px;border:1px solid;border-radius:4px;font-size:12px;line-height:1.5;margin-bottom:10px}.content>.notice{margin-bottom:0}.notice-info{background:var(--steel-soft);border-color:#c9dbec;color:var(--steel-dark)}.notice-pass{background:var(--pass-bg);border-color:#b9dfc9;color:var(--pass)}.notice-warn{background:var(--warn-bg);border-color:#efd5a9;color:var(--warn)}.notice-fail{background:var(--fail-bg);border-color:#efc1be;color:var(--fail)}.empty{padding:34px 20px;text-align:center;color:var(--ink-soft)}.empty strong{display:block;color:var(--ink);font-size:14px;margin-bottom:4px}.empty p{margin:0}.facts{display:grid;grid-template-columns:150px 1fr;gap:8px 14px;margin:0}.facts dt{color:var(--ink-soft)}.facts dd{margin:0;word-break:break-word}.facts-row{grid-template-columns:repeat(5,auto 1fr);padding:14px;align-items:baseline}.backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:50;display:grid;place-items:center;padding:20px;background:#10161f73}.backdrop-drawer{place-items:stretch end;padding:0}.modal{width:min(520px,100%);max-height:calc(100vh - 40px);overflow:auto;background:#fff;border-radius:8px;box-shadow:0 24px 60px #14233240}.modal-wide{width:min(760px,100%)}.modal-head{display:flex;align-items:flex-start;gap:12px;padding:16px 18px;border-bottom:1px solid var(--line)}.modal-head div{flex:1;min-width:0}.modal-head h2{font-size:15px}.modal-head p{margin:4px 0 0;color:var(--ink-soft);font-size:12px}.modal-body{padding:16px 18px 18px}.drawer{width:min(560px,100vw);height:100vh;display:flex;flex-direction:column;background:#fff;box-shadow:-12px 0 40px #14233233}.drawer-body{flex:1;overflow:auto;padding:16px 18px}.drawer-foot{display:flex;align-items:center;gap:8px;margin-top:18px;padding-top:14px;border-top:1px solid var(--line)}.form{display:grid;grid-template-columns:1fr 1fr;gap:12px 14px}.form label{display:grid;gap:5px;color:var(--ink-soft);font-size:12px}.form label small{color:var(--ink-faint);font-size:11px}.form .span-2,.form .notice,.form-actions{grid-column:1 / -1}.form .notice{margin:0}.form-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:4px}.modal-body>.form-actions{margin-top:14px}.file-drop{display:block!important;margin:10px 0;padding:14px;border:1px dashed var(--line-strong);border-radius:4px;background:var(--canvas);color:var(--ink-soft)!important}.file-drop input{display:block;margin-bottom:8px;border:0;padding:0;background:none}.segmented+.file-drop,.segmented+.picker{margin-top:10px}.picker{border:1px solid var(--line);border-radius:4px}.picker-bar{display:flex;align-items:center;gap:8px;padding:8px;background:#f7f9fb}.picker-bar input{flex:1}.picker-list{max-height:240px;overflow:auto;padding:4px 8px;border-top:1px solid var(--line);border-bottom:1px solid var(--line);display:grid;grid-template-columns:repeat(auto-fill,minmax(170px,1fr))}.picker-item{display:flex!important;grid-template-columns:none!important;align-items:center;gap:8px;padding:5px 4px;color:var(--ink)!important;cursor:pointer}.picker-empty{padding:10px 4px}.auth-shell{min-height:100vh;display:grid;grid-template-columns:minmax(360px,1.15fr) minmax(380px,.85fr);background:#eef2f6}.auth-story{display:flex;flex-direction:column;justify-content:center;padding:clamp(40px,7vw,100px);color:#fff;background:radial-gradient(circle at 20% 12%,#3f719f 0,transparent 34%),linear-gradient(145deg,#15202c,#1f3e5b 58%,#28618f)}.auth-brand{margin-bottom:56px;font-weight:700;font-size:13px;letter-spacing:.08em}.auth-story h1{max-width:680px;font-size:clamp(32px,3.6vw,52px);line-height:1.08;letter-spacing:-.03em}.auth-story p{max-width:560px;margin:22px 0 32px;color:#d4e0eb;font-size:15px;line-height:1.65}.auth-flow{display:flex;flex-wrap:wrap;gap:12px;align-items:center;color:#c7d8e7;font-size:11px;letter-spacing:.07em;text-transform:uppercase}.auth-flow span{padding:7px 11px;border:1px solid rgba(255,255,255,.22);border-radius:4px}.auth-flow i{font-style:normal;opacity:.55}.auth-side{display:grid;place-items:center;padding:24px}.auth-card{width:min(400px,100%);padding:32px;background:#fff;border:1px solid var(--line);border-radius:8px;box-shadow:0 18px 55px #1423321f}.auth-card h2{font-size:22px}.auth-card>p{margin:6px 0 22px;color:var(--ink-soft)}.auth-card label{display:grid;gap:6px;margin-bottom:14px;color:var(--ink-soft);font-size:12px}.auth-card input{padding:10px 11px;font-size:14px}.auth-error{min-height:20px;color:var(--fail);font-size:12px}.auth-submit{width:100%;height:40px;justify-content:center;font-size:14px}@media(max-width:1100px){.kpis{grid-template-columns:repeat(3,minmax(0,1fr))}.facts-row{grid-template-columns:auto 1fr}}@media(max-width:860px){.shell{grid-template-columns:1fr}.rail{position:fixed;z-index:60;left:0;width:240px;transform:translate(-100%);transition:transform .2s ease}.rail-open{transform:none}.rail-close{display:inline-grid}.rail-scrim{display:block;position:fixed;top:0;right:0;bottom:0;left:0;z-index:55;background:#10161f73}.menu-btn{display:inline-grid;position:fixed;z-index:6;top:12px;left:10px}.page-bar{padding-left:48px;flex-wrap:wrap}.object-layout{grid-template-columns:1fr}.table-list{display:flex;gap:4px;overflow-x:auto;border-right:0;border-bottom:1px solid var(--line)}.table-list header{padding:7px 6px}.table-item{width:auto;flex:none}.tabs{top:0;overflow-x:auto}.auth-shell{grid-template-columns:1fr}.auth-story{padding:36px 24px}.auth-story h1{font-size:28px}.content{padding:14px 12px 30px}.object-main{padding:0 12px 24px}.tabs{margin:0 -12px 12px;padding:0 12px}.kpis{grid-template-columns:repeat(2,minmax(0,1fr))}.form{grid-template-columns:1fr}.search input{width:130px}}.content-flush{gap:12px}.scope-bar{display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding:10px 12px;background:#fff;border:1px solid var(--line);border-radius:var(--radius)}.scope-bar label{display:inline-flex;align-items:center;gap:7px;color:var(--ink-soft);font-size:12px;font-weight:500}.scope-bar select{min-width:180px;font-weight:500;color:var(--ink)}.scope-sep{color:var(--ink-faint);font-size:16px}.scope-tables{display:flex;flex-wrap:wrap;gap:4px}.scope-table{padding:4px 10px;border:1px solid var(--line-strong);border-radius:4px;background:#fff;color:var(--ink-soft);cursor:pointer}.scope-table:hover{background:var(--canvas);color:var(--ink)}.scope-table.on{background:var(--steel);border-color:var(--steel);color:#fff}.content-flush .scroll{max-height:calc(100vh - 260px)}.kpis-quality{grid-template-columns:repeat(4,minmax(0,1fr))}.kpis-quality .kpi strong{font-size:28px}.kpi small{display:block;margin-top:4px;color:var(--ink-faint);font-size:11px}.kpi-fail{border-top-color:var(--fail)}.kpi-fail strong{color:var(--fail)}.kpi-pass{border-top-color:var(--pass)}.kpi-pass strong{color:var(--pass)}.kpi-warn{border-top-color:var(--warn)}.kpi-warn strong{color:var(--warn)}.kpis-small .kpi{padding:10px 14px;border-top-width:1px}.kpis-small .kpi strong{font-size:16px;margin-top:2px}.fail-text{color:var(--fail)}.pass-text{color:var(--pass)}.warn-strong{color:var(--warn);font-weight:600}.scroll-plain{border:0;border-radius:0;max-height:none}.mini-kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}.mini-kpis div{padding:10px;background:var(--canvas);border:1px solid var(--line);border-radius:4px}.mini-kpis span{display:block;color:var(--ink-soft);font-size:11px}.mini-kpis strong{display:block;margin-top:2px;font-size:18px}.drawer-row{display:flex;align-items:center;justify-content:space-between;gap:10px;margin:12px 0 4px}@media(max-width:860px){.kpis-quality,.mini-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}}.auth-tabs{display:grid;grid-template-columns:1fr 1fr;padding:3px;margin-bottom:24px;background:#eef2f6;border-radius:5px}.auth-tabs button{padding:9px;border:0;border-radius:4px;background:transparent;color:var(--ink-soft);cursor:pointer}.auth-tabs button.on{background:#fff;color:var(--ink);font-weight:600;box-shadow:0 1px 4px #1423321f}.auth-card form>p{margin:6px 0 20px;color:var(--ink-soft);line-height:1.5}.auth-link,.auth-back{padding:0;border:0;background:none;color:var(--steel);font-size:12px;cursor:pointer}.auth-link{display:block;margin:-6px 0 6px auto}.auth-link-center{margin:14px auto 0}.auth-back{margin-bottom:18px}.auth-link:hover,.auth-back:hover{text-decoration:underline}.auth-hint{display:block;margin:-10px 0 12px;color:var(--ink-faint);font-size:11px}.auth-success{margin:8px 0;padding:9px 11px;background:var(--pass-bg);border:1px solid #b9dfc9;border-radius:4px;color:var(--pass);font-size:12px;line-height:1.5}.rail-files{margin:0 10px 8px;border-top:1px solid rgba(255,255,255,.07);border-radius:0 0 5px 5px;padding-top:10px}.import-map{max-height:52vh;margin-bottom:12px}.import-map select{min-width:200px}.row-muted td{color:var(--ink-faint)}.choice{display:flex;gap:10px;align-items:flex-start;padding:10px 12px;margin-bottom:8px;border:1px solid var(--line);border-radius:4px;cursor:pointer}.choice:hover{background:var(--canvas)}.choice strong,.choice small{display:block}.choice small{color:var(--ink-soft);margin-top:2px}.object-tabs{display:flex;flex-wrap:wrap;gap:6px;padding:12px 24px 0}.object-tabs button{padding:8px 18px;border:1px solid var(--line-strong);border-bottom:0;border-radius:6px 6px 0 0;background:#fff;color:var(--ink-soft);font-weight:500;cursor:pointer}.object-tabs button:hover{background:var(--canvas);color:var(--ink)}.object-tabs button.on{background:var(--steel);border-color:var(--steel);color:#fff;font-weight:600}.object-tabs+.content{border-top:2px solid var(--steel);margin-top:0;padding-top:16px}.dash-grid{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,6fr);gap:16px;align-items:stretch}.panel-box{background:#fff;border:1px solid var(--line);border-radius:var(--radius);overflow:hidden}.panel-title{padding:10px 14px;background:var(--steel);color:#fff;font-weight:600;text-align:center;letter-spacing:.02em}.panel-title small{font-weight:400;opacity:.8}.panel-foot{margin:0;padding:8px 14px;border-top:1px solid var(--line);color:var(--ink-faint);font-size:11px}.metric-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:1px;background:var(--line);border-bottom:1px solid var(--line)}.metric-grid>.metric{grid-column:span 2}.metric-grid>.metric:nth-last-child(-n+2){grid-column:span 3}.metric{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;min-height:108px;padding:14px 8px;background:var(--steel-soft);cursor:default;-webkit-user-select:none;user-select:none;text-align:center}.metric:hover,.metric:focus-visible{background:#dde9f5;outline:none;box-shadow:inset 0 0 0 2px var(--steel)}.metric strong{font-size:34px;font-weight:600;line-height:1;font-variant-numeric:tabular-nums}.metric span{color:var(--ink-soft);font-size:12px}.metric-fail strong{color:var(--fail)}.metric-pass strong{color:var(--pass)}.gauge{width:120px;height:72px}.gauge-track{fill:none;stroke:#cbd8e6;stroke-width:12;stroke-linecap:round}.gauge-fill{fill:none;stroke-width:12;stroke-linecap:round}.gauge-pass{stroke:var(--pass)}.gauge-warn{stroke:var(--warn)}.gauge-fail{stroke:var(--fail)}.gauge-value{font:600 20px IBM Plex Sans,sans-serif;fill:var(--ink)}.error-scroll,.details-scroll{max-height:340px}.toolbar-flush{margin:0;padding:10px 14px;border-bottom:1px solid var(--line)}.noted-row td{background:var(--fail-bg)}@media(max-width:1000px){.dash-grid{grid-template-columns:1fr}}@media(max-width:860px){.object-tabs{padding:12px 12px 0}.metric-grid{grid-template-columns:repeat(2,1fr)}.metric-grid>.metric,.metric-grid>.metric:nth-last-child(-n+2){grid-column:span 1}}.summary-filters button{padding:6px 10px;background:#fff;border:1px solid var(--line);border-radius:4px;color:var(--ink-soft);cursor:pointer}.summary-filters button strong{color:var(--ink);font-variant-numeric:tabular-nums}.summary-filters button:hover{border-color:var(--steel)}.summary-filters button.on{box-shadow:0 0 0 2px var(--steel);border-color:var(--steel);color:var(--ink)}.summary-filters button.chip-changed{background:#fff7e0;border-color:#ecd9a4}.summary-filters button.chip-failed{background:var(--fail-bg);border-color:#efc1be}.summary-filters button.chip-passed{background:var(--pass-bg);border-color:#b9dfc9}.summary-filters button.chip-unchecked{background:#eef1f4}.summary-filters button.on{box-shadow:0 0 0 2px var(--steel)}.approve-all{display:flex;margin:4px 0 10px}.approve-all small{margin-left:4px}.grid td.status-changed{background:#fff7e0}.grid tbody tr:hover td.status-changed{background:#fdefc6}.grid td.status-failed{box-shadow:inset 3px 0 0 var(--fail);background:var(--fail-bg)}.grid td.status-unchecked{background:#f1f3f5;color:var(--ink-soft);font-style:italic}.unchecked-icon{margin-right:4px;color:var(--ink-faint);vertical-align:-1px}.swatch.unchecked{background:#f1f3f5;border:1px solid var(--line-strong)}.swatch.passed{background:#fff;border:1px solid var(--line-strong)}.swatch.noted{background:var(--fail-bg)}.grid th.has-filter{vertical-align:top;padding-top:6px;padding-bottom:6px;height:auto}.col-filter{display:block;width:100%;min-width:96px;margin-top:5px;padding:3px 6px;font:400 11px IBM Plex Sans,sans-serif;border:1px solid var(--line-strong);border-radius:3px;background:#fff}.col-filter::placeholder{color:var(--ink-faint)}.grid td.dim{opacity:.38}.mode-switch{margin-left:auto}.mode-switch button{padding:6px 14px;font-weight:600}.mode-switch button.on{background:var(--steel);color:#fff;box-shadow:none}.sql-editor{width:100%;font:400 13px/1.5 var(--mono);padding:10px 12px;-moz-tab-size:2;tab-size:2;white-space:pre;overflow:auto;resize:vertical;background:#fbfcfd}.sql-actions{display:flex;gap:8px;flex-wrap:wrap}.ai-panel{padding:12px;background:var(--steel-soft);border:1px solid #c9dbec;border-radius:var(--radius);display:grid;gap:8px}.ai-panel textarea{width:100%}.ai-head{display:flex;align-items:center;gap:6px;color:var(--steel-dark)}.ai-buttons{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.ai-note{margin:0;padding:8px 10px;background:#fff;border:1px solid var(--line);border-radius:4px;font:400 12px/1.5 IBM Plex Sans,sans-serif;white-space:pre-wrap}.test-result h4{margin:14px 0 6px;font-size:12px;color:var(--ink-soft);text-transform:uppercase;letter-spacing:.06em}.mini-scroll{max-height:190px}.chip-pass{background:var(--pass-bg)!important;border-color:#b9dfc9!important}.chip-fail{background:var(--fail-bg)!important;border-color:#efc1be!important}.sql-show{margin-top:10px}.sql-show summary{cursor:pointer;color:var(--steel);font-size:12px}.sql-show pre{margin:8px 0 0;padding:10px 12px;background:#fbfcfd;border:1px solid var(--line);border-radius:4px;font:400 12px/1.5 var(--mono);overflow:auto}.drawer-wide{width:min(1240px,96vw)}.drawer-wide .content{padding:4px 0 24px}.metrics-bar{display:flex;align-items:center;gap:10px;margin-bottom:4px}.metrics-message{margin:8px 0}.object-name{cursor:pointer}tr.row-link:focus-visible{outline:2px solid var(--steel);outline-offset:-2px}.main{overflow-x:clip}.page-fill{height:100vh;min-height:0;display:flex;flex-direction:column}.page-fill .page-bar{position:static;flex:none}.page-fill .content-flush{flex:1 1 auto;min-height:0;display:flex;flex-direction:column;gap:10px;padding-bottom:14px;overflow-y:auto;overflow-x:hidden}.page-fill .content-flush>*{flex:none}.page-fill .content-flush>div:last-child{flex:1 1 auto;min-height:0;display:flex;flex-direction:column}.page-fill .content-flush>div:last-child>*{flex:none}.page-fill .content-flush>div:last-child>.scroll{flex:1 1 auto;min-height:150px;max-height:none}.page-fill .toolbar{margin-bottom:8px}.help-details{margin:0 0 8px}.help-details summary{cursor:pointer;width:max-content;color:var(--steel);font-size:12px}.help-details .help{margin:6px 0 0}.page-fill .grid .wrap{max-width:560px}@media(max-height:800px){.content{padding:12px 18px 20px;gap:12px}.page-bar{min-height:46px;padding:6px 18px}.scope-bar{padding:7px 10px}.grid td{padding-top:4px;padding-bottom:4px}.kpis-quality .kpi{padding:10px 14px}.kpis-quality .kpi strong{font-size:24px}}@media(min-width:861px)and (max-width:1100px){.shell{grid-template-columns:56px minmax(0,1fr)}.rail-text,.rail-label,.rail-brand>div,.rail-user>div{display:none}.rail-brand{justify-content:center;padding:14px 0}.rail nav{padding:6px}.rail-link{justify-content:center;padding:10px 0}.rail-files{margin:0 6px 8px}.rail-user{flex-direction:column;gap:6px;padding:10px 0}.rail-user .icon-btn{margin:0}}.sql-tag{margin-left:6px;padding:0 5px;border-radius:3px;background:var(--steel-soft);color:var(--steel-dark);font:600 9px IBM Plex Sans,sans-serif;letter-spacing:.06em;vertical-align:1px}.grid tr.row-ruled-out td{background:#fdf3f2}.grid tr.row-ruled-out td.rownum,.grid tr.row-ruled-out td:first-child{box-shadow:inset 3px 0 0 var(--fail)}.summary-filters button.chip-ruledout{background:var(--fail-bg);border-color:#efc1be}.swatch.ruled{background:#fdf3f2;box-shadow:inset 3px 0 0 var(--fail);border:1px solid var(--line)}.qbar{display:flex;align-items:center;gap:8px;min-width:130px}.qbar-track{flex:1;display:flex;height:8px;background:#e8edf2;border-radius:4px;overflow:hidden}.qbar-good{display:block;height:100%;background:var(--pass)}.qbar-bad{display:block;height:100%;background:var(--fail)}.grid tfoot tr.row-total td{background:#f4f7fa;border-top:2px solid var(--line);font-weight:500}.obj-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:12px;padding:12px 14px}.obj-card{border:1px solid var(--line);border-radius:6px;padding:10px 12px;background:#fff;cursor:pointer;display:grid;gap:8px}.obj-card:hover,.obj-card:focus{border-color:var(--steel);outline:none}.obj-card-head{display:flex;justify-content:space-between;gap:8px;align-items:baseline}.obj-card dl{margin:0;display:grid;grid-template-columns:repeat(3,1fr);gap:6px 10px}.obj-card dt{font-size:10px;text-transform:uppercase;letter-spacing:.05em;color:var(--ink-soft)}.obj-card dd{margin:0;font-weight:600;font-variant-numeric:tabular-nums}.rule-outcomes{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:16px;align-items:start}.rule-panel-fail{border-top:3px solid var(--fail)}.rule-panel-pass{border-top:3px solid var(--pass)}.rule-panel-body{max-height:280px}.rule-panel .pad{padding:12px 14px;margin:0}@media(max-width:900px){.rule-outcomes{grid-template-columns:minmax(0,1fr)}}.donuts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}.donut-block{padding:14px 20px 16px}.donut-block+.donut-block{border-left:1px solid var(--line)}.donut-block h3{margin:0 0 8px;font-size:13px;text-transform:uppercase;letter-spacing:.05em;color:var(--ink-soft)}.donut-row{display:flex;align-items:center;gap:22px}.donut{width:124px;height:124px;flex:none}.donut circle{fill:none;stroke-width:15}.donut-bad{stroke:var(--fail)}.donut-good{stroke:var(--pass)}.donut-value{font:600 22px IBM Plex Sans,sans-serif;fill:var(--ink)}.donut-caption{font:400 10px IBM Plex Sans,sans-serif;fill:var(--ink-soft)}.donut-legend{list-style:none;margin:0;padding:0;display:grid;gap:6px;min-width:0}.donut-legend strong{font-size:16px;margin-right:2px}.dot{display:inline-block;width:10px;height:10px;border-radius:50%;margin-right:8px}.dot-pass{background:var(--pass)}.dot-fail{background:var(--fail)}@media(max-width:900px){.donuts{grid-template-columns:minmax(0,1fr)}.donut-block+.donut-block{border-left:0;border-top:1px solid var(--line)}}.kpi-link{cursor:pointer}.kpi-link:hover,.kpi-link:focus{border-color:var(--steel);outline:none}.kpi small{color:var(--ink-soft);font-size:11px}.kpis-small .kpi.kpi-link{background:linear-gradient(135deg,#1f5f99,#2f7fc1);border-color:#1f5f99;color:#fff;padding:14px 18px}.kpis-small .kpi.kpi-link span{color:#cfe3f5;font-size:12px}.kpis-small .kpi.kpi-link strong{font-size:30px;line-height:1.1;margin-top:4px;color:#fff}.kpis-small .kpi.kpi-link small{color:#cfe3f5}.kpis-small .kpi.kpi-link:hover,.kpis-small .kpi.kpi-link:focus{box-shadow:0 2px 10px #1f5f9959;border-color:#174a78}.ai-summary{border-top:3px solid var(--steel)}.ai-summary .card-head h2{display:flex;align-items:center;gap:6px}.ai-summary .pad{padding:10px 14px;margin:0}.ai-body{padding:4px 16px 14px}.ai-headline{font-size:15px;font-weight:600;margin:8px 0 12px}.ai-cols{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;margin-bottom:8px}.ai-body h3{margin:6px 0;font-size:12px;text-transform:uppercase;letter-spacing:.05em;color:var(--ink-soft)}.ai-body ul{margin:0;padding-left:18px;display:grid;gap:4px}@media(max-width:900px){.ai-cols{grid-template-columns:minmax(0,1fr)}}.donut-action{cursor:pointer}.donut-action:hover,.donut-action:focus{background:#f7fafc;outline:none}.donut-hint{text-transform:none;letter-spacing:0;font-weight:400}.drawer-h{margin:4px 0 8px;font-size:12px;text-transform:uppercase;letter-spacing:.05em;color:var(--ink-soft)}.btn-sm{padding:3px 9px;font-size:12px}.ai-headline{font-size:16px}.ai-cols{gap:24px}.clean-list{list-style:none;margin:4px 0 0;padding:0;display:grid;gap:8px}.clean-list li{display:flex;align-items:baseline;gap:10px}.clean-list .pill{flex:none;min-width:56px;text-align:center}.tone-info{color:var(--steel)}.tone-pass{color:var(--pass)}.tone-warn{color:var(--warn)}.tone-fail{color:var(--fail)}.kpi-info{border-top-color:var(--steel)}.kpi-info strong{color:var(--steel)}.btn-ai-off{border-color:#e2c27d;background:var(--warn-bg);color:var(--warn)}.btn-ai-off:hover:not(:disabled){background:#fbefd0}.insight-row{display:grid;grid-template-columns:minmax(300px,5fr) minmax(0,7fr);gap:16px;align-items:stretch}.insight-row-solo{grid-template-columns:minmax(0,1fr)}.insight-row .donuts{grid-template-columns:minmax(0,1fr);align-content:start}.insight-row .donut-block+.donut-block{border-left:0;border-top:1px solid var(--line)}.insight-row-solo .donuts{grid-template-columns:repeat(2,minmax(0,1fr))}.insight-row-solo .donut-block+.donut-block{border-left:1px solid var(--line);border-top:0}.insight-row .donut{width:104px;height:104px}.insight-row .donut-block{padding:12px 18px 14px}@media(max-width:1000px){.insight-row{grid-template-columns:minmax(0,1fr)}}.ai-summary{--ai: #5b3fd0;--ai-soft: #f1edfd;border:1px solid #d9d0f6;border-top:3px solid var(--ai);background:linear-gradient(180deg,#faf8ff,#fff 120px)}.ai-summary .card-head{background:transparent;border-bottom:1px solid #e7e0fa}.ai-summary .card-head h2{color:var(--ai)}.ai-summary .card-head .btn{border-color:#cfc4f3;color:var(--ai)}.ai-summary .ai-headline{color:#2d1f78;background:var(--ai-soft);border-left:4px solid var(--ai);padding:8px 12px;border-radius:4px}.ai-quality h3{color:var(--steel)}.ai-quality ul li::marker{color:var(--steel)}.ai-readiness h3{color:#0b7a75}.ai-readiness ul li::marker{color:#0b7a75}.ai-clean-h{color:var(--warn)}.ai-summary .clean-list li{padding:6px 10px;border-radius:4px;background:#fff;border:1px solid #ece7fa}.ai-summary .ai-cols{grid-template-columns:minmax(0,1fr);gap:10px}.ai-summary .ai-body h3.ai-clean-h{color:var(--warn)}.ai-summary .card-head{padding:8px 14px}.ai-summary .card-head .hint{display:none}.ai-summary .ai-body{padding:10px 14px 12px;font-size:13px}.ai-summary .ai-headline{font-size:14px;margin:0 0 10px;padding:7px 11px}.ai-summary .ai-cols{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-bottom:4px}.ai-summary .ai-cols>div{background:#fff;border:1px solid #ece7fa;border-radius:6px;padding:8px 12px 10px}.ai-summary .ai-quality{border-top:3px solid var(--steel)!important}.ai-summary .ai-readiness{border-top:3px solid #0b7a75!important}.ai-summary .ai-body h3{margin:0 0 4px;font-size:11px}.ai-summary .ai-body ul{gap:3px;padding-left:16px}.ai-summary .ai-clean-h{margin:8px 0 4px}.ai-summary .clean-list{gap:5px}.ai-summary .clean-list li{align-items:center;padding:5px 9px;border-left:3px solid #cfc4f3}.ai-summary .clean-list li:has(.pill-fail){border-left-color:var(--fail)}.ai-summary .clean-list li:has(.pill-warn){border-left-color:#d49a1c}.ai-summary .clean-list .pill{min-width:54px;font-size:10px}.clean-text{display:grid;line-height:1.3;min-width:0}.clean-text small{color:var(--ink-soft);font-size:11px}.insight-row .donut{width:92px;height:92px}.insight-row .donut-value{font-size:20px}.insight-row .donut-block{padding:10px 16px 12px}.insight-row .donut-block h3{margin-bottom:4px}.insight-row .donut-row{gap:16px}.insight-row:not(.insight-row-solo) .donuts{align-content:space-evenly}.num-link{all:unset;cursor:pointer;color:inherit;font:inherit;border-bottom:1px dotted transparent;border-radius:2px}.num-link:hover,.num-link:focus-visible{border-bottom-color:currentColor;background:#2c5c8a14;outline:none}.num-link-block{display:block}.kpi-link .num-link:hover{background:#ffffff2e}.kpi,.obj-card dl>div,.grid td,.donut-legend li{position:relative}.num-link{position:static}.num-link:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;z-index:1}.kpi:has(.num-link),.obj-card dl>div:has(.num-link),.donut-legend li:has(.num-link){cursor:pointer}.kpi:has(.num-link:hover){box-shadow:0 2px 10px #1f293724}.obj-card dl>div:has(.num-link:hover),.donut-legend li:has(.num-link:hover){background:#2c5c8a14;border-radius:4px}.grid td:has(.num-link:hover){background:#2c5c8a14}.num-link:hover,.num-link:focus-visible{background:none}.num-link:hover{border-bottom-color:transparent}.kpi:has(.num-link:hover) strong,.obj-card dl>div:has(.num-link:hover) dd,.grid td:has(.num-link:hover) .num-link,.donut-legend li:has(.num-link:hover) strong{text-decoration:underline dotted;text-underline-offset:3px}.obj-card,.grid tr.row-link{cursor:pointer}.records-toolbar{display:flex;flex-wrap:wrap;gap:10px;align-items:center;margin-bottom:10px}.records-tables{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:12px}.chip-btn{padding:4px 11px;border:1px solid var(--line-strong);border-radius:14px;background:#fff;color:var(--ink-soft);cursor:pointer;font-size:12px}.chip-btn small{margin-left:4px;color:var(--ink-faint)}.chip-btn:hover{border-color:var(--steel)}.chip-btn.on{background:var(--steel);border-color:var(--steel);color:#fff}.chip-btn.on small{color:#cfe3f5}.records-group{margin-bottom:16px}.records-scroll{max-height:60vh}.records-group .grid td.status-failed{background:#fbe9e7;color:var(--fail)}.records-rules{margin-top:18px;padding-top:12px;border-top:3px solid var(--line)}.records-rules-fail{border-top-color:var(--fail)}.records-rules-pass{border-top-color:var(--pass)}.records-rules .drawer-h{display:flex;align-items:center;gap:8px}.kpis-small .kpi.kpi-rate.rate-none{background:linear-gradient(135deg,#5f7387,#7b8ea1);border-color:#5f7387}.kpis-small .kpi.kpi-rate.rate-pass{background:linear-gradient(135deg,#0d7a4b,#1f9d68);border-color:#0d7a4b}.kpis-small .kpi.kpi-rate.rate-warn{background:linear-gradient(135deg,#a8650d,#cf8a1c);border-color:#a8650d}.kpis-small .kpi.kpi-rate.rate-fail{background:linear-gradient(135deg,#a82424,#d04040);border-color:#a82424}.kpis-small .kpi.kpi-rate span,.kpis-small .kpi.kpi-rate small{color:#ffffffd9}.rate-text{font-weight:600}.rate-text-pass{color:var(--pass)}.rate-text-warn{color:var(--warn)}.rate-text-fail{color:var(--fail)}.persona-text{width:100%;margin:10px 0 6px;resize:vertical;line-height:1.45;font:13px/1.45 IBM Plex Sans,sans-serif}.persona-foot{display:flex;align-items:center;gap:10px;margin:6px 0 4px}.persona-on{display:inline-block;width:7px;height:7px;margin-left:6px;border-radius:50%;background:#5b3fd0}.dialect-badge{display:inline-block;padding:1px 8px;border-radius:10px;font-size:11px;font-weight:600;background:var(--steel-soft);color:var(--steel)}.dialect-oracle{background:#fdecea;color:#b4261c}.dialect-sqlite{background:#e7f3ee;color:#0d7a4b}.dialect-postgresql{background:#e8eefb;color:#2c5aa0}.default-pill{margin-left:8px;display:inline-flex;align-items:center;gap:3px}.sqlite-row{display:flex;gap:8px;margin:4px 0}.sqlite-row select{flex:1;min-width:0}.oracle-client{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:10px 14px;border:1px solid #f0d6d2;border-left:4px solid #b4261c;border-radius:6px;background:#fff8f7}.oracle-client p{margin:3px 0 0;font-size:12px}.check-row{display:flex;align-items:center;gap:8px;flex-direction:row}.check-row small{margin-left:4px}.form-field{display:grid;gap:4px;margin-bottom:12px}.label-text{font-size:12px;color:var(--ink-soft)}.form label.check-row{display:flex;flex-direction:row;align-items:flex-start;gap:8px}.form label.check-row input{margin-top:3px;flex:none}.form label.check-row small{display:block;margin:2px 0 0}.oracle-client .mono{word-break:break-all}.oracle-id{display:flex;align-items:center;gap:12px}.oracle-actions{display:flex;flex-direction:column;gap:6px;flex:none}.oracle-client{flex-wrap:wrap}.oracle-client>div:first-child{flex:1;min-width:220px}.oracle-folder{flex-basis:100%;display:flex;gap:8px}.oracle-folder input{flex:1;min-width:0}.project-picker{display:inline-flex;align-items:center;gap:6px}.project-picker span{font-size:12px;color:var(--ink-soft)}.project-picker select{min-width:160px;max-width:260px;font-weight:600}.run-kind{display:inline-block;padding:1px 9px;border-radius:10px;font-size:11px;font-weight:600;background:var(--steel-soft);color:var(--steel)}.run-check{background:#e7f3ee;color:#0d7a4b}.run-output{background:#e8eefb;color:#2c5aa0}.run-live{background:#eef0f3;color:#4b5b6b}.run-sql_test{background:#f1edfd;color:#5b3fd0}.run-export{background:#fdf3df;color:#a8650d}td.strong{font-weight:600}.donut circle.slice{cursor:pointer}.donut circle.slice:hover{stroke-width:18}.drawer-tabs{margin-bottom:12px}.reason-list{margin:0;padding-left:16px;display:grid;gap:2px}.mode-switch button{font-weight:600}.studio{display:grid;grid-template-columns:250px minmax(0,1fr);gap:16px;align-items:start}.studio-list ul{list-style:none;margin:0;padding:6px;display:grid;gap:2px;max-height:60vh;overflow:auto}.studio-list li button{width:100%;text-align:left;padding:7px 9px;border:0;border-radius:5px;background:transparent;cursor:pointer;display:grid;gap:1px}.studio-list li button:hover{background:var(--steel-soft)}.studio-list li button.on{background:var(--steel-soft);box-shadow:inset 3px 0 0 var(--steel)}.studio-list small{color:var(--ink-soft);font-size:11px}.studio-main{display:grid;gap:14px;min-width:0}.studio-editor{padding:12px 14px 14px;display:grid;gap:8px}.studio-bar{display:flex;gap:12px;flex-wrap:wrap}.studio-bar label{display:grid;gap:3px;font-size:12px;color:var(--ink-soft)}.studio-bar label.grow{flex:1;min-width:200px}.studio-actions{display:flex;gap:8px;flex-wrap:wrap;align-items:center}.studio-rule{display:flex;gap:10px;flex-wrap:wrap;align-items:end;padding:10px;border:1px solid var(--line);border-radius:6px;background:var(--canvas)}.studio-rule label{display:grid;gap:3px;font-size:12px;color:var(--ink-soft)}.studio-result .card-head{flex-wrap:wrap;gap:10px}.studio-result label.inline{display:inline-flex;align-items:center;gap:5px;font-size:12px;color:var(--ink-soft)}.studio-preview{padding:14px;min-height:120px}.studio-data{padding:0 14px 12px}kbd{padding:0 5px;border:1px solid var(--line-strong);border-radius:3px;background:#fff;font-size:11px}@media(max-width:900px){.studio{grid-template-columns:minmax(0,1fr)}}.live-empty{display:flex;align-items:center;gap:14px;padding:12px 16px}.live-empty p{margin:0;flex:1}.live-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(340px,1fr));gap:14px;padding:14px}.live-tile{border:1px solid var(--line);border-radius:8px;background:#fff;display:grid;grid-template-rows:auto minmax(120px,1fr) auto;transition:box-shadow .4s,border-color .4s}.live-tile>header,.live-tile>footer{display:flex;align-items:center;gap:8px;padding:8px 12px}.live-tile>header{border-bottom:1px solid var(--line)}.live-tile>footer{border-top:1px solid var(--line);font-size:11px;color:var(--ink-soft)}.live-tile .live-body{padding:12px;cursor:pointer;min-width:0}.live-tile-flash{border-color:#1baf7a;box-shadow:0 0 0 3px #1baf7a38}.live-badge{display:inline-flex;align-items:center;gap:5px;font-size:11px;font-weight:600;color:#0d7a4b}.live-badge i{width:7px;height:7px;border-radius:50%;background:#1baf7a;animation:livepulse 1.6s ease-in-out infinite}.live-badge-off{color:var(--ink-soft);font-weight:500}@keyframes livepulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.35;transform:scale(.7)}}@media(prefers-reduced-motion:reduce){.live-badge i{animation:none}}.chart-empty{color:var(--ink-soft);margin:8px 0}.chart-number{display:grid;gap:4px;padding:6px 2px}.chart-number strong{font:600 38px/1.1 IBM Plex Sans,sans-serif;color:var(--steel)}.chart-number span{color:var(--ink-soft);font-size:12px}.chart-bars{display:grid;gap:7px}.bar-row{display:grid;grid-template-columns:minmax(70px,28%) 1fr auto;gap:10px;align-items:center;font-size:12px;border-radius:4px}.bar-row:hover{background:var(--steel-soft)}.bar-label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--ink-soft)}.bar-track{height:10px;background:#eef1f5;border-radius:0 4px 4px 0;overflow:hidden}.bar-track i{display:block;height:100%;background:#2a78d6;border-radius:0 4px 4px 0}.bar-value{font-variant-numeric:tabular-nums;font-weight:600;min-width:36px;text-align:right}.chart-line{position:relative}.chart-line svg{width:100%;height:auto;display:block}.grid-line{stroke:#e3e8ee;stroke-width:1}.crosshair{stroke:#9aa7b5;stroke-width:1;stroke-dasharray:3 3}.axis-text{font:10px IBM Plex Sans,sans-serif;fill:#6b7a89}.chart-tip{position:absolute;top:0;transform:translate(-50%);background:#0f1d2c;color:#fff;padding:4px 8px;border-radius:4px;font-size:12px;pointer-events:none;white-space:nowrap;display:grid}.chart-tip span{color:#b8c4d1;font-size:11px}.chart-pie{display:flex;align-items:center;gap:16px}.pie-svg{width:120px;height:120px;flex:none}.pie-total{font:600 15px IBM Plex Sans,sans-serif;fill:var(--ink)}.pie-legend{list-style:none;margin:0;padding:0;display:grid;gap:5px;flex:1;min-width:0;font-size:12px}.pie-legend li{display:grid;grid-template-columns:10px 1fr auto auto;gap:8px;align-items:center}.pie-legend i{width:10px;height:10px;border-radius:50%}.pie-legend span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.pie-legend small{color:var(--ink-soft);min-width:38px;text-align:right}.chart-table{max-height:260px}.run-studio{background:#f1edfd;color:#5b3fd0}.run-view{background:#e3f3ec;color:#0d7a4b}@media(min-width:1700px){.content{max-width:1760px;width:100%;margin-inline:auto}.page-bar{padding-inline:max(24px,calc((100% - 1760px)/2 + 24px))}}@media(max-width:1100px){.live-grid{grid-template-columns:repeat(auto-fill,minmax(min(100%,280px),1fr))}.obj-cards{grid-template-columns:repeat(auto-fill,minmax(min(100%,220px),1fr))}.studio{grid-template-columns:210px minmax(0,1fr)}.page-bar-actions{gap:6px}.project-picker select{min-width:140px}.segmented{max-width:100%;overflow-x:auto;scrollbar-width:none}.segmented::-webkit-scrollbar{display:none}.segmented button{white-space:nowrap}.card-head{flex-wrap:wrap}.scope-bar select{min-width:150px}}@media(max-width:860px){.drawer,.drawer-wide{width:100vw}.drawer-body{padding:14px 12px}.modal,.modal-wide{width:calc(100vw - 16px);max-height:calc(100vh - 16px)}.backdrop{padding:8px}.studio{grid-template-columns:minmax(0,1fr)}.studio-list ul{display:flex;gap:6px;overflow-x:auto;max-height:none;padding:8px}.studio-list li{flex:none}.studio-list li button{border:1px solid var(--line);min-width:150px}.studio-list li button.on{border-color:var(--steel);box-shadow:none}.card-head .hint{flex-basis:100%;order:9}.scroll{-webkit-overflow-scrolling:touch}.records-scroll{max-height:55vh}}@media(max-width:600px){body{font-size:14px}.page-bar{align-items:flex-start;padding:10px 12px 10px 48px;gap:8px;min-height:48px}.page-bar-title{flex:1 1 100%;padding-top:4px}.page-bar-actions{margin-left:-36px;width:calc(100% + 36px);display:grid;grid-template-columns:1fr 1fr;gap:8px;justify-content:stretch}.page-bar-actions>*{min-width:0}.page-bar-actions>.mode-switch,.page-bar-actions>.project-picker,.page-bar-actions>.muted{grid-column:1 / -1}.page-bar-actions .mode-switch{display:flex}.page-bar-actions .mode-switch button{flex:1}.page-bar-actions .project-picker{display:flex}.page-bar-actions .project-picker select{flex:1;max-width:none;min-width:0}.page-bar-actions .btn{justify-content:center;width:100%}.page-bar-actions .btn-primary:only-child{grid-column:1 / -1}.content{padding:12px 10px 28px;gap:12px}.card-head{padding:10px 12px;gap:8px}.card-head h2{flex:1 1 auto;min-width:0}.card-head .btn{margin-left:auto}.btn,.segmented button,.scope-table{min-height:38px}.icon-btn{min-width:36px;min-height:36px}input,select,textarea{font-size:16px}.segmented{display:flex;width:100%}.segmented button{flex:1 0 auto;padding-inline:10px}.kpis,.kpis-quality,.kpis-small{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.kpis-quality .kpi strong{font-size:24px}.kpis-small .kpi:last-child:nth-child(odd),.kpis-quality .kpi:last-child:nth-child(odd){grid-column:1 / -1}.kpis-small .kpi.kpi-rate strong{font-size:26px}.kpi small{overflow-wrap:anywhere}.insight-row,.donut-row{gap:12px}.donut{width:84px;height:84px}.ai-summary .ai-body{padding:8px 10px 10px}.ai-summary .card-head .hint{display:none}.live-grid{grid-template-columns:minmax(0,1fr);padding:10px;gap:10px}.live-empty{flex-direction:column;align-items:stretch;text-align:left}.chart-pie{flex-direction:column;align-items:flex-start}.obj-cards{grid-template-columns:minmax(0,1fr)}.scope-bar{flex-direction:column;align-items:stretch;gap:8px}.scope-bar label{display:grid;gap:4px}.scope-bar select{min-width:0;width:100%}.scope-sep{display:none}.scope-tables{gap:6px}.toolbar,.card .toolbar{flex-wrap:wrap;gap:8px}.toolbar>*,.card .toolbar>*{min-width:0}.search input,.toolbar .search{width:100%}.studio-bar{display:grid;grid-template-columns:1fr}.studio-actions .btn{flex:1 1 calc(50% - 8px);justify-content:center}.studio-rule{display:grid}.studio-result .card-head label.inline{flex:1 1 calc(50% - 8px)}.studio-result .card-head label.inline select{flex:1;min-width:0}.oracle-client{flex-direction:column;align-items:stretch}.oracle-actions{flex-direction:row;flex-wrap:wrap}.oracle-folder,.sqlite-row{flex-direction:column}.persona-foot,.form-actions{flex-wrap:wrap}.form-actions .btn{flex:1 1 120px;justify-content:center}.records-toolbar{flex-direction:column;align-items:stretch}.auth-card{padding:22px 18px}}@media(max-width:380px){.kpis,.kpis-quality,.kpis-small{grid-template-columns:minmax(0,1fr)}.donut-row{flex-direction:column;align-items:flex-start}}@media(max-height:480px)and (orientation:landscape){.page-bar{position:static}.drawer{height:100vh}}@media(min-width:601px)and (max-width:860px){.kpis-quality{grid-template-columns:repeat(4,minmax(0,1fr))}.kpis-small{grid-template-columns:repeat(3,minmax(0,1fr))}}.studio{gap:16px}.studio-field{display:grid;gap:4px;font-size:12px;font-weight:500;color:var(--ink-soft);min-width:0;align-content:start}.studio-field>span{line-height:1.2}.studio-field select,.studio-field input{height:34px;padding-block:0;font-size:13px;font-weight:400;color:var(--ink);width:100%;min-width:0}.studio-field .segmented{height:34px;align-items:stretch;max-width:100%}.studio-field .segmented button{padding-block:0;display:inline-flex;align-items:center}.studio-bar{display:grid;grid-template-columns:minmax(150px,220px) minmax(0,1fr);gap:12px;align-items:end}.studio-editor{gap:10px}.studio-editor .sql-editor{min-height:190px}.studio-actions{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px 16px}.studio-group{display:flex;flex-wrap:wrap;align-items:center;gap:8px}.studio-group-end{justify-content:flex-end}.studio-actions .btn{height:34px}.studio-delete{width:34px;height:34px;display:inline-grid;place-items:center;border:1px solid var(--line-strong);border-radius:4px;background:#fff;color:var(--ink-soft)}.studio-delete:hover{color:var(--fail);border-color:var(--fail)}.studio-rule{display:grid;grid-template-columns:minmax(140px,220px) minmax(140px,260px) auto;gap:12px;align-items:end}.studio-rule small{grid-column:1 / -1}.studio-result-head{display:flex;flex-wrap:wrap;align-items:flex-end;gap:12px 16px;padding:12px 14px;border-bottom:1px solid var(--line)}.studio-result-head .studio-field select{min-width:150px}.studio-field.studio-refresh{margin-left:auto}.studio-meta{margin:0;padding:8px 14px 0;font-size:12px;color:var(--ink-soft)}.studio-preview{padding:10px 14px 14px}.studio-list .card-head{min-height:48px}.page-bar h1{white-space:nowrap}@media(min-width:861px)and (max-width:1180px){.page-bar-actions .muted{display:none}}@media(min-width:601px)and (max-width:860px){.page-bar-title{flex:1 1 100%}.page-bar-actions{width:100%;margin-left:0;justify-content:flex-start}.page-bar-actions .muted{margin-right:auto}}@media(max-width:860px){.studio-rule{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.studio-rule .btn{grid-column:1 / -1}}@media(max-width:600px){.studio-bar{grid-template-columns:minmax(0,1fr)}.studio-actions{display:grid;gap:8px}.studio-group,.studio-group-end{width:100%;justify-content:stretch}.studio-group .btn{flex:1 1 calc(50% - 8px);justify-content:center}.studio-group-end .studio-delete{flex:none}.studio-result-head{display:grid;grid-template-columns:1fr 1fr}.studio-result-head .studio-field:first-child{grid-column:1 / -1}.studio-field.studio-refresh{margin-left:0;grid-column:1 / -1}.studio-result-head .studio-field select{min-width:0}.studio-field .segmented{display:flex;width:100%}.studio-rule{grid-template-columns:minmax(0,1fr)}.studio-field select,.studio-field input{font-size:16px}}@media(max-width:1320px)and (min-width:601px){.studio-result-head{display:grid;grid-template-columns:repeat(3,minmax(0,1fr))}.studio-result-head .studio-field:first-child{grid-column:1 / -1}.studio-field.studio-refresh{margin-left:0}.studio-result-head .studio-field select{min-width:0}}.studio-field .segmented button{min-height:0}
