:root{
  --green:#0d5c45; --green2:#174b3d; --gold:#c9a227; --bg:#f5f7f6;
  --text:#1f2925; --muted:#6c7772; --white:#fff; --line:#e1e7e3;
}
*{box-sizing:border-box} body{margin:0;font-family:Inter,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;background:var(--bg);color:var(--text)}
.app{display:flex;min-height:100vh}.sidebar{width:260px;background:var(--green2);color:#fff;padding:22px 14px;position:fixed;inset:0 auto 0 0;overflow:auto}
.brand{display:flex;align-items:center;gap:10px;padding:5px 10px 24px;border-bottom:1px solid rgba(255,255,255,.13);margin-bottom:14px}
.brand img{width:44px;height:44px;object-fit:contain;background:#fff;border-radius:10px}.brand strong{display:block;font-size:14px;letter-spacing:.8px}.brand span{display:block;font-size:8px;opacity:.75;margin-top:2px}
nav a{display:block;padding:11px 13px;margin:3px 0;border-radius:9px;color:#dce8e3;text-decoration:none;font-size:13px;cursor:pointer}nav a.active,nav a:hover{background:var(--green);color:#fff}
.content{margin-left:260px;width:calc(100% - 260px);padding:30px 34px}header{display:flex;justify-content:space-between;align-items:center;margin-bottom:25px}h1{margin:2px 0 4px;font-size:30px}.eyebrow{color:var(--gold);font-size:12px;font-weight:700;margin:0;text-transform:uppercase;letter-spacing:1px}.muted{color:var(--muted);margin:0}.user-chip{background:#fff;border:1px solid var(--line);padding:10px 14px;border-radius:10px;font-size:11px;font-weight:700}
.cards{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:18px}.card{background:var(--white);border:1px solid var(--line);border-radius:14px;padding:20px;box-shadow:0 2px 10px rgba(24,54,43,.04)}.stat span{font-size:12px;color:var(--muted)}.stat b{display:block;font-size:30px;margin:8px 0 2px;color:var(--green)}.stat small{color:var(--muted)}
.grid{display:grid;grid-template-columns:1.1fr .9fr;gap:18px}.card-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:15px}h2{font-size:17px;margin:0}.badge{font-size:10px;background:#edf6f1;color:var(--green);padding:6px 9px;border-radius:99px}.online{color:var(--green);font-size:12px;font-weight:700}
.meal{display:flex;justify-content:space-between;padding:14px 0;border-bottom:1px solid var(--line);font-size:13px}.meal:last-child{border-bottom:0}.meal span{color:var(--muted)}
.checklist{list-style:none;padding:0;margin:0}.checklist li{padding:9px 0;border-bottom:1px solid var(--line);font-size:13px;color:#38534a}.checklist li:last-child{border:0}.roadmap{margin-top:18px}.progress{height:9px;background:#e7eeea;border-radius:99px;overflow:hidden;margin:15px 0}.progress div{height:100%;background:var(--green);border-radius:99px}
@media(max-width:900px){.sidebar{width:76px}.brand div,nav a{font-size:0}.brand img{width:42px}.content{margin-left:76px;width:calc(100% - 76px);padding:20px}.cards{grid-template-columns:repeat(2,1fr)}.grid{grid-template-columns:1fr}}
@media(max-width:520px){.cards{grid-template-columns:1fr}header{align-items:flex-start;gap:12px}.user-chip{font-size:9px}.content{padding:14px}}


/* SHV OneServe login */
.login-page{min-height:100vh;background:radial-gradient(circle at 15% 20%,rgba(201,162,39,.16),transparent 30%),radial-gradient(circle at 85% 80%,rgba(13,92,69,.22),transparent 35%),#10251f;display:grid;place-items:center;padding:24px}
.login-shell{width:100%;max-width:460px}
.login-card{background:rgba(255,255,255,.97);border:1px solid rgba(201,162,39,.35);border-radius:24px;padding:34px;box-shadow:0 24px 70px rgba(0,0,0,.28);text-align:center}
.login-logo{width:92px;height:92px;object-fit:contain;border-radius:16px;margin-bottom:12px}
.login-kicker{font-size:10px;letter-spacing:1.7px;font-weight:800;color:var(--green);margin-bottom:7px}
.login-card h1{font-size:29px;margin:0;color:var(--green2)}
.login-subtitle{font-size:13px;color:var(--muted);margin:8px 0 24px}
.login-tabs{display:grid;grid-template-columns:1fr 1fr;gap:6px;background:#eef3f0;padding:5px;border-radius:11px;margin-bottom:22px}
.login-tab{border:0;background:transparent;padding:11px 8px;border-radius:8px;color:var(--muted);font-weight:700;cursor:pointer}
.login-tab.active{background:#fff;color:var(--green);box-shadow:0 2px 8px rgba(24,54,43,.08)}
.login-card form{text-align:left}
.login-card label:not(.remember){display:block;font-size:12px;font-weight:700;color:#34453e;margin:0 0 7px}
.login-card input[type=text],.login-card input[type=password]{width:100%;border:1px solid #d8e1dc;border-radius:11px;padding:13px 14px;font:inherit;outline:none;margin-bottom:15px}
.login-card input[type=text]:focus,.login-card input[type=password]:focus{border-color:var(--green);box-shadow:0 0 0 3px rgba(13,92,69,.09)}
.remember{display:flex;align-items:center;gap:8px;font-size:12px;color:var(--muted);margin:0 0 18px;cursor:pointer}
.remember input{accent-color:var(--green)}
.login-button{width:100%;border:0;border-radius:11px;background:var(--green);color:#fff;padding:14px;font-size:14px;font-weight:800;cursor:pointer}
.login-button:hover{background:#0a4c39}
.login-links{margin-top:17px;font-size:12px}.login-links a{color:#a77d00;text-decoration:none;font-weight:700}
.login-footer{border-top:1px solid var(--line);margin-top:22px;padding-top:16px;font-size:10px;color:var(--muted)}
@media(max-width:520px){.login-card{padding:26px 20px}.login-logo{width:78px;height:78px}}
.search{max-width:280px}.modal{position:fixed;inset:0;background:rgba(0,0,0,.45);display:none;align-items:center;justify-content:center;padding:20px;z-index:20}.modal.open{display:flex}.modal-box{background:#fff;border-radius:18px;max-width:900px;width:100%;max-height:92vh;overflow:auto;padding:24px}.modal-box form{display:grid;gap:14px}.modal-box label{display:grid;gap:6px;font-weight:600}.modal-box input,.modal-box textarea,.modal-box select{font:inherit;padding:10px;border:1px solid #d8ded9;border-radius:10px}.modal-box textarea{min-height:70px}.two{display:grid;grid-template-columns:1fr 1fr;gap:14px}.rule-grid{border-top:1px solid #e5e9e5;padding-top:12px}.rule-row{display:grid;grid-template-columns:110px repeat(4,1fr);gap:8px;align-items:center;padding:8px 0;border-bottom:1px solid #edf0ed}.rule-row label{font-size:12px}.rule-row input{width:70px}.actions{display:flex;justify-content:flex-end;gap:10px}.primary,.secondary{border:0;border-radius:10px;padding:10px 14px;cursor:pointer}.primary{background:#176b45;color:#fff}.secondary{background:#eef2ee;color:#193b2b}@media(max-width:700px){.two{grid-template-columns:1fr}.rule-row{grid-template-columns:80px repeat(4,1fr);font-size:11px}.rule-row input{width:52px}.modal-box{padding:16px}}
.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.form-grid label,.card>label{display:flex;flex-direction:column;gap:6px;font-weight:600}.form-grid input,.form-grid select,.card>label select{padding:11px;border:1px solid #d7ddd7;border-radius:10px;background:#fff}.btn{border:0;border-radius:10px;padding:11px 16px;font-weight:700;cursor:pointer}.btn.secondary{background:#eef2ee}.actions{display:flex;gap:10px;margin-top:18px;flex-wrap:wrap}.table-wrap{overflow:auto}.table-wrap table{width:100%;border-collapse:collapse}.table-wrap th,.table-wrap td{text-align:left;padding:11px 9px;border-bottom:1px solid #e7ebe7}.linkbtn{border:0;background:none;text-decoration:underline;cursor:pointer}@media(max-width:800px){.form-grid{grid-template-columns:1fr}}
.report-controls{display:flex;gap:10px;flex-wrap:wrap;margin:12px 0 18px}.report-controls select,.report-controls input,.report-controls button{padding:10px 12px;border:1px solid #d8ded9;border-radius:10px;background:#fff}.report-controls button{cursor:pointer;background:#185c3b;color:#fff;border-color:#185c3b}.report-controls .secondary{background:#fff;color:#185c3b}.table-wrap{overflow:auto}.table-wrap table{width:100%;border-collapse:collapse;font-size:13px}.table-wrap th,.table-wrap td{text-align:left;padding:10px;border-bottom:1px solid #e8ece9;white-space:nowrap}.table-wrap th{background:#f5f8f5;text-transform:capitalize}.empty{padding:22px;text-align:center;color:#6d786f}

/* Staff management */
.toolbar{display:flex;justify-content:space-between;align-items:center;margin-bottom:18px}.toolbar h2{margin-bottom:5px}.toolbar-actions{display:flex;gap:10px}.toolbar button,.modal button{border:0;border-radius:10px;background:var(--green);color:#fff;padding:11px 15px;font-weight:800;cursor:pointer}.toolbar button.secondary,.modal button.secondary,.small-btn{background:#fff;color:var(--green);border:1px solid #b9ccc3}.filters{display:flex;gap:10px;margin-bottom:16px}.filters input,.filters select,.modal input,.modal select,.modal textarea{border:1px solid #d8e1dc;border-radius:10px;padding:11px 12px;font:inherit;outline:none;background:#fff}.filters input{flex:1}.filters select{min-width:150px}.table-wrap{overflow:auto}.table-wrap table{width:100%;border-collapse:collapse;font-size:12px}.table-wrap th,.table-wrap td{text-align:left;padding:12px 10px;border-bottom:1px solid var(--line);vertical-align:middle}.table-wrap th{font-size:11px;color:var(--muted);text-transform:uppercase;letter-spacing:.5px}.status{font-weight:800;font-size:10px;padding:5px 8px;border-radius:99px}.status.active{background:#e8f5ee;color:var(--green)}.status.inactive{background:#f2eeee;color:#8b4b4b}.actions{white-space:nowrap}.small-btn{padding:7px 9px;border-radius:8px;font-size:10px;margin:2px;cursor:pointer}.small-btn.danger{color:#9a4747;border-color:#e4c6c6}.small-btn.activate{color:var(--green)}.help-card{margin-top:18px}.small{font-size:10px}.modal{position:fixed;inset:0;background:rgba(11,32,25,.58);display:grid;place-items:center;padding:20px;z-index:20}.modal.hidden{display:none}.modal-card{width:min(520px,100%);max-height:90vh;overflow:auto;background:#fff;border-radius:18px;padding:22px;box-shadow:0 30px 80px rgba(0,0,0,.3)}.modal-card.wide{width:min(950px,100%)}.modal-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:18px}.modal-head h2{font-size:20px}.icon-btn{background:transparent!important;color:var(--muted)!important;font-size:24px;padding:0!important}.modal form label{display:block;font-size:12px;font-weight:800;color:#34453e;margin-bottom:12px}.modal form label input,.modal form label select,.modal form label textarea{display:block;width:100%;margin-top:6px}.modal-actions{display:flex;justify-content:flex-end;gap:9px;margin-top:14px}.form-msg{font-size:12px;color:#a04f4f;min-height:16px}.role-layout{display:grid;grid-template-columns:1fr 1.5fr;gap:24px}.role-list{display:grid;gap:8px}.role-item{border:1px solid var(--line);border-radius:10px;padding:10px;display:grid;gap:3px}.role-item span,.role-item small{color:var(--muted);font-size:10px}.permission-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px;max-height:45vh;overflow:auto;margin-top:8px}.permission-grid fieldset{border:1px solid var(--line);border-radius:10px;padding:9px}.permission-grid legend{font-size:10px;font-weight:900;color:var(--green)}.check{font-size:10px!important;font-weight:600!important;margin:5px 0!important}.check input{display:inline!important;width:auto!important}.error-page{min-height:100vh;display:grid;place-items:center;text-align:center;padding:30px}.error-page a{color:var(--green)}
@media(max-width:760px){.toolbar,.filters{flex-direction:column;align-items:stretch}.role-layout{grid-template-columns:1fr}.permission-grid{grid-template-columns:1fr}.actions{white-space:normal}}


/* v18 Student Management */
.student-filters{grid-template-columns:minmax(280px,1fr) 190px 170px}
.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.form-grid label{margin:0}
.info-box{margin-top:16px;padding:12px 14px;border:1px solid #d8e5dd;background:#f5faf7;border-radius:12px;color:#385149;font-size:.93rem}
.full-btn{width:100%;margin-top:10px}
.student-profile-card{max-width:920px}
.profile-grid{display:grid;grid-template-columns:1.1fr 1fr;gap:18px}
.profile-summary,.detail-list{border:1px solid #e1e8e3;border-radius:14px;padding:18px}
.profile-summary h2{margin:0 0 4px}
.profile-badges{display:flex;gap:8px;margin:14px 0}
.metric-row{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-top:16px}
.metric-row>div{background:#f5f8f6;border-radius:12px;padding:12px;display:flex;flex-direction:column}
.metric-row strong{font-size:1.25rem;color:#086548}.metric-row span{font-size:.78rem;color:#6d7771;margin-top:2px}
.detail-list p{display:flex;justify-content:space-between;gap:12px;padding:9px 0;border-bottom:1px solid #edf1ee;margin:0}
.detail-list p:last-child{border-bottom:0}.detail-list span{text-align:right;color:#5f6b65}
.student-actions{display:flex;gap:8px;flex-wrap:wrap;margin:18px 0}
@media(max-width:800px){.student-filters,.form-grid,.profile-grid{grid-template-columns:1fr}.metric-row{grid-template-columns:1fr}.student-actions button{width:100%}}


/* =========================================================
   v19 Prepaid Management
   ========================================================= */
.prepaid-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin-bottom:18px}
.prepaid-stat{padding:20px;position:relative;overflow:hidden}
.prepaid-stat:after{content:"";position:absolute;width:90px;height:90px;border-radius:50%;background:linear-gradient(145deg,rgba(67,97,238,.13),rgba(114,9,183,.04));right:-28px;top:-30px}
.prepaid-stat span{display:block;font-size:13px;font-weight:700;color:#637083;margin-bottom:9px}
.prepaid-stat b{display:block;font-size:28px;line-height:1.1;color:#182233}
.prepaid-stat small{display:block;margin-top:8px;color:#8590a0}
.prepaid-filters{grid-template-columns:minmax(260px,1fr) 180px 150px}
.data-table td>small{display:block;margin-top:4px;color:#7b8797}
.row-actions{display:flex;gap:6px;flex-wrap:wrap}
button.compact,.btn.compact{padding:8px 10px;font-size:12px}
.balance-low{color:#b45309!important}
.check-card{display:flex!important;align-items:center;gap:10px;border:1px solid #dde3ea;border-radius:12px;padding:12px 14px;background:#fafbfc}
.check-card input{width:auto!important}
.form-grid.single{grid-template-columns:1fr}
.profile-card{max-width:980px}
.prepaid-profile-summary{display:grid;grid-template-columns:260px 1fr;gap:18px;margin:10px 0 18px}
.balance-panel{border-radius:18px;padding:24px;color:white;background:linear-gradient(135deg,#1d3557,#334f8d 58%,#5b4b9a);box-shadow:0 12px 28px rgba(29,53,87,.20)}
.balance-panel span,.balance-panel small{display:block;opacity:.82}
.balance-panel strong{display:block;font-size:34px;margin:10px 0}
.profile-detail-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.profile-detail-grid>div{border:1px solid #e5e9ef;border-radius:14px;padding:15px;background:#fafbfc}
.profile-detail-grid span{display:block;font-size:12px;color:#7b8797;margin-bottom:5px}
.profile-action-bar{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:20px}
.danger-soft{background:#fff1f2!important;color:#b42318!important;border:1px solid #fecdd3!important}
.section-head{display:flex;justify-content:space-between;align-items:center;margin:8px 0 10px}

/* Centered SHV-style notifications (replaces browser alert style for this module) */
.center-notice{position:fixed;inset:0;z-index:9999;display:flex;align-items:center;justify-content:center;background:rgba(15,23,42,.24);backdrop-filter:blur(2px)}
.center-notice.hidden{display:none}
.center-notice-card{width:min(390px,calc(100vw - 36px));background:#fff;border-radius:20px;padding:28px;text-align:center;box-shadow:0 24px 70px rgba(15,23,42,.28);border:1px solid rgba(226,232,240,.9)}
.notice-icon{width:56px;height:56px;margin:0 auto 14px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:28px;font-weight:800}
.notice-success .notice-icon{background:#ecfdf3;color:#067647}
.notice-error .notice-icon{background:#fff1f2;color:#b42318}
.center-notice-card h3{margin:0 0 7px;font-size:20px;color:#1f2937}
.center-notice-card p{margin:0;color:#667085;line-height:1.45}

@media(max-width:1000px){
  .prepaid-stats{grid-template-columns:repeat(2,minmax(0,1fr))}
  .prepaid-profile-summary{grid-template-columns:1fr}
}
@media(max-width:720px){
  .prepaid-stats{grid-template-columns:1fr}
  .prepaid-filters{grid-template-columns:1fr}
  .profile-detail-grid{grid-template-columns:1fr}
}

/* v19.1 prepaid meal plans */
.full-row{grid-column:1/-1}
.plan-example{margin-top:14px;padding:14px 16px;border-radius:12px;background:#f6f8fb;border:1px solid #e5e9ef}
.plan-example strong,.plan-example span{display:block}
.plan-example span{margin-top:5px;color:#667085;font-size:13px}

.hidden{display:none!important}

/* v20 scanner */
.scan-result{margin-top:20px;padding:26px;border-radius:18px;text-align:center;border:1px solid}
.scan-approved{background:#ecfdf3;border-color:#a6f4c5;color:#05603a}
.scan-rejected{background:#fff1f2;border-color:#fda4af;color:#9f1239}
.scan-icon{width:58px;height:58px;border-radius:50%;display:flex;align-items:center;justify-content:center;margin:0 auto 10px;background:rgba(255,255,255,.75);font-size:30px;font-weight:900}
.scan-result h2{margin:4px 0 8px}.scan-result h3{margin:5px 0}.scan-result p{margin:6px 0}


/* v20.2 prepaid stability/UI improvements */
#profileModal .profile-card{width:min(1180px,94vw);max-width:1180px}
#profileModal .wide-history{overflow-x:auto}
#profileModal .wide-history table{min-width:980px}
#plansSection .section-head>.toolbar-actions{display:flex;gap:10px;flex-wrap:wrap}
#soundToggle{border:1px solid #b9ccc3;border-radius:10px;background:#fff;color:#12664f;padding:10px 12px;font-weight:800}
@media(max-width:760px){#profileModal .profile-card{width:96vw;padding:16px}#profileModal .wide-history table{min-width:900px}}

/* v21 Student Subscription QR */
.student-qr-card{max-width:680px;margin:24px auto;text-align:center}.student-qr-card>label{display:block;text-align:left;font-weight:700}.student-qr-card select{width:100%;margin-top:7px}.student-qr-box{min-height:300px;display:flex;align-items:center;justify-content:center;margin:18px auto}.student-qr-box img,.student-qr-box canvas{max-width:100%;height:auto}.student-qr-state{margin-top:18px}.student-qr-card #qrCountdown{font-weight:800;margin:8px}.button-link{display:inline-flex;align-items:center;justify-content:center;text-decoration:none;border-radius:10px;padding:10px 14px;font-weight:700}.button-link.secondary{background:#edf3ef;color:var(--green)}

/* v22 Internal Staff Attendance */
.attendance-methods{border:1px solid #d9dedb;border-radius:12px;padding:14px}.attendance-methods label{display:inline-flex;align-items:center;gap:7px;margin-right:22px}.attendance-methods input{width:auto}.standalone-card{width:min(760px,94vw);margin:35px auto;background:#fff;padding:28px;border-radius:18px;box-shadow:0 12px 36px rgba(0,0,0,.10)}.standalone-card select{width:100%;margin-top:8px}.approved,.rejected{padding:20px;border-radius:14px;text-align:center;margin-top:18px}.approved{background:#e9f8ef}.rejected{background:#fff0f0}.scan-result h2{margin:0 0 8px}


/* v23 organized navigation + completed Internal Staff */
.nav-group{margin:5px 0}.nav-group summary{list-style:none;cursor:pointer;padding:10px 13px;color:#aebfb8;font-size:10px;font-weight:900;text-transform:uppercase;letter-spacing:.8px}.nav-group summary::-webkit-details-marker{display:none}.nav-group summary:after{content:'›';float:right;transition:transform .15s}.nav-group[open] summary:after{transform:rotate(90deg)}.nav-sub a{padding-left:22px}.nav-sep{height:1px;background:rgba(255,255,255,.13);margin:12px 10px}.toolbar-actions{display:flex;gap:9px;flex-wrap:wrap;align-items:center}.toolbar-actions input{padding:9px 10px;border:1px solid var(--line);border-radius:9px;background:#fff}.weekly-offs{border:1px solid #d9dedb;border-radius:12px;padding:14px}.weekly-offs label{display:inline-flex!important;align-items:center;gap:6px;margin:4px 16px 4px 0!important}.weekly-offs input{width:auto!important}.internal-stats b{font-size:27px}.info-box strong{color:var(--green)}
@media print{.sidebar,header,.toolbar,#attendance,#fingerprint,#reports .toolbar-actions,.modal,.internal-stats{display:none!important}.content{margin:0!important;width:100%!important;padding:0!important}#monthly{display:block!important;border:0!important;box-shadow:none!important}body{background:#fff}.data-table{font-size:10px}}
@media(max-width:900px){.nav-group summary{font-size:0}.nav-group summary:before{content:'•••';font-size:14px}.nav-sub a{padding-left:13px}}

/* v24 Student self-service portal */
.student-app-body{margin:0;background:#f5f4ef;color:#17212b;font-family:Inter,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}.student-app{min-height:100vh;padding-bottom:96px}.student-topbar{position:sticky;top:0;z-index:15;display:flex;align-items:center;justify-content:space-between;padding:12px 18px;background:rgba(255,255,255,.94);backdrop-filter:blur(16px);border-bottom:1px solid #e7e4dc}.student-brand{display:flex;align-items:center;gap:10px}.student-brand img{width:42px;height:42px;object-fit:contain}.student-brand div{display:flex;flex-direction:column}.student-brand strong{font-size:15px}.student-brand span{font-size:11px;color:#697480}.student-icon-btn{border:1px solid #d8dce1;background:#fff;border-radius:12px;padding:9px 12px}.student-main{width:min(760px,100%);margin:auto;padding:22px 16px}.student-view{display:none}.student-view.active{display:block}.student-hello h1,.student-page-heading h1{margin:3px 0 4px;font-size:30px}.student-card{background:#fff;border:1px solid #e4e2dc;border-radius:20px;padding:18px;margin:16px 0;box-shadow:0 8px 28px rgba(20,28,38,.05)}.subscription-card{background:linear-gradient(140deg,#162b35,#243b48);color:#fff;border:0}.subscription-card .muted{color:#c8d1d5}.student-card-label{font-size:10px;letter-spacing:.13em;color:#bdc8cd}.subscription-card h2{margin:6px 0}.student-progress{height:7px;background:rgba(255,255,255,.18);border-radius:999px;overflow:hidden;margin:18px 0}.student-progress div{height:100%;background:#fff;border-radius:inherit;width:0}.student-metrics{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.student-metrics div{background:rgba(255,255,255,.08);border-radius:14px;padding:10px;text-align:center}.student-metrics b,.student-metrics span{display:block}.student-metrics b{font-size:18px}.student-metrics span{font-size:10px;color:#cbd4d8;margin-top:2px}.student-section-title{font-size:18px;margin:22px 0 10px}.student-meal-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}.student-meal-card{background:#fff;border:1px solid #e4e2dc;border-radius:16px;padding:14px;display:flex;flex-direction:column;gap:8px}.student-meal-card div{display:flex;flex-direction:column}.student-meal-card span,.student-meal-card small,.student-row span,.student-row small{font-size:11px;color:#77818b}.student-meal-card strong{font-size:12px;color:#64727d}.student-meal-card.taken{border-color:#b9dfca;background:#f4fbf7}.student-meal-card.taken strong{color:#16764a}.student-list{display:flex;flex-direction:column;gap:10px}.student-row,.student-ticket{background:#fff;border:1px solid #e4e2dc;border-radius:16px;padding:14px;display:flex;align-items:center;justify-content:space-between;gap:12px}.student-row>div:first-child,.student-row-right{display:flex;flex-direction:column}.student-row-right{text-align:right}.student-empty{background:#fff;border:1px dashed #d4d0c7;border-radius:16px;padding:22px;text-align:center;color:#68727b}.student-segment{display:flex;gap:6px;background:#eae8e2;padding:5px;border-radius:14px;margin:16px 0}.student-segment button{flex:1;border:0;background:transparent;padding:10px;border-radius:10px}.student-segment button.active{background:#fff;box-shadow:0 2px 8px rgba(0,0,0,.06)}.student-form{display:grid;gap:12px}.student-form label{display:grid;gap:6px;font-size:12px;font-weight:600}.student-form input,.student-form select,.student-form textarea{width:100%;box-sizing:border-box;border:1px solid #d7d9dc;border-radius:12px;padding:11px;background:#fff;font:inherit}.student-primary{border:0;border-radius:12px;background:#173c48;color:#fff;padding:12px 16px;font-weight:700}.student-ticket{align-items:flex-start;flex-wrap:wrap}.student-ticket>div:first-child{display:flex;flex-direction:column}.student-ticket>p{width:100%;margin:0;color:#47535d}.ticket-response{width:100%;background:#f2f6f5;border-radius:12px;padding:11px}.ticket-response p{margin:4px 0 0}.profile-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:14px}.profile-grid div{display:flex;flex-direction:column;gap:3px}.profile-grid span{font-size:10px;color:#7b848c}.student-bottom-nav{position:fixed;bottom:0;left:0;right:0;z-index:20;height:72px;background:rgba(255,255,255,.97);border-top:1px solid #dddcd7;display:flex;justify-content:center;padding-bottom:env(safe-area-inset-bottom)}.student-bottom-nav button{flex:1;max-width:150px;min-width:0;border:0;background:transparent;color:#7b838a;font-size:10px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px}.student-bottom-nav button span{font-size:19px}.student-bottom-nav button.active{color:#173c48;font-weight:700}.student-qr-fab{position:fixed;z-index:24;bottom:78px;left:50%;transform:translateX(-50%);border:0;border-radius:999px;padding:13px 22px;background:#173c48;color:#fff;font-weight:800;box-shadow:0 10px 25px rgba(23,60,72,.26)}.student-modal{position:fixed;inset:0;z-index:50;background:rgba(10,17,22,.62);display:none;align-items:center;justify-content:center;padding:20px}.student-modal.open{display:flex}.student-modal-card{position:relative;width:min(390px,100%);background:#fff;border-radius:24px;padding:24px;text-align:center}.student-modal-close{position:absolute;right:13px;top:11px;border:0;background:#f0f0ed;border-radius:50%;width:34px;height:34px;font-size:22px}.student-portal-qr{min-height:260px;display:flex;justify-content:center;align-items:center;margin:18px auto}.student-portal-qr img,.student-portal-qr canvas{max-width:100%}.student-qr-note{font-size:12px;color:#64717b}.student-notice{position:fixed;left:50%;top:80px;z-index:60;transform:translateX(-50%);background:#173c48;color:#fff;padding:11px 18px;border-radius:999px;box-shadow:0 8px 25px rgba(0,0,0,.15);max-width:calc(100vw - 36px);text-align:center}.student-notice[data-type="error"]{background:#9a2e2e}.student-notice[data-type="info"]{background:#4e6170}.login-notice{margin-bottom:12px;padding:10px 12px;border-radius:10px;background:#fff0ef;color:#912f2a;font-size:12px}.login-notice[data-type="info"]{background:#eef3f5;color:#395564}@media(max-width:520px){.student-main{padding:16px 12px}.student-hello h1,.student-page-heading h1{font-size:26px}.profile-grid{grid-template-columns:1fr}.student-meal-grid{grid-template-columns:1fr 1fr}.student-topbar{padding:10px 12px}.student-brand img{width:36px;height:36px}}
.student-receipt-link{border:0;background:transparent;padding:0;color:inherit;font:inherit;font-weight:700;text-decoration:underline;cursor:pointer}

/* v25.3 owner portal */
.owner-login-card{border-top:4px solid #b58a2a}.owner-security-note{margin:0 0 18px;padding:10px 12px;border-radius:10px;background:#f5f1e7;color:#6d571e;font-size:13px;font-weight:700;text-align:center}

/* v25.4 SHV OneServe login selector + persistent sidebar */
.login-product-tagline{margin:5px 0 3px;color:#385f53;font-size:12px;font-weight:800;letter-spacing:.03em}.account-type-wrap{position:relative;text-align:left;margin:22px 0}.account-type-wrap>label{display:block!important;margin-bottom:7px!important}.account-type-button{width:100%;display:flex;align-items:center;justify-content:space-between;border:1px solid #d8e1dc;background:#fff;border-radius:12px;padding:14px 15px;font:inherit;font-weight:750;color:#30443d;cursor:pointer}.account-type-button[data-selected="true"]{border-color:#a9c6ba;color:var(--green)}.account-type-button.open{border-color:var(--green);box-shadow:0 0 0 3px rgba(13,92,69,.09)}.account-type-arrow{font-size:19px;transition:transform .15s}.account-type-button.open .account-type-arrow{transform:rotate(180deg)}.account-type-menu{position:absolute;z-index:20;top:100%;left:0;right:0;margin-top:7px;background:#fff;border:1px solid #d8e1dc;border-radius:14px;box-shadow:0 18px 38px rgba(22,54,44,.16);padding:6px;overflow:hidden}.account-type-menu button{width:100%;border:0;background:#fff;border-radius:10px;padding:11px 12px;text-align:left;display:flex;flex-direction:column;gap:2px;cursor:pointer;color:#2a3a34}.account-type-menu button:hover,.account-type-menu button:focus{background:#eef5f1;outline:none}.account-type-menu strong{font-size:13px;color:var(--green)}.account-type-menu span{font-size:10px;color:var(--muted)}.prepaid-rate-metrics{grid-template-columns:repeat(4,1fr)}@media(max-width:520px){.prepaid-rate-metrics{grid-template-columns:repeat(2,1fr)}}

/* v26 Menu Management */
.menu-toolbar{display:flex;align-items:end;justify-content:space-between;gap:16px}.menu-toolbar label{display:grid;gap:6px;font-size:12px;font-weight:700}.menu-toolbar input{padding:10px 12px;border:1px solid var(--line);border-radius:10px}.menu-legend{display:flex;gap:15px;flex-wrap:wrap;font-size:12px;color:var(--muted)}.dot{display:inline-block;width:9px;height:9px;border-radius:50%;margin-right:5px}.dot.published{background:#2b8a5b}.dot.draft{background:#c58b2a}.dot.disabled{background:#a64a4a}.menu-week{display:grid;grid-template-columns:repeat(7,minmax(180px,1fr));gap:10px;overflow-x:auto;padding-bottom:5px}.menu-day{min-width:180px}.menu-day-head{padding:8px 4px;display:flex;flex-direction:column}.menu-day-head span{font-size:10px;color:var(--muted)}.menu-slot{width:100%;min-height:125px;margin-bottom:8px;padding:12px;border:1px solid var(--line);border-radius:14px;background:#fff;text-align:left;cursor:pointer;display:flex;flex-direction:column;justify-content:space-between;gap:8px}.menu-slot:hover{box-shadow:0 5px 18px rgba(0,0,0,.08)}.menu-slot span{display:flex;justify-content:space-between;gap:6px}.menu-slot small{color:var(--muted);font-size:9px}.menu-slot p{margin:0;font-size:12px;line-height:1.35;white-space:pre-line;max-height:48px;overflow:hidden}.menu-slot em{font-style:normal;font-size:10px;font-weight:800}.menu-slot.published{border-color:#a9d8bd;background:#f5fbf7}.menu-slot.published em{color:#21764b}.menu-slot.draft{border-color:#ead3a5;background:#fffaf0}.menu-slot.draft em{color:#9a6818}.menu-slot.disabled{border-color:#e2b9b9;background:#fff6f6}.menu-slot.disabled em{color:#9a3535}.menu-slot.empty{border-style:dashed;color:#6e7773}.menu-modal-box{width:min(650px,94vw)}.menu-switches{display:flex;gap:18px;flex-wrap:wrap;padding:12px;border:1px solid var(--line);border-radius:12px}.menu-switches label{display:flex!important;align-items:center;gap:8px;margin:0!important}.menu-switches input{width:auto!important}@media(max-width:800px){.menu-toolbar{align-items:stretch;flex-direction:column}.menu-week{grid-template-columns:repeat(7,180px)}}

.menu-portal-row>div:first-child{gap:4px}.menu-portal-row>div:first-child span{white-space:pre-line;font-size:13px;color:#45525b}.menu-portal-row.service-off{background:#fff4f4;border-color:#e6c2c2}.menu-portal-row.service-off strong{color:#9a3535}

/* v26.2 Menu daily / weekly / monthly planning and exports */
.menu-view-tabs{display:flex;gap:7px;flex-wrap:wrap}.menu-view-tabs button{min-width:82px}.menu-day-view{display:grid;grid-template-columns:repeat(4,minmax(180px,1fr));gap:12px}.menu-month{display:grid;grid-template-columns:repeat(7,minmax(170px,1fr));gap:8px;overflow-x:auto}.month-weekday{font-size:11px;font-weight:800;text-transform:uppercase;color:var(--muted);padding:6px}.month-cell{min-width:170px;border:1px solid var(--line);border-radius:14px;padding:8px;background:#fafbf9}.month-cell.blank{border:0;background:transparent}.month-date{display:flex;justify-content:space-between;align-items:center;margin:1px 3px 7px}.month-date b{font-size:18px}.month-date span{font-size:10px;color:var(--muted)}.menu-slot.compact{min-height:72px;padding:7px;margin-bottom:5px;border-radius:9px}.menu-slot.compact span small,.menu-slot.compact em{display:none}.menu-slot.compact p{font-size:10px;max-height:27px}.month-summary{display:block;color:var(--muted);font-size:9px;padding:3px}.menu-import-option{display:flex!important;align-items:center;gap:8px;margin:16px 0!important}.menu-import-option input{width:auto!important}@media(max-width:900px){.menu-day-view{grid-template-columns:repeat(2,minmax(180px,1fr))}.menu-toolbar{align-items:stretch;flex-direction:column}}@media(max-width:520px){.menu-day-view{grid-template-columns:1fr}}


/* v27 Complaints & Helpdesk */
.helpdesk-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-bottom:16px}.helpdesk-summary .card{padding:18px}.helpdesk-summary span{display:block;color:var(--muted,#667085);font-size:13px;margin-bottom:6px}.helpdesk-summary b{font-size:28px}.helpdesk-filters{display:grid;grid-template-columns:minmax(240px,2fr) repeat(3,minmax(150px,1fr));gap:10px;margin-bottom:16px}.helpdesk-filters input,.helpdesk-filters select{width:100%;padding:11px 12px;border:1px solid #d7dfdb;border-radius:10px;background:#fff}.table-wrap small{display:block;color:#718078;margin-top:4px}.compact{padding:7px 11px!important;white-space:nowrap}.helpdesk-badge{display:inline-flex;align-items:center;padding:5px 9px;border-radius:999px;font-size:11px;font-weight:800;letter-spacing:.02em}.status-open{background:#fff4dc;color:#9a5b00}.status-in-progress{background:#eaf2ff;color:#245eaa}.status-resolved{background:#e7f7ef;color:#16724a}.status-closed{background:#edf0ef;color:#5f6964}.priority-urgent{background:#ffe7e8;color:#a42731}.priority-high{background:#fff0e4;color:#a54e0b}.priority-medium{background:#fff6d8;color:#876000}.priority-low{background:#e9f5f1;color:#32705c}.helpdesk-modal{width:min(820px,94vw);max-height:92vh;overflow:auto}.helpdesk-student{display:flex;justify-content:space-between;gap:16px;padding:14px;background:#f5f8f6;border-radius:12px;margin:12px 0 16px}.helpdesk-student strong,.helpdesk-student span{display:block}.helpdesk-student span{font-size:13px;color:#6d7771;margin-top:4px}.helpdesk-message{padding:15px;border:1px solid #e2e8e5;border-radius:12px;margin-bottom:16px}.helpdesk-message p{white-space:pre-wrap;margin:8px 0 0}.helpdesk-form-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.helpdesk-history{border-top:1px solid #e2e8e5;margin-top:20px;padding-top:16px}.history-row{padding:12px 0;border-bottom:1px solid #eef1ef}.history-row>div{display:flex;gap:8px;align-items:center}.history-row span,.history-row small{color:#6d7771}.history-row p{margin:6px 0 0;font-size:13px}@media(max-width:900px){.helpdesk-summary{grid-template-columns:repeat(2,1fr)}.helpdesk-filters{grid-template-columns:1fr 1fr}.helpdesk-form-grid{grid-template-columns:1fr}.helpdesk-student{flex-direction:column}}@media(max-width:560px){.helpdesk-summary,.helpdesk-filters{grid-template-columns:1fr}}


/* v28 Feedback & Ratings */
.rating-stars{font-size:18px;letter-spacing:1px;white-space:nowrap}.feedback-comment-cell{max-width:340px;white-space:normal;line-height:1.45}.feedback-original{padding:14px 16px;border:1px solid #dde5e1;border-radius:12px;margin:12px 0 18px;background:#f8faf9}.feedback-original p{margin:8px 0 0;white-space:pre-wrap}.original-rating{margin-top:8px}.feedback-note{font-size:12px;margin:0}.feedback-submit-form{margin-top:8px}.feedback-filters{grid-template-columns:minmax(220px,2fr) repeat(5,minmax(130px,1fr))}@media(max-width:1100px){.feedback-filters{grid-template-columns:1fr 1fr}}@media(max-width:650px){.feedback-filters{grid-template-columns:1fr}}

/* v28.2 Feature Controls */
.feature-control-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:14px;margin-top:18px}.feature-control-card{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:18px;border:1px solid var(--line,#d8dee7);border-radius:14px;background:var(--card,#fff);cursor:pointer}.feature-control-card>div{display:flex;flex-direction:column;gap:5px}.feature-control-card strong{font-size:15px}.feature-control-card span{font-size:12px;color:var(--muted,#667085);line-height:1.45}.feature-control-card input{appearance:none;width:46px;height:26px;border-radius:999px;background:#cbd5e1;position:relative;flex:0 0 auto;transition:.2s}.feature-control-card input:before{content:'';position:absolute;width:20px;height:20px;border-radius:50%;background:white;top:3px;left:3px;box-shadow:0 1px 4px #0003;transition:.2s}.feature-control-card input:checked{background:#16a34a}.feature-control-card input:checked:before{left:23px}

/* v29 Reports & Analytics */
.report-filter-card{position:relative}.report-filter-grid{display:grid;grid-template-columns:repeat(3,minmax(150px,1fr)) auto;gap:12px;align-items:end}.report-filter-grid label{display:grid;gap:6px;font-size:13px;font-weight:700}.report-kpis{grid-template-columns:repeat(6,minmax(150px,1fr));overflow-x:auto}.report-overview-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.report-type-tabs{display:flex;flex-wrap:wrap;gap:8px;margin:14px 0 18px}.report-type-tabs button{background:#f4f6f5;color:#26332f;border:1px solid #dfe5e2;padding:9px 12px}.report-type-tabs button.active{background:#174f41;color:#fff;border-color:#174f41}.analytics-bars{display:grid;gap:14px}.analytics-bar-row>div:first-child{display:flex;justify-content:space-between;gap:12px}.analytics-bar-row span{font-size:12px;color:#6d7874;text-align:right}.analytics-bar{height:8px;border-radius:999px;background:#edf1ef;overflow:hidden;margin-top:7px}.analytics-bar i{display:block;height:100%;background:linear-gradient(90deg,#1c6b57,#2e9b78);border-radius:999px}.analytics-list{display:grid;gap:0}.analytics-list>div{display:flex;justify-content:space-between;gap:12px;padding:12px 0;border-bottom:1px solid #edf0ee}.analytics-list>div:last-child{border-bottom:0}.reports-page .table-wrap{max-height:560px;overflow:auto}.reports-page .table-wrap th{position:sticky;top:0;z-index:1}
@media(max-width:1200px){.report-kpis{grid-template-columns:repeat(3,1fr)}.report-overview-grid{grid-template-columns:1fr}.report-filter-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:720px){.report-filter-grid{grid-template-columns:1fr}.report-kpis{grid-template-columns:repeat(2,minmax(150px,1fr))}.report-type-tabs{overflow:auto;flex-wrap:nowrap}.report-type-tabs button{white-space:nowrap}}
@media print{body[data-print-report="1"] .sidebar,body[data-print-report="1"] header,body[data-print-report="1"] .report-filter-card,body[data-print-report="1"] .report-kpis,body[data-print-report="1"] .report-overview-grid,body[data-print-report="1"] .report-type-tabs,body[data-print-report="1"] .toolbar-actions{display:none!important}body[data-print-report="1"] .content{margin:0!important;width:100%!important;padding:0!important}body[data-print-report="1"] .reports-page>section.card:last-child{display:block!important;border:0;box-shadow:none}body[data-print-report="1"] .table-wrap{max-height:none!important;overflow:visible!important}body[data-print-report="1"] table{font-size:10px}}

/* v30 Walk-in POS */
.pos-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin-bottom:18px}.pos-layout{display:grid;grid-template-columns:minmax(0,1.65fr) minmax(330px,.8fr);gap:18px;margin-bottom:18px}.pos-toolbar{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.pos-toolbar input{min-width:210px}.pos-item-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-top:14px}.pos-item{border:1px solid #dfe4e2;background:#fff;border-radius:14px;padding:15px;text-align:left;cursor:pointer;display:flex;flex-direction:column;gap:5px;transition:.15s}.pos-item:hover{transform:translateY(-1px);box-shadow:0 8px 22px rgba(22,45,37,.08);border-color:#a9c9bd}.pos-item span{font-size:11px;text-transform:uppercase;letter-spacing:.08em;color:#73817c}.pos-item strong{font-size:15px;color:#1d2925}.pos-item b{font-size:18px;color:#0d6b4f}.pos-cart{position:sticky;top:18px;align-self:start}.pos-cart-lines{display:flex;flex-direction:column;gap:10px;max-height:420px;overflow:auto}.pos-cart-line{display:grid;grid-template-columns:minmax(0,1fr) auto auto auto;gap:10px;align-items:center;border-bottom:1px solid #edf0ef;padding:9px 0}.pos-cart-line>div:first-child{display:flex;flex-direction:column}.pos-cart-line small{color:#7b8581}.qty-control{display:flex;align-items:center;border:1px solid #dfe4e2;border-radius:10px;overflow:hidden}.qty-control button{border:0;background:#f4f6f5;width:30px;height:30px;cursor:pointer}.qty-control b{min-width:30px;text-align:center}.icon-btn{border:0;background:transparent;font-size:20px;cursor:pointer;color:#8a4c4c}.pos-total-row{display:flex;justify-content:space-between;align-items:center;border-top:2px solid #1b5746;margin-top:14px;padding:14px 0;font-size:17px}.pos-total-row strong{font-size:26px}.pos-checkout{width:100%;margin-top:12px;padding:13px}.form-grid.compact{grid-template-columns:1fr 1fr}.pos-receipt{background:#fff;color:#202b27}.receipt-brand{text-align:center;border-bottom:1px solid #dfe4e2;padding-bottom:14px;margin-bottom:14px}.receipt-brand img{max-height:70px;max-width:180px;object-fit:contain}.receipt-brand h2{margin:6px 0 2px}.receipt-brand p{margin:0;color:#67736e}.receipt-meta{display:grid;grid-template-columns:1fr 1fr;gap:7px 14px;font-size:13px;margin-bottom:14px}.pos-receipt table{width:100%;border-collapse:collapse}.pos-receipt th,.pos-receipt td{padding:8px 6px;border-bottom:1px solid #e7ebe9;text-align:left;font-size:13px}.receipt-grand{display:flex;justify-content:space-between;align-items:center;padding:15px 4px;font-size:18px}.receipt-grand strong{font-size:24px}.receipt-foot{text-align:center;color:#6f7b76;font-size:12px;margin-top:18px}@media(max-width:1100px){.pos-kpis{grid-template-columns:repeat(2,1fr)}.pos-layout{grid-template-columns:1fr}.pos-cart{position:static}.pos-item-grid{grid-template-columns:repeat(2,1fr)}}@media(max-width:650px){.pos-kpis,.pos-item-grid,.form-grid.compact{grid-template-columns:1fr}.receipt-meta{grid-template-columns:1fr}.pos-cart-line{grid-template-columns:minmax(0,1fr) auto auto}.pos-cart-line .icon-btn{grid-column:3}.pos-toolbar input{min-width:0;width:100%}}

/* v30.1: honor HTML hidden attribute for POS and all shared modals */
.modal[hidden]{display:none!important}

/* v30.2 System Settings layout fix */
.system-settings-page{min-width:0;overflow-x:hidden}
.system-settings-card{width:100%;min-width:0}
.system-settings-card .toolbar{align-items:flex-start;gap:16px;flex-wrap:wrap}
.system-settings-card .toolbar>div{min-width:0;flex:1}
.system-settings-card .feature-control-grid{grid-template-columns:repeat(auto-fit,minmax(260px,1fr));width:100%;min-width:0}
.system-settings-card .feature-control-card{min-width:0}
@media(max-width:700px){.system-settings-card .feature-control-grid{grid-template-columns:1fr}.system-settings-card .toolbar #saveFeatures{width:100%}}

/* v31 Inventory Management */
.inventory-summary{margin-bottom:20px}.inventory-toolbar{display:grid;grid-template-columns:minmax(220px,1fr) 180px auto auto;gap:10px;align-items:center;margin-bottom:16px}.inventory-history{margin-top:20px}.inventory-history-filters{display:flex;gap:10px;flex-wrap:wrap;margin:14px 0}.inventory-history-filters input,.inventory-history-filters select{min-width:160px}.inventory-alert{display:inline-block;margin-left:8px;padding:2px 7px;border-radius:999px;background:#fff3cd;color:#7a5400;font-size:11px;font-weight:700}.movement-type{display:inline-block;padding:4px 8px;border-radius:999px;background:#eef2f4;font-size:11px;font-weight:700;white-space:nowrap}.movement-type.purchase,.movement-type.adjustment_in,.movement-type.return_in{background:#e8f7ef;color:#17663b}.movement-type.consumption,.movement-type.adjustment_out,.movement-type.wastage{background:#fff0ee;color:#9b2f25}.movement-type.opening{background:#eef4ff;color:#274f9b}.wide{grid-column:1/-1}@media(max-width:900px){.inventory-toolbar{grid-template-columns:1fr 1fr}.inventory-toolbar input{grid-column:1/-1}}@media(max-width:600px){.inventory-toolbar{grid-template-columns:1fr}.inventory-toolbar input{grid-column:auto}}

/* v32 Expense Management */
.expense-toolbar{display:grid;grid-template-columns:minmax(220px,1.5fr) repeat(4,minmax(135px,.7fr));gap:10px;margin-bottom:16px;align-items:center}.expense-summary b{font-size:1.55rem}.expense-actions{white-space:nowrap}.expense-actions button+button{margin-left:6px}.inline-form{display:flex;gap:10px;margin:14px 0 18px}.inline-form input{flex:1}.compact-modal{max-width:560px}.status.pending{background:#fff7df;color:#8a5d00}.status.approved{background:#e9f8ee;color:#176b38}.status.rejected{background:#fdebec;color:#9d2730}@media(max-width:1050px){.expense-toolbar{grid-template-columns:1fr 1fr}}@media(max-width:640px){.expense-toolbar{grid-template-columns:1fr}.inline-form{flex-direction:column}}
@media print{.sidebar,.toolbar-actions,.expense-toolbar,#expenseNotice,.expense-actions{display:none!important}.app{display:block}.content{margin:0!important;padding:12px!important}.card{box-shadow:none!important;border:1px solid #ddd;break-inside:avoid}body{background:#fff!important}}


/* =========================================================
   v33 Main Operations Dashboard
   Scoped dashboard styling; does not alter module logic.
   ========================================================= */
.dashboard-page{background:linear-gradient(180deg,#f6f7fb 0,#fbfbfd 460px,#f8f9fb 100%);min-height:100vh;padding-bottom:42px}
.dashboard-header{align-items:center;margin-bottom:22px;padding:4px 2px 0}
.dashboard-header h1{font-size:30px;letter-spacing:-.8px;margin:3px 0 5px;color:#172033}
.dashboard-header-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap;justify-content:flex-end}
.live-pill{display:inline-flex;align-items:center;gap:7px;padding:8px 12px;border:1px solid #d9e8df;background:#f2faf5;border-radius:999px;font-size:12px;font-weight:800;color:#23734a}
.live-pill i{width:7px;height:7px;border-radius:50%;background:#2e9d65;box-shadow:0 0 0 4px rgba(46,157,101,.12)}
.dashboard-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-bottom:16px}
.dash-kpi{position:relative;overflow:hidden;padding:20px;border:1px solid #e3e7ef;border-radius:16px;background:rgba(255,255,255,.94);box-shadow:0 5px 20px rgba(20,31,50,.045)}
.dash-kpi:after{content:"";position:absolute;width:110px;height:110px;border-radius:50%;right:-52px;top:-58px;background:linear-gradient(135deg,rgba(55,91,210,.08),rgba(55,91,210,0))}
.dash-kpi-primary{background:linear-gradient(135deg,#1d2942,#25375d);border-color:#25375d;color:#fff}
.dash-kpi-primary:after{background:rgba(255,255,255,.08)}
.dash-kpi-top{display:flex;justify-content:space-between;align-items:center;gap:8px;color:#6b7485;font-size:12px;font-weight:800;text-transform:uppercase;letter-spacing:.35px}
.dash-kpi-primary .dash-kpi-top,.dash-kpi-primary small{color:#cfd8ea}
.dash-icon{display:inline-flex;align-items:center;justify-content:center;width:31px;height:31px;border-radius:9px;background:#eef2fb;color:#354b80;font-size:11px;font-weight:900}
.dash-kpi-primary .dash-icon{background:rgba(255,255,255,.13);color:#fff}
.dash-kpi>strong{display:block;font-size:29px;line-height:1.15;letter-spacing:-.7px;margin:11px 0 5px;color:#1b2538}
.dash-kpi-primary>strong{color:#fff}
.dash-kpi strong em{font-size:16px;font-style:normal;color:#8b93a2;font-weight:700}
.dash-kpi small{color:#8a93a1}.dash-kpi small b{color:inherit}
.dashboard-split{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(300px,.8fr);gap:16px;margin-bottom:16px}
.dash-panel{border-radius:16px;border:1px solid #e3e7ef;box-shadow:0 5px 22px rgba(20,31,50,.04);overflow:hidden}
.dash-panel-head{align-items:center;margin-bottom:16px}.dash-panel-head h2{font-size:18px;margin:2px 0 0;color:#1c2638}.dash-label{font-size:10px;font-weight:900;letter-spacing:1.1px;color:#8a93a3;margin:0}
.dash-text-link{font-size:12px;font-weight:800;color:#405caa;text-decoration:none}
.dash-meal-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}
.dash-meal-tile{border:1px solid #e6e9ef;border-radius:13px;padding:14px;background:#fafbfc;min-width:0}
.dash-meal-tile.is-live{border-color:#a8d8bb;background:#f4fbf7;box-shadow:inset 0 0 0 1px rgba(59,143,91,.08)}
.dash-meal-name{display:flex;align-items:center;justify-content:space-between;gap:5px;font-size:12px;font-weight:800;color:#566071}.dash-meal-name i{font-style:normal;font-size:8px;letter-spacing:.5px;color:#287448;background:#dff4e7;border-radius:999px;padding:3px 5px}
.dash-meal-tile>strong{display:block;font-size:26px;margin:8px 0 2px;color:#1e293b}.dash-meal-tile small{display:block;color:#8a93a1;font-size:10px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.dash-meal-time{font-size:10px;font-weight:700;color:#657086;margin-top:8px;padding-top:8px;border-top:1px solid #e9ebf0}
.dash-trend-wrap{margin-top:20px;padding-top:16px;border-top:1px solid #edf0f4}.dash-section-title{display:flex;justify-content:space-between;align-items:center;font-size:12px;color:#3f4858}.dash-trend{height:126px;display:flex;align-items:flex-end;gap:8px;margin-top:12px;padding-top:8px}.dash-trend-day{display:grid;grid-template-rows:18px 1fr 17px;justify-items:center;align-items:end;gap:3px;flex:1;height:100%;min-width:0}.dash-trend-value{font-size:9px;color:#8992a0}.dash-trend-track{height:78px;width:min(26px,70%);background:#eef1f6;border-radius:6px;display:flex;align-items:flex-end;overflow:hidden}.dash-trend-track i{display:block;width:100%;background:linear-gradient(180deg,#7187c7,#3e568f);border-radius:5px;min-height:2px}.dash-trend-day small{font-size:9px;color:#818a99}
.dash-money-list{display:grid;gap:0}.dash-money-list>div{display:flex;align-items:center;justify-content:space-between;padding:11px 0;border-bottom:1px solid #edf0f4;font-size:12px;color:#667085}.dash-money-list b{font-size:14px;color:#1f2937}.dash-money-expense b{color:#a04444!important}.dash-net-box{margin-top:16px;padding:14px;border-radius:13px;background:#f3f5fa;border:1px solid #e5e9f2}.dash-net-box span,.dash-net-box small{display:block;color:#778193;font-size:10px}.dash-net-box strong{display:block;font-size:22px;color:#25365a;margin:3px 0}
.dashboard-kpis-secondary{grid-template-columns:repeat(4,1fr)}.dash-mini{display:flex;align-items:center;justify-content:space-between;padding:15px 17px;background:#fff;border:1px solid #e5e8ef;border-radius:13px}.dash-mini span{font-size:11px;font-weight:700;color:#717b8c}.dash-mini strong{font-size:20px;color:#253047}
.dashboard-bottom-grid{grid-template-columns:1fr 1fr}.dash-attention{display:grid;gap:8px}.dash-alert-row{display:grid;grid-template-columns:37px 1fr auto;align-items:center;gap:11px;text-decoration:none;border:1px solid #e9ebf0;padding:10px 11px;border-radius:11px;background:#fcfcfd;color:#2b3444}.dash-alert-number{display:flex;align-items:center;justify-content:center;width:34px;height:34px;border-radius:9px;font-weight:900;background:#fff4df;color:#965e12}.dash-alert-row.info .dash-alert-number{background:#edf2ff;color:#405ba6}.dash-alert-row b{display:block;font-size:11px}.dash-alert-row small{display:block;font-size:9px;color:#8a93a1;margin-top:2px}.dash-alert-row em{font-style:normal;color:#9ba2ad}.dash-all-clear{padding:25px;text-align:center;border:1px dashed #cfd8d2;border-radius:12px;background:#f7fbf8}.dash-all-clear strong,.dash-all-clear span{display:block}.dash-all-clear strong{color:#2d6e48}.dash-all-clear span{color:#7e8a82;font-size:11px;margin-top:3px}
.dash-quick-actions{display:grid;grid-template-columns:1fr 1fr;gap:9px}.dash-quick-actions a{display:flex;gap:10px;align-items:center;padding:12px;border:1px solid #e7eaf0;border-radius:11px;background:#fbfcfd;text-decoration:none;color:#2b3444}.dash-quick-actions a>span{display:flex;align-items:center;justify-content:center;width:37px;height:37px;flex:none;border-radius:10px;background:#edf1f9;color:#435989;font-size:9px;font-weight:900}.dash-quick-actions b,.dash-quick-actions small{display:block}.dash-quick-actions b{font-size:11px}.dash-quick-actions small{font-size:9px;color:#8992a0;margin-top:2px}
.dash-health-panel{margin-bottom:16px}.dash-health-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}.dash-health-grid>div{padding:13px;border-radius:11px;background:#f8f9fb;border:1px solid #ebedf2}.dash-health-grid span,.dash-health-grid strong,.dash-health-grid a{display:block}.dash-health-grid span{font-size:10px;color:#747e8e;font-weight:700}.dash-health-grid strong{font-size:23px;margin:6px 0;color:#263249}.dash-health-grid a{font-size:9px;color:#4a63a2;text-decoration:none;font-weight:800}
.dash-error{margin-top:12px;padding:12px;border-radius:10px;background:#fff0f0;border:1px solid #efcaca;color:#913c3c;font-size:12px}
@media(max-width:1150px){.dashboard-kpis{grid-template-columns:repeat(2,1fr)}.dashboard-split{grid-template-columns:1fr}.dash-health-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:720px){.dashboard-page{padding-left:14px!important;padding-right:14px!important}.dashboard-header{align-items:flex-start;gap:12px}.dashboard-header h1{font-size:25px}.dashboard-header-actions{justify-content:flex-start}.dashboard-kpis,.dashboard-kpis-secondary{grid-template-columns:1fr 1fr;gap:9px}.dash-kpi{padding:15px}.dash-kpi>strong{font-size:24px}.dash-meal-grid{grid-template-columns:1fr 1fr}.dash-quick-actions,.dash-health-grid{grid-template-columns:1fr}.dash-panel{padding:15px}.dash-mini{padding:12px}.dashboard-bottom-grid{grid-template-columns:1fr}}
@media(max-width:430px){.dashboard-kpis,.dashboard-kpis-secondary{grid-template-columns:1fr}.dash-meal-grid{grid-template-columns:1fr 1fr}.live-pill{display:none}}

/* v34 System Settings consolidation */
.system-settings-page{max-width:1500px;margin:0 auto;width:100%}.settings-section-nav{display:flex;gap:8px;flex-wrap:wrap;margin:0 0 16px;position:sticky;top:0;z-index:5;padding:10px 0;background:var(--page-bg,#f6f7f9)}.settings-tab{border:1px solid #d9dee7;background:#fff;border-radius:999px;padding:9px 14px;font-weight:700;cursor:pointer}.settings-tab.active{background:#172235;color:#fff;border-color:#172235}.settings-section{scroll-margin-top:78px;margin-bottom:16px}.settings-form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin-top:18px}.settings-form-grid label>span,.meal-setting-fields label>span{display:block;font-size:12px;font-weight:700;color:#637083;margin-bottom:7px}.settings-form-grid input,.settings-form-grid textarea,.settings-form-grid select,.meal-setting-fields input{width:100%;box-sizing:border-box;border:1px solid #d8dee8;border-radius:10px;padding:10px 12px;background:#fff;color:#162033}.settings-form-grid textarea{resize:vertical}.span-2{grid-column:span 2}.setting-check{display:flex!important;align-items:flex-start;gap:10px;border:1px solid #e2e6ec;border-radius:12px;padding:14px;background:#fafbfd}.setting-check input{width:auto;margin-top:3px}.setting-check strong{display:block}.setting-check small{display:block;color:#758092;margin-top:4px}.meal-settings-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin-top:18px}.meal-setting-card{border:1px solid #e0e5ec;border-radius:14px;padding:16px;background:#fbfcfd}.meal-setting-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:14px}.meal-setting-head strong{font-size:16px}.mini-switch{display:flex;gap:7px;align-items:center;font-size:12px;color:#586477}.meal-setting-fields{display:grid;grid-template-columns:1fr 1fr 1fr;gap:10px}.settings-warning{margin-top:16px;padding:12px 14px;border-radius:10px;background:#fff7e6;border:1px solid #f5d897;color:#7c5a12;font-size:13px}.qr-policy-card{display:flex;justify-content:space-between;align-items:center;border:1px solid #dfe6ee;border-radius:14px;padding:18px;margin-top:16px;background:#fbfcfe}.qr-policy-card strong{display:block;font-size:28px}.qr-policy-card span{color:#697587}.status-pill{border-radius:999px;padding:7px 10px;font-size:12px;font-weight:800}.status-pill.success{background:#e9f8ef;color:#187744}.settings-note{margin-top:14px;max-width:900px;line-height:1.55}.settings-toast{position:fixed;left:50%;top:26px;transform:translateX(-50%);z-index:1000;min-width:300px;max-width:min(560px,90vw);box-shadow:0 14px 38px rgba(0,0,0,.16)}
@media(max-width:900px){.settings-form-grid,.meal-settings-grid{grid-template-columns:1fr}.span-2{grid-column:span 1}.meal-setting-fields{grid-template-columns:1fr 1fr}.settings-section-nav{position:static}.qr-policy-card{align-items:flex-start;gap:12px;flex-direction:column}}
@media(max-width:560px){.meal-setting-fields{grid-template-columns:1fr}.settings-tab{padding:8px 11px;font-size:12px}}

/* v34.1 System Settings viewport alignment fix
   Keep the fixed sidebar from covering the settings workspace. */
.content.system-settings-page{
  margin-left:260px;
  margin-right:0;
  width:calc(100% - 260px);
  max-width:none;
  box-sizing:border-box;
  padding-left:34px;
  padding-right:34px;
  overflow-x:hidden;
}
.system-settings-page > .topbar,
.system-settings-page > .settings-section-nav,
.system-settings-page > .settings-section{
  width:100%;
  max-width:1420px;
  margin-left:auto;
  margin-right:auto;
  box-sizing:border-box;
}
.system-settings-page > .settings-section-nav{margin-bottom:16px}
.system-settings-page > .settings-section{margin-bottom:16px}
@media(max-width:900px){
  .content.system-settings-page{
    margin-left:76px;
    width:calc(100% - 76px);
    padding-left:20px;
    padding-right:20px;
  }
}
@media(max-width:520px){
  .content.system-settings-page{
    padding-left:14px;
    padding-right:14px;
  }
}

/* v35 Security & Audit */
.security-page{max-width:none}.security-kpis{display:grid;grid-template-columns:repeat(5,minmax(150px,1fr));gap:14px;margin-bottom:18px}.security-kpi,.security-policy{background:#fff;border:1px solid #e2e8f0;border-radius:16px;padding:16px;box-shadow:0 4px 18px rgba(15,23,42,.04)}.security-kpi span,.security-policy span{display:block;color:#64748b;font-size:12px}.security-kpi strong{display:block;font-size:26px;margin-top:7px;color:#0f172a}.security-policy{grid-column:1/-1;display:flex;gap:12px;align-items:center;background:#f8fafc}.security-filters{display:grid;grid-template-columns:minmax(240px,2fr) 170px 220px auto;gap:10px;margin-bottom:14px}.security-filters input,.security-filters select{min-height:42px}.role-cards{display:grid;grid-template-columns:repeat(3,minmax(220px,1fr));gap:12px}.role-card{border:1px solid #e2e8f0;border-radius:14px;padding:15px;background:#fff}.role-card>div{display:flex;flex-direction:column}.role-card span,.role-card details p,.muted{color:#64748b;font-size:12px}.role-card>b{display:block;margin:12px 0}.role-card details p{line-height:1.7}.details-cell{max-width:420px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.pill{display:inline-block;padding:4px 8px;border-radius:999px;background:#eef2ff;font-size:11px;font-weight:700}.btn.danger{background:#b42318;color:#fff}.btn.small{padding:7px 10px;font-size:12px}.status.success{color:#067647;font-weight:700}.empty{text-align:center;color:#64748b;padding:24px!important}.notice{margin-bottom:14px;padding:12px 14px;border-radius:12px}.notice.success{background:#ecfdf3;color:#067647}.notice.error{background:#fef3f2;color:#b42318}td small{display:block;color:#64748b;margin-top:3px}@media(max-width:1050px){.security-kpis{grid-template-columns:repeat(2,1fr)}.security-filters{grid-template-columns:1fr 1fr}.role-cards{grid-template-columns:1fr 1fr}}@media(max-width:700px){.security-kpis,.role-cards,.security-filters{grid-template-columns:1fr}.security-policy{display:block}}

/* v35.1 centralized Student/Prepaid account security */
.account-toolbar{display:grid;grid-template-columns:180px minmax(260px,1fr) auto;gap:10px;margin-bottom:14px}.account-toolbar input,.account-toolbar select{min-height:42px}.account-actions{display:flex;gap:6px;flex-wrap:wrap;min-width:330px}.status.inactive{color:#b42318;font-weight:700}.btn:disabled{opacity:.45;cursor:not-allowed}@media(max-width:800px){.account-toolbar{grid-template-columns:1fr}.account-actions{min-width:260px}}

/* v35.2 Security & Audit tabbed workspace */
.security-page{max-width:none}.security-tabs{display:flex;gap:8px;padding:7px;background:#fff;border:1px solid #e1e7e3;border-radius:14px;margin:0 0 18px;overflow-x:auto}.security-tab{flex:1;min-width:145px;border:0;background:#f3f6f4;color:#34453e;border-radius:10px;padding:12px 14px;font-weight:800;cursor:pointer;white-space:nowrap}.security-tab.active{background:var(--green);color:#fff;box-shadow:0 4px 12px rgba(13,92,69,.16)}.security-panel{display:none}.security-panel.active{display:block}.account-type-tabs{display:flex;gap:8px;margin:0 0 14px}.account-type-tab{border:1px solid #d7e1dc;background:#fff;color:#385149;border-radius:9px;padding:9px 15px;font-weight:800;cursor:pointer}.account-type-tab.active{background:#eaf5f0;border-color:#9fc6b5;color:var(--green)}.account-toolbar{display:grid;grid-template-columns:minmax(260px,1fr) auto;gap:10px;margin-bottom:14px}.account-toolbar input{min-height:42px}.security-overview-grid{display:grid;grid-template-columns:1fr;gap:16px}.overview-links{display:grid;grid-template-columns:repeat(4,minmax(170px,1fr));gap:12px}.overview-link{border:1px solid #e1e7e3;background:#fff;border-radius:13px;padding:16px;text-align:left;cursor:pointer}.overview-link:hover{border-color:#9fc6b5;background:#f7fbf9}.overview-link b{display:block;color:#173c30;margin-bottom:5px}.overview-link span{font-size:12px;color:#6c7772}.login-policy-card{display:grid;grid-template-columns:repeat(3,minmax(160px,1fr));gap:12px;margin-top:10px}.policy-item{border:1px solid #e1e7e3;border-radius:13px;padding:16px;background:#f8faf9}.policy-item span{display:block;color:#6c7772;font-size:12px}.policy-item b{display:block;font-size:20px;margin-top:6px}.security-help{margin:16px 0 0;padding:12px 14px;border-radius:11px;background:#f4f8f6;color:#53645d;font-size:12px}.sidebar{z-index:10}
@media(max-width:1050px){.overview-links{grid-template-columns:repeat(2,1fr)}.login-policy-card{grid-template-columns:1fr 1fr}}
@media(max-width:700px){.security-tabs{display:grid;grid-template-columns:1fr 1fr}.security-tab{min-width:0}.overview-links,.login-policy-card{grid-template-columns:1fr}.account-toolbar{grid-template-columns:1fr}.account-type-tabs{display:grid;grid-template-columns:1fr 1fr}}

/* =========================================================
   v36 Global UI & Mobile Polish
   Visual-only/admin-shell improvements. Existing business logic untouched.
   ========================================================= */
:root{
  --shv-navy:#162235;
  --shv-navy-2:#22304a;
  --shv-green:#0d6b50;
  --shv-green-dark:#0c4f3d;
  --shv-gold:#c6a34a;
  --shv-surface:#ffffff;
  --shv-page:#f3f6f8;
  --shv-soft:#f7f9fb;
  --shv-border:#e2e7ec;
  --shv-text:#1c2733;
  --shv-muted:#6d7885;
  --shv-shadow:0 8px 28px rgba(21,35,49,.06);
  --shv-shadow-hover:0 14px 34px rgba(21,35,49,.10);
  --shv-radius:16px;
}
body:not(.login-page):not(.student-app-body):not(.prepaid-app-body){background:var(--shv-page);color:var(--shv-text)}
.app{background:var(--shv-page)}
.sidebar{
  width:260px;
  background:linear-gradient(180deg,#123f34 0%,#164f40 58%,#113c32 100%);
  border-right:1px solid rgba(255,255,255,.08);
  box-shadow:8px 0 28px rgba(18,42,36,.08);
  scrollbar-width:thin;
  scrollbar-color:rgba(255,255,255,.18) transparent;
}
.brand{padding:5px 9px 20px;margin-bottom:12px}.brand img{width:48px;height:48px;border-radius:11px;box-shadow:0 4px 16px rgba(0,0,0,.14)}.brand strong{font-size:15px}.brand span{font-size:10px;line-height:1.35}
nav>a, .nav-sub a{transition:background .16s ease,color .16s ease,transform .16s ease}
nav>a:hover,.nav-sub a:hover{transform:translateX(2px)}
nav a.active{background:linear-gradient(90deg,rgba(33,124,94,.95),rgba(22,99,76,.9));box-shadow:inset 3px 0 0 var(--shv-gold),0 4px 12px rgba(0,0,0,.08)}
.nav-group summary{color:#b7c9c2}.nav-group[open]>summary{color:#fff}
.content{padding:30px 32px 42px;background:var(--shv-page);min-height:100vh}
.content>header{padding:0 2px;margin-bottom:22px}.content>header h1{letter-spacing:-.7px;color:#1d2a33}.content>header .muted{font-size:13px;line-height:1.5}
.user-chip{border:1px solid var(--shv-border);box-shadow:0 4px 14px rgba(33,45,57,.04);border-radius:12px;color:#293645;background:rgba(255,255,255,.94)}
.card,.dash-panel,.meal-setting-card,.security-tabs,.modal-card{
  border-color:var(--shv-border);
  box-shadow:var(--shv-shadow);
}
.card{border-radius:var(--shv-radius)}
.card:hover{box-shadow:var(--shv-shadow-hover)}
.card,.dash-panel{transition:box-shadow .18s ease,border-color .18s ease}
.toolbar,.card-head,.section-head{gap:14px}
.toolbar h2,.card-head h2,.section-head h2{letter-spacing:-.2px}
button,.btn,.primary,.secondary,.small-btn,.button-link,.settings-tab,.security-tab,.account-type-tab{transition:transform .14s ease,box-shadow .14s ease,background .14s ease,border-color .14s ease}
button:not(:disabled):active,.btn:not(:disabled):active,.small-btn:not(:disabled):active{transform:translateY(1px)}
.primary,.btn:not(.secondary),.toolbar button:not(.secondary){box-shadow:0 5px 12px rgba(13,107,80,.12)}
input,select,textarea{accent-color:var(--shv-green)}
.filters input,.filters select,.form-grid input,.form-grid select,.modal input,.modal select,.modal textarea,.report-controls select,.report-controls input,.toolbar-actions input{
  min-height:42px;border-color:#dbe2e7;background:#fff;box-shadow:inset 0 1px 1px rgba(20,30,40,.015)
}
.filters input:focus,.filters select:focus,.form-grid input:focus,.form-grid select:focus,.modal input:focus,.modal select:focus,.modal textarea:focus,.report-controls select:focus,.report-controls input:focus,.toolbar-actions input:focus{
  outline:none;border-color:#7eb49f;box-shadow:0 0 0 3px rgba(13,107,80,.08)
}
.table-wrap{border-radius:12px}.table-wrap table{background:#fff}.table-wrap th{background:#f6f8fa;color:#64717e;position:sticky;top:0;z-index:1}.table-wrap tbody tr{transition:background .14s ease}.table-wrap tbody tr:hover{background:#f8fbfa}
.status,.status-pill,.badge{letter-spacing:.2px}
.modal{backdrop-filter:blur(3px)}.modal-card,.modal-box{border:1px solid rgba(255,255,255,.75);box-shadow:0 30px 80px rgba(14,28,25,.24)}
.settings-section-nav{border-bottom:1px solid rgba(226,231,236,.75)}
.settings-tab.active,.security-tab.active{box-shadow:0 5px 15px rgba(13,92,69,.14)}
.center-notice{backdrop-filter:blur(4px)}

/* Mobile admin drawer */
.mobile-nav-toggle{display:none;position:fixed;left:14px;top:14px;z-index:1003;width:42px;height:42px;border:1px solid rgba(255,255,255,.22);border-radius:12px;background:#144c3d;color:#fff;box-shadow:0 8px 24px rgba(15,42,34,.22);font-size:0;cursor:pointer}
.mobile-nav-toggle span,.mobile-nav-toggle:before,.mobile-nav-toggle:after{content:"";display:block;width:18px;height:2px;margin:4px auto;background:#fff;border-radius:2px;transition:transform .2s ease,opacity .2s ease}
.mobile-nav-toggle.open span{opacity:0}.mobile-nav-toggle.open:before{transform:translateY(6px) rotate(45deg)}.mobile-nav-toggle.open:after{transform:translateY(-6px) rotate(-45deg)}
.mobile-nav-backdrop{display:none;position:fixed;inset:0;z-index:1000;background:rgba(12,24,21,.48);backdrop-filter:blur(2px)}
body.mobile-nav-open{overflow:hidden}

/* Tablet */
@media(max-width:1100px){
  .content{padding:24px 24px 36px}
  .toolbar{align-items:flex-start;flex-wrap:wrap}.toolbar-actions{width:100%;justify-content:flex-start}
  .cards{grid-template-columns:repeat(2,minmax(0,1fr))}
}

/* True mobile/tablet drawer replaces the old 76px icon-only rail. */
@media(max-width:900px){
  .mobile-nav-toggle{display:block}
  .mobile-nav-backdrop.show{display:block}
  .sidebar{width:min(286px,86vw)!important;transform:translateX(-105%);transition:transform .22s ease;z-index:1002;padding:18px 14px 24px}
  .sidebar.mobile-open{transform:translateX(0)}
  .brand div,nav a{font-size:inherit!important}.brand img{width:46px}.nav-group summary{font-size:10px!important}.nav-group summary:before{content:none!important}.nav-sub a{padding-left:22px}
  .content,.content.system-settings-page{margin-left:0!important;width:100%!important;max-width:none!important;padding:72px 18px 30px!important}
  .content>header{align-items:flex-start;gap:14px;flex-wrap:wrap}.content>header h1{font-size:27px}.user-chip{margin-left:auto}
  .grid,.role-layout{grid-template-columns:1fr}
  .filters{flex-wrap:wrap}.filters input{min-width:220px}.filters select{min-width:160px}
  .toolbar-actions{overflow-x:auto;padding-bottom:2px}
  .security-tabs{position:sticky;top:0;z-index:20;margin-left:-2px;margin-right:-2px}
}

@media(max-width:640px){
  .content,.content.system-settings-page{padding:68px 12px 24px!important}
  .content>header{margin-bottom:16px}.content>header h1{font-size:24px}.eyebrow{font-size:10px}.user-chip{font-size:9px;padding:8px 10px}
  .card{padding:15px;border-radius:13px}.cards{grid-template-columns:1fr;gap:10px}.grid{gap:12px}
  .toolbar{margin-bottom:14px}.toolbar-actions{gap:7px}.toolbar-actions button,.toolbar-actions .btn{white-space:nowrap}
  .filters{display:grid;grid-template-columns:1fr;gap:8px}.filters input,.filters select{width:100%;min-width:0;max-width:none}
  .table-wrap{margin-left:-3px;margin-right:-3px}.table-wrap table{font-size:11px}.table-wrap th,.table-wrap td{padding:10px 8px}
  .form-grid,.settings-form-grid,.meal-settings-grid{grid-template-columns:1fr}.span-2{grid-column:auto}.two{grid-template-columns:1fr}
  .actions,.modal-actions{justify-content:stretch}.actions button,.modal-actions button{flex:1}
  .modal{padding:10px}.modal-card,.modal-box{border-radius:14px;padding:16px;max-height:94vh}
  .report-controls{display:grid;grid-template-columns:1fr 1fr}.report-controls>*{width:100%;min-width:0}.report-controls input{grid-column:span 2}
  .security-tabs{gap:6px;padding:6px}.security-tab{min-width:132px;padding:10px 12px;font-size:12px}.account-type-tabs{overflow-x:auto}.account-type-tab{white-space:nowrap}
  .account-toolbar{grid-template-columns:1fr}.overview-links{grid-template-columns:1fr}.login-policy-card{grid-template-columns:1fr}
  .settings-section-nav{overflow-x:auto;flex-wrap:nowrap}.settings-tab{white-space:nowrap}
}

@media(max-width:420px){
  .content,.content.system-settings-page{padding-left:10px!important;padding-right:10px!important}
  .mobile-nav-toggle{left:10px;top:10px;width:40px;height:40px}
  .report-controls{grid-template-columns:1fr}.report-controls input{grid-column:auto}
  .toolbar-actions{display:grid;grid-template-columns:1fr 1fr;width:100%}.toolbar-actions>*{min-width:0;width:100%}
  .user-chip{max-width:52vw;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
}

/* Improve print output despite mobile drawer elements. */
@media print{.mobile-nav-toggle,.mobile-nav-backdrop{display:none!important}}

/* =========================================================
   v36.2 Luxury Corporate Dashboard
   Dashboard-only visual rebuild + global navy/gold shell skin.
   No transaction/business logic changes.
   ========================================================= */
:root{
  --lux-navy:#071b2f;
  --lux-navy-2:#0b2740;
  --lux-gold:#d7a53b;
  --lux-gold-2:#f0c968;
  --lux-cream:#f7f1e8;
  --lux-paper:#fffdfa;
  --lux-ink:#0d2345;
  --lux-muted:#61708a;
  --lux-line:#e7e0d6;
  --lux-shadow:0 10px 30px rgba(24,39,62,.08);
}
body.luxury-dashboard-body{background:#f5f0e8;color:var(--lux-ink)}
body.luxury-dashboard-body .app{background:#f5f0e8}
body.luxury-dashboard-body .sidebar{
  background:
    radial-gradient(circle at 10% 90%,rgba(215,165,59,.16),transparent 28%),
    repeating-linear-gradient(125deg,rgba(215,165,59,.025) 0 1px,transparent 1px 12px),
    linear-gradient(180deg,#06192c 0%,#071d31 58%,#061726 100%);
  width:260px;border-right:1px solid rgba(217,173,75,.2);box-shadow:8px 0 30px rgba(7,27,47,.12)
}
body.luxury-dashboard-body .sidebar nav>a,
body.luxury-dashboard-body .sidebar .nav-sub a{color:#f4f1ea}
body.luxury-dashboard-body .sidebar .nav-group summary{color:#d4dae3}
body.luxury-dashboard-body .sidebar nav a.active{background:linear-gradient(90deg,#f0c968,#c58b22);color:#071b2f;box-shadow:0 8px 24px rgba(198,143,39,.18);font-weight:900}
body.luxury-dashboard-body .sidebar nav a:hover,
body.luxury-dashboard-body .sidebar .nav-sub a:hover{background:rgba(255,255,255,.075);color:#fff;transform:translateX(2px)}
.luxury-brand{padding:18px 12px 20px;text-align:center;border-bottom:1px solid rgba(255,255,255,.09);margin-bottom:12px}
.luxury-brand strong{display:block;font-family:Georgia,'Times New Roman',serif;font-size:58px;line-height:.95;letter-spacing:2px;color:#fff;text-shadow:0 2px 12px rgba(0,0,0,.22)}
.luxury-brand span{display:block;margin-top:10px;font-size:10px;letter-spacing:.55px;font-weight:800;color:#f7f1e7}
.luxury-brand small{display:block;margin-top:6px;font-size:8px;letter-spacing:1.2px;color:var(--lux-gold-2)}
/* Sidebar motto must stay in normal document flow so expanded navigation groups can never overlap it. */
body.luxury-dashboard-body .sidebar{display:flex;flex-direction:column;align-items:stretch}
body.luxury-dashboard-body .sidebar nav{flex:0 0 auto}

.luxury-dashboard-page{margin-left:260px!important;width:calc(100% - 260px)!important;max-width:none!important;padding:0 0 26px!important;background:linear-gradient(180deg,#f7f3ec 0,#f9f6f1 100%);min-height:100vh}
.luxury-topbar{height:74px;display:grid!important;grid-template-columns:320px minmax(260px,520px) 1fr;align-items:center!important;gap:24px!important;padding:10px 28px!important;margin:0!important;background:rgba(255,253,250,.96);border-bottom:1px solid #e8e0d4;position:sticky;top:0;z-index:8;backdrop-filter:blur(10px)}
.luxury-title-block strong{display:block;font-family:Georgia,'Times New Roman',serif;font-size:23px;color:#0b2141}.luxury-title-block span{font-size:11px;color:#5d6c83}
.luxury-search{height:42px;border:1px solid #dcd4c8;border-radius:10px;background:#fff;display:flex;align-items:center;gap:10px;padding:0 14px;box-shadow:0 3px 14px rgba(30,40,60,.03)}
.luxury-search>span{font-size:22px;color:#13294a;transform:rotate(-18deg)}.luxury-search input{border:0!important;outline:0!important;box-shadow:none!important;background:transparent!important;width:100%;height:auto!important;min-height:0!important;font-size:12px;color:#20334f;padding:0!important}
.luxury-profile{justify-self:end;display:flex;align-items:center;gap:12px;min-width:0}.luxury-avatar{width:42px;height:42px;border-radius:50%;display:grid;place-items:center;background:linear-gradient(135deg,#071b2f,#163b60);color:#f1c65c;font-weight:900}.luxury-bell{color:#c32424;font-size:14px}.luxury-profile .user-chip{border:0;box-shadow:none;background:transparent;padding:0;font-family:Georgia,'Times New Roman',serif;color:#142846;font-size:12px;max-width:210px}

.luxury-hero{min-height:176px;margin:0;padding:28px 32px;position:relative;overflow:hidden;display:flex;justify-content:space-between;align-items:flex-start;gap:24px;background:
  radial-gradient(circle at 74% 52%,rgba(201,142,47,.32),transparent 17%),
  radial-gradient(circle at 62% 25%,rgba(255,255,255,.55),transparent 20%),
  linear-gradient(100deg,#fff8ea 0%,#f4e4c8 48%,#8a6339 72%,#091d31 100%);
border-bottom:1px solid rgba(145,110,59,.18)}
.luxury-hero:before{content:'';position:absolute;inset:-30% 45% -40% -10%;background:repeating-radial-gradient(ellipse at center,rgba(192,144,56,.08) 0 1px,transparent 1px 12px);opacity:.55;transform:rotate(-12deg)}
.luxury-hero:after{content:'';position:absolute;right:14%;bottom:-45px;width:260px;height:145px;border-radius:50%;background:radial-gradient(ellipse at 50% 45%,#fff 0 11%,#e9d6b3 12% 25%,#8c5c2c 26% 38%,#2a1c13 39% 62%,transparent 63%);filter:drop-shadow(0 16px 14px rgba(18,20,30,.26));opacity:.82}
.luxury-hero-copy,.luxury-hero-right{position:relative;z-index:2}.luxury-kicker{font-size:9px!important;font-weight:900;letter-spacing:1.3px;color:#9b6c22;margin:0 0 4px}.luxury-hero h1{font-family:Georgia,'Times New Roman',serif;font-size:34px;line-height:1.05;letter-spacing:-.7px;margin:0;color:#0d2345}.luxury-hero h1 em{font-family:system-ui;font-size:25px;font-style:normal}.luxury-hero h2{font-family:Georgia,'Times New Roman',serif;font-size:22px;font-weight:500;margin:4px 0 15px;color:#13294a}.luxury-hero-copy>p:last-child{margin:0;padding-top:12px;border-top:2px solid #c98e2f;width:max-content;max-width:100%;font-family:Georgia,'Times New Roman',serif;color:#142846;font-size:14px}
.luxury-hero-right{display:flex;gap:18px;align-items:flex-start;margin-left:auto}.luxury-date-card{min-width:180px;padding:12px 16px;border:1px solid rgba(224,168,64,.66);border-radius:12px;background:rgba(6,25,43,.88);color:#fff;text-align:right;box-shadow:0 10px 22px rgba(4,17,30,.18)}.luxury-date-card small,.luxury-date-card span{display:block;font-size:10px;color:#ede6da}.luxury-date-card strong{display:block;font-size:20px;color:#fff;margin:2px 0}.luxury-tagline{margin-top:66px;color:#fff;font-family:'Segoe Script','Brush Script MT',cursive;font-size:25px;line-height:1.0;text-align:right;text-shadow:0 2px 8px rgba(0,0,0,.5)}

.luxury-kpi-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;padding:14px 22px 0}.luxury-kpi{min-height:122px;border:1px solid rgba(219,215,210,.95);border-radius:13px;background:#fff;display:flex;align-items:center;gap:16px;padding:17px 20px;box-shadow:var(--lux-shadow);overflow:hidden;position:relative}.luxury-kpi:after{content:'';position:absolute;right:-30px;bottom:-40px;width:100px;height:100px;border-radius:50%;opacity:.32}.luxury-kpi-icon{width:58px;height:58px;flex:none;border-radius:50%;display:grid;place-items:center;font-weight:900;font-size:14px}.luxury-kpi span{display:block;font-family:Georgia,'Times New Roman',serif;font-size:13px;color:#142846}.luxury-kpi strong{display:block;font-size:28px;line-height:1.1;margin:6px 0 5px;color:#0b2141;letter-spacing:-.5px}.luxury-kpi strong em{font-size:14px;color:#6a7789;font-style:normal}.luxury-kpi small{font-size:10px;color:#0b8a45}.luxury-kpi small b{color:inherit}.kpi-blue{background:linear-gradient(120deg,#fff 0,#f1f7ff 100%)}.kpi-blue .luxury-kpi-icon{background:#dcecff;color:#1264c5}.kpi-blue:after{background:#bcd6f7}.kpi-gold{background:linear-gradient(120deg,#fff 0,#fff7ea 100%)}.kpi-gold .luxury-kpi-icon{background:#ffe9c8;color:#c46d0e}.kpi-gold:after{background:#f7d9a6}.kpi-purple{background:linear-gradient(120deg,#fff 0,#f7efff 100%)}.kpi-purple .luxury-kpi-icon{background:#ead8ff;color:#6f27c7}.kpi-purple:after{background:#dfc7f8}.kpi-mint{background:linear-gradient(120deg,#fff 0,#f0fbf6 100%)}.kpi-mint .luxury-kpi-icon{background:#d8f3e6;color:#087a4c}.kpi-mint:after{background:#c6eadb}

.luxury-main-grid{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(390px,.78fr);gap:14px;padding:14px 22px 0}.luxury-card{background:rgba(255,255,255,.96);border:1px solid #e5dfd6;border-radius:13px;box-shadow:var(--lux-shadow);padding:14px 16px}.luxury-card:hover{box-shadow:0 14px 36px rgba(24,39,62,.1)}.luxury-card-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px}.luxury-card-head h2{font-family:Georgia,'Times New Roman',serif;font-size:17px;color:#102848;margin:0}.luxury-card-head a{font-size:10px;text-decoration:none;color:#075fcb;font-weight:800}.luxury-card-head>span{font-size:9px;color:#607087}.luxury-card-head.compact{margin:0 0 8px}.luxury-card-head.compact h2{font-size:14px}
.luxury-meal-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.luxury-meal-tile{border:1px solid #e3e3e1;border-radius:11px;background:#fff;overflow:hidden;position:relative;padding-bottom:10px}.luxury-meal-art{height:58px;display:flex;align-items:flex-end;padding:8px 10px;background:linear-gradient(135deg,#f9e8c6,#d4a95e);position:relative;overflow:hidden}.luxury-meal-art:after{content:'';position:absolute;width:78px;height:78px;border-radius:50%;right:-18px;top:6px;background:radial-gradient(circle at 40% 35%,#fff5d7 0 9%,#dda64f 10% 18%,#7c4f21 19% 31%,#efe1c1 32% 45%,transparent 46%);opacity:.75}.luxury-meal-art span{position:relative;z-index:2;display:grid;place-items:center;width:29px;height:29px;border-radius:7px;background:rgba(255,255,255,.9);font-size:18px;color:#bf6a10}.luxury-meal-tile.snacks .luxury-meal-art{background:linear-gradient(135deg,#f5e8de,#d7b493)}.luxury-meal-tile.dinner .luxury-meal-art{background:linear-gradient(135deg,#e6e5ef,#93a3bf)}.luxury-meal-title{display:flex;align-items:center;gap:6px;padding:8px 10px 0}.luxury-meal-title b{font-family:Georgia,'Times New Roman',serif;font-size:14px;color:#0e2747}.luxury-meal-title i{font-style:normal;font-size:7px;letter-spacing:.6px;color:#fff;background:#078a4f;padding:3px 5px;border-radius:999px}.luxury-meal-tile>small{display:block;padding:1px 10px 7px;font-size:9px;color:#42608a}.luxury-meal-tile>strong{display:block;padding:0 10px;font-size:18px;color:#0d2345}.luxury-meal-tile>strong em{font-size:10px;font-style:normal;font-weight:500}.luxury-meal-meta{margin:7px 10px 0;padding-top:6px;border-top:1px solid #eee9e2;font-size:8px;color:#7a8797}
.luxury-trend{height:185px;position:relative;display:grid;grid-template-columns:repeat(7,1fr);align-items:end;gap:10px;padding:18px 5px 0}.luxury-chart-grid{position:absolute;inset:18px 0 25px;background:repeating-linear-gradient(to bottom,#edf0f4 0 1px,transparent 1px 36px);pointer-events:none}.luxury-trend-day{height:145px;display:grid;grid-template-rows:18px 1fr 20px;justify-items:center;align-items:end;position:relative;z-index:1}.luxury-trend-day>span{font-size:9px;font-weight:900;color:#142846}.luxury-trend-day>div{height:100%;width:min(42px,72%);display:flex;align-items:flex-end}.luxury-trend-day i{display:block;width:100%;min-height:2px;border-radius:6px 6px 2px 2px;background:linear-gradient(180deg,#4f9be8,#2467b7);box-shadow:0 4px 10px rgba(48,112,181,.18)}.luxury-trend-day:nth-of-type(3n) i{background:linear-gradient(180deg,#efbd59,#ce8c1e)}.luxury-trend-day small{font-size:9px;color:#385071}
.luxury-lower-grid{grid-template-columns:minmax(0,1.15fr) minmax(360px,.85fr)}.luxury-finance-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}.luxury-finance-grid>div{padding:10px;border-radius:10px;border:1px solid #ebe6df;background:#fbfaf8}.luxury-finance-grid span,.luxury-finance-grid b{display:block}.luxury-finance-grid span{font-size:9px;color:#69768a}.luxury-finance-grid b{font-size:16px;color:#112947;margin-top:4px}.luxury-finance-grid .luxury-net{background:linear-gradient(135deg,#071b2f,#12385c);border-color:#173d60}.luxury-finance-grid .luxury-net span{color:#d3dbe4}.luxury-finance-grid .luxury-net b{color:#f3c866}
.luxury-system-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}.luxury-system-grid>a,.luxury-system-grid>div{border:1px solid #e6e1da;border-radius:9px;background:#fff;padding:10px;text-decoration:none}.luxury-system-grid b,.luxury-system-grid span{display:block}.luxury-system-grid b{font-size:10px;color:#122b4b}.luxury-system-grid span{font-size:9px;color:#078a4f;margin-top:5px}.luxury-operational{color:#078a4f!important}.luxury-announcement{margin-top:12px;padding-top:11px;border-top:1px solid #eee9e2}.luxury-attention{display:grid;grid-template-columns:1fr 1fr;gap:7px}.luxury-attention a{display:grid;grid-template-columns:28px 1fr auto;align-items:center;gap:8px;padding:8px;border-radius:9px;text-decoration:none;background:#f8f7f5;border:1px solid #ebe7e0}.luxury-attention a b{display:grid;place-items:center;width:26px;height:26px;border-radius:50%;background:#eef3ff;color:#2765bd;font-size:11px}.luxury-attention a span{font-size:9px;color:#2a3b53}.luxury-attention a em{font-style:normal;color:#8a6a33}.luxury-all-clear{padding:10px;border:1px dashed #cdddcf;border-radius:9px;background:#f5fbf6}.luxury-all-clear b,.luxury-all-clear span{display:block}.luxury-all-clear b{font-size:11px;color:#147044}.luxury-all-clear span{font-size:9px;color:#718277;margin-top:2px}
.luxury-health-strip{margin:14px 22px 0;display:grid;grid-template-columns:repeat(4,1fr);padding:10px 12px}.luxury-health-strip>div{padding:5px 13px;border-right:1px solid #ece6dd}.luxury-health-strip>div:last-child{border-right:0}.luxury-health-strip span,.luxury-health-strip strong{display:block}.luxury-health-strip span{font-size:8px;text-transform:uppercase;letter-spacing:.5px;color:#7d8795}.luxury-health-strip strong{font-size:15px;color:#132a49;margin-top:3px}
.luxury-footer{margin-top:14px;padding:14px 28px 2px;border-top:1px solid #e6ded3;display:flex;align-items:flex-end;justify-content:space-between;gap:20px;color:#18304e}.luxury-footer strong,.luxury-footer span{display:block}.luxury-footer strong{font-family:Georgia,'Times New Roman',serif;font-size:11px}.luxury-footer span{font-size:8px;margin-top:3px}.luxury-footer>div:last-child{font-family:Georgia,'Times New Roman',serif;font-size:11px}.luxury-footer b{color:#c8952f}

/* Mobile: standard compact app proportions, not oversized desktop scaling. */
@media(max-width:1100px){.luxury-topbar{grid-template-columns:260px 1fr auto}.luxury-title-block span{display:none}.luxury-kpi-grid{grid-template-columns:repeat(2,1fr)}.luxury-main-grid,.luxury-lower-grid{grid-template-columns:1fr}.luxury-finance-grid{grid-template-columns:repeat(4,1fr)}}
@media(max-width:900px){body.luxury-dashboard-body .sidebar{width:min(276px,84vw)!important}.luxury-dashboard-page{margin-left:0!important;width:100%!important;padding:0 0 20px!important}.luxury-topbar{height:58px;grid-template-columns:1fr auto;padding:8px 12px 8px 64px!important}.luxury-title-block strong{font-size:17px}.luxury-title-block span{display:block;font-size:8px}.luxury-search{display:none}.luxury-profile{gap:7px}.luxury-avatar{width:32px;height:32px;font-size:10px}.luxury-profile .user-chip{font-size:9px;max-width:120px}.luxury-hero{min-height:145px;padding:18px 14px}.luxury-hero h1{font-size:25px}.luxury-hero h2{font-size:16px}.luxury-hero-copy>p:last-child{font-size:10px}.luxury-hero:after{right:2%;width:170px;height:96px;opacity:.55}.luxury-tagline{display:none}.luxury-date-card{min-width:132px;padding:8px 10px}.luxury-date-card strong{font-size:14px}.luxury-kpi-grid,.luxury-main-grid{padding-left:12px;padding-right:12px}.luxury-health-strip{margin-left:12px;margin-right:12px}.luxury-footer{padding-left:14px;padding-right:14px}}
@media(max-width:640px){.luxury-topbar{padding-left:58px!important}.luxury-title-block span{display:none}.luxury-profile .user-chip{display:none}.luxury-bell{display:none}.luxury-hero{display:block;min-height:138px;padding:16px 12px 14px}.luxury-kicker{font-size:7px!important}.luxury-hero h1{font-size:22px}.luxury-hero h2{font-size:14px;margin-bottom:10px}.luxury-hero-copy>p:last-child{font-size:9px;width:72%}.luxury-hero-right{position:absolute;right:10px;top:10px}.luxury-date-card{min-width:112px;padding:7px 9px}.luxury-date-card small,.luxury-date-card span{font-size:7px}.luxury-date-card strong{font-size:12px}.luxury-hero:after{width:135px;height:82px;right:-12px;bottom:-20px;opacity:.46}.luxury-kpi-grid{grid-template-columns:1fr 1fr;gap:8px;padding-top:8px}.luxury-kpi{min-height:86px;padding:10px;gap:9px;border-radius:10px}.luxury-kpi-icon{width:38px;height:38px;font-size:9px}.luxury-kpi span{font-size:9px}.luxury-kpi strong{font-size:19px;margin:3px 0}.luxury-kpi small{font-size:7px}.luxury-card{padding:10px;border-radius:10px}.luxury-card-head{margin-bottom:8px}.luxury-card-head h2{font-size:14px}.luxury-meal-grid{grid-template-columns:1fr 1fr;gap:7px}.luxury-meal-art{height:43px;padding:6px}.luxury-meal-art span{width:24px;height:24px;font-size:13px}.luxury-meal-title{padding:6px 7px 0}.luxury-meal-title b{font-size:11px}.luxury-meal-tile>small{font-size:7px;padding:1px 7px 5px}.luxury-meal-tile>strong{font-size:14px;padding:0 7px}.luxury-meal-meta{display:none}.luxury-trend{height:145px;gap:5px;padding-top:6px}.luxury-trend-day{height:115px}.luxury-trend-day>div{width:min(26px,75%)}.luxury-trend-day>span,.luxury-trend-day small{font-size:7px}.luxury-finance-grid{grid-template-columns:1fr 1fr;gap:6px}.luxury-finance-grid>div{padding:8px}.luxury-finance-grid span{font-size:7px}.luxury-finance-grid b{font-size:12px}.luxury-system-grid{grid-template-columns:1fr 1fr}.luxury-attention{grid-template-columns:1fr}.luxury-health-strip{grid-template-columns:1fr 1fr;padding:7px}.luxury-health-strip>div:nth-child(2){border-right:0}.luxury-health-strip>div{padding:6px 8px}.luxury-health-strip span{font-size:7px}.luxury-health-strip strong{font-size:12px}.luxury-footer{align-items:flex-start;padding-top:10px}.luxury-footer>div:last-child{display:none}}
@media(max-width:390px){.luxury-kpi-grid{grid-template-columns:1fr}.luxury-hero-copy>p:last-child{width:60%}.luxury-meal-grid{grid-template-columns:1fr 1fr}.luxury-title-block strong{font-size:15px}}


/* =========================================================
   v36.4 Luxury Corporate UI — all admin modules
   Visual shell only. Business logic and APIs unchanged.
   ========================================================= */
body.luxury-shell:not(.login-page):not(.student-app-body):not(.prepaid-app-body){
  --shv-green:#0b2740;
  --shv-green2:#071b2f;
  --shv-gold:#d7a53b;
  --shv-page:#f6f1e9;
  --shv-surface:#fffdfa;
  --shv-soft:#fbf7f0;
  --shv-border:#e7dfd3;
  --shv-text:#102540;
  --shv-muted:#687487;
  --shv-shadow:0 10px 30px rgba(31,42,60,.07);
  background:
    radial-gradient(circle at 78% 2%,rgba(215,165,59,.06),transparent 24%),
    linear-gradient(180deg,#f9f5ee 0%,#f3eee6 100%);
  color:var(--shv-text);
}
body.luxury-shell .app{background:transparent}
body.luxury-shell .sidebar{
  width:260px;
  background:
    radial-gradient(circle at 8% 88%,rgba(215,165,59,.14),transparent 26%),
    repeating-linear-gradient(125deg,rgba(215,165,59,.022) 0 1px,transparent 1px 13px),
    linear-gradient(180deg,#06192c 0%,#071d31 58%,#061726 100%);
  border-right:1px solid rgba(215,165,59,.22);
  box-shadow:8px 0 30px rgba(7,27,47,.13);
}
body.luxury-shell .luxury-global-brand,
body.luxury-shell .luxury-brand{
  padding:18px 10px 20px!important;
  text-align:center;
  border-bottom:1px solid rgba(255,255,255,.08);
  margin:0 0 12px!important;
}
body.luxury-shell .luxury-global-brand img,
body.luxury-shell .luxury-brand img{display:none!important}
body.luxury-shell .luxury-global-brand strong,
body.luxury-shell .luxury-brand strong{
  display:block;
  font-family:Georgia,'Times New Roman',serif;
  font-size:52px!important;
  line-height:.98;
  letter-spacing:2px;
  color:#fff;
  text-shadow:0 2px 14px rgba(0,0,0,.22);
}
body.luxury-shell .luxury-global-brand span,
body.luxury-shell .luxury-brand span{
  display:block!important;
  margin-top:8px;
  font-size:9px!important;
  line-height:1.25;
  letter-spacing:.7px;
  color:#f5efe3;
  font-weight:800;
}
body.luxury-shell .luxury-global-brand small,
body.luxury-shell .luxury-brand small{
  display:block;
  margin-top:5px;
  font-size:7px;
  letter-spacing:1.2px;
  color:#e2b75d;
  font-weight:800;
}
body.luxury-shell .luxury-side-motto{display:none!important}
body.luxury-shell .sidebar nav>a,
body.luxury-shell .sidebar .nav-sub a{color:#f5f2ec;border-radius:10px;margin:2px 0}
body.luxury-shell .sidebar .nav-group summary{color:#cfd7e1;letter-spacing:.8px}
body.luxury-shell .sidebar .nav-group[open]>summary{color:#f0c968}
body.luxury-shell .sidebar nav a.active,
body.luxury-shell .sidebar .nav-sub a.active{
  background:linear-gradient(90deg,#f0c968,#c58b22)!important;
  color:#071b2f!important;
  box-shadow:0 8px 22px rgba(198,143,39,.20)!important;
  font-weight:900;
}
body.luxury-shell .sidebar nav a:hover,
body.luxury-shell .sidebar .nav-sub a:hover{background:rgba(255,255,255,.075);color:#fff}
body.luxury-shell .nav-sep{border-color:rgba(215,165,59,.25)}

body.luxury-shell .content:not(.luxury-dashboard-page){
  background:transparent;
  padding:28px 32px 42px;
}
body.luxury-shell .content:not(.luxury-dashboard-page)>header{
  padding:18px 20px;
  border:1px solid rgba(224,214,199,.9);
  border-radius:18px;
  background:linear-gradient(135deg,rgba(255,253,250,.96),rgba(247,239,227,.92));
  box-shadow:0 10px 28px rgba(31,42,60,.06);
  margin-bottom:18px;
}
body.luxury-shell .content:not(.luxury-dashboard-page)>header h1{font-family:Georgia,'Times New Roman',serif;color:#0b2343;letter-spacing:-.4px}
body.luxury-shell .eyebrow{color:#b27b1d;letter-spacing:1.1px;font-weight:900}
body.luxury-shell .muted{color:#6c7787}
body.luxury-shell .user-chip{background:#fffdf9;border-color:#e4dacb;color:#122844}

body.luxury-shell .card,
body.luxury-shell .dash-panel,
body.luxury-shell .meal-setting-card,
body.luxury-shell .security-tabs,
body.luxury-shell .modal-card,
body.luxury-shell .modal-box{
  background:linear-gradient(180deg,#fffefa 0%,#fffdf9 100%);
  border:1px solid #e7dfd3;
  box-shadow:0 10px 30px rgba(31,42,60,.07);
}
body.luxury-shell .card{border-radius:16px}
body.luxury-shell .card:hover{box-shadow:0 14px 36px rgba(31,42,60,.10)}
body.luxury-shell .toolbar{background:linear-gradient(135deg,#fffdf8,#f7f0e6)}
body.luxury-shell .toolbar h2,
body.luxury-shell .card h2,
body.luxury-shell .section-head h2,
body.luxury-shell .card-head h2{color:#10294a}

body.luxury-shell button:not(.secondary):not(.icon-btn),
body.luxury-shell .btn:not(.secondary),
body.luxury-shell .primary,
body.luxury-shell .button-link:not(.secondary){
  background:linear-gradient(135deg,#d9ad50,#b67b18);
  border-color:#bc8423;
  color:#071b2f;
  box-shadow:0 6px 15px rgba(181,123,24,.18);
  font-weight:850;
}
body.luxury-shell button:not(.secondary):not(.icon-btn):hover,
body.luxury-shell .btn:not(.secondary):hover,
body.luxury-shell .primary:hover{filter:brightness(1.03);transform:translateY(-1px)}
body.luxury-shell .secondary,
body.luxury-shell .button-link.secondary{background:#fffdfa;border:1px solid #dccfbf;color:#19324f}
body.luxury-shell .secondary:hover{background:#f8efe2;border-color:#caa65c}

body.luxury-shell input,
body.luxury-shell select,
body.luxury-shell textarea{background:#fffefa;border-color:#ded5c8;color:#1a2d45}
body.luxury-shell input:focus,
body.luxury-shell select:focus,
body.luxury-shell textarea:focus{border-color:#d0a144!important;box-shadow:0 0 0 3px rgba(215,165,59,.12)!important}

body.luxury-shell .table-wrap{border:1px solid #e7dfd3;background:#fffefa}
body.luxury-shell .table-wrap th{background:#f4eee5;color:#556275;border-bottom:1px solid #e5dbcd}
body.luxury-shell .table-wrap tbody tr:hover{background:#fcf6ed}
body.luxury-shell .table-wrap td{border-color:#eee6da}

body.luxury-shell .settings-section-nav,
body.luxury-shell .security-tabs{background:#fffdfa;border-color:#e5dbcd}
body.luxury-shell .settings-tab,
body.luxury-shell .security-tab,
body.luxury-shell .account-type-tab{background:#f5efe6;border-color:#e4d8c8;color:#354762}
body.luxury-shell .settings-tab.active,
body.luxury-shell .security-tab.active,
body.luxury-shell .account-type-tab.active{
  background:linear-gradient(135deg,#f0c968,#c88d27)!important;
  color:#071b2f!important;
  border-color:#c58b22!important;
  box-shadow:0 6px 16px rgba(198,139,34,.17)!important;
}
body.luxury-shell .status,
body.luxury-shell .status-pill,
body.luxury-shell .badge{border-radius:999px}
body.luxury-shell .info-box,
body.luxury-shell .security-help{background:#f8f1e6;border-color:#e5d4b6;color:#596579}
body.luxury-shell .modal{background:rgba(5,20,35,.48);backdrop-filter:blur(5px)}
body.luxury-shell .modal-card,
body.luxury-shell .modal-box{border-color:#eadfce}
body.luxury-shell .mobile-nav-toggle{background:#081d31;border-color:rgba(215,165,59,.5);box-shadow:0 8px 24px rgba(5,20,35,.25)}
body.luxury-shell .mobile-nav-backdrop{background:rgba(4,15,28,.56)}

/* Compact, standard phone scale across every admin module. */
@media(max-width:900px){
  body.luxury-shell .sidebar{width:min(268px,84vw)!important}
  body.luxury-shell .luxury-global-brand strong,body.luxury-shell .luxury-brand strong{font-size:42px!important}
  body.luxury-shell .content:not(.luxury-dashboard-page){padding:68px 14px 26px!important}
}
@media(max-width:640px){
  body.luxury-shell .content:not(.luxury-dashboard-page){padding:62px 10px 20px!important}
  body.luxury-shell .content:not(.luxury-dashboard-page)>header{padding:13px 14px;border-radius:13px;margin-bottom:12px}
  body.luxury-shell .content:not(.luxury-dashboard-page)>header h1{font-size:21px!important}
  body.luxury-shell .content:not(.luxury-dashboard-page)>header .muted{font-size:10px!important}
  body.luxury-shell .eyebrow{font-size:8px!important}
  body.luxury-shell .card{padding:12px!important;border-radius:12px}
  body.luxury-shell .toolbar{padding:12px!important}
  body.luxury-shell .toolbar h2,body.luxury-shell .card h2{font-size:15px}
  body.luxury-shell button,body.luxury-shell .btn,body.luxury-shell .button-link{min-height:36px;padding:8px 10px;font-size:11px}
  body.luxury-shell input,body.luxury-shell select,body.luxury-shell textarea{font-size:12px;min-height:38px!important}
  body.luxury-shell .table-wrap table{font-size:10px}
  body.luxury-shell .table-wrap th,body.luxury-shell .table-wrap td{padding:8px 7px}
  body.luxury-shell .settings-tab,body.luxury-shell .security-tab,body.luxury-shell .account-type-tab{font-size:10px;padding:8px 10px;min-height:34px}
  body.luxury-shell .user-chip{font-size:8px;padding:7px 9px}
}

/* === v36.4.3 Modern interactive controls + lighter highlights === */
body.luxury-shell input:not([type="checkbox"]):not([type="radio"]),
body.luxury-shell select,
body.luxury-shell textarea{
  min-height:44px;
  padding:10px 13px;
  border:1px solid #d8cfc2;
  border-radius:12px;
  background:linear-gradient(180deg,#fff 0%,#fffdf9 100%);
  color:#122844;
  box-shadow:0 1px 2px rgba(23,37,55,.035),inset 0 1px 0 rgba(255,255,255,.9);
  transition:border-color .16s ease,box-shadow .16s ease,background .16s ease;
}
body.luxury-shell input:not([type="checkbox"]):not([type="radio"]):hover,
body.luxury-shell select:hover,
body.luxury-shell textarea:hover{border-color:#c7b8a4;background:#fff}
body.luxury-shell input[type="date"]{color-scheme:light;min-width:150px;font-variant-numeric:tabular-nums}
body.luxury-shell input[type="search"]{-webkit-appearance:none;padding-left:14px}
body.luxury-shell input::placeholder{color:#98a0ab;opacity:1}
body.luxury-shell button:not(.icon-btn),body.luxury-shell .btn,body.luxury-shell .button-link{
  border-radius:11px;
  letter-spacing:.01em;
  transition:transform .14s ease,box-shadow .14s ease,filter .14s ease,border-color .14s ease;
}
body.luxury-shell button:not(.secondary):not(.icon-btn),
body.luxury-shell .btn:not(.secondary),
body.luxury-shell .primary,
body.luxury-shell .button-link:not(.secondary){
  background:linear-gradient(180deg,#f4d78e 0%,#e8bd5c 100%);
  border:1px solid #d3a442;
  color:#0b2442;
  box-shadow:0 5px 14px rgba(157,111,28,.14),inset 0 1px 0 rgba(255,255,255,.45);
}
body.luxury-shell button:not(.secondary):not(.icon-btn):hover,
body.luxury-shell .btn:not(.secondary):hover,
body.luxury-shell .primary:hover{background:linear-gradient(180deg,#f7dfa4 0%,#ebc56b 100%);box-shadow:0 8px 18px rgba(157,111,28,.19);transform:translateY(-1px)}
body.luxury-shell .secondary,body.luxury-shell .button-link.secondary{
  background:#fff;
  border:1px solid #d8cfc2;
  color:#17324f;
  box-shadow:0 2px 7px rgba(23,50,79,.055);
}
body.luxury-shell .secondary:hover{background:#fbf7f0;border-color:#c5ad82;box-shadow:0 5px 12px rgba(23,50,79,.075)}
body.luxury-shell .overview-link{
  background:linear-gradient(180deg,#fff7e4 0%,#f8e6b8 100%)!important;
  border:1px solid #ead19b!important;
  color:#10294a!important;
  box-shadow:0 5px 15px rgba(128,91,27,.08);
}
body.luxury-shell .overview-link:hover{background:linear-gradient(180deg,#fffaf0 0%,#f9ebc8 100%)!important;border-color:#d8b66f!important;transform:translateY(-1px);box-shadow:0 8px 20px rgba(128,91,27,.12)}
body.luxury-shell .overview-link b{color:#10294a!important;font-weight:900}
body.luxury-shell .overview-link span{color:#475b73!important;font-weight:650}
body.luxury-shell .security-tab.active,body.luxury-shell .settings-tab.active,body.luxury-shell .account-type-tab.active{
  background:linear-gradient(180deg,#f7dfa4 0%,#ebc56b 100%)!important;
  color:#0b2442!important;
}

/* === Advanced Counter Scanner === */
body.scanner-modern-page{margin:0;background:radial-gradient(circle at 15% 0%,#fff9eb 0,transparent 32%),linear-gradient(135deg,#eef2f5 0%,#f7f4ee 100%);color:#132238;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;min-height:100vh}
.scanner-shell{max-width:1380px;margin:0 auto;padding:34px}
.scanner-card{background:rgba(255,255,255,.92);border:1px solid #e5ddd1;border-radius:24px;box-shadow:0 24px 70px rgba(20,35,55,.10);padding:30px;backdrop-filter:blur(10px)}
.scanner-head{display:flex;justify-content:space-between;align-items:flex-start;gap:24px;margin-bottom:24px}
.scanner-head .eyebrow{margin:0 0 8px;color:#b47b19;font-size:12px;letter-spacing:.13em;font-weight:900}
.scanner-head h1{font-size:40px;line-height:1.04;letter-spacing:-.035em;margin:0;color:#12233a}
.scanner-subtitle{margin:9px 0 0;color:#68758a;font-size:15px}
.scanner-live-pill{display:flex;align-items:center;gap:8px;white-space:nowrap;border:1px solid #d8dee7;background:#f7f9fb;color:#64748b;padding:10px 13px;border-radius:999px;font-weight:800;font-size:12px}
.scanner-live-dot{width:9px;height:9px;border-radius:50%;background:#94a3b8;box-shadow:0 0 0 4px rgba(148,163,184,.13)}
.scanner-live-pill.live{background:#ecfdf3;border-color:#b7e5c8;color:#087647}.scanner-live-pill.live .scanner-live-dot{background:#12a05c;box-shadow:0 0 0 4px rgba(18,160,92,.13)}
.scanner-live-pill.starting{background:#fff8e7;border-color:#edd59b;color:#8a6117}.scanner-live-pill.starting .scanner-live-dot{background:#d6a42b}
.scanner-live-pill.error{background:#fff1f0;border-color:#efc1bc;color:#a63a33}.scanner-live-pill.error .scanner-live-dot{background:#d84c43}
.scanner-control-grid{display:grid;grid-template-columns:minmax(180px,.65fr) minmax(220px,1fr) auto;gap:14px;align-items:end;padding:17px;border:1px solid #ebe4da;border-radius:17px;background:#fbfaf7;margin-bottom:20px}
.scanner-field{display:flex;flex-direction:column;gap:7px;font-size:12px;font-weight:850;color:#34455d}
.scanner-field select,.scanner-manual input{min-height:44px;border:1px solid #d7dce3;background:#fff;border-radius:11px;padding:9px 12px;font:inherit;color:#172a43;outline:none;box-shadow:0 1px 2px rgba(16,32,50,.03)}
.scanner-field select:focus,.scanner-manual input:focus{border-color:#d5a74e;box-shadow:0 0 0 3px rgba(213,167,78,.16)}
.scanner-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.scanner-actions button,.scanner-manual button{min-height:44px;border-radius:11px;padding:10px 14px;border:1px solid #d2d9e2;background:#fff;color:#1a3553;font-weight:850;cursor:pointer;box-shadow:0 2px 7px rgba(25,46,69,.06)}
.scanner-actions .scanner-primary{background:linear-gradient(180deg,#f4d78e,#e8bd5c);border-color:#d3a442;color:#0b2442}
.scanner-actions button:hover,.scanner-manual button:hover{transform:translateY(-1px);box-shadow:0 6px 14px rgba(25,46,69,.10)}
.scanner-actions button:disabled{opacity:.45;cursor:not-allowed;transform:none}
.scanner-actions .sound-on{background:#eefaf4;border-color:#b7dbc7;color:#0a6c48}
.scanner-workspace{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(340px,.75fr);gap:20px}
.scanner-camera-panel,.scanner-side-panel{border:1px solid #e6e9ee;border-radius:19px;background:#fff;overflow:hidden}
.scanner-frame{position:relative;min-height:520px;background:linear-gradient(145deg,#0d1723,#18283a);display:grid;place-items:center;overflow:hidden}
.scanner-reader{width:100%;height:100%;min-height:520px}.scanner-reader video{object-fit:cover!important;border-radius:0!important}
.scanner-reader>div{border:0!important}.scanner-reader img{display:none!important}
.scanner-reticle{pointer-events:none;position:absolute;inset:50% auto auto 50%;width:min(58%,340px);aspect-ratio:1;transform:translate(-50%,-50%);z-index:5}
.scanner-reticle i{position:absolute;width:46px;height:46px;border-color:#f3cf75;border-style:solid;filter:drop-shadow(0 0 6px rgba(243,207,117,.35))}
.scanner-reticle i:nth-child(1){left:0;top:0;border-width:4px 0 0 4px;border-radius:12px 0 0 0}.scanner-reticle i:nth-child(2){right:0;top:0;border-width:4px 4px 0 0;border-radius:0 12px 0 0}.scanner-reticle i:nth-child(3){left:0;bottom:0;border-width:0 0 4px 4px;border-radius:0 0 0 12px}.scanner-reticle i:nth-child(4){right:0;bottom:0;border-width:0 4px 4px 0;border-radius:0 0 12px 0}
.scanner-reticle span{position:absolute;left:8%;right:8%;height:2px;top:12%;background:linear-gradient(90deg,transparent,#f5d989,transparent);box-shadow:0 0 10px rgba(245,217,137,.7);animation:scannerSweep 2.25s ease-in-out infinite}
@keyframes scannerSweep{0%,100%{top:12%;opacity:.55}50%{top:88%;opacity:1}}
.scanner-placeholder{position:absolute;z-index:4;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;color:#dce6f0;background:radial-gradient(circle at 50% 45%,rgba(47,74,103,.6),rgba(13,23,35,.92));padding:30px}
.scanner-placeholder-icon{width:70px;height:70px;border:1px solid rgba(243,207,117,.55);border-radius:20px;display:grid;place-items:center;font-size:38px;color:#f3cf75;margin-bottom:15px}.scanner-placeholder strong{font-size:21px}.scanner-placeholder span{margin-top:7px;font-size:13px;color:#aebdcb;max-width:320px}
.scanner-hints{display:flex;gap:9px;flex-wrap:wrap;padding:13px;background:#fbfcfd;border-top:1px solid #e9edf1}.scanner-hints span{font-size:11px;font-weight:800;color:#607086;background:#f0f4f7;border:1px solid #e3e8ed;padding:6px 9px;border-radius:999px}
.scanner-side-panel{padding:18px;display:flex;flex-direction:column;gap:15px}
.scanner-side-head{display:flex;justify-content:space-between;align-items:center;color:#4d5e73;font-size:12px;font-weight:850;text-transform:uppercase;letter-spacing:.08em}.scanner-side-head b{font-size:10px;background:#eef2f6;color:#6c7b8d;border-radius:999px;padding:6px 9px}.scanner-side-head .mini-approved{background:#e9f8ef;color:#087647}.scanner-side-head .mini-declined{background:#fff0ef;color:#a83831}
.scanner-side-panel .scan-result{display:flex!important;min-height:310px;border-radius:16px;padding:24px;align-items:center;justify-content:center;text-align:center;flex-direction:column;border:1px solid #e5e9ee;background:#f8fafc;color:#293d56}
.scanner-side-panel .scanner-empty-result .scan-empty-icon{width:62px;height:62px;border-radius:18px;display:grid;place-items:center;background:#eef2f6;color:#99a7b7;font-size:30px;margin-bottom:13px}.scanner-side-panel .scanner-empty-result h2{margin:0 0 8px;font-size:20px}.scanner-side-panel .scanner-empty-result p{margin:0;color:#7a8797;font-size:13px;line-height:1.6}
.scanner-side-panel .scan-approved{background:linear-gradient(180deg,#effbf4,#e8f7ef);border-color:#b8e3c9}.scanner-side-panel .scan-rejected{background:linear-gradient(180deg,#fff4f2,#ffedeb);border-color:#efc2bc}.scanner-side-panel .scan-icon{width:66px;height:66px;border-radius:20px;display:grid;place-items:center;font-size:34px;font-weight:900;margin-bottom:11px}.scanner-side-panel .scan-approved .scan-icon{background:#0b8f5a;color:#fff;box-shadow:0 9px 22px rgba(11,143,90,.20)}.scanner-side-panel .scan-rejected .scan-icon{background:#c9453c;color:#fff;box-shadow:0 9px 22px rgba(201,69,60,.18)}
.scan-result-label{font-size:10px;letter-spacing:.13em;font-weight:900;color:#63758a}.scan-result h2{margin:6px 0 4px;color:#132b47}.scan-meal-line,.scan-reason{margin:4px 0;color:#5d6f83;font-size:13px}.scan-finance{margin:10px 0;padding:10px 12px;border-radius:11px;background:rgba(255,255,255,.68);display:flex;flex-direction:column;gap:3px;font-size:12px}.scan-finance b{color:#183653}
.scanner-manual{border-top:1px solid #e8ecf0;padding-top:14px}.scanner-manual label{font-size:12px;font-weight:850;color:#41556d}.scanner-manual-row{display:grid;grid-template-columns:1fr auto;gap:8px;margin-top:7px}.scanner-manual small{display:block;margin-top:7px;color:#8995a3;line-height:1.45;font-size:10px}.scanner-footnote{margin-top:14px;border:1px solid #e4e8ed;background:#f8fafb;border-radius:12px;padding:10px 13px;color:#64748b;font-size:12px}
@media(max-width:980px){.scanner-shell{padding:18px}.scanner-workspace{grid-template-columns:1fr}.scanner-control-grid{grid-template-columns:1fr 1fr}.scanner-actions{grid-column:1/-1}.scanner-frame,.scanner-reader{min-height:430px}}
@media(max-width:620px){.scanner-shell{padding:0}.scanner-card{border-radius:0;border:0;padding:15px;min-height:100vh}.scanner-head{display:block}.scanner-head h1{font-size:30px}.scanner-live-pill{display:inline-flex;margin-top:14px}.scanner-control-grid{grid-template-columns:1fr;padding:12px}.scanner-actions{grid-column:auto}.scanner-actions button{flex:1}.scanner-frame,.scanner-reader{min-height:390px}.scanner-reticle{width:68%}.scanner-side-panel{padding:12px}.scanner-manual-row{grid-template-columns:1fr}.scanner-manual button{width:100%}}

/* =========================================================
   v36.4.4 — SHV OneServe typography + spacing consistency
   Visual-only normalization. No business logic, API, QR,
   subscription, prepaid, receipt, or database behavior changed.
   Existing font families are intentionally preserved.
   ========================================================= */
:root{
  --ui-page-title:30px;
  --ui-section-title:22px;
  --ui-card-title:18px;
  --ui-body:14px;
  --ui-control:14px;
  --ui-table:13px;
  --ui-table-head:12px;
  --ui-nav:13px;
  --ui-helper:12px;
  --ui-badge:11px;
  --ui-kpi:28px;
  --ui-line-body:1.5;
  --ui-line-tight:1.25;
  --ui-control-height:44px;
  --ui-gap-xs:6px;
  --ui-gap-sm:10px;
  --ui-gap-md:14px;
  --ui-gap-lg:18px;
  --ui-gap-xl:24px;
}

/* Admin shell — one consistent type hierarchy across modules. */
body.luxury-shell{font-size:var(--ui-body);line-height:var(--ui-line-body)}
body.luxury-shell .content:not(.luxury-dashboard-page)>header h1,
body.luxury-shell .topbar h1,
body.luxury-shell .page>header h1,
body.luxury-shell .dashboard-header h1,
body.luxury-shell .luxury-hero h1{
  font-size:var(--ui-page-title)!important;
  line-height:1.15;
  font-weight:800;
}
body.luxury-shell .toolbar h2,
body.luxury-shell .section-head h2,
body.luxury-shell .page-section-title,
body.luxury-shell .report-section-title{
  font-size:var(--ui-section-title)!important;
  line-height:var(--ui-line-tight);
  font-weight:800;
}
body.luxury-shell .card h2,
body.luxury-shell .card-head h2,
body.luxury-shell .modal-head h2,
body.luxury-shell .modal-card h2,
body.luxury-shell .modal-box h2,
body.luxury-shell .dash-panel h2{
  font-size:var(--ui-card-title)!important;
  line-height:1.3;
  font-weight:700;
}
body.luxury-shell p,
body.luxury-shell label,
body.luxury-shell .card,
body.luxury-shell .content,
body.luxury-shell .meal,
body.luxury-shell .checklist li{
  font-size:var(--ui-body);
}
body.luxury-shell .muted,
body.luxury-shell .small,
body.luxury-shell small,
body.luxury-shell .help-text,
body.luxury-shell .form-help,
body.luxury-shell .security-help,
body.luxury-shell .info-box{
  font-size:var(--ui-helper)!important;
  line-height:1.5;
}
body.luxury-shell .eyebrow{
  font-size:var(--ui-helper)!important;
  line-height:1.2;
}
body.luxury-shell .sidebar nav>a,
body.luxury-shell .sidebar .nav-sub a,
body.luxury-shell .sidebar .nav-group summary{
  font-size:var(--ui-nav)!important;
  line-height:1.25;
}
body.luxury-shell .status,
body.luxury-shell .status-pill,
body.luxury-shell .badge,
body.luxury-shell .movement-type,
body.luxury-shell .inventory-alert{
  font-size:var(--ui-badge)!important;
  line-height:1.2;
}
body.luxury-shell button:not(.icon-btn),
body.luxury-shell .btn,
body.luxury-shell .button-link,
body.luxury-shell .small-btn,
body.luxury-shell .settings-tab,
body.luxury-shell .security-tab,
body.luxury-shell .account-type-tab,
body.luxury-shell .report-type-tabs button{
  font-size:var(--ui-control)!important;
  line-height:1.2;
}
body.luxury-shell input:not([type="checkbox"]):not([type="radio"]),
body.luxury-shell select,
body.luxury-shell textarea{
  font-size:var(--ui-control)!important;
  line-height:1.35;
}
body.luxury-shell .table-wrap table{
  font-size:var(--ui-table)!important;
  line-height:1.4;
}
body.luxury-shell .table-wrap th{
  font-size:var(--ui-table-head)!important;
  line-height:1.3;
  font-weight:700;
  letter-spacing:.04em;
}
body.luxury-shell .table-wrap td{font-size:var(--ui-table)!important}
body.luxury-shell .stat b,
body.luxury-shell .kpi-value,
body.luxury-shell .dashboard-kpi b,
body.luxury-shell .expense-summary b{
  font-size:var(--ui-kpi)!important;
  line-height:1.1;
  font-weight:800;
}

/* Admin shell — consistent spacing and control dimensions. */
body.luxury-shell .content:not(.luxury-dashboard-page){padding:28px 32px 42px}
body.luxury-shell .content:not(.luxury-dashboard-page)>header,
body.luxury-shell .topbar{gap:var(--ui-gap-lg);margin-bottom:var(--ui-gap-lg)}
body.luxury-shell .card{padding:20px}
body.luxury-shell .card-head,
body.luxury-shell .toolbar{gap:var(--ui-gap-md);margin-bottom:var(--ui-gap-md)}
body.luxury-shell .actions,
body.luxury-shell .toolbar-actions,
body.luxury-shell .filters,
body.luxury-shell .report-controls,
body.luxury-shell .pos-toolbar,
body.luxury-shell .inventory-history-filters{
  gap:var(--ui-gap-sm);
}
body.luxury-shell .form-grid,
body.luxury-shell .two{gap:var(--ui-gap-md)}
body.luxury-shell label{gap:var(--ui-gap-xs)}
body.luxury-shell input:not([type="checkbox"]):not([type="radio"]),
body.luxury-shell select,
body.luxury-shell textarea,
body.luxury-shell button:not(.icon-btn),
body.luxury-shell .btn,
body.luxury-shell .button-link{
  min-height:var(--ui-control-height);
}
body.luxury-shell button:not(.icon-btn),
body.luxury-shell .btn,
body.luxury-shell .button-link{padding:10px 14px}
body.luxury-shell .table-wrap th,
body.luxury-shell .table-wrap td{padding:11px 12px}
body.luxury-shell .settings-section-nav,
body.luxury-shell .security-tabs,
body.luxury-shell .report-type-tabs{gap:8px}

/* Keep lighter highlight treatment readable and consistent. */
body.luxury-shell .overview-link,
body.luxury-shell .settings-tab.active,
body.luxury-shell .security-tab.active,
body.luxury-shell .account-type-tab.active,
body.luxury-shell .report-type-tabs button.active{
  color:#0b2442!important;
}
body.luxury-shell .overview-link b{font-size:var(--ui-card-title)!important}
body.luxury-shell .overview-link span{font-size:var(--ui-helper)!important;line-height:1.45}

/* Advanced Counter Scanner — same application scale, no QR logic changes. */
body.scanner-modern-page{font-size:var(--ui-body);line-height:var(--ui-line-body)}
.scanner-shell{padding:28px}
.scanner-card{padding:24px}
.scanner-head{gap:var(--ui-gap-lg);margin-bottom:var(--ui-gap-lg)}
.scanner-head .eyebrow{font-size:var(--ui-helper)}
.scanner-head h1{font-size:var(--ui-page-title);line-height:1.15;font-weight:800}
.scanner-subtitle{font-size:var(--ui-body);line-height:1.5}
.scanner-live-pill{font-size:var(--ui-helper)}
.scanner-control-grid{gap:var(--ui-gap-md);padding:16px;margin-bottom:var(--ui-gap-lg)}
.scanner-field,.scanner-manual label{font-size:var(--ui-helper)}
.scanner-field select,.scanner-manual input,.scanner-actions button,.scanner-manual button{
  min-height:var(--ui-control-height);
  font-size:var(--ui-control);
}
.scanner-actions{gap:var(--ui-gap-sm)}
.scanner-workspace{gap:var(--ui-gap-lg)}
.scanner-side-panel{padding:18px;gap:var(--ui-gap-md)}
.scanner-side-head{font-size:var(--ui-helper)}
.scanner-side-head b,.scan-result-label,.scanner-manual small{font-size:var(--ui-badge)}
.scanner-placeholder strong,.scanner-side-panel .scanner-empty-result h2,.scan-result h2{font-size:var(--ui-card-title)}
.scanner-placeholder span,.scanner-side-panel .scanner-empty-result p,.scan-meal-line,.scan-reason{font-size:var(--ui-table)}
.scan-finance,.scanner-footnote{font-size:var(--ui-helper)}
.scanner-hints{gap:8px}.scanner-hints span{font-size:var(--ui-badge)}

/* Student / Prepaid self-service portals — preserve design, align repeated type. */
body.student-app-body{font-size:var(--ui-body);line-height:var(--ui-line-body)}
body.student-app-body .student-page-heading h1,
body.student-app-body .student-hello h1{font-size:var(--ui-page-title)!important;line-height:1.15}
body.student-app-body .student-section-title{font-size:var(--ui-card-title)!important;line-height:1.3}
body.student-app-body .student-card h2{font-size:var(--ui-card-title)!important}
body.student-app-body input,
body.student-app-body select,
body.student-app-body textarea,
body.student-app-body button{font-size:var(--ui-control)}
body.student-app-body .muted,
body.student-app-body small{font-size:var(--ui-helper)!important}
body.student-app-body .status,
body.student-app-body .badge{font-size:var(--ui-badge)!important}

/* Mobile keeps hierarchy while easing congestion; no tiny 8–10px app text. */
@media(max-width:640px){
  body.luxury-shell .content:not(.luxury-dashboard-page){padding:64px 12px 24px!important}
  body.luxury-shell .content:not(.luxury-dashboard-page)>header{padding:14px 16px;margin-bottom:14px}
  body.luxury-shell .content:not(.luxury-dashboard-page)>header h1,
  body.luxury-shell .topbar h1,
  body.luxury-shell .page>header h1{font-size:24px!important}
  body.luxury-shell .toolbar h2,
  body.luxury-shell .section-head h2{font-size:19px!important}
  body.luxury-shell .card h2,
  body.luxury-shell .card-head h2{font-size:17px!important}
  body.luxury-shell .card{padding:14px!important}
  body.luxury-shell button:not(.icon-btn),body.luxury-shell .btn,body.luxury-shell .button-link{font-size:13px!important;min-height:40px;padding:9px 11px}
  body.luxury-shell input:not([type="checkbox"]):not([type="radio"]),body.luxury-shell select,body.luxury-shell textarea{font-size:13px!important;min-height:40px!important}
  body.luxury-shell .table-wrap table,body.luxury-shell .table-wrap td{font-size:12px!important}
  body.luxury-shell .table-wrap th{font-size:11px!important}
  body.luxury-shell .sidebar nav>a,body.luxury-shell .sidebar .nav-sub a,body.luxury-shell .sidebar .nav-group summary{font-size:13px!important}
  body.luxury-shell .user-chip{font-size:11px;padding:7px 9px}
  .scanner-shell{padding:0}.scanner-card{padding:15px}.scanner-head h1{font-size:24px}.scanner-subtitle{font-size:13px}
}

/* =========================================================
   v36.4.5 — Luxury login consistency
   Public + Owner login only. Visual/typography update.
   Authentication endpoints and login behavior are unchanged.
   ========================================================= */
.login-page{
  --login-navy:#07182b;
  --login-navy-2:#0c2340;
  --login-gold:#c79a32;
  --login-gold-soft:#ead7a3;
  --login-cream:#fbf8f2;
  --login-card:#fffdfa;
  --login-text:#13243a;
  --login-muted:#687486;
  --login-line:#e7dfd1;
  --login-control:#fff;
  min-height:100vh;
  margin:0;
  padding:32px;
  display:grid;
  place-items:center;
  font-family:Inter,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  font-size:var(--ui-body,14px);
  line-height:1.5;
  color:var(--login-text);
  background:
    radial-gradient(circle at 12% 16%,rgba(199,154,50,.15),transparent 28%),
    radial-gradient(circle at 88% 82%,rgba(231,214,170,.08),transparent 30%),
    linear-gradient(135deg,#07182b 0%,#0a2038 55%,#071827 100%);
}
.login-page::before{
  content:"";
  position:fixed;
  inset:0;
  pointer-events:none;
  opacity:.2;
  background-image:linear-gradient(rgba(255,255,255,.025) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.025) 1px,transparent 1px);
  background-size:48px 48px;
  mask-image:linear-gradient(to bottom,black,transparent 88%);
}
.login-shell{
  position:relative;
  z-index:1;
  width:min(1040px,100%);
  max-width:none;
  min-height:620px;
  display:grid;
  grid-template-columns:minmax(0,1.08fr) minmax(420px,.92fr);
  overflow:hidden;
  border:1px solid rgba(234,215,163,.28);
  border-radius:28px;
  box-shadow:0 36px 90px rgba(0,0,0,.34);
  background:rgba(255,255,255,.035);
  backdrop-filter:blur(4px);
}
.login-brand-stage{
  position:relative;
  display:flex;
  align-items:flex-end;
  padding:54px;
  color:#fff;
  overflow:hidden;
  background:
    radial-gradient(circle at 28% 26%,rgba(199,154,50,.18),transparent 34%),
    linear-gradient(150deg,#0a1d32 0%,#0a243a 65%,#0c2e3d 100%);
}
.login-brand-stage::after{
  content:"SHV";
  position:absolute;
  top:30px;
  right:-16px;
  color:rgba(255,255,255,.035);
  font-size:190px;
  line-height:1;
  font-weight:900;
  letter-spacing:-.08em;
}
.login-brand-stage-inner{position:relative;z-index:1;max-width:470px}
.login-stage-eyebrow{
  color:var(--login-gold-soft);
  font-size:var(--ui-helper,12px);
  line-height:1.2;
  font-weight:800;
  letter-spacing:.14em;
  text-transform:uppercase;
  margin-bottom:14px;
}
.login-stage-title{
  font-size:42px;
  line-height:1.08;
  font-weight:800;
  letter-spacing:-.025em;
  margin:0 0 10px;
}
.login-brand-stage p{
  margin:0;
  color:#d5ddea;
  font-size:var(--ui-card-title,18px);
  font-weight:600;
}
.login-stage-rule{width:62px;height:3px;border-radius:999px;background:var(--login-gold);margin:28px 0 20px}
.login-stage-message{max-width:430px;color:#bbc7d5;font-size:var(--ui-body,14px);line-height:1.7}
.login-stage-points{display:flex;flex-wrap:wrap;gap:8px;margin-top:26px}
.login-stage-points span{
  border:1px solid rgba(234,215,163,.22);
  background:rgba(255,255,255,.045);
  color:#e5eaf0;
  padding:8px 10px;
  border-radius:999px;
  font-size:var(--ui-badge,11px);
  font-weight:700;
  letter-spacing:.02em;
}
.login-card{
  position:relative;
  width:100%;
  max-width:none;
  min-width:0;
  padding:48px 46px 34px;
  border:0;
  border-radius:0;
  background:linear-gradient(180deg,#fffefb 0%,#fbf8f2 100%);
  box-shadow:none;
  text-align:left;
  display:flex;
  flex-direction:column;
  justify-content:center;
}
.login-card-accent{position:absolute;top:0;left:0;right:0;height:4px;background:linear-gradient(90deg,#a87819,#d7b35a,#a87819)}
.login-logo-wrap{
  width:78px;
  height:78px;
  display:grid;
  place-items:center;
  margin-bottom:18px;
  border:1px solid #e8ddc6;
  border-radius:18px;
  background:#fff;
  box-shadow:0 10px 25px rgba(20,40,64,.08);
}
.login-logo{width:62px;height:62px;object-fit:contain;border-radius:10px;margin:0}
.login-kicker{
  margin:0 0 7px;
  color:#9b741f;
  font-size:var(--ui-helper,12px);
  line-height:1.2;
  font-weight:800;
  letter-spacing:.12em;
}
.login-card h1{
  margin:0;
  color:var(--login-text);
  font-size:var(--ui-page-title,30px);
  line-height:1.15;
  font-weight:800;
  letter-spacing:-.02em;
}
.login-product-tagline{
  margin:6px 0 0;
  color:#3e526c;
  font-size:var(--ui-body,14px);
  line-height:1.4;
  font-weight:700;
  letter-spacing:0;
}
.login-subtitle{
  margin:8px 0 0;
  color:var(--login-muted);
  font-size:var(--ui-helper,12px);
  line-height:1.5;
  font-weight:500;
}
.account-type-wrap{position:relative;text-align:left;margin:28px 0 18px}
.login-card label:not(.remember),.account-type-wrap>label{
  display:block!important;
  margin:0 0 7px!important;
  color:#24374f;
  font-size:var(--ui-helper,12px)!important;
  line-height:1.3;
  font-weight:700;
}
.account-type-button{
  width:100%;
  min-height:48px;
  padding:11px 14px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  border:1px solid #dcd5c8;
  border-radius:12px;
  background:var(--login-control);
  color:#21354d;
  font:inherit;
  font-size:var(--ui-control,14px);
  line-height:1.25;
  font-weight:700;
  cursor:pointer;
  box-shadow:0 2px 4px rgba(17,35,55,.02);
  transition:border-color .15s ease,box-shadow .15s ease,transform .15s ease,background .15s ease;
}
.account-type-button:hover{border-color:#c9b27a;background:#fffefa}
.account-type-button[data-selected="true"]{border-color:#caa654;color:#172d49;background:#fffdf7}
.account-type-button.open{border-color:#bd8e26;box-shadow:0 0 0 3px rgba(199,154,50,.13)}
.account-type-arrow{font-size:18px;color:#7b6740;transition:transform .15s ease}
.account-type-menu{
  position:absolute;
  z-index:30;
  top:100%;
  left:0;
  right:0;
  margin-top:8px;
  padding:7px;
  overflow:hidden;
  border:1px solid #e1d8c8;
  border-radius:14px;
  background:#fffefb;
  box-shadow:0 20px 45px rgba(12,31,51,.16);
}
.account-type-menu button{
  width:100%;
  border:0;
  border-radius:10px;
  background:transparent;
  padding:11px 12px;
  text-align:left;
  display:flex;
  flex-direction:column;
  gap:3px;
  cursor:pointer;
  color:#25384e;
}
.account-type-menu button:hover,.account-type-menu button:focus{background:#f7f0e3;outline:none}
.account-type-menu strong{font-size:var(--ui-body,14px);line-height:1.25;color:#182f4d;font-weight:700}
.account-type-menu span{font-size:var(--ui-helper,12px);line-height:1.4;color:#737d89}
.login-card form{text-align:left;margin-top:2px}
.login-field{margin-bottom:14px}
.login-card input[type=text],.login-card input[type=password]{
  width:100%;
  min-height:48px;
  margin:0;
  padding:11px 13px;
  border:1px solid #ddd5c7;
  border-radius:12px;
  background:#fff;
  color:#14283f;
  font:inherit;
  font-size:var(--ui-control,14px);
  line-height:1.3;
  outline:none;
  box-shadow:inset 0 1px 0 rgba(16,35,55,.02);
  transition:border-color .15s ease,box-shadow .15s ease,background .15s ease;
}
.login-card input::placeholder{color:#9aa2ac}
.login-card input[type=text]:hover,.login-card input[type=password]:hover{border-color:#cfc3ae}
.login-card input[type=text]:focus,.login-card input[type=password]:focus{border-color:#bd8e26;box-shadow:0 0 0 3px rgba(199,154,50,.13);background:#fffefa}
.login-form-meta{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:2px 0 16px}
.remember{display:inline-flex;align-items:center;gap:8px;color:#566579;font-size:var(--ui-helper,12px);font-weight:600;cursor:pointer;margin:0}
.remember input{width:16px;height:16px;accent-color:#b88421}
.login-links{margin:0;text-align:right;font-size:var(--ui-helper,12px)}
.login-links a{color:#8a661d;text-decoration:none;font-weight:700}
.login-links a:hover{text-decoration:underline}
.login-button{
  width:100%;
  min-height:48px;
  border:1px solid #936c18;
  border-radius:12px;
  background:linear-gradient(180deg,#d4aa4d 0%,#ba8725 100%);
  color:#0b2038;
  font:inherit;
  font-size:var(--ui-control,14px);
  line-height:1.2;
  font-weight:800;
  cursor:pointer;
  box-shadow:0 10px 22px rgba(154,109,21,.2),inset 0 1px 0 rgba(255,255,255,.38);
  transition:transform .14s ease,box-shadow .14s ease,filter .14s ease;
}
.login-button:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 13px 25px rgba(154,109,21,.24);filter:brightness(1.02)}
.login-button:active:not(:disabled){transform:translateY(0);box-shadow:0 6px 14px rgba(154,109,21,.18)}
.login-button:disabled{opacity:.62;cursor:wait}
.login-notice{
  margin:0 0 14px;
  padding:10px 12px;
  border:1px solid #ecc9c4;
  border-radius:10px;
  background:#fff3f1;
  color:#8c332a;
  font-size:var(--ui-helper,12px);
  line-height:1.45;
  font-weight:600;
}
.login-notice[data-type="info"]{border-color:#e2d19d;background:#fff8e8;color:#6d5418}
.login-footer{
  margin-top:24px;
  padding-top:16px;
  border-top:1px solid var(--login-line);
  color:#7a8491;
  text-align:center;
  font-size:var(--ui-badge,11px);
  line-height:1.4;
}
.login-secure-dot{display:inline-block;width:7px;height:7px;margin-right:6px;border-radius:50%;background:#2f8a65;box-shadow:0 0 0 3px rgba(47,138,101,.10)}
.owner-security-note{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:7px;
  margin:20px 0 18px;
  padding:10px 12px;
  border:1px solid #e3d5ad;
  border-radius:10px;
  background:#faf3df;
  color:#554115;
  font-size:var(--ui-helper,12px);
  line-height:1.3;
  font-weight:700;
  text-align:center;
}
.owner-security-note span{color:#b17f1f;font-size:9px}
.owner-login-card{border-top:0}
.owner-brand-stage{background:radial-gradient(circle at 30% 22%,rgba(199,154,50,.2),transparent 32%),linear-gradient(150deg,#07172a 0%,#0a2039 68%,#0b2a3a 100%)}

@media(max-width:860px){
  .login-page{padding:22px}
  .login-shell{width:min(540px,100%);min-height:0;grid-template-columns:1fr;border-radius:24px}
  .login-brand-stage{display:none}
  .login-card{padding:40px 34px 30px}
}
@media(max-width:520px){
  .login-page{padding:0;display:block;background:#fbf8f2}
  .login-page::before{display:none}
  .login-shell{width:100%;min-height:100vh;border:0;border-radius:0;box-shadow:none;background:#fbf8f2}
  .login-card{min-height:100vh;padding:34px 22px 24px;justify-content:center}
  .login-logo-wrap{width:72px;height:72px;margin-bottom:16px}
  .login-logo{width:56px;height:56px}
  .login-card h1{font-size:24px}
  .login-kicker{font-size:11px}
  .account-type-wrap{margin-top:24px}
  .login-card input[type=text],.login-card input[type=password],.account-type-button,.login-button{min-height:46px}
  .login-form-meta{align-items:flex-start;flex-direction:column;gap:9px}
  .login-links{text-align:left}
  .login-footer{margin-top:20px}
}

/* =========================================================
   v36.4.6 — Consolidated UI/UX corrections
   Sidebar branding, auth gating, profile affordance,
   dashboard KPI fix, responsive login, portal polish.
   ========================================================= */

/* Prevent protected admin content from flashing before auth resolves. */
body.auth-gate{visibility:hidden!important}
body.auth-ready{visibility:visible!important}

/* Sidebar: tighter, single-line brand hierarchy. */
body.luxury-shell .luxury-global-brand,
body.luxury-shell .luxury-brand{padding-left:14px!important;padding-right:14px!important;text-align:center!important;overflow:visible!important}
body.luxury-shell .luxury-global-brand strong,
body.luxury-shell .luxury-brand strong{font-size:40px!important;line-height:.95!important;letter-spacing:.01em!important}
body.luxury-shell .luxury-global-brand span,
body.luxury-shell .luxury-brand span{font-size:10px!important;line-height:1.1!important;letter-spacing:.42px!important;white-space:nowrap!important;margin-top:7px!important}
body.luxury-shell .luxury-global-brand small,
body.luxury-shell .luxury-brand small{font-size:6.5px!important;line-height:1.2!important;letter-spacing:.75px!important;white-space:nowrap!important;margin-top:5px!important}
body.luxury-shell .sidebar .nav-group summary{font-size:12px!important;letter-spacing:.7px!important}
.brand-leaf-line{display:block;width:90px;height:14px;margin:5px auto 2px;position:relative;opacity:.9}
.brand-leaf-line:before,.brand-leaf-line:after{content:"";position:absolute;top:7px;width:35px;height:1px;background:linear-gradient(90deg,transparent,#d8ad50)}
.brand-leaf-line:before{left:0}.brand-leaf-line:after{right:0;transform:scaleX(-1)}
.brand-leaf-line{background:center/18px 12px no-repeat url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='36' height='20' viewBox='0 0 36 20'%3E%3Cg fill='none' stroke='%23d8ad50' stroke-width='1.5' stroke-linecap='round'%3E%3Cpath d='M18 17c0-7-3-11-9-14 0 7 3 11 9 14Z'/%3E%3Cpath d='M18 17c0-7 3-11 9-14 0 7-3 11-9 14Z'/%3E%3Cpath d='M18 18V7'/%3E%3C/g%3E%3C/svg%3E")}

/* Dashboard KPI fix: keep attendance ratio on one line. */
.luxury-kpi.kpi-mint>div:last-child{min-width:0;flex:1}
.luxury-kpi.kpi-mint strong{display:flex!important;align-items:baseline;gap:5px;white-space:nowrap!important;flex-wrap:nowrap!important;width:max-content;max-width:100%}
.luxury-kpi.kpi-mint strong>span,.luxury-kpi.kpi-mint strong em,.luxury-kpi.kpi-mint strong em span{display:inline!important;white-space:nowrap!important}
.luxury-kpi.kpi-mint strong em{font-size:18px!important;line-height:1!important}

/* Header profile is an intentional navigation target. */
.profile-link-chip,.profile-link-avatar{cursor:pointer!important}
.profile-link-chip:hover{color:#9a6c18!important;text-decoration:underline;text-underline-offset:3px}
.profile-link-avatar{overflow:hidden;transition:transform .16s ease,box-shadow .16s ease}
.profile-link-avatar:hover{transform:translateY(-1px);box-shadow:0 0 0 3px rgba(211,169,80,.22)}
.profile-link-avatar img{width:100%;height:100%;display:block;object-fit:cover;border-radius:inherit}
.profile-photo-card{display:flex!important;align-items:center;gap:24px;padding:24px!important}
.profile-photo-preview{width:116px;height:116px;flex:0 0 116px;border-radius:50%;overflow:hidden;display:grid;place-items:center;background:linear-gradient(145deg,#0b2340,#123959);color:#efc963;font-size:28px;font-weight:900;box-shadow:0 10px 28px rgba(12,35,64,.18),inset 0 0 0 4px #f2dfad}
.profile-photo-preview img{width:100%;height:100%;object-fit:cover}
.profile-photo-copy{min-width:0}.profile-photo-copy h2{margin:0 0 6px}.profile-photo-copy p{margin:0 0 14px}.profile-upload-btn{cursor:pointer!important}

/* Login branding: use the standalone SHV mark as the visual anchor. */
.login-stage-emblem{width:164px;height:164px;margin:0 0 28px;display:grid;place-items:center;border-radius:50%;background:linear-gradient(145deg,rgba(255,255,255,.08),rgba(255,255,255,.025));border:1px solid rgba(226,178,67,.42);box-shadow:0 22px 52px rgba(0,0,0,.24),inset 0 1px 0 rgba(255,255,255,.1),0 0 0 7px rgba(226,178,67,.045);overflow:hidden}
.login-stage-emblem img{width:142px;height:142px;object-fit:cover;border-radius:50%;clip-path:circle(49% at 50% 50%);filter:saturate(.92) contrast(1.06) brightness(.97);box-shadow:0 0 0 1px rgba(226,178,67,.16)}
.login-logo-wrap{width:96px!important;height:96px!important;border-radius:50%!important;background:linear-gradient(145deg,#fffdf8,#f8f0df)!important;border-color:#dfbf70!important;box-shadow:0 12px 28px rgba(19,40,64,.10),0 0 0 4px rgba(207,157,42,.05)!important;overflow:hidden!important}
.login-logo{width:84px!important;height:84px!important;border-radius:50%!important;clip-path:circle(49% at 50% 50%)!important;object-fit:cover!important;filter:saturate(.92) contrast(1.05)!important}
.login-brand-stage::after{opacity:.5}

/* Mobile login = responsive version of the same desktop design, not a plain fallback. */
@media(max-width:760px){
  .login-page{padding:0!important;display:block!important;background:linear-gradient(180deg,#07182b 0,#0a223a 19%,#f8f3e9 19%,#fbf8f2 100%)!important;min-height:100dvh}
  .login-shell{width:100%!important;min-height:100dvh!important;display:block!important;border:0!important;border-radius:0!important;background:transparent!important;box-shadow:none!important;overflow:visible!important}
  .login-brand-stage{display:flex!important;min-height:250px!important;padding:28px 24px 76px!important;align-items:center!important;background:linear-gradient(145deg,#07182b,#0c2b45)!important;border-radius:0 0 34px 34px!important}
  .login-brand-stage::after{font-size:118px!important;top:24px!important;right:-5px!important;color:rgba(255,255,255,.035)!important}
  .login-brand-stage-inner{width:100%!important;max-width:none!important;display:grid!important;grid-template-columns:92px 1fr!important;grid-template-areas:"logo eyebrow" "logo title" "logo tag"!important;column-gap:18px!important;align-items:center!important}
  .login-stage-emblem{grid-area:logo;width:92px;height:92px;margin:0!important;border-radius:50%!important;background:linear-gradient(145deg,rgba(255,255,255,.08),rgba(255,255,255,.025))!important}
  .login-stage-emblem img{width:80px;height:80px;border-radius:50%!important;clip-path:circle(49% at 50% 50%)!important;filter:saturate(.92) contrast(1.04)!important}
  .login-stage-eyebrow{grid-area:eyebrow;margin:0 0 4px!important;font-size:10px!important;letter-spacing:.12em!important;white-space:nowrap!important}
  .login-stage-title{grid-area:title;font-size:27px!important;line-height:1.05!important;margin:0!important}
  .login-brand-stage p{grid-area:tag;font-size:12px!important;margin-top:6px!important}
  .login-stage-rule,.login-stage-message,.login-stage-points{display:none!important}
  .login-card{width:calc(100% - 28px)!important;margin:-50px auto 28px!important;padding:26px 22px 22px!important;border-radius:26px!important;border:1px solid #eadfc9!important;box-shadow:0 20px 55px rgba(30,38,48,.14)!important;background:linear-gradient(180deg,#fffefa,#fbf8f2)!important;justify-content:flex-start!important}
  .login-card-accent{border-radius:26px 26px 0 0!important}
  .login-logo-wrap{display:none!important}
  .login-kicker{font-size:10px!important;letter-spacing:.12em!important;margin-bottom:5px!important}
  .login-card h1{font-size:26px!important}
  .login-product-tagline{font-size:13px!important;margin-top:4px!important}
  .login-subtitle{font-size:12px!important;margin-top:6px!important}
  .account-type-wrap{margin:22px 0 16px!important}
  .account-type-button,.login-card input[type=text],.login-card input[type=password],.login-button{min-height:48px!important;border-radius:13px!important;font-size:14px!important}
  .login-form-meta{align-items:flex-start!important}
  .login-footer{margin-top:20px!important;padding-top:14px!important}
}
@media(max-width:390px){
  .login-brand-stage{padding-left:18px!important;padding-right:18px!important}
  .login-brand-stage-inner{grid-template-columns:82px 1fr!important;column-gap:14px!important}
  .login-stage-emblem{width:82px;height:82px}.login-stage-emblem img{width:73px;height:73px}
  .login-stage-title{font-size:24px!important}.login-stage-eyebrow{font-size:8.5px!important}
  .login-card{width:calc(100% - 20px)!important;padding:24px 18px 20px!important}
}

/* Student + Prepaid mobile portals: compact premium navigation and cards. */
.student-app-body{background:linear-gradient(180deg,#f8f4ea 0%,#f3efe7 100%)!important;color:#10253e!important}
.student-topbar{background:rgba(255,253,248,.96)!important;border-bottom:1px solid #e4d8c1!important;box-shadow:0 5px 18px rgba(24,37,54,.05)!important}
.student-brand img{width:44px!important;height:44px!important;border-radius:11px;padding:2px;background:#fff;border:1px solid #ead8a8}
.student-brand strong{font-size:16px!important;color:#0d2947!important;font-weight:800!important}.student-brand span{font-size:11px!important;color:#7d7466!important}
.student-icon-btn{border-color:#dfd4c1!important;color:#153252!important;background:#fffdfa!important;font-size:12px!important;font-weight:700!important}
.student-main{padding-bottom:112px!important}
.student-hello .eyebrow,.student-page-heading .eyebrow{color:#b78220!important}
.student-hello h1,.student-page-heading h1{color:#102a47!important;font-size:28px!important;line-height:1.08!important}
.student-card{border-color:#e4d9c8!important;border-radius:18px!important;box-shadow:0 8px 24px rgba(23,38,56,.055)!important}
.subscription-card{background:linear-gradient(145deg,#0d2b3b 0%,#183d4b 72%,#1e4852 100%)!important;box-shadow:0 16px 34px rgba(13,43,59,.18)!important}
.student-section-title{font-size:18px!important;color:#112c49!important;font-weight:800!important}
.student-meal-card,.student-row,.student-ticket{border-color:#e4d9c8!important;background:#fffefa!important}
.student-bottom-nav{height:62px!important;background:rgba(255,253,248,.98)!important;border-top:1px solid #dfd5c3!important;box-shadow:0 -8px 28px rgba(25,35,48,.07)!important;padding:0 3px env(safe-area-inset-bottom)!important;gap:1px!important}
.student-bottom-nav button{max-width:118px!important;font-size:9px!important;gap:2px!important;color:#7d8184!important;font-weight:650!important;position:relative!important;padding:4px 2px!important}
.student-bottom-nav button span{font-size:16px!important;line-height:1!important}
.student-bottom-nav button.active{color:#0d3150!important;font-weight:800!important;background:linear-gradient(180deg,rgba(221,180,84,.16),rgba(221,180,84,.04))!important}
.student-bottom-nav button.active:before{content:"";position:absolute;top:0;left:28%;right:28%;height:2px;border-radius:999px;background:#c99831}
.student-qr-fab{bottom:68px!important;padding:10px 18px!important;font-size:12px!important;letter-spacing:.02em!important;background:linear-gradient(135deg,#0e3850,#164e5a)!important;border:1px solid rgba(216,173,80,.5)!important;box-shadow:0 10px 26px rgba(18,57,74,.25)!important}
.student-qr-fab span{font-size:11px!important}
@media(max-width:520px){
  .student-main{padding:16px 12px 112px!important}.student-topbar{padding:9px 12px!important}
  .student-brand img{width:38px!important;height:38px!important}.student-brand strong{font-size:14px!important}
  .student-hello h1,.student-page-heading h1{font-size:25px!important}
  .student-card{padding:15px!important;margin:13px 0!important}.student-section-title{font-size:17px!important;margin:19px 0 9px!important}
  .student-meal-card{padding:12px!important}.student-meal-card strong{font-size:12px!important}
  .student-bottom-nav button{font-size:8.5px!important}.student-bottom-nav button span{font-size:15px!important}
}

/* More compact mobile dashboard cards without changing desktop typography. */
@media(max-width:640px){
  .luxury-kpi.kpi-mint strong{font-size:19px!important;gap:3px!important}.luxury-kpi.kpi-mint strong em{font-size:11px!important}
  .luxury-kpi small{line-height:1.25!important}
}

/* Profile page responsiveness. */
@media(max-width:620px){.profile-photo-card{align-items:flex-start!important;gap:16px!important;padding:18px!important}.profile-photo-preview{width:82px;height:82px;flex-basis:82px;font-size:21px}.profile-photo-copy .actions{gap:8px!important}.profile-photo-copy .btn{font-size:12px!important}}

/* v36.5.2 — Login account selector visibility hotfix
   Keep all four account types visible on desktop without altering auth behavior. */
@media (min-width:901px){
  .login-page .account-type-menu{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:6px;
    overflow:visible;
  }
  .login-page .account-type-menu[hidden]{display:none!important}
  .login-page .account-type-menu button{min-height:68px}
}

/* v36.6 — Portal separation: Meal Access vs Workforce. */
.meal-account-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:28px 0 18px}
.meal-account-card{min-height:126px;border:1px solid #ded6c8;border-radius:16px;background:#fff;display:flex;flex-direction:column;align-items:flex-start;justify-content:center;gap:5px;padding:18px;text-align:left;cursor:pointer;color:#1c314b;transition:.16s ease;box-shadow:0 5px 14px rgba(17,35,55,.04)}
.meal-account-card:hover,.meal-account-card:focus{border-color:#c39a3e;background:#fffaf0;box-shadow:0 10px 24px rgba(154,109,21,.12);outline:none;transform:translateY(-1px)}
.meal-account-card .portal-icon{width:36px;height:36px;border-radius:10px;display:grid;place-items:center;background:#0c2340;color:#efd490;font-weight:800;font-size:12px;margin-bottom:4px}
.meal-account-card strong{font-size:16px}.meal-account-card small{color:#737d89;font-size:12px;line-height:1.35}
.selected-account-line{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:24px 0 16px;padding-bottom:10px;border-bottom:1px solid #eee6d9}
.selected-account-line button{border:0;background:transparent;color:#8a661d;font-weight:700;cursor:pointer;padding:0}.selected-account-line strong{font-size:13px;color:#24374f;text-align:right}
.portal-switch-links{margin:18px 0 0;text-align:center}.portal-switch-links a{display:inline-block;padding:9px 12px;border-radius:10px;color:#7b5b19;text-decoration:none;font-size:12px;font-weight:800;background:#faf4e7;border:1px solid #ead9b3}.portal-switch-links a:hover{background:#fff8e9}
.workforce-note{margin:22px 0 18px;padding:13px 14px;border:1px solid #e5dac2;border-radius:13px;background:#fbf7ef;color:#5f6670;font-size:12px;line-height:1.45}.workforce-note strong{display:block;color:#233850;margin-bottom:3px}.workforce-note span{display:block}
@media(max-width:520px){.meal-account-grid{grid-template-columns:1fr}.meal-account-card{min-height:96px}}

/* v36.8 Internal Staff form alignment + employee shift timing */
.staff-option-list,.staff-shift-override{border:1px solid #d9dedb;border-radius:12px;padding:14px 16px;background:#fff}
.staff-option-list legend,.staff-shift-override legend{padding:0 6px;font-weight:700;color:#163126}
.form-grid fieldset.staff-option-list label,.form-grid fieldset.staff-shift-override .compact-check{display:flex!important;flex-direction:row!important;align-items:center!important;gap:10px!important;margin:0!important;padding:10px 0!important;font-weight:650!important;line-height:1.25}
.form-grid fieldset.staff-option-list label+label{border-top:1px solid #eef1ef}
.form-grid fieldset.staff-option-list input[type="checkbox"],.form-grid fieldset.staff-shift-override input[type="checkbox"]{width:18px!important;height:18px!important;min-width:18px!important;max-width:18px!important;flex:0 0 18px!important;margin:0!important;padding:0!important;accent-color:#0b2d4d;box-shadow:none!important}
.staff-option-list label>span{display:flex;flex-direction:column;gap:3px}
.staff-option-list label>span small{display:block;font-weight:400;color:#6a788b;font-size:12px}
.custom-shift-fields{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:10px;padding-top:12px;border-top:1px solid #eef1ef}
.custom-shift-fields label{display:flex!important;flex-direction:column!important;align-items:stretch!important;gap:6px!important;padding:0!important;margin:0!important}
.custom-shift-fields .full-row{grid-column:1/-1}
.staff-shift-override .hidden{display:none!important}
@media(max-width:700px){.custom-shift-fields{grid-template-columns:1fr}}

/* v36.9 Internal Staff checkbox alignment */
.internal-staff-page .staff-check-row,
.internal-staff-page .mobile-security-check,
.internal-staff-page .weekly-off-check{
  display:flex!important;
  flex-direction:row!important;
  align-items:center!important;
  justify-content:flex-start!important;
  gap:10px!important;
}
.internal-staff-page .staff-check-row input[type="checkbox"],
.internal-staff-page .mobile-security-check input[type="checkbox"],
.internal-staff-page .weekly-off-check input[type="checkbox"]{
  appearance:auto!important;
  -webkit-appearance:checkbox!important;
  width:18px!important;
  height:18px!important;
  min-width:18px!important;
  max-width:18px!important;
  min-height:18px!important;
  flex:0 0 18px!important;
  margin:0!important;
  padding:0!important;
  border-radius:3px!important;
  box-shadow:none!important;
  accent-color:#0b2d4d!important;
}
.internal-staff-page .staff-check-row>span,
.internal-staff-page .mobile-security-check>span,
.internal-staff-page .weekly-off-check>span{
  margin:0!important;
  line-height:1.35;
}
.internal-staff-page .mobile-security-check{
  border:1px solid #d9dedb;
  border-radius:12px;
  padding:14px 16px!important;
  margin-bottom:16px!important;
  background:#fff;
  font-size:13px!important;
  font-weight:700!important;
}
.internal-staff-page .weekly-offs{display:flex;flex-wrap:wrap;gap:8px 18px}
.internal-staff-page .weekly-offs .weekly-off-check{margin:0!important;padding:4px 0!important}

/* v36.10 Global checkbox standardisation
   Keep true feature switches as switches; all normal checkboxes use one compact SHV style. */
:root{--shv-check-size:18px;--shv-check-accent:#0b2d4d}

input[type="checkbox"]:not([data-feature]){
  appearance:auto!important;
  -webkit-appearance:checkbox!important;
  box-sizing:border-box!important;
  width:var(--shv-check-size)!important;
  height:var(--shv-check-size)!important;
  min-width:var(--shv-check-size)!important;
  max-width:var(--shv-check-size)!important;
  min-height:var(--shv-check-size)!important;
  max-height:var(--shv-check-size)!important;
  flex:0 0 var(--shv-check-size)!important;
  margin:0!important;
  padding:0!important;
  border-radius:3px!important;
  box-shadow:none!important;
  accent-color:var(--shv-check-accent)!important;
  vertical-align:middle!important;
  cursor:pointer;
}

/* Any ordinary label whose direct control is a checkbox becomes a consistent row. */
label:has(> input[type="checkbox"]):not(.feature-control-card){
  display:flex!important;
  flex-direction:row!important;
  align-items:center!important;
  justify-content:flex-start!important;
  gap:10px!important;
  line-height:1.35!important;
}

/* Preserve intentional card layouts while keeping the box aligned. */
.setting-check:has(> input[type="checkbox"]){align-items:flex-start!important}
.setting-check>input[type="checkbox"]{margin-top:2px!important}
.check-card:has(> input[type="checkbox"]){align-items:center!important}
.menu-switches label:has(> input[type="checkbox"]),
.menu-import-option:has(> input[type="checkbox"]),
.remember:has(> input[type="checkbox"]),
.check:has(> input[type="checkbox"]),
.staff-check-row:has(> input[type="checkbox"]),
.mobile-security-check:has(> input[type="checkbox"]),
.weekly-off-check:has(> input[type="checkbox"]){align-items:center!important}

/* Subscription meal selections: compact, aligned cards. */
.checks .check{
  display:flex!important;
  align-items:center!important;
  gap:8px!important;
  min-height:40px;
  padding:9px 10px!important;
  margin:0!important;
  font-size:12px!important;
}

/* Staff permission checkboxes generated dynamically. */
.permission-grid .check{
  display:flex!important;
  align-items:center!important;
  gap:8px!important;
  min-height:30px;
}

/* System settings meal Active is a checkbox, not the feature master switch. */
.mini-switch{
  display:flex!important;
  align-items:center!important;
  gap:8px!important;
}

/* Feature master controls intentionally remain slider switches. */
.feature-control-card input[type="checkbox"][data-feature]{
  appearance:none!important;
  -webkit-appearance:none!important;
  width:46px!important;
  height:26px!important;
  min-width:46px!important;
  max-width:46px!important;
  min-height:26px!important;
  max-height:26px!important;
  flex:0 0 46px!important;
  margin:0!important;
  padding:0!important;
  border-radius:999px!important;
  background:#cbd5e1!important;
  position:relative!important;
  box-shadow:none!important;
}
.feature-control-card input[type="checkbox"][data-feature]:before{
  content:'';
  position:absolute;
  width:20px;
  height:20px;
  border-radius:50%;
  background:#fff;
  top:3px;
  left:3px;
  box-shadow:0 1px 4px #0003;
  transition:.2s;
}
.feature-control-card input[type="checkbox"][data-feature]:checked{background:#16a34a!important}
.feature-control-card input[type="checkbox"][data-feature]:checked:before{left:23px}

@media(max-width:560px){
  :root{--shv-check-size:18px}
  label:has(> input[type="checkbox"]):not(.feature-control-card){gap:9px!important}
}
/* v36.12 Dynamic workplace attendance display */
.attendance-display-page{max-width:620px;text-align:center;margin:32px auto}.dynamic-attendance-box{display:flex;justify-content:center;align-items:center;min-height:350px;background:#fff;border-radius:20px;padding:16px;margin:20px auto}.dynamic-attendance-box img,.dynamic-attendance-box canvas{max-width:100%;height:auto!important}.attendance-display-status{display:flex;justify-content:center;gap:18px;align-items:center;flex-wrap:wrap;font-size:15px}.attendance-display-status strong{color:#15803d}@media(max-width:560px){.attendance-display-page{margin:10px}.dynamic-attendance-box{min-height:300px}.dynamic-attendance-box img,.dynamic-attendance-box canvas{width:280px!important;height:280px!important}}@media print{.no-print{display:none!important}}

/* v36.13 Attendance report views */
.report-tabs{display:flex;gap:10px;flex-wrap:wrap;margin:8px 0 18px}
.report-tabs button.active{background:#0b2d4d;color:#fff;border-color:#0b2d4d}
.report-panel{padding-top:4px}
.report-subhead{margin:24px 0 10px;color:#0b2d4d}

/* v36.13 Attendance report views */
.report-tabs{display:flex;gap:10px;flex-wrap:wrap;margin:8px 0 18px}
.report-tabs button.active{background:#0b2d4d;color:#fff;border-color:#0b2d4d}
.report-panel{padding-top:4px}
.report-subhead{margin:24px 0 10px;color:#0b2d4d}


/* v36.15 Mobile Compact + forced first-login password security */
.force-password-overlay{position:fixed;inset:0;z-index:99999;background:rgba(4,18,31,.78);backdrop-filter:blur(8px);display:grid;place-items:center;padding:18px}
.force-password-card{width:min(430px,100%);background:#fff;border-radius:20px;padding:24px;box-shadow:0 24px 70px rgba(0,0,0,.3);border:1px solid #eadfc9}
.force-password-lock{font-size:24px}.force-password-card h2{margin:8px 0 4px;font-size:21px;color:#0b2d4d}.force-password-card>p{font-size:12px;color:#64748b;margin:0 0 16px}.force-password-card label{display:block;font-size:11px;font-weight:700;color:#334155;margin:10px 0}.force-password-card input{display:block;width:100%;box-sizing:border-box;margin-top:5px;padding:11px 12px;border:1px solid #cbd5e1;border-radius:10px;font:inherit}.password-rules{display:flex;gap:6px;flex-wrap:wrap;margin:10px 0}.password-rules span{font-size:9px;padding:4px 7px;border-radius:999px;background:#f1f5f9;color:#64748b}.password-rules span.ok{background:#dcfce7;color:#166534}.force-password-msg{min-height:18px;color:#b91c1c;font-size:11px;margin:4px 0}.force-password-card button{width:100%;border:0;border-radius:10px;padding:11px 12px;background:#0b2d4d;color:white;font-weight:800}
@media(max-width:640px){
  html{font-size:14px}body{overflow-x:hidden}
  .page,.content,.main-content,.dashboard-page,.luxury-dashboard-page{max-width:100%!important}
  .card,.panel,.section-card,.luxury-card{padding:10px!important;border-radius:10px!important;margin-bottom:8px!important}
  .card h1,.panel h1,.section-head h1{font-size:18px!important}.card h2,.panel h2,.section-head h2{font-size:14px!important;margin-bottom:5px!important}
  .muted,.helper,.hint,.card p{font-size:10px!important;line-height:1.35!important}
  label{font-size:10px!important}input,select,textarea{font-size:12px!important;padding:8px 9px!important;min-height:36px!important}textarea{min-height:70px!important}
  button,.btn,.button{font-size:11px!important;min-height:34px!important;padding:7px 10px!important}
  .actions,.toolbar,.filters,.section-head{gap:6px!important}
  .grid,.form-grid,.filters,.stats-grid{gap:7px!important}
  .table-wrap,.table-container{overflow-x:auto!important;-webkit-overflow-scrolling:touch}.table-wrap table,.table-container table{font-size:10px!important;white-space:nowrap}.table-wrap th,.table-wrap td,.table-container th,.table-container td{padding:6px!important}
  .tabs,.tab-bar,.segment,.student-segment{display:flex!important;overflow-x:auto!important;white-space:nowrap!important;gap:4px!important;scrollbar-width:none;padding:4px!important}.tabs::-webkit-scrollbar,.tab-bar::-webkit-scrollbar,.student-segment::-webkit-scrollbar{display:none}.tabs button,.tab-bar button,.student-segment button{flex:0 0 auto!important;font-size:10px!important;padding:7px 9px!important;min-height:32px!important}
  .student-main{padding:10px 10px 84px!important}.student-topbar{padding:8px 10px!important;min-height:48px!important}.student-brand img{width:30px!important;height:30px!important}.student-brand strong{font-size:12px!important}.student-brand span{font-size:8px!important}
  .student-hello{margin:5px 0 8px!important}.student-hello h1,.student-page-heading h1{font-size:19px!important}.student-page-heading{margin-bottom:8px!important}.student-section-title{font-size:12px!important;margin:10px 0 6px!important}
  .student-card{padding:10px!important;border-radius:12px!important;margin-bottom:8px!important}.student-metrics{gap:4px!important}.student-metrics b{font-size:14px!important}.student-metrics span{font-size:8px!important}
  .student-meal-grid{gap:6px!important}.student-meal-card{padding:8px!important;min-height:0!important}.student-meal-card b{font-size:10px!important}.student-meal-card span,.student-meal-card strong{font-size:8px!important}
  .student-row{padding:8px!important;gap:6px!important}.student-row b{font-size:10px!important}.student-row span,.student-row small{font-size:8px!important}
  .student-bottom-nav{height:58px!important;padding:4px 3px calc(4px + env(safe-area-inset-bottom))!important}.student-bottom-nav button{font-size:7px!important;min-width:0!important;padding:3px 2px!important}.student-bottom-nav button span{font-size:15px!important;margin-bottom:1px!important}
  .student-qr-fab{right:10px!important;bottom:66px!important;font-size:10px!important;padding:8px 11px!important}
  .force-password-overlay{padding:10px}.force-password-card{padding:17px;border-radius:15px}.force-password-card h2{font-size:18px}.force-password-card>p{font-size:10px!important}.password-rules span{font-size:8px}
}

/* v36.16 Staff mobile app navigation + compact counter scanner */
.staff-bottom-nav{display:none}
@media(max-width:640px){
  body.staff-mobile-app{padding-bottom:68px;background:#f3f6f8}
  .staff-attendance-portal{width:100%!important;max-width:none!important;margin:0!important;padding:10px 10px 76px!important;border-radius:0!important;box-shadow:none!important;min-height:100vh}
  .staff-attendance-portal>.section-head{position:sticky;top:0;z-index:20;background:rgba(255,255,255,.96);padding:7px 2px 8px;margin-bottom:7px!important;border-bottom:1px solid #e8edf2}
  .staff-attendance-portal>.section-head h1{font-size:17px!important;margin:1px 0!important}.staff-attendance-portal>.section-head .eyebrow{font-size:8px!important;margin:0!important}.staff-attendance-portal #staffIdentity{font-size:9px!important;margin:2px 0 0!important}
  .staff-attendance-portal .internal-stats{display:grid!important;grid-template-columns:1fr 1fr!important;gap:6px!important;margin-bottom:7px!important}.staff-attendance-portal .internal-stats .card{margin:0!important;padding:9px!important}.staff-attendance-portal .internal-stats b{font-size:13px!important}.staff-attendance-portal .internal-stats span,.staff-attendance-portal .internal-stats small{font-size:8px!important}
  .staff-attendance-portal .staff-counter-launch{padding:8px!important}.staff-counter-launch .info-box,.staff-counter-launch p{display:none!important}.staff-counter-launch .section-head{margin:0!important;align-items:center!important}.staff-counter-launch h2{margin:0!important}.staff-counter-launch .button-link{font-size:10px!important;padding:7px 9px!important}
  .staff-attendance-portal .staff-attendance-action,.staff-attendance-portal .staff-today-activity,.staff-attendance-portal #payslipsSection,.staff-attendance-portal #accountSection{margin-bottom:7px!important}
  .staff-attendance-portal #reader{max-height:300px;overflow:hidden}.staff-attendance-portal #reader video{max-height:300px!important;object-fit:cover!important}
  .staff-attendance-portal .data-table{font-size:9px!important}.staff-attendance-portal .data-table th,.staff-attendance-portal .data-table td{padding:5px!important}
  .staff-bottom-nav{position:fixed;display:grid;grid-template-columns:repeat(4,1fr);left:0;right:0;bottom:0;z-index:9990;background:rgba(7,24,43,.98);padding:5px 5px calc(5px + env(safe-area-inset-bottom));box-shadow:0 -5px 18px rgba(7,24,43,.18);border-top:1px solid rgba(255,255,255,.12)}
  .staff-bottom-nav a{min-width:0;min-height:47px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1px;text-decoration:none;color:#cbd5df;border-radius:9px;font-size:8px!important;font-weight:700}.staff-bottom-nav a span{font-size:17px;line-height:18px}.staff-bottom-nav a b{font-size:8px}.staff-bottom-nav a.active{background:#f0cf7c;color:#102a46}.staff-bottom-nav a.hidden{display:none!important}
  body.scanner-modern-page{padding-bottom:64px}
  .scanner-shell{padding:0 0 66px!important}.scanner-card{padding:9px!important;min-height:auto!important}
  .scanner-head{display:flex!important;align-items:center!important;margin-bottom:6px!important;gap:6px!important}.scanner-head .eyebrow,.scanner-subtitle{display:none!important}.scanner-head h1{font-size:17px!important}.scanner-live-pill{margin:0 0 0 auto!important;padding:5px 7px!important;font-size:8px!important}.scanner-live-dot{width:6px;height:6px}
  .scanner-control-grid{grid-template-columns:1fr 1fr!important;gap:5px!important;padding:6px!important;margin-bottom:6px!important;border-radius:10px!important}.scanner-field{font-size:8px!important;gap:2px!important}.scanner-field select{min-height:32px!important;padding:4px 6px!important;font-size:10px!important}.scanner-actions{grid-column:1/-1!important;gap:4px!important}.scanner-actions button{min-height:30px!important;padding:5px 7px!important;font-size:9px!important;flex:1}
  .scanner-workspace{display:grid!important;grid-template-columns:1fr!important;gap:6px!important}.scanner-camera-panel,.scanner-side-panel{border-radius:10px!important}
  .scanner-frame,.scanner-reader{min-height:0!important;height:36vh!important;max-height:300px!important}.scanner-reader video{height:36vh!important;max-height:300px!important;object-fit:cover!important}.scanner-reticle{width:min(52%,190px)!important}.scanner-reticle i{width:30px!important;height:30px!important}.scanner-placeholder{padding:10px!important}.scanner-placeholder-icon{width:42px!important;height:42px!important;font-size:23px!important;margin-bottom:5px!important}.scanner-placeholder strong{font-size:12px!important}.scanner-placeholder span{font-size:8px!important;margin-top:2px!important}
  .scanner-hints{display:none!important}.scanner-side-panel{padding:6px!important;gap:5px!important}.scanner-side-head{font-size:8px!important}.scanner-side-head b{font-size:7px!important;padding:3px 5px!important}
  .scanner-side-panel .scan-result{min-height:112px!important;padding:7px!important;border-radius:9px!important;margin:0!important}.scanner-side-panel .scan-icon,.scanner-side-panel .scanner-empty-result .scan-empty-icon{width:34px!important;height:34px!important;border-radius:10px!important;font-size:19px!important;margin-bottom:3px!important}.scan-result-label{font-size:7px!important}.scanner-side-panel .scan-result h2{font-size:13px!important;margin:2px 0!important}.scan-meal-line,.scan-reason{font-size:9px!important;margin:1px 0!important}.scan-finance{font-size:8px!important;padding:4px 6px!important;margin:3px 0!important;gap:1px!important}.scanner-manual{display:none!important}.scanner-footnote{font-size:8px!important;margin-top:5px!important;padding:5px 7px!important}
}

/* v36.17 Staff Portal professional mobile information architecture */
.staff-app-page{display:none}.staff-app-page.active{display:block}.staff-app-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px}.staff-app-header h1{margin:2px 0}.staff-welcome-card{display:flex;align-items:center;gap:16px;padding:20px;border-radius:18px;background:linear-gradient(135deg,#0b2d4d,#123f69);color:#fff;margin-bottom:14px;box-shadow:0 12px 28px rgba(11,45,77,.18)}.staff-avatar{width:52px;height:52px;border-radius:16px;display:grid;place-items:center;background:#f0cf7c;color:#0b2d4d;font-size:20px;font-weight:900;flex:0 0 auto}.staff-avatar.large{width:62px;height:62px;border-radius:20px;font-size:22px}.staff-welcome-label{font-size:10px;letter-spacing:.16em;color:#f0cf7c;font-weight:900}.staff-welcome-card h2{margin:3px 0;color:#fff;font-size:22px}.staff-welcome-card p{margin:0;color:#d8e4ef}.staff-action-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:9px;margin-top:12px}.staff-action-grid button,.staff-action-grid a{min-height:78px;border:1px solid #e1e8ee;border-radius:14px;background:#fff;color:#0b2d4d;text-decoration:none;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;font-weight:800;font-size:22px}.staff-action-grid span{font-size:11px}.staff-profile-heading{display:flex;align-items:center;gap:14px;padding-bottom:16px;border-bottom:1px solid #e8edf2}.staff-profile-heading h2{margin:0}.staff-profile-heading p{margin:3px 0 0;color:#64748b}.staff-profile-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:14px}.staff-profile-grid>div{padding:12px;background:#f7f9fb;border:1px solid #e6ebef;border-radius:12px}.staff-profile-grid span{display:block;color:#718096;font-size:10px;margin-bottom:4px}.staff-profile-grid b{color:#15283a;font-size:12px}.staff-signout{width:100%;margin-top:4px}.staff-bottom-nav button{border:0;background:transparent;font:inherit}
@media(max-width:640px){
  .staff-app-header{position:sticky;top:0;z-index:20;background:rgba(255,255,255,.96);padding:8px 2px;margin:0 0 8px;border-bottom:1px solid #e8edf2}.staff-app-header .eyebrow{font-size:8px!important;margin:0!important}.staff-app-header h1{font-size:17px!important;margin:1px 0!important}.staff-app-header #staffIdentity{font-size:9px!important;margin:2px 0 0!important}
  .staff-welcome-card{padding:13px!important;border-radius:13px!important;gap:11px;margin-bottom:8px}.staff-avatar{width:44px;height:44px;border-radius:13px;font-size:16px}.staff-welcome-label{font-size:7px}.staff-welcome-card h2{font-size:16px!important;margin:1px 0!important}.staff-welcome-card p{font-size:9px!important}
  .staff-home-stats{margin-bottom:7px!important}.staff-quick-actions{padding:10px!important}.staff-action-grid{grid-template-columns:repeat(2,1fr);gap:6px;margin-top:7px}.staff-action-grid button,.staff-action-grid a{min-height:58px!important;border-radius:10px;font-size:16px!important;padding:5px!important}.staff-action-grid span{font-size:9px!important}
  .staff-profile-card{padding:12px!important}.staff-avatar.large{width:48px;height:48px;border-radius:14px;font-size:17px}.staff-profile-heading{padding-bottom:10px;gap:10px}.staff-profile-heading h2{font-size:15px!important}.staff-profile-heading p{font-size:9px!important}.staff-profile-grid{gap:6px;margin-top:9px}.staff-profile-grid>div{padding:8px;border-radius:9px}.staff-profile-grid span{font-size:8px}.staff-profile-grid b{font-size:10px}
  .staff-bottom-nav-five{grid-template-columns:repeat(5,1fr)!important}.staff-bottom-nav button,.staff-bottom-nav a{min-width:0;min-height:47px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1px;text-decoration:none;color:#cbd5df;border-radius:9px;font-size:8px!important;font-weight:700;padding:2px!important}.staff-bottom-nav button span,.staff-bottom-nav a span{font-size:16px;line-height:18px}.staff-bottom-nav button b,.staff-bottom-nav a b{font-size:7px}.staff-bottom-nav button.active,.staff-bottom-nav a.active{background:#f0cf7c;color:#102a46}
}

/* v36.18 attendance scan feedback */
.attendance-scan-result{display:flex;flex-direction:column;gap:3px;margin:10px 0;padding:12px 14px;border-radius:12px;border:1px solid #d8e0e8;background:#f7f9fb}
.attendance-scan-result.success{border-color:#b8dfc5;background:#effaf2}
.attendance-scan-result.error{border-color:#efc1c1;background:#fff3f3}
.attendance-scan-result strong{font-size:15px}.attendance-scan-result span{font-size:13px;line-height:1.35}
.attendance-scan-status{text-align:center;margin:6px 0 8px}
@media(max-width:640px){.staff-attendance-action #readerWrap{margin-top:8px}.staff-attendance-action #reader{max-height:300px;overflow:hidden}.attendance-scan-result{position:relative;margin:7px 0;padding:10px 11px}.attendance-scan-result strong{font-size:14px}.attendance-scan-result span{font-size:12px}}

/* v37 stable-core password controls */
.shv-password-wrap{display:flex!important;align-items:center;position:relative;width:100%;gap:0}.shv-password-wrap>input{width:100%!important;padding-right:64px!important}.shv-password-toggle{position:absolute!important;right:8px!important;top:50%!important;transform:translateY(-50%)!important;width:auto!important;min-width:46px!important;height:30px!important;padding:0 7px!important;margin:0!important;border:0!important;background:transparent!important;color:#0b2d4d!important;font-size:12px!important;font-weight:700!important;box-shadow:none!important}.student-form label>.shv-password-wrap,.force-password-card label>.shv-password-wrap{margin-top:6px}.force-password-msg.success{color:#16723b;font-weight:700}.scanner-auth-banner{margin:8px 0;padding:10px 12px;border-radius:10px;background:#eef5fb;font-size:13px}.scanner-auth-banner.error{background:#fff0f0;color:#9a2020}.scanner-auth-banner.ok{background:#eef9f1;color:#176b38}
/* v37.2 polished password-change completion */
.password-success-card{text-align:center;max-width:460px}.force-password-success{width:64px;height:64px;border-radius:50%;display:grid;place-items:center;margin:0 auto 14px;background:#e8f7ef;color:#137a45;font-size:34px;font-weight:800}.redirect-countdown{margin:20px 0;padding:13px 16px;border-radius:12px;background:#f4f7fa;color:#33465a}.password-success-card #goLoginNow{width:100%}

/* =========================================================
   Stable Core — SHV form controls
   Keep selects visually consistent across Owner, Staff,
   Student and Prepaid portals. Native popup menus remain
   accessible while Chrome/Safari are explicitly asked to use
   the light SHV palette instead of OS dark-menu styling.
   ========================================================= */
:root{--shv-control-bg:#fffdf9;--shv-control-text:#102b4c;--shv-control-border:#d8dee8;--shv-control-focus:#d6ad4b}
select{
  color-scheme:light!important;
  background-color:var(--shv-control-bg)!important;
  color:var(--shv-control-text)!important;
  border:1px solid var(--shv-control-border)!important;
  border-radius:12px!important;
  min-height:44px;
  font:inherit;
  font-weight:600;
  box-shadow:none;
}
select:hover{border-color:#b9c4d2!important}
select:focus{outline:3px solid rgba(214,173,75,.22)!important;outline-offset:1px;border-color:var(--shv-control-focus)!important}
select:disabled{background:#f3f5f7!important;color:#8a96a6!important;cursor:not-allowed;opacity:1}
select option,select optgroup{background:#fffdf9!important;color:#102b4c!important;font:inherit}
select option:checked{background:#102b4c!important;color:#fff!important}
