*,*:before,*:after{box-sizing:border-box}html,body{margin:0}body{font-family:var(--font);background:var(--surface-muted);color:var(--text);font-size:15px;line-height:1.7;-webkit-font-smoothing:antialiased}a{color:var(--brand-primary)}h1,h2,h3{margin:0;line-height:1.4;font-weight:700}h1{font-size:22px}h2{font-size:17px}h3{font-size:15px}p{margin:0}:focus-visible{outline:2px solid var(--focus);outline-offset:2px}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:40px;padding:0 16px;border-radius:10px;border:1px solid transparent;font:inherit;font-weight:600;cursor:pointer;text-decoration:none;white-space:nowrap;transition:background .15s,border-color .15s}.btn-primary{background:var(--brand-primary);color:var(--on-primary)}.btn-primary:hover{background:var(--brand-primary-hover)}.btn-ghost{background:transparent;color:var(--text);border-color:var(--border)}.btn-ghost:hover{border-color:var(--brand-secondary)}.btn-danger{background:transparent;color:var(--error);border-color:var(--border)}.btn-sm{min-height:32px;padding:0 12px;font-size:13px}.btn[disabled]{opacity:.55;cursor:not-allowed}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:20px}:not(.grid)>.card+.card{margin-top:16px}.grid{display:grid;gap:16px}.grid-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-3{grid-template-columns:repeat(3,minmax(0,1fr))}.grid-4{grid-template-columns:repeat(4,minmax(0,1fr))}@media(max-width:960px){.grid-3,.grid-4{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:640px){.grid-2,.grid-3,.grid-4{grid-template-columns:1fr}}.row{display:flex;align-items:center;gap:12px}.row.between{justify-content:space-between}.wrap{flex-wrap:wrap}.stack>*+*{margin-top:12px}.muted{color:var(--text-muted)}.small{font-size:13px}.ltr{direction:ltr;unicode-bidi:isolate}.input.ltr,.textarea.ltr{text-align:left}.field{display:flex;flex-direction:column;gap:6px}.field label{font-weight:600;font-size:14px}.field .hint{font-size:12px;color:var(--text-muted)}.field .error{font-size:13px;color:var(--error)}.input,.select,.textarea{width:100%;min-height:42px;padding:8px 12px;border:1px solid var(--border);border-radius:10px;background:var(--surface);color:var(--text);font:inherit}.textarea{min-height:110px;resize:vertical}.input:focus,.select:focus,.textarea:focus{outline:2px solid var(--brand-primary);outline-offset:0;border-color:transparent}.input[aria-invalid=true]{border-color:var(--error)}.badge{white-space:nowrap;display:inline-flex;align-items:center;gap:6px;padding:2px 10px;border-radius:999px;font-size:12px;font-weight:600;background:var(--surface-muted);color:var(--text-muted);border:1px solid var(--border)}.badge.ok{color:var(--success);border-color:color-mix(in srgb,var(--success) 35%,transparent)}.badge.warn{color:var(--warning);border-color:color-mix(in srgb,var(--warning) 35%,transparent)}.badge.bad{color:var(--error);border-color:color-mix(in srgb,var(--error) 35%,transparent)}.badge.brand{color:var(--brand-primary);border-color:color-mix(in srgb,var(--brand-primary) 35%,transparent)}table.table{width:100%;border-collapse:collapse}.table th,.table td{text-align:start;padding:10px 12px;border-bottom:1px solid var(--border);font-size:14px}.table th{color:var(--text-muted);font-weight:600;font-size:13px}.table-wrap{overflow-x:auto}.empty{text-align:center;padding:40px 16px;color:var(--text-muted)}.empty h3{color:var(--text);margin-bottom:6px}.alert{padding:12px 14px;border-radius:10px;border:1px solid var(--border);background:var(--surface-muted);font-size:14px}.alert.warn{border-color:color-mix(in srgb,var(--warning) 40%,transparent)}.alert.bad{border-color:color-mix(in srgb,var(--error) 40%,transparent);color:var(--error)}.alert.ok{border-color:color-mix(in srgb,var(--success) 40%,transparent)}.page-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:20px;flex-wrap:wrap}.page-head p{color:var(--text-muted);margin-top:4px}.stat{display:flex;flex-direction:column;gap:4px}.stat .value{font-size:26px;font-weight:800;line-height:1.2}.stat .label{color:var(--text-muted);font-size:13px}.toasts{position:fixed;bottom:20px;inset-inline-start:20px;display:flex;flex-direction:column;gap:8px;z-index:50}.toast{background:var(--text);color:var(--surface);padding:10px 14px;border-radius:10px;font-size:14px;max-width:360px}.toast.error{background:var(--error);color:#fff}.auth{min-height:100vh;display:grid;grid-template-columns:1fr 1fr}.auth-side{position:relative;overflow:hidden;background:#132ffb;color:#fff;padding:48px;display:flex;flex-direction:column;justify-content:center;gap:16px}.auth-side:after{content:"";position:absolute;width:420px;height:420px;inset-block-end:-220px;inset-inline-end:-160px;border-radius:50%;background:var(--brand-gradient);opacity:.55;pointer-events:none}.auth-side>*{position:relative;z-index:1;max-width:460px}.auth-side h1{font-size:30px;color:#fff}.auth-side p{opacity:.95;max-width:420px}.auth-side ul{margin:0;padding-inline-start:20px;display:grid;gap:6px}.auth-main{display:flex;align-items:center;justify-content:center;padding:32px 20px;background:var(--surface)}.auth-card{width:100%;max-width:420px}.auth-card h2{font-size:22px;margin-bottom:4px}@media(max-width:860px){.auth{grid-template-columns:1fr}.auth-side{display:none}}@media(prefers-reduced-motion:reduce){*{transition:none!important}}
