:root{font-family:"Segoe UI",Tahoma,Arial,sans-serif;color:#172637;background:#f4f7f8;font-size:15px}
*{box-sizing:border-box}body{margin:0}button,input,select,textarea{font:inherit}button{cursor:pointer}h1,h2,h3,p{margin-top:0}
.hidden{display:none!important}.muted{color:#68808b}.eyebrow{font-size:.69rem;letter-spacing:.18em;font-weight:800;color:#208b80;margin-bottom:8px}
.auth-screen{min-height:100vh;display:grid;place-items:center;padding:24px;background:radial-gradient(circle at 70% 10%,#dcf5ec,transparent 32%),linear-gradient(140deg,#eff6f4,#e4edf1)}
.auth-card{width:min(100%,420px);background:#fff;border:1px solid #e3edef;border-radius:24px;box-shadow:0 22px 70px #18394a17;padding:36px}
.auth-card h1{font-size:1.85rem;margin-bottom:7px}.auth-card h2{font-size:1.1rem;margin:28px 0 17px}
.brand-mark{width:52px;height:52px;display:grid;place-items:center;border-radius:15px;background:#146b6b;color:white;font-weight:800;font-size:1.6rem;margin-bottom:22px}
.brand-mark.small{width:39px;height:39px;border-radius:11px;font-size:1.25rem;margin:0}
.auth-card label,.form-grid label{display:grid;gap:7px;font-weight:700;font-size:.86rem;margin-bottom:15px}
input,select,textarea{width:100%;border:1px solid #cbdadd;border-radius:10px;padding:10px 12px;background:#fff;color:#172637;outline:none}
input:focus,select:focus,textarea:focus{border-color:#168f83;box-shadow:0 0 0 3px #b7e8df}
.primary{border:0;background:#126e68;color:#fff;border-radius:10px;padding:11px 17px;font-weight:750}
.primary:hover{background:#0c5a56}.secondary{border:1px solid #c5d7d9;background:#fff;color:#1d5560;border-radius:10px;padding:10px 15px;font-weight:700}
.danger{border:0;background:#fff2ef;color:#a03c35;border-radius:8px;padding:7px 10px}.full{width:100%}
.error{color:#bb382d;min-height:1em;margin:12px 0 0}.hint{font-size:.83rem;color:#5c7180}
.shell{display:flex;min-height:100vh}.sidebar{width:250px;flex:none;background:#102e3c;color:#f6fbfc;display:flex;flex-direction:column;padding:24px 15px}
.brand{display:flex;gap:11px;align-items:center;font-weight:800;line-height:1.3;padding:0 9px 29px}.brand small{display:block;font-size:.68rem;color:#9ab5ba;margin-top:3px;font-weight:500}
.sidebar nav{display:grid;gap:6px}.nav{width:100%;display:flex;gap:13px;align-items:center;text-align:left;color:#bdd4d6;background:transparent;border:0;padding:12px 14px;border-radius:11px;font-size:1rem}
.nav:hover,.nav.active{background:#1d4b57;color:#fff}.sidebar-bottom{margin-top:auto;padding:20px 8px 0}.demo-label{font-size:.72rem;color:#bbd5d3;line-height:1.45;border-top:1px solid #2c5460;padding-top:18px}
.user-row{display:flex;justify-content:space-between;gap:6px;align-items:center;font-size:.83rem;margin-top:18px}.text-button{border:0;background:none;color:#b6ebe5}
.main{flex:1;min-width:0;padding:30px 42px 60px}.topbar{display:flex;justify-content:space-between;align-items:center;margin-bottom:28px}.topbar h1{font-size:1.85rem;margin:0}.date-pill{background:#fff;border:1px solid #e3eaed;border-radius:999px;padding:9px 14px;color:#5d7580;font-size:.84rem}
.notice{background:#e4f7ee;border:1px solid #b9e4ca;color:#215d44;padding:12px 15px;border-radius:11px;margin-bottom:18px}.notice.bad{background:#fff0ec;border-color:#f0c9c1;color:#a84038}
.hero{background:linear-gradient(110deg,#134d5c,#146f6b);border-radius:20px;padding:27px 30px;color:white;display:flex;justify-content:space-between;gap:20px;align-items:center;margin-bottom:22px}
.hero h2{font-size:1.45rem;margin-bottom:8px}.hero p{color:#d0e9e7;margin:0}.hero .tag{color:#073b3e;background:#dcf4df;border-radius:999px;padding:8px 12px;white-space:nowrap;font-size:.82rem;font-weight:700}
.cards{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:15px;margin-bottom:24px}.card,.panel{background:#fff;border:1px solid #e0e9eb;border-radius:16px;box-shadow:0 4px 15px #18394a09}
.card{padding:20px}.card .label{color:#718892;font-size:.8rem;font-weight:700}.card .number{font-size:2rem;font-weight:800;margin-top:8px}.card .sub{color:#91a2a9;font-size:.77rem}
.panel{padding:22px;margin-bottom:18px}.panel h2{font-size:1.09rem;margin-bottom:17px}.section-head{display:flex;justify-content:space-between;align-items:center;gap:15px;margin-bottom:17px}.section-head h2{margin:0}
.actions{display:flex;gap:9px;flex-wrap:wrap;align-items:center}.filters{display:flex;gap:10px;flex-wrap:wrap}.filters input{max-width:260px}.filters select{max-width:150px}
.table-wrap{width:100%;overflow:auto}table{width:100%;border-collapse:collapse;white-space:nowrap}th{text-align:left;font-size:.76rem;color:#77909a;background:#f5f9fa;font-weight:800}th,td{padding:12px 13px;border-bottom:1px solid #eaf0f1}tr:last-child td{border-bottom:0}td{font-size:.88rem}td strong{font-weight:750}
.badge{display:inline-block;padding:4px 9px;border-radius:999px;background:#e8f5f2;color:#1b766d;font-weight:700;font-size:.75rem}.badge.late{background:#fff2db;color:#aa710b}.badge.absent{background:#ffe8e6;color:#b5483b}.badge.leave{background:#e9edfa;color:#5f72aa}
.row-buttons{display:flex;gap:7px}.small-button{border:1px solid #d4e3e4;background:#fff;color:#1b6a69;border-radius:8px;padding:6px 9px;font-size:.78rem}
.empty{text-align:center;color:#8299a2;padding:35px 12px}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 15px}.form-grid .span2{grid-column:1/-1}.form-actions{display:flex;gap:9px;margin-top:7px}
.split{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(320px,.8fr);gap:18px}.callout{background:#eaf6f3;border-radius:12px;padding:16px;color:#285e5a;font-size:.88rem;line-height:1.6}
.inline-select{padding:6px 8px;width:auto;min-width:110px;font-size:.82rem}.inline-note{padding:6px 8px;width:150px;font-size:.82rem}.stat-list{display:grid;gap:9px}.stat-item{display:flex;justify-content:space-between;padding:11px 0;border-bottom:1px solid #edf2f3}
@media(max-width:1050px){.cards{grid-template-columns:repeat(2,1fr)}.split{grid-template-columns:1fr}.main{padding:25px}}
@media(max-width:700px){.shell{display:block}.sidebar{width:100%;padding:13px}.brand{padding:0 4px 12px}.sidebar nav{display:flex;overflow:auto}.nav{width:auto;white-space:nowrap;padding:9px}.nav span{font-size:.82rem}.sidebar-bottom{display:none}.main{padding:20px 14px 45px}.topbar{align-items:flex-start}.topbar h1{font-size:1.5rem}.date-pill{font-size:.7rem}.hero{display:block;padding:20px}.hero .tag{display:inline-block;margin-top:15px}.cards{gap:9px}.card{padding:15px}.card .number{font-size:1.6rem}.form-grid{grid-template-columns:1fr}.form-grid .span2{grid-column:auto}}
.nav-group{padding:16px 14px 5px;color:#81aaa9;font-size:.71rem;font-weight:800}.sidebar nav{display:block;max-height:calc(100vh - 230px);overflow:auto}.sidebar .nav{font-size:.9rem;padding:10px 14px}.download{display:inline-block;text-decoration:none}
@media(max-width:700px){.sidebar nav{display:flex;max-height:140px;align-items:center}.sidebar #admin-nav{display:flex;align-items:center}.nav-group{white-space:nowrap;padding:9px}.sidebar .nav{width:auto;white-space:nowrap;padding:9px}.sidebar-bottom{display:flex;justify-content:space-between;gap:12px;padding:10px 4px 0}.demo-label{border:0;padding:0}.user-row{margin:0}}
.finance-toolbar .filters{align-items:end}.finance-toolbar label{display:grid;gap:5px;font-weight:700;font-size:.8rem}.finance-toolbar input,.finance-toolbar select{width:160px}.finance-toolbar .hint{margin:10px 0 0}.finance-tabs{display:flex;gap:6px;overflow:auto;margin-bottom:18px;padding-bottom:4px}.finance-tabs button{border:1px solid #cbdadd;background:#fff;border-radius:9px;padding:9px 12px;white-space:nowrap;color:#2e5961;font-weight:700}.finance-tabs button.active{background:#126e68;border-color:#126e68;color:#fff}.finance-cards{margin-top:18px}.finance-cards .number{font-size:1.4rem}.finance-issues{line-height:1.9;color:#8a4d26}.finance-downloads{margin-top:16px}.finance-form input[type=checkbox]{width:auto;margin-right:8px}.finance-form .hint{margin:0 0 12px}.num{text-align:right;font-variant-numeric:tabular-nums}.clear-day{min-width:150px}.finance-form h3{font-size:1rem;margin:6px 0 0}
@media print{.sidebar,.topbar,.finance-toolbar,.finance-tabs,.finance-downloads,.finance-form,.row-buttons,.notice,button,.callout{display:none!important}.main{padding:0}.panel,.card{box-shadow:none;border:1px solid #aaa;break-inside:avoid}body{background:#fff}table{white-space:normal}}
.meal-intro p{line-height:1.6}.meal-manuals,.meal-tabs,.meal-report-buttons{display:flex;gap:9px;flex-wrap:wrap;margin:12px 0}
.meal-manuals a{display:inline-block;border:1px solid #bfdad4;border-radius:9px;padding:9px 12px;color:#126e68;background:#eff9f5;text-decoration:none;font-weight:700}
.meal-tabs .active{background:#126e68;color:#fff}.meal-cards{grid-template-columns:repeat(3,minmax(0,1fr))}.meal-cards .number{font-size:1.5rem}
.meal-form{margin-top:8px}.meal-form .span2{grid-column:1/-1}.meal-form .hint{font-weight:400}.ingredient-row{display:grid;grid-template-columns:2fr .9fr .8fr .9fr auto;gap:6px;margin:7px 0}.ingredient-row input{min-width:0}
.meal-alert{color:#99461f;background:#fff2e5;padding:10px;border-radius:9px}.meal-report-buttons button{white-space:normal;text-align:left}
.meal-flow{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin:18px 0}.meal-flow>div{display:grid;align-content:start;gap:7px;padding:14px;border:1px solid #cfe2de;border-radius:11px;background:#f4fbf8}.meal-flow span{color:#4a6570;font-size:.82rem;line-height:1.5}.meal-preview{overflow:auto;border:1px solid #d7e3e5;border-radius:10px;background:#fff;padding:20px;margin:15px 0}.meal-preview .meal-sheet{min-width:650px}.meal-report-buttons .active{background:#126e68;color:#fff}button:disabled{opacity:.5;cursor:not-allowed}
.meal-print{display:none}.meal-sheet{font-family:Tahoma,Arial,sans-serif;color:#111;font-size:12px;line-height:1.55}.meal-sheet h3{margin:18px 0 5px}.report-head{text-align:center;border-bottom:1px solid #777;margin-bottom:14px;padding-bottom:12px}.report-head h2{font-size:20px;margin-bottom:2px}.report-head p{margin:4px 0}.report-signatures{display:flex;justify-content:space-around;gap:16px;margin:30px 0 22px;text-align:center}.report-signatures>div{min-width:180px}.meal-sheet footer{border-top:1px solid #ccc;color:#555;margin-top:18px;padding-top:5px}
.meal-sheet-layout{display:grid;grid-template-columns:minmax(220px,280px) minmax(0,1fr);gap:16px;align-items:start}.meal-sheet-nav{max-height:calc(100vh - 100px);overflow:auto;position:sticky;top:16px;padding:12px;border:1px solid #d7e5e5;border-radius:14px;background:#fff}.meal-sheet-group{margin-bottom:16px}.meal-sheet-group h3{font-size:.88rem;color:#425d66;margin:7px 6px}.meal-sheet-link{display:flex;flex-direction:column;align-items:flex-start;gap:3px;width:100%;margin:3px 0;padding:9px 10px;text-align:left;border:1px solid transparent;border-radius:8px;background:#f5f9f9;color:#234b52;white-space:normal}.meal-sheet-link.active{border-color:#178078;background:#e4f5ee;color:#115b52}.meal-sheet-link small{color:#65838a;font-size:.7rem}.meal-sheet-main{min-width:0}.meal-sheet-source{display:grid;grid-template-columns:minmax(180px,1.5fr) minmax(130px,1fr) minmax(150px,1fr);gap:8px;align-items:start;padding:10px;border-bottom:1px solid #e4eeee}.meal-sheet-source small{display:block;color:#65818b;line-height:1.45}.meal-sheet-source input,.meal-sheet-source textarea,.meal-sheet-extra-row input,.meal-sheet-extra-row textarea{width:100%;min-width:0;margin:0}.meal-sheet-sources{border:1px solid #e0eaea;border-radius:10px;max-height:500px;overflow:auto;margin-bottom:14px}.meal-sheet-extra-row{display:grid;grid-template-columns:minmax(160px,1.5fr) minmax(100px,.7fr) minmax(160px,1fr) auto;gap:8px;align-items:start;margin:7px 0}.meal-sheet-prose{white-space:pre-wrap;overflow-wrap:anywhere;min-height:1em}.meal-sheet td{white-space:normal;overflow-wrap:anywhere}
@media(max-width:1100px){.meal-sheet-layout{grid-template-columns:1fr}.meal-sheet-nav{position:static;max-height:260px}.meal-sheet-source{grid-template-columns:1fr 1fr}.meal-sheet-source>div{grid-column:1/-1}}
@media(max-width:700px){.meal-sheet-source,.meal-sheet-extra-row{grid-template-columns:1fr}.meal-sheet-source>div{grid-column:auto}}
@media(max-width:1000px){.meal-flow{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:800px){.meal-cards,.meal-flow{grid-template-columns:1fr}.ingredient-row{grid-template-columns:1fr 1fr}.ingredient-row input:first-child{grid-column:1/-1}}
@media print{body:has(.meal-print:not(:empty)) .shell{display:block!important}body:has(.meal-print:not(:empty)) .sidebar,body:has(.meal-print:not(:empty)) .topbar,body:has(.meal-print:not(:empty)) #meal-body,body:has(.meal-print:not(:empty)) .meal-intro,body:has(.meal-print:not(:empty)) .meal-tabs{display:none!important}body:has(.meal-print:not(:empty)) .meal-print{display:block!important}body:has(.meal-print:not(:empty)) .main{padding:0!important}body:has(.meal-print:not(:empty)) .meal-sheet table{width:100%;border-collapse:collapse}body:has(.meal-print:not(:empty)) .meal-sheet th,body:has(.meal-print:not(:empty)) .meal-sheet td{border:1px solid #777;padding:5px;vertical-align:top}body:has(.meal-print:not(:empty)) .meal-sheet tr{break-inside:avoid}body:has(.meal-print:not(:empty)) .meal-sheet .table-wrap{overflow:visible}}

.source-print-sheet table{table-layout:fixed;white-space:normal;font-size:11px}.source-print-sheet td,.source-print-sheet th{padding:5px;border:1px solid #999;overflow-wrap:anywhere}.source-print-sheet .table-wrap{overflow:visible}
@media print{body:has(.source-print-sheet) .shell{display:block}body:has(.source-print-sheet) .source-print-sheet{border:0;padding:0;break-inside:auto}body:has(.source-print-sheet) .source-print-sheet table{font-size:10px}body:has(.source-print-sheet) #content>button{display:none}}
@page sourceSchedule{size:A4 landscape;margin:12mm}
@media print{.source-print-sheet{page:sourceSchedule}}

.source-print-sheet img{height:60px;width:auto;max-width:100%}

.demo-banner{background:#fff2ca;border:2px solid #b27a00;padding:12px;color:#513b00;font-weight:700}

.school-workgroup{border:1px solid #31515d;border-radius:10px}.school-workgroup summary{cursor:pointer;padding:12px 10px;color:#dbeaec;overflow-wrap:anywhere}.school-workgroup summary:focus-visible{outline:2px solid #95e0d2;outline-offset:2px}.school-workgroup[open] summary{border-bottom:1px solid #31515d;background:#173d49;border-radius:10px 10px 0 0}.school-workgroup-items{display:grid;gap:2px;padding:4px}.school-workgroup-items .nav{padding:10px 12px}.school-workgroup .nav span{overflow-wrap:anywhere}

.workflow-navigation{position:sticky;top:8px;z-index:20;display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin:0 0 18px;padding:10px;background:#fff;border:1px solid #cbdadd;border-radius:12px;box-shadow:0 3px 12px #18394a12}.workflow-navigation button{border:1px solid #aac9c8;border-radius:8px;padding:8px 13px;color:#164c50;background:#f1faf7}.workflow-navigation button:disabled{opacity:.45;cursor:default}.workflow-navigation button[hidden]{display:none}.workflow-navigation span{color:#5c7180;margin-left:auto}@media print{.workflow-navigation{display:none!important}}

.academic-context-bar{padding:12px 18px}.academic-context-bar label{max-width:520px}.academic-context-bar small{display:block;margin-top:6px}@media print{.academic-context-bar,[data-academic-tab],#academic-body form{display:none!important}}

.academic-status{font-size:.82rem;color:#5d7580;margin:7px 0 0;line-height:1.6}.settings-breadcrumb{display:flex;align-items:center;flex-wrap:wrap;gap:12px;margin-bottom:18px;color:#5d7580;font-size:.88rem}@media print{.settings-breadcrumb{display:none!important}}

/* School header identity from the project title file and original school logo. */
.school-logo{display:block;flex:none;width:48px;height:54px;object-fit:contain;background:#fff;border-radius:10px;padding:2px}
.auth-school-logo{width:90px;height:100px;margin-bottom:18px}
.brand-text{min-width:0;overflow-wrap:anywhere}.brand-text small{line-height:1.45;letter-spacing:normal}
.program-name{font-size:1rem;font-weight:700;color:#1b5360;margin-bottom:5px}.program-name-en{letter-spacing:normal;line-height:1.45;overflow-wrap:anywhere}.topbar>div:first-child{min-width:0}
