@import url('https://fonts.googleapis.com/css2?family=Plus+Jakarta+Sans:wght@400;500;600;700&display=swap');
:root{
  --color-page:#f4f5f3;--color-bg:#ffffff;--color-surface:#f1f4ee;--color-text:#16222f;
  --color-line:#e4e7e2;--color-divider:#e4e7e2;
  --color-accent:#172536;--color-accent-100:#eef1f4;--color-accent-200:#dfe4ea;--color-accent-300:#c3ccd6;--color-accent-600:#243548;--color-accent-700:#172536;--color-accent-800:#111c29;--color-accent-900:#0b131c;
  --color-lime:#a3e773;--color-lime-100:#eefae4;--color-lime-700:#2f6b12;
  --color-danger:#d9443a;--color-danger-100:#fdeeec;--color-danger-700:#a8281f;--color-danger-900:#5c140f;
  --color-neutral-100:#f6f7f5;--color-neutral-500:#a3a9a3;--color-neutral-600:#7c837d;--color-neutral-700:#5f6670;--color-neutral-800:#3c4550;
  --color-soft:#fafbf9;--color-on-accent:#fff;--color-accent-hi:#a3e773;--color-on-hi:#16222f;--bk-page:#f4f5f3;
  --font-body:"Plus Jakarta Sans",system-ui,sans-serif;--r-card:18px;
  --shadow-lg:0 20px 50px rgba(22,34,47,.16);
}
*,*::before,*::after{box-sizing:border-box}
body{margin:0;background:var(--color-page);color:var(--color-text);font-family:var(--font-body);font-size:15px;line-height:1.55}
h1,h2,h3,h4,h5,h6{font-family:var(--font-body);font-weight:700;letter-spacing:-.02em;line-height:1.15;margin:0 0 8px}
h1{font-size:34px}h2{font-size:26px}h3{font-size:21px}h4{font-size:18px}h6{font-size:12px;letter-spacing:.06em;text-transform:uppercase;color:var(--color-neutral-700)}
p{margin:0 0 12px}
a{color:var(--color-text);text-underline-offset:3px}a:hover{color:var(--color-lime-700)}
.text-muted{color:var(--color-neutral-700)}
:focus{outline:none}:focus-visible{outline:2px solid var(--color-lime);outline-offset:2px}
::selection{background:var(--color-lime-100)}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;cursor:pointer;text-decoration:none;font:inherit;font-size:14px;font-weight:600;line-height:1.2;color:var(--color-text);background:transparent;border:1px solid transparent;padding:10px 18px;border-radius:999px;transition:background .15s,border-color .15s}
.btn svg{display:block}.btn:disabled{opacity:.45;cursor:not-allowed}
.btn-primary{background:var(--color-accent);color:var(--color-on-accent)}.btn-primary:hover{background:var(--color-accent-600)}.btn-primary:active{background:#000}
.btn-secondary{background:var(--color-bg);border-color:var(--color-line)}.btn-secondary:hover{background:var(--color-surface);border-color:#d3d8d1}
.btn-ghost{padding-inline:10px}.btn-ghost:hover{background:var(--color-surface)}
.btn-icon{width:40px;height:40px;padding:0}
.field>label{display:block;font-size:13px;font-weight:600;margin-bottom:6px;color:var(--color-text)}
.input{width:100%;min-height:42px;padding:9px 14px;font:inherit;font-size:14px;color:var(--color-text);background:var(--color-bg);border:1px solid var(--color-line);border-radius:12px}
.input:hover{border-color:#cfd5cd}.input:focus-visible{border-color:var(--color-text);outline:3px solid var(--color-lime-100);outline-offset:0}
textarea.input{min-height:90px;resize:vertical}
.radio{display:inline-flex;align-items:center;gap:10px;cursor:pointer;font-size:14px}
.radio input,.seg-opt input{position:absolute;opacity:0;width:0;height:0;pointer-events:none}
.radio .dot{width:18px;height:18px;flex:none;border-radius:50%;border:1.5px solid var(--color-neutral-500);background:var(--color-bg)}
.radio input:checked+.dot{border-color:var(--color-text);background:var(--color-text);box-shadow:inset 0 0 0 4px var(--color-bg)}
.seg{display:inline-flex;padding:3px;gap:2px;background:var(--color-surface);border-radius:999px}
.seg-opt{display:inline-flex;align-items:center;padding:5px 12px;font-size:13px;font-weight:600;cursor:pointer;border-radius:999px;color:var(--color-neutral-700)}
.seg-opt:has(input:checked){background:var(--color-bg);color:var(--color-text);box-shadow:0 1px 3px rgba(22,34,47,.12)}
.card{display:flex;flex-direction:column;gap:8px;padding:16px;border-radius:var(--r-card);background:#fff;border:1px solid var(--color-line)}
.card-kicker{font-size:12px;font-weight:600;color:var(--color-neutral-700)}
.card-title{font-weight:700;font-size:17px;line-height:1.25}
.card-body{margin:0;font-size:13px;color:var(--color-neutral-700);flex:1}
.card-meta{display:flex;align-items:center;gap:6px;font-size:12px;color:var(--color-neutral-700)}
.tag{display:inline-flex;align-items:center;font-size:12px;font-weight:600;padding:3px 10px;border-radius:999px}
.tag-accent{background:var(--color-lime-100);color:var(--color-lime-700)}
.tag-neutral{background:var(--color-neutral-100);color:var(--color-neutral-800);border:1px solid var(--color-line)}
.tag-outline{border:1px solid var(--color-text);color:var(--color-text)}
.tag-danger{background:var(--color-danger-100);color:var(--color-danger-700)}
.table{width:100%;border-collapse:collapse;font-size:14px}
.table th{text-align:left;font-size:12px;font-weight:600;color:var(--color-neutral-700);padding:10px 8px;border-bottom:1px solid var(--color-line)}
.table td{padding:10px 8px;border-bottom:1px solid var(--color-line)}
.dialog-backdrop{position:fixed;inset:0;display:grid;place-items:center;padding:16px;background:rgba(22,34,47,.45)}
.dialog{width:min(460px,100%);display:flex;flex-direction:column;gap:14px;padding:24px;border-radius:24px;background:#fff;box-shadow:var(--shadow-lg)}
.dialog-title{font-weight:700;font-size:20px;letter-spacing:-.02em}
.dialog-body{font-size:14px;color:var(--color-neutral-800)}
.dialog-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:4px;flex-wrap:wrap}
