:root{--bg: #f6f7f9;--surface: #ffffff;--surface-2: #f1f3f6;--border: #e2e5ea;--text: #15181e;--muted: #5e6672;--accent: #3b5bdb;--accent-soft: #e8edff;--ok: #1f8a4c;--ok-soft: #e4f5ea;--warn: #a86400;--warn-soft: #fff3dc;--bad: #c92a2a;--bad-soft: #fde8e8;--radius: 12px;color-scheme:light dark;font-family:Inter,system-ui,-apple-system,Segoe UI,Roboto,sans-serif;font-size:15px;line-height:1.5}@media (prefers-color-scheme: dark){:root{--bg: #0f1115;--surface: #171a20;--surface-2: #1e222a;--border: #2b3039;--text: #e8eaee;--muted: #98a1ad;--accent: #7b93ff;--accent-soft: #232a45;--ok: #4cc47e;--ok-soft: #173224;--warn: #f0b04a;--warn-soft: #382a12;--bad: #ff6b6b;--bad-soft: #3a1b1d}}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text)}code{font-family:ui-monospace,SF Mono,Menlo,monospace;font-size:.88em}.page{max-width:980px;margin:0 auto;padding:32px 16px 64px}.masthead h1{margin:0 0 4px;font-size:26px;letter-spacing:-.01em}.masthead p{margin:0 0 24px;color:var(--muted)}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:20px;margin-bottom:16px}.card h2{display:flex;align-items:center;gap:10px;margin:0 0 16px;font-size:17px}.step{display:inline-grid;place-items:center;width:24px;height:24px;border-radius:50%;background:var(--accent-soft);color:var(--accent);font-size:13px;font-weight:700}button{font:inherit;padding:8px 14px;border-radius:8px;border:1px solid var(--border);background:var(--surface-2);color:var(--text);cursor:pointer}button:hover:not(:disabled){border-color:var(--muted)}button:disabled{opacity:.5;cursor:default}button.primary{background:var(--accent);border-color:var(--accent);color:#fff;font-weight:600}button.primary:hover:not(:disabled){filter:brightness(1.08);border-color:var(--accent)}.dropzone{border:2px dashed var(--border);border-radius:var(--radius);padding:32px 16px;text-align:center;cursor:pointer;transition:border-color .15s,background .15s}.dropzone:hover,.dropzone.over{border-color:var(--accent);background:var(--accent-soft)}.dropzone.has-file{padding:16px}.dz-title{margin:0;font-weight:600;overflow-wrap:anywhere}.dz-hint{margin:4px 0 0;color:var(--muted);font-size:13px}.error-text{color:var(--bad);margin:12px 0 0}.sources{display:grid;gap:6px;margin-bottom:16px}.source{display:flex;align-items:center;gap:10px;padding:8px 12px;border:1px solid var(--border);border-radius:8px;cursor:pointer}.source.active{border-color:var(--accent);background:var(--accent-soft)}.source-name{flex:1;font-size:13px;word-break:break-all}.pill{font-size:12px;padding:2px 8px;border-radius:99px;background:var(--surface-2);color:var(--muted);white-space:nowrap}.facts{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:12px;margin:0 0 16px}.facts div{background:var(--surface-2);border-radius:8px;padding:10px 12px}.facts dt{font-size:12px;color:var(--muted)}.facts dd{margin:2px 0 0;font-weight:600;font-size:14px}.ok{color:var(--ok)}.bad{color:var(--bad)}.form{display:grid;grid-template-columns:1fr 1fr;gap:12px}.form label{display:grid;gap:4px;font-size:13px;color:var(--muted)}.form .wide{grid-column:1 / -1}.form input,.form select{font:inherit;color:var(--text);background:var(--surface);border:1px solid var(--border);border-radius:8px;padding:8px 10px;width:100%}.store-links{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:4px 0 0;padding:12px;border:1px solid var(--border);border-radius:10px;min-width:0}.store-links legend{padding:0 6px;font-size:13px;font-weight:600;color:var(--text)}.store-links label{align-content:start}.form input.input-warn{border-color:var(--warn)}.hint{font-size:12px}.optional{font-style:normal;font-size:11px;color:var(--muted);opacity:.8}.hint.warn{color:var(--warn)}@media (max-width: 640px){.store-links{grid-template-columns:1fr}}.form input:focus,.form select:focus{outline:2px solid var(--accent-soft);border-color:var(--accent)}.networks{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:10px}.network{display:grid;grid-template-columns:auto 1fr;column-gap:10px;padding:12px;border:1px solid var(--border);border-radius:10px;cursor:pointer}.network.on{border-color:var(--accent);background:var(--accent-soft)}.network input{grid-row:span 2;margin-top:3px}.network-name{font-weight:600}.network-meta{font-size:12px;color:var(--muted)}.actions{margin-top:16px;display:flex;justify-content:flex-end}.results-head{display:flex;align-items:center;gap:12px;margin-bottom:16px}.results-head h2{margin:0}.summary{flex:1;color:var(--muted);font-size:14px}.results{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:12px}.result{border:1px solid var(--border);border-radius:10px;padding:14px;display:flex;flex-direction:column;gap:8px}.result.status-fail{border-color:var(--bad)}.result header{display:flex;justify-content:space-between;align-items:center}.result h3{margin:0;font-size:15px}.badge{font-size:12px;font-weight:600;padding:2px 8px;border-radius:99px}.badge.ok{background:var(--ok-soft);color:var(--ok)}.badge.warn{background:var(--warn-soft);color:var(--warn)}.badge.fail{background:var(--bad-soft);color:var(--bad)}.file{margin:0;display:flex;justify-content:space-between;gap:8px;font-size:13px}.file code{word-break:break-all}.file span{color:var(--muted);white-space:nowrap}.meter{height:6px;background:var(--surface-2);border-radius:99px;overflow:hidden}.meter-fill{height:100%;background:var(--ok)}.meter-fill.near{background:var(--warn)}.meter-fill.over{background:var(--bad)}.meter-label{margin:-4px 0 0;font-size:12px;color:var(--muted)}.diagnostics{margin:0;padding-left:18px;font-size:13px}.diagnostics .error{color:var(--bad)}.diagnostics .warning{color:var(--warn)}.note{margin:0;font-size:12px;color:var(--muted)}.raw-note{margin:0 0 12px;font-size:13px}.result-actions{display:flex;gap:8px;margin-top:auto;padding-top:4px}.result-actions .primary{flex:1}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#0000008c;display:grid;place-items:center;padding:16px;z-index:10}.modal{background:var(--surface);border-radius:var(--radius);max-width:100%;max-height:100%;overflow:auto}.modal>header{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:12px 16px;border-bottom:1px solid var(--border);flex-wrap:wrap}.modal h3{margin:0;font-size:16px}.modal-tools{display:flex;gap:6px;flex-wrap:wrap}.modal-body{display:flex;gap:16px;padding:16px;align-items:flex-start;flex-wrap:wrap}.device{border:8px solid #000;border-radius:22px;overflow:hidden;background:#000;flex:none;max-width:100%}.device iframe{border:0;display:block}.log{width:300px;max-width:100%}.log h4{margin:0 0 4px;font-size:14px}.log-hint{margin:0 0 10px;font-size:12px;color:var(--muted)}.log ol{list-style:none;margin:0;padding:0;display:grid;gap:4px;max-height:480px;overflow:auto}.log li{display:flex;flex-wrap:wrap;gap:6px;font-size:13px;padding:6px 8px;background:var(--surface-2);border-radius:6px}.log li code{flex-basis:100%;color:var(--muted);word-break:break-all}.log li.ok{background:var(--ok-soft)}.log li.bad{background:var(--bad-soft)}.log li.muted{color:var(--muted)}.log-t{color:var(--muted);font-variant-numeric:tabular-nums}.log-e{font-weight:600}.cta-ok{font-weight:600;margin:10px 0 0}@media (max-width: 600px){.form{grid-template-columns:1fr}.results-head{flex-wrap:wrap}}.account{display:flex;justify-content:flex-end;align-items:center;gap:8px;margin:-16px 0 8px;flex-wrap:wrap}.account-name{color:var(--muted);font-size:14px;margin-right:4px;max-width:220px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.account button{padding:6px 12px;font-size:14px}.auth-page{min-height:100vh;display:grid;align-content:center;justify-items:center;gap:16px;padding:32px 16px}.auth-brand{font-size:22px;font-weight:700;letter-spacing:-.01em}.auth-card{width:100%;max-width:400px;margin:0;padding:24px}.auth-card h1{margin:0 0 4px;font-size:20px}.auth-sub{margin:0 0 4px;color:var(--muted);font-size:14px;word-break:break-word}.auth-form{display:grid;gap:14px;margin-top:16px}.auth-form label{display:grid;gap:4px;font-size:13px;color:var(--muted)}.auth-form input{font:inherit;color:var(--text);background:var(--surface);border:1px solid var(--border);border-radius:8px;padding:10px 12px;width:100%}.auth-form input:focus,.invite-form input:focus,.invite-form select:focus{outline:2px solid var(--accent-soft);border-color:var(--accent)}.auth-form .error-text{margin:0;font-size:14px}.auth-form button{padding:10px 14px}.auth-note{margin:16px 0 0;font-size:13px;color:var(--muted)}.auth-note a{color:var(--accent)}.auth-foot{margin:0;font-size:13px;color:var(--muted)}.modal.team{width:min(680px,calc(100vw - 32px))}.team-body{padding:16px;display:grid;gap:14px}.team-body h4{margin:6px 0 0;font-size:14px}.team-body .error-text{margin:0}.invite-form{display:grid;grid-template-columns:1fr auto auto;gap:10px;align-items:end}.invite-form label{display:grid;gap:4px;font-size:13px;color:var(--muted)}.invite-form input,.invite-form select{font:inherit;color:var(--text);background:var(--surface);border:1px solid var(--border);border-radius:8px;padding:8px 10px;width:100%}.link-box{background:var(--ok-soft);border-radius:10px;padding:12px;display:grid;gap:8px}.link-box p{margin:0;font-size:13px}.link-row{display:flex;gap:8px}.link-row input{flex:1;min-width:0;font:inherit;font-size:13px;color:var(--text);background:var(--surface);border:1px solid var(--border);border-radius:8px;padding:8px 10px}.people{list-style:none;margin:0;padding:0;display:grid;gap:8px}.people li{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:10px 12px;border:1px solid var(--border);border-radius:10px;flex-wrap:wrap}.people li.is-disabled .person{opacity:.6}.person{display:grid;gap:2px;min-width:0;font-size:14px}.person>span{color:var(--muted);word-break:break-all}.person-meta{display:flex;align-items:center;gap:6px;flex-wrap:wrap;font-size:12px}.pill-admin{background:var(--accent-soft);color:var(--accent)}.pill-off{background:var(--bad-soft);color:var(--bad)}.person-actions{display:flex;gap:6px;flex-wrap:wrap}.person-actions button{padding:5px 10px;font-size:13px}@media (max-width: 600px){.invite-form{grid-template-columns:1fr}.link-row{flex-wrap:wrap}.link-row input{flex-basis:100%}}
