:root{--bg:#eef1f4;--panel:#fff;--line:#d7dce2;--text:#1f2937;--muted:#586473;--blue:#2563eb;--nav:#111827;--green:#166534;--amber:#92400e;--red:#991b1b;--purple:#6d28d9;--top:48px}
*{box-sizing:border-box}html,body{margin:0;width:100%;height:100%;font-family:Segoe UI,Arial,sans-serif;background:var(--bg);color:var(--text);font-size:12px}body{overflow:hidden}button,input,select,textarea{font:inherit}button{cursor:pointer;border:1px solid var(--line);background:#fff;color:var(--text);border-radius:5px;padding:5px 8px;min-height:27px}button:hover:not(:disabled){background:#edf4ff;border-color:#8bb0ec}button:disabled{opacity:.52;cursor:not-allowed}input,select,textarea{border:1px solid var(--line);border-radius:5px;background:#fff;color:var(--text);padding:5px 7px;min-height:28px;max-width:100%}button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,summary:focus-visible{outline:2px solid var(--blue);outline-offset:2px}.primary{background:var(--blue);color:#fff;border-color:var(--blue)}button.primary:hover{background:#1d4ed8;color:#fff}.danger{color:var(--red);border-color:#fca5a5}.top{position:sticky;top:0;z-index:30;height:var(--top);background:var(--nav);color:#fff;display:flex;align-items:center;gap:8px;padding:0 10px;white-space:nowrap}.brand{font-size:13px}.shortBrand{display:none}.contextIdentity{display:flex;align-items:center;gap:5px}.env,.demoBadge{font-size:10px;font-weight:800;padding:3px 6px;border-radius:4px}.env{background:#233c60;color:#bfdbfe}.demoBadge{background:#3d3115;color:#fde68a}.ctx{display:flex;gap:5px;align-items:center;color:#abb6c7;font-size:11px}.ctx b{color:#e5e7eb;font-weight:600}.topSpacer{flex:1;min-width:0}.topButton{background:#1f2937;color:#fff;border-color:#374151;font-size:11px}.toolWrap{position:relative}.toolsMenu{position:absolute;right:0;top:34px;min-width:250px;max-width:calc(100vw - 20px);padding:6px;background:#fff;border:1px solid var(--line);border-radius:7px;box-shadow:0 8px 22px #0003;color:var(--text)}.toolsMenu:not([hidden]){display:grid;gap:4px}.toolsMenu button{text-align:left;white-space:normal}.workspace{height:calc(100dvh - var(--top));padding:7px;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);grid-template-rows:minmax(0,1fr) minmax(0,1fr);gap:7px}.panel{display:flex;flex-direction:column;background:var(--panel);border:1px solid var(--line);border-radius:7px;min-width:0;min-height:0;overflow:hidden}.panel.max{position:fixed;inset:calc(var(--top) + 7px) 7px 7px;z-index:25;box-shadow:0 10px 35px #0003}.ph{display:flex;align-items:center;gap:7px;min-height:34px;padding:4px 8px;background:#fafbfc;border-bottom:1px solid var(--line);flex-shrink:0}.ph h1,.ph h2{font-size:12px;margin:0;font-weight:700}.ph .count{font-size:11px;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}.maxButton{margin-left:auto;padding:2px 7px;flex-shrink:0}.panelBody{padding:8px;min-height:0;overflow:auto;flex:1}.filtergrid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:6px}.field{min-width:0}.field label{display:block;font-size:11px;color:var(--muted);margin-bottom:3px}.field select,.field input{width:100%}.moreFilters{margin:7px 0}.moreFilters summary{cursor:pointer;margin:5px 0;color:#1d4ed8}.activeSelection{margin-top:7px;padding:7px;background:#f8fafc;border:1px solid var(--line);border-radius:5px;line-height:1.6}.activeSelection>b{font-size:11px}.chips{display:flex;gap:4px;flex-wrap:wrap;margin-top:4px}.chips button,.chip{font-size:11px;padding:3px 6px;border-radius:5px;background:#edf3ff;color:#234e9a;border:1px solid #d9e5ff;white-space:normal;overflow-wrap:anywhere}.crumbs{display:flex;gap:4px;flex-wrap:wrap;margin:7px 0}.crumbs button{font-size:10.5px;padding:3px 5px}.crumbs button[aria-current]{color:#1d4ed8;border-color:#91b4f1}.actions{display:flex;gap:5px;flex-wrap:wrap;margin-top:8px}.savedLine{display:flex;gap:5px;align-items:center;flex-wrap:wrap;margin-top:8px}.savedLine select{flex:1;min-width:90px}.savedLine label{font-size:11px}.hint{font-size:11px;color:var(--muted);line-height:1.5;margin:6px 0;overflow-wrap:anywhere}.tableScroll{max-width:100%;overflow:auto}table{border-collapse:collapse;width:100%;font-size:11.5px}th,td{padding:6px;border-bottom:1px solid #e8edf2;text-align:left;white-space:nowrap}th{position:sticky;top:0;background:#f8fafc;color:#475467;z-index:1;font-weight:600}tr:hover td{background:#f6f9ff}.problemTable{min-width:510px}.problemTable button{padding:3px 5px;font-size:11px;text-align:left}.problemName{display:block;font-size:10px;color:var(--muted);margin-top:2px}.tag{display:inline-block;padding:2px 5px;border-radius:4px;font-size:10px;font-weight:700;white-space:nowrap}.ok{background:#dcfce7;color:var(--green)}.wa{background:#fef3c7;color:var(--amber)}.cr{background:#fee2e2;color:var(--red)}.gr{background:#edf0f4;color:#475467}.in{background:#dbeafe;color:#1d4ed8}.correlation{margin-top:9px;border-top:1px solid var(--line);padding-top:6px}.correlation h3{margin:2px 0 5px;font-size:12px}.correlation table{min-width:480px}.tableTools{display:flex;align-items:center;gap:5px;flex-wrap:wrap;padding:6px;border-bottom:1px solid var(--line)}.tableTools input{width:150px;flex:1;min-width:70px}.tableTools label{font-size:11px}.pointScroll{flex:1;min-height:0;overflow:auto}#pointsTable{min-width:1060px}#pointsTable th button{border:0;background:none;padding:1px 2px;font-size:11px;font-weight:600;color:inherit}#pointsTable input{width:15px;height:15px;min-height:15px;vertical-align:middle}.pointLink{font-size:11px;font-family:Consolas,monospace;white-space:nowrap;background:none;border:0;padding:2px}.pager,.footerbar{border-top:1px solid var(--line);display:flex;align-items:center;flex-wrap:wrap;gap:5px;padding:5px 7px;flex-shrink:0;font-size:11px;background:#fafbfc}.pager button{padding:3px 6px}.pager input{width:56px}.pager select{width:54px}.footerbar select{max-width:200px;font-size:11px}.footerbar b{margin-right:auto;font-size:11px}.modeBar{display:flex;gap:5px;flex-wrap:wrap;border-bottom:1px solid var(--line);padding:5px 8px}.modeBar button{font-size:11px}.modeBar button[aria-pressed=true]{background:#edf3ff;color:#1d4ed8;border-color:#9cbbf0}.detailToolbar{display:flex;align-items:center;gap:7px;flex-wrap:wrap;margin-bottom:8px}.detailToolbar select{flex:1}.detailGrid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}.kv{border:1px solid #e7edf3;border-radius:5px;background:#f8fafc;padding:6px;min-width:0;overflow-wrap:anywhere}.kv span{display:block;color:var(--muted);font-size:10.5px;margin-bottom:3px}.kv b{font-size:11.5px}.diagGrid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:7px}.diagCard{border:1px solid var(--line);border-radius:6px;padding:8px;min-width:0}.diagCard h3{font-size:12px;margin:0 0 6px}.diagRow{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.3fr);gap:6px;padding:4px 0;border-bottom:1px dotted #e5e7eb;overflow-wrap:anywhere}.diagRow span{color:var(--muted)}.diagRow b{font-weight:600;word-break:break-word}.notice,.warning,.success{padding:8px;border:1px solid var(--line);border-radius:6px;margin:6px 0;font-size:11.5px;line-height:1.5;overflow-wrap:anywhere}.warning{background:#fff7ed;border-color:#fed7aa;color:#9a3412}.notice{background:#f4f7fc;color:#334155}.success{background:#f0fdf4;border-color:#bbf7d0;color:#166534}.aiBox{background:#faf5ff;border:1px solid #ddd6fe;border-radius:6px;padding:10px}.aiBox h3{color:#5b21b6;margin:0 0 8px;font-size:13px}.historyEntry{border-bottom:1px solid #e5e7eb;padding:7px 0;line-height:1.5;overflow-wrap:anywhere}.historyEntry time{font-family:Consolas,monospace;font-size:10.5px;color:var(--muted)}.formRow{margin:8px 0}.formRow label{display:block;font-size:11px;margin-bottom:4px}.formRow input,.formRow textarea,.formRow select{width:100%}.formRow textarea{min-height:60px;resize:vertical}.checkRow{display:flex;align-items:flex-start;gap:7px;line-height:1.5;margin:9px 0}.checkRow input{width:17px;height:17px;min-height:17px;flex-shrink:0}.confirmLabel{font-family:Consolas,monospace;font-weight:700}.errorText{color:var(--red);min-height:16px;margin:7px 0;overflow-wrap:anywhere}.progressLine{height:7px;background:#e5e7eb;margin:9px 0;overflow:hidden;border-radius:4px}.progressLine>span{height:100%;display:block;background:#2563eb}.resultMetrics{display:flex;gap:6px;flex-wrap:wrap}.stepper{display:flex;gap:5px;flex-wrap:wrap;margin:10px 0}.stepper span{padding:5px 7px;border:1px solid var(--line);border-radius:4px;font-size:10px}.stepper .now{background:#dbeafe;color:#1d4ed8;border-color:#93c5fd}.stepper .done{background:#dcfce7;color:#166534}dialog{width:min(870px,calc(100vw - 24px));max-height:calc(100dvh - 40px);border:1px solid var(--line);border-radius:8px;padding:12px;background:#fff;color:var(--text);box-shadow:0 20px 50px #0004;overflow:auto}dialog::backdrop{background:#0b122080}.dialogHead{display:flex;justify-content:space-between;align-items:center;gap:12px;border-bottom:1px solid var(--line);padding-bottom:8px;margin-bottom:9px}.dialogHead h2{font-size:15px;margin:0}.dialogActions{display:flex;justify-content:flex-end;gap:6px;margin-top:12px;flex-wrap:wrap}.modalTable{min-width:650px}#toast{position:fixed;bottom:14px;left:50%;transform:translateX(-50%);z-index:70;background:#13253d;color:#fff;border-radius:6px;padding:11px 16px;max-width:min(720px,90vw);box-shadow:0 5px 16px #0003;line-height:1.5;font-size:12px}.empty{padding:18px 8px;color:var(--muted);line-height:1.6}.version{font-family:Consolas,monospace;font-variant-numeric:tabular-nums}#closeDialog{flex-shrink:0}.dangerText{color:var(--red)}[hidden]{display:none!important}
@media(max-width:1320px){.wideContext{display:none}.brand{font-size:12px}.top{gap:7px}}
@media(max-width:1050px){.ph{flex-wrap:wrap;gap:4px}.ph .count{font-size:10px}.ph h1,.ph h2{font-size:11px}.desktopContext{font-size:10px}.detailGrid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:900px){body{overflow:auto}.workspace{height:auto;grid-template-columns:minmax(0,1fr);grid-template-rows:repeat(4,540px)}.top{position:sticky}.desktopContext{display:none}.topSpacer{display:block}.panel.max{position:fixed}.diagGrid{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}}
@media(max-width:530px){:root{--top:48px}.longBrand{display:none}.shortBrand{display:inline}.brand{font-size:13px}.top{gap:5px;padding:0 7px}.contextIdentity{gap:4px;font-size:11px}.topButton{padding:4px 6px;font-size:10px}.demoBadge,.env{padding:3px 4px;font-size:9px}.workspace{padding:5px;gap:6px;grid-template-rows:repeat(4,550px)}.filtergrid{gap:5px}.ph{min-height:37px}.panelBody{padding:7px}.diagGrid{grid-template-columns:minmax(0,1fr)}.detailGrid{grid-template-columns:repeat(2,minmax(0,1fr))}.tableTools label{display:none}.tableTools button{font-size:10px}.savedLine label{width:100%}.pager{gap:4px}.footerbar{font-size:10px}.footerbar select{max-width:178px}dialog{padding:10px;max-height:calc(100dvh - 20px);width:calc(100vw - 16px)}.dialogHead h2{font-size:13px}.toolsMenu{min-width:240px}}
/* The sticky bar must be constrained by the full document on narrow screens,
   not by a body locked to the first viewport height. */
@media(max-width:900px){body{height:auto;min-height:100dvh}}
/* Layout 1+3; original V4 business logic remains intact. */
:root{--top:42px}
.workspace{grid-template-columns:minmax(0,.9fr) minmax(0,1.25fr) minmax(0,1.05fr);grid-template-rows: minmax(260px,36%) minmax(0,1fr);gap:9px;padding:9px}
.selectionBand{grid-column:1/-1;display:grid;grid-template-columns:minmax(150px,.65fr) minmax(0,3fr) minmax(150px,.7fr);gap:14px;min-height:0;padding:10px;background:#f7f9fc;border:1px solid var(--line);border-radius:7px}
.selectionBand #p1{border:0;background:transparent;border-radius:0}
#p1>.ph{background:transparent;padding-top:0}
#p1>.panelBody{padding:7px 2px}
#p1 .filtergrid{grid-template-columns:repeat(3,minmax(0,1fr))}
#p1 .hint{margin:3px 0;font-size:10px}
#p1 .activeSelection{margin-top:5px;padding:5px;background:#edf3fc}
#p1 .actions,#p1 .savedLine,#p1 .crumbs{margin-top:5px;margin-bottom:0}
.deskHelper{min-width:0;min-height:0;display:flex;flex-direction:column;padding:2px;color:var(--muted);font-size:11px}
.deskHelper h2{font-size:10px;letter-spacing:1.2px;font-weight:600;margin:0 0 9px}
.deskHelper p{font-size:10px;margin:5px 0;line-height:1.4}
.todoEntry{display:flex;gap:4px}
.todoEntry input{width:100%;min-width:0;background:transparent;font-size:11px}
.todoEntry button{padding:3px 7px}
#todoList{list-style:none;padding:0;margin:7px 0;overflow:auto;flex:1}
#todoList li{display:flex;align-items:flex-start;gap:5px;border-bottom:1px solid #e5eaf0;padding:5px 0}
#todoList label{display:flex;align-items:flex-start;gap:6px;flex:1;min-width:0;line-height:1.5;overflow-wrap:anywhere}
#todoList input{min-height:14px;margin:2px 0;width:14px;height:14px;flex-shrink:0}
#todoList input:checked+span{text-decoration:line-through;color:#8893a0}
#todoList button{border:0;background:transparent;min-height:20px;padding:0 4px;color:#6b7280}
#deskNotes{flex:1;min-height:60px;width:100%;resize:none;background:transparent;border:0;border-top:1px solid #e0e6ef;border-radius:0;padding:8px 0;line-height:1.7;font-size:11px}
.deskHelper .saveStatus{font-size:10px;min-height:14px;margin-top:3px}
.panel.max,#p1.max{background:var(--panel);border:1px solid var(--line);border-radius:7px}
#p1.max>.panelBody{padding:12px}
.panel.max{inset:calc(var(--top) + 9px) 9px 9px}
@media(min-width:901px) and (max-height:700px){.workspace{grid-template-rows:240px minmax(280px,1fr);height:auto;min-height:calc(100dvh - var(--top))}body{overflow:auto;height:auto;min-height:100dvh}}
@media(max-width:1100px){.selectionBand{grid-template-columns:150px minmax(0,1fr) 150px;gap:9px}.workspace{grid-template-columns:minmax(0,1fr) minmax(0,1.2fr) minmax(0,1fr)}}
@media(max-width:900px){.workspace{height:auto;grid-template-columns:minmax(0,1fr);grid-template-rows:auto repeat(3,520px)}.selectionBand{grid-template-columns:130px minmax(0,1fr) 130px;min-height:330px;max-height:440px}.selectionBand #p1{min-height:310px}#p1 .filtergrid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:600px){.workspace{padding:5px;gap:6px}.selectionBand{grid-template-columns:1fr 1fr;grid-template-rows:165px auto;max-height:none;padding:8px;gap:12px}.selectionBand #p1{grid-column:1/-1;grid-row:2;min-height:0}.deskHelper{grid-row:1}.selectionBand #p1>.panelBody{overflow:visible}.selectionBand #p1.max>.panelBody{overflow:auto}.selectionBand #p1.max{min-height:0}.selectionBand #p1.max .filtergrid{grid-template-columns:repeat(2,minmax(0,1fr))}}
/* The selection band follows its content, including expanded filters. */
body{overflow:auto;height:auto;min-height:100dvh}
.workspace{height:calc(100dvh - var(--top));min-height:calc(100dvh - var(--top));grid-template-rows:max-content minmax(320px,1fr)}
.selectionBand{max-height:none;align-items:stretch}
.selectionBand #p1:not(.max){min-height:0;overflow:visible}
.selectionBand #p1:not(.max)>.panelBody{flex:none;overflow:visible}
.selectionBand .deskHelper{contain:size}
@media(max-width:900px){.workspace{height:auto;grid-template-rows:auto repeat(3,520px)}}


.loginScreen{max-width:460px;margin:60px auto;padding:24px;background:white;border:1px solid var(--line);border-radius:8px}.loginScreen h1{font-size:20px}.loginScreen label{display:block;margin:15px 0}.loginScreen input{display:block;width:100%;margin-top:5px}.problemRow{display:flex;gap:10px;justify-content:space-between;align-items:center;padding:8px 0;border-bottom:1px solid var(--line)}.problemRow button{text-align:left}pre{white-space:pre-wrap;overflow-wrap:anywhere}#rows td{white-space:normal}#rows input{min-height:16px}#loginError{color:var(--red)}.top{flex-wrap:nowrap}#identity{font-size:10px}@media(max-width:600px){.top .env{display:none}#identity{max-width:80px;overflow:hidden}.loginScreen{margin:20px 8px}}