:root{
--bg:#11100e;--surface:#181714;--surface-2:#211f1a;--surface-3:#29251e;
--text:#f5f1e9;--muted:#9b9488;--line:#332f27;--accent:#c9a45b;--accent-2:#e3bf73;
--green:#70c49b;--red:#df777b;--shadow:0 20px 55px rgba(0,0,0,.25)
}
:root.light{
--bg:#f4f0e8;--surface:#fffdf8;--surface-2:#f8f4ec;--surface-3:#eee8dc;
--text:#24211c;--muted:#777065;--line:#ded6c8;--accent:#9b702e;--accent-2:#b68135;
--green:#31805c;--red:#b34d53;--shadow:0 18px 45px rgba(62,48,24,.10)
}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--bg);color:var(--text);font-family:Arial,Helvetica,sans-serif;font-size:13px}a{color:inherit;text-decoration:none}button,input,select{font:inherit}button{cursor:pointer}
.brand,.auth-brand{display:flex;align-items:center;gap:11px}.brand-mark{width:39px;height:39px;border:1px solid var(--accent);border-radius:11px;display:grid;place-items:center;color:var(--accent-2);font-weight:800;font-size:10px;letter-spacing:.04em}.brand strong,.auth-brand strong{display:block;font-size:14px;letter-spacing:.11em}.brand span,.auth-brand span{display:block;color:var(--muted);font-size:7px;letter-spacing:.17em;margin-top:4px}.eyebrow{font-size:8px;font-weight:800;letter-spacing:.19em;color:var(--accent-2)}
h1,h2,p{margin-top:0}.primary{border:0;border-radius:9px;padding:11px 16px;background:linear-gradient(135deg,#ddbb70,#b8883c);color:#17130c;font-weight:800;font-size:9px;box-shadow:0 10px 25px rgba(0,0,0,.18)}.primary span{margin-left:15px}.primary.small{padding:8px 12px}.wide{width:100%}.secondary{border:1px solid var(--line);background:var(--surface-2);color:var(--text);border-radius:9px;padding:11px 16px;font-size:9px}.danger{border:1px solid rgba(223,119,123,.35);background:rgba(223,119,123,.07);color:var(--red);border-radius:9px;padding:10px 14px;font-size:9px;font-weight:800}.danger-btn{color:var(--red)}
.auth-page{min-height:100vh;background:radial-gradient(circle at 75% 45%,rgba(201,164,91,.055),transparent 32%),var(--bg);display:grid;place-items:center}.auth-wrap{width:min(900px,92vw);display:grid;grid-template-columns:.85fr 1.15fr;gap:70px;align-items:start}.auth-brand{padding-top:8px}.auth-card{background:linear-gradient(145deg,var(--surface),var(--surface-2));border:1px solid var(--line);border-radius:21px;padding:42px;box-shadow:var(--shadow)}.auth-card h1{font-size:38px;line-height:1.02;letter-spacing:-.055em;margin:11px 0}.auth-card h1 em{font-style:normal;color:var(--accent-2)}.auth-copy{color:var(--muted);font-size:10px;line-height:1.65;margin-bottom:25px}.stack{display:grid;gap:13px}.stack label,.form-grid label{display:grid;gap:6px;color:var(--muted);font-size:8px}.stack input,.stack select,.form-grid input,.form-grid select,.search{width:100%;border:1px solid var(--line);background:var(--surface-2);color:var(--text);border-radius:8px;padding:11px;outline:none}.stack input:focus,.form-grid input:focus,.search:focus{border-color:var(--accent);box-shadow:0 0 0 3px rgba(201,164,91,.08)}.setup-link{display:block;text-align:center;margin-top:16px;color:var(--muted);font-size:8px}.button-link{display:block;text-align:center}.notice{border:1px solid var(--line);background:var(--surface-2);padding:15px;border-radius:10px;margin:20px 0}.notice strong{font-size:10px}.notice p{color:var(--muted);font-size:9px;line-height:1.5;margin:7px 0 0}
.sidebar{position:fixed;left:0;top:0;bottom:0;width:235px;background:var(--bg);border-right:1px solid var(--line);padding:23px 15px;display:flex;flex-direction:column}.admin-user{display:flex;align-items:center;gap:9px;padding:18px 4px;border-bottom:1px solid var(--line);margin-bottom:14px}.admin-user>div:last-child{min-width:0}.admin-user strong{display:block;font-size:9px}.admin-user span{display:block;color:var(--muted);font-size:7px;margin-top:3px}.side-avatar,.avatar{width:36px;height:36px;border-radius:10px;background:var(--surface-3);color:var(--accent-2);display:grid;place-items:center;overflow:hidden;font-weight:800;font-size:8px;flex:none}.side-avatar img,.avatar img{width:100%;height:100%;object-fit:cover;display:block}nav{display:grid;gap:3px}nav a{display:flex;align-items:center;gap:10px;padding:11px 9px;border-radius:8px;color:var(--muted);font-size:9px}nav a:hover,nav a.active{background:var(--surface-2);color:var(--text)}nav a.active b{color:var(--accent-2)}nav a span{flex:1}nav a em{font-style:normal;color:var(--accent-2);font-size:8px}.signout{margin-top:auto;border-top:1px solid var(--line);padding:16px 9px;color:var(--muted);font-size:9px}
.main{margin-left:235px;min-height:100vh}.topbar{height:65px;border-bottom:1px solid var(--line);display:flex;justify-content:space-between;align-items:center;padding:0 30px;color:var(--muted);font-size:8px;position:sticky;top:0;background:color-mix(in srgb,var(--bg) 92%,transparent);backdrop-filter:blur(14px);z-index:10}.topbar b{color:var(--text)}.theme{border:1px solid var(--line);background:var(--surface);color:var(--muted);border-radius:8px;padding:7px 9px}
.page{padding:34px 32px;max-width:1500px}.page-head{display:flex;justify-content:space-between;align-items:end;gap:20px;margin:8px 0 22px}.page-head h1{font-size:34px;letter-spacing:-.055em;margin-bottom:5px}.page-head p{color:var(--muted);font-size:10px}.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-bottom:13px}.stat{background:var(--surface);border:1px solid var(--line);border-radius:13px;padding:16px;box-shadow:var(--shadow)}.stat span{color:var(--muted);font-size:7px;letter-spacing:.12em}.stat b{display:block;font-size:27px;margin:8px 0}.stat small{color:var(--muted);font-size:8px}.dashboard-grid,.settings-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.panel{background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:18px;box-shadow:var(--shadow)}.panel-head{display:flex;justify-content:space-between;gap:15px;margin-bottom:9px}.panel-head h2{font-size:13px;margin-bottom:4px}.panel-head p,.panel>p{color:var(--muted);font-size:9px;line-height:1.5}.panel-head a{color:var(--accent-2);font-size:8px}.empty{text-align:center;color:var(--muted);font-size:9px;padding:28px}.list-row{display:flex;align-items:center;gap:9px;padding:10px 0;border-bottom:1px solid var(--line)}.list-row:last-child{border-bottom:0}.grow{flex:1;min-width:0}.list-row strong{display:block;font-size:9px}.list-row span{display:block;color:var(--muted);font-size:7px;margin-top:3px}.gold-text{color:var(--accent-2);font-size:9px}.search{margin-bottom:12px}.card-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.student-card{background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:13px;box-shadow:var(--shadow)}.person-head{display:flex;align-items:center;gap:9px}.profile-pic{width:44px!important;height:44px!important;min-width:44px;max-width:44px;min-height:44px;max-height:44px;border-radius:12px;position:relative;overflow:hidden;display:grid;place-items:center;flex:none;background:var(--surface-3);color:var(--accent-2);font-weight:800;font-size:8px}.profile-pic img{display:block!important;width:100%!important;height:100%!important;max-width:none!important;max-height:none!important;object-fit:cover}.person-copy{min-width:0}.person-copy strong{display:block;font-size:9px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.person-copy span{display:block;color:var(--muted);font-size:7px;margin-top:3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.credit-line{display:flex;justify-content:space-between;color:var(--muted);font-size:7px;margin-top:13px}.credit-line b{color:var(--text)}.progress{height:4px;background:var(--surface-3);border-radius:20px;margin:6px 0}.progress i{display:block;height:100%;background:linear-gradient(90deg,var(--accent),var(--accent-2));border-radius:20px}.remaining{display:flex;justify-content:space-between;gap:8px;color:var(--muted);font-size:7px;margin-bottom:10px}.card-live{border-top:1px solid var(--line);padding-top:9px}.live-control{display:grid;grid-template-columns:1fr 58px 58px;align-items:center;gap:4px}.live-control span{font-size:7px;color:var(--accent-2);font-weight:800}.tiny{border:1px solid var(--line);border-radius:7px;padding:7px 3px;font-size:6.5px;background:var(--surface-2)}.tiny.present{color:var(--green);border-color:rgba(112,196,155,.3)}.tiny.absent{color:var(--red);border-color:rgba(223,119,123,.3)}.meal-mini{font-size:7px;padding:5px 0}.meal-mini.used{color:var(--green)}.meal-mini.absent{color:var(--red)}.meal-mini.closed{color:var(--accent-2)}.card-links{margin-top:7px;padding-top:7px;border-top:1px solid var(--line)}.card-links a{color:var(--accent-2);font-size:7px}
.modal{position:fixed;inset:0;background:rgba(0,0,0,.72);display:none;place-items:center;padding:20px;z-index:100}.modal.show{display:grid}.modal-card{position:relative;width:min(620px,96vw);max-height:92vh;overflow:auto;background:var(--surface);border:1px solid var(--line);border-radius:18px;padding:25px;box-shadow:0 35px 100px #000}.modal-card h2{font-size:20px;margin:7px 0 4px}.modal-card>p{color:var(--muted);font-size:9px}.modal-close{position:absolute;right:15px;top:12px;border:0;background:none;color:var(--muted);font-size:23px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.upload-preview{display:none;width:65px;height:65px;object-fit:cover;border-radius:11px;margin-top:3px}.modal-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:5px}.decision{display:flex;gap:6px}.status-pill{display:inline-flex;align-items:center;padding:6px 9px;border-radius:20px;font-size:7px}.success-pill{background:rgba(112,196,155,.08);color:var(--green)}.danger-zone{margin-top:12px;border:1px solid rgba(223,119,123,.22);background:rgba(223,119,123,.045);border-radius:14px;padding:15px;display:flex;align-items:center;justify-content:space-between;gap:15px}.danger-zone strong{display:block;font-size:9px}.danger-zone span{display:block;color:var(--muted);font-size:7px;margin-top:4px}
.profile-hero{display:flex;align-items:center;gap:16px;background:var(--surface);border:1px solid var(--line);border-radius:16px;padding:20px;margin-bottom:12px;box-shadow:var(--shadow)}.profile-hero>div:nth-child(2){flex:1}.profile-hero h1{font-size:30px;margin:5px 0}.profile-hero p{color:var(--muted);font-size:9px;margin:0}.profile-actions{display:flex;gap:6px;flex-wrap:wrap;justify-content:flex-end}.hero-pic{width:72px!important;height:72px!important;border-radius:18px;font-size:16px}
.history{display:grid}.history-row{display:grid;grid-template-columns:110px 90px 1fr 150px;align-items:center;gap:10px;padding:11px 0;border-bottom:1px solid var(--line);font-size:8px}.history-row:last-child{border-bottom:0}.history-row>span,.history-row>small{color:var(--muted)}.history-row strong.taken,.history-row strong.charged{color:var(--green)}.history-row strong.skipped{color:var(--red)}.history-row strong.closed{color:var(--accent-2)}.history-row strong.no_credit{color:var(--red)}.profile-detail{margin-top:12px}.closure-list{margin-top:10px;border-top:1px solid var(--line)}.closure-settings{grid-column:1/-1}
.status-row{display:grid;grid-template-columns:36px minmax(140px,1fr) 74px minmax(250px,1.2fr);align-items:center;gap:10px;padding:10px 0;border-bottom:1px solid var(--line)}.status-row:last-child{border-bottom:0}.status-credit{text-align:right}.status-credit span{display:block;color:var(--muted);font-size:6px;letter-spacing:.12em}.status-credit b{display:block;color:var(--text);font-size:13px;margin-top:3px}.status-row>div:last-child{min-width:270px}.status-row .meal-mini{display:inline-block;margin-right:8px}.status-row .live-control{min-width:280px}.closure-banner{margin:14px 32px 0;border:1px solid rgba(201,164,91,.3);background:linear-gradient(90deg,rgba(201,164,91,.10),rgba(201,164,91,.035));border-radius:13px;padding:12px 14px;display:flex;align-items:center;gap:11px}.closure-icon{width:27px;height:27px;border-radius:9px;background:rgba(201,164,91,.14);color:var(--accent-2);display:grid;place-items:center;font-weight:800}.closure-banner strong{display:block;font-size:8px}.closure-banner span{display:block;color:var(--muted);font-size:7px;margin-top:3px}.notification{position:fixed;top:78px;right:20px;z-index:200;min-width:280px;max-width:430px;padding:13px 14px;border-radius:12px;border:1px solid var(--line);background:var(--surface);box-shadow:0 18px 60px rgba(0,0,0,.22);display:flex;align-items:center;gap:9px;transform:translateY(-18px);opacity:0;transition:.28s ease}.notification.show{transform:translateY(0);opacity:1}.notification b{font-size:8px;color:var(--accent-2)}.notification span{font-size:8px;color:var(--text);flex:1}.notification button{border:0;background:none;color:var(--muted);font-size:16px}.notification.success{border-color:rgba(112,196,155,.28)}.notification.error{border-color:rgba(223,119,123,.3)}.notification.error b{color:var(--red)}
.student-top{height:65px;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 5%}.top-actions{display:flex;align-items:center;gap:12px}.top-actions a,.text-action{font-size:8px;color:var(--muted)}.text-action{border:0;background:none}.student-main{max-width:1050px;margin:auto;padding:32px 5% 60px}.student-hero{display:flex;align-items:center;justify-content:space-between;gap:20px;background:var(--surface);border:1px solid var(--line);border-radius:18px;padding:28px;box-shadow:var(--shadow)}.student-hero h1{font-size:33px;letter-spacing:-.055em;margin:8px 0 5px}.student-hero p{color:var(--muted);font-size:9px}.student-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:12px 0}.student-stats>div{background:var(--surface);border:1px solid var(--line);border-radius:13px;padding:15px}.student-stats span{color:var(--muted);font-size:7px;letter-spacing:.1em}.student-stats b{display:block;font-size:22px;margin-top:7px}.meal-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.meal-card{background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:21px;box-shadow:var(--shadow)}.meal-icon{color:var(--accent-2);font-size:20px}.meal-card h2{font-size:14px;margin:9px 0 5px}.meal-card p{color:var(--muted);font-size:9px}.meal-state{display:inline-block;border-radius:20px;padding:6px 9px;background:rgba(201,164,91,.09);color:var(--accent-2);font-size:8px;margin:7px 0 10px}.charged-state{color:var(--green);background:rgba(112,196,155,.08)}.skipped-state{color:var(--red);background:rgba(223,119,123,.08)}.closed-state{color:var(--accent-2)}.muted{color:var(--muted);font-size:8px}.section-row{display:flex;align-items:center;justify-content:space-between;gap:20px;margin:18px 0 10px}.section-row h2{font-size:14px;margin:5px 0}.section-row p{color:var(--muted);font-size:9px;margin:0}.profile-panel{margin-top:12px}.profile-grid{display:grid;grid-template-columns:1fr 1fr;gap:15px;margin-top:15px}.profile-grid span{display:block;color:var(--muted);font-size:7px}.profile-grid b{display:block;font-size:9px;margin-top:4px}.profile-grid .full{grid-column:1/-1}
@media(max-width:1050px){.card-grid{grid-template-columns:repeat(3,1fr)}}@media(max-width:800px){.status-row{grid-template-columns:36px 1fr}.status-credit{text-align:left}.status-row>div:last-child{grid-column:2}.sidebar{position:static;width:100%;height:auto;min-height:0}.admin-user{margin-bottom:8px}.signout{margin-top:12px}.main{margin-left:0}.stats{grid-template-columns:1fr 1fr}.dashboard-grid,.settings-grid,.meal-grid{grid-template-columns:1fr}.card-grid{grid-template-columns:repeat(2,1fr)}.page{padding:26px 18px}.closure-banner{margin:12px 18px 0}.status-row>div:last-child{min-width:0}.status-row{align-items:flex-start}.status-row .live-control{min-width:0}}@media(max-width:560px){.auth-wrap{grid-template-columns:1fr;gap:18px}.auth-brand{justify-content:center}.auth-card{padding:27px}.auth-card h1{font-size:31px}.page-head{align-items:flex-start;flex-direction:column}.card-grid{grid-template-columns:1fr}.form-grid,.profile-grid{grid-template-columns:1fr}.profile-grid .full{grid-column:auto}.student-hero{padding:21px}.student-hero h1{font-size:27px}.student-stats{grid-template-columns:1fr}.student-top{padding:0 18px}.top-actions{gap:7px}.top-actions a,.text-action{font-size:7px}.history-row{grid-template-columns:1fr 1fr}.history-row small{grid-column:1/-1}.profile-hero{align-items:flex-start;flex-wrap:wrap}.profile-actions{width:100%;justify-content:flex-start}.notification{left:12px;right:12px;min-width:0}.danger-zone{align-items:flex-start;flex-direction:column}}

input[type=date],input[type=time]{color-scheme:light}

.full-panel{margin-top:12px}

/* Final visual fixes */
.hero-pic img{display:block!important;width:100%!important;height:100%!important;max-width:none!important;max-height:none!important;object-fit:cover!important}
.profile-pic img,.avatar img,.side-avatar img{display:block!important;width:100%!important;height:100%!important;max-width:none!important;max-height:none!important;object-fit:cover!important}
.settings-grid,.dashboard-grid{gap:16px}
.stats,.student-stats{gap:12px}
.panel + .panel{margin-top:12px}
.closure-settings{min-width:0}

/* Final dashboard identity and credit-state polish */
.status-row .grow{min-width:0;overflow:hidden}
.status-row .grow strong{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block}
.status-row .grow span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;margin-top:4px}
.status-row .status-credit{width:74px;min-width:74px}
.meal-mini.absent{white-space:nowrap}

/* Inline meal request action */
.meal-request-btn{display:inline-flex;align-items:center;justify-content:center;margin-top:10px;border:1px solid var(--line);background:var(--surface-2);color:var(--text);border-radius:8px;padding:7px 10px;font-size:8px;font-weight:800}
.meal-request-btn:hover{border-color:var(--accent);color:var(--accent-2)}

/* Compact/collapsible admin sidebar */
.sidebar{transition:width .25s ease}
.sidebar-collapse{width:32px;height:32px;border:1px solid var(--line);background:var(--surface-2);color:var(--muted);border-radius:9px;display:grid;place-items:center;cursor:pointer;margin-left:auto}
.sidebar-head{display:flex;align-items:center;gap:8px;margin-bottom:18px}
.sidebar.collapsed{width:76px}
.sidebar.collapsed .brand>div:not(.brand-mark),.sidebar.collapsed .admin-user>div:not(.side-avatar),
.sidebar.collapsed nav a span,.sidebar.collapsed nav a em,.sidebar.collapsed .signout{display:none}
.sidebar.collapsed .brand,.sidebar.collapsed .admin-user{justify-content:center}
.sidebar.collapsed nav a{justify-content:center;padding:11px 0}
.sidebar.collapsed nav a b{margin:0}
.sidebar.collapsed .sidebar-collapse{margin:0 auto}
.sidebar.collapsed + .main{margin-left:76px}
@media(max-width:900px){.sidebar{transform:translateX(0);width:270px}.sidebar.collapsed{width:76px}.sidebar.collapsed + .main{margin-left:76px}}
.sidebar-tools{display:flex;justify-content:flex-end;margin:12px 0}.sidebar.collapsed .sidebar-tools{justify-content:center}.sidebar.collapsed .sidebar-tools .theme{margin:0}
.meal-open{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap}.inline-form{display:inline}.meal-open .danger-btn{padding:7px 10px;font-size:11px}

.today-meals{display:flex;gap:7px;flex-wrap:wrap;align-items:center}.today-meals .meal-mini{white-space:nowrap}.today-meals .live-control{display:flex;gap:5px;align-items:center;flex-wrap:wrap}
