:root{--brand-dark-green: #313e2a;--brand-light-green: #586049;--brand-green: #858c60;--brand-brown: #5d2612;--brand-skin: #cdb79f;--brand-yellowish: #dec189;--primary-50: #f7f8f4;--primary-100: #e8ebdf;--primary-200: #d2dac4;--primary-300: #b5c3a4;--primary-400: #858c60;--primary-500: #586049;--primary-600: #313e2a;--primary-700: #263120;--primary-800: #1b2317;--primary-900: #10160d;--accent-blue: #3b82f6;--accent-indigo: #586049;--accent-purple: #313e2a;--accent-cyan: #858c60;--accent-amber: #dec189;--accent-rose: #f43f5e;--accent-brown: #5d2612;--bg-app: #0b0f19;--bg-surface: #111827;--bg-surface-elevated: #1f2937;--bg-glass: rgba(17, 24, 39, .75);--bg-glass-card: rgba(31, 41, 55, .65);--bg-glass-input: rgba(15, 23, 42, .7);--border-light: rgba(255, 255, 255, .08);--border-medium: rgba(255, 255, 255, .15);--border-primary: rgba(88, 96, 73, .45);--text-main: #f9fafb;--text-secondary: #9ca3af;--text-muted: #6b7280;--text-inverse: #111827;--shadow-sm: 0 1px 2px 0 rgba(0, 0, 0, .4);--shadow-md: 0 4px 6px -1px rgba(0, 0, 0, .5), 0 2px 4px -1px rgba(0, 0, 0, .3);--shadow-lg: 0 10px 25px -5px rgba(0, 0, 0, .6), 0 8px 10px -6px rgba(0, 0, 0, .4);--shadow-glow: 0 0 20px rgba(16, 185, 129, .25);--shadow-glow-blue: 0 0 20px rgba(59, 130, 246, .25);--radius-sm: 6px;--radius-md: 10px;--radius-lg: 16px;--radius-xl: 24px;--transition-fast: .15s cubic-bezier(.4, 0, .2, 1);--transition-normal: .25s cubic-bezier(.4, 0, .2, 1);--transition-smooth: .35s cubic-bezier(.16, 1, .3, 1);--font-family: "Plus Jakarta Sans", system-ui, -apple-system, sans-serif;--font-mono: "Space Grotesk", monospace}[data-theme=light]{--bg-app: #f8fafc;--bg-surface: #ffffff;--bg-surface-elevated: #f1f5f9;--bg-glass: rgba(255, 255, 255, .85);--bg-glass-card: rgba(255, 255, 255, .9);--bg-glass-input: rgba(241, 245, 249, .9);--border-light: rgba(0, 0, 0, .08);--border-medium: rgba(0, 0, 0, .15);--text-main: #0f172a;--text-secondary: #475569;--text-muted: #94a3b8;--text-inverse: #ffffff;--shadow-sm: 0 1px 3px 0 rgba(0, 0, 0, .05);--shadow-md: 0 4px 12px rgba(0, 0, 0, .05);--shadow-lg: 0 12px 24px -4px rgba(0, 0, 0, .08)}*{box-sizing:border-box;margin:0;padding:0}body{font-family:var(--font-family);background-color:var(--bg-app);color:var(--text-main);line-height:1.5;-webkit-font-smoothing:antialiased;overflow-x:hidden;min-height:100vh}.glass-panel{background:var(--bg-glass);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border:1px solid var(--border-light);border-radius:var(--radius-lg);box-shadow:var(--shadow-md)}.glass-card{background:var(--bg-glass-card);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border:1px solid var(--border-light);border-radius:var(--radius-md);transition:all var(--transition-normal)}.glass-card:hover{border-color:var(--border-primary);transform:translateY(-2px);box-shadow:var(--shadow-glow)}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:#0000001a}::-webkit-scrollbar-thumb{background:#ffffff26;border-radius:4px}::-webkit-scrollbar-thumb:hover{background:var(--primary-500)}.font-mono{font-family:var(--font-mono)}.gradient-text{background:linear-gradient(135deg,var(--primary-400),var(--accent-cyan));-webkit-background-clip:text;-webkit-text-fill-color:transparent}.gradient-text-blue{background:linear-gradient(135deg,var(--accent-blue),var(--accent-purple));-webkit-background-clip:text;-webkit-text-fill-color:transparent}@keyframes fadeIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes modalPop{0%{opacity:0;transform:scale(.96) translateY(8px)}to{opacity:1;transform:scale(1) translateY(0)}}@keyframes pulseGlow{0%,to{opacity:.8;transform:scale(1)}50%{opacity:1;transform:scale(1.05)}}.animate-fade-in{animation:fadeIn var(--transition-smooth) forwards}.animate-pulse-glow{animation:pulseGlow 3s infinite ease-in-out}input[type=date],input[type=time],input[type=datetime-local]{color-scheme:dark}[data-theme=light] input[type=date],[data-theme=light] input[type=time],[data-theme=light] input[type=datetime-local]{color-scheme:light}input[type=date]::-webkit-calendar-picker-indicator,input[type=time]::-webkit-calendar-picker-indicator{cursor:pointer;filter:invert(.8) sepia(100%) saturate(300%) hue-rotate(110deg);opacity:.85;transition:opacity var(--transition-fast)}[data-theme=light] input[type=date]::-webkit-calendar-picker-indicator,[data-theme=light] input[type=time]::-webkit-calendar-picker-indicator{filter:invert(.2) sepia(100%) saturate(300%) hue-rotate(110deg)}input[type=date]::-webkit-calendar-picker-indicator:hover,input[type=time]::-webkit-calendar-picker-indicator:hover{opacity:1}.custom-select-wrapper{position:relative;width:100%}.custom-select-wrapper select{appearance:none;-webkit-appearance:none;-moz-appearance:none;padding-right:36px!important}.custom-select-icon{position:absolute;right:12px;top:50%;transform:translateY(-50%);pointer-events:none;color:var(--primary-400);transition:transform var(--transition-fast)}.custom-select-wrapper:focus-within .custom-select-icon{transform:translateY(-50%) rotate(180deg);color:var(--primary-300)}.modal-close-btn{background:var(--bg-surface-elevated)!important;border:1px solid var(--border-medium)!important;color:var(--text-secondary)!important;box-shadow:0 1px 3px #0000001f!important;transition:all .2s cubic-bezier(.16,1,.3,1)!important}[data-theme=light] .modal-close-btn{background:#f1f5f9!important;border:1px solid #cbd5e1!important;color:#475569!important}.modal-close-btn:hover{background:#ef444426!important;color:#ef4444!important;border-color:#ef444473!important;transform:rotate(90deg) scale(1.08)!important}.perm-matrix-table{width:100%;border-collapse:separate;border-spacing:0;border:1px solid var(--border-medium);border-radius:var(--radius-md);overflow:hidden;font-size:12px}.perm-matrix-table th{background:var(--bg-surface-elevated);padding:10px 12px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;font-size:11px;color:var(--text-secondary);border-bottom:1px solid var(--border-medium);text-align:center}.perm-matrix-table th:first-child{text-align:left}.perm-matrix-table td{padding:10px 12px;border-bottom:1px solid var(--border-light);text-align:center;vertical-align:middle}.perm-matrix-table tr:last-child td{border-bottom:none}.perm-matrix-table tr:hover td{background:#10b98108}.perm-check-cell{cursor:pointer;display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:6px;border:1px solid var(--border-medium);background:var(--bg-surface);transition:all .15s ease;-webkit-user-select:none;user-select:none}.perm-check-cell.checked{background:var(--primary-600);border-color:var(--primary-500);color:#fff;box-shadow:0 0 8px #10b98159}.perm-check-cell:not(.disabled):hover{border-color:var(--primary-400);transform:scale(1.05)}.perm-check-cell.disabled{opacity:.3;cursor:not-allowed;background:transparent}.global-btn{transition:all .2s cubic-bezier(.16,1,.3,1)!important}.global-btn:not(:disabled):hover,button.global-btn:not(:disabled):hover,button.btn-primary:not(:disabled):hover,button.btn-secondary:not(:disabled):hover,.global-btn-primary:not(:disabled):hover,.global-btn-secondary:not(:disabled):hover,.global-btn-outline:not(:disabled):hover,.btn-brand-action:not(:disabled):hover{background:#5d2612!important;border-color:#5d2612!important;color:#fff!important;box-shadow:0 4px 14px #5d261273!important}.desktop-only-scope,.desktop-only-badge,.desktop-only-user-text,.desktop-only-collapse-btn{display:flex}.mobile-only-close-btn,.mobile-bottom-nav,.mobile-sidebar-backdrop{display:none}.responsive-grid-2{display:grid;grid-template-columns:1fr 1fr;gap:14px}.responsive-grid-3{display:grid;grid-template-columns:1fr 1fr 1fr;gap:12px}.global-modal-overlay{padding:24px}.global-modal-content{border-radius:var(--radius-lg)}.global-modal-header{padding:18px 24px}.global-modal-body{padding:24px}@media (max-width: 768px){html,body,#root{overflow-x:hidden!important;max-width:100vw!important;width:100%!important}.app-navbar{position:sticky!important;top:0!important;left:0!important;right:0!important;width:100%!important;height:56px!important;margin:0!important;padding:0 14px!important;border-radius:0 0 16px 16px!important;z-index:95!important;box-shadow:0 4px 20px #00000014!important;backdrop-filter:blur(24px)!important;-webkit-backdrop-filter:blur(24px)!important}.desktop-only-scope,.desktop-only-badge,.desktop-only-user-text,.desktop-only-collapse-btn{display:none!important}.mobile-only-close-btn{display:flex!important}.app-sidebar{position:fixed!important;top:0!important;left:0!important;bottom:0!important;height:100vh!important;width:290px!important;margin:0!important;border-radius:0 20px 20px 0!important;z-index:1000!important;transform:translate(-100%);transition:transform .28s cubic-bezier(.16,1,.3,1)!important;box-shadow:0 20px 50px #0009!important;background:var(--bg-surface)!important}.app-sidebar.mobile-open{transform:translate(0)!important}.mobile-sidebar-backdrop{display:block!important;position:fixed!important;top:0!important;right:0!important;bottom:0!important;left:0!important;background:#030712a6!important;backdrop-filter:blur(4px)!important;-webkit-backdrop-filter:blur(4px)!important;z-index:999!important}.app-main{padding:12px 10px 96px!important;width:100%!important;max-width:100vw!important;overflow-x:hidden!important;box-sizing:border-box!important}.mobile-bottom-nav{display:flex!important;position:fixed!important;bottom:0!important;left:0!important;right:0!important;width:100%!important;height:64px!important;background:var(--bg-surface-elevated)!important;backdrop-filter:blur(24px)!important;-webkit-backdrop-filter:blur(24px)!important;border-top:1px solid var(--border-medium)!important;z-index:100!important;justify-content:space-around!important;align-items:center!important;padding:0 4px env(safe-area-inset-bottom,0px) 4px!important;box-shadow:0 -6px 25px #0000001f!important;transform:translateZ(0);-webkit-transform:translateZ(0)}.mobile-bottom-nav-item{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;background:none;border:none;color:var(--text-muted);cursor:pointer;padding:6px 2px;border-radius:10px;transition:all var(--transition-fast)}.mobile-bottom-nav-item.active{color:var(--primary-600);font-weight:700}.mobile-bottom-nav-item .mobile-nav-icon-wrap{display:flex;align-items:center;justify-content:center;padding:3px 12px;border-radius:12px;transition:background .15s ease}.mobile-bottom-nav-item.active .mobile-nav-icon-wrap{background:#10b9811f}.mobile-bottom-nav-item .mobile-nav-label{font-size:10px;letter-spacing:.02em}.responsive-grid-2,.responsive-grid-3{grid-template-columns:1fr!important;gap:12px!important}.glass-panel table{min-width:100%}.attendance-status-card{padding:16px!important;flex-direction:column!important;align-items:stretch!important;gap:16px!important;width:100%!important;box-sizing:border-box!important}.attendance-status-card .attendance-header-info{flex-direction:column!important;gap:12px!important;width:100%!important}.attendance-status-card button{width:100%!important;min-height:46px!important;font-size:14px!important;justify-content:center!important}}
