:root{--bg: #f4f6fb;--surface: #ffffff;--surface-2: #f8fafc;--border: #e3e8ef;--text: #1f2733;--text-muted: #687387;--primary: #1f5fff;--primary-dark: #1747c4;--primary-soft: #e8f0ff;--danger: #e23b3b;--danger-soft: #fdecec;--success: #1f9d57;--success-soft: #e6f6ec;--warning: #c98a00;--warning-soft: #fbf2dc;--radius: 10px;--radius-sm: 7px;--shadow: 0 1px 2px rgba(16, 24, 40, .06), 0 1px 3px rgba(16, 24, 40, .1);--shadow-lg: 0 10px 30px rgba(16, 24, 40, .12);--sidebar-w: 248px;font-family:Inter,Segoe UI,system-ui,-apple-system,sans-serif}*{box-sizing:border-box}html,body{height:100%;margin:0}body{background:var(--bg);color:var(--text);font-size:14px;line-height:1.5}h1,h2,h3,h4{margin:0 0 .4rem;font-weight:650}h1{font-size:1.55rem}h2{font-size:1.2rem}a{color:var(--primary);text-decoration:none}a:hover{text-decoration:underline}.btn{display:inline-flex;align-items:center;gap:.45rem;justify-content:center;border:1px solid transparent;border-radius:var(--radius-sm);padding:.5rem .9rem;font-size:.875rem;font-weight:550;cursor:pointer;background:var(--surface);color:var(--text);transition:all .12s ease;white-space:nowrap}.btn:hover{background:var(--surface-2)}.btn:disabled{opacity:.55;cursor:not-allowed}.btn-primary{background:var(--primary);color:#fff}.btn-primary:hover{background:var(--primary-dark)}.btn-outline{border-color:var(--border)}.btn-danger{background:var(--danger);color:#fff}.btn-ghost{background:transparent}.btn-sm{padding:.3rem .6rem;font-size:.8rem}.btn-block{width:100%}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow)}.card-body{padding:1.1rem 1.25rem}.card-header{padding:.9rem 1.25rem;border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between}.field{display:flex;flex-direction:column;gap:.3rem;margin-bottom:.85rem}.field label{font-size:.8rem;font-weight:550;color:var(--text-muted)}input,select,textarea{font:inherit;color:var(--text);background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-sm);padding:.5rem .65rem;width:100%}input:focus,select:focus,textarea:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-soft)}.grid{display:grid;gap:0 1rem}.grid-2{grid-template-columns:1fr 1fr}.grid-3{grid-template-columns:1fr 1fr 1fr}.grid-4{grid-template-columns:repeat(4,1fr)}@media (max-width: 820px){.grid-2,.grid-3,.grid-4{grid-template-columns:1fr}}.table{width:100%;border-collapse:collapse}.table th{text-align:left;font-size:.72rem;text-transform:uppercase;letter-spacing:.03em;color:var(--text-muted);padding:.6rem .75rem;border-bottom:1px solid var(--border)}.table td{padding:.65rem .75rem;border-bottom:1px solid var(--border)}.table tbody tr:hover{background:var(--surface-2)}.table .num{text-align:right;font-variant-numeric:tabular-nums}.table .excluded{color:var(--text-muted);background:var(--surface-2)}.badge{display:inline-block;padding:.15rem .55rem;border-radius:999px;font-size:.72rem;font-weight:600}.badge-gray{background:#eef1f6;color:#4a5567}.badge-blue{background:var(--primary-soft);color:var(--primary-dark)}.badge-green{background:var(--success-soft);color:var(--success)}.badge-amber{background:var(--warning-soft);color:var(--warning)}.badge-red{background:var(--danger-soft);color:var(--danger)}.muted{color:var(--text-muted)}.row{display:flex;gap:.6rem;align-items:center}.between{justify-content:space-between}.wrap{flex-wrap:wrap}.spacer{flex:1}.mt{margin-top:1rem}.mb{margin-bottom:1rem}.nowrap{white-space:nowrap}.right{text-align:right}.toolbar{display:flex;gap:.6rem;align-items:center;flex-wrap:wrap;margin-bottom:1rem}.toolbar input,.toolbar select{width:auto}.empty{text-align:center;color:var(--text-muted);padding:2.5rem 1rem}.error-text{color:var(--danger);font-size:.82rem}.page-title{display:flex;align-items:center;justify-content:space-between;margin-bottom:1.1rem;flex-wrap:wrap;gap:.6rem}.toast-host{position:fixed;right:1rem;bottom:1rem;display:flex;flex-direction:column;gap:.5rem;z-index:1000}.toast{background:#20293a;color:#fff;padding:.7rem 1rem;border-radius:var(--radius-sm);box-shadow:var(--shadow-lg);font-size:.85rem;max-width:360px}.toast.error{background:var(--danger)}.toast.success{background:var(--success)}
