:root{--bg: #0f1115;--bg-elevated: #161a22;--bg-card: #1b1f29;--bg-hover: #232836;--border: #2a2f3b;--text: #e7e9ee;--text-muted: #9aa1b0;--accent: #4f8dfd;--accent-hover: #6ea1ff;--accent-muted: rgba(79, 141, 253, .15);--link: #17a2b8;--danger: #f87171;--danger-muted: rgba(248, 113, 113, .15);--warning: #fbbf24;--warning-muted: rgba(251, 191, 36, .15);--success: #34d399;--success-muted: rgba(52, 211, 153, .15);--radius: 8px;--shadow: 0 4px 16px rgba(0, 0, 0, .4)}*{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;background:var(--bg);color:var(--text);font-family:-apple-system,Segoe UI,Roboto,Helvetica,Arial,sans-serif;font-size:14px;color-scheme:dark}a{color:var(--link);text-decoration:none}h1,h2,h3,h4{font-weight:600;margin:0 0 8px}button,input,select,textarea{font-family:inherit;font-size:inherit;color:var(--text)}input,select,textarea{background:var(--bg-elevated);border:1px solid var(--border);border-radius:6px;padding:8px 10px}input:focus,select:focus,textarea:focus{outline:none;border-color:var(--accent)}input[type=date]::-webkit-calendar-picker-indicator{filter:opacity(.6)}button{cursor:pointer;background:var(--bg-elevated);border:1px solid var(--border);border-radius:6px;padding:8px 14px;transition:background .15s,border-color .15s}button:hover{background:var(--bg-hover)}button.primary{background:var(--accent);border-color:var(--accent);color:#0b0e14;font-weight:600}button.primary:hover{background:var(--accent-hover)}button.danger{border-color:var(--danger);color:var(--danger);background:transparent}button.danger:hover{background:var(--danger-muted)}button:disabled{opacity:.5;cursor:not-allowed}.icon-btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;width:32px;height:32px;padding:0;border-radius:6px;background:transparent;border:1px solid transparent;color:var(--text-muted)}.icon-btn:hover{background:var(--bg-hover);border-color:var(--border);color:var(--text)}.icon-btn.primary{background:var(--accent);border-color:var(--accent);color:#0b0e14}.icon-btn.primary:hover{background:var(--accent-hover)}.icon-btn.danger:hover{background:var(--danger-muted);border-color:var(--danger);color:var(--danger)}.icon-btn span{font-size:13px;font-weight:600;white-space:nowrap}.icon-btn:has(span){width:auto;padding:0 12px 0 10px}button svg{flex-shrink:0}table{width:100%;border-collapse:collapse}th,td{text-align:left;padding:10px 12px;border-bottom:1px solid var(--border)}th{color:var(--text-muted);font-weight:600;font-size:12px;text-transform:uppercase;letter-spacing:.04em}th.sortable:hover{color:var(--text)}tr:hover td{background:var(--bg-hover)}.app-shell{display:flex;min-height:100vh}.sidebar{width:220px;flex-shrink:0;background:var(--bg-elevated);border-right:1px solid var(--border);display:flex;flex-direction:column;padding:16px 0;position:sticky;top:0;height:100vh;overflow-y:auto}.sidebar-brand{padding:16px;font-weight:700;font-size:16px;border-bottom:1px solid var(--border);margin-bottom:12px}.sidebar-quick-actions{display:flex;flex-direction:column;gap:6px;padding:0 16px 16px;border-bottom:1px solid var(--border);margin-bottom:8px}.sidebar-quick-actions .icon-btn{width:100%;justify-content:flex-start}.sidebar nav a{display:flex;align-items:center;gap:10px;padding:10px 16px;color:var(--text-muted);text-decoration:none;font-size:13px;border-left:3px solid transparent}.sidebar nav a svg{flex-shrink:0;opacity:.8}.sidebar nav a.active svg{opacity:1}.sidebar nav a:hover{color:var(--text);background:var(--bg-hover)}.sidebar nav a.active{color:var(--text);border-left-color:var(--accent);background:var(--accent-muted)}.sidebar-footer{margin-top:auto;padding:12px 16px;border-top:1px solid var(--border);font-size:12px;color:var(--text-muted)}.sidebar-account-link{display:flex;align-items:center;gap:6px;color:inherit;text-decoration:none;padding:4px 6px;margin:-4px -6px;border-radius:6px}.sidebar-account-link:hover{background:var(--bg-hover);color:var(--text)}.main-content{flex:1;padding:24px 32px;max-width:1200px}.card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);padding:20px;margin-bottom:16px}.dashboard-page{max-width:1400px;margin:0 auto;padding:24px 32px;min-height:100vh}.dashboard-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:16px}.dashboard-grid .card{margin-bottom:0}.page-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px}.toolbar{display:flex;gap:8px;align-items:center;margin-bottom:16px;flex-wrap:wrap}.tabs{display:flex;gap:4px;border-bottom:1px solid var(--border);margin-bottom:16px;flex-wrap:wrap}.tabs button{background:transparent;border:none;border-radius:6px 6px 0 0;padding:10px 16px;color:var(--text-muted);font-weight:500;position:relative;top:1px}.tabs button:hover{background:var(--bg-hover);color:var(--text)}.tabs button.active{color:var(--accent);border-bottom:2px solid var(--accent)}.form-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:14px}.form-field{display:flex;flex-direction:column;gap:4px}.form-field label{font-size:12px;color:var(--text-muted)}.form-field.full{grid-column:1 / -1}.badge{display:inline-block;padding:2px 8px;border-radius:999px;font-size:11px;font-weight:600}.badge.current{background:var(--success-muted);color:var(--success)}.badge.future{background:var(--accent-muted);color:var(--accent-hover)}.badge.past{background:var(--bg-hover);color:var(--text-muted)}.badge.vacation{background:var(--warning-muted);color:var(--warning)}.banner{padding:12px 14px;border-radius:6px;margin-bottom:12px;font-size:13px}.banner.warning{background:var(--warning-muted);color:var(--warning);border:1px solid var(--warning)}.banner.info{background:var(--accent-muted);color:var(--accent-hover);border:1px solid var(--accent)}.banner.error{background:var(--danger-muted);color:var(--danger);border:1px solid var(--danger)}.empty-state{color:var(--text-muted);padding:32px;text-align:center}.login-shell{min-height:100vh;display:flex;align-items:center;justify-content:center}.login-card{width:340px}.text-muted{color:var(--text-muted)}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#0009;display:flex;align-items:center;justify-content:center;z-index:50}.modal{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);padding:24px;width:480px;max-height:90vh;overflow-y:auto}.fc{--fc-border-color: var(--border);--fc-page-bg-color: var(--bg-card);--fc-neutral-bg-color: var(--bg-elevated);--fc-list-event-hover-bg-color: var(--bg-hover);--fc-today-bg-color: rgba(79, 141, 253, .08);color:var(--text)}.fc .fc-button{background:var(--bg-elevated);border-color:var(--border);text-transform:capitalize}.fc .fc-button:hover{background:var(--bg-hover)}.fc .fc-button-primary:not(:disabled).fc-button-active{background:var(--accent);border-color:var(--accent);color:#0b0e14}.fc-daygrid-event,.fc-list-event{cursor:pointer}.toast-container{position:fixed;bottom:20px;right:20px;z-index:100;display:flex;flex-direction:column-reverse;gap:10px;max-width:360px}.toast{display:flex;align-items:flex-start;gap:10px;background:var(--bg-card);border:1px solid var(--border);border-left:3px solid var(--accent);border-radius:var(--radius);box-shadow:var(--shadow);padding:12px 14px;cursor:pointer;font-size:13px;line-height:1.5;animation:toast-in .2s ease-out}.toast.warning{border-left-color:var(--warning)}.toast.error{border-left-color:var(--danger)}.toast-body{flex:1;min-width:0}.toast-close{flex-shrink:0;color:var(--text-muted);margin-top:2px}@keyframes toast-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@media(prefers-reduced-motion:reduce){.toast{animation:none}}
