:root{--bg:#f6f7f9;--fg:#15202b;--card:#fff;--mut:#5b6875;--acc:#0B1C38;--warn:#fff3cd;--warnfg:#6b4e00;--bd:#dde2e7}
@media(prefers-color-scheme:dark){:root{--bg:#0f1418;--fg:#e8edf2;--card:#1a2228;--mut:#9aa7b3;--acc:#5aa9ff;--warn:#3a300f;--warnfg:#ffd970;--bd:#2c363e}}
*{box-sizing:border-box}body{margin:0;font:17px/1.45 system-ui,-apple-system,Segoe UI,Roboto,sans-serif;background:var(--bg);color:var(--fg)}
header{position:sticky;top:0;z-index:5;background:var(--acc);padding:8px 12px calc(8px);padding-top:max(8px,env(safe-area-inset-top));display:flex;flex-direction:column;gap:6px}
.brand{display:inline-flex;align-items:center;background:#fff;border-radius:8px;padding:3px 8px;text-decoration:none;line-height:0}.brand img{height:30px;width:auto;max-width:58vw;display:block}
@media(prefers-color-scheme:dark){header{background:#0B1C38}}
#q{width:100%;font-size:17px;padding:10px 12px;border-radius:10px;border:0}
#crumbs{font-size:14px;padding:6px 12px;color:var(--mut)}#crumbs a{color:var(--acc)}
main{padding:0 12px 40px;max-width:760px;margin:auto}
.btn,.card{display:block;width:100%;min-height:52px;text-align:left;padding:14px 16px;margin:10px 0;border-radius:12px;border:1px solid var(--bd);background:var(--card);color:var(--fg);font-size:17px;text-decoration:none;cursor:pointer}
.btn.big{min-height:110px;font-size:22px;font-weight:700}.btn.pri{background:var(--acc);color:#fff;border:0;text-align:center}
.small{font-size:14px;color:var(--mut)}
.warn{background:var(--warn);color:var(--warnfg);padding:10px 12px;border-radius:10px;margin:10px 0}
.res{border-left:5px solid #2e9e5b;padding:12px;background:var(--card);border-radius:10px}
table{width:100%;border-collapse:collapse;font-size:15px}td,th{border-bottom:1px solid var(--bd);padding:8px 6px;vertical-align:top;text-align:left}
td.c{color:var(--mut);font-size:13px}.typ{color:#c06000}
img.fig{width:100%;max-height:340px;background:#fff;color:#15202b;border-radius:10px;margin:8px 0;border:1px solid var(--bd)}
.chk label{display:flex;gap:12px;align-items:flex-start;padding:12px;border-bottom:1px solid var(--bd);min-height:52px}
.chk input{width:26px;height:26px;flex:none}.chk input:checked+span{text-decoration:line-through;color:var(--mut)}
h1{font-size:24px;margin:10px 0}h2{font-size:19px}
.top{display:flex;justify-content:space-between;align-items:center}
.lang{min-width:56px;min-height:40px;border-radius:10px;border:2px solid #fff;background:transparent;color:#fff;font-weight:700;font-size:16px}
a.cite{color:var(--acc);text-decoration:underline;white-space:nowrap}a.cite::after,a.ext::after{content:" ↗";font-size:.8em}
.libro{padding:10px 0;border-top:1px solid var(--bd);display:flex;flex-wrap:wrap;gap:8px;justify-content:space-between}.libro a{color:var(--acc)}
details.card summary{cursor:pointer;min-height:28px}a.ext{color:var(--acc)}
.adatext{white-space:pre-wrap;font-size:15px;background:var(--card);padding:12px;border-radius:10px;border:1px solid var(--bd)}
.typ{color:#c06000;font-size:12px}#toast{position:fixed;left:12px;right:12px;bottom:max(16px,env(safe-area-inset-bottom));background:#222;color:#fff;padding:14px;border-radius:12px;z-index:9}

.trades{display:grid;gap:10px}.trade{display:flex;align-items:center;gap:12px;padding:16px;border-radius:12px;background:var(--card);border:1px solid var(--bd);color:inherit;text-decoration:none;min-height:56px}
.trade .ti{font-size:28px}.trade b{flex:1;font-size:18px}.trade .tag{font-size:12px;padding:4px 8px;border-radius:99px;background:var(--bd)}.trade .tag.ok{background:var(--acc);color:#fff}
.trade.off{opacity:.55;cursor:not-allowed}#tradesBtn{text-decoration:none;margin-left:auto;margin-right:6px}
#instBtn{margin-left:auto;margin-right:6px}#instBtn~#tradesBtn{margin-left:0}
.ditch{display:flex;gap:6px;align-items:center}.ditch #q{flex:1;min-width:0}
#mic,#defsBtn{min-height:42px;border-radius:10px;border:0;background:#fff;color:var(--acc);font-size:17px;padding:0 10px;text-decoration:none;display:flex;align-items:center;white-space:nowrap;font-weight:600}
#mic{min-width:44px;justify-content:center}#mic.on{background:#e0701a;color:#fff;animation:pulse 1s infinite}@keyframes pulse{50%{opacity:.6}}
@media(max-width:380px){#defsBtn{padding:0 8px;font-size:15px}}
.dq{width:100%;font-size:17px;padding:10px 12px;border-radius:10px;border:1px solid var(--bd);margin:6px 0 10px}.def div{margin-top:4px}
.tabs{display:flex;gap:6px;margin:8px 0}.tabs a{flex:1;text-align:center;padding:10px;border-radius:10px;border:1px solid var(--bd);text-decoration:none;color:inherit;font-weight:600}.tabs a.on{background:var(--acc);color:#fff;border-color:var(--acc)}
.mgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:10px}.mat img{width:100%;background:#fff;border-radius:8px;border:1px solid var(--bd);margin-bottom:6px}.mat .small{margin-top:4px}.mat.hi{outline:3px solid #e0701a}
#tradesBtn{display:inline-flex;align-items:center;justify-content:center;color:#fff}
.steps li{margin:.6em 0}.steps label{display:flex;gap:.5em;align-items:flex-start}.steps input{margin-top:.3em;width:1.2em;height:1.2em}.steps input:checked+span{opacity:.55;text-decoration:line-through}
.cx-tabs{display:flex;flex-wrap:wrap;gap:4px;margin:8px 0}.cx-tabs a{flex:1 1 30%;text-align:center;padding:10px 4px;border-radius:10px;background:#e5e7eb;color:#111;text-decoration:none;font-weight:600}.cx-tabs a.on{background:#1d4ed8;color:#fff}
.cx{background:#1f2937;border-radius:16px;padding:12px;color:#f9fafb;max-width:480px}.cx label{display:block;margin:6px 0;font-size:.95em}.cx input,.cx select{width:100%;font-size:1.2em;padding:8px;border-radius:8px;border:0;margin-top:2px;box-sizing:border-box}
.cx-disp{background:#d1fae5;color:#064e3b;border-radius:10px;padding:10px;margin:8px 0;text-align:right;font-family:ui-monospace,monospace;min-height:3em}.cx-disp .small{color:#065f46}
.cx-big{font-size:2em;font-weight:700}.cx-in{font-size:1.1em}.cx-tape{font-size:.8em;opacity:.7}.cx summary{cursor:pointer;margin:6px 0}
.cx-keys{display:grid;grid-template-columns:repeat(4,1fr);gap:6px}.cx-keys button{font-size:1.3em;padding:14px 0;border:0;border-radius:10px;background:#4b5563;color:#fff}.cx-keys button.fr{background:#6b7280}.cx-keys button.fr.on{background:#fbbf24;color:#111}.cx-keys button.eq{grid-column:span 2}.cx-keys button.op{background:#f59e0b;color:#111}.cx-keys button.fn{background:#9ca3af;color:#111}.cx-keys button:active{filter:brightness(1.3)}
.cx-fx{display:flex;justify-content:space-between;align-items:center;padding:6px 0;border-bottom:1px solid #374151;gap:6px}.cx-fx button{width:44px;height:40px;font-size:1.3em;border:0;border-radius:8px;background:#f59e0b;color:#111}.cx-fx b{display:inline-block;min-width:2em;text-align:center;font-size:1.2em}
.cx-tabs a small{display:block;font-weight:400;font-size:.75em;opacity:.8}
.cx-tip{background:#fef3c7;color:#78350f;border-radius:10px;padding:10px 12px;margin:6px 0 10px;font-size:1.05em}
.cx-big{font-size:2.6em;line-height:1.1}
.cx-disp table td{padding:6px 4px;font-size:1.05em}
.cx-disp table td b{font-size:1.25em}
.cx-fx button{min-width:48px;min-height:44px;font-size:1.3em}
.calc-card{display:flex;align-items:center;gap:14px;margin:12px 0;padding:14px 16px;border-radius:16px;background:linear-gradient(135deg,#1d4ed8,#0f766e);color:#fff;text-decoration:none;box-shadow:0 4px 14px rgba(0,0,0,.25)}
.calc-card b{display:block;font-size:1.5em}
.calc-card small{display:block;font-size:1em;opacity:.95;margin-top:2px}
.calc-card span:nth-child(2){flex:1}
.calc-card .calc-go{font-size:2.4em;font-weight:700}
/* big-at-arm's-length pass */
.btn,.card{min-height:60px;font-size:19px;padding:16px 18px}
.btn.big{min-height:120px;font-size:26px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px}
.btn .ic{font-size:44px;line-height:1}
.tiles{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:12px 0}
.btn.tile{margin:0;min-height:118px;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;gap:8px;font-size:18px;font-weight:700;border-width:2px}
.btn.tile .ic{font-size:46px}
.trades{gap:14px}
.trade{min-height:76px;padding:18px;gap:16px;border-width:2px}
.trade .ti{font-size:44px}
.trade b{font-size:22px}
.trade .tag{font-size:14px;padding:6px 10px}
.calc-card{padding:18px;min-height:120px}
.calc-card svg{width:76px;height:96px}
.calc-card b{font-size:1.75em}
.calc-card small{font-size:1.1em}
.cx-tabs{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}
.cx-tabs a{padding:14px 4px;font-size:17px;min-height:72px;display:flex;flex-direction:column;justify-content:center}
.cx-tabs a small{font-size:13px}
.cx-tip{font-size:1.15em}
.tiles .tile:last-child:nth-child(odd){grid-column:span 2}
.lab-warn{border:2px solid #f97316;font-size:.95em}
.lab-row{border:1px solid #374151;border-left:4px solid #f97316;border-radius:10px;padding:8px 10px;margin:8px 0}
.lab-h{display:flex;justify-content:space-between;align-items:center;gap:8px}
.lab-x{min-width:44px;min-height:40px;border:0;border-radius:8px;background:#374151;color:#fff;font-size:1.1em}
.lab-g{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.lab-row input{width:100%;box-sizing:border-box}

.code-badge{align-self:flex-start;display:inline-flex;align-items:center;gap:6px;min-height:32px;padding:4px 12px;border-radius:999px;border:1.5px solid #f59e0b;background:rgba(255,255,255,.08);color:#fff;font-weight:700;font-size:14px;cursor:pointer}
.sp-wrap{position:fixed;inset:0;z-index:20;background:rgba(11,28,56,.6);display:flex;align-items:flex-end;justify-content:center}
.sp-wrap[hidden]{display:none}
.sp{background:#fff;color:#0B1C38;width:100%;max-width:480px;max-height:85vh;overflow:auto;border-radius:16px 16px 0 0;padding:16px 16px max(16px,env(safe-area-inset-bottom))}
.sp h2{margin:0 0 4px;color:#0B1C38}
.sp ul{list-style:none;padding:0;margin:10px 0}
.sp li button{width:100%;display:flex;justify-content:space-between;align-items:center;min-height:48px;padding:8px 12px;margin:4px 0;border:2px solid #d0d6e0;border-radius:10px;background:#fff;color:#0B1C38;font-size:16px;text-align:left}
.sp li button[aria-checked=true]{border-color:#0B1C38;background:#eef2f9;font-weight:700}
.sp li button:disabled{color:#8a94a6;background:#f5f6f8;border-style:dashed}
.sp-note{color:#5a6478}

.mat-ic{font-size:56px;line-height:1;display:flex;align-items:center;justify-content:center;height:110px;background:#0f172a;border-radius:8px;margin-bottom:6px}
.fv-bar{display:flex;gap:8px;flex-wrap:wrap;margin:4px 0 10px}
.fv-btn{min-height:44px;padding:8px 14px;border-radius:10px;border:1px solid #0B1C38;background:#fff;color:#0B1C38;font-size:16px;font-weight:600;cursor:pointer}
.fv-btn.on{background:#0B1C38;color:#fff}.fv-sh{margin:8px 0;display:block;width:100%}
.fv-mini{float:right;min-width:44px;min-height:44px;border:0;background:none;font-size:24px;color:#0B1C38;cursor:pointer}.fv-mini.on{color:#d4a017}
.fv-home h2{display:flex;justify-content:space-between;align-items:center}.fv-clr{border:0;background:none;color:#0B1C38;text-decoration:underline;font-size:14px;cursor:pointer}
.fv-item{min-height:48px;padding:12px 16px}

.badge-strip{display:flex;align-items:center;gap:10px;min-height:64px;margin:4px 0 12px;padding:12px 14px;border-radius:16px;background:var(--card);border:2px solid #d4a017;color:inherit;text-decoration:none}
.badge-strip .bs-ic{font-size:28px;line-height:1}
.badge-strip .bs-tx{flex:1;min-width:0}
.badge-strip b{display:block;font-size:17px}
.badge-strip small{display:block;font-weight:600;color:var(--mut);font-size:14px;margin-top:2px}
.badge-pips{display:flex;gap:5px;flex:none}
.pip{width:12px;height:12px;border-radius:50%;border:2px solid var(--mut);background:transparent}
.pip.on{background:#d4a017;border-color:#d4a017}
.shelf{display:flex;flex-direction:column;gap:12px;margin:12px 0}
.bcard{display:flex;align-items:center;gap:12px;min-height:96px;padding:14px;border-radius:16px;border:2px solid var(--bd);background:var(--card);color:inherit;text-decoration:none}
.bcard.earned{border-color:#d4a017}
.bmed{width:68px;height:68px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:32px;flex:none;background:#e8edf2;position:relative}
.bcard.earned .bmed{background:#f8e7b0}
.bcard.locked .bmed{filter:grayscale(1);opacity:.8}
.bcard.master.locked{border-style:dashed;cursor:default}
.bcard.master.locked .bmed{filter:none;opacity:1;background:#f4efe4}
.bcard.master.earned{box-shadow:inset 0 0 0 2px #d4a017}
.bmed-mark{position:absolute;right:-2px;bottom:-2px;width:24px;height:24px;border-radius:50%;background:#2e9e5b;color:#fff;font-size:14px;font-weight:800;display:flex;align-items:center;justify-content:center;border:2px solid var(--card)}
.bcard.locked .bmed-mark{background:#5b6875}
.bname{display:block;font-size:18px;font-weight:800}
.bblurb,.bst{display:block;font-size:14px;color:var(--mut);margin-top:2px}
.bst{font-weight:700}
.bcard.earned .bst{color:#8a6a00}
.qz-top{display:flex;align-items:center;gap:10px;margin:8px 0 12px}
.qz-bar{flex:1;height:10px;background:var(--bd);border-radius:99px;overflow:hidden}
.qz-bar span{display:block;height:100%;background:#0B1C38}
.qz-choice.ok{border-color:#2e9e5b;background:#e7f6ee}
.qz-choice.no{border-color:#b42318;background:#fde8e6}
.qz-choice:disabled{opacity:1;color:inherit}
.qz-term.on{border-color:#0B1C38;box-shadow:0 0 0 3px rgba(11,28,56,.28)}
.qz-def.used,.qz-term.paired{border-color:#d4a017}
.qz-def:disabled{opacity:.72;color:inherit}
.pass-banner,.fail-banner{border-radius:16px;padding:16px;text-align:center;margin:10px 0}
.pass-banner{background:#e7f6ee;color:#14532d}
.fail-banner{background:var(--warn);color:var(--warnfg)}
.qz-score{font-size:40px;font-weight:800;line-height:1.1;margin:4px 0}
.qz-rev{padding-left:1.1em;margin:8px 0 14px}
.qz-rev li{margin:8px 0}
.qz-rev li.ok::marker{color:#2e9e5b}
.qz-rev li.no::marker{color:#b42318}
@media(prefers-color-scheme:dark){
 .bmed{background:#24303a}
 .bcard.earned .bmed{background:#3a3010}
 .bcard.master.locked .bmed{background:#3a3010}
 .bcard.earned .bst{color:#ffd970}
 .qz-bar span{background:#5aa9ff}
 .qz-choice.ok{background:#143024;border-color:#2e9e5b;color:var(--fg)}
 .qz-choice.no{background:#3a1414;border-color:#f0a8a0;color:var(--fg)}
 .qz-term.on{border-color:#5aa9ff;box-shadow:0 0 0 3px rgba(90,169,255,.35)}
 .pass-banner{background:#143024;color:#b6f0cf}
 .tk-chips button{background:#1a2228;color:var(--fg)}
 .tk-chips button.on{background:var(--acc);color:#fff}
 .tk-line input,.tk-line select,textarea.tk-out{background:#12181d;color:var(--fg);border-color:#2c363e}
 .rq-pill.ok{background:#143024;color:#b6f0cf}
 .rq-pill.no{background:#3a1414;color:#f0a8a0}
 .rq-deny{color:#f0a8a0;border-color:#f0a8a0}
}
.tk-chips{display:flex;flex-wrap:wrap;gap:8px;margin:8px 0}
.tk-chips button{min-height:44px;padding:8px 14px;border-radius:999px;border:2px solid var(--bd);background:var(--card);color:var(--fg);font-weight:700;font-size:16px}
.tk-chips button.on{background:var(--acc);color:#fff;border-color:var(--acc)}
.tk-chips button.ask{border-color:#c47b00;box-shadow:0 0 0 3px rgba(196,123,0,.35)}
.tk-prompt{display:flex;gap:8px;margin:8px 0 12px}
.tk-prompt .btn{width:auto;flex:1;min-width:0;margin:0;min-height:52px;font-size:16px;text-align:center;white-space:normal;line-height:1.2;padding:10px 8px}
.tk-supply h3{font-size:16px;margin:12px 0 4px}
.tk-supply .tk-meta{padding:8px 0;border-bottom:1px solid var(--bd);font-size:17px}
.tk-brand{font-weight:700}
.tk-line{margin:8px 0}
.tk-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.tk-grid label,.tk-field{display:block;font-size:14px;color:var(--mut);font-weight:600}
.tk-grid input,.tk-grid select,.tk-field input,textarea.tk-out{width:100%;font-size:17px;padding:10px;border-radius:10px;border:1px solid var(--bd);background:var(--card);color:var(--fg);margin-top:4px}
.tk-actions{display:flex;gap:8px;flex-wrap:wrap}
.tk-actions .btn{flex:1;min-width:140px;text-align:center}
.crew-people{display:flex;flex-wrap:wrap;gap:8px;margin:8px 0}
.crew-chip{display:inline-flex;align-items:center;gap:4px;min-height:44px;padding:4px 4px 4px 12px;border-radius:999px;border:2px solid var(--bd);background:var(--card);font-weight:700;font-size:16px;max-width:100%}
.crew-x{min-width:44px;min-height:36px;border:0;border-radius:999px;background:transparent;color:var(--fg);font-size:22px;font-weight:700;line-height:1}
.badge-chips{list-style:none;padding:0;margin:8px 0;display:flex;flex-direction:column;gap:8px}
.badge-chip{display:flex;align-items:center;gap:8px;min-height:44px;padding:8px 12px;border-radius:12px;border:1px solid var(--bd);background:var(--card);font-weight:700}
.chip-trade{font-size:13px;font-weight:800;letter-spacing:.02em;text-transform:uppercase;padding:4px 8px;border-radius:999px;background:var(--acc);color:#fff;white-space:nowrap}
.amb-strip{display:flex;justify-content:space-between;gap:8px;align-items:baseline;margin:8px 0;padding:10px 12px;border-radius:12px;background:#143024;color:#b6f0cf;font-weight:800}
.friend-card{margin:8px 0}
details summary{min-height:44px;display:flex;align-items:center;font-weight:700;cursor:pointer}
textarea.tk-out{min-height:160px;font-family:ui-monospace,monospace;font-size:14px}
.acct-mail{font-weight:700;word-break:break-all}
.tk-meta{display:flex;justify-content:space-between;gap:8px;align-items:baseline}
pre.tk-out{white-space:pre-wrap;margin:8px 0;padding:10px;border-radius:10px;border:1px solid var(--bd);background:var(--card);font-family:ui-monospace,monospace;font-size:14px}
.rq-card{text-decoration:none;color:inherit}
.rq-line{border:1px solid var(--bd);border-radius:12px;padding:10px;margin:8px 0;background:var(--card)}
.rq-line.sub{border-color:#c47b00;background:var(--warn);color:var(--warnfg)}
.rq-line.sub .small,.rq-line.sub .rq-was,.rq-line.sub label{color:inherit}
.rq-line.drop{border-style:dashed}
.rq-line.drop .tk-grid,.rq-line.drop .rq-main{opacity:.6;text-decoration:line-through}
.rq-was{font-weight:700;min-height:1.2em;margin:8px 0}
.rq-count{font-weight:800}
.rq-actions{display:flex;flex-direction:column;gap:8px;margin:12px 0}
.rq-actions .btn{margin:0;text-align:center}
.rq-deny{background:transparent;color:#8a1c13;border:2px solid #b42318;font-weight:800}
.rq-pill{display:inline-block;font-size:13px;font-weight:800;padding:4px 8px;border-radius:99px;background:var(--bd);white-space:nowrap}
.rq-pill.pending,.rq-pill.edit{background:var(--warn);color:var(--warnfg)}
.rq-pill.ok{background:#e5f6ea;color:#145c32}
.rq-pill.no{background:#fde8e6;color:#8a1c13}
.top{flex-wrap:nowrap}
.brand{flex:none}
.top .lang{width:56px;min-width:40px;height:40px;padding:0;display:inline-flex;align-items:center;justify-content:center;line-height:1;flex:0 1 56px}
#acctBtn{position:relative;margin-left:auto;margin-right:6px;text-decoration:none;color:#fff}
#acctBtn .acct-glyph{display:flex;align-items:center;justify-content:center;width:1.25em;height:1.25em;flex:none;font-size:20px;font-weight:400;font-synthesis:none;line-height:1;font-family:"Apple Color Emoji","Segoe UI Emoji","Noto Color Emoji",sans-serif;pointer-events:none;transform:translateY(1px)}
#instBtn{margin-left:0}
#acctBtn.on::after{content:"✓";position:absolute;right:-2px;bottom:-2px;width:15px;height:15px;border-radius:50%;background:#22c55e;color:#052e16;font-size:10px;line-height:15px;font-weight:800;font-family:system-ui,sans-serif;text-align:center;box-shadow:0 0 0 2px #0B1C38;pointer-events:none}
#toast{z-index:30}
.phone-required{margin:0;padding:12px 14px;background:#fff4d6;color:#3d2a00;font-weight:700;line-height:1.35}
.phone-required[hidden]{display:none}
.phone-required a{color:inherit}
#phoneGate .small{color:#5a6478}
#phoneGate .btn{background:#fff;color:#0B1C38}
#phoneGate .btn.pri{background:#0B1C38;color:#fff}
