:root { --navy:#142b4b; --blue:#285fce; --ink:#1c304c; --muted:#63758c; --line:#e2e8f0; background:#f3f6fb; color:var(--ink); font-family:Inter,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif; font-size:14px; }
* { box-sizing:border-box; }
a { color:#2458b0; text-decoration:none; }
a:hover { text-decoration:underline; }
a:focus-visible, button:focus-visible, summary:focus-visible, input:focus-visible, select:focus-visible { outline:3px solid #649af5; outline-offset:3px; }
.skip-link { visibility:hidden; position:fixed; top:-100px; left:16px; z-index:50; padding:12px; background:white; }
.skip-link:focus { visibility:visible; top:10px; }
.app-header { display:block; padding:0; background:transparent; color:var(--ink); }
.sidebar { position:fixed; inset:0 auto 0 0; width:234px; background:var(--navy); color:#c8d5e7; z-index:20; padding:30px 18px; overflow-y:auto; }
.brand { display:flex; gap:12px; align-items:center; color:white; font-size:20px; letter-spacing:-.5px; text-decoration:none; padding:0 9px 35px; }
.brand:hover { text-decoration:none; }
.brand small { display:block; color:#9eafc7; font-size:10px; font-weight:400; letter-spacing:.2px; margin-top:2px; }
.brand-mark { display:flex; align-items:center; justify-content:center; background:#3973df; border-radius:10px; width:38px; height:38px; font-size:23px; font-weight:800; flex-shrink:0; }
.brand-mark span { color:#c0d5ff; }
.navigation-menu > summary { display:none; }
.main-navigation { display:flex; flex-direction:column; gap:6px; line-height:1.4; }
.nav-caption { font-size:9px; font-weight:600; letter-spacing:1.4px; color:#8eabc9; margin:16px 12px 10px; }
.main-navigation a { display:flex; align-items:center; gap:12px; color:#cfdbeb; padding:13px 12px; border-radius:8px; font-weight:500; font-size:13px; }
.main-navigation a > span { width:18px; font-size:20px; line-height:1; color:#99b5da; flex-shrink:0; }
.main-navigation a:hover { background:#203c60; text-decoration:none; color:white; }
.main-navigation a[aria-current=page] { background:#2e61bb; color:white; box-shadow:0 4px 10px #0d234b33; }
.main-navigation a[aria-current=page] > span { color:white; }
.sidebar-note { margin:100px 12px 0; border-top:1px solid #334a68; padding-top:20px; font-size:11px; line-height:1.8; color:#91a8c5; }
.sidebar-note strong { font-weight:400; color:#c6d5e8; }
.topbar { height:82px; margin-left:234px; background:white; border-bottom:1px solid var(--line); padding:0 34px; display:flex; align-items:center; justify-content:space-between; gap:16px; }
.topbar-label { font-size:12px; font-weight:600; }
.topbar-label .muted { font-weight:400; margin-left:12px; }
.profile-menu { position:relative; margin-left:auto; }
.profile-menu > summary { display:flex; align-items:center; gap:10px; list-style:none; padding:6px 0; min-height:44px; }
.profile-menu > summary::-webkit-details-marker { display:none; }
.avatar { display:flex; align-items:center; justify-content:center; background:#e9f0fe; color:#2d60bc; border:1px solid #d9e4f9; width:38px; height:38px; border-radius:50%; flex-shrink:0; font-size:14px; font-weight:700; }
.profile-compact { max-width:260px; min-width:0; line-height:1.4; }
.profile-compact strong, .profile-compact small { display:block; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.profile-compact strong { font-size:12px; }
.profile-compact small { color:var(--muted); font-size:10px; }
.profile-panel { position:absolute; z-index:30; right:0; top:55px; width:340px; max-width:calc(100vw - 32px); max-height:70vh; overflow:auto; padding:20px; background:white; border:1px solid var(--line); border-radius:14px; box-shadow:0 15px 45px #16345124; font-size:13px; }
.profile-panel h2 { font-size:14px; }
.profile-panel li { padding:4px 0; }
.profile-panel ul ul { padding-left:20px; font-weight:400; }
.profile-panel form { margin-top:18px; padding-top:16px; border-top:1px solid var(--line); }
.workspace-main { margin:0 0 0 234px; max-width:none; padding:32px 34px 50px; }
h1, h2, h3 { letter-spacing:-.4px; }
h1 { font-size:29px; line-height:1.25; margin:6px 0 10px; font-weight:720; }
h2 { font-size:18px; margin:0; line-height:1.4; }
h3 { font-size:16px; }
p { margin:.65rem 0; }
.muted, .item-meta { color:var(--muted); }
.eyebrow { color:#72859e; font-size:9px; letter-spacing:1.6px; font-weight:700; margin:0 0 6px; }
.page-heading { display:flex; justify-content:space-between; align-items:center; gap:20px; margin-bottom:24px; }
.page-heading > div > p:last-child { font-size:13px; margin:0; }
.button-link, button { border-radius:8px; min-height:44px; background:var(--blue); color:white; font-weight:600; font-size:12px; }
.button-link { display:inline-flex; align-items:center; gap:20px; padding:12px 18px; flex-shrink:0; }
.button-link:hover { color:white; background:#174cb9; text-decoration:none; }
.dashboard-filters { display:grid; grid-template-columns:minmax(125px,1fr) minmax(105px,.8fr) minmax(160px,1.8fr) minmax(125px,1fr) auto; gap:14px; padding:18px 20px; border:1px solid var(--line); background:white; border-radius:12px; align-items:end; }
.dashboard-filters label { color:var(--muted); font-size:10px; font-weight:600; margin-bottom:5px; }
input, select, textarea { border:1px solid #cfdae8; border-radius:7px; background:white; padding:10px; color:var(--ink); }
.dashboard-filters input, .dashboard-filters select { min-height:41px; font-size:12px; }
.scope-line { font-size:11px; color:var(--muted); margin:14px 0 18px; }
.scope-line a { margin-left:14px; }
.kpi-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:16px; }
.kpi-card, .dashboard-panel { border:1px solid var(--line); border-radius:14px; box-shadow:0 3px 9px #183c682; background:white; }
.kpi-card { position:relative; padding:20px; margin:0; display:flex; flex-direction:column; min-height:190px; }
.kpi-label { font-weight:600; font-size:12px; color:#5a6e87; margin:0 0 18px; }
.kpi-value { min-height:40px; font-size:24px; font-weight:700; line-height:1.3; font-variant-numeric:tabular-nums; }
.kpi-value > .muted { font-size:16px; font-weight:500; }
.money-value { display:block; font-variant-numeric:tabular-nums; }
.money-value small { font-size:.55em; font-weight:500; color:#6a7c94; }
.kpi-card .muted { font-size:10px; line-height:1.5; margin:10px 0 15px; }
.kpi-card > a { font-size:11px; margin-top:auto; }
.kpi-card.received { border-top:3px solid #4eaa8c; padding-top:18px; }
.kpi-card.received .kpi-value { color:#21785f; }
.attention-strip { display:grid; grid-template-columns:1fr 1fr; border:1px solid #ecdfcc; background:#fffbf5; border-radius:12px; margin:20px 0 24px; padding:14px 20px; gap:24px; font-size:11px; }
.attention-strip > div { display:flex; gap:12px; align-items:center; }
.attention-strip > div + div { border-left:1px solid #ecdfcc; padding-left:24px; }
.attention-strip a { margin-left:auto; flex-shrink:0; }
.attention-strip p { margin:3px 0 0; color:#7a6e5f; font-size:10px; }
.attention-icon { background:#ffedce; color:#9a5c13; border-radius:50%; width:30px; height:30px; display:flex; justify-content:center; align-items:center; font-weight:700; flex-shrink:0; }
.inline-values .money-value { display:inline; margin-right:8px; color:#97551e; }
.inline-values .money-value small { font-size:10px; }
.dashboard-columns { display:grid; grid-template-columns:minmax(0,1.8fr) minmax(0,1fr); gap:20px; align-items:start; margin:20px 0; }
.dashboard-panel { padding:22px; margin:0; }
.panel-heading { display:flex; align-items:center; justify-content:space-between; gap:16px; margin-bottom:12px; }
.panel-heading > a { font-size:11px; flex-shrink:0; }
.dashboard-panel > .muted { font-size:11px; line-height:1.7; }
.dashboard-item { display:flex; align-items:flex-start; gap:12px; border-top:1px solid #edf0f5; padding:17px 0; font-size:11px; }
.dashboard-item:last-child { padding-bottom:0; }
.item-date { width:38px; flex-shrink:0; background:#f0f4fa; border-radius:8px; padding:6px 2px; display:flex; flex-direction:column; align-items:center; line-height:1.3; color:#677b94; font-size:9px; }
.item-date strong { font-size:17px; color:#334e71; }
.item-content { min-width:0; flex:1; }
.item-content > a { color:#273f60; font-weight:650; font-size:12px; line-height:1.5; display:block; }
.item-meta { margin:4px 0 7px; font-size:10px; }
.status { font-size:10px; font-weight:500; gap:5px; }
.status::before { width:5px; height:5px; }
.risk-label, .decision-label { display:block; margin-top:5px; font-size:10px; color:#9e5e1e; }
.decision-label { color:#5267a7; }
.item-money { text-align:right; width:153px; flex-shrink:0; font-variant-numeric:tabular-nums; }
.item-money > strong { font-size:14px; display:block; }
.item-money small { font-size:10px; font-weight:400; color:var(--muted); }
.item-money > span { display:block; font-size:9px; color:#687a90; margin-top:5px; }
.item-money > .fact-text { color:#23785f; }
.side-panels { display:grid; gap:20px; }
.balance-panel { background:linear-gradient(125deg,#fdfefe,#eef4ff); }
.subtle-icon { display:block; color:#87a1ca; font-size:26px; margin-bottom:10px; }
.balance-status { font-size:18px; font-weight:600; line-height:1.5; max-width:270px; margin:14px 0; }
.balance-panel a { font-size:11px; }
.plan-stats { display:grid; grid-template-columns:1fr 1fr; gap:14px; padding:14px 0; }
.plan-stats strong { display:block; font-size:24px; font-weight:650; }
.plan-stats span { display:block; font-size:10px; color:var(--muted); }
.plan-row { border-top:1px solid var(--line); padding:12px 0; font-size:11px; }
.plan-row small { display:block; color:var(--muted); font-size:10px; margin-top:3px; }
.project-columns { grid-template-columns:repeat(2,minmax(0,1fr)); }
.project-stats { display:flex; flex-wrap:wrap; gap:16px; padding:15px 0; border-top:1px solid var(--line); }
.project-stats > div { flex:1 1 110px; }
.project-stats > div > span:first-child { display:block; color:var(--muted); font-size:10px; margin-bottom:7px; }
.project-stats .money-value { font-size:19px; font-weight:650; }
.project-stats .muted { font-size:11px; }
.project-panel .dashboard-item { flex-wrap:wrap; }
.project-panel .item-money { margin-left:50px; text-align:left; width:auto; flex:1 1 100%; display:flex; flex-wrap:wrap; gap:6px 14px; }
.project-panel .item-money > span { margin:0; }
.scenarios { background:#f5f8fc; border-radius:8px; padding:0 12px; margin-bottom:14px; font-size:11px; }
.scenarios summary { padding:12px 0; }
.scenarios p { padding-bottom:10px; }
.scenarios .money-value { display:inline; }
.empty-state { padding:28px 10px; color:var(--muted); text-align:center; font-size:12px; }
.trend-empty { display:flex; gap:20px; background:#f8faff; align-items:center; min-height:210px; }
.trend-empty p { font-size:12px; }
.trend-empty a { font-size:11px; }
#data-quality { font-size:11px; line-height:1.7; }
#data-quality summary { padding:12px 0; }
.breakdown { scroll-margin-top:20px; margin:20px 0; }
@media(min-width:1700px) { .workspace-main { max-width:1600px; margin-left:auto; margin-right:auto; padding-left:268px; } }
@media(max-width:1200px) { .workspace-main { padding:24px; } .topbar { padding:0 24px; } .kpi-grid { grid-template-columns:repeat(2,minmax(0,1fr)); } .dashboard-columns { grid-template-columns:minmax(0,1fr); } .side-panels { grid-template-columns:repeat(2,minmax(0,1fr)); } .project-columns { grid-template-columns:repeat(2,minmax(0,1fr)); } .dashboard-filters { grid-template-columns:repeat(2,minmax(0,1fr)); } .dashboard-filters button { justify-self:start; } }
@media(max-width:900px) { .sidebar { position:static; width:auto; padding:14px 18px; overflow:visible; display:flex; flex-wrap:wrap; gap:10px; align-items:center; } .brand { padding:0; font-size:19px; } .brand small { display:none; } .brand-mark { width:32px; height:32px; border-radius:8px; font-size:20px; } .navigation-menu { margin-left:auto; } .navigation-menu > summary { display:flex; align-items:center; gap:12px; color:white; padding:0 8px; font-size:12px; } .navigation-menu[open] { flex:1 1 100%; } .navigation-menu[open] > summary { justify-content:flex-end; } .main-navigation { margin-top:10px; } .sidebar-note { display:none; } .topbar { margin:0; padding:10px 18px; height:66px; } .topbar-label { font-size:10px; } .topbar-label .muted { display:none; } .workspace-main { margin:0; padding:24px 18px; } .profile-compact { max-width:200px; } .profile-panel { top:50px; } .page-heading { gap:10px; } h1 { font-size:26px; } }
@media(max-width:650px) { .topbar { padding:8px 16px; } .profile-compact { max-width:210px; } .topbar-label { display:none; } .profile-menu { margin-left:0; width:100%; } .profile-menu > summary { justify-content:flex-start; } .profile-menu > summary > span:last-child { margin-left:auto; } .profile-panel { right:0; width:100%; max-width:100%; } .workspace-main { padding:22px 16px 36px; } .page-heading { display:block; margin-bottom:20px; } .page-heading > .button-link { margin-top:16px; width:100%; justify-content:space-between; } h1 { font-size:26px; } .page-heading > div > p:last-child { font-size:12px; line-height:1.7; } .dashboard-filters { padding:14px; gap:12px; } .dashboard-filters > div:nth-of-type(3), .dashboard-filters > div:nth-of-type(4) { grid-column:1 / -1; } .dashboard-filters button { grid-column:1 / -1; width:100%; } .scope-line { font-size:10px; line-height:1.8; } .scope-line a { margin:0; display:block; } .kpi-grid { gap:10px; } .kpi-card { padding:15px 12px; min-height:195px; border-radius:11px; } .kpi-card.received { padding-top:13px; } .kpi-label { font-size:11px; margin-bottom:14px; } .kpi-value { font-size:21px; } .kpi-value > .muted { font-size:14px; } .kpi-card .muted { font-size:9px; } .kpi-card > a { font-size:10px; min-height:32px; display:flex; align-items:center; } .attention-strip { grid-template-columns:1fr; padding:15px; gap:14px; } .attention-strip > div + div { border-left:0; border-top:1px solid #ecdfcc; padding:14px 0 0; } .attention-strip > div { gap:8px; } .attention-strip a { font-size:10px; padding:7px 0; } .attention-icon { width:25px; height:25px; } .dashboard-columns, .side-panels, .project-columns { grid-template-columns:minmax(0,1fr); gap:16px; margin:16px 0; } .side-panels { margin:0; } .dashboard-panel { padding:18px 15px; border-radius:12px; } h2 { font-size:17px; } .panel-heading { align-items:flex-start; gap:10px; } .panel-heading > a { font-size:10px; min-height:30px; padding-top:3px; } .calendar-panel .dashboard-item, .breakdown .dashboard-item { flex-wrap:wrap; } .dashboard-item { gap:10px; padding:16px 0; } .item-date { width:33px; } .item-content > a { font-size:12px; } .calendar-panel .item-money, .breakdown .item-money, .project-panel .item-money { margin-left:43px; width:auto; flex:1 1 100%; text-align:left; display:flex; flex-wrap:wrap; gap:5px 12px; } .item-money > span { margin-top:0; } .item-money > strong { font-size:14px; } .balance-panel { min-height:0; } .plan-stats { grid-template-columns:repeat(4,minmax(0,1fr)); gap:8px; } .plan-stats strong { font-size:23px; } .plan-stats span { font-size:9px; } .project-stats { gap:12px; } .project-stats .money-value { font-size:20px; } .trend-empty { gap:12px; align-items:flex-start; } .trend-empty .subtle-icon { font-size:24px; } .money-value { overflow-wrap:anywhere; } }
@media(prefers-reduced-motion:reduce) { * { scroll-behavior:auto !important; } }

/* Teacher overview: four numbers, three unique questions, details on demand. */
.teacher-workspace .workspace-main { padding:20px 16px 36px; }
.teacher-board { max-width:1180px; margin:auto; font-size:14px; line-height:1.5; }
.teacher-board * { min-width:0; }
.teacher-workspace .main-navigation a, .teacher-workspace .profile-panel, .teacher-workspace .profile-compact strong, .teacher-workspace .profile-compact small { font-size:14px; }
.teacher-workspace .brand { min-height:44px; }
.teacher-kicker { display:block; color:#617995; font-size:13px; font-weight:600; letter-spacing:.4px; margin:0; }
.teacher-heading .teacher-kicker span { font-weight:400; letter-spacing:0; }
.teacher-heading h1 { font-size:26px; margin:4px 0 14px; }
.teacher-filters { display:flex; flex-wrap:wrap; align-items:center; gap:0 24px; margin:0; }
.teacher-horizon { display:flex; align-items:center; gap:8px; flex:1 1 300px; max-width:380px; }
.teacher-horizon label { margin:0; font-size:14px; font-weight:500; }
.teacher-horizon select { width:auto; flex:1; background:white; }
.teacher-board input, .teacher-board select, .teacher-board button { min-height:44px; font-size:14px; }
.teacher-board summary { display:flex; align-items:center; min-height:44px; gap:10px; font-size:14px; list-style:none; }
.teacher-board summary::-webkit-details-marker { display:none; }
.teacher-board summary::before { content:'+'; font-weight:700; color:var(--blue); flex-shrink:0; }
.teacher-board details[open] > summary::before { content:'−'; }
.teacher-filters > details[open] { flex:1 1 100%; }
.teacher-filter-fields { display:grid; gap:12px; padding:8px 0; }
.teacher-scope { font-size:13px; color:var(--muted); margin:8px 0 12px; }
.teacher-kpis { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; }
.teacher-kpi { display:flex; flex-direction:column; gap:8px; min-height:134px; padding:14px 12px 12px; background:white; border:1px solid var(--line); border-top:3px solid #9ab2d7; border-radius:12px; color:var(--ink); }
.teacher-kpi:hover { text-decoration:none; border-color:#86a9e6; box-shadow:0 3px 12px #183c6810; }
.teacher-kpi-label { font-size:14px; line-height:1.4; color:#526b88; }
.teacher-kpi-value { font-size:clamp(22px,4.7vw,30px); font-weight:700; line-height:1.25; font-variant-numeric:tabular-nums; overflow-wrap:anywhere; }
.teacher-kpi-value .money-value + .money-value { margin-top:6px; }
.teacher-kpi-value small { display:inline-block; font-size:13px; }
.teacher-kpi > small { margin-top:auto; font-size:13px; color:var(--muted); }
.teacher-kpi-value .muted { display:block; font-size:16px; font-weight:500; }
.teacher-kpi.actual { border-top-color:#46a180; }
.teacher-kpi.actual .teacher-kpi-value { color:#21785f; }
.teacher-kpi.expected { border-top-color:#d6ac50; }
.teacher-kpi.decisions { border-top-color:#6688cd; }
.teacher-balance { display:flex; flex-wrap:wrap; gap:2px 12px; padding:10px 0; font-size:13px; color:var(--muted); }
.teacher-balance strong { font-weight:500; color:var(--ink); }
.teacher-balance small { font-size:13px; }
.teacher-alert { display:flex; flex-wrap:wrap; align-items:center; gap:2px 8px; min-height:44px; padding:8px 12px; margin:0 0 12px; background:#fff3e3; border:1px solid #eed6b5; border-radius:10px; color:#895017; }
.teacher-alert small { font-size:13px; }
.teacher-alert .money-value small { color:inherit; font-size:13px; }
.teacher-board .dashboard-panel { padding:16px; }
.teacher-board h2 { font-size:20px; }
.teacher-panel-heading { display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:4px 12px; padding-bottom:8px; }
.teacher-brief-item { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,.85fr); align-items:start; gap:6px 14px; padding:14px 0; min-height:88px; border-top:1px solid var(--line); color:var(--ink); }
.teacher-brief-item:hover { text-decoration:none; background:#f6f9ff; }
.teacher-brief-title { font-size:15px; font-weight:600; line-height:1.45; }
.teacher-brief-money { display:block; text-align:right; }
.teacher-brief-money > strong { display:block; font-size:21px; font-weight:700; line-height:1.3; font-variant-numeric:tabular-nums; }
.teacher-brief-money small { display:inline-block; font-size:13px; font-weight:400; color:var(--muted); }
.teacher-brief-meta { grid-column:1 / -1; display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:4px 12px; font-size:13px; color:var(--muted); }
.teacher-board .status { font-size:13px; }
.teacher-board .status-overdue { color:#94510f; }
.teacher-board .status-decision { color:#285f9e; }
.teacher-board .status-decision::before { background:#285f9e; }
.teacher-board .status-expected { color:#836114; }
.teacher-board .status-expected::before { background:#bf941f; }
.teacher-link { display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:4px 12px; min-height:44px; font-size:14px; font-weight:600; }
.teacher-attention > .teacher-link { border-top:1px solid var(--line); }
.teacher-other-urgent { color:#94510f; }
.teacher-layout { display:grid; align-items:start; gap:10px; margin:12px 0; }
.teacher-board .teacher-section { padding:0 16px; box-shadow:none; }
.teacher-section > summary { padding:14px 0; min-height:82px; }
.teacher-section > summary::before { order:2; margin-left:auto; }
.teacher-section > summary > span { display:block; }
.teacher-section summary strong { display:block; font-size:16px; color:var(--ink); }
.teacher-section summary small { display:block; margin-top:3px; color:var(--muted); font-size:13px; font-weight:400; }
.teacher-disclosure-link { display:block; color:var(--blue); font-size:14px; margin-top:6px; }
.teacher-section-body { border-top:1px solid var(--line); padding:8px 0 12px; }
.teacher-project-values { display:grid; gap:12px; margin:12px 0; }
.teacher-project-values dt { color:var(--muted); font-size:14px; font-weight:400; margin-bottom:4px; }
.teacher-project-values dd { margin:0; }
.teacher-project-values .money-value { font-size:24px; font-weight:650; line-height:1.4; }
.teacher-board .money-value small { font-size:13px; }
.teacher-scenarios { background:#f4f7fc; padding:0 12px; border-radius:8px; }
.teacher-definitions { color:var(--muted); }
.teacher-board .teacher-detail { margin:8px 0; }
.teacher-item { border-top:1px solid var(--line); padding:16px 0; }
.teacher-item-head { display:flex; flex-wrap:wrap; gap:6px 14px; align-items:center; }
.teacher-date { color:#526b88; font-size:14px; }
.teacher-item-title { display:flex; align-items:center; min-height:44px; font-size:16px; font-weight:650; color:#25446a; }
.teacher-item p { margin:4px 0; font-size:14px; }
.teacher-amount { display:grid; gap:4px; margin:10px 0; }
.teacher-amount strong { display:block; font-size:24px; line-height:1.35; font-variant-numeric:tabular-nums; }
.teacher-amount strong small, .teacher-amount > span { display:block; font-size:14px; color:var(--muted); font-weight:400; }
.teacher-amount strong small { display:inline-block; }
.teacher-fact { color:#21785f; }
.teacher-risk { color:#94510f; }
.teacher-pagination { display:flex; flex-wrap:wrap; align-items:center; gap:20px; }
.teacher-workspace .sidebar .navigation-menu > summary { min-height:44px; font-size:14px; }
.teacher-board .dashboard-panel > .muted, .teacher-board .empty-state { font-size:14px; }
.teacher-board label, .teacher-workspace .topbar-label, .teacher-workspace .nav-caption, .teacher-workspace .sidebar-note { font-size:14px; }
@media(min-width:1000px) { .teacher-workspace .workspace-main { padding:28px; } .teacher-kpis { grid-template-columns:repeat(4,minmax(0,1fr)); gap:14px; } .teacher-layout { grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px; } .teacher-project-values { grid-template-columns:repeat(2,minmax(0,1fr)); } .teacher-filter-fields { grid-template-columns:repeat(3,minmax(0,1fr)); } .teacher-brief-item { grid-template-columns:minmax(0,1fr) minmax(0,.6fr) minmax(0,1fr); align-items:center; } .teacher-brief-meta { grid-column:auto; justify-content:flex-start; } .teacher-brief-money { text-align:left; } }
@media(max-width:699px) { .teacher-workspace .sidebar { padding:8px 16px; } .teacher-workspace .topbar { height:56px; } .teacher-workspace .workspace-main { padding-top:16px; } .teacher-kpi-label { min-height:39px; } }

/* Project manager: one selected project, large controls, honest evidence labels. */
.manager-board { max-width:1240px; margin:auto; }
.manager-workspace { font-size:15px; }
.manager-workspace input, .manager-workspace select, .manager-workspace textarea { font-size:16px; min-height:44px; }
.manager-workspace label, .manager-workspace .main-navigation a { font-size:14px; }
.manager-workspace input[type=checkbox] { min-height:22px; width:22px; vertical-align:middle; }
.manager-workspace .brand, .manager-workspace .navigation-menu > summary { min-height:44px; }
.manager-workspace .workspace-main > form, .manager-form { max-width:760px; }
.manager-workspace .workspace-main > form { margin:20px 0; }
.manager-workspace .workspace-main > form p { margin:14px 0; }
.manager-workspace .workspace-main > form label:has(input[type=checkbox]) { display:flex; align-items:center; gap:12px; min-height:44px; font-weight:400; }
.manager-filters { display:flex; flex-wrap:wrap; align-items:end; gap:12px; padding:16px; background:white; border:1px solid var(--line); border-radius:12px; }
.manager-filters p { flex:1 1 210px; margin:0; }
.manager-filters button { min-height:46px; }
.manager-scope, .manager-coverage { color:var(--muted); font-size:14px; }
.manager-actions { display:flex; flex-wrap:wrap; gap:12px; margin:20px 0; }
.manager-workspace .button-link { min-height:48px; font-size:15px; padding:12px 16px; display:inline-flex; align-items:center; justify-content:center; }
.manager-actions .secondary { color:var(--blue); background:white; border:1px solid #c6d5ea; }
.manager-kpis { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:14px; }
.manager-kpi { margin:0; padding:20px; border:1px solid var(--line); border-top:3px solid #97b1d5; border-radius:12px; display:flex; flex-direction:column; gap:16px; }
.manager-kpi.actual { border-top-color:#46a180; }
.manager-kpi h2 { color:#526b88; font-size:15px; font-weight:500; }
.manager-number strong { display:block; font-size:27px; line-height:1.35; font-variant-numeric:tabular-nums; overflow-wrap:anywhere; }
.manager-number small { font-size:14px; font-weight:500; }
.manager-number > span { display:block; font-size:18px; font-weight:600; }
.manager-kpi p { margin:auto 0 0; color:var(--muted); font-size:13px; }
.manager-kpi.actual strong { color:#21785f; }
.manager-deadline { display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:12px; padding:22px; background:#eaf1ff; border-color:#d3e0f6; border-radius:12px; }
.manager-deadline > div { flex:1 1 300px; }
.manager-deadline h2 { margin:6px 0; font-size:20px; }
.manager-lists { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px; }
.manager-lists section { margin:0; padding:20px; }
.manager-overdue { grid-column:1/-1; }
.manager-panel-heading { display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:6px 12px; }
.manager-row { display:grid; grid-template-columns:minmax(0,1fr) minmax(100px,.5fr); gap:12px; padding:16px 0; border-top:1px solid var(--line); }
.manager-row p { font-size:13px; margin:0 0 6px; }
.manager-link { min-height:44px; display:inline-flex; align-items:center; font-size:14px; font-weight:600; }
.manager-row-money { text-align:right; }
.manager-row-money strong { display:block; font-size:20px; font-variant-numeric:tabular-nums; overflow-wrap:anywhere; }
.manager-row-money strong small, .manager-row-money > span { font-size:13px; font-weight:400; }
.manager-row-money > span { display:block; color:var(--muted); }
.manager-row .status { font-size:13px; }
.manager-pagination { display:flex; align-items:center; justify-content:space-between; gap:12px; }
@media(max-width:1150px) { .manager-kpis { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media(max-width:650px) { .manager-workspace .workspace-main { padding-top:16px; } .manager-workspace h1 { font-size:25px; } .manager-kpis { gap:10px; } .manager-kpi { padding:14px 12px; gap:10px; } .manager-kpi h2 { font-size:14px; } .manager-number strong { font-size:23px; } .manager-number > span { font-size:16px; } .manager-actions > a, .manager-deadline > a, .manager-filters button { width:100%; } .manager-actions { gap:8px; margin:16px 0; } .manager-lists { grid-template-columns:minmax(0,1fr); } .manager-lists section { padding:16px; } .manager-row { grid-template-columns:minmax(0,1fr); gap:6px; } .manager-row-money { display:flex; flex-wrap:wrap; align-items:center; gap:6px 12px; text-align:left; } .manager-row-money .manager-link { margin-left:auto; } .manager-row-money > span { flex:1; } .manager-deadline { padding:16px; } .manager-workspace .topbar { height:60px; } .manager-workspace .sidebar { padding:8px 16px; } }
.manager-board .manager-project-name { font-size:18px; color:#526b88; }
.manager-form details { margin:18px 0; padding:12px; background:white; border:1px solid var(--line); border-radius:8px; }
.manager-form summary { display:flex; align-items:center; font-size:14px; color:var(--blue); }
@media(max-width:650px) { .manager-filters { flex-wrap:nowrap; padding:12px; gap:10px; } .manager-filters p { flex:1 1 auto; min-width:0; } .manager-filters button { width:auto; flex:0 0 auto; } .manager-filters:has(select) { flex-wrap:wrap; } .manager-filters:has(select) button { width:100%; } }

/* Shared actions and compact workflow cues. */
.button-link.secondary { background:#e8eef8; color:#214d98; }
.button-link, button { max-width:100%; white-space:normal; text-align:center; }
textarea:focus-visible { outline:3px solid #649af5; outline-offset:3px; }
.main-navigation .nav-count { display:inline-flex; align-items:center; justify-content:center; background:#fff; color:#142b4b; border-radius:20px; min-width:22px; padding:3px 5px; font-size:12px; margin-left:auto; }
.pending-panel { margin-bottom:20px; border-left:4px solid #285fce; }
.pending-row { display:flex; align-items:center; justify-content:space-between; gap:18px; margin:10px 0; padding:14px; }
.pending-row h3 { margin:0; }
.pending-row p { font-size:12px; }
.context-help { margin:8px 0; font-size:13px; }
.context-help > summary { color:#214d98; font-weight:600; display:flex; align-items:center; }
.summary-kpis { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:12px; margin:14px 0; }
.summary-kpis > div { background:#fff; border:1px solid #d5dce5; padding:14px; border-radius:10px; }
.summary-kpis strong, .summary-kpis span { display:block; }
.summary-kpis strong { font-size:26px; }
.summary-kpis span { font-size:12px; color:#526277; }
.plan-filters { background:white; border:1px solid var(--line); padding:16px; border-radius:12px; margin:16px 0; }
.plan-filters p { display:inline-block; vertical-align:top; margin:0 12px 12px 0; max-width:100%; }
.plan-filters p:last-of-type { margin-right:12px; }
.draft-form .helptext, .draft-form small { display:block; font-size:13px; color:#526277; }
.manager-deadline { margin:16px 0; }
@media(max-width:650px) {
  .pending-row { display:block; }
  .pending-row .button-link, .plan-review-link { width:100%; justify-content:center; }
  .summary-kpis { grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px; }
  .summary-kpis > div { padding:10px; }
  .plan-filters p { display:block; margin-right:0; }
  .topbar .topbar-label { display:none; }
  .topbar { gap:10px; }
  .profile-compact { max-width:160px; }
}
button[data-decision="returned"] { background:#805600; }
button[data-decision="rejected"] { background:#962d3b; }
