:root{--bg:#f5f6f4;--panel:#fff;--panel-2:#eef3f1;--line:#d9dfdc;--text:#23282b;--muted:#65716f;--brand:#293b3a;--brand-2:#516866;--success:#2f7d55;--warning:#a56a24;--danger:#b3423d;--danger-bg:#f7e7e5;--warning-bg:#f8efdf;--success-bg:#e4f3ea;--shadow:0 12px 30px rgba(29,39,38,.07)}*{box-sizing:border-box}body{margin:0;min-height:100vh;display:grid;grid-template-columns:236px 1fr;color:var(--text);background:var(--bg);font-family:"Microsoft YaHei",Arial,sans-serif}.sidebar{background:#172120;color:#fff;padding:22px 16px;min-height:100vh}.brand-block{padding:2px 6px 22px;border-bottom:1px solid rgba(255,255,255,.12);margin-bottom:16px}.brand-mark{font-size:12px;letter-spacing:3px;color:#b9c6c2}.brand-title{margin-top:10px;font-size:28px;font-weight:800}.brand-subtitle{margin-top:4px;font-size:13px;color:#c8d3cf}nav{display:grid;gap:6px}nav button,button{border:0;border-radius:7px;padding:10px 12px;cursor:pointer;font:inherit}nav button{color:#dce5e2;background:transparent;text-align:left}nav button.active,nav button:hover{background:rgba(255,255,255,.12);color:#fff}.page{padding:22px 26px 30px;min-width:0}.topbar{display:flex;justify-content:space-between;gap:18px;align-items:flex-start;margin-bottom:16px}.eyebrow{color:var(--muted);font-size:13px;margin-bottom:5px}h1,h2,h3{margin:0}h1{font-size:26px;color:var(--brand)}h2{font-size:17px}h3{font-size:15px}.top-actions{display:flex;gap:8px;align-items:center}input,textarea,select{height:36px;border:1px solid var(--line);border-radius:7px;padding:0 10px;font:inherit;background:#fff;color:var(--text)}select{min-width:138px}#apiBase{width:230px}button{background:var(--brand);color:#fff}button.secondary{background:#fff;color:var(--brand);border:1px solid var(--line)}button.ghost{background:var(--panel-2);color:var(--brand)}.notice{margin-bottom:14px;padding:10px 12px;border-radius:8px;background:var(--warning-bg);color:var(--warning)}.hidden{display:none}.metrics{display:grid;grid-template-columns:repeat(6,minmax(120px,1fr));gap:10px;margin-bottom:14px}.metric,.panel,.table-wrap{background:var(--panel);border:1px solid var(--line);border-radius:8px;box-shadow:var(--shadow)}.metric{padding:13px 14px}.metric span{display:block;font-size:12px;color:var(--muted)}.metric strong{display:block;margin-top:6px;font-size:24px;color:var(--brand)}.grid-2{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(320px,.8fr);gap:14px}.grid-3{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.panel{padding:15px;min-width:0}.panel-head{display:flex;justify-content:space-between;gap:12px;align-items:center;margin-bottom:12px}.toolbar{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-bottom:12px}.table-wrap{overflow:auto}table{width:100%;border-collapse:collapse;min-width:760px}th,td{padding:10px 11px;border-bottom:1px solid var(--line);text-align:left;vertical-align:top;font-size:13px}th{background:var(--panel-2);color:var(--brand);font-weight:800;position:sticky;top:0}.tag{display:inline-flex;align-items:center;border-radius:999px;padding:3px 8px;font-size:12px;font-weight:700;background:var(--panel-2);color:var(--brand)}.tag.success{color:var(--success);background:var(--success-bg)}.tag.warning{color:var(--warning);background:var(--warning-bg)}.tag.danger{color:var(--danger);background:var(--danger-bg)}.list{display:grid;gap:8px}.item{padding:11px;border:1px solid var(--line);border-radius:8px;background:#fff}.item strong{display:flex;justify-content:space-between;gap:10px;margin-bottom:4px}.item p{margin:0;line-height:1.55;color:var(--muted);font-size:13px}.funnel{display:grid;gap:8px}.funnel-row{display:grid;grid-template-columns:72px 1fr 46px;align-items:center;gap:8px;font-size:13px}.funnel-bar{height:24px;border-radius:4px;background:var(--panel-2);overflow:hidden}.funnel-fill{height:100%;background:var(--brand-2)}.kv{display:grid;grid-template-columns:108px 1fr;gap:6px;font-size:13px}.kv span{color:var(--muted)}.empty{color:var(--muted);padding:18px;text-align:center}@media(max-width:1100px){body{grid-template-columns:1fr}.sidebar{min-height:auto}.metrics,.grid-2,.grid-3{grid-template-columns:1fr}.topbar{flex-direction:column}}
textarea{min-height:170px;width:100%;padding:10px;line-height:1.5;resize:vertical}.panel h3{margin:14px 0 8px;color:var(--brand)}.ghost{font-weight:700}.panel + .panel,.grid-2 + .panel,.grid-2 + .grid-2{margin-top:14px}
.nav-group{display:grid;gap:4px;margin:0}.nav-group-title{display:flex;align-items:center;justify-content:space-between;width:100%;padding:10px 12px;color:#dce5e2;background:transparent;text-align:left;border-radius:7px;font-size:inherit;font-weight:inherit;letter-spacing:0}.nav-group-title.active,.nav-group-title:hover{background:rgba(255,255,255,.12);color:#fff}.nav-group-title strong{font-size:13px;line-height:1;color:inherit}.nav-sub{display:grid;gap:4px;border-left:1px solid rgba(255,255,255,.14);margin-left:12px;padding-left:8px}.nav-sub button{padding-left:12px;font-size:13px}


.session-layout{grid-template-columns:minmax(420px,.85fr) minmax(560px,1.15fr)}
.detail-summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-bottom:16px;text-align:left}
.detail-metric{border:1px solid var(--line);border-radius:8px;background:#fbfcfb;padding:10px 12px;min-width:0}
.detail-metric span{display:block;font-size:12px;color:var(--muted);margin-bottom:5px}
.detail-metric strong{display:block;color:var(--brand);font-size:14px;line-height:1.45;overflow-wrap:anywhere}
.detail-metric code{font-family:Consolas,monospace;font-size:12px;color:var(--muted)}
.detail-section{margin-top:14px;text-align:left}.detail-section>h3{text-align:left;margin:0 0 10px;color:var(--brand)}
.timeline-list{position:relative;display:grid;gap:10px;margin-left:8px}.timeline-list:before{content:"";position:absolute;left:8px;top:10px;bottom:10px;width:2px;background:var(--line)}
.timeline-card{position:relative;display:grid;grid-template-columns:24px 1fr;gap:10px}.timeline-dot{width:10px;height:10px;border-radius:999px;background:var(--brand);border:2px solid #fff;box-shadow:0 0 0 2px var(--line);margin:14px 0 0 4px;z-index:1}.timeline-main{border:1px solid var(--line);border-radius:8px;background:#fff;padding:11px 13px}.timeline-head{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:8px}.timeline-time{font-weight:800;color:var(--brand);font-size:16px}.timeline-head strong{font-size:15px;color:var(--brand);margin-right:auto}.timeline-products{margin:6px 0}.product-chips{display:flex;gap:8px;flex-wrap:wrap}.product-chip{display:grid;gap:2px;min-width:190px;max-width:100%;border:1px solid var(--line);border-radius:7px;background:var(--panel-2);padding:8px 10px}.product-chip strong{font-size:13px;color:var(--brand)}.product-chip em{font-style:normal;font-size:12px;color:var(--muted)}.product-chip small{font-size:12px;color:var(--muted)}.product-chip b{justify-self:start;border-radius:999px;background:#fff;padding:2px 7px;font-size:12px;color:var(--brand)}
.timeline-fields{display:grid;grid-template-columns:minmax(112px,150px) minmax(0,1fr);gap:6px 14px;margin-top:8px;font-size:13px;line-height:1.65}.timeline-fields span,.timeline-fields strong{min-width:0;overflow-wrap:anywhere;word-break:break-word}.timeline-fields span{color:var(--muted)}.timeline-fields strong{font-weight:600;color:var(--text);white-space:normal}.muted{color:var(--muted)}
.two-col{display:grid;grid-template-columns:1fr 1fr;gap:14px}.recording-summary{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-bottom:10px}.quality-list{display:grid;gap:8px;margin-top:10px}.quality-row{display:flex;align-items:center;gap:8px;justify-content:space-between;border:1px solid var(--line);border-radius:7px;padding:8px 10px}.quality-row strong{margin-right:auto}.empty.compact{padding:10px;text-align:left;background:var(--panel-2);border-radius:7px}
@media(max-width:1100px){.session-layout,.detail-summary,.two-col,.recording-summary{grid-template-columns:1fr}.product-chip{min-width:0;width:100%}}

.hint{margin:6px 0 10px;color:var(--muted);font-size:13px;line-height:1.5}.template-summary{display:grid;grid-template-columns:repeat(3,minmax(100px,1fr));gap:8px;margin-top:12px}.template-summary .metric{box-shadow:none;padding:10px 12px}.template-summary .metric strong{font-size:20px}.template-upload-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.template-upload-grid h3{margin:6px 0 8px}.config-top{grid-template-columns:minmax(420px,.9fr) minmax(540px,1.1fr)}.config-tables{grid-template-columns:1fr 1fr}.config-tables table{min-width:560px}.config-tables .table-wrap{max-height:420px}.config-tables td,.config-tables th{padding:8px 10px}pre{white-space:pre-wrap;max-height:260px;overflow:auto;background:#f7f8f7;border:1px solid var(--line);border-radius:7px;padding:10px;color:var(--muted)}
@media(max-width:1100px){.template-summary,.template-upload-grid,.config-top,.config-tables{grid-template-columns:1fr}}

/* V1.1.2 layout pass: fixed nav/header + local scrolling cards */
html,body{height:100%;overflow:hidden}body{min-height:100vh;height:100vh;grid-template-columns:236px minmax(0,1fr)}.sidebar{height:100vh;min-height:0;position:sticky;top:0;overflow-y:auto}.page{height:100vh;min-height:0;display:grid;grid-template-rows:auto auto auto minmax(0,1fr);overflow:hidden;padding:18px 24px 22px}.topbar{position:sticky;top:0;z-index:5;background:var(--bg);margin-bottom:10px;padding-bottom:8px}.notice{margin-bottom:10px}#globalFilters{position:sticky;top:82px;z-index:4;margin-bottom:12px;box-shadow:0 8px 18px rgba(29,39,38,.05)}#app{min-height:0;overflow:auto;padding-right:6px}.panel{display:flex;flex-direction:column;min-height:0}.panel-head{flex:0 0 auto}.table-wrap{min-height:0;max-height:min(520px,calc(100vh - 310px));overflow:auto}.grid-2,.grid-3,.metrics{align-items:stretch}.grid-2>.panel,.grid-3>.panel{min-height:0}.metrics{flex:0 0 auto}.session-layout{height:100%;min-height:0;grid-template-columns:minmax(430px,.82fr) minmax(620px,1.18fr);align-items:stretch}.session-layout>.panel{height:100%;overflow:hidden}.session-layout>.panel:first-child .table-wrap{max-height:none;flex:1 1 auto}.session-layout>#sessionDetail,.session-layout .empty{min-height:0}#sessionDetail{overflow:auto;min-height:0;padding-right:4px}.session-layout>.panel:nth-child(2){min-height:0}.session-layout>.panel:nth-child(2) #sessionDetail{flex:1 1 auto}.detail-section{min-height:0}.config-top,.config-tables{align-items:stretch}.config-tables>.panel .table-wrap{max-height:360px}.quality-list{max-height:300px;overflow:auto;padding-right:4px}.recording-summary+.empty,.empty.compact{max-height:160px;overflow:auto}.toolbar{flex:0 0 auto}.panel>h3,.panel>p{flex:0 0 auto}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-thumb{background:#b9c4c1;border-radius:999px;border:2px solid #edf1ef}::-webkit-scrollbar-track{background:#edf1ef;border-radius:999px}
@media(max-width:1100px){html,body{overflow:auto;height:auto}body{height:auto}.sidebar{position:relative;height:auto}.page{height:auto;overflow:visible}.topbar,#globalFilters{position:relative;top:auto}.session-layout{height:auto}.session-layout>.panel{height:auto}#app{overflow:visible}.table-wrap{max-height:520px}}


/* V1.1.2 layout refinement: panel body scroll and page-level stability */
.panel{overflow:hidden}
.panel-head{flex:0 0 auto}
.panel-body{min-height:0;overflow:auto}
#app>.panel,.grid-2>.panel,.grid-3>.panel{max-height:calc(100vh - 230px)}
#app>.panel>.panel-body,.grid-2>.panel>.panel-body,.grid-3>.panel>.panel-body{flex:1 1 auto}
.panel-body>.table-wrap{max-height:none}
.panel-body>.metrics,.panel-body>.grid-2,.panel-body>.grid-3{min-height:0}
.session-layout{height:100%;min-height:0;overflow:hidden}
.session-layout>.panel{max-height:none;height:100%}
.session-layout .panel-body{flex:1 1 auto;display:flex;flex-direction:column;overflow:hidden}
.session-layout .panel-body>.toolbar{flex:0 0 auto}
.session-layout .panel-body>.table-wrap{flex:1 1 auto;max-height:none}
.session-layout #sessionDetail{flex:1 1 auto;overflow:auto;min-height:0}
.config-tables>.panel>.panel-body{max-height:380px}
.config-tables>.panel>.panel-body>.table-wrap{max-height:none}
.quality-list{max-height:none;overflow:auto}
.detail-section .kv{align-items:start}
.detail-section .kv>div{min-width:0}
.detail-section .kv strong,.detail-section .kv span{word-break:break-word}


/* V1.1.2 layout final polish: fixed frame, clean inner scroll */
.topbar{align-self:stretch}
#globalFilters{top:auto}
#app{overscroll-behavior:contain}
.panel-body{overscroll-behavior:contain}
.table-wrap{overscroll-behavior:contain}
.panel-body .toolbar{position:relative;z-index:1}
.session-layout .panel:first-child .panel-body{gap:10px}
.session-layout .panel:first-child .toolbar{margin-bottom:0}
.session-layout .panel:nth-child(2) .panel-body{padding-right:2px}
.grid-2,.grid-3{min-height:0}
.metrics .metric{min-width:0}
.metric strong,.metric span,.panel td,.panel th{word-break:break-word}


/* V1.1.3 layout fix 01: grid card alignment */
.grid-2 > .panel + .panel,
.grid-3 > .panel + .panel{margin-top:0}
#app > .panel + .grid-2,
#app > .panel + .grid-3,
#app > .metrics + .grid-2,
#app > .metrics + .grid-3,
#app > .grid-2 + .grid-2,
#app > .grid-2 + .panel,
#app > .grid-3 + .panel{margin-top:16px}
.session-layout > .panel{align-self:stretch}
.session-layout > .panel > .panel-body{min-height:0}


/* V1.1.3 layout fix 02: session page fixed split scroll */
body[data-view="sessions"] #app{display:flex;flex-direction:column;overflow:hidden;min-height:0}
body[data-view="sessions"] .session-layout{flex:1 1 auto;height:auto;min-height:0;overflow:hidden;align-items:stretch}
body[data-view="sessions"] .session-layout > .panel{height:100%;max-height:none;align-self:stretch;overflow:hidden}
body[data-view="sessions"] .session-layout > .panel > .panel-body{flex:1 1 auto;min-height:0;max-height:none;overflow:hidden;display:flex;flex-direction:column}
body[data-view="sessions"] .session-layout > .panel:first-child .toolbar{flex:0 0 auto}
body[data-view="sessions"] .session-layout > .panel:first-child .table-wrap{flex:1 1 auto;min-height:0;max-height:none;overflow:auto}
body[data-view="sessions"] #sessionDetail{flex:1 1 auto;min-height:0;height:100%;overflow:auto;padding-right:6px}
body[data-view="sessions"] #sessionDetail .panel-body{max-height:none}
.stage-mini{display:flex;align-items:center;gap:5px;flex-wrap:wrap}
.stage-mini small{color:var(--muted);font-size:12px}
.stage-pill{display:inline-flex;align-items:center;border:1px solid var(--line);border-radius:999px;padding:3px 8px;font-size:12px;font-weight:700;background:#fff;color:var(--muted);white-space:nowrap}
.stage-pill.on{background:var(--success-bg);border-color:#cfe8d9;color:var(--success)}
.stage-pill.off{background:#f7f8f7;color:var(--muted)}
.v03-stage-detail .table-wrap table,
.detail-section.two-col .table-wrap table{min-width:980px}
.v03-summary{grid-template-columns:repeat(6,minmax(0,1fr))}
@media(max-width:1100px){.v03-summary{grid-template-columns:repeat(2,minmax(0,1fr))}}

/* V0.3 session governance: keep evidence sections readable without right-side squeeze */
body[data-view="sessions"] #sessionDetail .detail-section > .panel{max-height:none}
body[data-view="sessions"] #sessionDetail .detail-section > .panel > .panel-body{overflow:visible}
body[data-view="sessions"] #sessionDetail .detail-section .table-wrap{max-height:none}
body[data-view="sessions"] #sessionDetail .v03-stage-detail .table-wrap table{min-width:900px}
body[data-view="sessions"] #sessionDetail .detail-section:not(.two-col) .table-wrap table{min-width:900px}
body[data-view="sessions"] #sessionDetail .recording-summary{grid-template-columns:repeat(3,minmax(0,1fr))}


/* V1.1.3 layout fix 03: session page fill available height */
body[data-view="sessions"] #app{height:100%}
body[data-view="sessions"] .session-layout{height:100%}


/* V1.1.3 layout fix 04: session explicit viewport height */
@media(min-width:1101px){
  body[data-view="sessions"] #app{height:calc(100vh - 214px);max-height:calc(100vh - 214px)}
  body[data-view="sessions"] .session-layout{height:100%;max-height:100%}
}


/* V1.1.3 layout fix 05: standard grid gap */
.grid-2,.grid-3{gap:16px}


/* V1.1.3 layout fix 06: top-level vertical rhythm */
#app > .grid-3 + .grid-2,
#app > .panel + .panel{margin-top:16px}


/* V1.1.4 template governance UI */
.validation-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:10px}.plain-list{margin:8px 0 0 18px;padding:0;color:var(--muted);line-height:1.65}.plain-list li{margin:2px 0}.config-tables table{min-width:980px}

/* V0.3 review template console: the primary path is Chinese and result-oriented. */
body[data-view="config"] #app{display:flex;flex-direction:column;gap:16px;overflow:auto}
body[data-view="config"] #app>.panel,body[data-view="config"] #app>.grid-2>.panel{max-height:none;overflow:visible}
body[data-view="config"] #app>.panel>.panel-body,body[data-view="config"] #app>.grid-2>.panel>.panel-body{overflow:visible}
.v03-config-top{grid-template-columns:minmax(340px,.78fr) minmax(580px,1.22fr)}
.v03-config-workspace{grid-template-columns:minmax(620px,1.3fr) minmax(330px,.7fr);align-items:start}
.v03-template-rules{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.v03-rule{border:1px solid var(--line);border-radius:8px;background:#fff;min-width:0}
.v03-rule-head{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:11px 12px;border-bottom:1px solid var(--line);background:var(--panel-2)}
.v03-rule-head h3{font-size:15px;color:var(--brand)}
.v03-rule-fields{display:grid;gap:0}
.v03-rule-fields>div{display:grid;gap:3px;padding:10px 12px;border-bottom:1px solid var(--line)}
.v03-rule-fields>div:last-child{border-bottom:0}
.v03-rule-fields strong{font-size:14px;color:var(--brand)}
.v03-rule-fields span,.v03-rule-fields em{font-style:normal;font-size:12px;line-height:1.45;color:var(--muted);overflow-wrap:anywhere}
.v03-rule-fields em{color:var(--text)}
.form-section-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-bottom:12px}
.v03-template-editor{display:grid;gap:10px}
.v03-editor-rule{border-top:1px solid var(--line);padding-top:10px}
.v03-editor-rule h3{margin:0 0 8px;color:var(--brand);font-size:15px}
.v03-editor-field{display:grid;grid-template-columns:minmax(130px,.85fr) minmax(70px,.45fr) auto auto minmax(180px,1fr);gap:8px;align-items:center;padding:8px 0;border-bottom:1px solid #e8ecea;font-size:13px}
.v03-editor-field strong{color:var(--brand)}
.v03-editor-field>span{color:var(--muted)}
.v03-editor-field label{display:flex;align-items:center;gap:5px;white-space:nowrap;color:var(--text)}
.v03-editor-field input[type="checkbox"]{width:16px;height:16px;padding:0}
.v03-editor-field input:not([type="checkbox"]){width:100%;min-width:0}
.legacy-config{border:1px solid var(--line);border-radius:8px;background:#fff;padding:12px 14px;color:var(--muted);font-size:13px}
.legacy-config summary{cursor:pointer;color:var(--brand);font-weight:700}
.legacy-config p{margin:9px 0 0;line-height:1.55}
body[data-view="config"] .table-wrap table{min-width:980px}
@media(max-width:1200px){.v03-template-rules{grid-template-columns:1fr}.v03-editor-field{grid-template-columns:1fr 1fr}.v03-editor-field input:not([type="checkbox"]){grid-column:1/-1}}
@media(max-width:1100px){.v03-config-top,.v03-config-workspace,.form-section-grid{grid-template-columns:1fr}}

/* V0.3 config layout repair: keep template sections in normal flow and prevent overlap. */
body[data-view="config"] #app{gap:18px;padding-bottom:18px}
body[data-view="config"] #app>.panel,
body[data-view="config"] #app>.grid-2,
body[data-view="config"] #app>.legacy-config{flex:0 0 auto;min-height:auto}
body[data-view="config"] #app>.panel,
body[data-view="config"] #app>.grid-2>.panel{overflow:hidden}
body[data-view="config"] #app>.panel>.panel-body,
body[data-view="config"] #app>.grid-2>.panel>.panel-body{overflow:visible}
body[data-view="config"] .v03-config-top{grid-template-columns:minmax(360px,.9fr) minmax(560px,1.1fr);align-items:stretch}
body[data-view="config"] .v03-config-top>.panel{min-height:205px}
body[data-view="config"] .template-summary{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
body[data-view="config"] .template-summary .metric{min-height:78px}
body[data-view="config"] .v03-template-rules{grid-template-columns:repeat(3,minmax(280px,1fr));align-items:stretch}
body[data-view="config"] #app>.panel .v03-template-rules{max-height:460px;overflow:auto;padding-right:4px}
body[data-view="config"] .v03-rule{display:flex;flex-direction:column;overflow:hidden}
body[data-view="config"] .v03-rule-head{min-height:48px}
body[data-view="config"] .v03-rule-fields{flex:1 1 auto;min-height:0}
body[data-view="config"] .v03-rule-fields>div{min-height:74px}
body[data-view="config"] .v03-config-workspace{grid-template-columns:minmax(680px,1.45fr) minmax(360px,.55fr);align-items:start}
body[data-view="config"] .v03-config-workspace>.panel:first-child .panel-body{max-height:360px;overflow:auto}
body[data-view="config"] .v03-config-workspace>.panel:last-child .panel-body{min-height:128px}
body[data-view="config"] #app>.panel .table-wrap,
body[data-view="config"] .v03-config-workspace .table-wrap{max-height:none}
body[data-view="config"] .legacy-config{margin-top:0}
body[data-view="config"] .panel + .panel,
body[data-view="config"] .grid-2 + .panel{margin-top:0}
@media(max-width:1400px){body[data-view="config"] .v03-template-rules{grid-template-columns:1fr}body[data-view="config"] .v03-rule-fields>div{min-height:auto}}
@media(max-width:1100px){body[data-view="config"] .v03-config-top,body[data-view="config"] .v03-config-workspace{grid-template-columns:1fr}body[data-view="config"] .v03-config-workspace>.panel:first-child .panel-body,body[data-view="config"] #app>.panel .v03-template-rules{max-height:none;overflow:visible}}

.recording-players{display:grid;gap:10px;margin:8px 0 10px}.recording-player{display:grid;grid-template-columns:minmax(160px,1fr) minmax(260px,2fr) auto;gap:10px;align-items:center;border:1px solid var(--line);border-radius:7px;padding:8px 10px;background:#fff}.recording-player audio{width:100%;height:32px}.recording-player span{color:var(--muted);font-size:12px}@media(max-width:1100px){.recording-player{grid-template-columns:1fr}.recording-player audio{width:100%}}


/* V1.2.0 permission context */
.auth-context{display:flex;align-items:center;gap:8px;min-width:0;color:var(--muted);font-size:12px}
.auth-context label{font-weight:700;color:var(--brand);white-space:nowrap}
.auth-context select{min-width:170px;max-width:220px;height:32px;font-size:13px}
.auth-context span{max-width:360px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
@media(max-width:1100px){.auth-context{width:100%;flex-wrap:wrap}.auth-context span{max-width:100%}}

.auth-user{display:inline-flex;align-items:center;height:32px;border:1px solid var(--line);border-radius:7px;background:#fff;padding:0 10px;color:var(--brand);font-size:13px;font-weight:700;white-space:nowrap}
.auth-permission{color:var(--muted)}

/* V1.2.4 EP-10 governance readability */
.governance-summary{display:grid;grid-template-columns:repeat(4,minmax(110px,1fr));gap:8px;margin-bottom:12px}
.governance-summary>div{border:1px solid var(--line);border-radius:8px;background:#fbfcfb;padding:10px 12px;min-width:0}
.governance-summary span{display:block;font-size:12px;color:var(--muted);margin-bottom:5px}
.governance-summary strong{display:block;font-size:20px;color:var(--brand);line-height:1.2;word-break:break-word}
.governance-steps{display:grid;gap:8px;margin-top:8px}
.governance-step{display:grid;grid-template-columns:38px 1fr;gap:10px;align-items:start;border:1px solid var(--line);border-radius:8px;background:var(--panel-2);padding:10px 12px}
.governance-step>b{display:flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:999px;background:var(--brand);color:#fff;font-size:12px}
.governance-step strong{display:block;color:var(--brand);font-size:14px;margin-bottom:3px}
.governance-step span{display:block;color:var(--muted);font-size:13px;line-height:1.55}
.status-breakdown{display:flex;flex-wrap:wrap;gap:8px}
.status-breakdown>span{display:inline-flex;align-items:center;gap:6px;border:1px solid var(--line);border-radius:999px;background:#fff;padding:5px 8px}
.status-breakdown strong{font-size:13px;color:var(--brand)}
@media(max-width:1100px){.governance-summary{grid-template-columns:repeat(2,minmax(0,1fr))}.governance-step{grid-template-columns:32px 1fr}}

/* V1.2.9 org list modal and identity help */
.metric-button{width:100%;text-align:left;border:1px solid var(--line);box-shadow:var(--shadow);background:var(--panel);color:var(--text)}
.metric-button:hover,.metric-button:focus{outline:2px solid rgba(41,59,58,.18);background:#fbfcfb}
.identity-help{margin:0 0 12px;border:1px solid var(--line);border-radius:8px;background:#fbfcfb;padding:10px 12px;color:var(--muted);font-size:13px;line-height:1.55}
.identity-help strong{display:block;color:var(--brand);margin-bottom:4px;font-size:14px}
.identity-help p{margin:0}
.modal-backdrop{position:fixed;inset:0;z-index:30;display:flex;align-items:center;justify-content:center;padding:28px;background:rgba(23,33,32,.42)}
.modal-card{width:min(980px,calc(100vw - 44px));max-height:calc(100vh - 56px);display:flex;flex-direction:column;border:1px solid var(--line);border-radius:8px;background:var(--panel);box-shadow:0 22px 60px rgba(0,0,0,.22);overflow:hidden}
.modal-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 16px;border-bottom:1px solid var(--line);background:var(--panel-2)}
.modal-body{min-height:0;overflow:auto;padding:14px}
.modal-body .table-wrap{max-height:none;box-shadow:none}
@media(max-width:1100px){.modal-backdrop{padding:14px}.modal-card{width:100%;max-height:calc(100vh - 28px)}}

/* V1.2.10 org form usability */
.org-form-section{border:1px solid var(--line);border-radius:8px;background:#fff;margin-top:12px;padding:12px}
.org-form-section h3{margin:0 0 10px;color:var(--brand);font-size:15px}
.org-form-grid{display:grid;grid-template-columns:repeat(4,minmax(150px,1fr));gap:10px;align-items:start}
.form-field{display:grid;gap:5px;min-width:0;font-size:13px;color:var(--brand);font-weight:700}
.form-field input,.form-field select{width:100%;min-width:0;height:40px;font-weight:400;color:var(--text)}
.form-field small{color:var(--muted);font-weight:400;line-height:1.4;min-height:18px}
.form-actions{display:flex;align-items:end;height:100%;padding-top:22px}
.form-actions button{height:40px;width:100%}
@media(max-width:1400px){.org-form-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:760px){.org-form-grid{grid-template-columns:1fr}.form-actions{padding-top:0}}

/* V1.2.11 org input focus fix */
.org-form-section input,.org-form-section select{pointer-events:auto;user-select:text;position:relative;z-index:2;background:#fff}
.org-form-section select{user-select:auto}
.form-field{cursor:default}
.form-field span,.form-field small{pointer-events:none}


/* V1.2.18 form focus boundary */
input,textarea,select{pointer-events:auto}
.toolbar input,.toolbar select,.top-actions input,.top-actions select,.auth-context select{position:relative;z-index:4}


/* V1.2.21 login screen */
body[data-view="login"] #globalFilters{display:none}
body[data-view="login"] #app{display:flex;align-items:center;justify-content:center;min-height:calc(100vh - 150px);overflow:auto}
.login-shell{width:100%;display:flex;justify-content:center;padding:28px 12px}
.login-card{width:min(420px,100%);border:1px solid var(--line);border-radius:8px;background:var(--panel);box-shadow:var(--shadow);padding:24px}
.login-brand{font-size:12px;letter-spacing:3px;color:var(--muted);font-weight:700;margin-bottom:8px}
.login-card h2{font-size:24px;color:var(--brand);margin-bottom:8px}
.login-card p{margin:0 0 14px;color:var(--muted);line-height:1.55}
.login-form{display:grid;gap:10px}
.login-form input,.login-form button{width:100%;height:42px}
.auth-context button{height:32px;padding:6px 10px}


/* V0.2.1 data preparation and AI reservation */
body[data-view="dataPrep"] #app{display:flex;flex-direction:column;gap:16px;overflow:auto}
.data-prep-layout{grid-template-columns:minmax(420px,.85fr) minmax(560px,1.15fr)}
.loop-list{display:flex;flex-wrap:wrap;gap:5px;min-width:220px}
.loop-item{display:inline-flex;align-items:center;gap:5px;border:1px solid var(--line);border-radius:999px;background:#fff;padding:3px 7px;font-size:12px;color:var(--muted);white-space:nowrap}
.loop-item b{width:7px;height:7px;border-radius:999px;background:var(--danger)}
.loop-item.ok{color:var(--success);background:var(--success-bg);border-color:#cfe8d9}.loop-item.ok b{background:var(--success)}
.loop-item.miss{color:var(--warning);background:var(--warning-bg);border-color:#efd9b8}.loop-item.miss b{background:var(--warning)}
.profile-mini-grid{margin-bottom:12px}.profile-mini-grid .detail-metric{min-height:76px}
.profile-event-list{display:grid;gap:8px;margin-top:8px;max-height:360px;overflow:auto;padding-right:4px}
.profile-event{border:1px solid var(--line);border-radius:8px;background:#fff;padding:10px 12px;display:grid;gap:7px;min-width:0}
.profile-event strong{color:var(--brand);font-size:14px}.profile-event span{color:var(--muted);font-size:12px;line-height:1.5}.profile-event p{margin:0;color:var(--text);font-size:13px}.profile-event em{font-style:normal;color:var(--muted);font-size:12px;line-height:1.45}.profile-event .table-wrap{max-height:none;overflow-x:auto}.profile-event table{min-width:0}.profile-event th,.profile-event td{overflow-wrap:anywhere;word-break:break-word}.profile-event th:first-child,.profile-event td:first-child{width:150px;white-space:normal}
body[data-view="dataPrep"] .table-wrap table{min-width:1180px}
.data-prep-detail{display:grid;gap:10px}.data-prep-detail .governance-summary{margin-bottom:0}.detail-section{display:grid;gap:4px;border-top:1px solid var(--line);padding-top:10px}.detail-section strong{color:var(--brand);font-size:15px}.detail-section span,.detail-section p{margin:0;color:var(--muted);font-size:13px;line-height:1.55}.detail-section p .tag{margin-right:6px}
.governance-layout{grid-template-columns:minmax(420px,.9fr) minmax(520px,1.1fr)}.governance-detail{display:grid;gap:10px}.governance-detail .governance-summary{margin-bottom:0}body[data-view="quality"] .table-wrap table{min-width:1140px}
body[data-view="quality"] #app{display:flex;flex-direction:column;gap:16px;overflow:auto}body[data-view="quality"] .quality-metrics{grid-template-columns:repeat(6,minmax(0,1fr));margin-bottom:0}.quality-object{display:grid;gap:3px;text-align:left}.quality-object span{color:var(--muted);font-size:12px}.queue-empty{min-height:58px;display:flex;align-items:center;color:var(--muted);font-size:14px}.governance-detail .tag{margin-right:5px;margin-bottom:4px}.detail-actions{display:flex;gap:8px;flex-wrap:wrap;border-top:1px solid var(--line);padding-top:10px}.detail-actions button{min-height:36px}@media(max-width:1100px){body[data-view="quality"] .quality-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.governance-layout{grid-template-columns:1fr}}
body[data-view="quality"] #app>*{flex:0 0 auto;min-height:auto}
body[data-view="quality"] #app>.panel,
body[data-view="quality"] #app>.grid-2>.panel{max-height:none;height:auto;overflow:visible}
body[data-view="quality"] #app>.panel>.panel-body,
body[data-view="quality"] #app>.grid-2>.panel>.panel-body{max-height:none;overflow:visible}
body[data-view="quality"] #app>.panel .table-wrap{max-height:none}
body[data-view="quality"] .quality-score{font-size:20px}
body[data-view="quality"] .quality-score.success{color:var(--success)}
body[data-view="quality"] .quality-score.warning{color:var(--warning)}
body[data-view="quality"] .quality-score.danger{color:var(--danger)}
body[data-view="quality"] .deduction-lines{display:grid;gap:4px;min-width:240px}
body[data-view="quality"] .deduction-lines span{display:block;line-height:1.4}

body[data-view="sku"] #app{overflow:auto}
body[data-view="sku"] .sku-workspace{display:grid;grid-template-columns:minmax(0,1fr);gap:16px;min-width:0}
body[data-view="sku"] .sku-workspace>*{min-width:0}
body[data-view="sku"] .sku-workspace>.panel,
body[data-view="sku"] .manual-sku-governance>.panel,
body[data-view="sku"] .sku-import-panel{max-height:none;height:auto;overflow:visible}
body[data-view="sku"] .sku-workspace>.panel>.panel-body,
body[data-view="sku"] .manual-sku-governance>.panel>.panel-body,
body[data-view="sku"] .sku-import-panel>.panel-body{max-height:none;overflow:visible}
body[data-view="sku"] .sku-workspace .table-wrap{max-height:520px}
body[data-view="sku"] .manual-sku-governance .table-wrap{width:100%;max-width:100%;max-height:none;overflow-x:auto}
body[data-view="sku"] .manual-sku-governance table{min-width:1240px;table-layout:fixed}
body[data-view="sku"] .manual-sku-governance th:nth-child(1){width:220px}
body[data-view="sku"] .manual-sku-governance th:nth-child(2){width:190px}
body[data-view="sku"] .manual-sku-governance th:nth-child(3),
body[data-view="sku"] .manual-sku-governance th:nth-child(4){width:130px}
body[data-view="sku"] .manual-sku-governance th:nth-child(5){width:250px}
body[data-view="sku"] .manual-sku-governance th:nth-child(6){width:110px}
body[data-view="sku"] .manual-sku-governance th:nth-child(7){width:150px}
body[data-view="sku"] .manual-sku-governance td{word-break:normal;overflow-wrap:anywhere}
body[data-view="sku"] .manual-sku-governance input{width:100%;min-width:0;margin-bottom:6px}
body[data-view="sku"] .sku-import-panel{padding:0}
body[data-view="sku"] .sku-import-panel>summary{cursor:pointer;padding:15px;font-weight:800;color:var(--brand)}
body[data-view="sku"] .sku-import-panel>.panel-body{padding:0 15px 15px}
body[data-view="aiReserved"] #app{display:flex;flex-direction:column;gap:16px;overflow:auto}
body[data-view="aiReserved"] .panel{max-height:none}
body[data-view="aiReserved"] #app>.panel,
body[data-view="aiReserved"] #app>.grid-2>.panel{overflow:visible}
body[data-view="aiReserved"] #app>.panel>.panel-body,
body[data-view="aiReserved"] #app>.grid-2>.panel>.panel-body{overflow:visible}
.ai-reserved-hero{display:grid;grid-template-columns:minmax(460px,1.2fr) minmax(320px,.8fr);gap:16px;align-items:stretch;border:1px solid var(--line);border-radius:8px;background:#fff;box-shadow:var(--shadow);padding:18px}
.ai-reserved-hero h2{margin:10px 0 8px;color:var(--brand);font-size:22px}
.ai-reserved-hero p{margin:0;color:var(--muted);line-height:1.65;font-size:14px}
.ai-reserved-status{border:1px solid var(--line);border-radius:8px;background:#fbfcfb;padding:12px;align-self:stretch}
.ai-reserved-metrics{grid-template-columns:repeat(5,minmax(0,1fr));margin-bottom:0}
.ai-reserved-boundary{grid-template-columns:repeat(2,minmax(0,1fr));align-items:start;min-height:340px}
.ai-contract{margin-top:0}
.ai-contract .table-wrap{margin-top:10px;max-height:260px}
@media(max-width:1100px){.ai-reserved-hero,.ai-reserved-boundary{grid-template-columns:1fr}.ai-reserved-boundary{min-height:auto}.ai-reserved-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:1100px){.data-prep-layout{grid-template-columns:1fr}.loop-list{min-width:0}.profile-event-list{max-height:none}}

/* V0.3 export center: task-first workflow, evidence and contracts below the fold. */
body[data-view="export"] #app{display:flex;flex-direction:column;gap:16px;overflow:auto}
body[data-view="export"] #app>.panel,
body[data-view="export"] #app>.grid-2>.panel,
body[data-view="export"] #app>.legacy-config{max-height:none;overflow:visible;flex:0 0 auto}
body[data-view="export"] #app>.panel,
body[data-view="export"] #app>.grid-2>.panel{display:block;height:auto!important;min-height:max-content!important}
body[data-view="export"] #app>.panel>.panel-body,
body[data-view="export"] #app>.grid-2>.panel>.panel-body{display:block;overflow:visible}
body[data-view="export"] .export-metrics{grid-template-columns:repeat(6,minmax(0,1fr));margin-bottom:0}
body[data-view="export"] .export-primary{grid-template-columns:minmax(520px,.9fr) minmax(520px,1.1fr);align-items:stretch}
body[data-view="export"] .export-secondary{grid-template-columns:minmax(520px,1.05fr) minmax(460px,.95fr);align-items:start}
body[data-view="export"] .export-create select{min-width:210px}
body[data-view="export"] .export-task-table{max-height:360px}
body[data-view="export"] .export-task-table table{min-width:1080px}
body[data-view="export"] .export-actions{display:flex;gap:6px;flex-wrap:wrap}
body[data-view="export"] .export-actions button{padding:7px 9px;min-height:32px}
body[data-view="export"] .export-contract{margin-top:0}
body[data-view="export"] .export-contract .table-wrap{margin-top:10px;max-height:220px}
body[data-view="export"] .export-contract-grid{margin-top:10px}
@media(max-width:1300px){body[data-view="export"] .export-metrics{grid-template-columns:repeat(3,minmax(0,1fr))}body[data-view="export"] .export-primary,body[data-view="export"] .export-secondary{grid-template-columns:1fr}}
@media(max-width:760px){body[data-view="export"] .export-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}body[data-view="export"] .export-create select,body[data-view="export"] .export-create button{width:100%}}

/* V0.3 data preparation: readable operation layout, no clipped duplicate cards. */
body[data-view="dataPrep"] #app>.panel,
body[data-view="dataPrep"] #app>.grid-2>.panel,
body[data-view="dataPrep"] #app>.data-prep-funnel>.panel{max-height:none;overflow:visible}
body[data-view="dataPrep"] #app>.panel>.panel-body,
body[data-view="dataPrep"] #app>.grid-2>.panel>.panel-body,
body[data-view="dataPrep"] #app>.data-prep-funnel>.panel>.panel-body{overflow:visible}
body[data-view="dataPrep"] .data-prep-metrics{grid-template-columns:repeat(6,minmax(0,1fr));margin-bottom:0}
body[data-view="dataPrep"] .contract-summary .governance-summary{grid-template-columns:repeat(6,minmax(0,1fr))}
body[data-view="dataPrep"] .data-prep-funnel{margin-top:16px}
body[data-view="dataPrep"] .data-prep-funnel .governance-summary{grid-template-columns:repeat(5,minmax(0,1fr));margin-bottom:0}
body[data-view="dataPrep"] .data-prep-layout{grid-template-columns:minmax(300px,.65fr) minmax(620px,1.35fr)}
body[data-view="dataPrep"] .data-prep-layout .panel-body{min-height:230px}
body[data-view="dataPrep"] .data-prep-workspace{grid-template-columns:minmax(640px,1.35fr) minmax(380px,.65fr);align-items:start}
body[data-view="dataPrep"] .data-prep-workspace>.panel{margin:0}
body[data-view="dataPrep"] .data-prep-missing-summary{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin:-2px 0 12px}
body[data-view="dataPrep"] .data-prep-workspace .panel:last-child{position:sticky;top:12px}
.product-focus{display:inline-block;border-radius:5px;background:#e8f4ee;color:var(--success);padding:2px 5px;font-weight:700}
body[data-view="dataPrep"] .data-prep-detail .kv{grid-template-columns:repeat(2,minmax(0,1fr));gap:6px}
body[data-view="dataPrep"] .data-prep-detail .kv span{font-size:12px}
body[data-view="dataPrep"] .data-prep-detail .kv strong{font-size:13px}
.no-go-list{display:grid;gap:8px}.no-go-item{display:grid;grid-template-columns:minmax(220px,1fr) minmax(260px,1.4fr) minmax(150px,.7fr);gap:12px;align-items:center;border:1px solid var(--line);border-radius:7px;background:#fff;padding:10px 12px}.no-go-item strong{color:var(--brand);font-size:13px}.no-go-item span{color:var(--text);font-size:13px;line-height:1.45}.no-go-item em{color:var(--muted);font-size:12px;font-style:normal;line-height:1.45}@media(max-width:1100px){.no-go-item{grid-template-columns:1fr;gap:5px}}
/* The page-level scroller owns vertical overflow; details must never overlap the next section. */
body[data-view="dataPrep"] #app>.data-prep-funnel,
body[data-view="dataPrep"] #app>.grid-2,
body[data-view="dataPrep"] #app>.panel{flex:0 0 auto;min-height:auto}
@media(max-width:1100px){body[data-view="dataPrep"] .data-prep-metrics,body[data-view="dataPrep"] .contract-summary .governance-summary{grid-template-columns:repeat(2,minmax(0,1fr))}body[data-view="dataPrep"] .data-prep-funnel .governance-summary{grid-template-columns:repeat(2,minmax(0,1fr))}body[data-view="dataPrep"] .data-prep-layout,body[data-view="dataPrep"] .data-prep-workspace{grid-template-columns:1fr}body[data-view="dataPrep"] .data-prep-workspace .panel:last-child{position:static}}

/* V0.3.6 UI-DEV-01: shared visual foundation. */
:root{
  --bg:#f4f6f5;
  --panel:#fff;
  --panel-2:#edf2f0;
  --sunken:#e5ebe8;
  --line:#d5ddda;
  --line-strong:#aebbb7;
  --text:#202624;
  --muted:#5d6966;
  --tertiary:#78837f;
  --brand:#245b56;
  --brand-2:#367a72;
  --brand-strong:#173f3b;
  --brand-soft:#e1eeeb;
  --focus:#367a72;
  --success:#276846;
  --warning:#875817;
  --danger:#8f3140;
  --info:#315f73;
  --danger-bg:#f8e8eb;
  --warning-bg:#f8eedb;
  --success-bg:#e5f3ea;
  --info-bg:#e6f0f4;
  --shadow:none;
  --ease-out:cubic-bezier(.23,1,.32,1);
}

html,
body,
button,
input,
textarea,
select{
  letter-spacing:0;
}

body{
  color:var(--text);
  background:var(--bg);
  font-family:system-ui,"Microsoft YaHei","PingFang SC",sans-serif;
  font-size:14px;
  line-height:1.5;
}

.sidebar{
  background:var(--brand-strong);
}

.brand-mark{
  letter-spacing:0;
  font-weight:700;
}

h1{
  color:var(--brand-strong);
  font-size:24px;
  line-height:32px;
}

h2{
  font-size:17px;
  line-height:24px;
}

h3{
  font-size:15px;
  line-height:22px;
}

button,
input,
textarea,
select{
  border-radius:6px;
}

button{
  min-height:36px;
  font-size:13px;
  line-height:18px;
  padding:8px 13px;
  font-weight:700;
  transition:
    transform 120ms var(--ease-out),
    background-color 140ms var(--ease-out),
    border-color 140ms var(--ease-out),
    color 140ms var(--ease-out),
    opacity 140ms var(--ease-out);
}

button:disabled{
  cursor:not-allowed;
  opacity:.52;
}

button:focus-visible,
input:focus-visible,
textarea:focus-visible,
select:focus-visible,
summary:focus-visible,
[tabindex]:focus-visible{
  outline:2px solid var(--focus);
  outline-offset:2px;
}

@media (hover:hover) and (pointer:fine){
  button:not(:disabled):active:not(:focus-visible){
    transform:scale(.98);
  }
}

.metric,
.panel,
.table-wrap{
  border-color:var(--line);
  border-radius:8px;
  box-shadow:none;
}

.metric strong{
  color:var(--brand-strong);
  font-size:22px;
  line-height:28px;
}

.panel-head{
  margin-bottom:12px;
}

th{
  color:var(--brand-strong);
  background:var(--panel-2);
}

th,
td{
  line-height:19px;
}

.tag{
  min-height:24px;
  font-size:11px;
  padding:2px 8px;
  border:1px solid var(--line);
  border-radius:999px;
}

.tag.success{
  border-color:#bfdccb;
}

.tag.warning{
  border-color:#e8d0a7;
}

.tag.danger{
  border-color:#e8bec6;
}

.notice{
  border:1px solid #e8d0a7;
  border-radius:8px;
}

code,
pre{
  font-family:ui-monospace,"Cascadia Mono",Consolas,monospace;
}

@media(max-width:1024px){
  .page{
    padding-right:16px;
    padding-left:16px;
  }
}

@media(prefers-reduced-motion:reduce){
  button{
    transition:
      background-color 120ms var(--ease-out),
      border-color 120ms var(--ease-out),
      color 120ms var(--ease-out),
      opacity 120ms var(--ease-out);
  }

  button:active{
    transform:none;
  }
}

/* V0.3.6 UI-DEV-05: WebAdmin shell and core workflow */
html,
body{
  width:100%;
  max-width:100%;
}

body{
  grid-template-columns:236px minmax(0,1fr);
  overflow:hidden;
}

.page{
  display:flex;
  flex-direction:column;
  width:100%;
  max-width:100%;
  min-width:0;
  padding:20px 24px 24px;
}

.topbar{
  display:grid;
  grid-template-columns:auto minmax(0,1fr) auto;
  align-items:center;
  gap:12px;
  min-width:0;
  padding-bottom:10px;
}

.page-heading{
  min-width:0;
}

.page-heading h1,
.page-heading .eyebrow{
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}

.nav-menu-button{
  display:none;
}

.icon-button{
  display:inline-grid;
  width:36px;
  min-width:36px;
  height:36px;
  min-height:36px;
  place-items:center;
  padding:0;
  border:1px solid var(--line);
  background:var(--panel);
  color:var(--brand-strong);
  font-size:18px;
  line-height:1;
}

.nav-menu-button{
  display:none;
}

.top-actions{
  position:relative;
  display:flex;
  justify-content:flex-end;
  gap:8px;
  min-width:0;
}

.auth-context{
  display:flex;
  min-width:0;
}

.identity-menu,
.environment-menu{
  position:relative;
}

.identity-menu>summary,
.environment-menu>summary,
.filter-disclosure>summary,
.technical-details>summary,
.account-environment>summary{
  list-style:none;
  cursor:pointer;
}

.identity-menu>summary::-webkit-details-marker,
.environment-menu>summary::-webkit-details-marker,
.filter-disclosure>summary::-webkit-details-marker,
.technical-details>summary::-webkit-details-marker,
.account-environment>summary::-webkit-details-marker{
  display:none;
}

.identity-menu>summary{
  display:flex;
  align-items:center;
  gap:8px;
  min-height:36px;
  max-width:260px;
  padding:0 8px;
  border:1px solid var(--line);
  border-radius:6px;
  background:var(--panel);
}

.identity-avatar{
  display:grid;
  width:24px;
  min-width:24px;
  height:24px;
  place-items:center;
  border-radius:50%;
  background:var(--brand-soft);
  color:var(--brand-strong);
  font-size:12px;
  font-weight:800;
}

.auth-user{
  overflow:hidden;
  color:var(--brand-strong);
  font-size:13px;
  font-weight:700;
  text-overflow:ellipsis;
  white-space:nowrap;
}

.identity-popover,
.environment-popover{
  position:absolute;
  top:44px;
  right:0;
  z-index:40;
  display:grid;
  width:min(360px,calc(100vw - 32px));
  gap:10px;
  padding:14px;
  border:1px solid var(--line);
  border-radius:8px;
  background:var(--panel);
  box-shadow:0 14px 34px rgba(23,63,59,.14);
}

.identity-popover span,
.identity-popover code{
  overflow-wrap:anywhere;
}

.environment-popover label{
  color:var(--muted);
  font-size:12px;
  font-weight:700;
}

.environment-popover #apiBase{
  width:100%;
}

.environment-actions{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:8px;
}

.nav-backdrop{
  display:none;
}

.sidebar{
  z-index:30;
  padding:18px 12px;
}

.brand-block{
  padding:2px 8px 18px;
  margin-bottom:12px;
}

#nav{
  gap:4px;
}

#nav button{
  display:grid;
  grid-template-columns:24px minmax(0,1fr);
  align-items:center;
  gap:8px;
  width:100%;
  min-height:40px;
  padding:8px 10px;
}

.nav-icon{
  display:grid;
  width:24px;
  min-width:24px;
  place-items:center;
  font-size:14px;
  font-weight:800;
}

.nav-label{
  min-width:0;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}

.nav-group-title{
  grid-template-columns:24px minmax(0,1fr) 16px!important;
}

.nav-group-title strong{
  transform:rotate(-90deg);
}

.nav-group.open>.nav-group-title strong{
  transform:none;
}

.nav-sub{
  margin-left:21px;
  padding-left:7px;
}

#globalFilters{
  flex:0 0 auto;
  padding:0;
  min-height:max-content;
  overflow:visible;
}

#app{
  flex:1 1 auto;
  min-height:0;
}

.filter-disclosure>summary{
  display:flex;
  align-items:center;
  justify-content:space-between;
  min-height:44px;
  gap:12px;
  padding:0 14px;
}

.filter-disclosure>summary span{
  color:var(--muted);
  font-size:12px;
}

.filter-toolbar{
  margin:0;
  padding:0 14px 14px;
}

.filter-toolbar label{
  display:grid;
  gap:3px;
  color:var(--muted);
  font-size:11px;
  font-weight:700;
}

.segmented{
  display:inline-flex;
  align-items:center;
  padding:2px;
  border:1px solid var(--line);
  border-radius:7px;
  background:var(--panel-2);
}

.segmented button{
  min-height:30px;
  padding:5px 10px;
  border:0;
  background:transparent;
  color:var(--muted);
}

.segmented button.active{
  background:var(--panel);
  color:var(--brand-strong);
  box-shadow:0 1px 3px rgba(23,63,59,.12);
}

.state-message{
  display:grid;
  gap:6px;
  margin-bottom:12px;
  padding:12px 14px;
  border:1px solid var(--line);
  border-left:3px solid var(--info);
  border-radius:6px;
  background:var(--info-bg);
  color:var(--text);
}

.state-message.warning{
  border-left-color:var(--warning);
  background:var(--warning-bg);
}

.state-message.danger{
  border-left-color:var(--danger);
  background:var(--danger-bg);
}

.state-message details{
  margin-top:2px;
}

.state-message code{
  display:block;
  margin-top:6px;
  overflow-wrap:anywhere;
  color:var(--muted);
}

body[data-view="login"]{
  grid-template-columns:1fr;
}

body[data-view="login"] .sidebar,
body[data-view="login"] .nav-menu-button{
  display:none;
}

body[data-view="login"] .page{
  min-height:100vh;
}

body[data-view="login"] .topbar{
  grid-template-columns:minmax(0,1fr) auto;
}

body[data-view="login"] .page-heading{
  grid-column:1;
}

body[data-view="login"] #app{
  min-height:0;
}

.login-shell{
  min-height:calc(100vh - 120px);
  align-items:center;
}

.login-card{
  width:min(440px,100%);
  padding:28px;
  box-shadow:0 14px 36px rgba(23,63,59,.1);
}

.login-form{
  gap:8px;
}

.login-form label{
  margin-top:4px;
  color:var(--brand-strong);
  font-size:12px;
  font-weight:700;
}

.password-field{
  position:relative;
  display:flex;
  align-items:center;
  min-width:0;
}

.password-field input{
  width:100%;
  padding-right:44px;
}

.password-toggle{
  position:absolute;
  right:3px;
  top:50%;
  transform:translateY(-50%);
  width:32px;
  min-width:32px;
  height:30px;
  min-height:30px;
  border:0;
  background:transparent;
  color:var(--muted);
  font-size:14px;
}

.login-form .password-field .password-toggle{
  width:32px;
  height:30px;
}

.login-environment{
  margin-top:14px;
  color:var(--muted);
  font-size:12px;
}

.dashboard-groups{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:14px;
  margin-bottom:16px;
}

.dashboard-groups>div{
  min-width:0;
}

.dashboard-groups h2{
  margin:0 0 8px;
  color:var(--brand-strong);
  font-size:14px;
}

.compact-metrics{
  grid-template-columns:repeat(3,minmax(0,1fr));
  margin:0;
}

.compact-metrics .metric{
  min-height:82px;
  padding:11px 12px;
}

.compact-metrics .metric strong{
  font-size:20px;
}

.page-commandbar{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  margin-bottom:14px;
  padding:10px 12px;
  border-bottom:1px solid var(--line);
}

.page-commandbar>div{
  display:flex;
  align-items:center;
  gap:10px;
  min-width:0;
}

.page-commandbar>div:first-child:not(.segmented){
  display:grid;
  gap:2px;
}

.page-commandbar span{
  color:var(--muted);
  font-size:12px;
}

.side-drawer{
  position:fixed;
  top:0;
  right:0;
  z-index:60;
  display:none;
  width:min(520px,100vw);
  height:100vh;
  max-height:none!important;
  padding:18px;
  border-radius:0;
  box-shadow:-12px 0 36px rgba(23,63,59,.18);
}

.side-drawer.open{
  display:flex;
}

.side-drawer>.panel-body{
  flex:1 1 auto;
  overflow:auto;
}

.side-drawer .org-form-grid{
  grid-template-columns:1fr;
}

.side-drawer .toolbar{
  display:grid;
  grid-template-columns:1fr 1fr;
}

.side-drawer .toolbar input,
.side-drawer .toolbar select{
  width:100%;
  min-width:0;
}

.side-drawer .toolbar button{
  width:100%;
}

.secondary-workspace{
  display:none!important;
}

.secondary-workspace.open{
  display:flex!important;
}

.mode-hidden{
  display:none!important;
}

.sku-workspace>.panel,
.manual-sku-governance>.panel{
  max-height:none!important;
}

.account-workspace{
  display:grid;
  gap:16px;
  overflow:auto;
}

.account-workspace>.panel{
  max-height:none;
}

.account-admin-secondary{
  border-style:dashed;
  background:var(--panel-2);
}

.account-environment{
  padding:0;
}

.account-environment>summary{
  padding:14px 15px;
  color:var(--brand-strong);
  font-weight:800;
}

.account-environment>.panel-body{
  padding:0 15px 15px;
}

.technical-details{
  margin-top:14px;
  padding:12px;
  border:1px solid var(--line);
  border-radius:6px;
  background:var(--panel-2);
}

.technical-details>summary{
  color:var(--brand-strong);
  font-weight:700;
}

.technical-details .kv{
  margin-top:10px;
}

.session-card-list{
  display:none;
}

.session-back{
  display:none;
}

body[data-view="sessions"] .session-layout{
  grid-template-columns:minmax(360px,38fr) minmax(560px,62fr);
}

body[data-view="sessions"] .session-layout .panel{
  min-width:0;
}

body[data-view="sessions"] .session-layout .table-wrap{
  max-width:100%;
}

th,
td{
  word-break:normal!important;
}

.tag{
  white-space:nowrap;
}

.session-table table{
  min-width:980px;
}

.session-table [data-session]{
  display:block;
  max-width:170px;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}

body[data-view="sessions"] #sessionDetail code,
body[data-view="sessions"] #sessionDetail td,
body[data-view="sessions"] #sessionDetail strong{
  overflow-wrap:anywhere;
}

@media(min-width:1024px){
  body[data-view="sessions"] #app{
    height:100%;
    max-height:100%;
  }
}

@media(min-width:1024px) and (max-width:1439px){
  body{
    grid-template-columns:68px minmax(0,1fr);
  }

  .sidebar{
    padding:14px 8px;
  }

  .brand-block{
    display:grid;
    min-height:46px;
    place-items:center;
    padding:0 0 12px;
  }

  .brand-title,
  .brand-subtitle{
    display:none;
  }

  .brand-mark{
    width:34px;
    overflow:hidden;
    font-size:0;
  }

  .brand-mark::first-letter{
    font-size:12px;
  }

  #nav button{
    grid-template-columns:1fr;
    place-items:center;
    padding:8px;
  }

  #nav .nav-label,
  #nav .nav-group-title strong{
    display:none;
  }

  .nav-sub{
    margin-left:0;
    padding-left:0;
    border-left:0;
  }

  .nav-group-title{
    grid-template-columns:1fr!important;
  }

  .page{
    padding-right:20px;
    padding-left:20px;
  }

  .identity-menu>summary{
    width:36px;
    padding:5px;
  }

  .identity-menu .auth-user{
    display:none;
  }

  .dashboard-groups{
    grid-template-columns:1fr;
  }

  .compact-metrics{
    grid-template-columns:repeat(3,minmax(0,1fr));
  }
}

@media(max-width:1023px){
  html,
  body{
    height:100%;
    overflow:hidden;
  }

  body{
    display:block;
    width:100%;
  }

  .sidebar{
    position:fixed;
    inset:0 auto 0 0;
    display:none;
    width:min(280px,82vw);
    height:100vh;
    padding:18px 12px;
  }

  body.nav-open .sidebar{
    display:block;
  }

  .nav-backdrop{
    position:fixed;
    inset:0;
    z-index:29;
    width:100%;
    height:100%;
    border:0;
    border-radius:0;
    background:rgba(15,24,23,.38);
  }

  body.nav-open .nav-backdrop{
    display:block;
  }

  .page{
    display:flex;
    width:100%;
    height:100vh;
    padding:14px 16px 18px;
    overflow:hidden;
  }

  .topbar{
    position:relative;
    top:auto;
    grid-template-columns:auto minmax(0,1fr) auto;
    margin-bottom:8px;
    background:var(--bg);
  }

  .nav-menu-button{
    display:inline-grid;
  }

  .identity-menu>summary{
    width:36px;
    padding:5px;
  }

  .identity-menu .auth-user{
    display:none;
  }

  .identity-popover,
  .environment-popover{
    position:fixed;
    top:62px;
    right:16px;
  }

  #globalFilters{
    position:relative;
    top:auto;
    margin-bottom:10px;
  }

  .filter-disclosure:not([open])>summary{
    min-height:40px;
  }

  .filter-toolbar{
    align-items:stretch;
  }

  .filter-toolbar label,
  .filter-toolbar input,
  .filter-toolbar select,
  .filter-toolbar>button{
    width:100%;
    min-width:0;
  }

  #app{
    width:100%;
    max-width:100%;
    min-height:0;
    padding-right:0;
    overflow:auto;
    overflow-x:hidden;
  }

  #app>.panel,
  #app>.grid-2>.panel,
  #app>.grid-3>.panel{
    max-height:none;
  }

  .panel,
  .panel-body{
    min-width:0;
    overflow:visible;
  }

  .table-wrap{
    width:100%;
    max-width:100%;
    max-height:none;
    overflow-x:auto;
    overflow-y:visible;
  }

  .grid-2,
  .grid-3,
  .metrics,
  .dashboard-groups{
    grid-template-columns:1fr;
  }

  .compact-metrics{
    grid-template-columns:repeat(3,minmax(0,1fr));
  }

  .page-commandbar{
    align-items:flex-start;
  }

  .page-commandbar>div{
    flex-wrap:wrap;
  }

  body[data-view="login"] .page{
    height:100vh;
  }

  body[data-view="login"] .topbar{
    grid-template-columns:minmax(0,1fr) auto;
  }

  body[data-view="sessions"] #app{
    height:auto;
    max-height:none;
    overflow:hidden;
  }

  body[data-view="sessions"] .session-layout{
    display:block;
    height:100%;
    overflow:hidden;
  }

  body[data-view="sessions"] .session-layout>.panel{
    height:100%;
  }

  body[data-view="sessions"] .session-layout>.panel:first-child{
    display:flex;
  }

  body[data-view="sessions"] .session-layout>.panel:nth-child(2){
    display:none;
  }

  body[data-view="sessions"] .session-layout.detail-open>.panel:first-child{
    display:none;
  }

  body[data-view="sessions"] .session-layout.detail-open>.panel:nth-child(2){
    display:flex;
  }

  body[data-view="sessions"] .session-layout>.panel>.panel-body{
    overflow:auto;
  }

  body[data-view="sessions"] #sessionDetail{
    height:auto;
    overflow:visible;
  }

  .session-table{
    display:none;
  }

  .session-card-list{
    display:grid;
    gap:8px;
    overflow:auto;
  }

  .session-list-card{
    display:grid;
    width:100%;
    gap:7px;
    padding:12px;
    border:1px solid var(--line);
    background:var(--panel);
    color:var(--text);
    text-align:left;
  }

  .session-list-card>span{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:8px;
    min-width:0;
    color:var(--muted);
    font-size:12px;
  }

  .session-list-card strong{
    color:var(--brand-strong);
    font-size:14px;
  }

  .session-back{
    display:inline-flex;
  }

  .detail-summary,
  .v03-summary,
  body[data-view="sessions"] #sessionDetail .recording-summary{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }

  .detail-section .table-wrap table,
  body[data-view="sessions"] #sessionDetail .detail-section:not(.two-col) .table-wrap table{
    min-width:760px;
  }
}

@media(max-width:640px){
  .page{
    padding:12px;
  }

  .topbar{
    gap:8px;
  }

  .page-heading .eyebrow{
    display:none;
  }

  .page-heading h1{
    font-size:20px;
    line-height:28px;
  }

  .top-actions{
    gap:5px;
  }

  .login-card{
    padding:20px;
  }

  .compact-metrics,
  .detail-summary,
  .v03-summary,
  body[data-view="sessions"] #sessionDetail .recording-summary{
    grid-template-columns:1fr 1fr;
  }

  .page-commandbar{
    display:grid;
  }

  .page-commandbar>div,
  .page-commandbar>button{
    width:100%;
  }

  .page-commandbar .segmented button{
    flex:1 1 0;
  }

  .side-drawer{
    width:100vw;
    padding:14px;
  }

  .side-drawer .toolbar{
    grid-template-columns:1fr;
  }

  .environment-actions{
    grid-template-columns:1fr;
  }
}

/* V0.3.6 UI-DEV-05R/06R: high-fidelity structure with unchanged functions. */
body[data-view="sessions"] .session-layout{
  grid-template-columns:minmax(300px,32fr) minmax(620px,68fr);
  gap:12px;
}

body[data-view="sessions"] .session-layout>.panel{
  padding:0;
}

body[data-view="sessions"] .session-layout>.panel>.panel-head{
  min-height:46px;
  margin:0;
  padding:10px 12px;
  border-bottom:1px solid var(--line);
}

body[data-view="sessions"] .session-layout>.panel>.panel-body{
  padding:10px 12px 12px;
}

body[data-view="sessions"] .session-card-list{
  display:grid;
  grid-auto-rows:max-content;
  align-content:start;
  min-height:0;
  gap:0;
  overflow:auto;
  border:1px solid var(--line);
  border-radius:6px;
  background:var(--panel);
}

body[data-view="sessions"] .session-list-card{
  display:grid;
  width:100%;
  gap:5px;
  padding:11px 12px;
  border:0;
  border-bottom:1px solid var(--line);
  border-radius:0;
  background:var(--panel);
  color:var(--text);
  text-align:left;
}

body[data-view="sessions"] .session-list-card:last-child{
  border-bottom:0;
}

body[data-view="sessions"] .session-list-card.active{
  box-shadow:inset 3px 0 var(--brand);
  background:#eaf1ef;
}

body[data-view="sessions"] .session-list-card>span{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:8px;
  min-width:0;
  color:var(--muted);
  font-size:12px;
  line-height:1.45;
}

body[data-view="sessions"] .session-list-card strong{
  min-width:0;
  overflow:hidden;
  color:var(--brand-strong);
  font-size:14px;
  text-overflow:ellipsis;
  white-space:nowrap;
}

.session-detail-header{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:16px;
  padding:4px 2px 12px;
  border-bottom:1px solid var(--line);
}

.session-detail-header .session-id{
  display:block;
  margin-bottom:4px;
  color:var(--muted);
  font-family:Consolas,monospace;
  font-size:12px;
}

.session-detail-header h2{
  color:var(--brand-strong);
  font-size:20px;
  line-height:1.35;
}

.session-detail-header p{
  margin:4px 0 0;
  color:var(--muted);
  font-size:13px;
}

.session-section{
  padding:14px 2px;
  border-bottom:1px solid var(--line);
}

.session-section-head{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:12px;
  margin-bottom:10px;
}

.session-section-head h3{
  margin:0 0 2px;
  color:var(--brand-strong);
  font-size:16px;
}

.session-section-head p{
  margin:0;
  color:var(--muted);
  font-size:12px;
  line-height:1.5;
}

.session-product-grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:8px;
}

.session-product-card{
  min-width:0;
  padding:10px;
  border:1px solid var(--line);
  border-radius:6px;
  background:var(--panel);
}

.session-product-head{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:8px;
}

.session-product-head>div{
  display:grid;
  min-width:0;
  gap:2px;
}

.session-product-head strong{
  overflow:hidden;
  color:var(--brand-strong);
  font-size:14px;
  text-overflow:ellipsis;
  white-space:nowrap;
}

.session-product-head span,
.session-product-meta{
  color:var(--muted);
  font-size:11px;
}

.session-stage-grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:4px;
  margin-top:9px;
}

.session-stage-grid .stage-pill{
  justify-content:center;
  border-radius:5px;
  padding:4px 3px;
}

.session-product-meta{
  display:grid;
  gap:2px;
  margin-top:8px;
  line-height:1.45;
}

.session-profile-grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:8px;
}

.session-profile-card{
  min-width:0;
  padding:10px;
  border:1px solid var(--line);
  border-radius:6px;
  background:var(--panel-2);
}

.session-profile-card.complete{
  background:#f4f8f6;
}

.session-profile-card>div{
  display:flex;
  justify-content:space-between;
  gap:8px;
}

.session-profile-card strong{
  color:var(--brand-strong);
  font-size:13px;
}

.session-profile-card time,
.session-profile-card>span{
  color:var(--muted);
  font-size:11px;
}

.session-profile-card p{
  min-height:38px;
  margin:7px 0;
  color:var(--text);
  font-size:12px;
  line-height:1.55;
}

.session-timeline{
  display:grid;
}

.session-event{
  display:grid;
  grid-template-columns:58px 72px minmax(0,1fr);
  gap:8px;
  padding:9px 0;
  border-bottom:1px solid var(--line);
  font-size:12px;
}

.session-event:last-child{
  border-bottom:0;
}

.session-event time,
.session-event>span{
  color:var(--muted);
}

.session-event strong{
  color:var(--brand-strong);
  font-size:13px;
}

.session-event p{
  margin:3px 0 0;
  color:var(--muted);
  line-height:1.5;
}

.session-layer-grid{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:8px;
}

.session-layer-grid article{
  display:grid;
  grid-template-columns:22px minmax(0,1fr) auto;
  gap:6px;
  min-width:0;
  padding:10px;
  border:1px solid var(--line);
  border-radius:6px;
  background:var(--panel);
}

.session-layer-grid b{
  display:grid;
  width:20px;
  height:20px;
  place-items:center;
  border-radius:50%;
  background:var(--brand);
  color:#fff;
  font-size:11px;
}

.session-layer-grid strong{
  color:var(--brand-strong);
  font-size:13px;
}

.session-layer-grid em{
  color:var(--brand-strong);
  font-size:16px;
  font-style:normal;
  font-weight:800;
}

.session-layer-grid p{
  grid-column:1/-1;
  margin:2px 0 0;
  color:var(--muted);
  font-size:11px;
  line-height:1.45;
}

.session-fact-list,
.session-chain-list{
  display:grid;
  gap:7px;
}

.session-fact-list article,
.session-chain-list article{
  padding:9px 10px;
  border:1px solid var(--line);
  border-radius:6px;
  background:var(--panel);
}

.session-fact-list article>div,
.session-chain-list article>div{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:8px;
}

.session-fact-list p,
.session-fact-list span,
.session-chain-list p{
  margin:4px 0 0;
  color:var(--muted);
  font-size:12px;
  line-height:1.5;
}

.session-chain-list{
  margin-top:8px;
}

.session-chain-list article{
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  gap:4px 10px;
  align-items:center;
}

.session-chain-list article>div,
.session-chain-list article>p{
  grid-column:1;
}

.session-chain-list button{
  grid-column:2;
  grid-row:1/3;
}

.session-technical{
  margin:14px 2px 4px;
}

/* Shared page density: retain every function while keeping primary work above support data. */
body[data-view="dashboard"] #app,
body[data-view="org"] #app,
body[data-view="sku"] #app,
body[data-view="account"] #app,
body[data-view="dataPrep"] #app,
body[data-view="quality"] #app,
body[data-view="config"] #app,
body[data-view="aiReserved"] #app,
body[data-view="export"] #app,
body[data-view="privacy"] #app,
body[data-view="audit"] #app{
  gap:12px;
}

body:not([data-view="sessions"]) #app>.panel,
body:not([data-view="sessions"]) #app>.grid-2>.panel,
body:not([data-view="sessions"]) #app>.grid-3>.panel{
  border-radius:6px;
  box-shadow:none;
}

body:not([data-view="sessions"]) #app .metric{
  border-radius:6px;
  box-shadow:none;
}

body:not([data-view="sessions"]) #app .metric strong{
  font-size:20px;
}

body[data-view="dataPrep"] .data-prep-layout,
body[data-view="quality"] .governance-layout{
  align-items:start;
}

body[data-view="dataPrep"] details,
body[data-view="quality"] details,
body[data-view="config"] details,
body[data-view="export"] details,
body[data-view="audit"] details{
  border-radius:6px;
}

@media(max-width:1439px){
  body[data-view="sessions"] .session-layout{
    grid-template-columns:minmax(280px,35fr) minmax(520px,65fr);
  }

  .session-product-grid,
  .session-profile-grid{
    grid-template-columns:1fr;
  }

  .session-layer-grid{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
}

@media(max-width:1024px){
  body[data-view="sessions"] .session-layout{
    display:block;
  }

  body[data-view="sessions"] .session-card-list{
    display:grid;
  }

  body[data-view="sessions"] .session-layout>.panel>.panel-body{
    padding:10px;
  }

  .session-event{
    grid-template-columns:54px 64px minmax(0,1fr);
  }
}

@media(max-width:640px){
  .session-layer-grid{
    grid-template-columns:1fr;
  }

  .session-event{
    grid-template-columns:48px minmax(0,1fr);
  }

  .session-event>span{
    grid-column:2;
    grid-row:1;
    text-align:right;
  }

  .session-event>div{
    grid-column:1/-1;
  }

  .session-chain-list article{
    grid-template-columns:1fr;
  }

  .session-chain-list article>div,
  .session-chain-list article>p,
  .session-chain-list button{
    grid-column:1;
    grid-row:auto;
  }
}

/* UI-DEV-06: WebAdmin data governance pages */
.governance-conclusion{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:18px;
  margin-bottom:14px;
  padding:14px 16px;
  border:1px solid var(--line);
  border-left:4px solid var(--success);
  border-radius:7px;
  background:var(--panel);
}

.governance-conclusion.warning{
  border-left-color:var(--warning);
}

.governance-conclusion>div{
  display:grid;
  gap:3px;
  min-width:0;
}

.governance-conclusion span,
.governance-conclusion p{
  margin:0;
  color:var(--muted);
  font-size:12px;
  line-height:18px;
}

.governance-conclusion strong{
  color:var(--brand-strong);
  font-size:16px;
  line-height:24px;
}

.confirm-message{
  display:grid;
  gap:8px;
  padding:4px 2px 18px;
}

.confirm-message strong{
  font-size:16px;
  line-height:24px;
}

.confirm-message p{
  margin:0;
  color:var(--muted);
  font-size:13px;
  line-height:20px;
}

.modal-actions{
  display:flex;
  justify-content:flex-end;
  gap:8px;
  padding-top:14px;
  border-top:1px solid var(--line);
}

button.danger-action{
  border-color:var(--danger);
  background:var(--danger);
  color:#fff;
}

.id-cell{
  display:flex;
  align-items:center;
  gap:6px;
  min-width:0;
}

.id-cell>strong,
.id-cell>span{
  min-width:0;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}

.id-cell .icon-button{
  flex:0 0 auto;
  width:auto;
  min-width:38px;
  padding:5px 7px;
  font-size:11px;
}

body[data-view="dataPrep"] .governance-conclusion{
  margin-bottom:12px;
}

body[data-view="dataPrep"] .data-prep-contract{
  margin-top:16px;
}

body[data-view="dataPrep"] .data-prep-contract-body{
  display:grid;
  gap:12px;
  padding-top:12px;
}

body[data-view="dataPrep"] .no-go-section{
  display:grid;
  gap:8px;
}

body[data-view="dataPrep"] .no-go-section h3{
  margin:0;
  font-size:14px;
}

body[data-view="quality"] .quality-domainbar{
  margin:0;
}

body[data-view="quality"] .quality-domainbar .segmented{
  width:min(720px,100%);
}

body[data-view="quality"] .quality-domainbar .segmented button{
  flex:1 1 0;
  justify-content:center;
}

body[data-view="quality"] .quality-domainbar .segmented span{
  color:inherit;
  font-size:11px;
}

body[data-view="quality"] .quality-filterbar{
  margin:0;
}

body[data-view="quality"] .quality-governance-workspace{
  grid-template-columns:minmax(620px,1.25fr) minmax(360px,.75fr);
  align-items:start;
}

body[data-view="quality"] .quality-governance-workspace>.panel:last-child{
  position:sticky;
  top:12px;
}

body[data-view="quality"] .quality-sync-workspace{
  display:grid;
  gap:16px;
}

body[data-view="quality"] .quality-sync-workspace>.panel .table-wrap{
  max-height:none;
}

body[data-view="quality"] .quality-contract{
  margin:0;
}

body[data-view="config"] .config-commandbar{
  margin-top:0;
}

body[data-view="config"] .v03-config-versions{
  grid-template-columns:minmax(620px,1.25fr) minmax(340px,.75fr);
  align-items:start;
}

body[data-view="config"] .v03-config-versions>.panel:last-child{
  position:sticky;
  top:12px;
}

body[data-view="aiReserved"] .ai-reserved-hero{
  margin-bottom:16px;
}

body[data-view="aiReserved"] .ai-history>.panel{
  margin-top:12px;
}

body[data-view="export"] .export-secondary{
  margin-top:0;
}

body[data-view="export"] .id-cell{
  max-width:220px;
}

body[data-view="privacy"] .privacy-metrics{
  grid-template-columns:repeat(6,minmax(0,1fr));
}

body[data-view="privacy"] .privacy-workspace{
  grid-template-columns:minmax(680px,1.35fr) minmax(340px,.65fr);
  align-items:start;
}

body[data-view="privacy"] .privacy-workspace>.panel:last-child{
  position:sticky;
  top:12px;
}

body[data-view="privacy"] .privacy-create-drawer{
  width:min(520px,100vw);
}

body[data-view="privacy"] .privacy-create-form{
  display:grid;
  grid-template-columns:1fr;
}

body[data-view="privacy"] .privacy-create-form>*{
  width:100%;
}

body[data-view="privacy"] .privacy-actions{
  display:flex;
  flex-wrap:wrap;
  gap:5px;
}

body[data-view="audit"] .audit-detail-drawer{
  width:min(620px,100vw);
}

body[data-view="audit"] .audit-id{
  max-width:190px;
}

body[data-view="audit"] .audit-detail-drawer pre{
  max-height:320px;
  overflow:auto;
  white-space:pre-wrap;
  overflow-wrap:anywhere;
}

@media(max-width:1100px){
  body[data-view="quality"] .quality-governance-workspace,
  body[data-view="config"] .v03-config-versions,
  body[data-view="privacy"] .privacy-workspace{
    grid-template-columns:1fr;
  }

  body[data-view="quality"] .quality-governance-workspace>.panel:last-child,
  body[data-view="config"] .v03-config-versions>.panel:last-child,
  body[data-view="privacy"] .privacy-workspace>.panel:last-child{
    position:static;
  }

  body[data-view="privacy"] .privacy-metrics{
    grid-template-columns:repeat(3,minmax(0,1fr));
  }
}

@media(max-width:760px){
  .governance-conclusion{
    align-items:flex-start;
    flex-direction:column;
  }

  body[data-view="quality"] .quality-domainbar .segmented{
    display:grid;
    width:100%;
  }

  body[data-view="quality"] .quality-domainbar .segmented button{
    width:100%;
  }

  body[data-view="privacy"] .privacy-metrics{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }

  body[data-view="privacy"] .privacy-commandbar>button{
    width:100%;
  }

  .modal-actions{
    display:grid;
    grid-template-columns:1fr 1fr;
  }
}

/* UI-DEV-05R/06R closure: reception readability and export workflow. */
#globalFilters:has(.filter-disclosure:not([open])){
  border-color:#e1e6e3;
  background:rgba(255,255,255,.72);
  box-shadow:none;
}

.filter-disclosure:not([open])>summary{
  min-height:36px;
  padding:0 12px;
}

.filter-disclosure:not([open])>summary strong{
  font-size:12px;
}

.filter-disclosure:not([open])>summary span{
  font-size:11px;
}

.state-message.neutral{
  border-left-color:var(--brand-2);
  background:var(--panel-2);
}

.technical-code{
  margin-left:6px;
  color:var(--muted);
  font-size:11px;
  font-weight:400;
}

@media(min-width:1440px){
  body[data-view="sessions"] .session-layout{
    grid-template-columns:minmax(430px,40fr) minmax(0,60fr);
  }
}

@media(min-width:1024px) and (max-width:1439px){
  body[data-view="sessions"] .session-layout{
    grid-template-columns:minmax(390px,38fr) minmax(0,62fr);
  }
}

body[data-view="sessions"] .session-list-card{
  gap:7px;
  padding:11px 12px 10px;
}

body[data-view="sessions"] .session-list-card.active{
  border-color:#a9bbb6;
  background:#e6efec;
  box-shadow:inset 4px 0 var(--brand);
}

body[data-view="sessions"] .session-list-card:hover{
  background:#f4f7f6;
}

body[data-view="sessions"] .session-list-card.active:hover{
  background:#e6efec;
}

body[data-view="sessions"] .session-list-card .session-list-main{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  min-width:0;
}

body[data-view="sessions"] .session-list-main strong{
  flex:1 1 auto;
  min-width:0;
}

body[data-view="sessions"] .session-list-main .tag{
  flex:0 0 auto;
}

body[data-view="sessions"] .session-list-card .session-list-meta{
  display:grid;
  grid-template-columns:minmax(150px,1.45fr) minmax(76px,.8fr) minmax(48px,.45fr);
  gap:8px;
  min-width:0;
  color:var(--muted);
  font-size:12px;
  line-height:1.4;
}

body[data-view="sessions"] .session-list-meta>span{
  min-width:0;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}

body[data-view="sessions"] .session-list-card .session-list-stages{
  display:block;
  min-width:0;
}

body[data-view="sessions"] .session-list-stages .stage-mini{
  gap:5px;
  min-width:0;
}

body[data-view="sessions"] .session-list-stages .stage-pill{
  flex:0 0 auto;
  min-width:44px;
  justify-content:center;
}

body[data-view="sessions"] .session-list-stages small{
  margin-left:auto;
  white-space:nowrap;
}

body[data-view="sessions"] .session-list-card .session-list-governance{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:5px;
  min-width:0;
}

body[data-view="sessions"] .session-list-governance>span{
  display:grid;
  min-width:0;
  gap:1px;
  padding-top:5px;
  border-top:1px solid #e4e9e6;
}

body[data-view="sessions"] .session-list-governance em{
  color:var(--muted);
  font-size:10px;
  font-style:normal;
  line-height:1.3;
}

body[data-view="sessions"] .session-list-governance b{
  min-width:0;
  overflow:hidden;
  color:var(--text);
  font-size:11px;
  font-weight:700;
  line-height:1.35;
  text-overflow:ellipsis;
  white-space:nowrap;
}

.session-product-head .session-highest-stage{
  flex:0 0 auto;
  padding:3px 6px;
  border-radius:999px;
  background:var(--panel-2);
  color:var(--brand-strong);
  font-size:10px;
  font-weight:700;
  white-space:nowrap;
}

.session-product-meta{
  display:flex;
  flex-wrap:wrap;
  gap:5px 8px;
}

.session-product-meta>span{
  white-space:nowrap;
}

.session-profile-card.empty-state{
  background:#fafbfa;
}

.session-profile-card.empty-state p{
  color:var(--muted);
}

.session-timeline{
  position:relative;
}

.session-event{
  position:relative;
  grid-template-columns:60px 48px minmax(0,1fr);
  gap:8px;
  padding:9px 0;
}

.session-event:before{
  position:absolute;
  top:0;
  bottom:0;
  left:83px;
  width:1px;
  background:#dce3e0;
  content:"";
}

.session-event:first-child:before{
  top:18px;
}

.session-event:last-child:before{
  bottom:calc(100% - 18px);
}

.session-event .session-event-seq{
  position:relative;
  z-index:1;
  justify-self:start;
  min-width:34px;
  padding:2px 5px;
  border:1px solid var(--line);
  border-radius:999px;
  background:var(--panel);
  text-align:center;
}

body[data-view="export"] .export-flow{
  display:grid;
  gap:12px;
}

body[data-view="export"] .export-flow>.panel{
  max-height:none;
}

body[data-view="export"] .export-create{
  display:grid;
  grid-template-columns:minmax(250px,1.2fr) minmax(220px,1fr) minmax(130px,.45fr);
  gap:8px;
  align-items:center;
}

body[data-view="export"] .export-create>*{
  width:100%;
  min-width:0;
}

body[data-view="export"] .export-task-table{
  min-width:0;
}

body[data-view="export"] .export-task-table>.table-wrap{
  width:100%;
  max-height:360px;
}

body[data-view="export"] .export-task-table table{
  width:100%;
  min-width:960px;
  table-layout:fixed;
}

body[data-view="export"] .export-task-table th:nth-child(1){width:19%}
body[data-view="export"] .export-task-table th:nth-child(2){width:21%}
body[data-view="export"] .export-task-table th:nth-child(3){width:8%}
body[data-view="export"] .export-task-table th:nth-child(4){width:8%}
body[data-view="export"] .export-task-table th:nth-child(5){width:6%}
body[data-view="export"] .export-task-table th:nth-child(6){width:14%}
body[data-view="export"] .export-task-table th:nth-child(7){width:12%}
body[data-view="export"] .export-task-table th:nth-child(8){width:12%}

body[data-view="export"] .export-task-table th,
body[data-view="export"] .export-task-table td{
  padding:9px 8px;
  overflow-wrap:anywhere;
}

body[data-view="export"] .export-task-table .id-cell{
  min-width:0;
}

body[data-view="export"] .export-task-table .id-cell strong{
  min-width:0;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}

body[data-view="export"] .export-actions{
  display:flex;
  flex-wrap:wrap;
  gap:5px;
}

body[data-view="export"] .export-actions button{
  min-height:30px;
  padding:5px 7px;
  font-size:12px;
  white-space:nowrap;
}

body[data-view="export"] .export-secondary{
  grid-template-columns:minmax(0,1fr) minmax(0,1fr);
  align-items:start;
}

@media(max-width:1100px){
  body[data-view="sessions"] .session-list-card .session-list-governance{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }

  body[data-view="export"] .export-secondary{
    grid-template-columns:1fr;
  }

  body[data-view="export"] .export-task-table th:last-child,
  body[data-view="export"] .export-task-table td:last-child{
    position:sticky;
    right:0;
    z-index:2;
    background:var(--panel);
    box-shadow:-8px 0 14px rgba(23,63,59,.06);
  }

  body[data-view="export"] .export-task-table th:last-child{
    z-index:3;
    background:var(--panel-2);
  }
}

@media(max-width:760px){
  body[data-view="sessions"] .session-list-card .session-list-meta{
    grid-template-columns:1fr auto;
  }

  body[data-view="sessions"] .session-list-meta>span:first-child{
    grid-column:1/-1;
  }

  body[data-view="export"] .export-create{
    grid-template-columns:1fr;
  }

  .session-event{
    grid-template-columns:48px minmax(0,1fr);
  }

  .session-event:before{
    display:none;
  }
}

/* V0.3.6 UI-DEV-06R: high-fidelity density and progressive disclosure. */
.primary-metrics{
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:8px;
  margin-bottom:10px;
}

body[data-view="dataPrep"] .data-prep-metrics,
body[data-view="quality"] .quality-metrics,
body[data-view="export"] .export-metrics{
  grid-template-columns:repeat(4,minmax(0,1fr));
}

.primary-metrics .metric{
  min-height:72px;
  padding:10px 12px;
}

.primary-metrics .metric strong{
  margin-top:3px;
  font-size:20px;
  line-height:26px;
}

.supporting-facts{
  display:flex;
  min-width:0;
  flex-wrap:wrap;
  gap:0;
  margin:0 0 12px;
  overflow:hidden;
  border:1px solid var(--line);
  border-radius:6px;
  background:var(--panel);
}

.supporting-facts>span{
  display:flex;
  align-items:center;
  gap:6px;
  min-width:120px;
  padding:7px 10px;
  border-right:1px solid var(--line);
  font-size:12px;
  line-height:18px;
}

.supporting-facts>span:last-child{
  border-right:0;
}

.supporting-facts em{
  color:var(--muted);
  font-style:normal;
}

.supporting-facts strong{
  color:var(--brand-strong);
}

body[data-view="dashboard"] #app,
body[data-view="dataPrep"] #app,
body[data-view="quality"] #app,
body[data-view="export"] #app,
body[data-view="privacy"] #app,
body[data-view="audit"] #app{
  display:flex;
  flex-direction:column;
  gap:12px;
}

body[data-view="dashboard"] #app>*,
body[data-view="dataPrep"] #app>*,
body[data-view="quality"] #app>*,
body[data-view="export"] #app>*,
body[data-view="privacy"] #app>*,
body[data-view="audit"] #app>*{
  flex:0 0 auto;
}

body[data-view="dashboard"] #app>.grid-2,
body[data-view="dashboard"] #app>.panel,
body[data-view="dataPrep"] #app>.grid-2,
body[data-view="quality"] #app>.grid-2,
body[data-view="export"] #app>.grid-2,
body[data-view="privacy"] #app>.grid-2,
body[data-view="audit"] #app>.panel{
  margin-top:0;
}

body[data-view="dataPrep"] .governance-conclusion{
  margin:0;
  padding:10px 12px;
}

body[data-view="dataPrep"] .data-prep-workspace{
  grid-template-columns:minmax(520px,1.1fr) minmax(360px,.9fr);
  align-items:start;
}

body[data-view="dataPrep"] .data-prep-workspace>.panel{
  max-height:none;
}

body[data-view="dataPrep"] .data-prep-workspace>.panel:last-child{
  position:sticky;
  top:12px;
}

body[data-view="dataPrep"] .toolbar{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:6px;
}

body[data-view="dataPrep"] .toolbar>*{
  min-width:0;
  width:100%;
}

body[data-view="dataPrep"] .toolbar input:first-of-type{
  grid-column:span 2;
}

.governance-task-list,
.quality-task-list{
  display:grid;
  gap:8px;
}

.governance-task-card,
.quality-task-card{
  display:grid;
  gap:8px;
  padding:10px;
  border:1px solid var(--line);
  border-radius:6px;
  background:var(--panel);
}

.governance-task-card.active,
.quality-task-card.active{
  border-color:var(--brand-2);
  background:#f7faf9;
  box-shadow:inset 3px 0 0 var(--brand-2);
}

.governance-task-head,
.quality-task-head{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:8px;
}

.governance-task-head>div,
.quality-task-head>div{
  display:flex;
  justify-content:flex-end;
  flex-wrap:wrap;
  gap:5px;
}

.governance-task-card .task-session,
.quality-task-card .ghost{
  min-height:28px;
  padding:4px 7px;
  border-radius:5px;
  font-family:Consolas,monospace;
  font-size:12px;
}

.task-product,
.quality-object{
  display:grid;
  justify-items:start;
  width:100%;
  min-height:0;
  gap:2px;
  padding:0;
  border:0;
  border-radius:0;
  background:transparent;
  color:var(--text);
  text-align:left;
}

.task-product strong,
.quality-object strong{
  color:var(--brand-strong);
  font-size:14px;
}

.task-product span,
.quality-object span{
  color:var(--muted);
  font-size:12px;
}

.governance-task-facts{
  display:grid;
  grid-template-columns:repeat(5,minmax(0,1fr));
  overflow:hidden;
  border:1px solid var(--line);
  border-radius:5px;
  background:var(--panel-2);
}

.governance-task-facts>span{
  display:grid;
  gap:2px;
  min-width:0;
  padding:6px 7px;
  border-right:1px solid var(--line);
}

.governance-task-facts>span:last-child{
  border-right:0;
}

.governance-task-facts em{
  color:var(--muted);
  font-size:10px;
  font-style:normal;
  line-height:15px;
}

.governance-task-facts strong{
  overflow-wrap:anywhere;
  color:var(--brand-strong);
  font-size:12px;
  line-height:17px;
}

.governance-task-note{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:6px 12px;
  color:var(--muted);
  font-size:11px;
  line-height:17px;
}

.governance-task-note span{
  min-width:0;
  overflow-wrap:anywhere;
}

.governance-task-note b{
  margin-right:5px;
  color:var(--text);
}

body[data-view="quality"] .quality-metrics{
  margin-bottom:0;
}

body[data-view="quality"] .quality-domainbar,
body[data-view="quality"] .quality-filterbar{
  margin:0;
}

body[data-view="quality"] .quality-filterbar{
  display:grid;
  grid-template-columns:auto repeat(3,minmax(150px,1fr)) auto auto;
  gap:6px;
}

body[data-view="quality"] .quality-filterbar>*{
  min-width:0;
  width:100%;
}

body[data-view="quality"] .quality-governance-workspace{
  grid-template-columns:minmax(500px,1.1fr) minmax(380px,.9fr);
}

body[data-view="quality"] .quality-governance-workspace>.panel{
  max-height:none;
}

.quality-task-card p{
  margin:0;
  color:var(--muted);
  font-size:12px;
  line-height:18px;
}

.quality-task-card .supporting-facts{
  margin:0;
  background:var(--panel-2);
}

.quality-task-card .supporting-facts>span{
  flex:1 1 160px;
}

.quality-task-action{
  justify-self:start;
  min-height:30px;
  padding:5px 9px;
}

body[data-view="config"] #app{
  gap:12px;
}

body[data-view="config"] #app>.panel,
body[data-view="config"] #app>.grid-2,
body[data-view="config"] #app>.legacy-config,
body[data-view="config"] #app>.config-disclosure{
  margin-top:0;
}

body[data-view="config"] .config-commandbar{
  order:0;
}

body[data-view="config"] .v03-template-rules{
  grid-template-columns:repeat(3,minmax(0,1fr));
}

body[data-view="config"] .v03-rule-fields>div{
  padding:7px 9px;
}

.config-disclosure{
  border-top:1px solid var(--line);
  background:transparent;
}

.config-disclosure>summary{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
  padding:12px 2px;
  color:var(--brand-strong);
  cursor:pointer;
  list-style:none;
}

.config-disclosure>summary::-webkit-details-marker{
  display:none;
}

.config-disclosure>summary:after{
  content:"+";
  flex:0 0 auto;
  color:var(--muted);
  font-size:20px;
  line-height:1;
}

.config-disclosure[open]>summary:after{
  content:"−";
}

.config-disclosure>summary span{
  margin-left:auto;
  color:var(--muted);
  font-size:12px;
  font-weight:400;
}

.config-disclosure-body{
  padding:0 0 12px;
}

.config-disclosure-body>.panel,
.config-disclosure-body>.grid-2{
  margin:0;
}

body[data-view="export"] .export-primary{
  display:grid;
  grid-template-columns:minmax(300px,.36fr) minmax(600px,.64fr);
  gap:12px;
  align-items:start;
}

body[data-view="export"] .export-primary>.panel{
  max-height:none;
}

body[data-view="export"] .export-create{
  display:grid;
  grid-template-columns:1fr;
}

body[data-view="export"] .export-create>*{
  width:100%;
}

body[data-view="export"] .export-secondary{
  margin:0;
}

body[data-view="privacy"] .privacy-metrics{
  grid-template-columns:repeat(4,minmax(0,1fr));
}

body[data-view="audit"] .toolbar{
  display:grid;
  grid-template-columns:repeat(5,minmax(130px,1fr)) repeat(2,minmax(130px,.8fr)) auto;
  gap:6px;
}

body[data-view="audit"] .toolbar>*{
  min-width:0;
  width:100%;
}

@media(max-width:1280px){
  body[data-view="dataPrep"] .toolbar{
    grid-template-columns:repeat(4,minmax(0,1fr));
  }

  body[data-view="dataPrep"] .toolbar input:first-of-type{
    grid-column:span 2;
  }

  body[data-view="export"] .export-primary{
    grid-template-columns:1fr;
  }

  body[data-view="audit"] .toolbar{
    grid-template-columns:repeat(4,minmax(0,1fr));
  }
}

@media(max-width:1100px){
  .primary-metrics{
    grid-template-columns:repeat(4,minmax(0,1fr));
  }

  body[data-view="dataPrep"] .data-prep-metrics,
  body[data-view="quality"] .quality-metrics,
  body[data-view="export"] .export-metrics{
    grid-template-columns:repeat(4,minmax(0,1fr));
  }

  body[data-view="dataPrep"] .data-prep-workspace,
  body[data-view="quality"] .quality-governance-workspace{
    grid-template-columns:1fr;
  }

  body[data-view="dataPrep"] .data-prep-workspace>.panel:last-child,
  body[data-view="quality"] .quality-governance-workspace>.panel:last-child{
    position:static;
  }

  body[data-view="config"] .v03-template-rules{
    grid-template-columns:repeat(3,minmax(240px,1fr));
    overflow:auto;
  }
}

@media(min-width:900px) and (max-width:1100px){
  body[data-view="dataPrep"] .data-prep-workspace,
  body[data-view="quality"] .quality-governance-workspace{
    grid-template-columns:minmax(470px,1.08fr) minmax(340px,.92fr);
  }
}

@media(max-width:760px){
  .primary-metrics,
  body[data-view="privacy"] .privacy-metrics,
  body[data-view="dataPrep"] .data-prep-metrics,
  body[data-view="quality"] .quality-metrics,
  body[data-view="export"] .export-metrics{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }

  .supporting-facts>span{
    flex:1 1 50%;
    border-bottom:1px solid var(--line);
  }

  body[data-view="dataPrep"] .toolbar,
  body[data-view="quality"] .quality-filterbar,
  body[data-view="audit"] .toolbar{
    grid-template-columns:1fr;
  }

  body[data-view="dataPrep"] .toolbar input:first-of-type{
    grid-column:auto;
  }

  .governance-task-facts{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }

  .governance-task-facts>span{
    border-bottom:1px solid var(--line);
  }

  .governance-task-note{
    grid-template-columns:1fr;
  }

  .config-disclosure>summary{
    align-items:flex-start;
    flex-wrap:wrap;
  }

  .config-disclosure>summary span{
    order:3;
    width:100%;
    margin:0;
  }
}

/* Final cascade guards for the approved reception and export composition. */
.session-product-grid{
  grid-template-columns:repeat(auto-fit,minmax(min(210px,100%),1fr));
}

@media(min-width:769px){
  body[data-view="export"] .export-create{
    grid-template-columns:minmax(250px,1.2fr) minmax(220px,1fr) minmax(130px,.45fr);
  }
}

@media(max-width:768px){
  body[data-view="export"] .export-create{
    grid-template-columns:1fr;
  }
}

/* B1 existing compatibility surface: visible focus and usable constrained viewports. */
:where(button,a,input,select,textarea,summary,[tabindex]):focus-visible { outline:3px solid #245fc5 !important;outline-offset:3px;scroll-margin:100px 16px; }
.skip-link {position:fixed;left:12px;top:-100px;z-index:9999;padding:12px;background:#fff;color:#17345d;}
.skip-link:focus {top:12px;}
.form-field>label {display:flex;flex-direction:column;gap:6px;min-width:0;}
[inert] {pointer-events:none;}
.modal-backdrop {overflow:auto;padding:16px;align-items:center;}
.modal-card {max-width:calc(100vw - 32px);max-height:calc(100dvh - 32px);display:flex;flex-direction:column;min-height:0;}
.modal-head {flex-shrink:0;}
.modal-body {overflow:auto;min-height:0;overflow-wrap:anywhere;}
.side-drawer {max-width:calc(100vw - 24px);max-height:calc(100dvh - 24px);overflow:auto;}
.table-wrap {max-width:100%;overflow:auto;}
body[data-view="audit"] .table-wrap table {min-width:1080px;}
body[data-view="audit"] .table-wrap th,
body[data-view="audit"] .table-wrap td:nth-child(2),
body[data-view="audit"] .table-wrap td:nth-child(3),
body[data-view="audit"] .table-wrap td:nth-child(4) {white-space:nowrap;}
/* The approved narrow single-pane layout restores three profile stages. */
@media (min-width:768px) and (max-width:1023px){
  body[data-view="sessions"] .session-profile-grid {grid-template-columns:repeat(3,minmax(0,1fr));}
}
/* Keep SKU field headings readable; narrow screens scroll within the table. */
body[data-view="sku"] .sku-workspace > .panel:first-child .table-wrap table {min-width:1100px;}
body[data-view="sku"] .sku-workspace > .panel:first-child .table-wrap th {white-space:nowrap;}
body[data-view="sku"] .sku-workspace > .panel:first-child .table-wrap td:nth-child(3) {min-width:220px;max-width:360px;overflow-wrap:anywhere;}
.page,#app,.panel,.panel-body,.grid-2>* {min-width:0;}
button,input,select,textarea {max-width:100%;}
@media(max-width:760px){
 .topbar {position:relative;flex-wrap:wrap;gap:8px;}
 .top-actions {max-width:100%;flex-wrap:wrap;}
 .environment-popover,.identity-popover {max-width:calc(100vw - 24px);max-height:70dvh;overflow:auto;}
 .modal-actions,.toolbar {flex-wrap:wrap;}
 .modal-actions>button {min-height:44px;}
 .side-drawer {top:12px !important;bottom:12px !important;height:auto !important;max-height:calc(100dvh - 24px);}
 .login-shell,.login-card {min-width:0;max-width:100%;}
}
.dcs-asset-console [hidden]{display:none!important}

/* Preserve the existing tasks and counters; give the work queue its own row. */
body[data-view="dashboard"] #app > .grid-2 {display:flex;flex-direction:column;gap:12px;}
body[data-view="dashboard"] #app > .grid-2 > .panel {width:100%;min-height:0;}
body[data-view="dashboard"] #app > .grid-2 > .panel:last-child {order:-1;}
body[data-view="dashboard"] #app > .grid-2 .table-wrap table {min-width:780px;}
body[data-view="dashboard"] .topbar .page-heading {min-width:0;flex:1;}
body[data-view="dashboard"] #envLine {overflow-wrap:anywhere;}
body[data-view="org"] .org-primary-relations {margin:12px 0;}
body[data-view="org"] .org-primary-relations .table-wrap table {min-width:620px;}
body[data-view="org"] #app > .grid-2:empty {display:none;}
body[data-view="account"] #app.account-workspace {align-content:start;grid-auto-rows:max-content;}
body[data-view="account"] #app.account-workspace > .panel {min-height:0;}
@media(max-width:900px){
  body[data-view="config"] .v03-template-rules {grid-template-columns:minmax(0,1fr);overflow:visible;max-height:none;}
}

/* V0.5 cumulative visual acceptance: real-field rule summary and comparable issue rows. */
body[data-view="quality"] .quality-governance-workspace{grid-template-columns:minmax(0,1fr)}
body[data-view="quality"] .quality-governance-workspace>.panel:last-child{position:static}
.quality-queue-table{min-width:820px;width:100%}
.quality-queue-table .quality-task-card{display:table-row;border:0;border-radius:0;padding:0;background:transparent}
.quality-queue-table .quality-task-card.active{background:var(--panel-2)}
.quality-queue-table td{vertical-align:top;padding:10px 12px}
.quality-queue-table td:first-child{width:30%}
.quality-queue-table td:nth-child(2){width:25%}
.quality-queue-table p{margin:5px 0 0;line-height:1.5;overflow-wrap:anywhere}
.quality-queue-table .quality-object{margin:0;text-align:left}
.quality-queue-table .tag{margin:0 4px 4px 0}
.quality-queue-table .quality-task-action{margin:0;white-space:nowrap}
.quality-governance-workspace .quality-task-list{display:block;max-height:440px;overflow:auto}
.config-release-overview .kv{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px 16px}
.config-release-overview .kv>*{min-width:0;overflow-wrap:anywhere}
.config-release-overview .template-summary{margin-top:10px}
.config-release-overview .template-summary .metric{padding:6px 10px}
.config-release-overview .template-summary .metric strong{font-size:17px}
@media(max-width:1100px){.config-release-overview .kv{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:780px){.config-release-overview .kv{grid-template-columns:minmax(0,1fr)}.quality-queue-table{min-width:760px}}

/* Comparable data-preparation rows and bounded review selection preserve all source items. */
body[data-view="dataPrep"] .data-prep-workspace{grid-template-columns:minmax(0,1fr)}
body[data-view="dataPrep"] .data-prep-workspace>.panel:last-child{position:static}
body[data-view="dataPrep"] #app .data-prep-table{width:100%;min-width:640px;table-layout:fixed}
body[data-view="dataPrep"] #app .data-prep-table-scroll{max-height:480px;overflow:auto}
.data-prep-table .governance-task-card{display:table-row;padding:0;border:0;border-radius:0;background:transparent}
.data-prep-table .governance-task-card.active{background:var(--panel-2)}
.data-prep-table td{vertical-align:top;padding:10px 12px}
.data-prep-table th:first-child{width:36%}
.data-prep-table th:nth-child(2){width:23%}
.data-prep-table th:nth-child(3){width:25%}
.data-prep-table th:last-child{width:16%}
.data-prep-table td{overflow-wrap:anywhere}
.data-prep-table button{max-width:100%;white-space:normal;overflow-wrap:anywhere}
.prep-row-evidence summary{cursor:pointer;color:var(--brand);min-height:32px}
.prep-row-evidence[open]{min-width:0}
.data-prep-table p{margin:0 0 5px;line-height:1.45;overflow-wrap:anywhere}
.data-prep-table .task-product{text-align:left;margin-top:5px}
.data-prep-table .tag{margin:0 4px 5px 0}
@media(min-width:1024px){
  body[data-view="dataPrep"] .data-prep-workspace{grid-template-columns:minmax(0,3fr) minmax(280px,2fr);align-items:start}
  body[data-view="dataPrep"] .data-prep-workspace>.panel:last-child{position:sticky;top:12px}
  body[data-view="dataPrep"] .data-prep-workspace .toolbar{grid-template-columns:repeat(2,minmax(0,1fr))}
}
[data-decision-sessions]{max-height:240px;overflow:auto;align-content:start;padding:4px}
[data-decision-sessions]>button{flex:0 0 auto}
.decision-review-detail{scroll-margin-top:100px}
#improvementContent>form.toolbar{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));align-items:end}
#improvementContent>form.toolbar>label{display:flex;flex-direction:column;gap:6px;min-width:0}
@media(max-width:1024px){#improvementContent>form.toolbar{grid-template-columns:repeat(2,minmax(0,1fr))}}

/* Tablet navigation keeps readable labels; 1024 must not also use the mobile drawer. */
@media(min-width:1024px) and (max-width:1439px){
  body{grid-template-columns:200px minmax(0,1fr)}
  .sidebar{padding:14px 10px}
  .brand-block{display:block;padding:0 8px 12px}
  .brand-mark{width:auto;font-size:12px}
  .brand-title,.brand-subtitle{display:block}
  #nav button{grid-template-columns:24px minmax(0,1fr);place-items:stretch;align-items:center;padding:8px}
  #nav .nav-label,#nav .nav-group-title strong{display:block}
  #nav .nav-group-title{grid-template-columns:24px minmax(0,1fr) 16px!important}
  .topbar{grid-template-columns:minmax(0,1fr) auto}
  body[data-view="sessions"] .session-layout{display:grid;grid-template-columns:minmax(250px,35fr) minmax(0,65fr)}
}


body[data-view="dataPrep"] #dataPrepDetail .governance-summary{grid-template-columns:repeat(2,minmax(0,1fr))}



/* Whole-package visual closure: preserve API statistics and organization contracts. */
.dashboard-reception-notice{display:flex;flex-direction:column;gap:4px;padding:12px 16px;border:1px solid var(--warning);border-radius:8px;background:var(--warning-bg);color:var(--warning);font-size:13px}
.dashboard-stage-cards{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));border:1px solid var(--line);border-radius:8px;overflow:hidden}
.dashboard-stage-card{display:flex;flex-direction:column;gap:12px;padding:16px;background:var(--panel-2);border-right:1px solid var(--line);min-width:0;overflow-wrap:anywhere}
.dashboard-stage-card:last-child{border-right:0}
.dashboard-stage-card>strong{font-size:24px;color:var(--brand-strong)}
body[data-view="org"] #app>.org-top-metrics{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0;margin-bottom:16px;border:1px solid var(--line);border-radius:8px;background:var(--panel)}
.org-top-metrics .metric{border:0;border-right:1px solid var(--line);border-radius:0;box-shadow:none}
.org-top-metrics .metric:last-child{border-right:0}
@media(max-width:780px){.dashboard-stage-cards{grid-template-columns:repeat(2,minmax(0,1fr))}.dashboard-stage-card{border-bottom:1px solid var(--line)}.dashboard-stage-card:nth-child(2){border-right:0}}
