:root{--bg:#f4efe8;--panel:#fffaf2;--ink:#1b2430;--accent:#db5d2e;--accent-deep:#b9441b;--accent-soft:#ffe3cc;--line:#e0d1c0;--ok:#1f7a4f;--warn:#9f3f14;--soft-shadow:0 18px 32px rgba(42,28,15,.08)}*{box-sizing:border-box}body{margin:0;font-family:Avenir Next,Nunito,Trebuchet MS,sans-serif;background:radial-gradient(circle at 7% 8%,rgba(219,93,46,.18),transparent 36%),radial-gradient(circle at 92% 88%,rgba(39,108,78,.14),transparent 28%),linear-gradient(145deg,#f7f1e7,var(--bg));background-attachment:fixed;color:var(--ink);min-height:100vh;overscroll-behavior-y:contain}a{color:inherit;text-decoration:none}.admin-shell{min-height:100vh;display:grid;grid-template-columns:280px 1fr}.sidebar{border-right:1px solid var(--line);padding:2rem 1.25rem;background:linear-gradient(175deg,#fff8ef,#f6ede1);position:-webkit-sticky;position:sticky;top:0;height:100vh;display:flex;flex-direction:column;gap:.35rem;overflow:hidden;box-shadow:8px 0 24px rgba(37,23,11,.08);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.sidebar h1{margin:0;font-size:1.5rem;letter-spacing:.02em}.sidebar p{color:#5e5e5e;margin:.25rem 0 1.5rem}.sidebar nav{display:grid;grid-gap:.4rem;gap:.4rem;overflow-y:auto;padding-right:.25rem}.sidebar nav a{padding:.65rem .85rem;border-radius:.5rem;font-weight:600;border:1px solid transparent;transition:all .2s ease}.sidebar nav a.active,.sidebar nav a:hover{border-color:var(--line);background:var(--accent-soft)}.logout-btn{margin-top:0;width:100%;border:1px solid var(--line);background:#fff;color:var(--ink);border-radius:.5rem;padding:.65rem;cursor:pointer}.sidebar-actions{margin-top:auto;padding-top:.85rem;border-top:1px solid var(--line);display:grid;grid-gap:.5rem;gap:.5rem}.nav-action-btn{width:100%;text-align:center;border-radius:.5rem;padding:.65rem}.content-area{padding:1.75rem;animation:fade-rise .45s ease-out}.page-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:1rem}.grid-metrics{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));grid-gap:.75rem;gap:.75rem;margin-bottom:1rem}.metric-card{background:var(--panel);border:1px solid var(--line);border-radius:.75rem;padding:.9rem;box-shadow:var(--soft-shadow);transition:transform .2s ease,box-shadow .2s ease}.metric-card:hover{transform:translateY(-2px);box-shadow:0 20px 38px rgba(42,28,15,.12)}.metric-card-expandable{cursor:pointer}.metric-details{margin-top:.6rem;border-top:1px solid var(--line);padding-top:.45rem}.metric-detail-item{margin:.2rem 0;color:#445564;font-size:.88rem}.metric-label{margin:0;color:#536170;font-size:.8rem;text-transform:uppercase;letter-spacing:.08em}.metric-value{margin:.35rem 0;font-size:1.8rem}.metric-helper{margin:0;color:#5f6f7e}.panel-form{background:var(--panel);border:1px solid var(--line);border-radius:.75rem;padding:.9rem;margin-bottom:1rem;box-shadow:var(--soft-shadow)}.panel-form h3{margin-top:0}.form-grid{display:grid;grid-gap:.65rem;gap:.65rem;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));margin-bottom:.75rem}button,input,select,textarea{font:inherit}input,select,textarea{border:1px solid var(--line);border-radius:.5rem;padding:.62rem;background:#fff;transition:border-color .18s ease,box-shadow .18s ease}input:focus,select:focus,textarea:focus{border-color:var(--accent);box-shadow:0 0 0 3px rgba(219,93,46,.16);outline:none}button{border:1px solid var(--accent-deep);background:linear-gradient(140deg,var(--accent),var(--accent-deep));color:#fff;border-radius:.5rem;padding:.6rem .8rem;cursor:pointer;transition:transform .2s ease,box-shadow .2s ease,filter .2s ease}button:hover{transform:translateY(-1px);box-shadow:0 12px 22px rgba(177,66,26,.22)}button:active{transform:translateY(0);filter:brightness(.98)}.secondary-btn{background:#fff;color:var(--ink);border-color:var(--line)}.danger-btn{background:#a52f2f;border-color:#a52f2f}.action-row{display:flex;gap:.5rem;flex-wrap:wrap}.offline-wrap{min-height:100vh;display:grid;place-items:center;padding:1.5rem}.offline-card{max-width:560px;width:100%;background:var(--panel);border:1px solid var(--line);border-radius:.9rem;padding:1.25rem;box-shadow:var(--soft-shadow)}.offline-card h1{margin-top:0}.pwa-install-banner{position:fixed;left:1rem;right:1rem;bottom:max(1rem,env(safe-area-inset-bottom));z-index:9999;background:#1b2430;color:#fff;border-radius:.85rem;padding:.9rem;box-shadow:0 16px 34px rgba(0,0,0,.35);border:1px solid hsla(0,0%,100%,.14)}.pwa-install-title{margin:0;font-weight:700}.pwa-install-copy{margin:.3rem 0 0;color:hsla(0,0%,100%,.88);font-size:.92rem}.pwa-install-actions{margin-top:.75rem;display:flex;gap:.5rem;flex-wrap:wrap}.pwa-install-btn{background:linear-gradient(140deg,var(--accent),var(--accent-deep));border:1px solid var(--accent-deep);color:#fff}.pwa-dismiss-btn{background:transparent;border:1px solid hsla(0,0%,100%,.32);color:#fff}@media (min-width:900px){.pwa-install-banner{left:auto;right:1rem;width:380px}}.checkbox-row{display:flex;align-items:center;gap:.45rem;margin-bottom:.45rem}.matrix-block{border:1px solid var(--line);border-radius:.5rem;padding:.7rem;margin-bottom:.8rem}.matrix-block h4{margin:0 0 .5rem}.matrix-grid{display:grid;grid-gap:.35rem;gap:.35rem;grid-template-columns:repeat(auto-fit,minmax(210px,1fr))}.ok-text{color:var(--ok)}.note-card{border:1px dashed var(--line);border-radius:.5rem;padding:.6rem;background:#fff}.data-table{width:100%;border-collapse:collapse;background:var(--panel);border:1px solid var(--line);border-radius:.75rem;overflow:hidden;box-shadow:var(--soft-shadow)}.data-table td,.data-table th{padding:.7rem;border-bottom:1px solid var(--line);text-align:left;font-size:.93rem}.data-table th{background:#f6ebdf;font-weight:700}.data-table tbody tr:hover{background:#fff4e9}.landing-wrap{min-height:100dvh;background:radial-gradient(circle at 5% 15%,rgba(190,77,37,.22),transparent 35%),radial-gradient(circle at 95% 90%,rgba(57,111,82,.18),transparent 32%),linear-gradient(140deg,#f4e5d3,#f0ede6);display:grid;place-items:center;padding:calc(env(safe-area-inset-top, 0px) + 1rem) 1rem calc(env(safe-area-inset-bottom, 0px) + 1rem);overflow-x:hidden}.landing-panel{width:min(980px,100%);background:rgba(255,248,239,.92);border:1px solid var(--line);border-radius:1.2rem;padding:1.5rem;box-shadow:0 28px 58px rgba(50,44,34,.14);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);animation:fade-rise .5s ease-out}.landing-title{margin:0;color:#2a3a46;font-size:clamp(1.5rem,3.4vw,2.2rem);font-weight:800;text-align:center;letter-spacing:.01em}.landing-auth-grid{margin-top:1rem;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:.9rem;gap:.9rem;align-items:stretch}.landing-auth-card{background:linear-gradient(145deg,#fffaf3,#fff3e4);min-height:420px;display:flex;flex-direction:column}.landing-auth-form{margin-top:0;display:flex;flex-direction:column;gap:.5rem;flex:1 1}.landing-auth-form label{font-size:.82rem;font-weight:700;color:#445563}.landing-auth-form button,.landing-auth-form input,.landing-auth-form select{width:100%;border:1px solid var(--line);border-radius:.5rem;padding:.7rem .74rem}.landing-auth-form button{margin-top:auto;background:var(--accent);border-color:var(--accent);color:#fff;font-weight:700;cursor:pointer}.landing-card{border:1px solid var(--line);border-radius:.75rem;padding:.8rem;background:linear-gradient(145deg,#fffaf3,#fff5ea);transition:transform .2s ease,box-shadow .2s ease}.landing-card:hover{transform:translateY(-2px);box-shadow:var(--soft-shadow)}.landing-card h3{margin:0 0 .4rem}.landing-card p{margin:0;color:#50616f}.landing-signup-card.is-expanded{min-height:560px}.login-wrap{min-height:100vh;display:grid;place-items:center;background:radial-gradient(circle at 12% 5%,rgba(190,77,37,.22),transparent 34%),radial-gradient(circle at 92% 90%,rgba(39,90,63,.18),transparent 30%),linear-gradient(140deg,#f6e6d6,#f0ede6);padding:1rem}.login-layout{width:min(980px,100%);display:grid;grid-template-columns:1.05fr 1fr;grid-gap:1rem;gap:1rem;align-items:stretch}.login-intro{background:rgba(255,247,236,.92);border:1px solid var(--line);border-radius:1rem;padding:1.2rem;box-shadow:0 24px 42px rgba(40,32,24,.13);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);animation:fade-rise .45s ease-out}.login-intro h1{margin:.45rem 0 .65rem;line-height:1.2}.login-intro p{margin:0;color:#475766}.login-intro ul{margin:.8rem 0 1rem 1rem;padding:0;display:grid;grid-gap:.45rem;gap:.45rem;color:#394b58}.login-highlight-row{display:flex;flex-wrap:wrap;gap:.45rem}.login-highlight-row span{border:1px solid #d9c8b4;border-radius:999px;padding:.3rem .65rem;font-size:.74rem;font-weight:700;letter-spacing:.02em;background:#fff6eb;color:#4a3829}.login-kicker{margin:0;color:var(--accent);text-transform:uppercase;letter-spacing:.07em;font-size:.76rem;font-weight:700}.login-card{width:100%;background:rgba(255,249,241,.95);border:1px solid var(--line);border-radius:1rem;padding:1.2rem;box-shadow:0 24px 42px rgba(40,32,24,.13);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);animation:fade-rise .55s ease-out}.login-card h2{margin:0}.login-card button,.login-card input,.login-card select{width:100%;margin-top:.75rem;border-radius:.5rem;border:1px solid var(--line);padding:.7rem}.login-card button{background:var(--accent);border-color:var(--accent);color:#fff;font-weight:700;cursor:pointer}.auth-toggle-row{display:grid;grid-template-columns:1fr 1fr;grid-gap:.5rem;gap:.5rem;margin:.9rem 0}.auth-toggle-btn{margin-top:0;border:1px solid var(--line);background:#fff;color:var(--ink);font-weight:600}.auth-toggle-btn.active{border-color:var(--accent);background:linear-gradient(140deg,var(--accent),var(--accent-deep));color:#fff}.modal-backdrop{position:fixed;inset:0;background:rgba(0,0,0,.45);display:grid;place-items:center;z-index:120;padding:1rem}.modal-card{width:min(560px,100%);background:#fff8ef;border:1px solid var(--line);border-radius:1rem;padding:1rem;box-shadow:0 20px 40px rgba(0,0,0,.22)}.error-text{color:#9c2f1a;margin-top:.5rem}.status-pill{display:inline-block;border-radius:999px;padding:.18rem .5rem;font-size:.78rem;font-weight:700;border:1px solid var(--line);background:#fff}.status-pending,.status-pending-admin,.status-pending-super-admin{background:#fff4dd;border-color:#e2c77a}.status-approved{background:#e8f6ee;border-color:#6fbe91}.status-rejected{background:#fdebec;border-color:#d37676}.action-stack{display:grid;grid-gap:.45rem;gap:.45rem}.note-muted{color:#6d6d6d}.attendance-calendar-panel{display:grid;grid-gap:.7rem;gap:.7rem}.attendance-calendar-head{display:flex;align-items:baseline;justify-content:space-between;gap:.8rem}.attendance-calendar-head h3,.attendance-calendar-head p{margin:0}.attendance-calendar-legend{display:flex;flex-wrap:wrap;gap:.45rem}.attendance-legend-item{display:inline-flex;align-items:center;border-radius:999px;padding:.24rem .6rem;font-size:.76rem;font-weight:700;border:1px solid var(--line)}.attendance-calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));grid-gap:.35rem;gap:.35rem}.attendance-calendar-weekday{font-size:.74rem;font-weight:700;color:#5f5f5f;text-align:center;padding:.2rem 0}.attendance-calendar-cell{min-height:62px;border-radius:.55rem;border:1px solid var(--line);background:#fff;display:flex;flex-direction:column;justify-content:space-between;padding:.35rem}button.attendance-calendar-cell{width:100%;text-align:left;font:inherit;color:inherit;cursor:pointer}.attendance-calendar-cell.is-selected{outline:2px solid #5b3b2b;outline-offset:1px}.attendance-calendar-cell strong{font-size:.84rem}.attendance-calendar-cell small{font-size:.68rem;color:#585858}.attendance-calendar-cell.is-filler{border:0;background:transparent;min-height:0;padding:0}.attendance-present,.status-present{background:#e8f6ee;border-color:#6fbe91}.attendance-half-day,.status-half-day{background:#fff4dd;border-color:#e2c77a}.attendance-absent,.status-absent{background:#fdebec;border-color:#d37676}@keyframes fade-rise{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@media (max-width:900px){.admin-shell{grid-template-columns:1fr}.sidebar{height:auto;position:static}.login-layout{grid-template-columns:1fr}.landing-wrap{padding:calc(env(safe-area-inset-top, 0px) + .7rem) .7rem calc(env(safe-area-inset-bottom, 0px) + .7rem)}.landing-panel{padding:1rem;border-radius:1rem}.landing-title{font-size:clamp(1.3rem,5.8vw,1.7rem)}.landing-auth-grid{grid-template-columns:1fr;gap:.7rem}.landing-auth-card,.landing-signup-card.is-expanded{min-height:auto}.landing-auth-form button,.landing-auth-form input,.landing-auth-form select{font-size:16px;padding:.78rem .8rem}.attendance-calendar-head{flex-direction:column;align-items:flex-start}}@media (display-mode:standalone){.landing-wrap{padding-top:calc(env(safe-area-inset-top, 0px) + 1rem);padding-bottom:calc(env(safe-area-inset-bottom, 0px) + 1rem)}.landing-panel{box-shadow:0 18px 34px rgba(50,44,34,.14)}}