/* R39 · one scoped stylesheet for desktop workspaces.
 * R14/R15 keep the proven ECharts six-track internals unchanged. */
:root{--p109-side:224px;--p109-gutter:16px;--p109-border:#e5eaf0;--p109-text:#24292f}
html,body{background:#f6f8fa;color:var(--p109-text)}
.topbar{gap:11px;padding:0 14px;box-shadow:none;border-bottom:1px solid var(--p109-border);justify-content:flex-start}
.brand{margin-right:4px}.brand-mode{color:#9aa8b3}
.workspace-navigation{position:static;z-index:auto;display:flex;align-items:center;gap:2px;min-width:0;height:100%;
 background:transparent;border:0;border-left:1px solid var(--p109-border);padding:0 8px;overflow-x:auto;scrollbar-width:none}
.workspace-navigation::-webkit-scrollbar{display:none}
.workspace-navigation button{border:0;border-radius:6px;background:transparent;color:#687987;font-size:12px;font-weight:630;
 padding:7px 12px;white-space:nowrap;transition:background .15s,color .15s}
.workspace-navigation button:hover{background:#eff3f6;color:#35546c}
.workspace-navigation button.active{background:#e8f1f8;color:#236394;font-weight:740}
.top-month{flex:0 0 auto}.top-month .month-button{min-height:31px;height:31px;min-width:130px;border-radius:6px;
 padding:0 9px;font-size:12px;border-color:#dce5ea;box-shadow:none}
.month-actions{gap:1px}.top-actions{margin-left:auto}
.month-actions .text-btn,.top-actions .text-btn{padding:0 7px}
.layout.workspace-mode-all,.layout.workspace-mode-group,.layout.workspace-mode-person,.layout.workspace-mode-data{
 display:grid;grid-template-columns:var(--p109-side) minmax(0,1fr);min-height:calc(100vh - var(--topbar));max-width:100%}
.layout.workspace-mode-all .sidebar,.layout.workspace-mode-group .sidebar,.layout.workspace-mode-person .sidebar,.layout.workspace-mode-data .sidebar{
 display:flex!important;flex-direction:column;position:sticky;top:var(--topbar);width:var(--p109-side);
 height:calc(100vh - var(--topbar));min-height:0;overflow:hidden;padding:0 12px 12px;
 border-right:1px solid var(--p109-border);background:#f8fafb}
.side-controls{flex:1;min-height:0;overflow-y:auto;overflow-x:hidden;padding:18px 4px 12px;scrollbar-width:thin}
.side-current{font-size:12px;font-weight:740;color:#33495b;margin:0 0 15px}
.side-controls .side-label{font-size:11px;font-weight:670;letter-spacing:0;color:#688092;margin:12px 0 6px;display:block}
.side-select,.side-search{height:33px;min-height:33px;width:100%;border:1px solid #dce5eb;border-radius:6px;
 background:white;padding:5px 9px;color:#354f63;font-size:12px}
.side-attention{border:0;border-radius:6px;background:transparent;color:#98734d;font-size:11.5px;
 display:flex;align-items:center;justify-content:space-between;width:100%;margin-top:10px;padding:9px 7px;text-align:left}
.side-attention:hover,.side-attention.active{background:#f7efe6}
.side-subnav{display:flex;flex-direction:column;gap:3px}
.side-subnav button{border:0;border-radius:6px;background:transparent;text-align:left;font-size:12px;color:#607a8d;padding:8px 10px}
.side-subnav button:hover{background:#edf3f7}
.side-subnav button.active{background:#e8f1f8;color:#246292;font-weight:740}
.side-filter{margin-top:4px;padding:0!important;border:0!important}
.side-filter .status-filter-control,.side-filter .status-filter-button{width:100%}
.side-hidden-filters{display:none}
.side-calendar{flex:0 0 auto;min-height:0;margin-top:auto;padding:13px 3px 2px;border-top:1px solid var(--p109-border);background:#f8fafb}
.side-calendar .calendar-caption{display:flex;align-items:center;justify-content:space-between;margin:0 0 8px;font-size:12px;font-weight:720}
.side-calendar .calendar-caption .quiet-link{min-height:22px}
.side-calendar .calendar-grid{gap:2px}
.side-calendar .cal-head{height:20px;font-size:10px}
.side-calendar .cal-day{height:24px;font-size:11px;border-radius:5px}
.side-calendar .calendar-key{display:flex;flex-wrap:wrap;gap:7px;margin:9px 0 0;font-size:9.5px}
.side-calendar .calendar-key span{white-space:nowrap}
.side-calendar .calendar-key i{height:7px;width:7px}
.layout.workspace-mode-all .workspace,.layout.workspace-mode-group .workspace,.layout.workspace-mode-person .workspace,.layout.workspace-mode-data .workspace{
 min-width:0;max-width:100%;overflow:hidden;padding:12px var(--p109-gutter) 14px}
.workspace-toolbar{display:flex;align-items:center;justify-content:space-between;min-height:42px;padding:0 0 9px;gap:10px}
.workspace-toolbar>div{display:flex;align-items:baseline;gap:13px}
.workspace-toolbar strong{font-size:18px;font-weight:730;letter-spacing:-.3px;color:#293e50}
.workspace-toolbar span{font-size:11px;color:#8a9ba7}
.workspace-toolbar .workspace-hint{font-size:11px}
.scope-summary{margin:0 0 4px}
.scope-stat-inline{display:flex;align-items:baseline;gap:17px;padding:3px 0 11px;min-height:38px;
 border-bottom:1px solid var(--p109-border);white-space:nowrap}
.scope-metric{display:inline-flex;align-items:baseline;gap:5px}
.scope-metric small{font-size:11px;color:#738694}
.scope-metric strong{font-size:17px;font-weight:740;font-variant-numeric:tabular-nums;color:#345268}
.scope-metric.normal strong{color:#37835d}.scope-metric.anomaly strong{color:#a27a28}.scope-metric.absent strong{color:#b06265}
.scope-stat-caption{font-size:10px;color:#8ca0af;margin-left:auto}
.matrix-toolbar{display:flex;align-items:center;gap:16px;height:36px;padding:0 2px}
.matrix-toolbar>strong{font-size:12px;font-weight:720;color:#3a556b;white-space:nowrap}
.matrix-toolbar-legend{display:flex;gap:12px;margin-left:auto}
.matrix-toolbar-legend span{display:flex;align-items:center;gap:5px;font-size:10px;color:#8295a4}
.matrix-toolbar-legend i{width:8px;height:8px;border-radius:2px;background:#84c8a4}
.matrix-toolbar-legend i.anomaly{background:#e5c47c}.matrix-toolbar-legend i.absent{background:#dd9395}
.matrix-toolbar-summary{font-size:10px;color:#987450;white-space:nowrap}
.workspace-mode-all .workbench,.workspace-mode-group .workbench{
 display:block!important;min-width:0!important;max-width:100%!important;width:100%!important;height:auto!important;min-height:0!important}
.workspace-mode-all .analysis-panel,.workspace-mode-group .analysis-panel{display:none!important}
.workspace-mode-all .matrix-zone,.workspace-mode-group .matrix-zone{
 --matrix-name:115px;--matrix-cell:max(23px,calc((100vw - var(--p109-side) - var(--p109-gutter) * 2 - 131px)/31));
 --matrix-grid:calc(var(--matrix-name) + 31 * var(--matrix-cell));--matrix-row:25px;
 display:flex;width:100%!important;max-width:100%!important;min-width:0!important;
 height:calc(100vh - 166px)!important;min-height:360px!important}
.workspace-mode-group .matrix-zone{height:min(calc(34px + var(--scope-count,10) * 25px),calc(100vh - 166px))!important;min-height:210px!important}
.workspace-mode-all .matrix-wrap,.workspace-mode-group .matrix-wrap{width:100%!important;min-width:0!important;max-width:100%!important;
 flex:1;padding:0!important;border:1px solid var(--p109-border);border-radius:7px;box-shadow:none;background:#fff;overflow:auto}
.workspace-mode-all .matrix,.workspace-mode-group .matrix{width:var(--matrix-grid)!important;
 min-width:var(--matrix-grid)!important;max-width:none!important;margin:0!important;--row:var(--matrix-row);--cell:var(--matrix-cell)}
.workspace-mode-all .m-name,.workspace-mode-group .m-name{justify-content:flex-start;padding:0 8px;gap:6px}
.workspace-mode-all .name-letters,.workspace-mode-group .name-letters{display:block!important;min-width:0;width:auto!important;
 max-width:calc(var(--matrix-name) - 30px)!important;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
 font-size:12px!important;font-weight:590;letter-spacing:0!important;transform:none!important}
.workspace-mode-all .m-name-num,.workspace-mode-group .m-name-num{font-size:9px;min-width:17px;color:#a7b2bc}
.workspace-mode-all .m-cell button,.workspace-mode-group .m-cell button{
 width:min(18px,calc(var(--matrix-cell) - 10px));height:17px;min-width:16px;min-height:16px;border-radius:3px}
.scope-details{margin:12px 0 20px}
.scope-subheading{font-size:12px;font-weight:710;margin:0 0 9px;color:#385268}
.scope-subheading small{font-size:10px;color:#8699a7;font-weight:400;margin-left:8px}
.scope-member-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:0 16px;border-top:1px solid var(--p109-border)}
.scope-member-list button{min-height:39px;padding:8px 3px;border:0;border-bottom:1px solid var(--p109-border);
 display:flex;align-items:center;gap:9px;background:transparent;border-radius:0;text-align:left;color:#8191a0}
.scope-member-list button:hover{background:#f0f5f8}
.scope-member-list button strong{color:#3b556a;margin-right:auto;font-size:12px}
.scope-member-list button span{font-size:10px;white-space:nowrap}
.scope-member-list button .warn{color:#b08a37}.scope-member-list button .danger{color:#b96d6e}
.workspace-mode-person .workbench,.workspace-mode-data .workbench{display:grid!important;grid-template-columns:minmax(0,1fr)!important;
 min-width:0!important;max-width:100%!important;width:100%!important;height:calc(100vh - var(--topbar) - 115px)!important;min-height:510px!important}
.workspace-mode-person .matrix-zone,.workspace-mode-data .matrix-zone{display:none!important}
.workspace-mode-person .analysis-panel,.workspace-mode-data .analysis-panel{min-width:0!important;width:100%;max-width:100%}
.workspace-mode-person .chart-mode-tabs{display:none!important}
.workspace-mode-person .inspector-top{grid-template-columns:minmax(0,1fr) 188px!important}
.workspace-mode-person .inspector-insight{width:188px!important;min-width:188px!important;max-width:188px!important}
.workspace-mode-data .analysis-body{display:block!important}
.data-management{display:flex;flex-direction:column;gap:11px;height:100%;min-height:0}
.data-stat-inline{display:flex;gap:26px;align-items:baseline;flex-wrap:wrap;padding:3px 2px 12px;
 font-size:11px;color:#7890a3;border-bottom:1px solid var(--p109-border)}
.data-stat-inline strong{margin-left:4px;font-size:15px;color:#36536a}
.data-dir-state{margin-left:auto}
.data-section-panel{min-height:0;flex:1}
.workspace-mode-data .data-section-panel .inspector-bottom{height:calc(100vh - 218px);min-height:320px}
.workspace-mode-data .raw-table{height:calc(100% - 44px)}
.data-note{padding:10px 2px;color:#6b8598;font-size:12px;line-height:1.7}
.data-roster-table{max-height:calc(100vh - 235px);overflow:auto;border:1px solid var(--p109-border);border-radius:7px}
.data-roster-head,.data-roster-row{display:grid;grid-template-columns:minmax(130px,1.3fr) minmax(120px,1fr) minmax(120px,1fr) 105px;
 align-items:center;gap:9px;padding:10px 13px}
.data-roster-head{position:sticky;top:0;z-index:1;background:#f5f8fa;font-size:11px;color:#8297a6}
.data-roster-row{border-top:1px solid var(--p109-border);font-size:12px;background:white;color:#667e8e}
.data-roster-row strong{color:#385367}
.data-roster-row button,.data-rule-edit{border:1px solid #dce5eb;border-radius:6px;background:#fff;color:#33749c;padding:6px 10px;font-size:11px}
.data-rules-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin:10px 0}
.data-rules-grid>div{display:flex;flex-direction:column;gap:7px;padding:12px 3px;border-bottom:1px solid var(--p109-border)}
.data-rules-grid span{font-size:11px;color:#7a92a4}.data-rules-grid strong{font-size:14px;color:#35536a}
.data-import-history{padding:10px 2px}
.data-import-item{display:flex;align-items:center;gap:18px;padding:12px 4px;border-bottom:1px solid var(--p109-border);font-size:12px}
.data-import-item strong{margin-right:auto;color:#3a576c}
.data-import-item span{color:#7890a0}.data-import-item small{color:#99aab6}
@media(max-width:1450px){
 :root{--p109-side:214px;--p109-gutter:12px}
 .workspace-navigation button{padding:7px 9px}
 .month-actions .text-btn,.top-actions .text-btn{padding-inline:6px}
 .brand-mode{display:none}
}
@media(max-width:1100px){
 :root{--p109-side:198px;--p109-gutter:10px}
 .topbar{gap:6px;padding:0 10px}
 .workspace-navigation button{padding:7px 7px;font-size:11px}
 .workspace-mode-person .inspector-top{grid-template-columns:minmax(0,1fr) 154px!important}
 .workspace-mode-person .inspector-insight{width:154px!important;min-width:154px!important;max-width:154px!important}
}
@media(max-width:820px){
 .topbar{overflow-x:auto}.scope-stat-caption{display:none}
 .data-roster-head,.data-roster-row{grid-template-columns:minmax(90px,1.25fr) 70px 75px 80px}
 .data-rules-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}

/* R39 screenshot review: data area uses exactly one title, no redundant heading inside its table. */
.workspace-mode-data .analysis-head{display:none!important}
.workspace-mode-data .data-section-panel .inspector-bottom{height:calc(100vh - 187px)}


/* R40 — clear system grouping, two inline filters, month strip and shared stats. */
:root{--r40-right:clamp(270px,24vw,350px)}
.topbar .top-global-actions{display:flex;align-items:center;min-width:0;gap:10px;margin-left:auto}
.topbar .top-actions{margin-left:0}
.brand-mode{display:none}
.workspace-navigation{flex:0 0 auto}
.layout.workspace-mode-all .sidebar,.layout.workspace-mode-group .sidebar,.layout.workspace-mode-person .sidebar,
.layout.workspace-mode-data .sidebar{padding:0 13px 12px}
.side-controls{padding-top:19px;flex:1 1 auto}
.side-inline{display:grid;grid-template-columns:40px minmax(0,1fr);gap:9px;align-items:center;margin:0 0 10px}
.side-inline label{font-size:13px;font-weight:600;color:#52697a}
.side-inline .side-select{height:35px;min-height:35px;font-size:13px;min-width:0;width:100%}
.side-bottom{flex:0 0 auto;margin-top:auto}
.side-bottom .side-calendar{margin:0;padding:12px 2px 12px;border-top:1px solid #e5eaf0}
.side-bottom .calendar-caption{font-size:13px}
.side-bottom .cal-day{font-size:12px}
.side-bottom .side-filter{display:grid;grid-template-columns:64px minmax(0,1fr);gap:9px;
 align-items:center;padding:11px 0 0!important;margin:0;border:0;border-top:1px solid #e5eaf0}
.side-bottom .side-filter .side-label{margin:0;font-size:12px;font-weight:600;color:#576f81}
.side-bottom .side-filter .status-filter-control{min-width:0}
.side-bottom .side-filter .status-filter-button{height:31px;font-size:12px}
.side-bottom .side-filter .judgment-mode-switch{margin:0}
.side-bottom .side-filter .judgment-mode-switch button{font-size:12px}
.side-bottom .side-filter .status-filter-menu{z-index:90}
.workspace-toolbar{min-height:37px;padding:0 0 7px}
.workspace-toolbar strong{font-size:18px}
.workspace-toolbar>div span,.workspace-toolbar>.workspace-hint{font-size:12px}
.workspace-mode-all .scope-summary,.workspace-mode-group .scope-summary{display:none}
.workspace-mode-all .workbench,.workspace-mode-group .workbench{display:grid!important;
 grid-template-columns:minmax(0,1fr) var(--r40-right)!important;gap:16px!important;width:100%;align-items:start}
.workspace-mode-all .matrix-zone,.workspace-mode-group .matrix-zone{
 --matrix-name:112px;
 --matrix-cell:clamp(19px,calc((100vw - var(--p109-side) - var(--p109-gutter) * 2 - var(--r40-right) - 140px)/31),34px);
 --matrix-grid:calc(var(--matrix-name) + 31 * var(--matrix-cell));
 --matrix-row:27px;
 height:calc(100vh - var(--topbar) - 87px)!important;min-height:300px!important}
.workspace-mode-group .matrix-zone{height:min(calc(34px + var(--scope-count,10) * 27px),calc(100vh - var(--topbar) - 87px))!important;
 min-height:210px!important}
.workspace-mode-all .matrix-wrap,.workspace-mode-group .matrix-wrap{border-color:#e5eaf0}
.workspace-mode-all .m-cell button,.workspace-mode-group .m-cell button{
 width:clamp(16px,calc(var(--matrix-cell) - 5px),22px)!important;height:clamp(16px,calc(var(--matrix-cell) - 5px),22px)!important}
.scope-insights{height:calc(100vh - var(--topbar) - 87px);min-height:430px;padding:12px 4px 12px 14px;
 border-left:1px solid #e5eaf0;overflow:auto;scrollbar-width:thin}
.scope-insight-title{font-size:15px;font-weight:740;margin:0 0 14px;color:#334d60}
.scope-insight-numbers{display:grid;grid-template-columns:1fr 1fr;gap:11px 18px}
.scope-insight-numbers>div{display:flex;align-items:baseline;gap:8px}
.scope-insight-numbers span{font-size:12px;color:#748a9b}
.scope-insight-numbers strong{font-size:20px;font-weight:720;color:#3b5367;font-variant-numeric:tabular-nums}
.scope-insight-numbers .normal{color:#37875f}.scope-insight-numbers .anomaly{color:#b18a33}.scope-insight-numbers .absent{color:#b76768}
.scope-insight-rate{margin:16px 0 20px;padding:8px 0;border-top:1px solid #e8edf0;border-bottom:1px solid #e8edf0;
 font-size:12px;color:#61788a}
.scope-insight-rate small{margin-left:5px;color:#9aaab5;font-size:11px}
.scope-insight-chart-title{font-size:13px;font-weight:675;color:#466176;margin:13px 0 6px}
.scope-chart{height:166px;min-width:0;width:100%;background:transparent}
.workspace-mode-all .matrix-zone .name-letters,.workspace-mode-group .matrix-zone .name-letters{font-size:12.5px!important}
.workspace-mode-person .workbench{height:calc(100vh - var(--topbar) - 192px)!important;min-height:430px!important}
.workspace-mode-person .inspector-top{grid-template-columns:minmax(0,1fr) 218px!important}
.workspace-mode-person .inspector-insight{min-width:218px!important;width:218px!important;max-width:218px!important}
.person-strip{display:flex;align-items:center;gap:12px;min-width:0;padding:9px 0 12px;border-bottom:1px solid #e5eaf0;margin-bottom:10px}
.person-strip-label{font-size:13px;font-weight:690;white-space:nowrap;color:#4a6579}
.person-days{display:grid;grid-template-columns:repeat(31,minmax(0,1fr));gap:3px;flex:1;min-width:0}
.person-day{position:relative;min-width:0;height:45px;border:1px solid transparent;background:transparent;border-radius:5px;
 padding:5px 1px 4px;display:flex;flex-direction:column;align-items:center;justify-content:space-between;color:#506779}
.person-day-number{font-size:12px;line-height:1.15;font-variant-numeric:tabular-nums;font-weight:750}
.person-day.rest{background:#f0f2f4;color:#9aa6af}
.person-day.holiday{background:#f2f0eb;color:#a79b89}
.person-day.adjust{background:#f8f2e7;color:#806c4c}
.person-day.rest .person-day-number,.person-day.holiday .person-day-number{font-weight:480}
.person-day.work .person-day-number,.person-day.adjust .person-day-number{font-weight:760}
.person-day-status{height:4px;width:82%;border-radius:2px;background:#cbd6dd}
.person-day-status.normal{background:#76c59e}.person-day-status.anomaly{background:#e3c171}
.person-day-status.absent{background:#df9294}.person-day-status.rest{background:#bdc7cf}
.person-day-check{position:absolute;right:1px;top:1px;color:#7251a4;font-size:10px;font-weight:850;line-height:1;z-index:2}
.person-day:hover{border-color:#b5ccdd;background:#eff5fa}
.person-day.selected{border:1.5px solid #587ab8;background:#e9f3fc;box-shadow:0 0 0 1px rgba(79,125,178,.14)}
.person-day:focus-visible{outline:2px solid #2b79b3;outline-offset:1px}
#personalDayPrev,#personalDayNext{border:1px solid #dde5eb;border-radius:5px;background:#fff;color:#44657e;
 font-size:19px;line-height:1;padding:0;height:26px;min-width:28px;cursor:pointer}
#personalDayPrev:disabled,#personalDayNext:disabled{opacity:.3;cursor:default}
#personalDayPrev:hover:not(:disabled),#personalDayNext:hover:not(:disabled){background:#eff5f9}
@media(max-width:1450px){
 :root{--r40-right:clamp(270px,23vw,310px)}
 .scope-insights{padding-left:10px}
 .person-day-number{font-size:11px}
 .person-strip{gap:8px}
 .workspace-mode-person .inspector-top{grid-template-columns:minmax(0,1fr) 190px!important}
 .workspace-mode-person .inspector-insight{min-width:190px!important;width:190px!important;max-width:190px!important}
}
@media(max-width:1100px){
 :root{--r40-right:265px}
 .person-days{gap:1px}
 .person-strip-label{font-size:12px}
 .person-day{height:42px}
 .person-day-number{font-size:10px}
}

/* R40: compact personal analysis select under the calendar. */
.side-view-row{display:grid;grid-template-columns:64px minmax(0,1fr);gap:9px;align-items:center;padding:11px 0 8px;border-top:1px solid #e5eaf0}
.side-view-row label{font-size:12px;font-weight:600;color:#576f81}
.side-view-row .side-select{height:31px;min-height:31px;font-size:12px}

/* R40: single-row strip also fills shorter months without empty trailing cells. */
.person-days{grid-template-columns:repeat(var(--r40-days,31),minmax(0,1fr))}
.person-day-number{font-size:13px}
@media(max-width:1450px){.person-day-number{font-size:12px}}


/* R41 — compact matrix with exact day-31 edge; remaining width belongs to statistics. */
.layout.workspace-mode-all .workbench,.layout.workspace-mode-group .workbench{
 grid-template-columns:max-content minmax(0,1fr)!important;gap:15px!important;align-items:start}
.workspace-mode-all .matrix-zone,.workspace-mode-group .matrix-zone{
 --matrix-name:118px;
 --matrix-cell:clamp(19px,calc(1.5vw - .49px),28px);
 --matrix-grid:calc(var(--matrix-name) + 31 * var(--matrix-cell));
 --matrix-row:27px;
 width:calc(var(--matrix-grid) + 9px)!important;min-width:0!important;max-width:100%!important;
 height:min(calc(28px + var(--scope-count,50) * var(--matrix-row) + 3px),calc(100vh - var(--topbar) - 76px))!important;
 min-height:0!important}
.workspace-mode-group .matrix-zone{min-height:0!important}
.workspace-mode-all .matrix-wrap,.workspace-mode-group .matrix-wrap{
 width:calc(var(--matrix-grid) + 9px)!important;max-width:100%!important;
 min-width:0!important;min-height:0!important;flex:1;
 padding:0!important;overflow:auto}
.workspace-mode-all .matrix,.workspace-mode-group .matrix{
 width:var(--matrix-grid)!important;min-width:var(--matrix-grid)!important;max-width:var(--matrix-grid)!important;
 grid-template-columns:var(--matrix-name) repeat(31,var(--matrix-cell))!important}
.workspace-mode-all .m-name,.workspace-mode-group .m-name{padding:0 7px;gap:9px}
.workspace-mode-all .m-name .name-letters,.workspace-mode-group .m-name .name-letters{
 display:block!important;width:4em!important;min-width:4em!important;max-width:4em!important;
 text-align:justify;text-align-last:justify;white-space:nowrap;font-size:13px!important;font-weight:550;letter-spacing:0!important}
.workspace-mode-all .m-cell button,.workspace-mode-group .m-cell button{
 width:clamp(17px,calc(var(--matrix-cell) - 3px),24px)!important;
 height:clamp(17px,calc(var(--matrix-cell) - 3px),24px)!important;
 min-width:0!important;min-height:0!important}
.scope-insights{min-width:0;width:100%;height:calc(100vh - var(--topbar) - 76px);min-height:0;
 padding:9px 5px 12px 17px}
.scope-chart-composition{height:150px}

/* The status menu is anchored below the calendar. Open upward, within the sidebar. */
.layout:not(.workspace-mode-classic) .side-bottom{position:relative;z-index:22}
.layout:not(.workspace-mode-classic) .status-filter-control{position:relative;z-index:23}
.layout:not(.workspace-mode-classic) .status-filter-menu{
 top:auto!important;bottom:calc(100% + 6px)!important;max-height:none!important;
 overflow:visible!important;scrollbar-width:none;z-index:80!important}
.layout:not(.workspace-mode-classic) .status-filter-button[aria-expanded="true"] .chevron{
 transform:rotate(225deg) translateY(-1px)}

/* R41: personal title, entire month and previous/next day occupy one single toolbar row. */
.workspace-mode-person .person-toolbar{
 display:flex;align-items:center;gap:18px;height:68px;min-height:68px;padding:0 0 8px!important;
 white-space:nowrap}
.workspace-mode-person .person-toolbar>strong{font-size:19px;flex:none;min-width:max-content}
.workspace-mode-person .person-strip{
 display:flex;align-items:center;gap:10px;flex:1;min-width:0;margin:0;padding:0;border:0}
.workspace-mode-person .person-strip-label{font-size:13px;flex:none}
.workspace-mode-person .person-days{gap:2px;flex:1;min-width:0}
.workspace-mode-person .person-day{height:43px}
.workspace-mode-person .person-day-nav{display:flex;align-items:center;gap:3px;flex:none}
.workspace-mode-person #timelineDayPicker{height:30px;border-radius:5px;border:1px solid #d9e4eb;
 font-size:13px;color:#34556d;background:#fff;padding:3px 5px;min-width:67px}
.workspace-mode-person #personalDayPrev,.workspace-mode-person #personalDayNext{
 height:30px;min-width:29px;font-size:21px}
.workspace-mode-person .analysis-head{display:none!important}
.workspace-mode-person .workbench{
 height:calc(100vh - var(--topbar) - 97px)!important;min-height:440px!important}
.workspace-mode-person .inspector-top{
 grid-template-columns:minmax(0,1fr) clamp(315px,29vw,455px)!important;gap:12px!important}
.workspace-mode-person .inspector-insight{
 width:auto!important;min-width:0!important;max-width:none!important;
 padding:10px 15px 12px!important;line-height:1.5}
.workspace-mode-person .insight-tabs{margin:-10px -15px 10px;height:42px}
.workspace-mode-person .insight-tabs button{font-size:14px!important}
.workspace-mode-person .insight-card-head,.workspace-mode-person .insight-card-head span,
.workspace-mode-person .insight-card-head b{font-size:13px!important}
.workspace-mode-person .insight-row{padding:7px 0!important}
.workspace-mode-person .insight-row span{font-size:13px!important}
.workspace-mode-person .insight-row strong{font-size:15px!important}
.workspace-mode-person .insight-state{font-size:14px!important}
.workspace-mode-person .insight-behavior-row,
.workspace-mode-person .insight-behavior-row span,
.workspace-mode-person .insight-behavior-row strong{font-size:12.5px!important}
.workspace-mode-person .insight-issue,.workspace-mode-person .insight-evidence{font-size:12px!important}
.workspace-mode-person .manual-status-buttons button{font-size:12px!important}
.workspace-mode-person .analysis-body{
 grid-template-rows:minmax(260px,57%) minmax(150px,1fr)!important;gap:9px!important;
 padding:8px!important}
.workspace-mode-person .inspector-plot{padding:0 9px 5px!important}
.workspace-mode-person .inspector-bottom{min-height:0!important}
.raw-table .tabulator-cell{text-align:center}
.raw-table .tabulator-col .tabulator-col-title{text-align:center}

/* 1366 px: protect the six-lane plot while keeping a meaningfully wider insight column. */
@media(max-width:1450px){
 .workspace-mode-person .inspector-top{grid-template-columns:minmax(0,1fr) 320px!important}
 .workspace-mode-person .person-toolbar{gap:10px}
 .workspace-mode-person .person-strip{gap:5px}
 .workspace-mode-person .person-strip-label{font-size:12px}
 .workspace-mode-person .person-days{gap:1px}
 .workspace-mode-person .person-day-number{font-size:11px}
 .workspace-mode-person .person-day-nav{gap:1px}
 .workspace-mode-person #timelineDayPicker{min-width:61px;font-size:12px}
 .workspace-mode-all .matrix-zone,.workspace-mode-group .matrix-zone{--matrix-cell:clamp(19px,calc(1.5vw - .49px),28px)}
}

/* R41 visual review: give more height to the six-lane chart, not an empty raw grid. */
.workspace-mode-person .analysis-body{
 grid-template-rows:minmax(255px,69%) minmax(180px,1fr)!important;
}
.workspace-mode-person .person-day-number{font-size:14px}
.workspace-mode-person .insight-card-head{margin-bottom:7px!important}
.workspace-mode-person .insight-behavior-row{min-height:32px!important;padding:5px 1px!important}
.workspace-mode-person .manual-status-buttons{min-height:36px}
.workspace-mode-person .insight-tabs button{font-weight:680}
.workspace-mode-all .scope-insight-numbers span,.workspace-mode-group .scope-insight-numbers span{font-size:13px}
.workspace-mode-all .scope-insight-chart-title,.workspace-mode-group .scope-insight-chart-title{font-size:14px}
.workspace-mode-all .scope-insight-rate,.workspace-mode-group .scope-insight-rate{font-size:13px}
@media(max-width:1450px){
 .workspace-mode-person .person-day-number{font-size:12.5px}
 .workspace-mode-person .analysis-body{grid-template-rows:minmax(230px,65%) minmax(165px,1fr)!important}
}


/* R42 — fixed matrix geometry: no phantom scrollbars or excess bottom padding. */
.workspace-mode-all .matrix-zone,.workspace-mode-group .matrix-zone{
 --matrix-name:98px;
 --matrix-row:27px;
 --matrix-grid:calc(var(--matrix-name) + 31 * var(--matrix-cell));
 width:calc(var(--matrix-grid) + 32px)!important;
 max-width:100%!important;
 height:min(calc(30px + var(--scope-count,50) * var(--matrix-row)),calc(100vh - var(--topbar) - 76px))!important;
 min-height:0!important;
}
.workspace-mode-group .matrix-zone{
 width:calc(var(--matrix-grid) + 16px)!important;
 height:min(calc(36px + var(--scope-count,10) * var(--matrix-row)),calc(100vh - var(--topbar) - 76px))!important;
}
.workspace-mode-all .matrix-wrap,.workspace-mode-group .matrix-wrap{
 box-sizing:border-box!important;
 width:calc(var(--matrix-grid) + 32px)!important;
 max-width:100%!important;
 padding:0 12px 0 0!important;
 overflow-x:hidden!important;
 overflow-y:auto!important;
 scrollbar-gutter:auto;
}
.workspace-mode-group .matrix-wrap{
 width:calc(var(--matrix-grid) + 16px)!important;
 scrollbar-gutter:auto;
}
.workspace-mode-all .matrix,.workspace-mode-group .matrix{
 box-sizing:content-box!important;
 width:var(--matrix-grid)!important;
 min-width:var(--matrix-grid)!important;
 max-width:var(--matrix-grid)!important;
 grid-template-columns:var(--matrix-name) repeat(31,var(--matrix-cell))!important;
}
.workspace-mode-all .m-name,.workspace-mode-group .m-name{
 padding:0 5px!important;gap:5px!important;justify-content:center!important;
}
.workspace-mode-all .m-name .name-letters,.workspace-mode-group .m-name .name-letters{
 width:4em!important;min-width:4em!important;max-width:4em!important;
 text-align:justify;text-align-last:justify;white-space:nowrap;
}
.workspace-mode-all .m-corner,.workspace-mode-group .m-corner{
 display:flex!important;align-items:center!important;justify-content:center!important;
 text-align:center!important;padding:0!important;
}

/* R42 — keep Chinese filter labels on one line in an upward scrollable menu. */
.layout:not(.workspace-mode-classic) .status-filter-menu.open{
 display:grid!important;
 grid-template-columns:repeat(2,minmax(0,1fr))!important;
 gap:3px!important;
}
.layout:not(.workspace-mode-classic) .status-filter-menu button,
.layout:not(.workspace-mode-classic) .status-filter-current,
.layout:not(.workspace-mode-classic) .status-filter-current b{
 white-space:nowrap!important;
 overflow-wrap:normal!important;
 word-break:keep-all!important;
}
.layout:not(.workspace-mode-classic) .status-filter-menu button{
 font-size:12px!important;min-height:30px!important;
}

/* R42 — single balanced title row; day pills match the height of their controls. */
.workspace-mode-person .person-toolbar{
 height:54px!important;min-height:54px!important;
 align-items:center!important;gap:12px!important;padding:0 0 5px!important;
}
.workspace-mode-person .person-strip{
 gap:8px!important;align-items:center!important;
}
.workspace-mode-person .person-strip-label{
 font-size:13px!important;line-height:30px!important;height:30px!important;
}
.workspace-mode-person .person-day{
 height:30px!important;min-height:30px!important;
 padding:2px 1px 3px!important;border-radius:4px!important;
}
.workspace-mode-person .person-day-number{font-size:12px!important;line-height:1!important}
.workspace-mode-person .person-day-status{height:3px!important;width:78%!important}
.workspace-mode-person .person-day-nav{
 height:30px!important;align-items:center!important;gap:3px!important;
}
.workspace-mode-person #timelineDayPicker,
.workspace-mode-person #personalDayPrev,
.workspace-mode-person #personalDayNext{
 height:30px!important;min-height:30px!important;
 align-self:center!important;vertical-align:middle!important;
}
.workspace-mode-person #personalDayPrev,.workspace-mode-person #personalDayNext{
 display:flex!important;align-items:center!important;justify-content:center!important;
 line-height:1!important;padding:0!important;font-size:20px!important;
}

/* R42 — restore timeline/table balance; right panel text is genuinely readable. */
.workspace-mode-person .workbench{
 height:calc(100vh - var(--topbar) - 86px)!important;
 min-height:460px!important;
}
.workspace-mode-person .analysis-body{
 grid-template-rows:minmax(245px,57%) minmax(185px,1fr)!important;
 gap:10px!important;
 padding:8px!important;
}
.workspace-mode-person .inspector-insight{
 padding:12px 15px!important;
}
.workspace-mode-person .insight-tabs{
 margin:-12px -15px 12px!important;
 height:40px!important;
}
.workspace-mode-person .insight-tabs button{font-size:14px!important}
.workspace-mode-person .insight-card-head,.workspace-mode-person .insight-card-head span,
.workspace-mode-person .insight-card-head b{font-size:14px!important}
.workspace-mode-person .insight-row span{font-size:14px!important}
.workspace-mode-person .insight-row strong{font-size:16px!important}
.workspace-mode-person .insight-metric-list{font-size:14px!important}
.workspace-mode-person .insight-metric-list span{font-size:14px!important}
.workspace-mode-person .insight-metric-list strong{font-size:16px!important}
.workspace-mode-person .insight-issue,.workspace-mode-person .insight-evidence{font-size:13px!important;line-height:1.55!important}
.workspace-mode-person .insight-behavior-row span,.workspace-mode-person .insight-behavior-row strong{
 font-size:14px!important;
}
.workspace-mode-person .status-control-row{
 display:grid!important;
 grid-template-columns:43px minmax(0,1fr)!important;
 align-items:center!important;gap:8px!important;min-height:36px!important;
}
.workspace-mode-person .status-control-row>span{
 font-size:13px!important;color:#627789!important;font-weight:600!important;
}
.workspace-mode-person .initial-judgment{
 display:inline-flex!important;align-items:center!important;justify-content:center!important;
 justify-self:start!important;
 width:auto!important;min-width:84px!important;height:31px!important;
 padding:0 14px!important;border-radius:6px!important;
 font-size:14px!important;line-height:1!important;box-shadow:none!important;
 border:1px solid transparent!important;
}
.workspace-mode-person .initial-judgment.normal{background:#e8f5ec!important;color:#23774e!important}
.workspace-mode-person .initial-judgment.anomaly{background:#fff4da!important;color:#926b18!important}
.workspace-mode-person .initial-judgment.absent{background:#fae9ea!important;color:#a44e54!important}
.workspace-mode-person .initial-judgment.rest{background:#edf1f3!important;color:#657987!important}
.workspace-mode-person .status-control-row .manual-status-buttons{
 display:grid!important;grid-template-columns:repeat(3,minmax(0,1fr))!important;
 gap:6px!important;margin:0!important;min-height:0!important;
}
.workspace-mode-person .status-control-row .manual-status-buttons button{
 height:31px!important;line-height:1!important;
 font-size:13px!important;font-weight:650!important;
 border-radius:6px!important;border:1px solid #dce4e9!important;
 background:#fff!important;color:#556c7d!important;
 opacity:1!important;box-shadow:none!important;
 transition:background .14s,border-color .14s!important;
}
.workspace-mode-person .status-control-row .manual-status-buttons button.active.normal{
 background:#4caa7a!important;color:#fff!important;border-color:#4caa7a!important;
}
.workspace-mode-person .status-control-row .manual-status-buttons button.active.anomaly{
 background:#c79b39!important;color:#fff!important;border-color:#c79b39!important;
}
.workspace-mode-person .status-control-row .manual-status-buttons button.active.absent{
 background:#c77075!important;color:#fff!important;border-color:#c77075!important;
}
.workspace-mode-person .status-control-row .manual-status-buttons button.initial-disabled{
 background:#f3f5f6!important;color:#b1bdc5!important;
 border-color:#ecf0f2!important;opacity:.7!important;
}
@media(max-width:1450px){
 .workspace-mode-person .analysis-body{
  grid-template-rows:minmax(230px,57%) minmax(175px,1fr)!important;
 }
}


/* R43: frame the personal raw evidence table on both sides, with a subtle
 * neutral frozen-name divider (same weight as all other table separators). */
.workspace-mode-person #rawPane{
 box-sizing:border-box!important;
 border-left:1px solid #e5ebf0!important;
 border-right:1px solid #e5ebf0!important;
}
.raw-table .tabulator-header .tabulator-col.tabulator-frozen,
.raw-table .tabulator-row .tabulator-cell.tabulator-frozen{
 box-shadow:none!important;
 border-right:1px solid #e5ebf0!important;
}
.raw-table .tabulator-header .tabulator-col.tabulator-frozen::after,
.raw-table .tabulator-row .tabulator-cell.tabulator-frozen::after{
 box-shadow:none!important;
}
/* Date cells gain the label's previous width; no redundant month-strip caption. */
.workspace-mode-person .person-days{min-width:0}


/* R44 · avoid the scrollbar entirely: short two-column popup, not a scrollbox.
   The popup stays inside the left sidebar while opening upward over the calendar. */
.layout:not(.workspace-mode-classic) .side-bottom .status-filter-menu{
 left:auto!important;right:0!important;
 width:min(192px,calc(var(--p109-side) - 24px))!important;
 box-sizing:border-box!important;
 height:auto!important;max-height:none!important;
 overflow:visible!important;overflow-x:visible!important;overflow-y:visible!important;
 scrollbar-width:none!important;
}
.layout:not(.workspace-mode-classic) .side-bottom .status-filter-menu.open{
 display:grid!important;
 grid-template-columns:repeat(2,minmax(0,1fr))!important;
 grid-auto-rows:minmax(29px,auto);
 gap:3px!important;
}
.layout:not(.workspace-mode-classic) .side-bottom .status-filter-menu button{
 min-width:0!important;min-height:29px!important;
 padding:5px 5px!important;gap:5px!important;
 display:flex;align-items:center;
 white-space:nowrap!important;
}
.layout:not(.workspace-mode-classic) .side-bottom .status-filter-menu button:first-child{
 grid-column:1/-1;
}
.layout:not(.workspace-mode-classic) .side-bottom .status-filter-menu::-webkit-scrollbar{
 display:none!important;width:0!important;height:0!important;
}
