:root{font-family:Inter,system-ui,-apple-system,"Segoe UI",Arial,sans-serif;color:#173b32;background:#f5f8f6;--forest:#103e32;--green:#197a60;--line:#d9e5df;--muted:#667e75;--panel:#fff}*{box-sizing:border-box}body{margin:0}button,input,select,textarea{font:inherit}button{cursor:pointer}.btn{border:1px solid var(--line);background:#fff;color:var(--forest);border-radius:10px;padding:10px 15px;font-weight:700}.btn.primary{background:var(--green);border-color:var(--green);color:#fff}.btn.ghost{border:0;background:transparent}.btn:disabled{opacity:.5;cursor:not-allowed}.btn.small{padding:6px 10px;font-size:12px}.btn.warn{border-color:#ba7c59;color:#944218}.brand{display:flex;align-items:center;gap:9px;font-weight:800;letter-spacing:-.25px}.brand img{width:39px;height:39px;object-fit:contain;background:#fff;border-radius:10px;padding:3px}.login-page{min-height:100vh;display:grid;place-items:center;padding:22px;background:linear-gradient(135deg,#e4f5ed 0%,#f8fbfa 50%,#dcefe4 100%)}.login-card{width:min(460px,100%);padding:32px;background:#fff;border-radius:22px;box-shadow:0 20px 65px #123d2a19;border:1px solid #d9e8df}.login-card .brand{font-size:17px}.login-card h1{font-size:30px;letter-spacing:-1px;margin:28px 0 8px}.sub{color:var(--muted);font-size:14px;line-height:1.6}.eyebrow{font-size:11px;letter-spacing:1.4px;color:#208269;text-transform:uppercase;font-weight:800}.field{display:grid;gap:6px;margin:12px 0}.field label{font-size:12px;font-weight:800;color:#33574c}input,select,textarea{width:100%;border:1px solid #cbded4;border-radius:10px;padding:11px 12px;background:#fff;color:#19382d}input:focus,textarea:focus,select:focus{outline:2px solid #80c2a5;border-color:#288364}textarea{min-height:84px;resize:vertical}.login-card .btn.primary{width:100%;margin-top:8px}.note{border:1px solid #e9d39b;background:#fff9e9;padding:13px;border-radius:10px;color:#715c27;font-size:12px;line-height:1.6}.error{background:#fff3f1;color:#a43c2b;border:1px solid #efd1ca;padding:10px 12px;border-radius:9px;margin:12px 0;font-size:13px;overflow-wrap:anywhere}.success{background:#ebf7ef;color:#226442;border:1px solid #c7e8d0;padding:10px 12px;border-radius:9px;margin:12px 0;font-size:13px}.layout{min-height:100vh;display:grid;grid-template-columns:245px minmax(0,1fr)}.sidebar{background:var(--forest);color:#e2f3ea;padding:24px 14px;position:sticky;top:0;height:100vh;overflow:auto}.sidebar .brand{font-size:14px;margin-bottom:37px}.navlabel{font-size:10px;letter-spacing:1.1px;color:#a4c5b7;margin:18px 8px 12px}.navitem{display:flex;gap:10px;align-items:center;text-align:left;width:100%;border:0;border-radius:9px;padding:12px 13px;background:transparent;color:#dcece4;font-size:13px;font-weight:700;margin:2px 0}.navitem:hover{background:#1a5242}.navitem.active{background:#28705b;color:#fff}.navicon{font-size:16px;width:22px;text-align:center}.sidebarfooter{font-size:11px;color:#a4c5b7;line-height:1.6;margin:30px 8px}.main{padding:27px clamp(14px,2.9vw,45px) 45px;min-width:0}.top{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:22px;flex-wrap:wrap}.top h1{font-size:28px;letter-spacing:-.85px;margin:5px 0 4px}.topactions{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.topactions select{width:auto;padding:9px 11px;font-size:12px}.identity{font-size:12px;color:#31584a}.welcome{background:linear-gradient(110deg,#124c3d,#1b7b60);color:#fff;padding:27px;border-radius:16px;margin-bottom:16px}.welcome h2{font-size:23px;letter-spacing:-.6px;margin:9px 0}.welcome p{font-size:13px;color:#d1ede2;max-width:680px}.statgrid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin:18px 0}.stat{border:1px solid var(--line);border-radius:14px;padding:18px;background:#fff;min-height:115px}.stat small{font-size:12px;color:#6a8077}.stat strong{display:block;font-size:29px;color:#073d30;margin:9px 0 4px}.stat span{font-size:11px;color:#70837a}.panel{background:#fff;border:1px solid var(--line);border-radius:14px;padding:20px;margin:15px 0}.panel h2{font-size:17px;margin:0 0 8px}.panel p{color:#697b72;font-size:13px;line-height:1.6}.grid2{display:grid;grid-template-columns:1fr 1fr;gap:14px}.toolbar{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:16px}.toolbar h2{margin:0}.scroller{width:100%;overflow:auto}table{border-collapse:collapse;width:100%;font-size:12px;min-width:600px}th,td{text-align:left;padding:12px 10px;border-bottom:1px solid #e9efeb}th{font-size:11px;color:#647e70}td{color:#274c3e;vertical-align:top}td b{color:#14392e}.tag{display:inline-block;background:#e8f5ed;color:#226b4b;padding:4px 9px;border-radius:50px;font-size:11px;font-weight:800}.tag.warning{background:#fbf0d5;color:#8f6b1d}.tag.gray{background:#eef2f0;color:#587065}.formgrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 14px}.formgrid .wide{grid-column:1/-1}.formbuttons{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin:14px 0 0}.empty{padding:25px;text-align:center;border:1px dashed #c3d6c8;border-radius:12px;color:#658576;font-size:13px}.back{display:none}.toast{position:fixed;bottom:22px;right:22px;border-radius:12px;padding:14px 18px;background:#123e32;color:#fff;box-shadow:0 10px 30px #0002;max-width:min(440px,calc(100vw - 40px));z-index:99;font-size:13px}.tiny{font-size:11px;color:#788d82}.boot{text-align:center;padding:16vh 15px;color:#4f6b60}.danger{color:#a33b34}.banner{margin:12px 0 18px}@media(max-width:980px){.statgrid{grid-template-columns:repeat(2,minmax(0,1fr))}.grid2{grid-template-columns:1fr}.layout{grid-template-columns:200px minmax(0,1fr)}}@media(max-width:680px){.layout{display:block}.sidebar{height:auto;position:static;padding:12px}.sidebar .brand{margin:0 0 12px}.sidebar nav{display:flex;gap:4px;overflow:auto}.navlabel,.sidebarfooter{display:none}.navitem{width:auto;white-space:nowrap;padding:9px}.navicon{display:none}.main{padding:18px 13px}.top h1{font-size:23px}.statgrid{grid-template-columns:repeat(2,minmax(0,1fr))}.formgrid{grid-template-columns:1fr}.formgrid .wide{grid-column:auto}.panel{padding:14px}}
/* Browser-only FOH portal additions */
.login-locale{display:flex;gap:6px;justify-content:flex-end;margin:8px 0 18px}.eyebrow.light{color:#bce6d5}.footer-note{margin-top:25px;line-height:1.6;max-width:900px}.quick-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(145px,1fr));gap:10px;margin:18px 0 0}.quick{display:grid;grid-template-columns:38px 1fr auto;align-items:center;gap:6px;text-align:left;border:1px solid var(--line);border-radius:12px;background:#fff;padding:13px 10px;min-height:74px;color:#214e3e}.quick:hover{border-color:#429478;background:#f2faf6}.quick b{font-size:12px;line-height:1.4}.quick-icon{display:grid;place-items:center;width:36px;height:36px;background:#e8f5ed;border-radius:11px;color:#176d54;font-size:21px}.line-item{display:flex;align-items:center;justify-content:space-between;gap:8px;border-bottom:1px solid #edf0ee;padding:13px 0;font-size:13px}.line-item b{color:#1e4b3b}.line-item p{margin:4px 0}.actionstack{display:flex;flex-wrap:wrap;gap:5px;min-width:235px}.actionstack .btn{white-space:nowrap}.btn.danger{color:#a13c32;border-color:#efcecc}.overlay{position:fixed;z-index:88;inset:0;background:#09261cd1;display:flex;align-items:flex-start;justify-content:center;padding:24px;overflow-y:auto}.modal{background:white;width:min(720px,100%);border-radius:20px;box-shadow:0 26px 70px #001a1b5e;padding:28px;margin:auto 0}.modal h2{font-size:23px;color:#103e32;margin:14px 0}.modal .field input,.modal .field select,.modal .field textarea{max-width:100%}.role-set{border:1px solid var(--line);border-radius:12px;margin:15px 0;padding:12px}.role-set legend{font-size:13px;font-weight:800;color:#23543f}.rolegrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:3px 12px}.check{display:flex;align-items:center;gap:8px;font-size:12px;padding:7px 0;color:#335a49}.check input{width:auto;accent-color:#228260}.secret{border:1px dashed #a4cbb8;border-radius:12px;background:#f2faf5;padding:15px;display:flex;justify-content:space-between;align-items:center;gap:10px;overflow-wrap:anywhere}.secret code{font-size:18px;font-weight:800;letter-spacing:1px}.clockbox{padding:5px 0 12px}.clockbox p{line-height:1.6}.main{max-width:1600px;margin:0 auto}.navitem{white-space:normal}table td{line-height:1.55}button:focus-visible{outline:3px solid #e7bc54;outline-offset:2px}input[type='number']{appearance:textfield}@media(max-width:680px){.rolegrid{grid-template-columns:1fr}.modal{padding:18px}.actionstack{min-width:unset}.secret code{font-size:13px}}
/* Consolidated review: accessible, readable type and responsive operational layouts */
:root{font-size:16px;line-height:1.55}
body{font-size:15px}
.navitem{font-size:14px;line-height:1.45;min-height:43px}
.navlabel,.eyebrow{font-size:12px;letter-spacing:.075em}
.top h1{font-size:clamp(24px,2.5vw,32px);line-height:1.2}
.panel h2{font-size:19px;line-height:1.35}
.panel h3{font-size:16px}
.panel p,.sub,.welcome p{font-size:14px;line-height:1.65}
.field label{font-size:14px;line-height:1.4}
input,select,textarea{font-size:15px;min-height:44px}
.btn{font-size:14px;min-height:42px}
.btn.small{font-size:13px;min-height:36px;padding:8px 11px}
.tag{font-size:12px;line-height:1.4}
.stat small,.stat span{font-size:13px;line-height:1.45}
.stat strong{font-size:clamp(24px,2.5vw,32px)}
table{font-size:14px;min-width:710px;line-height:1.55}
th{font-size:13px;white-space:nowrap}
th,td{padding:13px 12px;vertical-align:top}
.tiny{font-size:12px;line-height:1.55;color:#587264}
.note,.error,.success{font-size:14px}
.check{font-size:14px;line-height:1.5}
.quick b{font-size:14px}
.line-item{font-size:14px}
.live-clock{margin:12px 0 16px;padding:20px 22px;border:1px solid #bcdfcb;border-radius:14px;background:#edf8f2}
.live-clock strong{display:block;margin-top:5px;font-size:clamp(20px,2.4vw,30px);color:#064c39;line-height:1.25;font-variant-numeric:tabular-nums}
.weekly-total{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;margin:16px 0;padding:14px 18px;border-radius:12px;background:#f1f8f3;color:#145341}
.weekly-total span{color:#395f52}
.notice-row,.meeting-row,.review-request{border:1px solid #ddeae2;border-radius:12px;padding:17px;margin:11px 0;display:flex;align-items:flex-start;justify-content:space-between;gap:15px}
.meeting-row{display:block}
.meeting-row h3{margin:0 0 10px}
.meeting-row a{color:#0d7154;font-weight:700;text-decoration:underline;overflow-wrap:anywhere}
.notice-row.unread{border-left:4px solid #1a8662;background:#f4fbf7}
.notice-row p{margin:7px 0}
.review-request{display:block}
.review-fields{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:8px 20px;margin:12px 0;overflow-wrap:anywhere}
.modal{max-width:780px}
.modal .rolegrid{max-height:280px;overflow:auto}
@media(max-width:850px){.statgrid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:680px){.navitem{font-size:13px}.sidebar nav{gap:6px}.topactions{width:100%}.topactions select{font-size:14px}.welcome{padding:20px}.statgrid{gap:8px}.stat{padding:13px;min-height:110px}.modal{padding:18px}.notice-row{display:block}.weekly-total{display:grid}table{min-width:720px}th,td{padding:10px 9px}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;animation:none!important;transition:none!important}}
