:root{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Microsoft JhengHei,PingFang TC,Helvetica Neue,Arial,sans-serif;font-size:18px;line-height:1.5;color:#1e293b;-webkit-text-size-adjust:100%;--brand-indigo: #4f46e5;--brand-violet: #7c3aed;--brand-ring: rgba(99, 102, 241, .18)}*{box-sizing:border-box}body{margin:0;background:#f8fafc;font-size:18px}button{min-height:40px;font-size:16px;cursor:pointer;-webkit-tap-highlight-color:rgba(0,0,0,.05);-webkit-appearance:none;-moz-appearance:none;appearance:none}button:disabled{cursor:not-allowed;opacity:.6}button:focus,a:focus,[tabindex]:focus{outline:none!important}button:focus-visible,a:focus-visible,[tabindex]:focus-visible{outline:none!important;box-shadow:0 0 0 3px var(--brand-ring)}input,select,textarea{font-size:16px;font-family:inherit}input[type=text],input[type=password],input[type=number],input[type=date],input[type=time],input[type=email],input[type=tel],select,textarea{min-height:40px}table{font-size:16px}table th,table td{line-height:1.5}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-thumb{background:#c7c9f0;border-radius:5px}::-webkit-scrollbar-thumb:hover{background:#a5b4fc}.nav-item:hover{background:#8b5cf629;box-shadow:inset 8px 0 22px -14px #a78bfad9}.hover-lift{transition:box-shadow .14s ease,transform .14s ease}.hover-lift:hover{box-shadow:0 0 0 1.5px #c7d2fe,0 3px 10px #6366f129;transform:translateY(-1px)}.app-btn{transition:box-shadow .14s ease,transform .14s ease}.app-btn-primary:hover:not(:disabled){box-shadow:0 4px 14px #7c3aed61;transform:translateY(-1px)}.app-btn-danger:hover:not(:disabled){box-shadow:0 4px 14px #dc262652;transform:translateY(-1px)}.app-btn-secondary:hover:not(:disabled){box-shadow:0 0 0 1.5px #c7d2fe,0 3px 10px #6366f129;transform:translateY(-1px)}input:focus,select:focus,textarea:focus{outline:none;box-shadow:0 0 0 3px var(--brand-ring)}body:has(.modal-overlay){overflow:hidden}body:has(.modal-overlay) main{overflow:hidden!important}.app-layout{height:100vh;height:100dvh}body:has(.sidebar-backdrop){overflow:hidden}body:has(.sidebar-backdrop) main{overflow:hidden!important}@media (max-width: 768px){button,input[type=text],input[type=password],input[type=number],input[type=date],input[type=time],input[type=email],input[type=tel],select,textarea{min-height:44px}}@keyframes toast-in{0%{opacity:0;transform:translate(24px)}to{opacity:1;transform:none}}.toast-item{animation:toast-in .25s ease;transition:opacity .3s ease,transform .3s ease}.toast-item.toast-leaving{opacity:0;transform:translate(24px)}@keyframes spin{to{transform:rotate(360deg)}}
