:root{--bg:#f4f6f8;--surface:#ffffff;--border:#d5dce3;--text:#1a222c;--muted:#5b6774;--ok:#0f7a4f;--warn:#9a4d00;--danger:#a12622;--accent:#0059c9}*{box-sizing:border-box}body{margin:0;font-family:IBM Plex Sans,Segoe UI,sans-serif;color:var(--text);background:radial-gradient(circle at 30% -10%,#f7fbff 0,var(--bg) 45%,#edf1f5 100%)}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}.container{max-width:1100px;margin:0 auto;padding:2rem 1rem 4rem}.card{background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:1rem;box-shadow:0 8px 28px rgba(16,36,64,.08)}.grid{display:grid;grid-gap:.75rem;gap:.75rem}.grid.two{grid-template-columns:repeat(2,minmax(0,1fr))}@media (max-width:760px){.grid.two{grid-template-columns:1fr}}label{display:block;font-size:.875rem;font-weight:600;margin-bottom:.35rem}button,input,select,textarea{font:inherit}input,select,textarea{width:100%;border:1px solid var(--border);border-radius:8px;background:#fff;padding:.65rem .75rem}textarea{min-height:100px;resize:vertical}button{border:1px solid transparent;border-radius:8px;padding:.6rem .9rem;cursor:pointer}button.primary{background:var(--accent);color:#fff}button.secondary{background:#eef3f8;color:#153255}button.danger{background:#ffe7e6;border-color:#f4bfbc;color:var(--danger)}button:disabled{opacity:.55;cursor:not-allowed}.badge{display:inline-flex;border-radius:999px;font-size:.75rem;padding:.2rem .55rem;border:1px solid transparent}.badge.active{color:var(--ok);border-color:#b8e0cd;background:#e9f8f0}.badge.inactive{color:var(--warn);border-color:#f1d1a4;background:#fff5e7}.error{color:var(--danger)}.error,.muted{font-size:.875rem}.muted{color:var(--muted)}.table-wrap{overflow-x:auto}table{width:100%;border-collapse:collapse}thead th{font-size:.8rem;text-align:left;color:var(--muted);border-bottom:1px solid var(--border);padding:.6rem}tbody td{border-bottom:1px solid #edf1f5;padding:.75rem .6rem;vertical-align:top}.topbar{gap:.75rem;align-items:center;justify-content:space-between;margin-bottom:1rem}.actions,.topbar{display:flex;flex-wrap:wrap}.actions{gap:.4rem}