@charset "UTF-8";
:root{--ink:#19354b;--text:#354b5b;--muted:#82909d;--primary:#167b78;--primary-dark:#0c6261;--nav:#122f44;--line:#e5ebef;--bg:#f4f7fa;--danger:#b54747;--shadow:0 3px 14px #19354b04}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font:14px/1.6 -apple-system,BlinkMacSystemFont,"Segoe UI","Microsoft YaHei",sans-serif}a{color:var(--primary);text-decoration:none}a:hover{color:var(--primary-dark)}button,input,select,textarea{font:inherit}button,a,input,select,textarea{outline-offset:3px}button{cursor:pointer}svg{width:21px;height:21px;flex-shrink:0}h1,h2,h3,p{margin-top:0}h1{font-size:28px;color:var(--ink);font-weight:650;letter-spacing:-.6px;margin-bottom:8px}h2{font-size:16px;color:var(--ink);margin:0}h3{font-size:15px;color:var(--ink)}.sidebar{position:fixed;left:0;top:0;bottom:0;width:236px;background:var(--nav);color:#c4d0d9;padding:30px 20px;display:flex;flex-direction:column;z-index:30}.brand{display:flex;align-items:center;gap:12px;font-size:25px;letter-spacing:2px;font-weight:700;color:white;padding:0 10px 39px}.brand:hover{color:white}.brand-mark{display:grid;place-items:center;width:39px;height:43px;border:1px solid #547583;border-radius:10px;font-size:27px;color:#8dd3c8;background:#ffffff08}.brand small{display:block;font-size:10px;font-weight:400;letter-spacing:1px;color:#8ca7b9;margin-top:1px}.nav-label{font-size:10px;color:#718da1;padding:0 16px 13px;letter-spacing:1.5px}nav a{display:flex;align-items:center;gap:14px;color:#aebfcc;padding:12px 16px;border-radius:7px;margin-bottom:5px;font-size:13px;transition:.15s}nav a:hover{background:#ffffff08;color:white}nav a.active{color:#fff;background:#28716f}nav a.active svg{color:#a5e0d7}.sidebar-bottom{margin-top:auto;font-size:12px;padding:26px 13px 0;color:#a6bcc9}.sidebar-bottom small{display:block;color:#638197;font-size:10px;margin-top:9px}.live-dot{display:inline-block;width:6px;height:6px;border-radius:50%;background:#69b7a1;margin-right:5px}.workspace{margin-left:236px}.topbar{height:78px;background:white;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 38px}.breadcrumb{font-size:12px;color:#6e8190}.breadcrumb span{color:#bec8ce;margin:0 14px}.account{display:flex;align-items:center;gap:13px;font-size:12px}.account small{display:block;font-size:10px;color:var(--muted)}.account form{margin:0}.avatar{background:#e7f1ef;color:var(--primary);border-radius:50%;width:34px;height:34px;display:grid;place-items:center;font-weight:600}.link{border:0;background:none;color:var(--muted);padding:0}.menu-button{display:none}main{max-width:1800px;margin:auto;padding:33px 38px 40px;min-height:calc(100vh - 128px)}.page-heading{display:flex;align-items:center;justify-content:space-between;gap:24px;margin-bottom:27px}.eyebrow{color:#7b929f;font-size:10px;letter-spacing:1.9px;font-weight:600;margin-bottom:10px}.page-heading p{color:#82919d;font-size:12px;margin:0}.heading-actions{display:flex;gap:10px;flex-wrap:wrap}.button{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:39px;padding:8px 17px;border:1px solid #dce4e8;border-radius:6px;background:white;color:#496070;white-space:nowrap;font-size:12px;line-height:1.5}.button:hover{background:#f6f9fa;color:var(--ink)}.button.primary{background:var(--primary);border-color:var(--primary);color:white}.button.primary:hover{background:var(--primary-dark)}.button.danger{border-color:#f1cece;color:var(--danger);background:#fff}.button.small{font-size:11px;min-height:30px;padding:6px 11px}.metrics{display:grid;grid-template-columns:repeat(4,1fr);gap:19px;margin-bottom:23px}.metric{border:1px solid var(--line);border-radius:9px;padding:22px 23px;background:white;box-shadow:var(--shadow)}.metric>span{display:flex;align-items:center;justify-content:space-between;font-size:12px;color:#6f8190}.metric svg{color:#7a999f;width:19px}.metric strong{display:block;font-size:28px;font-weight:600;letter-spacing:-.5px;color:#244359;margin:13px 0 6px;font-variant-numeric:tabular-nums}.metric small{font-size:10px;color:#91a0aa}.dashboard-grid{display:grid;grid-template-columns:1.2fr 1fr;gap:23px;margin-bottom:23px}.panel{background:white;border:1px solid var(--line);border-radius:9px;box-shadow:var(--shadow);overflow:hidden;margin-bottom:22px}.dashboard-grid .panel{margin:0}.panel-heading{display:flex;align-items:center;justify-content:space-between;gap:15px;padding:21px 23px;border-bottom:1px solid #edf1f3}.panel-heading a,.panel-heading span{font-size:11px}.stage-chart{padding:20px 24px 23px}.bar-row{display:grid;grid-template-columns:64px 1fr 22px;gap:17px;align-items:center;font-size:11px;margin:9px 0}.bar-row>span{color:#70818d}.bar-row strong{text-align:right;color:#617985;font-weight:500}.bar-track{height:7px;background:#f1f5f7;border-radius:4px;overflow:hidden}.bar-track i{height:100%;display:block;background:#65aaa4;border-radius:4px;min-width:0}.todo{display:flex;align-items:center;gap:13px;margin:18px 23px;padding:16px;background:#f2f8f7;border-radius:6px}.todo-icon{width:35px;height:37px;display:grid;place-items:center;background:#e0efec;border-radius:6px}.todo strong{font-size:12px;font-weight:500;color:#285650}.todo p{font-size:11px;color:#86a19b;margin:3px 0 0}.todo>span:last-child{margin-left:auto}.notice{margin:0 23px;border-top:1px solid #edf1f3;padding:12px 0;font-size:12px}.notice summary{cursor:pointer}.notice small{float:right;color:var(--muted);font-size:10px}.notice p{white-space:normal;margin:14px 0 0;color:#6b818d}.notice-empty{padding:18px 24px;font-size:12px;color:var(--muted)}.table-wrap{overflow-x:auto}table{border-collapse:collapse;width:100%;font-size:12px}th{font-weight:500;text-align:left;padding:13px 20px;background:#f8fafb;color:#82939e;white-space:nowrap;font-size:11px}td{padding:17px 20px;border-top:1px solid #edf1f3;vertical-align:middle;max-width:340px;overflow-wrap:anywhere}tr:hover td{background:#fbfdfd}.project-name{color:#344e60;font-weight:550;display:block;min-width:170px}.muted{color:var(--muted)}small.muted{display:block;font-size:10px;margin-top:3px}.numeric{font-variant-numeric:tabular-nums;white-space:nowrap;color:#476272}.badge{display:inline-block;font-size:10px;line-height:1.5;padding:4px 10px;border-radius:4px;color:#667986;background:#edf2f5;white-space:nowrap}.status-during,.status-before{background:#eaf2fc;color:#527eaa}.status-after,.status-incomplete,.status-pending{background:#fff4e2;color:#b9914e}.status-stocked,.status-allocated,.status-completed,.status-archived{background:#e8f5ee;color:#4a9273}.status-returned{background:#fcecec;color:#b87070}.filters{background:white;border:1px solid var(--line);border-radius:8px;padding:17px 20px;display:flex;gap:13px;align-items:end;flex-wrap:wrap;margin-bottom:22px}.filters .field{flex:1;min-width:120px;max-width:230px}.filters input,.filters select{height:36px;padding:6px 9px;font-size:12px}.filters .field span{font-size:10px;margin-bottom:5px}.field{display:flex;flex-direction:column;min-width:0;gap:0}.field>span{font-size:12px;color:#66808e;margin-bottom:7px}.field b{color:#c98072;font-weight:400}input,select,textarea{color:#344e60;border:1px solid #dce4e9;border-radius:5px;padding:10px 12px;background:white;min-width:0;width:100%}input:focus,select:focus,textarea:focus{outline:2px solid #167b7820;border-color:#6da9a4}input[readonly]{background:#f5f7f9;color:#8c9aa4}input[type=checkbox]{width:auto;accent-color:var(--primary)}textarea{resize:vertical}.form-panel{padding:28px;max-width:1100px}.form-panel h2{margin-bottom:20px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:22px;margin-bottom:28px}.span-2{grid-column:span 2}.form-actions{display:flex;gap:10px;align-items:center;padding-top:23px;margin-top:25px;border-top:1px solid var(--line)}.repeat-row{position:relative;display:flex;gap:15px;padding:15px;border:1px solid var(--line);background:#fbfcfd;border-radius:6px;margin-bottom:12px}.repeat-row .field{flex:1}.repeat-row .remove{border:0;background:none;font-size:23px;color:#ad7777;width:25px;align-self:center}.item-row{display:grid;grid-template-columns:repeat(4,1fr);padding-right:45px}.item-row .remove{position:absolute;right:10px;top:10px}.check-group{display:flex;gap:20px;flex-wrap:wrap;margin:20px 0}.check-group label{display:flex;align-items:center;gap:6px;font-size:12px}.empty{text-align:center;padding:62px 20px;color:#9babb6}.empty svg{width:38px;height:38px;color:#b4c6cf;margin-bottom:14px}.empty h3{color:#6e8493;font-weight:500;margin-bottom:8px}.empty p{font-size:12px;margin-bottom:0}.alert{border-radius:6px;padding:14px 18px;margin-bottom:23px;font-size:13px;background:#edf4fb;border:1px solid #dce8f5}.alert.danger{color:#a34f4f;background:#fdf0ef;border-color:#f0d1cf}.alert.success{color:#377461;background:#ecf7f1;border-color:#d4eadf}.pagination{display:flex;align-items:center;justify-content:space-between;font-size:11px;color:var(--muted);padding:17px 21px;border-top:1px solid var(--line)}.pagination>div{display:flex;gap:10px}.footer{display:flex;justify-content:space-between;padding:0 38px 22px;font-size:10px;color:#a1adb6}.tabs{display:flex;gap:25px;overflow:auto;border-bottom:1px solid #dfe8ed;margin-bottom:24px}.tabs a{padding:13px 0;color:#81949f;white-space:nowrap;font-size:12px}.tabs a.active{color:var(--primary);border-bottom:2px solid var(--primary);font-weight:600}.detail-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px}.detail-grid .panel{padding:23px}.data-list{display:grid;grid-template-columns:120px 1fr;gap:14px;font-size:12px;margin:0}.data-list dt{color:#8c9ca7}.data-list dd{margin:0;white-space:pre-wrap;overflow-wrap:anywhere}.stage-strip{display:flex;margin-bottom:25px;background:white;border:1px solid var(--line);border-radius:8px;padding:19px 15px;overflow:auto}.stage-strip span{flex:1;min-width:70px;text-align:center;font-size:11px;color:#a0aeb7;position:relative}.stage-strip .current{color:var(--primary);font-weight:700}.stage-strip .past{color:#5c9c91}.stage-strip span+span:before{content:'›';position:absolute;left:-3px;color:#c6d1d7}.timeline-card{padding:22px 24px;margin-bottom:18px;border:1px solid var(--line);border-left:3px solid #80b3ae;background:white;border-radius:6px}.card-header{display:flex;align-items:center;justify-content:space-between;gap:15px;margin-bottom:17px}.card-header h3{margin:0}.card-header small{color:#8e9ea9}.card-meta{display:flex;gap:22px;flex-wrap:wrap;color:#79909c;font-size:12px;margin:12px 0}.card-note{white-space:pre-wrap;font-size:12px;color:#67808c}.attachments{display:flex;gap:12px;flex-wrap:wrap;margin-top:15px}.attachment{display:flex;gap:9px;align-items:center;padding:6px 10px;background:#f2f6f8;border-radius:4px;font-size:11px}.attachment form{margin:0}.attachment button{border:0;background:none;color:#b88383}.upload-form{display:flex;align-items:end;gap:12px;margin:18px 0 3px;font-size:11px}.upload-form input[type=file]{padding:5px;font-size:11px;max-width:300px}.inline-form{display:inline-flex;gap:8px;align-items:center;margin:0}.action-strip{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:23px;align-items:center}.review-box{padding:22px;background:white;border:1px solid var(--line);border-radius:8px;margin-bottom:23px}.review-box form{display:flex;gap:10px;align-items:end}.review-box .field{flex:1}.public-main{min-height:100vh;display:grid;align-content:center;justify-items:center;padding:40px 20px;background:linear-gradient(125deg,#edf4f5,#f8fafb)}.public-main>.alert{max-width:560px;width:100%}.login-card{background:white;border:1px solid #e0e8ed;border-radius:14px;padding:40px;width:100%;max-width:440px;box-shadow:0 20px 65px #15354b0a}.login-card .brand{color:var(--ink);padding:0 0 25px}.login-card .brand-mark{background:var(--nav);border:0;color:white}.login-card .brand small{color:#78909d}.login-card h1{font-size:22px}.login-card p{color:var(--muted);font-size:12px;margin-bottom:23px}.login-card .field{margin-bottom:18px}.login-card .button{width:100%;margin-top:9px}.login-foot{text-align:center;margin-top:24px;font-size:10px;color:#98a8b4}.environment{max-width:none;width:100%}.prose{white-space:pre-wrap;line-height:1.9}.print-only{display:none}.help{font-size:12px;line-height:1.9;color:#77909c}.error-page{max-width:700px;margin:30px auto}.batch-schools{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;max-height:320px;overflow:auto}.batch-schools label{font-size:12px}.pill-number{font-size:10px;background:#e6efef;color:#43857b;padding:2px 7px;border-radius:4px;margin-left:6px}@media(min-width:1600px){main{padding:40px 55px}.topbar{padding:0 55px}}@media(max-width:1150px){.sidebar{width:205px;padding-left:12px;padding-right:12px}.workspace{margin-left:205px}main{padding:25px 24px}.topbar{padding:0 24px}.metrics{gap:12px}.metric{padding:19px}.metric strong{font-size:23px}.dashboard-grid{gap:16px}.heading-actions{max-width:280px}.item-row{grid-template-columns:repeat(3,1fr)}}@media(max-width:850px){.sidebar{transform:translateX(-100%);transition:transform .2s}.sidebar.open{transform:translateX(0)}.workspace{margin-left:0}.menu-button{display:block;border:0;background:none;font-size:22px;color:var(--ink)}.topbar{height:65px}.breadcrumb{display:none}.metrics{grid-template-columns:repeat(2,1fr)}.dashboard-grid{grid-template-columns:1fr}.page-heading{align-items:flex-start}.page-heading h1{font-size:24px}.detail-grid{grid-template-columns:1fr}.item-row{grid-template-columns:repeat(2,1fr)}.footer span{display:none}}@media(max-width:560px){main{padding:23px 16px}.page-heading{display:block}.heading-actions{max-width:none;margin-top:18px}.metrics{gap:10px}.metric{padding:16px}.metric strong{font-size:22px}.form-grid{grid-template-columns:1fr}.span-2{grid-column:span 1}.form-panel{padding:20px}.repeat-row{flex-wrap:wrap}.repeat-row .field{min-width:100px}.item-row{display:grid}.filters .field{max-width:none;min-width:120px}.account{gap:9px}.account small{max-width:140px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.upload-form{flex-wrap:wrap}.batch-schools{grid-template-columns:1fr 1fr}.review-box form{flex-wrap:wrap}.login-card{padding:29px}}
@media print{@page{size:A4 landscape;margin:12mm}body{background:white;color:#000;font-size:10px}.sidebar,.topbar,.footer,.filters,.heading-actions,.action-strip,.tabs,.upload-form,.button,.no-print,.pagination{display:none!important}.workspace{margin:0}main{padding:0;max-width:none;min-height:auto}.panel{border:0;box-shadow:none;overflow:visible;margin:12px 0}.table-wrap{overflow:visible}table{font-size:9px;table-layout:auto}th,td{padding:6px;border:1px solid #ccc;max-width:none}th{background:#eee;color:#222}thead{display:table-header-group}tr{break-inside:avoid}h1{font-size:20px}.print-only{display:block;font-size:10px;margin:10px 0}.page-heading p{color:#555}.badge{background:none!important;color:#000!important}.metrics{display:none}.timeline-card{break-inside:avoid}.detail-grid{display:block}.data-list{grid-template-columns:100px 1fr}a{color:inherit}}

/* School create/edit form aligns with the full-width school directory. */
.form-panel.school-form-panel{width:100%;max-width:none}
.school-pagination{flex-wrap:wrap;gap:14px}.school-pagination>div{flex-wrap:wrap;gap:8px}.school-pagination .disabled{opacity:.4;cursor:default}.school-pagination .button{font-size:12px;padding:8px 12px}#school-directory{scroll-margin-top:20px}

/* Screen reading scale: body 16px, supporting text at least 13px.
   Keep the dedicated print layout at its original scale. */
@media screen{
 body{font-size:16px;line-height:1.7}
 h1{font-size:30px}h2{font-size:20px}h3{font-size:18px}
 .sidebar{overflow-y:auto}.sidebar nav{flex-shrink:0}
 .sidebar nav a{font-size:16px;padding:12px 14px;gap:12px}
 .brand small,.nav-label,.sidebar-bottom small,.account small,.eyebrow,
 .metric small,.notice small,small.muted,.footer,.login-foot,.pill-number{font-size:13px}
 .brand small{letter-spacing:0}.nav-label{letter-spacing:1px}
 .sidebar-bottom,.breadcrumb,.account,.page-heading p,.panel-heading a,.panel-heading span,
 .todo p,.notice-empty,.empty p,.help,.card-header small,.card-meta,.card-note,
 .attachment,.upload-form,.upload-form input[type=file],.login-card p,
 .pagination,.badge{font-size:14px}
 .metric>span,.todo strong,.notice,.field>span,.filters .field span,
 .check-group label,.tabs a,.data-list,.batch-schools label,.alert{font-size:15px}
 table{font-size:15px}th{font-size:14px;font-weight:600}
 th,td{padding:15px 18px}
 .button,.school-pagination .button{font-size:15px;min-height:44px;padding:10px 16px}
 .button.small{font-size:14px;min-height:36px;padding:7px 12px}
 input,select,textarea{font-size:16px;line-height:1.6}
 .filters input,.filters select{font-size:15px;height:44px;padding:8px 10px}
 .filters .field{min-width:160px;max-width:320px}
 .metric strong{font-size:32px}
 .bar-row{font-size:14px;grid-template-columns:84px 1fr 38px;gap:12px;margin:12px 0}
 .stage-strip span{font-size:14px;min-width:88px}
 .login-card{max-width:480px}.login-card h1{font-size:26px}
 .panel-heading,.pagination,.pagination>div{flex-wrap:wrap}
 .pagination{gap:12px}.panel-heading span{overflow-wrap:anywhere}
 .data-list{grid-template-columns:140px 1fr}
}

/* School forms stay outside the directory flow until opened. */
.school-dialog{width:calc(100% - 32px);max-width:820px;max-height:calc(100vh - 48px);max-height:calc(100dvh - 48px);overflow-y:auto;padding:28px;border:1px solid var(--line);border-radius:14px;color:var(--text);background:white;box-shadow:0 24px 90px #122f4433}
.school-dialog:not([open]){display:none}.school-dialog::backdrop{background:#122f4480}
.school-dialog-heading{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:24px}
.school-dialog-close{display:grid;place-items:center;min-width:44px;min-height:44px;border-radius:6px;font-size:28px;color:var(--muted)}
.school-dialog-close:hover{background:var(--bg)}.school-dialog .form-actions{justify-content:flex-end}.school-modal-open{overflow:hidden}
@media(max-width:560px){.school-dialog{padding:20px;max-height:calc(100dvh - 24px)}.school-dialog .form-grid{gap:16px}.school-dialog-heading{margin-bottom:16px}}
@media print{.school-dialog{display:none!important}}
@media screen and (max-width:1150px){
 .sidebar nav a{padding-left:10px;padding-right:10px;gap:10px}
 .metric strong{font-size:28px}
}
@media screen and (max-width:560px){
 .page-heading h1{font-size:27px}.metric strong{font-size:26px}
 .filters .field{max-width:none}.data-list{grid-template-columns:100px 1fr;gap:12px}
 .topbar{padding:0 16px}.account{gap:8px}.account small{max-width:110px}
 .panel-heading{padding:18px}.school-pagination .button{padding:8px 12px}
}

/* Compact school directory controls; scoped to this page. */
@media screen{
 .school-metrics{gap:16px;margin-bottom:18px}
 .school-metrics .metric{display:grid;grid-template-columns:1fr auto;align-items:center;gap:2px 12px;padding:12px 20px}
 .school-metrics .metric>span{font-size:15px}
 .school-metrics .metric strong{font-size:28px;line-height:1.2;margin:0;grid-column:2;grid-row:1 / span 2}
 .school-metrics .metric small{grid-column:1;font-size:13px;line-height:1.5}
 #school-directory .school-filters{justify-content:flex-end;align-items:center;gap:10px 14px;padding:14px 20px;margin:0;border:0;border-bottom:1px solid var(--line);border-radius:0}
 #school-directory .school-filters .field{flex:0 1 auto;flex-direction:row;align-items:center;gap:8px;min-width:0;max-width:none}
 #school-directory .school-filters .field>span{flex-shrink:0;white-space:nowrap;margin:0;font-size:15px}
 #school-directory .school-filters select{width:130px;height:40px}
 #school-directory .school-filters select[name=parent]{width:270px}
 #school-directory .school-filters .button{min-height:40px;padding:8px 14px}
}
@media screen and (max-width:560px){
 .school-metrics{gap:10px}.school-metrics .metric{padding:12px;gap:4px 8px}
 .school-metrics .metric strong{font-size:24px;grid-row:1}
 .school-metrics .metric small{grid-column:1 / -1;font-size:13px}
 #school-directory .school-filters{padding:14px;gap:10px}
 #school-directory .school-filters .field{width:100%}
 #school-directory .school-filters .field>span{width:90px}
 #school-directory .school-filters select,#school-directory .school-filters select[name=parent]{flex:1;width:0}
}

/* Full-width, compact procurement forms. */
.procurement-form-panel{width:100%;max-width:none}
@media screen{
 .procurement-form-panel{padding:22px 24px}
 .procurement-form-panel .form-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:16px 20px;margin-bottom:20px}
 .procurement-form-panel .batch-schools{grid-template-columns:repeat(4,minmax(0,1fr))}
 .procurement-form-panel .batch-schools label{display:flex;align-items:flex-start;gap:7px;overflow-wrap:anywhere}
 .procurement-form-panel .batch-schools input{flex-shrink:0;margin-top:6px}
 .procurement-form-panel .procurement-notes{grid-template-columns:repeat(2,minmax(0,1fr))}
 .procurement-form-panel .procurement-notes>.span-2{grid-column:auto}
 .procurement-form-panel h2{margin-bottom:16px}
 .procurement-form-panel .field>span{margin-bottom:5px}
 .procurement-form-panel input:not([type=checkbox]),.procurement-form-panel select{padding:8px 11px;min-height:42px}
 .procurement-form-panel .check-group{margin:14px 0}
 .procurement-form-panel .form-actions{margin-top:18px;padding-top:18px;justify-content:center}
 .procurement-form-panel .upload-form{margin-top:12px;flex-wrap:wrap}
 .procurement-form-panel .help{margin-bottom:12px}
}
@media screen and (max-width:1150px){
 .procurement-form-panel .form-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
 .procurement-form-panel .batch-schools{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media screen and (max-width:650px){
 .procurement-form-panel{padding:18px}
 .procurement-form-panel .form-grid{grid-template-columns:minmax(0,1fr);gap:14px}
 .procurement-form-panel .batch-schools{grid-template-columns:1fr}
}

/* Project overview: compact totals, basic information, and a wider needs column. */
@media screen{
 .project-overview-grid{display:grid;grid-template-columns:minmax(240px,.8fr) minmax(300px,1fr) minmax(0,1.6fr);gap:18px;align-items:stretch;margin-bottom:18px}
 .project-overview-grid>*{min-width:0}
 .project-overview-grid .overview-metrics{display:grid;grid-template-columns:1fr;grid-auto-rows:1fr;gap:12px;margin:0}
 .overview-metrics .metric{padding:15px 18px;display:flex;flex-direction:column;justify-content:center}
 .overview-metrics .metric>span{font-size:14px}
 .overview-metrics .metric strong{font-size:26px;line-height:1.3;margin:6px 0 0;overflow-wrap:anywhere}
 .project-overview-grid>.panel{padding:20px;margin:0}
 .project-overview-grid h2{font-size:19px;margin-bottom:18px}
 .project-overview-grid .data-list{grid-template-columns:96px minmax(0,1fr);gap:12px 14px;font-size:15px}
 .overview-needs th,.overview-needs td{padding:10px 12px}
 .overview-needs h3{font-size:17px;margin:18px 0 10px}
 .overview-needs .prose{font-size:15px;line-height:1.8;overflow-wrap:anywhere;margin-bottom:0}
}

.planning-line{display:grid;grid-template-columns:2fr 2fr 1fr 1fr 1.3fr 1.3fr;gap:12px;padding-right:44px}
.planning-line>.field:last-of-type{grid-column:1 / -1}
.planning-line .remove{position:absolute;right:10px;top:15px}
.planning-data{margin:18px 0;grid-template-columns:150px minmax(0,1fr)}
@media(max-width:1150px){.planning-line{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:650px){.planning-line{grid-template-columns:repeat(2,minmax(0,1fr))}.planning-data{grid-template-columns:100px minmax(0,1fr)}}
@media screen and (max-width:1250px){
 .project-overview-grid{grid-template-columns:minmax(0,1fr) minmax(0,1.3fr)}
 .project-overview-grid .overview-metrics{grid-column:1 / -1;grid-template-columns:repeat(4,minmax(0,1fr))}
 .overview-metrics .metric{padding:14px}.overview-metrics .metric strong{font-size:22px}
}
@media screen and (max-width:700px){
 .project-overview-grid{grid-template-columns:minmax(0,1fr)}
 .project-overview-grid .overview-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}
 .project-overview-grid>.panel{padding:18px}
}

.procurement-timeline{position:relative;padding-left:34px}
.timeline-node{position:relative;background:white;border:1px solid var(--line);border-radius:9px;margin-bottom:28px;scroll-margin-top:20px}
.timeline-node:before{content:'';position:absolute;left:-28px;top:24px;width:12px;height:12px;border:3px solid #167b78;border-radius:50%;background:#f4f7fa;z-index:1}
.timeline-node:not(:last-child):after{content:'';position:absolute;left:-23px;top:39px;height:calc(100% + 17px);width:2px;background:#9dcac4}
.timeline-node>summary{list-style:none;display:flex;align-items:center;justify-content:space-between;gap:20px;padding:20px 24px;cursor:pointer}
.timeline-node>summary::-webkit-details-marker{display:none}
.timeline-node>summary:before{content:'↓';position:absolute;left:-29px;bottom:-27px;color:#167b78;font-size:18px;line-height:24px;z-index:2}
.timeline-node:last-child>summary:before{display:none}
.timeline-node>summary:after{content:'⌄';color:#167b78;font-size:18px;flex-shrink:0}
.timeline-node[open]>summary:after{content:'⌃'}
.timeline-node-title{font-weight:600;color:var(--ink);overflow-wrap:anywhere;flex:1}
.timeline-node-time{font-size:14px;color:#6e8190;white-space:nowrap}
.timeline-node>summary:hover{background:#f3f9f8;border-radius:9px}
.timeline-node-body{padding:22px 24px;border-top:1px solid var(--line)}
.timeline-node>summary:focus-visible{outline:2px solid var(--primary);outline-offset:3px}
@media(max-width:650px){.procurement-timeline{padding-left:28px}.timeline-node>summary{flex-wrap:wrap;gap:6px;padding:16px}.timeline-node-title{flex-basis:100%}.timeline-node-time{white-space:normal}.timeline-node-body{padding:16px}}
@media print{.procurement-timeline{padding:0}.timeline-node:before,.timeline-node:after,.timeline-node>summary:before,.timeline-node>summary:after{display:none}.timeline-node{break-inside:avoid}}

.timeline-tiles{display:grid;grid-template-columns:repeat(auto-fill,minmax(165px,1fr));gap:20px;align-items:start}
.timeline-tile-wrap{position:relative;min-width:0}
.timeline-tile-wrap:not(:last-of-type):after{content:'→';position:absolute;right:-17px;top:48%;color:#8aa9a2;font-size:15px}
.timeline-tile{width:100%;min-height:145px;padding:18px 14px;border-radius:10px;border:1px solid;display:flex;flex-direction:column;justify-content:space-between;gap:16px;text-align:left;transition:box-shadow .15s,transform .15s}
.timeline-tile.is-complete{background:#edf7f0;border-color:#c8e3d0;color:#285b40}
.timeline-tile.is-missing{background:#fdf0ef;border-color:#edcecb;color:#874540}
.timeline-tile:hover{transform:translateY(-2px);box-shadow:0 5px 15px #19354b12}
.tile-title{font-size:15px;font-weight:600;line-height:1.6;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;overflow-wrap:anywhere}
.tile-time{font-size:12px;line-height:1.5}
.card-dialog{width:calc(100% - 32px);max-width:1180px;max-height:90vh;max-height:90dvh;border:1px solid var(--line);border-radius:12px;padding:0;color:var(--text);box-shadow:0 20px 80px #122f4440}
.card-dialog:not([open]){display:none}.card-dialog::backdrop{background:#122f4480}
.card-dialog-toolbar{display:flex;align-items:center;gap:12px;padding:12px 20px;position:sticky;top:0;z-index:2;background:white;border-bottom:1px solid var(--line)}
.card-dialog-toolbar>strong{margin-right:auto}.card-dialog-close{background:none;border:0;font-size:28px;color:var(--muted);width:40px;height:40px}
.card-dialog-content{padding:22px}.card-edit-frame{width:100%;height:72vh;height:72dvh;border:0;display:block;background:var(--bg)}
.card-dialog [hidden]{display:none!important}
@media(max-width:560px){.timeline-tiles{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.timeline-tile{min-height:140px;padding:14px 10px}.timeline-tile-wrap:after{display:none}.card-dialog-content{padding:16px}}
@media print{.card-dialog{display:none!important}.timeline-tile{break-inside:avoid}}

/* Compact timeline tiles: title, contact and completion date. */
.timeline-tile{min-height:100px;height:100px;padding:12px 14px;gap:8px}
.tile-title{-webkit-line-clamp:2;font-size:15px;line-height:1.5}
.tile-meta{display:flex;align-items:center;justify-content:space-between;gap:6px;width:100%;font-size:12px}
.tile-contact{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.tile-time{flex-shrink:0;font-size:12px;white-space:nowrap}
.timeline-tiles{grid-template-columns:repeat(auto-fill,minmax(220px,1fr))}
@media(max-width:560px){.timeline-tiles{grid-template-columns:repeat(2,minmax(0,1fr))}.timeline-tile{min-height:108px;height:108px;padding:10px}.tile-meta{align-items:flex-start;flex-direction:column;gap:2px}.tile-contact{max-width:100%}}

/* Project navigation and actions share one compact row. */
.project-progress .current{color:#b83232;background:#fff0ef;border-radius:5px;font-weight:700;box-shadow:inset 0 -2px 0 #cc4747}
.project-toolbar{display:flex;align-items:center;justify-content:space-between;gap:18px;border-bottom:1px solid #dfe8ed;margin-bottom:22px}
.project-toolbar>.tabs{margin:0;border:0;min-width:0;flex:1;gap:22px}
.project-toolbar-actions{display:flex;align-items:center;justify-content:flex-end;gap:8px;flex-wrap:wrap;padding:6px 0}
.project-toolbar-actions .button{min-height:38px;padding:8px 13px;font-size:14px}
.project-toolbar-actions form{margin:0}
@media(max-width:1150px){.project-toolbar{flex-wrap:wrap;gap:4px}.project-toolbar>.tabs{flex-basis:100%}.project-toolbar-actions{margin-left:auto}}
@media print{.project-toolbar{display:none}}

/* Reserve the same viewport width on short and long pages. */
@media screen{
 html{overflow-y:scroll}
 .project-tab-panel{width:100%;max-width:none;min-width:0;box-sizing:border-box}
 .project-tab-panel>.table-wrap{width:100%;min-width:0}
}
/* Compact attachment workspace */
.file-section{border-top:1px solid var(--line);margin-top:22px;padding-top:16px;min-width:0}
.file-heading{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-bottom:10px}.file-heading h3{margin:0;font-size:15px}.file-heading h3 span{font-weight:400;color:var(--muted)}
.file-upload{margin:0}.file-picker{position:relative;overflow:hidden;color:var(--primary);border-color:#c9dfdc;background:#f4faf9}.file-picker input{position:absolute;inset:0;width:100%;height:100%;opacity:0;cursor:pointer}.file-picker:focus-within{outline:2px solid var(--primary);outline-offset:2px}
.file-row{display:flex;align-items:center;gap:12px;min-height:54px;padding:10px 12px;border-bottom:1px solid #edf1f3}.file-row:last-child{border-bottom:0}.file-list{border-radius:7px;background:#f8fafb}.file-icon{display:grid;place-items:center;flex:0 0 38px;height:34px;font-size:11px;font-weight:600;color:#217c77;background:#e4f0ee;border-radius:5px}.file-icon.is-pdf{color:#b75d56;background:#f8eae8}.file-name{flex:1;min-width:0;white-space:normal;overflow-wrap:anywhere;font-size:14px}.file-size{color:var(--muted);white-space:nowrap;font-size:12px}.file-actions{display:flex;align-items:center;gap:16px;margin-left:12px;font-size:13px;white-space:nowrap}.file-delete{margin:0}.file-delete button{border:0;background:none;padding:0;color:var(--danger);font-size:13px}.file-empty{margin:0;padding:13px;color:var(--muted);font-size:13px}.file-status{font-size:13px;color:var(--primary);margin:8px 0}.file-status.is-error{color:var(--danger)}
.file-preview-dialog{width:min(1080px,94vw);height:88vh;max-height:90vh;padding:0;border:1px solid var(--line);border-radius:10px;color:var(--text);overflow:hidden}.file-preview-dialog::backdrop{background:#122f4470}.file-preview-heading{height:60px;display:flex;align-items:center;justify-content:space-between;gap:20px;padding:12px 20px;border-bottom:1px solid var(--line)}.file-preview-heading strong{min-width:0;white-space:normal;overflow-wrap:anywhere}.file-preview-heading{height:auto;min-height:60px;flex-shrink:0}.file-preview-dialog[open]{display:flex;flex-direction:column}.file-preview-dialog iframe,.file-preview-dialog img{flex:1;min-height:0}.file-preview-dialog iframe{width:100%;height:calc(100% - 60px);border:0}.file-preview-dialog img{display:block;width:100%;height:calc(100% - 60px);object-fit:contain;background:#f4f7fa}
@media(max-width:600px){.file-row{gap:8px;flex-wrap:wrap}.file-name{flex-basis:calc(100% - 50px)}.file-size{margin-left:46px}.file-actions{margin-left:auto;gap:12px}}
@media print{.file-upload,.file-actions,.file-status,.file-preview-dialog{display:none!important}}
.dashboard-summary{grid-template-columns:minmax(0,1.2fr) minmax(0,1fr)}.dashboard-summary .metrics{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin:0}.dashboard-summary .metric{padding:18px 22px}.dashboard-summary .metric strong{margin:8px 0 3px;font-size:28px}.dashboard-summary .panel{margin:0}
.dashboard-reminder{width:min(760px,94vw);max-height:85vh;padding:0;border:1px solid var(--line);border-radius:12px;color:var(--text);box-shadow:0 18px 70px #122f4425}.dashboard-reminder::backdrop{background:#122f4466}.reminder-heading{display:flex;justify-content:space-between;align-items:center;padding:14px 24px;border-bottom:1px solid var(--line);position:sticky;top:0;background:white;z-index:1}.reminder-body{padding:20px 24px}.reminder-summary{color:var(--muted)}.reminder-summary strong{font-size:26px;color:var(--danger);margin:0 5px}.review-entry{display:grid;gap:5px;padding:14px 0;border-bottom:1px solid var(--line)}.review-entry span,.review-entry small{font-size:13px;color:var(--muted)}.reminder-footer{display:flex;justify-content:flex-end;padding-top:20px}.reminder-notice{padding:16px 0;border-bottom:1px solid var(--line)}.reminder-notice summary{cursor:pointer;font-weight:600;overflow-wrap:anywhere}.reminder-notice summary span{display:block;font-size:12px;font-weight:400;color:var(--muted);margin-top:4px}.reminder-notice p{margin:16px 0;overflow-wrap:anywhere;line-height:1.8}
@media(max-width:900px){.dashboard-summary{grid-template-columns:1fr}.dashboard-summary .metric{padding:14px}.dashboard-summary .metric strong{font-size:24px}}

/* Compact reminder rows */
.dashboard-reminder{width:min(1000px,94vw)}.reminder-summary{text-align:right;margin-bottom:12px}.reminder-summary strong{font-size:22px}
.review-entry{grid-template-columns:minmax(0,2fr) minmax(0,1.4fr) max-content max-content;align-items:center;gap:18px;padding:13px 0}.review-entry strong,.review-entry .review-school{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.review-entry .review-number,.review-entry small{white-space:nowrap}.review-entry small{color:var(--primary)}
.reminder-notice{padding:13px 0}.reminder-notice summary{display:flex;align-items:center;gap:12px;list-style:none;white-space:nowrap}.reminder-notice summary::-webkit-details-marker{display:none}.reminder-notice summary::before{content:'▸';color:var(--muted);flex-shrink:0}.reminder-notice[open] summary::before{content:'▾'}.notice-title{min-width:0;overflow:hidden;text-overflow:ellipsis;font-weight:600}.reminder-notice summary .notice-meta{display:inline;margin:0;flex-shrink:0}
@media(max-width:650px){.review-entry{gap:10px;grid-template-columns:minmax(160px,2fr) minmax(120px,1fr) max-content max-content;min-width:570px}.reminder-body{overflow-x:auto;padding:16px}.reminder-notice summary{gap:8px}.reminder-notice summary .notice-meta{font-size:11px}}

.review-table{border:1px solid var(--line);border-radius:7px;overflow-x:auto}.review-table-head,.review-table .review-entry{display:grid;grid-template-columns:minmax(0,2fr) minmax(0,1.4fr) 140px 88px;gap:18px;align-items:center;padding:13px 16px}.review-table-head{background:#f5f8fa;color:#708391;font-size:13px;border-bottom:1px solid var(--line);font-weight:600}.review-table .review-entry:last-child{border-bottom:0}.review-table .review-entry:hover{background:#f7fbfa}.reminder-notice.is-unread .notice-title{color:var(--danger)}
@media(max-width:650px){.review-table-head,.review-table .review-entry{grid-template-columns:minmax(160px,2fr) minmax(120px,1fr) 140px 88px;min-width:620px;gap:12px}}

/* Consistent reminder text size; retain heading hierarchy and unread color. */
.dashboard-reminder .reminder-body,.dashboard-reminder .reminder-summary,.dashboard-reminder .reminder-summary strong,.dashboard-reminder .review-table-head,.dashboard-reminder .review-entry strong,.dashboard-reminder .review-entry span,.dashboard-reminder .review-entry small,.dashboard-reminder .reminder-notice summary,.dashboard-reminder .notice-title,.dashboard-reminder .reminder-notice summary .notice-meta,.dashboard-reminder .reminder-notice p,.dashboard-reminder .reminder-body .button,.dashboard-reminder .reminder-body .muted{font-size:15px}
.notice-publish h2{margin-bottom:18px}.notice-publish .field{margin-bottom:16px}.notice-publish .form-actions{display:flex;justify-content:center}.notice-page-card{width:100%;max-width:none;padding:22px 24px}.notice-page-heading{display:flex;align-items:baseline;justify-content:space-between;gap:16px;border-bottom:1px solid var(--line);padding-bottom:14px}.notice-page-heading h2{overflow-wrap:anywhere}.notice-page-heading>span{flex-shrink:0;font-size:13px}.notice-page-body{padding-top:18px;line-height:1.9;overflow-wrap:anywhere}.notice-page-actions{display:flex;justify-content:flex-end;margin-top:18px}@media(max-width:650px){.notice-page-heading{align-items:flex-start;flex-direction:column;gap:8px}.notice-page-card{padding:18px}}

.filter-actions{display:flex;align-items:center;gap:8px;flex:0 0 auto;white-space:nowrap}.holdings-filters .field:has(input[name="year"]){flex:0 0 80px;min-width:80px;max-width:80px}.holdings-filters .field:has(select[name="status"]){flex:0 0 110px;min-width:110px;max-width:110px}.holdings-filters .field input,.holdings-filters .field select{min-width:0;width:100%}

.bureau-holdings-filters .field:has(select[name="funding"]){flex:0 0 80px;min-width:80px;max-width:80px}.bureau-holdings-filters .field:has(input[type="date"]){flex:0 0 120px;min-width:120px;max-width:120px}.bureau-holdings-filters input[type="date"]{padding-left:4px;padding-right:3px}.bureau-holdings-filters .filter-ending{display:flex;align-items:flex-end;gap:13px;flex:0 0 auto}.bureau-holdings-filters .filter-ending .field{margin:0}

/* Bureau reports and alerts: a single compact filter row. */
.filters.bureau-report-filters{flex-wrap:nowrap;gap:10px;overflow-x:auto}.filters.bureau-report-filters .field{flex:1 0 120px;min-width:120px;max-width:none}.filters.bureau-report-filters .field:has(input[name="year"]),.filters.bureau-report-filters .field:has(select[name="status"]){flex:0 0 80px;min-width:80px;max-width:80px}.filters.bureau-report-filters .field:has(select[name="funding"]){flex:0 0 107px;min-width:107px;max-width:107px}.filters.bureau-report-filters .field:has(input[name="date_from"]){flex:0 0 120px;min-width:120px;max-width:120px}.filters.bureau-report-filters .field:has(input[name="date_to"]){flex:0 0 112px;min-width:112px;max-width:112px}.filters.bureau-report-filters input,.filters.bureau-report-filters select{width:100%;min-width:0;padding-left:4px;padding-right:3px}.filters.bureau-report-filters input[type="date"]{font-size:14px}.filters.bureau-report-filters .filter-ending{gap:10px}.filters.bureau-report-filters .field>span{white-space:nowrap}.filters.bureau-report-filters .filter-actions{flex-shrink:0}

.inspection-form .form-grid{align-items:end;grid-template-columns:minmax(140px,1fr) 203px minmax(160px,1.4fr) 100px 135px minmax(100px,1fr);gap:14px}.inspection-form .form-grid input{height:48px;min-width:0;width:100%;padding-left:6px;padding-right:5px}.inspection-form .inspection-results{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin:18px 0}.inspection-form>form>label.field{width:100%;margin:18px 0}.inspection-form input[type="date"]{font-size:14px}@media(max-width:1200px){.inspection-form .form-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}@media(max-width:650px){.inspection-form .form-grid,.inspection-form .inspection-results{grid-template-columns:1fr}}

.acceptance-participant{grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}.acceptance-participant .field{min-width:0}.acceptance-participant input{width:100%;min-width:0}@media(max-width:650px){.acceptance-participant{grid-template-columns:repeat(2,minmax(0,1fr))}}

/* Card details: size the label column to its content. */
.card-dialog .data-list{grid-template-columns:max-content minmax(0,1fr);column-gap:24px}.card-dialog .data-list dt{white-space:nowrap}@media(max-width:560px){.card-dialog .data-list{grid-template-columns:1fr;gap:5px}.card-dialog .data-list dd{margin-bottom:10px}.card-dialog .data-list dt{white-space:normal}}

.card-dialog .data-list.inbound-detail-row{grid-template-columns:max-content minmax(0,1fr) max-content minmax(0,1fr) max-content minmax(0,1fr);align-items:baseline;gap:12px 16px;margin:16px 0}.card-dialog .inbound-detail-row dt,.card-dialog .inbound-detail-row dd{white-space:nowrap;margin:0}@media(max-width:800px){.card-dialog .data-list.inbound-detail-row{grid-template-columns:max-content minmax(0,1fr)}.card-dialog .inbound-detail-row dd{white-space:normal}}

.allocation-form textarea[name="notes"]{height:48px;min-height:48px;resize:vertical}.allocation-form .item-row{grid-template-columns:minmax(200px,2fr) minmax(200px,2fr) 75px 95px minmax(120px,1fr);gap:14px;align-items:end}.allocation-form .item-row .field{min-width:0}.allocation-form .item-row input,.allocation-form .item-row select{width:100%;min-width:0;height:48px;padding-left:6px;padding-right:6px}@media(max-width:950px){.allocation-form [data-repeat="movement"]{overflow-x:auto}.allocation-form .item-row{min-width:850px}}

.dictionary-add-panel .form-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}.dictionary-add-panel .field{min-width:0}.dictionary-add-panel input,.dictionary-add-panel select{width:100%;min-width:0}@media(max-width:600px){.dictionary-add-panel .form-grid{grid-template-columns:1fr}}

.panel.form-panel.dictionary-add-panel{width:100%;max-width:none}.dictionary-add-panel .form-grid{grid-template-columns:repeat(3,minmax(0,1fr)) max-content;align-items:end;margin-bottom:0}.dictionary-add-panel .form-grid .button{height:48px}.dictionary-add-panel input,.dictionary-add-panel select{height:48px}@media(max-width:600px){.dictionary-add-panel .form-grid{grid-template-columns:1fr}.dictionary-add-panel .form-grid .button{justify-self:start}}

.panel.form-panel.dictionary-edit-panel{width:100%;max-width:none}.dictionary-edit-panel h2{margin-bottom:18px}.dictionary-edit-panel .form-grid{grid-template-columns:repeat(2,minmax(0,1fr)) max-content;align-items:end;gap:18px;margin-bottom:0}.dictionary-edit-panel .field{min-width:0}.dictionary-edit-panel input{width:100%;min-width:0;height:48px}.dictionary-edit-panel .button{height:48px}@media(max-width:600px){.dictionary-edit-panel .form-grid{grid-template-columns:1fr}.dictionary-edit-panel .button{justify-self:start}}

.panel.form-panel.account-form-panel{width:100%;max-width:none;padding:22px 26px}.account-form-panel>summary{cursor:pointer;font-weight:600;color:var(--ink)}.account-form-panel>form{margin-top:20px}.account-form-panel .form-grid{grid-template-columns:minmax(125px,1fr) minmax(100px,.8fr) minmax(145px,1fr) minmax(250px,2.1fr) minmax(180px,1.4fr);gap:16px;align-items:end;margin-bottom:10px}.account-form-panel .field{min-width:0}.account-form-panel input:not([type=checkbox]),.account-form-panel select{width:100%;min-width:0;height:46px;padding:8px 10px}.account-form-panel .help{margin:8px 0 12px}.account-form-actions{display:flex;align-items:center;justify-content:space-between;gap:16px}.account-form-actions .check-group{margin:0}@media(max-width:1200px){.account-form-panel .form-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}@media(max-width:650px){.account-form-panel .form-grid{grid-template-columns:1fr}.account-form-panel{padding:18px}}

.account-form-panel .form-grid{grid-template-columns:minmax(125px,1fr) minmax(100px,.8fr) minmax(145px,1fr) minmax(180px,1.05fr) minmax(180px,1.4fr) max-content}.account-form-panel .form-grid>.button{height:46px}.account-form-note{display:flex;align-items:center;gap:18px;margin-top:10px;overflow-x:auto}.account-enabled{display:inline-flex;align-items:center;gap:6px;flex-shrink:0;white-space:nowrap}.account-form-panel .account-form-note .help{margin:0;white-space:nowrap}@media(max-width:1200px){.account-form-panel .form-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.account-form-panel .form-grid>.button{justify-self:start}}@media(max-width:650px){.account-form-panel .form-grid{grid-template-columns:1fr}.account-form-note{align-items:flex-start;flex-wrap:wrap;gap:8px}.account-form-panel .account-form-note .help{white-space:normal}}

.filters.bureau-report-filters .field:has(input[name="year"]){flex:0 0 80px;min-width:80px;max-width:80px}.filters.bureau-report-filters .field:has(select[name="status"]){flex:0 0 96px;min-width:96px;max-width:96px}.filters.bureau-report-filters .field:has(select[name="procurement"]){flex:0 0 80px;min-width:80px;max-width:80px}.filters.bureau-report-filters .filter-ending{display:flex;align-items:flex-end;gap:10px;flex:0 0 auto}.filters.bureau-report-filters .filter-ending .field{margin:0}

/* Rebalance report filters: compact search/vendor, share remaining room among selects. */
.filters.bureau-report-filters .field:has(input[name="q"]),.filters.bureau-report-filters .field:has(input[name="supplier"]){flex:0 0 80px;min-width:80px;max-width:80px}.filters.bureau-report-filters .field:has(select[name="status"]){flex:1 0 109px;min-width:109px;max-width:none}.filters.bureau-report-filters .field:has(select[name="procurement"]){flex:1 0 93px;min-width:93px;max-width:none}.filters.bureau-report-filters .field:has(select[name="funding"]){flex:1 0 121px;min-width:121px;max-width:none}

.filters.bureau-report-filters .field:has(select[name="org_id"]){flex:0 0 160px;min-width:160px;max-width:160px}

/* Size report controls by readable content, not equal stretch. */
.filters.bureau-report-filters .field:has(input[name="q"]){flex:1 0 190px;min-width:190px;max-width:none}.filters.bureau-report-filters .field:has(input[name="supplier"]){flex:0 0 180px;min-width:180px;max-width:180px}.filters.bureau-report-filters .field:has(select[name="status"]){flex:0 0 112px;min-width:112px;max-width:112px}.filters.bureau-report-filters .field:has(select[name="procurement"]){flex:0 0 157px;min-width:157px;max-width:157px}.filters.bureau-report-filters .field:has(select[name="funding"]){flex:0 0 127px;min-width:127px;max-width:127px}

/* Split the former project search width equally; give its other half to supplier. */
.filters.bureau-report-filters .field:has(input[name="q"]){flex:1 0 95px;min-width:95px;max-width:none}.filters.bureau-report-filters .field:has(input[name="supplier"]){flex:1 0 275px;min-width:275px;max-width:none}

/* Compact inbound and settlement forms; keep small screens operable. */
.inbound-form .item-row{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;padding:14px 38px 14px 14px}
.inbound-form .item-row .field{min-width:0}
.inbound-form .item-row input,.inbound-form .item-row select{padding-left:6px;padding-right:6px}
.payment-form .form-grid{gap:14px;align-items:end}
.payment-form>form>label.field textarea{min-height:64px;height:64px}
@media(min-width:1000px){
 .inbound-form .item-row{grid-template-columns:repeat(5,minmax(0,1fr))}
 .payment-form .form-grid{grid-template-columns:1.2fr 1.2fr 1fr 1.2fr .8fr 1fr}
 .payment-form .form-grid input{padding-left:6px;padding-right:6px}
 .payment-form .form-grid .field>span{white-space:nowrap}
}
@media(min-width:1280px){
 .inbound-form .item-row{grid-template-columns:minmax(76px,1fr) minmax(76px,1fr) 48px 56px 80px 116px minmax(76px,1fr) 64px 124px minmax(76px,1fr);gap:10px;align-items:end}
 .inbound-form .item-row .field>span{white-space:nowrap}
}
@media(max-width:480px){.inbound-form .item-row{grid-template-columns:minmax(0,1fr)}}
.inbound-form .item-row input,.inbound-form .item-row select{height:42px;min-height:42px}

/* Compact contract and tender fields without changing their data or validation. */
.contract-form .form-grid,.tender-form .form-grid{gap:14px;align-items:end}
.tender-form>form>label.field textarea{height:64px;min-height:64px}
@media(min-width:1100px){
 .contract-form .form-grid{grid-template-columns:minmax(100px,1fr) minmax(220px,1.3fr) minmax(124px,1fr) minmax(124px,1fr) minmax(90px,1fr) minmax(100px,1fr)}
 .tender-form .form-grid{grid-template-columns:minmax(100px,1fr) minmax(190px,1fr) minmax(180px,2fr) minmax(80px,1fr) minmax(120px,1fr)}
 .contract-form .form-grid input,.tender-form .form-grid input{height:42px;min-height:42px;padding-left:6px;padding-right:6px}
 .contract-form .form-grid .field>span,.tender-form .form-grid .field>span{white-space:nowrap}
}

/* Keep password fields together on desktop without changing typography. */
.password-change-form .form-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}
@media(max-width:700px){.password-change-form .form-grid{grid-template-columns:minmax(0,1fr)}}

/* Full-width account form with an inline primary action. */
.password-change-form{width:100%;max-width:none;padding:24px 28px}
.password-change-form .form-grid{grid-template-columns:repeat(3,minmax(0,280px)) auto;justify-content:start;align-items:end;gap:20px;margin-bottom:12px}
.password-change-form .password-submit{display:flex;align-items:end}
.password-change-form .password-submit .button{min-height:46px}
.password-change-form .help{margin:0}
@media(max-width:1100px){.password-change-form .form-grid{grid-template-columns:repeat(3,minmax(0,1fr)) auto;gap:14px}}
@media(max-width:700px){.password-change-form{padding:20px}.password-change-form .form-grid{grid-template-columns:minmax(0,1fr)}.password-change-form .password-submit .button{width:100%}}
