:root{color-scheme:light;--bg:#f4f1eb;--panel:#fff;--panel-2:#faf8f4;--text:#24211d;--muted:#716b62;--line:#e5dfd5;--accent:#b68124;--accent-2:#181818;--danger:#b83f3f;--ok:#247a54;--warn:#a96313;--shadow:0 18px 50px rgba(60,48,30,.1)}
:root[data-theme="dark"]{color-scheme:dark;--bg:#121212;--panel:#1d1d1d;--panel-2:#252525;--text:#f6f1e8;--muted:#b8b0a4;--line:#383838;--accent:#e0ad50;--accent-2:#f4eee4;--danger:#f17d7d;--ok:#72c99e;--warn:#efb266;--shadow:0 18px 50px rgba(0,0,0,.35)}
*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font:15px/1.5 Inter,Segoe UI,Arial,sans-serif}button,input,select,textarea{font:inherit}button{cursor:pointer}.hidden{display:none!important}.eyebrow{display:block;color:var(--accent);font-size:.75rem;font-weight:800;letter-spacing:.12em;text-transform:uppercase}.login-screen{min-height:100vh;display:grid;place-items:center;padding:24px;background:radial-gradient(circle at 25% 15%,rgba(182,129,36,.2),transparent 36%),var(--bg)}.login-card{width:min(440px,100%);background:var(--panel);border:1px solid var(--line);border-radius:28px;padding:36px;box-shadow:var(--shadow)}.login-logo{display:block;width:120px;height:120px;object-fit:contain;margin:0 auto 18px}.login-card h1{margin:.3rem 0}.login-card>p{text-align:center}.stack-form,.form-grid{display:grid;gap:16px}.stack-form label,.form-grid label{display:grid;gap:7px;color:var(--muted);font-weight:650}.stack-form input,.form-grid input,.form-grid select,.form-grid textarea,.branch-control select,.toolbar select,.toolbar input{width:100%;border:1px solid var(--line);border-radius:10px;background:var(--panel-2);color:var(--text);padding:11px 12px}.form-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.form-grid .full{grid-column:1/-1}.primary,.secondary,.danger,.link-button,.icon-button{border:0;border-radius:10px;padding:10px 14px;font-weight:750}.primary{background:var(--accent);color:#fff}.secondary{background:var(--panel-2);color:var(--text);border:1px solid var(--line)}.danger{background:var(--danger);color:#fff}.link-button{display:block;margin:12px auto 0;background:transparent;color:var(--accent)}.message{margin-top:14px;padding:12px;border-radius:10px;background:rgba(184,63,63,.12);color:var(--danger)}.application{min-height:100vh;display:grid;grid-template-columns:250px 1fr}.sidebar{position:sticky;top:0;height:100vh;background:#171717;color:#f5efe5;padding:20px 14px;display:flex;flex-direction:column;z-index:10}.brand{display:flex;align-items:center;gap:12px;padding:4px 8px 24px}.brand img{width:54px;height:54px;object-fit:contain;border-radius:12px}.brand div{display:grid}.brand span{font-size:.78rem;color:#bdb5aa}.sidebar nav{display:grid;gap:6px}.nav-button{border:0;background:transparent;color:#ddd6cc;text-align:left;padding:12px 14px;border-radius:11px;font-weight:700}.nav-button:hover,.nav-button.active{background:rgba(224,173,80,.16);color:#f1c675}.staging-badge{margin-top:auto;padding:10px;text-align:center;border:1px solid #544425;border-radius:10px;color:#e5b65f;font-size:.72rem;font-weight:800}.workspace{min-width:0}.topbar{position:sticky;top:0;z-index:9;display:flex;align-items:center;gap:18px;padding:15px 24px;background:color-mix(in srgb,var(--panel) 92%,transparent);backdrop-filter:blur(14px);border-bottom:1px solid var(--line)}.page-heading{margin-right:auto}.page-heading span{font-size:.72rem;color:var(--muted)}.page-heading h1{font-size:1.25rem;margin:0}.branch-control{display:flex;align-items:center;gap:8px;color:var(--muted);font-size:.8rem;font-weight:800}.branch-control select{width:auto;min-width:150px;border-color:color-mix(in srgb,var(--accent) 50%,var(--line))}.icon-button{background:var(--panel-2);color:var(--text);border:1px solid var(--line);padding:9px 11px}.user-menu{display:flex;align-items:center;gap:12px}.user-menu div{display:grid;text-align:right}.user-menu span{font-size:.75rem;color:var(--muted)}#menu-toggle,.sidebar-close{display:none}.sidebar-overlay{display:none;border:0;padding:0}.summary-box{display:grid;gap:5px;padding:14px;border:1px solid var(--line);border-radius:12px;background:var(--panel-2)}.summary-box>span{color:var(--muted)}.detail-stack{display:grid;gap:16px}.confirm-check{display:flex!important;grid-template-columns:auto 1fr!important;align-items:center;gap:10px!important}.confirm-check input{width:auto!important}.portal-empty{max-width:720px;margin:8vh auto}.portal-empty h2{font-size:1.7rem;margin:.3rem 0}.portal-empty p{color:var(--muted)}main{padding:26px;max-width:1500px;margin:auto}.page-actions,.panel-head{display:flex;justify-content:space-between;align-items:center;gap:18px;margin-bottom:18px}.page-actions h2,.panel-head h2{margin:.2rem 0}.page-actions p,.panel-head p{margin:0;color:var(--muted)}.panel{background:var(--panel);border:1px solid var(--line);border-radius:18px;padding:20px;box-shadow:0 8px 24px rgba(30,25,20,.04);margin-bottom:20px}.metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin-bottom:20px}.metric{background:var(--panel);border:1px solid var(--line);border-radius:18px;padding:20px}.metric span{display:block;color:var(--muted);font-size:.82rem}.metric strong{font-size:1.8rem}.metric.accent{border-color:color-mix(in srgb,var(--accent) 45%,var(--line))}.toolbar{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:16px}.toolbar>*{max-width:260px}.table-wrap{overflow:auto;border:1px solid var(--line);border-radius:14px}table{width:100%;border-collapse:collapse;min-width:720px}th,td{text-align:left;padding:12px 14px;border-bottom:1px solid var(--line);vertical-align:top}th{font-size:.78rem;color:var(--muted);background:var(--panel-2)}tbody tr:last-child td{border-bottom:0}.badge{display:inline-flex;padding:4px 8px;border-radius:999px;background:var(--panel-2);font-size:.76rem;font-weight:800}.badge.ok{background:rgba(36,122,84,.12);color:var(--ok)}.badge.warn{background:rgba(169,99,19,.13);color:var(--warn)}.badge.danger{background:rgba(184,63,63,.12);color:var(--danger)}.button-row{display:flex;flex-wrap:wrap;gap:8px}.empty{padding:44px;text-align:center;color:var(--muted)}.readonly-note{padding:12px 15px;border:1px solid color-mix(in srgb,var(--accent) 50%,var(--line));border-radius:12px;background:rgba(182,129,36,.08);margin-bottom:18px}.attendance-grid{display:grid;gap:10px}.attendance-row{display:grid;grid-template-columns:minmax(180px,1fr) repeat(3,auto);align-items:center;gap:8px;padding:10px;border:1px solid var(--line);border-radius:12px}.attendance-row label{display:flex;gap:4px;align-items:center;padding:7px;border-radius:8px;background:var(--panel-2)}dialog{width:min(720px,calc(100% - 24px));border:1px solid var(--line);border-radius:20px;padding:0;background:var(--panel);color:var(--text);box-shadow:var(--shadow)}dialog::backdrop{background:rgba(0,0,0,.58)}.modal-shell>header{display:flex;justify-content:space-between;align-items:center;padding:20px;border-bottom:1px solid var(--line)}.modal-shell h2{margin:.2rem 0}.modal-shell>#modal-body{padding:20px}.modal-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:20px}.toast{position:fixed;right:20px;bottom:20px;z-index:50;max-width:420px;padding:13px 16px;border-radius:12px;background:#202020;color:#fff;box-shadow:var(--shadow);transform:translateY(120px);opacity:0;transition:.2s}.toast.show{transform:none;opacity:1}.toast.error{background:#8f3030}.muted{color:var(--muted)}.danger-text{color:var(--danger);font-weight:800}
@media(max-width:980px){body.mobile-menu-open{overflow:hidden}.application{grid-template-columns:1fr}.topbar{z-index:40;padding:12px}.sidebar{position:fixed;top:65px;left:-280px;width:270px;height:calc(100vh - 65px);z-index:30;transition:left .2s ease;box-shadow:var(--shadow)}.sidebar.open{left:0}.sidebar-close{display:inline-flex;margin-left:auto;background:#292929;color:#fff;border-color:#555}.sidebar-overlay{display:block;position:fixed;inset:65px 0 0;z-index:20;background:rgba(0,0,0,.56);opacity:0;visibility:hidden;pointer-events:none;transition:opacity .2s ease,visibility .2s}.sidebar-overlay.show{opacity:1;visibility:visible;pointer-events:auto}#menu-toggle{display:block}.metrics{grid-template-columns:repeat(2,1fr)}.user-menu div{display:none}.branch-control span{display:none}main{padding:18px}}
@media(max-width:620px){.login-card{padding:24px}.page-heading{display:none}.topbar{gap:8px}.branch-control{margin-left:auto}.branch-control select{min-width:120px;max-width:145px}.user-menu .secondary{padding:8px}.metrics,.form-grid{grid-template-columns:1fr}.page-actions,.panel-head{align-items:flex-start;flex-direction:column}.panel{padding:14px}main{padding:12px}.attendance-row{grid-template-columns:1fr}.attendance-row label{justify-content:center}}
