:root{--green:#176b45;--green-dark:#0d4930;--cream:#f4f7f5;--ink:#183126;--muted:#617168;--line:#dbe5df;--red:#bd2f37;--orange:#bc681b;--white:#fff;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;color:var(--ink);background:var(--cream)}*{box-sizing:border-box}body{margin:0}button,input,select,textarea{font:inherit}button{cursor:pointer}a{color:inherit}.kiosk{min-height:100vh;padding:22px 28px;display:flex;flex-direction:column;background:radial-gradient(circle at 50% -20%,#e3f3e9 0,transparent 50%),var(--cream);-webkit-user-select:none;-moz-user-select:none;user-select:none}.kiosk-header{justify-content:space-between}.brand,.kiosk-header{display:flex;align-items:center}.brand{gap:12px;font-weight:800;font-size:1.35rem}.brand img{width:44px;height:44px}.clock{text-align:right;font-size:1.15rem}.clock strong{display:block;font-size:1.65rem}.kiosk-main{width:min(100%,1000px);margin:auto}.kiosk h1{text-align:center;font-size:clamp(1.7rem,4vw,2.8rem);margin:10px 0 22px}.actions{display:grid;grid-template-columns:1fr 1fr;grid-gap:18px;gap:18px}.punch-button{min-height:145px;border:3px solid transparent;border-radius:22px;background:white;box-shadow:0 8px 30px #1a523316;color:var(--ink);font-size:clamp(1.3rem,3vw,2rem);font-weight:800;transition:.15s}.punch-button.selected,.punch-button:hover{transform:translateY(-2px);border-color:var(--green);background:#eaf7ef;color:var(--green-dark)}.punch-button.lunch{color:#77400f}.punch-button.lunch.selected{border-color:var(--orange);background:#fff3e5}.hint{text-align:center;margin:24px 0 0;font-size:1.2rem;color:var(--muted)}.forgot-badge{display:flex;justify-content:center;margin-top:14px}.forgot-link{border:0;background:transparent;color:var(--green-dark);text-decoration:underline;font-weight:750;padding:10px 16px}.forgot-confirm{width:min(100%,520px);padding:16px;border:1px solid var(--line);border-radius:16px;background:#fff;box-shadow:0 8px 24px #173d2920;text-align:center}.forgot-confirm small,.forgot-confirm span,.forgot-confirm strong{display:block}.forgot-confirm span{color:var(--muted);margin:5px 0 12px}.forgot-confirm div{display:flex;gap:10px;justify-content:center}.forgot-confirm small{color:var(--red);margin-top:10px}.pin-overlay{position:fixed;inset:0;z-index:40;display:grid;place-items:center;padding:16px;background:#10261dcc;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.pin-card{position:relative;width:min(100%,430px);padding:28px;border-radius:24px;background:#fff;text-align:center;box-shadow:0 24px 70px #0005}.pin-card h2{margin:5px 0 18px}.pin-eyebrow{color:var(--green);font-weight:800;margin:0}.pin-close{position:absolute;top:10px;right:12px;width:44px;height:44px;border:0;background:transparent;font-size:2rem;color:var(--muted)}.pin-dots{display:flex;gap:11px;justify-content:center;margin-bottom:20px}.pin-dots i{width:17px;height:17px;border:2px solid #8ba397;border-radius:50%}.pin-dots i.filled{border-color:var(--green);background:var(--green)}.pin-keypad{display:grid;grid-template-columns:repeat(3,1fr);grid-gap:10px;gap:10px}.pin-keypad button{min-height:60px;border:1px solid var(--line);border-radius:14px;background:#f6f9f7;color:var(--ink);font-size:1.35rem;font-weight:800}.pin-keypad button:active{background:#e1efe6}.pin-keypad .pin-ok{background:var(--green);color:#fff}.pin-keypad button:disabled{opacity:.45}.statusbar{display:flex;justify-content:space-between;font-size:.9rem;color:var(--muted)}.net,.statusbar{align-items:center}.net{display:inline-flex;gap:7px}.dot{width:10px;height:10px;border-radius:50%;background:var(--red)}.dot.online{background:#24a264}.toast{position:fixed;inset:0;background:#0b231fcf;display:grid;place-items:center;z-index:20}.toast-card{background:white;border-radius:26px;padding:38px;width:min(90%,550px);text-align:center;box-shadow:0 22px 60px #0004}.toast-card.ok{border-top:12px solid #24a264}.toast-card.error{border-top:12px solid var(--red)}.toast-icon{font-size:4rem}.toast h2{font-size:2rem;margin:10px}.toast p{font-size:1.25rem}.setup{position:fixed;inset:0;background:#12352fe8;z-index:30;display:grid;place-items:center}.setup form{width:min(90%,480px);background:white;padding:32px;border-radius:20px}.field{display:grid;grid-gap:7px;gap:7px;margin:14px 0}.field input,.field select,.field textarea{width:100%;padding:12px 13px;border:1px solid #bfcfc5;border-radius:9px;background:white}.danger,.primary,.secondary{border:0;border-radius:9px;padding:11px 17px;font-weight:700}.primary{background:var(--green);color:white}.secondary{background:#e8eeea;color:var(--ink)}.danger{background:#fde7e7;color:#922}.admin-shell{min-height:100vh}.admin-header{height:68px;background:var(--green-dark);color:white;padding:0 28px;display:flex;justify-content:space-between;align-items:center}.admin-header nav{display:flex;gap:20px;align-items:center}.admin-header a{text-decoration:none;font-weight:650}.admin-main{width:min(1200px,calc(100% - 36px));margin:28px auto}.page-head{display:flex;justify-content:space-between;align-items:flex-end;margin-bottom:22px}.page-head h1{margin:0}.card{background:white;border:1px solid var(--line);border-radius:14px;padding:20px;box-shadow:0 3px 14px #1232}.grid{display:grid;grid-template-columns:repeat(12,1fr);grid-gap:18px;gap:18px}.span-4{grid-column:span 4}.span-8{grid-column:span 8}.span-12{grid-column:span 12}.stat strong{font-size:2rem;display:block}.muted{color:var(--muted)}table{width:100%;border-collapse:collapse;background:white}td,th{text-align:left;padding:12px;border-bottom:1px solid var(--line);vertical-align:top}th{font-size:.82rem;text-transform:uppercase;color:var(--muted)}.badge{display:inline-block;padding:4px 8px;border-radius:999px;background:#e8f4ed;color:var(--green-dark);font-size:.8rem;font-weight:700}.badge.warn{background:#fff0dd;color:#8a4a0d}.row-actions{display:flex;gap:7px;flex-wrap:wrap}.sickness-management{display:grid;grid-gap:9px;gap:9px;margin-top:12px;padding-top:12px;border-top:1px solid var(--line)}.sickness-edit-form{display:grid;grid-template-columns:repeat(2,minmax(120px,1fr));grid-gap:9px;gap:9px;width:min(520px,75vw);margin-top:10px;padding:12px;border:1px solid var(--line);border-radius:10px;background:#f7faf8}.sickness-edit-form .check-row,.sickness-edit-form .field{margin:0}.sickness-edit-form .primary,.sickness-edit-form .sickness-note-field{grid-column:1/-1}.inline-form{display:flex;gap:10px;align-items:flex-end;flex-wrap:wrap}.inline-form .field{margin:0;min-width:160px}.login{min-height:100vh;display:grid;place-items:center;background:linear-gradient(140deg,var(--green-dark),var(--green))}.login .card{width:min(90%,420px)}.error-text{color:var(--red);font-weight:650}.modal-details{margin-top:12px;padding-top:12px;border-top:1px solid var(--line)}.delete-punch-zone{margin-top:18px;padding-top:18px;border-top:1px solid #efcdd0}@media (max-width:800px){.actions{grid-template-columns:1fr}.punch-button{min-height:105px}.grid{display:block}.grid>*{margin-bottom:16px}.admin-header nav a{display:none}.admin-main{width:min(100% - 20px,1200px)}.page-head{align-items:flex-start;gap:12px;flex-direction:column}.table-wrap{overflow-x:auto}}.app-header{position:-webkit-sticky;position:sticky;top:0;z-index:40;color:#fff;background:rgba(7,59,41,.97);box-shadow:0 8px 28px #05231820;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.app-header.employee{background:rgba(18,61,67,.97)}.app-header-inner{width:min(1500px,calc(100% - 36px));min-height:72px;margin:auto;display:flex;align-items:center;gap:24px}.app-brand{display:inline-flex;align-items:center;gap:10px;flex:none;text-decoration:none}.app-brand-mark{width:40px;height:40px;display:grid;place-items:center;border-radius:12px;color:var(--green-dark);background:#fff;font-size:1.2rem;font-weight:900}.app-brand small,.app-brand strong{display:block}.app-brand small{margin-top:2px;color:#ffffffa8;font-size:.7rem}.app-nav{min-width:0;margin-left:auto;gap:10px}.app-nav,.app-nav-links{display:flex;align-items:center}.app-nav-links{justify-content:flex-end;flex-wrap:wrap;gap:2px}.app-nav a{padding:8px 9px;border-radius:9px;color:#ffffffc9;text-decoration:none;white-space:nowrap;font-size:.8rem;font-weight:700}.app-nav a:hover{color:#fff;background:#ffffff17}.app-nav a.active{color:var(--green-dark);background:#fff}.nav-label-short{display:none}.logout-form{flex:none}.logout-button{min-height:38px;padding:8px 12px;border:1px solid #ffffff45;border-radius:9px;color:#fff;background:transparent;font-weight:700}.nav-toggle{display:none}.span-6{grid-column:span 6}.card{min-width:0}.field input,.field select,.field textarea{min-width:0;min-height:45px}.notification-panel{margin-bottom:20px;overflow:hidden}.anomaly-resolve-link{display:inline-flex;margin-top:8px;margin-right:8px;min-height:36px;padding:7px 12px;font-size:.82rem}.anomaly-resolution-card{margin-bottom:18px;display:flex;align-items:center;justify-content:space-between;gap:18px;border-color:#e4b560;background:#fffaf0}.anomaly-resolution-card h2{margin:9px 0 3px}.notification-head{display:flex;justify-content:space-between;align-items:center;gap:12px}.notification-list{display:grid;grid-gap:0;gap:0}.notification-item{display:flex;align-items:center;gap:12px;padding:13px 0;border-bottom:1px solid var(--line)}.notification-item:last-child{border-bottom:0}.notification-icon{width:38px;height:38px;display:grid;place-items:center;flex:none;border-radius:50%;color:#fff;background:var(--green)}.notification-icon svg{width:24px;height:24px;fill:none;stroke:currentColor;stroke-width:2.3;stroke-linecap:round;stroke-linejoin:round}.notification-icon-entry{background:#147849}.notification-icon-exit{background:#b35a16}.notification-copy{min-width:0;flex:1 1}.notification-copy span,.notification-copy strong{display:block}.notification-copy span{margin-top:2px;color:var(--muted);font-size:.86rem}.notification-time{color:var(--muted);font-size:.85rem;white-space:nowrap}.live-indicator{display:inline-flex;align-items:center;gap:6px;color:var(--green);font-size:.78rem;font-weight:750}.live-indicator:before{content:"";width:8px;height:8px;border-radius:50%;background:#24a264;box-shadow:0 0 0 4px #24a2641f}.admin-toast{position:relative;display:grid;grid-gap:4px;gap:4px;width:100%;padding:16px;border-left:5px solid #24a264;border-radius:13px;color:var(--ink);background:#fff;box-shadow:0 18px 55px #061e1638;animation:toast-in .22s ease-out;text-decoration:none}.admin-toast small,.admin-toast span{color:var(--muted)}.admin-toast-stack{position:fixed;right:20px;bottom:76px;z-index:80;display:grid;grid-gap:10px;gap:10px;width:min(410px,calc(100% - 40px))}.admin-audio-toggle{position:fixed;right:20px;bottom:20px;z-index:81;display:inline-flex;align-items:center;gap:7px;min-height:44px;padding:9px 13px;border:1px solid #d7e2dc;border-radius:999px;color:var(--ink);background:#fff;box-shadow:0 10px 28px #061e1629;font-weight:800}.admin-audio-toggle.enabled{border-color:#8bc4a5;color:#0b673c;background:#e8f6ee}.admin-event-warning{border-left-color:#d78617}.admin-event-extra,.admin-event-request{border-left-color:#2879b8}.admin-event-message{border-left-color:#7655b5}@keyframes toast-in{0%{opacity:0;transform:translateY(12px)}}@media (max-width:1120px){.nav-label-full{display:none}.nav-label-short{display:inline}}@media (max-width:900px){.app-header-inner{min-height:66px}.nav-toggle{width:44px;height:44px;margin-left:auto;display:grid;place-content:center;grid-gap:5px;gap:5px;border:1px solid #ffffff38;border-radius:10px;color:#fff;background:#ffffff12}.nav-toggle span{display:block;width:21px;height:2px;border-radius:2px;background:currentColor}.app-nav{position:absolute;top:100%;left:0;right:0;max-height:0;overflow:hidden;display:block;padding:0 14px;background:var(--green-dark);opacity:0;pointer-events:none;transition:.22s ease}.app-header.employee .app-nav{background:#113a42}.app-nav.open{max-height:calc(100dvh - 66px);overflow-y:auto;padding-block:14px 20px;opacity:1;pointer-events:auto;box-shadow:0 20px 35px #05231833}.app-nav-links{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:7px;gap:7px}.app-nav a{min-height:44px;display:flex;align-items:center;padding:10px 12px;color:#fff;background:#ffffff0d}.nav-label-full{display:inline}.nav-label-short{display:none}.logout-form{margin-top:10px}.logout-button{width:100%}.span-6{grid-column:span 12}.kiosk .actions{grid-template-columns:1fr 1fr}}@media (max-width:600px){.admin-main,.app-header-inner{width:calc(100% - 24px)}.app-brand-mark{width:37px;height:37px}.card{padding:17px;border-radius:14px}.form-grid,.time-grid{grid-template-columns:1fr}.inline-form{align-items:stretch;flex-direction:column}.inline-form .field,.inline-form .primary,.inline-form .secondary{width:100%;flex:auto}.danger,.primary,.secondary{min-height:46px}.notification-item{align-items:flex-start}.notification-time{font-size:.75rem}.sickness-edit-form{grid-template-columns:1fr;width:min(78vw,360px)}.sickness-edit-form .primary,.sickness-edit-form .sickness-note-field{grid-column:auto}.admin-toast-stack{right:12px;bottom:72px;width:calc(100% - 24px)}.admin-audio-toggle{right:12px;bottom:12px}.kiosk{padding:15px}.kiosk-header{align-items:flex-start}.actions{grid-template-columns:1fr 1fr;gap:10px}.punch-button{min-height:102px;padding:9px;font-size:1.12rem}.statusbar{align-items:flex-start;flex-direction:column;gap:6px}}@media (max-width:380px){.actions,.app-nav-links{grid-template-columns:1fr}.punch-button{min-height:74px}}@media (orientation:landscape) and (max-height:600px){.kiosk{padding-block:10px}.kiosk h1{margin:4px 0 12px;font-size:1.5rem}.punch-button{min-height:72px;font-size:1.15rem}.hint{margin-top:10px;font-size:.9rem}}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:0 14px;gap:0 14px}.check-row{display:flex;align-items:center;gap:8px;margin:12px 0}.check-row input{width:auto}.contract-current{margin-top:18px}.schedule-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:12px;gap:12px;margin-bottom:24px}.time-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:0 10px;gap:0 10px}.empty-state{margin-top:18px;text-align:center;padding:48px}.warning-box{border:1px solid #e1b871;background:#fff7e6;color:#74440e;border-radius:12px;padding:14px 16px;margin:0 0 18px}.error-box,.success-box{margin:0 0 20px;padding:14px 16px;border-radius:12px;font-weight:700}.form-progress{margin:12px 0 0;color:var(--muted);font-size:.88rem}.delete-request-form{margin-top:14px;padding-top:14px;border-top:1px solid #efcdd0}.delete-request-form .field{min-width:190px}button:disabled{cursor:wait;opacity:.68}.success-box{border:1px solid #9ac9ad;color:var(--green-dark);background:#eaf7ef}.error-box{border:1px solid #e6afb3;color:#8d2530;background:#fdebed}.calendar-wrap{overflow-x:auto}.hr-calendar{min-width:1050px}.hr-calendar td,.hr-calendar th{text-align:center;padding:7px 5px;min-width:28px}.hr-calendar th:first-child{text-align:left;position:-webkit-sticky;position:sticky;left:0;background:white;min-width:150px;z-index:1}.hr-calendar .has-code{background:#e7f4ec;color:var(--green-dark);font-weight:800;border-radius:5px}.calendar-legend{display:flex;flex-wrap:wrap;gap:7px;margin-top:10px}.calendar-legend span{display:inline-flex;align-items:center;gap:5px;padding:5px 8px;border-radius:999px;font-size:.82rem}.calendar-legend .calendar-code-green,.hr-calendar .calendar-code-green{background:#dff3e7;color:#0b673c}.calendar-legend .calendar-code-yellow,.hr-calendar .calendar-code-yellow{background:#fff1b8;color:#705700}.calendar-legend .calendar-code-red,.hr-calendar .calendar-code-red{background:#fde0e2;color:#9b1c2b}.calendar-legend .calendar-code-orange,.hr-calendar .calendar-code-orange{background:#ffe1bd;color:#914800}.calendar-legend .calendar-code-blue,.hr-calendar .calendar-code-blue{background:#dbeeff;color:#0a4f88}.calendar-legend .calendar-code-neutral,.hr-calendar .calendar-code-neutral{background:#eef2f0;color:#53645b}.cost-totals{margin-top:18px}.dashboard-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));grid-gap:14px;gap:14px}.dashboard-stats .stat strong{font-size:1.55rem}.dashboard-bottom{margin-top:18px}.alert-list{display:grid}.alert-list a{display:flex;justify-content:space-between;text-decoration:none;padding:12px 0;border-bottom:1px solid var(--line)}.alert-count{color:white;background:var(--red);min-width:28px;text-align:center;border-radius:99px;padding:3px 8px}.big-number{display:block;font-size:2.5rem;margin:12px 0 24px}.portal-extra{margin-top:18px}.portal-punches{margin-bottom:18px}.report-summary-line{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:14px}.report-summary-line>span{background:#f2f6f3;border-radius:8px;padding:8px 10px}.bank-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));grid-gap:12px;gap:12px;margin-bottom:18px}.bank-grid>div{background:linear-gradient(145deg,#e9f4ed,#fff);border:1px solid var(--line);border-radius:12px;padding:16px}.bank-grid small,.bank-grid span{display:block;color:var(--muted)}.bank-grid strong{display:block;font-size:1.3rem;margin:5px 0}@media (max-width:950px){.dashboard-stats{grid-template-columns:repeat(2,1fr)}.schedule-grid{grid-template-columns:1fr}.bank-grid{grid-template-columns:repeat(2,1fr)}}@media (max-width:800px){.bank-grid,.dashboard-stats,.form-grid,.time-grid{grid-template-columns:1fr}}.admin-header{height:auto;min-height:68px;padding:12px 28px;gap:18px}.admin-header nav{gap:17px;flex-wrap:wrap;justify-content:flex-end}.page-head h2{margin:0}.row-actions.compact{align-items:center;margin-top:12px}.inline-form .field{min-width:130px}.employee-login{background:linear-gradient(140deg,#113a42,var(--green))}.login-link{display:block;text-align:center;margin-top:18px;color:var(--green);font-weight:650}.employee-list{display:grid;grid-gap:18px;gap:18px}.employee-list,.search-card{margin-top:18px}.search-form{align-items:end}.search-form .field{flex:1 1 320px;max-width:520px}.search-form .secondary{text-decoration:none;text-align:center}.pin-verification-note{display:block;margin-top:7px}.pin-verify-form{margin-top:9px}.pin-verify-form .primary{padding:8px 12px}.admin-account-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 0;border-bottom:1px solid var(--line)}.admin-account-row p{margin:0}.employee-card h3{margin-top:0}.panel-soft{background:#f7faf8;border:1px solid var(--line);border-radius:12px;padding:16px}.balance-grid{display:grid;grid-template-columns:repeat(3,1fr);grid-gap:12px;gap:12px;margin:0 0 18px}.balance-grid>div{background:#eaf4ee;border-radius:12px;padding:14px}.balance-grid small,.balance-grid span{display:block;color:var(--muted)}.balance-grid strong{font-size:1.45rem;display:block;margin-top:4px}.balance-grid.large strong{font-size:2rem}.report-balances{margin-bottom:18px}.positive{color:var(--green);font-weight:700}.negative{color:var(--red);font-weight:700}.welcome{margin:0 0 10px}.employee-shell .admin-header{background:#113a42}summary{cursor:pointer;font-weight:700}@media (max-width:800px){.admin-header{align-items:flex-start;flex-direction:column;padding:15px}.admin-header nav{justify-content:flex-start;gap:11px;font-size:.9rem}.admin-header nav a{display:inline}.balance-grid{grid-template-columns:1fr}.board-post footer{align-items:flex-start;flex-direction:column}.anomaly-resolution-card{align-items:stretch;flex-direction:column}}.report-error{border-color:#e4b560;background:#fffaf0}.shortfall-justify{margin-top:6px;font-weight:400}.shortfall-justify summary{cursor:pointer;font-size:.82rem;font-weight:700}.shortfall-justify .compact-form{display:grid;grid-gap:6px;gap:6px;margin-top:6px;min-width:170px}.employee-summary-link{display:inline-flex;min-height:34px;padding:6px 12px;margin-right:10px;font-size:.82rem}:root{--surface:#ffffff;--canvas:#f5f7f6;--border:#e2e8e4;--border-strong:#cfd9d3;--ink-soft:#3c5247;--accent:#176b45;--accent-hover:#11583a;--accent-soft:#e9f4ee;--accent-ring:rgb(23 107 69/22%);--danger-ink:#a3222b;--danger-soft:#fdecee;--warn-ink:#8a4a0d;--warn-soft:#fff3e2;--radius:12px;--shadow-sm:0 1px 2px rgb(16 40 28/5%);--shadow-md:0 8px 24px rgb(16 40 28/8%);--sidebar-width:252px}:is(.app-v2,.employee-shell,.login){font-family:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;color:var(--ink);font-size:15px;line-height:1.5;-webkit-font-smoothing:antialiased}body:has(.app-v2),body:has(.employee-shell){background:var(--canvas)}body.nav-locked{overflow:hidden}.app-v2{display:grid;grid-template-columns:var(--sidebar-width) minmax(0,1fr);min-height:100vh}.app-v2 .admin-main{width:100%;max-width:1320px;margin:0;padding:32px 40px 64px}.mobile-bar,.side-close,.side-scrim{display:none}.sidebar{position:-webkit-sticky;position:sticky;top:0;height:100vh;display:flex;flex-direction:column;background:var(--surface);border-right:1px solid var(--border);overflow-y:auto}.side-head{justify-content:space-between;padding:20px 18px 14px}.side-brand,.side-head{display:flex;align-items:center}.side-brand{gap:11px;text-decoration:none}.side-brand small,.side-brand strong{display:block;line-height:1.2}.side-brand strong{font-size:1rem;letter-spacing:-.01em}.side-brand small{color:var(--muted);font-size:.78rem}.side-brand-mark{display:grid;place-items:center;flex:none;width:36px;height:36px;border-radius:10px;background:linear-gradient(140deg,var(--accent),#0d4930);color:#fff;font-weight:800;text-decoration:none}.side-brand-mark.small{width:32px;height:32px;border-radius:9px;font-size:.9rem}.side-nav{flex:1 1;padding:4px 12px 16px}.side-group+.side-group{margin-top:14px}.side-group-label{margin:0 0 4px;padding:0 10px;color:var(--muted);font-size:.7rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase}.side-link{display:flex;align-items:center;gap:11px;min-height:38px;padding:7px 10px;border-radius:9px;color:var(--ink-soft);font-size:.92rem;font-weight:550;text-decoration:none;transition:background .12s,color .12s}.side-link:hover{background:var(--canvas);color:var(--ink)}.side-link.active{background:var(--accent-soft);color:var(--accent);font-weight:650}.side-link.active .side-icon{stroke:var(--accent)}.side-icon{flex:none;width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;opacity:.9}.side-count{margin-left:auto;min-width:22px;padding:1px 7px;border-radius:99px;background:var(--accent);color:#fff;font-size:.72rem;font-style:normal;font-weight:700;text-align:center}.side-foot{justify-content:space-between;gap:10px;padding:14px 18px;border-top:1px solid var(--border)}.side-foot,.side-user{display:flex;align-items:center}.side-user{gap:9px;min-width:0;font-size:.86rem;font-weight:600}.side-user>span:last-child{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.side-avatar{display:grid;place-items:center;flex:none;width:30px;height:30px;border-radius:50%;background:var(--canvas);font-size:.8rem;font-weight:700}.side-avatar,.side-logout{border:1px solid var(--border)}.side-logout{padding:6px 11px;border-radius:8px;background:var(--surface);color:var(--ink-soft);font-size:.82rem;font-weight:600}.side-logout:hover{border-color:var(--border-strong);color:var(--ink)}:is(.app-v2,.employee-shell) h1{margin:0;font-size:1.7rem;font-weight:700;letter-spacing:-.025em;line-height:1.2}:is(.app-v2,.employee-shell) h2{margin:0 0 14px;font-size:1.12rem;font-weight:650;letter-spacing:-.01em}:is(.app-v2,.employee-shell) h3{font-size:1rem;font-weight:650}:is(.app-v2,.employee-shell) .page-head{gap:16px;align-items:flex-end;margin-bottom:24px;flex-wrap:wrap}:is(.app-v2,.employee-shell) .page-head p{margin:6px 0 0}:is(.app-v2,.employee-shell) .card .page-head{margin-bottom:16px;align-items:center}:is(.app-v2,.employee-shell) .card .page-head h2{margin:0}:is(.app-v2,.employee-shell,.login) .muted{color:var(--muted)}:is(.app-v2,.employee-shell,.login) .card{border:1px solid var(--border);border-radius:var(--radius);padding:22px;background:var(--surface);box-shadow:var(--shadow-sm)}:is(.app-v2,.employee-shell) .grid{gap:20px}:is(.app-v2,.employee-shell,.login) :is(.primary,.secondary,.danger){display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:40px;padding:8px 16px;border-radius:10px;font-size:.9rem;font-weight:650;line-height:1.2;text-decoration:none;white-space:nowrap;transition:background .12s,border-color .12s,box-shadow .12s}:is(.app-v2,.employee-shell,.login) .primary{border:1px solid var(--accent);background:var(--accent);color:#fff}:is(.app-v2,.employee-shell,.login) .primary:hover{background:var(--accent-hover);border-color:var(--accent-hover)}:is(.app-v2,.employee-shell,.login) .secondary{border:1px solid var(--border-strong);background:var(--surface);color:var(--ink)}:is(.app-v2,.employee-shell,.login) .secondary:hover{background:var(--canvas)}:is(.app-v2,.employee-shell,.login) .danger{border:1px solid #f3c9ce;background:var(--danger-soft);color:var(--danger-ink)}:is(.app-v2,.employee-shell,.login) .danger:hover{border-color:#e7a4ac}:is(.app-v2,.employee-shell,.login) button:disabled{opacity:.55;cursor:not-allowed}:is(.app-v2,.employee-shell,.login) :is(a,button,input,select,textarea,summary):focus-visible{outline:none;box-shadow:0 0 0 3px var(--accent-ring)}:is(.app-v2,.employee-shell,.login) .field{gap:6px;color:var(--ink-soft);font-size:.86rem;font-weight:600}:is(.app-v2,.employee-shell,.login) :is(.field input,.field select,.field textarea,.compact-form input,.compact-form select){min-height:40px;padding:8px 11px;border:1px solid var(--border-strong);border-radius:10px;background:var(--surface);color:var(--ink);font-size:.92rem;font-weight:400;transition:border-color .12s,box-shadow .12s}:is(.app-v2,.employee-shell,.login) :is(.field input,.field select,.field textarea,.compact-form input,.compact-form select):focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-ring);outline:none}:is(.app-v2,.employee-shell) .check-row{font-size:.9rem}:is(.app-v2,.employee-shell) input[type=checkbox]{accent-color:var(--accent);width:16px;height:16px}:is(.app-v2,.employee-shell) .table-wrap{overflow-x:auto;margin:0 -22px;padding:0 22px}:is(.app-v2,.employee-shell) table{background:transparent;font-size:.9rem;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}:is(.app-v2,.employee-shell) th{padding:10px 12px;background:var(--canvas);border-bottom:1px solid var(--border);color:var(--muted);font-size:.7rem;font-weight:700;letter-spacing:.05em;white-space:nowrap}:is(.app-v2,.employee-shell) th:first-child{border-radius:8px 0 0 8px}:is(.app-v2,.employee-shell) th:last-child{border-radius:0 8px 8px 0}:is(.app-v2,.employee-shell) td{padding:12px;border-bottom:1px solid var(--border)}:is(.app-v2,.employee-shell) tbody tr:hover td{background:#fafcfb}:is(.app-v2,.employee-shell) tbody tr:last-child td{border-bottom:0}:is(.app-v2,.employee-shell) .badge{padding:3px 9px;background:var(--accent-soft);color:var(--accent);font-size:.75rem;font-weight:650;line-height:1.4}:is(.app-v2,.employee-shell) .badge.warn{background:var(--warn-soft);color:var(--warn-ink)}:is(.app-v2,.employee-shell) summary{color:var(--accent);font-size:.86rem;font-weight:650;list-style:none;cursor:pointer}:is(.app-v2,.employee-shell) summary::-webkit-details-marker{display:none}:is(.app-v2,.employee-shell) summary:before{content:"";display:inline-block;width:6px;height:6px;margin:0 8px 2px 1px;border-right:2px solid;border-bottom:2px solid;transform:rotate(-45deg);transition:transform .12s}:is(.app-v2,.employee-shell) details[open]>summary:before{transform:rotate(45deg)}:is(.app-v2,.employee-shell) :is(.warning-box,.report-error){border:1px solid #f0d3a8;border-radius:var(--radius);background:var(--warn-soft);color:var(--warn-ink)}:is(.app-v2,.employee-shell) .error-box{border-radius:var(--radius)}:is(.app-v2,.employee-shell) .success-box{border-radius:var(--radius)}:is(.app-v2,.employee-shell) .positive{color:var(--accent)}:is(.app-v2,.employee-shell) .negative{color:var(--danger-ink)}.dashboard-month{text-transform:capitalize}.app-v2 .dashboard-stats{grid-template-columns:repeat(auto-fit,minmax(132px,1fr));gap:14px;margin-bottom:20px}.app-v2 .dashboard-stats .stat{display:flex;flex-direction:column;gap:6px;padding:18px 20px}.app-v2 .dashboard-stats .stat .muted{font-size:.82rem;font-weight:600}.app-v2 .dashboard-stats .stat strong{font-size:1.6rem;font-weight:700;letter-spacing:-.02em;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.dashboard-layout{grid-template-columns:minmax(0,1.5fr) minmax(0,1fr);align-items:start}.dashboard-layout,.dashboard-side{display:grid;grid-gap:20px;gap:20px}.app-v2 .dashboard-layout .notification-panel{margin:0}.app-v2 .dashboard-layout .notification-list{max-height:520px;overflow-y:auto}.app-v2 .alert-list a{align-items:center;padding:11px 2px;border-bottom:1px solid var(--border);font-size:.92rem;border-radius:6px}.app-v2 .alert-list a:last-child{border-bottom:0}.app-v2 .alert-list a:hover{color:var(--accent)}.app-v2 .alert-list strong{min-width:28px;text-align:center;color:var(--muted)}.app-v2 .alert-count{background:var(--danger-ink);color:#fff!important}.app-v2 .big-number{font-size:2.3rem;font-weight:700;letter-spacing:-.03em;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.app-v2 .notification-item{border-color:var(--border)}.app-v2 .report-summary-line{gap:8px}.app-v2 .report-summary-line>span{padding:6px 11px;border:1px solid var(--border);border-radius:99px;background:var(--surface);color:var(--ink-soft);font-size:.86rem}:is(.app-v2,.employee-shell) .balance-grid{gap:12px}:is(.app-v2,.employee-shell) .balance-grid>div{border:1px solid var(--border);border-radius:var(--radius);background:linear-gradient(180deg,#fbfdfc,#f3f8f5)}:is(.app-v2,.employee-shell) .balance-grid span{font-size:.82rem;font-weight:600}:is(.app-v2,.employee-shell) .balance-grid strong{font-size:1.4rem;font-weight:700;letter-spacing:-.02em;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.app-v2 .employee-summary-link{min-height:34px;padding:5px 12px;font-size:.82rem}.app-v2 .anomaly-resolve-link{min-height:32px;padding:5px 11px}.login{background:radial-gradient(circle at 20% 10%,#2a8a5c 0,transparent 45%),linear-gradient(150deg,#0d4930,#176b45)}.login .card{padding:30px;border:0;border-radius:18px;box-shadow:0 24px 60px rgb(0 0 0/22%)}.login .card .primary{width:100%;margin-top:6px}.employee-shell .app-header{background:var(--surface);color:var(--ink);border-bottom:1px solid var(--border);box-shadow:none}.employee-shell .app-brand-mark{background:linear-gradient(140deg,var(--accent),#0d4930);color:#fff}.employee-shell .app-brand small{color:var(--muted)}.employee-shell .app-nav a{color:var(--ink-soft)}.employee-shell .app-nav a:hover{background:var(--canvas)}.employee-shell .app-nav a.active{background:var(--accent-soft);color:var(--accent)}.employee-shell .logout-button{border-color:var(--border);color:var(--ink-soft);background:var(--surface)}.employee-shell .nav-toggle span{background:var(--ink)}.employee-shell .admin-main{width:min(1100px,calc(100% - 32px))}@media (max-width:1100px){.app-v2 .admin-main{padding:28px 24px 56px}.dashboard-layout{grid-template-columns:1fr}}@media (max-width:960px){.app-v2{display:block}.mobile-bar{position:-webkit-sticky;position:sticky;top:0;z-index:30;display:flex;align-items:center;gap:12px;height:56px;padding:0 14px;background:rgb(255 255 255/92%);border-bottom:1px solid var(--border);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.mobile-bar-toggle{display:grid;place-items:center;width:40px;height:40px;border:1px solid var(--border);border-radius:10px;background:var(--surface);color:var(--ink)}.mobile-bar-title{flex:1 1;overflow:hidden;font-weight:650;text-overflow:ellipsis;white-space:nowrap}.sidebar{position:fixed;inset:0 auto 0 0;z-index:50;width:min(86vw,300px);box-shadow:var(--shadow-md);transform:translateX(-102%);transition:transform .2s ease}.sidebar.open{transform:none}.side-close{display:grid;place-items:center;width:36px;height:36px;border:0;border-radius:9px;background:transparent;color:var(--muted);font-size:1.6rem}.side-scrim{position:fixed;inset:0;z-index:45;display:block;background:rgb(12 30 22/40%);opacity:0;pointer-events:none;transition:opacity .2s}.side-scrim.open{opacity:1;pointer-events:auto}.side-link{min-height:44px}.app-v2 .admin-main{padding:20px 14px 48px}:is(.app-v2,.employee-shell) h1{font-size:1.4rem}:is(.app-v2,.employee-shell) .card .page-head,:is(.app-v2,.employee-shell) .page-head{align-items:flex-start}:is(.app-v2,.employee-shell,.login) .card{padding:16px}:is(.app-v2,.employee-shell) .table-wrap{margin:0 -16px;padding:0 16px}.app-v2 .dashboard-stats{grid-template-columns:repeat(2,minmax(0,1fr))}.app-v2 .dashboard-stats .stat{padding:14px}.app-v2 .dashboard-stats .stat strong{font-size:1.3rem}}@media (prefers-reduced-motion:reduce){.side-link,.side-scrim,.sidebar{transition:none}}.lunch-hint{margin:-4px 0 14px;font-size:.82rem}