:root{--bg: #f6f7f9;--surface: #ffffff;--text: #15181e;--muted: #667085;--border: #e4e7ec;--primary: #15181e;--primary-text: #ffffff;--accent: #6d5dfc;--danger: #d92d20;--success: #067647;--success-bg: #ecfdf3;--alert-bg: #fef3f2;--radius: 12px;--font: -apple-system, BlinkMacSystemFont, "Segoe UI", Inter, Roboto, Helvetica, Arial, sans-serif;--mono: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace}@media(prefers-color-scheme:dark){:root{--bg: #0f1115;--surface: #171a21;--text: #eef0f4;--muted: #98a2b3;--border: #2a2f3a;--primary: #eef0f4;--primary-text: #0f1115;--success-bg: #0e2a1c;--alert-bg: #2b1512}}*{box-sizing:border-box}html,body{margin:0;padding:0}body{font-family:var(--font);background:var(--bg);color:var(--text);font-size:15px;line-height:1.5;-webkit-font-smoothing:antialiased}a{color:inherit}h1{font-size:1.5rem;margin:0 0 .5rem;letter-spacing:-.01em}h2{font-size:1.15rem;margin:0 0 .75rem}p{margin:0 0 .75rem}code{font-family:var(--mono);font-size:.85em}.shell{min-height:100vh;display:flex;flex-direction:column}.topbar{display:flex;align-items:center;justify-content:space-between;padding:14px 20px;border-bottom:1px solid var(--border);background:var(--surface)}.brand{font-weight:700;text-decoration:none;display:flex;align-items:center;gap:8px}.brand-mark{font-size:1.1em}.topbar-right{display:flex;align-items:center;gap:12px}.main{flex:1;width:100%;max-width:820px;margin:0 auto;padding:28px 16px 48px}.footer{text-align:center;padding:20px}.footer a{color:var(--muted)}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:24px;margin-bottom:20px}.card.narrow{max-width:440px;margin:40px auto}.card-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px}.card-head h1{margin:0}.prose ul,.prose ol{padding-left:1.25rem}.center{text-align:center}.muted{color:var(--muted)}.small{font-size:.85rem}.stack{display:flex;flex-direction:column;gap:14px}.grid-2{display:grid;grid-template-columns:1fr 1fr;gap:14px}@media(max-width:560px){.grid-2{grid-template-columns:1fr}}.field{display:flex;flex-direction:column;gap:5px}.field label,.label{font-weight:600;font-size:.85rem}.req{color:var(--danger)}.hint{color:var(--muted);font-size:.78rem}.field-error{color:var(--danger);font-size:.82rem;margin:0}input{width:100%;padding:10px 12px;border:1px solid var(--border);border-radius:8px;background:var(--bg);color:var(--text);font:inherit;font-size:15px}input:focus{outline:2px solid var(--accent);outline-offset:0;border-color:transparent}.output{background:var(--bg);border:1px dashed var(--border);border-radius:8px;padding:12px;overflow-x:auto}.output code{white-space:nowrap}.actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.notice{color:var(--success);font-size:.9rem}.btn{font:inherit;font-weight:600;padding:10px 16px;border-radius:8px;border:1px solid var(--border);background:var(--surface);color:var(--text);cursor:pointer;transition:transform .05s ease}.btn:active{transform:translateY(1px)}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-primary{background:var(--primary);color:var(--primary-text);border-color:var(--primary)}.btn-secondary{background:var(--surface)}.btn-ghost{background:transparent;border-color:transparent;color:var(--muted)}.btn-small{padding:6px 10px;font-size:.82rem;font-weight:500}.btn-danger{background:var(--danger);border-color:var(--danger);color:#fff}.btn-danger-ghost{color:var(--danger)}.alert{background:var(--alert-bg);color:var(--danger);padding:10px 12px;border-radius:8px;font-size:.9rem}.success{background:var(--success-bg);color:var(--success);padding:12px;border-radius:8px}.campaign-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:12px}.campaign{border:1px solid var(--border);border-radius:10px;padding:14px;display:flex;flex-direction:column;gap:10px}.campaign-title{font-weight:600}.campaign-url{display:block;margin-top:6px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.campaign-actions{display:flex;gap:6px;flex-wrap:wrap}.settings summary{cursor:pointer;font-weight:600}.settings .btn{margin:10px 0}
