:root{--paper:#f6f9f9;--surface:#fff;--surface-2:#eef3f3;--ink:#0d1b1e;--ink-2:#3d5457;--ink-3:#6b8285;--line:#d7e2e2;--line-strong:#b9caca;--accent:#04808b;--accent-ink:#fff;--accent-soft:#e2f1f2;--danger:#b4342a;--danger-soft:#fbe9e7;--ok:#2f6d4f;--radius:8px}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--paper:#0c1315;--surface:#121c1e;--surface-2:#18272a;--ink:#e4edec;--ink-2:#a9bfc0;--ink-3:#7d9698;--line:#223437;--line-strong:#33494d;--accent:#45b8c2;--accent-ink:#062326;--accent-soft:#0f2e31;--danger:#e8776b;--danger-soft:#331916;--ok:#6bbd92}}*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font-family:system-ui,-apple-system,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif;font-size:15px;line-height:1.6;-webkit-font-smoothing:antialiased}a{color:var(--accent)}:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:3px}.shell{max-width:420px;margin:0 auto;padding:56px 20px 72px}.shell-wide{max-width:720px;margin:0 auto;padding:40px 20px 72px}.brand{font-size:20px;font-weight:700;letter-spacing:-.01em;margin:0 0 4px;display:block;text-decoration:none;color:var(--ink)}.brand span{color:var(--accent)}.brand-sub{font-size:13px;color:var(--ink-3);margin:0 0 32px}h1{font-size:24px;font-weight:700;letter-spacing:-.015em;margin:0 0 6px}h2{font-size:15px;font-weight:600;margin:0 0 12px}.lede{color:var(--ink-2);margin:0 0 24px}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:24px}form{display:flex;flex-direction:column;gap:16px}label{display:block;font-size:13px;font-weight:600;margin-bottom:6px}.hint{font-size:12.5px;color:var(--ink-3);font-weight:400;margin-top:4px}input[type=email],input[type=password],input[type=text]{width:100%;padding:9px 11px;font:inherit;font-size:14px;color:var(--ink);background:var(--surface);border:1px solid var(--line-strong);border-radius:6px}input:focus{border-color:var(--accent);outline:none;box-shadow:0 0 0 3px var(--accent-soft)}button{font:inherit;font-size:14px;font-weight:600;cursor:pointer;padding:10px 16px;border-radius:6px;border:1px solid transparent;background:var(--accent);color:var(--accent-ink)}button:disabled{opacity:.6;cursor:default}button.ghost{background:transparent;color:var(--ink-2);border-color:var(--line-strong)}button.link{background:none;border:none;color:var(--accent);padding:0;font-weight:600}.notice{font-size:13.5px;padding:10px 12px;border-radius:6px;border:1px solid transparent;margin:0}.notice.error{background:var(--danger-soft);color:var(--danger);border-color:var(--danger)}.notice.ok{background:var(--accent-soft);color:var(--ok);border-color:var(--ok)}.notice.info{background:var(--surface,#fff);color:var(--ink-2);border-color:var(--line-strong)}.alt{font-size:13.5px;color:var(--ink-3);margin:20px 0 0;text-align:center}.topbar{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;margin-bottom:32px}.org{font-size:13px;color:var(--ink-3)}.org b{color:var(--ink-2);font-weight:600}.products{list-style:none;padding:0;margin:0 0 36px;display:grid;grid-gap:10px;gap:10px}.product{display:flex;align-items:center;justify-content:space-between;gap:16px;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:16px 18px}.product-name{font-weight:600;margin:0}.product-tagline{font-size:13px;color:var(--ink-3);margin:2px 0 0}.product a.open{text-decoration:none;background:var(--accent);color:var(--accent-ink);font-size:13.5px;padding:8px 14px;border-radius:6px}.pill,.product a.open{font-weight:600;white-space:nowrap}.pill{font-size:11.5px;letter-spacing:.04em;text-transform:uppercase;padding:3px 8px;border-radius:4px;background:var(--surface-2);border:1px solid var(--line-strong)}.empty,.pill{color:var(--ink-3)}.empty{border:1px dashed var(--line-strong);border-radius:var(--radius);padding:20px;font-size:14px;margin:0 0 36px}.product form{flex-direction:row;gap:8px;align-items:center}@media (max-width:520px){.product{flex-direction:column;align-items:stretch}.product a.open,.product button{width:100%;text-align:center}}