.toolbar{padding:19px 0 18px;align-items:end;gap:20px;flex-wrap:wrap}.date-controls{display:flex;align-items:flex-end;gap:12px;flex-wrap:wrap}.date-controls label{gap:7px;font-size:12px}.date-controls label>span{white-space:nowrap;line-height:18px}.date-controls small{font-weight:500;color:#72828a;font-size:11px;margin-left:3px}.date-controls select,.date-input-wrap,#reset-range{height:38px;min-height:38px}.date-controls select{min-width:90px}.date-input-wrap{display:flex;border:1px solid #a8babd;background:#fffefa;border-radius:4px;overflow:hidden;width:196px}.date-controls .date-input-wrap input{width:100%;min-width:0;min-height:0;border:0;border-radius:0;font-size:14px;background:transparent;padding:7px 10px}.calendar-toggle{width:35px;flex-shrink:0;border:0;border-left:1px solid #d6e0df;background:#f1f5f2;color:#315d72;font-size:23px;line-height:1}.semester-calendar{position:fixed;z-index:100;width:292px;background:#fffefa;border:1px solid #b3c6c7;border-radius:8px;padding:12px;box-shadow:0 10px 40px #17374d30;font:13px system-ui,sans-serif}.calendar-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}.calendar-head button,.calendar-close{border:0;background:#edf3f3;color:#30596d;border-radius:4px;padding:5px 12px}.calendar-head button{font-size:20px}.calendar-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:3px;text-align:center}.calendar-grid button{height:32px;border:0;background:transparent;border-radius:4px;color:#213f50}.calendar-grid button:disabled{background:#f0f1ee;color:#b3b8b5;opacity:1;text-decoration:line-through;cursor:default}.calendar-grid button.selected{background:#22618a;color:white;font-weight:700}.calendar-grid button.today:not(.selected){box-shadow:inset 0 0 0 1px #5487a0}.calendar-weekday{color:#77909b;padding:5px 0}.calendar-close{display:block;margin:10px 0 0 auto}.dashboard-grid{border:0;gap:32px 24px;margin-top:24px}.dashboard-grid .group:nth-child(n){padding:18px 17px 20px;border:1px solid #d8dfd7;border-radius:8px;background:#fffdf6;box-shadow:0 5px 16px #2549540b;align-self:stretch}.group-head{padding-bottom:9px;margin-bottom:12px}.dashboard-grid .metric{background:transparent}.risk-components{margin:12px 0 0 8px;padding:0 0 0 12px;border-left:2px solid #aec2c5}.risk-components .metric-top h4{font-size:14px}.risk-components .metric-shell+.metric-shell{margin-top:17px}.metric-project.is-winner{background:linear-gradient(90deg,#fae7b1b0,#fffaf080);border-radius:5px;box-shadow:inset 3px 0 #b48631}.metric-project .project-label.winner{background:transparent;border:0;box-shadow:none;color:#17394d;font-weight:800;padding:0}.metric-project .winner-caption{display:inline-block;font:700 10px system-ui,sans-serif;color:#8a5b15;margin-left:5px;vertical-align:middle}.thumb-slot.award{color:#a5680e;background:#f4d98e;border-radius:50%;padding:3px;width:24px;height:24px}.thumb-slot.award svg{stroke:currentColor;fill:#fff6d8}.group-scope{font-size:11px;white-space:nowrap}.group[data-group=quality] .metric-period{display:none}
@media(max-width:1100px){.dashboard-grid{gap:24px 20px}.toolbar{gap:14px}.person-wrap{margin-left:auto}}
@media(max-width:680px){.toolbar{display:flex}.date-controls{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);width:100%;gap:12px 9px}.date-controls label:first-child{grid-column:1}.date-controls label:nth-child(2){grid-column:1;grid-row:2}.date-controls label:nth-child(3){grid-column:2;grid-row:2}.date-controls #reset-range{grid-column:2;grid-row:1;align-self:end;justify-self:end}.date-controls .date-input-wrap{width:100%}.date-controls label>span{font-size:11px;white-space:normal;line-height:17px}.date-controls small{font-size:10px;margin-left:1px}.date-controls .date-input-wrap input{font-size:12px;padding:7px 5px}.calendar-toggle{width:28px}.dashboard-grid{display:grid;grid-template-columns:1fr;gap:24px;margin-top:20px}.dashboard-grid .group:nth-child(n){padding:17px 12px}.risk-components{margin-left:2px;padding-left:9px}.person-wrap{margin-top:0}.winner-caption{white-space:nowrap}.metric-project .winner-caption{margin-left:3px;font-size:9px}}

.calendar-toggle svg{width:19px;height:19px;fill:none;stroke:currentColor;stroke-width:1.6;vertical-align:middle}.toolbar .person-wrap{margin-left:auto}

/* Actual source dates stay inside their corresponding project card. */
.pk-project.detail-card h3{display:flex;align-items:center;justify-content:space-between;gap:8px;flex-wrap:wrap}.pk-project .detail-card-period{font:500 12px/1.5 system-ui,sans-serif;color:#5c7480;white-space:normal;font-variant-numeric:tabular-nums}@media(max-width:680px){.pk-project .detail-card-period{font-size:10px;flex-basis:100%}}

/* Configurable project names keep the shared card and table style. */
.project-label{min-width:0;white-space:normal;overflow-wrap:anywhere;line-height:1.4}.pk-project h3{overflow-wrap:anywhere}.project-key{flex-wrap:wrap}.project-key>span{max-width:24em;overflow-wrap:anywhere}.rw-project-tab{white-space:normal;overflow-wrap:anywhere}.pk-project.detail-card h3{min-width:0}

.project-comparison-controls{display:flex;align-items:center;gap:14px;flex-wrap:wrap;margin:12px 0}.project-comparison-controls label{display:flex;align-items:center;gap:8px;font:13px system-ui,sans-serif}.project-comparison-controls select{max-width:240px;min-height:38px}@media(max-width:680px){.project-comparison-controls{gap:8px}.project-comparison-controls select{max-width:170px}.project-comparison-controls>span{width:100%}}

#person-name,#person-role{overflow-wrap:anywhere}.project-label.long-project-name{font-size:12px}@media(max-width:680px){.project-label.long-project-name{font-size:11px}}

/* v0.15: compact linked submetrics and real publication frequency. */
.risk-components{margin-top:8px;border-left:0;padding-left:8px}.risk-components .metric-shell+.metric-shell{margin-top:8px}
.group-frequency{margin-left:auto;font:600 12px/1.4 system-ui,sans-serif;color:#496675;background:#edf3ef;padding:4px 8px;border-radius:4px;white-space:nowrap}
.detail-frequency{display:inline-block;margin-left:12px;vertical-align:middle;font:600 12px/1.4 system-ui,sans-serif;color:#496675;background:#edf3ef;padding:4px 8px;border-radius:4px}
.scope-detail-section{margin-top:24px}.scope-detail-section h4{margin:16px 0 8px}.analysis-table .analysis-remarks{min-width:180px;max-width:310px;font-size:12px;line-height:1.55}.analysis-remarks p{margin:0 0 5px}.analysis-table thead tr:nth-child(2) th{font-size:12px}.analysis-table td{font-variant-numeric:tabular-nums}
@media(max-width:680px){.group-frequency{font-size:11px;padding:3px 6px}.detail-frequency{margin-left:8px}.scope-detail-section{margin-top:18px}}

.analysis-table:has(.analysis-row-status) td:first-child{min-width:84px;white-space:nowrap}.analysis-table:has(.analysis-row-status) td:nth-child(2){min-width:180px}.analysis-row-status{font-weight:600;color:#496675}

/* Compact risk rows and matching publication labels. */
.group[data-group="risk"] .metric-shell+.metric-shell .metric{padding-top:6px;margin-top:4px}.group[data-group="risk"] .risk-components{margin-top:4px;padding-left:6px}.group[data-group="risk"] .metric-top{margin-bottom:4px}.group[data-group="risk"] .metric-project{min-height:34px}.group[data-group="quality"] .group-scope{font:600 12px/1.4 system-ui,sans-serif;color:#496675;background:#edf3ef;padding:4px 8px;border-radius:4px}.metric-frequency{margin-left:auto}.metric-top{flex-wrap:wrap}.group[data-group="risk"]{padding-bottom:14px!important}@media(max-width:680px){.group[data-group="risk"] .metric-project{min-height:58px}.group[data-group="quality"] .group-scope{font-size:11px}}

.remark-fold summary{cursor:pointer;color:#276688;font-weight:600;white-space:nowrap}.remark-fold p{margin:8px 0 0;white-space:normal}.analysis-table .analysis-remarks{min-width:100px;max-width:220px}.student-mode-switch{display:flex;gap:8px;margin:4px 0 16px}.student-mode-switch button.active{background:#276688;color:#fff}.quality-category-section{margin-top:24px}

.daily-history-bar{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin:16px 0;font:13px system-ui;color:#4b6d7c}.daily-history-dialog{width:min(1100px,calc(100vw - 30px));max-height:85vh;overflow:auto}.daily-history-filters{display:flex;gap:10px;align-items:flex-end;flex-wrap:wrap;margin-bottom:16px}.daily-history-filters label{display:grid;gap:5px;font-size:13px}.daily-history-filters input{min-height:38px}.daily-history-summary{display:flex;gap:18px;flex-wrap:wrap;color:#285d73;font-weight:700}.daily-history-dialog .rw-pager{display:flex;gap:10px;align-items:center;justify-content:flex-end;margin-top:15px}.daily-history-dialog .rw-pager span{margin-right:auto}

/* Mixed frequencies stay in their group header and wrap on narrow screens. */
.group-head{flex-wrap:wrap}.group-frequency{white-space:normal;max-width:100%;overflow-wrap:anywhere}.task-import>a{display:inline-block;margin:8px 14px 8px 0}

/* The current-data cutoff stays beside its indicator. */

.metric-target-note{margin:12px 0;color:var(--ink);font:600 14px/1.5 system-ui,sans-serif}

.metric-explanation-tooltip p{display:block;margin:0 0 10px;line-height:1.65;white-space:normal}.metric-explanation-tooltip p:last-child{margin-bottom:0}

.dashboard-grid .group-head .update-cycle-badge{display:inline-block;padding:4px 8px;border-radius:4px;font:600 12px/1.4 system-ui,sans-serif;white-space:nowrap}
.dashboard-grid .group-head .cycle-periodic{background:#e7f2eb;color:#315f47}.dashboard-grid .group-head .cycle-once{background:#e8eff9;color:#365b80}
#dashboard .group[data-group="cost"] .group-head .cycle-badge-pair{display:flex;flex-direction:column;align-items:flex-end;gap:5px;background:transparent;padding:0;border:0}
@media(max-width:680px){.dashboard-grid .group-head .update-cycle-badge{font-size:11px;padding:3px 6px}}

/* Project and difference columns retain contrast across visual themes. */
.analysis-table .analysis-project-sd{background:rgba(49,120,167,.09)}
.analysis-table .analysis-project-h4{background:rgba(205,126,53,.10)}


.analysis-teacher-note{display:block;max-width:260px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;cursor:help}
.analysis-remarks:empty{background:transparent}

.analysis-pk-status{display:block;font-size:12px;line-height:1.5;font-weight:500;color:var(--ink)}
.analysis-pk-value{display:block;margin-top:4px;font-size:13px;line-height:1.5}
.analysis-remarks .analysis-teacher-note + .analysis-teacher-note{margin-top:5px}
.analysis-source-cutoff{display:block;margin-top:3px}
@media(min-width:901px){
 #detail-body .analysis-section,#detail-body .analysis-content,#detail-body .analysis-content>.trend-chart,#detail-body .chart-data-fold{width:100%;max-width:none;box-sizing:border-box}
 #detail-body .analysis-content>.trend-chart{display:block}
 #detail-body .analysis-content .trend-svg{width:100%}
 #detail-body .chart-data-fold{padding-inline:0}
 #detail-body .chart-data-fold>summary{padding-inline:16px}
 #detail-body .chart-data-fold>.analysis-table-wrap{width:100%;max-width:none;box-sizing:border-box;margin-inline:0}
 #detail-body .chart-data-fold .analysis-table{width:100%}
}

.analysis-section .analysis-table thead th{text-align:center}
.analysis-section .analysis-table .analysis-difference{background:transparent}

/* Align single-line values with multi-line PK and teacher notes. */
.analysis-section .analysis-table tbody td,.analysis-section .analysis-table tbody th{vertical-align:middle}

.analysis-content>.trend-frame{position:relative;width:100%;min-width:0;box-sizing:border-box;padding-top:36px;border:1px solid #d1dddc;background:var(--paper);border-radius:5px}
.trend-frame>.trend-key{position:absolute;top:9px;right:14px;margin:0;gap:15px;z-index:1}
.trend-frame>.trend-key i{width:22px;height:0;background:none}
.trend-frame>.trend-chart{width:100%;box-sizing:border-box}
.trend-frame .trend-svg{border:0}
@media(max-width:680px){.trend-frame>.trend-key{right:10px;gap:12px;font-size:12px}}

@media(min-width:901px){
 #detail-body .analysis-section{width:100%;max-width:1040px;margin-inline:auto}
}

/* Compact chart caption and balanced numeric columns. */
.analysis-section .analysis-table tbody td:first-child,.analysis-section .analysis-table tbody .analysis-project-cell{text-align:center}
.analysis-section .analysis-controls .analysis-mode-button{font-size:15px;font-weight:700;padding:9px 16px}
.analysis-content>.trend-frame{padding-top:0}
.trend-caption{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;padding:10px 14px}
.trend-caption .trend-period{font-size:13px;line-height:1.5;margin:0}
.trend-caption>.trend-key{position:static;margin:0;gap:15px}
.trend-caption>.trend-key i{width:22px;height:0;background:none}
#detail-body .chart-data-fold{padding-inline:16px;box-sizing:border-box}
#detail-body .chart-data-fold>summary{padding-inline:0}
#detail-body .chart-data-fold>.analysis-table-wrap{width:100%;max-width:100%;margin-inline:0;box-sizing:border-box}
@media(max-width:680px){
 .trend-caption{padding:9px 10px;gap:6px 12px}
 .trend-caption .trend-period{font-size:12px}
 .analysis-section .analysis-controls .analysis-mode-button{font-size:14px;padding:8px 13px}
 #detail-body .chart-data-fold{padding-inline:10px}
}

.analysis-section .chart-comparison-table{table-layout:fixed}
.analysis-section .chart-comparison-table .analysis-project-cell{min-width:0}
.analysis-section .chart-comparison-table .analysis-project-cell strong{font-size:13px;font-weight:650}
.analysis-section .chart-comparison-table .analysis-remarks{min-width:0}
.analysis-section .chart-comparison-table .analysis-teacher-note{width:100%;max-width:none;min-width:0}

.analysis-period-label{display:block;font-size:12px;font-weight:500;margin-bottom:4px}
.analysis-section .analysis-table .analysis-project-sd,.analysis-section .analysis-table .analysis-project-h4{background:transparent}
.detail-comparison-section .detail-project-table{border-color:var(--line);background:var(--paper)}
.detail-comparison-section .detail-project-table h4{color:var(--ink)}
.detail-comparison-section tfoot{background:rgba(83,129,144,.10)}
.detail-comparison-section .detail-campus-total{background:rgba(83,129,144,.06)}
.v58-date-section input[type=date]{width:clamp(230px,30vw,320px);max-width:100%;min-height:46px}
.v58-date-section input[type=date]:disabled{cursor:not-allowed}
.v58-date-section input[type=date][aria-invalid=true]{border-color:#a54438;outline:1px solid #a54438}
@media(max-width:680px){.v58-date-section input[type=date]{width:min(260px,100%)}}

.v59-date-picker{position:relative;display:inline-flex;width:clamp(260px,32vw,340px);max-width:100%;align-items:center}
.v59-date-picker input[type=date]{width:100%;padding-right:48px}
.v59-date-picker input[type=date]::-webkit-calendar-picker-indicator{display:none}
.v59-date-picker-button{position:absolute;right:4px;top:4px;bottom:4px;width:42px;display:grid;place-items:center;border:0;background:transparent;color:var(--ink);cursor:pointer}
.v59-date-picker-button:disabled{pointer-events:none;opacity:.4}
.v59-date-picker-panel{position:fixed;z-index:10000;padding:14px;border:1px solid var(--line);border-radius:8px;background:var(--paper);color:var(--ink);box-shadow:0 8px 24px #173f4426}
.v59-date-picker-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}
.v59-date-picker-head button,.v59-date-picker-grid button{border:1px solid var(--line);border-radius:4px;background:var(--paper);color:var(--ink);min-height:36px;cursor:pointer}
.v59-date-picker-head button{width:38px;font-size:22px}
.v59-date-picker-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:5px;text-align:center}
.v59-weekday{font-size:12px;color:var(--muted);padding-bottom:5px}
.v59-date-picker-panel button:disabled{opacity:.3;pointer-events:none;cursor:default}
.v59-date-picker-grid button.selected{border-color:var(--blue);box-shadow:inset 0 0 0 1px var(--blue);font-weight:700}
.v59-date-picker-range{display:block;margin-top:12px;font-size:12px}

/* Stable project identification in chart detail cells; PK colours stay neutral. */
.analysis-section .analysis-table .analysis-project-sd{background:#eaf3fa;color:#244f6e}
.analysis-section .analysis-table .analysis-project-h4{background:#fff2e5;color:#704a29}
html[data-design=tech] .analysis-section .analysis-table .analysis-project-sd{background:#203e55!important;color:#e2eff9!important}
html[data-design=tech] .analysis-section .analysis-table .analysis-project-h4{background:#49372c!important;color:#fff0df!important}
