:root{--navy: #1C3461;--navy-light: #2A4A8A;--navy-ghost: #EFF3FA;--navy-frost: #F7F9FD;--red: #C0392B;--maroon: #8B1A1A;--blue: #2471A3;--bg: #F0F3F9;--card: #FFFFFF;--border: #E2E8F4;--border-lt: #EEF2FA;--text: #374151;--muted: #6B7A99;--muted-lt: #9AA8BF;--success: #15803D;--success-bg: #DCFCE7;--warning: #B45309;--warning-bg: #FEF3C7;--shadow-sm: rgba(28,52,97,.06);--shadow-md: rgba(28,52,97,.11);--shadow-lg: rgba(28,52,97,.18);--sidebar-w: 230px;--header-h: 58px;--font: "Plus Jakarta Sans", system-ui, sans-serif;--font-mono: "JetBrains Mono", monospace}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{font-size:14px}body{font-family:var(--font);background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased;overflow:hidden;height:100vh}#root{height:100vh;display:flex;flex-direction:column}::-webkit-scrollbar{width:5px;height:5px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--border);border-radius:10px}@keyframes fadeUp{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes spin{to{transform:rotate(360deg)}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}@keyframes slideIn{0%{transform:translate(-100%)}to{transform:translate(0)}}.fade-up{animation:fadeUp .28s ease both}.fade-in{animation:fadeIn .22s ease both}.spin{animation:spin .75s linear infinite}.a0{animation:fadeUp .28s ease both}.a1{animation:fadeUp .28s .06s ease both}.a2{animation:fadeUp .28s .12s ease both}.a3{animation:fadeUp .28s .18s ease both}.a4{animation:fadeUp .28s .24s ease both}.a5{animation:fadeUp .28s .3s ease both}.card{background:var(--card);border:1px solid var(--border);border-radius:14px;padding:20px 22px;box-shadow:0 1px 4px var(--shadow-sm);transition:box-shadow .2s,transform .2s}.card:hover{box-shadow:0 6px 22px var(--shadow-md)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:9px 20px;border:none;border-radius:9px;font-family:var(--font);font-size:12px;font-weight:700;cursor:pointer;transition:all .16s;white-space:nowrap}.btn-primary{background:var(--red);color:#fff}.btn-primary:hover:not(:disabled){background:var(--maroon);box-shadow:0 4px 14px #c0392b59}.btn-secondary{background:var(--navy-ghost);color:var(--navy);border:1px solid var(--border)}.btn-secondary:hover:not(:disabled){background:var(--border)}.btn-ghost{background:transparent;color:var(--muted);border:1px solid var(--border)}.btn-ghost:hover:not(:disabled){background:var(--navy-ghost);color:var(--navy)}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-sm{padding:6px 14px;font-size:11px;border-radius:7px}.input{width:100%;padding:10px 13px;border:1.5px solid var(--border);border-radius:9px;font-family:var(--font);font-size:13px;font-weight:500;color:var(--text);background:var(--card);outline:none;transition:border-color .16s,box-shadow .16s}.input:focus{border-color:var(--navy);box-shadow:0 0 0 3px #1c346114}.input::placeholder{color:var(--muted-lt)}.label{display:block;font-size:11px;font-weight:700;color:var(--muted);text-transform:uppercase;letter-spacing:.06em;margin-bottom:6px}.badge{display:inline-block;padding:2px 9px;border-radius:20px;font-size:11px;font-weight:700}.badge-success{background:var(--success-bg);color:var(--success)}.badge-warning{background:var(--warning-bg);color:var(--warning)}.badge-error{background:#fee2e2;color:var(--red)}.badge-info{background:#dbeafe;color:var(--blue)}.badge-default{background:var(--navy-ghost);color:var(--navy)}.tbl{width:100%;border-collapse:collapse;font-size:12.5px}.tbl th{padding:10px 14px;background:var(--navy);color:#fff;font-size:10.5px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;border-bottom:2px solid var(--red);text-align:left;white-space:nowrap}.tbl td{padding:10px 14px;border-bottom:1px solid var(--border-lt);vertical-align:middle}.tbl tr:nth-child(2n) td{background:var(--navy-frost)}.tbl tr:hover td{background:var(--navy-ghost)!important}.page-title{font-size:18px;font-weight:800;color:var(--navy);letter-spacing:-.02em}.page-sub{font-size:12px;color:var(--muted);margin-top:2px;font-weight:500}.spinner{width:24px;height:24px;border:3px solid var(--border-lt);border-top-color:var(--red);border-radius:50%;animation:spin .75s linear infinite}.empty{text-align:center;padding:48px 24px;color:var(--muted)}.empty-icon{font-size:36px;margin-bottom:12px}.empty-text{font-size:13px;font-weight:600}.form-group{margin-bottom:16px}select.input{cursor:pointer}
