:root{--bg:#ececec;--surface:#fff;--border:#dcdcdc;--text:#1a1a1a;--text-muted:#666;--row-hover:#fafbfc;--shadow:0 1px 3px #14141e14;--overlay:#14141e66;--radius:8px;--primary:#1e63bd;--primary-dark:#164a8f;--nav-active-bg:#e6f0fb;--accent-pink:#e3599e;--success:#2f9775;--success-dark:#217259;--success-bg:#e2f3e8;--success-border:#c7e4d3;--warning:#f2a91f;--warning-dark:#8a6300;--warning-bg:#fdf1d9;--danger:#b3403a;--danger-dark:#8f312c;--danger-bg:#fbe4e2;--danger-border:#f0c3c0}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}}:root[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:#121212;--surface:#1e1e1e;--border:#3a3a3a;--text:#f0f0f0;--text-muted:#a0a0a0;--row-hover:#232323;--shadow:0 1px 3px #00000080;--overlay:#0009;--primary:#4a8fe0;--primary-dark:#6ea8ec;--nav-active-bg:#1b2c40;--accent-pink:#f28bc4;--success:#4cbf99;--success-dark:#8fe0c4;--success-bg:#1e3a30;--success-border:#2d5c4a;--warning:#f2a91f;--warning-dark:#f2c46b;--warning-bg:#3a2f14;--danger:#e2685f;--danger-dark:#c94f45;--danger-bg:#3a2422;--danger-border:#5c3430}:root[data-theme=light]{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--bg:#ececec;--surface:#fff;--border:#dcdcdc;--text:#1a1a1a;--text-muted:#666;--row-hover:#fafbfc;--shadow:0 1px 3px #14141e14;--overlay:#14141e66;--primary:#1e63bd;--primary-dark:#164a8f;--nav-active-bg:#e6f0fb;--accent-pink:#e3599e;--success:#2f9775;--success-dark:#217259;--success-bg:#e2f3e8;--success-border:#c7e4d3;--warning:#f2a91f;--warning-dark:#8a6300;--warning-bg:#fdf1d9;--danger:#b3403a;--danger-dark:#8f312c;--danger-bg:#fbe4e2;--danger-border:#f0c3c0}*{box-sizing:border-box}html,body,#root{height:100%}body{background:var(--bg);color:var(--text);margin:0;font-family:Roboto,-apple-system,BlinkMacSystemFont,Segoe UI,Helvetica,Arial,sans-serif;font-size:15px;font-weight:300;line-height:1.5;overflow-x:hidden}h1,h2,h3{font-family:Roboto Condensed,Roboto,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-weight:700}a{color:var(--primary-dark);text-decoration:none}a:hover{text-decoration:underline}button{font-family:inherit}.topbar{background:var(--surface);border-bottom:1px solid var(--border);z-index:10;position:sticky;top:0}.topbar-inner{flex-wrap:wrap;align-items:center;gap:12px 24px;max-width:1100px;min-height:56px;margin:0 auto;padding:10px 20px;display:flex}.brand{color:var(--text);font-size:16px;font-weight:700}.brand:hover{text-decoration:none}.brand-logo{width:auto;height:36px;display:block}.mainnav{flex-wrap:wrap;flex:auto;gap:4px;display:flex}.mainnav a{border-radius:var(--radius);color:var(--text-muted);white-space:nowrap;padding:8px 12px;font-size:14px;font-weight:500}.mainnav a:hover{background:var(--bg);text-decoration:none}.mainnav a.active{background:var(--nav-active-bg);color:var(--primary-dark)}.topbar-right{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.who{color:var(--text-muted);word-break:break-all;font-size:13px}.role-badge{background:var(--bg);border:1px solid var(--border);text-transform:uppercase;letter-spacing:.03em;border-radius:999px;padding:1px 8px;font-size:11px}.link-btn{color:var(--text-muted);cursor:pointer;background:0 0;border:none;padding:0;font-size:13px}.link-btn:hover{color:var(--danger);text-decoration:underline}main.container{max-width:1100px;margin:0 auto;padding:28px 20px 60px}.page-header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-bottom:20px;display:flex}.page-header h1{margin:0;font-size:22px}.page-header p.subtitle{color:var(--text-muted);margin:4px 0 0;font-size:14px}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);margin-bottom:20px;padding:20px;overflow-x:auto}.stat-grid{grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:16px;margin-bottom:24px;display:grid}.stat-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);padding:16px 18px}.stat-card .num{font-size:26px;font-weight:700}.stat-card .label{color:var(--text-muted);margin-top:2px;font-size:13px}.stat-card.warn .num{color:var(--warning-dark)}.stat-card.danger .num{color:var(--danger)}.stat-card.good .num{color:var(--primary)}table{border-collapse:collapse;width:100%;min-width:480px;font-size:14px}th,td{text-align:left;border-bottom:1px solid var(--border);padding:10px 12px}th{color:var(--text-muted);text-transform:uppercase;letter-spacing:.03em;font-size:12px;font-weight:600}tbody tr:hover{background:var(--row-hover)}.badge{border-radius:999px;padding:2px 9px;font-size:12px;font-weight:600;display:inline-block}.badge-pending{background:var(--warning-bg);color:var(--warning-dark)}.badge-approved{background:var(--success-bg);color:var(--success-dark)}.badge-denied{background:var(--danger-bg);color:var(--danger)}.type-tag{background:var(--bg);border:1px solid var(--accent-pink);color:var(--text);text-transform:capitalize;border-radius:999px;padding:2px 9px;font-size:12px;display:inline-block}.btn{background:var(--primary);color:#fff;border-radius:var(--radius);cursor:pointer;border:none;padding:9px 16px;font-size:14px;font-weight:600;display:inline-block}.btn:hover{background:var(--primary-dark);text-decoration:none}.btn:disabled{opacity:.6;cursor:not-allowed}.btn-secondary{background:var(--surface);color:var(--text);border:1px solid var(--border)}.btn-secondary:hover{background:var(--bg)}.btn-danger{background:var(--danger)}.btn-danger:hover{background:var(--danger-dark)}.btn-outline-danger{color:var(--danger);border:1px solid var(--danger);background:0 0}.btn-outline-danger:hover{background:var(--danger-bg)}.btn-sm{padding:5px 11px;font-size:12.5px}.btn-row{flex-wrap:wrap;gap:8px;display:flex}.decision-actions{background:var(--warning-bg);border-radius:var(--radius);gap:8px;padding:6px 8px;display:inline-flex}form.stacked label{color:var(--text-muted);margin:14px 0 5px;font-size:13px;font-weight:600;display:block}form.stacked input[type=text],form.stacked input[type=email],form.stacked input[type=password],form.stacked input[type=date],form.stacked input[type=time],form.stacked select,form.stacked textarea{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);width:100%;color:var(--text);padding:9px 11px;font-family:inherit;font-size:14px}form.stacked textarea{resize:vertical;min-height:70px}form.stacked .hint{color:var(--text-muted);margin-top:4px;font-size:12px}form.stacked .row{flex-wrap:wrap;gap:16px;display:flex}form.stacked .row>div{flex:140px}.filter-bar{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);flex-wrap:wrap;align-items:flex-end;gap:10px;margin-bottom:18px;padding:14px 16px;display:flex}.filter-bar>div{flex:130px;min-width:110px}.filter-bar label{color:var(--text-muted);margin-bottom:4px;font-size:12px;font-weight:600;display:block}.filter-bar select,.filter-bar input{border:1px solid var(--border);border-radius:6px;width:100%;padding:7px 9px;font-family:inherit;font-size:13px}.flash{border-radius:var(--radius);margin-bottom:18px;padding:10px 14px;font-size:14px}.flash-error{background:var(--danger-bg);color:var(--danger);border:1px solid var(--danger-border)}.flash-success{background:var(--success-bg);color:var(--success-dark);border:1px solid var(--success-border)}.empty-state{text-align:center;color:var(--text-muted);padding:40px 20px}.login-wrap{background:var(--bg);justify-content:center;align-items:center;min-height:100vh;padding:20px;display:flex}.login-card{background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow);border-radius:12px;width:100%;max-width:360px;padding:36px 32px;position:relative;overflow:hidden}.login-card:before{content:"";background:linear-gradient(90deg, var(--accent-pink), var(--success), var(--warning), var(--primary));height:4px;position:absolute;top:0;left:0;right:0}.login-logo{width:100%;max-width:220px;height:auto;margin:0 auto 16px;display:block}.login-card h1{text-align:center;margin:0 0 4px;font-size:20px}.login-card p.subtitle{color:var(--text-muted);text-align:center;margin:0 0 20px;font-size:13.5px}.login-card .btn{width:100%;margin-top:18px}.login-hint{color:var(--text-muted);text-align:center;margin-top:16px;font-size:12px}.text-muted{color:var(--text-muted)}.mt-0{margin-top:0}.trend-chart{flex-wrap:nowrap;align-items:flex-end;gap:16px;height:140px;display:flex;overflow-x:auto}.trend-chart .trend-col{text-align:center;flex:1 1 0;min-width:32px}@media (width<=640px){main.container{padding:20px 14px 48px}.page-header h1{font-size:19px}.login-card{padding:28px 20px}.card{padding:14px}.stat-card{padding:12px 14px}.stat-card .num{font-size:22px}.topbar-right{justify-content:space-between;width:100%}.who{display:none}}.modal-backdrop{background:var(--overlay);z-index:100;justify-content:center;align-items:center;padding:16px;display:flex;position:fixed;inset:0;overflow-y:auto}.modal{background:var(--surface);box-shadow:var(--shadow);border-radius:12px;width:100%;max-width:420px;max-height:calc(100vh - 32px);padding:24px;overflow-y:auto}.modal h2{margin:0 0 16px;font-size:18px}.theme-toggle{background:var(--surface);border:1px solid var(--border);width:60px;height:60px;box-shadow:var(--shadow);cursor:pointer;z-index:200;border-radius:999px;justify-content:center;align-items:center;font-size:28px;display:flex;position:fixed;bottom:20px;right:20px}.shift-time-row{flex-wrap:wrap;gap:16px;display:flex}.shift-time-row>div{flex:140px}.shift-legend{flex-wrap:wrap;gap:14px;margin-bottom:16px;display:flex}.shift-legend-item{color:var(--text-muted);align-items:center;gap:6px;font-size:13px;display:flex}.shift-chip{cursor:pointer;border-radius:999px;justify-content:center;align-items:center;min-width:24px;height:22px;padding:0 6px;font-size:11px;font-weight:700;display:inline-flex}.shift-chip-event{border-radius:6px}.calendar-grid{grid-template-columns:repeat(7,1fr);gap:6px;display:grid}.calendar-weekday{color:var(--text-muted);text-align:center;padding-bottom:4px;font-size:12px;font-weight:700}.calendar-cell{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);flex-direction:column;gap:4px;min-height:100px;padding:6px;display:flex}.calendar-cell-out{opacity:.4}.calendar-cell-header{color:var(--text-muted);justify-content:space-between;align-items:center;font-size:12px;font-weight:600;display:flex}.calendar-add-btn{background:var(--bg);color:var(--text);cursor:pointer;border:none;border-radius:4px;width:18px;height:18px;font-size:13px;line-height:1}.calendar-slot{flex-wrap:wrap;align-items:center;gap:3px;display:flex}.calendar-slot-label{color:var(--text-muted);width:100%;font-size:10px}.calendar-event{border:1px dashed var(--accent-pink);border-radius:6px;align-items:center;gap:4px;padding:2px 4px;display:flex}.calendar-event-name{color:var(--text-muted);font-size:10px}.employee-picker{border:1px solid var(--border);border-radius:var(--radius);flex-direction:column;gap:6px;max-height:200px;padding:10px;display:flex;overflow-y:auto}.employee-picker-item{align-items:center;gap:8px;font-size:14px;display:flex}.employee-picker-item.disabled{opacity:.5}.theme-toggle:hover{background:var(--bg)}
