:root{--bg:#f6f5f2;--surface:#fff;--ink:#1b1b1f;--muted:#6b6b75;--line:#e3e1dc;--accent:#2f5bea;--accent-ink:#fff;--sold:#1d7a46;--guide:#2f5bea;--listed:#9a5b00;--danger:#b3261e;--radius:14px;color:var(--ink);background:var(--bg);font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif}@media (prefers-color-scheme:dark){:root{--bg:#121215;--surface:#1c1c21;--ink:#ececf1;--muted:#9a9aa6;--line:#2c2c33;--accent:#7c9cff;--accent-ink:#0d0d10;--sold:#5fd08f;--guide:#7c9cff;--listed:#f0b25a;--danger:#ff8a80}}*{box-sizing:border-box}body{background:var(--bg);margin:0}img{max-width:100%}button,input,select{font:inherit;color:inherit}.shell{max-width:720px;margin:0 auto;padding:16px 16px 64px}.masthead h1{margin:8px 0 0;font-size:1.6rem}.masthead p{color:var(--muted);margin:4px 0 16px}.muted{color:var(--muted)}.small{font-size:.8rem;display:block}.eyebrow{text-transform:uppercase;letter-spacing:.06em;color:var(--muted);margin:0;font-size:.75rem}.error{color:var(--danger)}.pulse{animation:1.4s ease-in-out infinite pulse}@keyframes pulse{50%{opacity:.45}}section{margin-top:16px}h2{margin:0 0 8px;font-size:1rem}h3{margin:0 0 4px;font-size:.9rem}.capture{gap:8px;display:grid}.capture>*,.manual>*,.manual .pair>*{min-width:0}.games button{padding:10px 14px;font-size:.95rem}.scanner{gap:10px;display:grid}.set-field{gap:4px;font-size:.85rem;display:grid}.set-field input,.draw-form input{border:1px solid var(--line);background:var(--surface);width:100%;color:var(--ink);border-radius:10px;padding:10px}.photo-buttons{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.photo-buttons .use,.photo-buttons .secondary{padding:10px 18px}.secondary{border:1px solid var(--line);background:var(--surface);cursor:pointer;border-radius:999px;padding:6px 14px;font-weight:600}button:disabled{opacity:.5;cursor:default}.shot{border-radius:var(--radius);width:auto;max-height:60vh;margin:0 auto;display:block}.fit-view{gap:8px;min-width:0;display:grid}.fit-photo{justify-self:center;max-width:100%;margin:0;position:relative}.fit-photo img{border-radius:8px;width:auto;max-width:100%;max-height:70vh;display:block}.fit-photo svg{pointer-events:none;width:100%;height:100%;position:absolute;inset:0}.legend{color:var(--muted);margin:0}.swatch{vertical-align:-1px;border:2px solid;border-radius:2px;width:10px;height:10px;margin-right:2px;display:inline-block}.swatch.card{border-color:var(--muted);border-style:dashed}.swatch.outline{border-color:#e0b100}.swatch.name{border-color:#ff5a5a}.swatch.code{border-color:#4da3ff}.fit-table{background:var(--surface);border:1px solid var(--line);border-radius:10px;overflow-x:auto}.fit-table table{border-collapse:collapse;width:100%;font-size:.8rem}.fit-table th{text-align:left;color:var(--muted);white-space:nowrap;padding:6px 8px;font-weight:600}.fit-table td{border-top:1px solid var(--line);vertical-align:top;padding:6px 8px}.fit-table tr{cursor:pointer}.fit-table tr.shown{background:color-mix(in srgb, var(--accent) 12%, transparent)}.fit-table tr.chosen td:first-child{box-shadow:inset 3px 0 var(--sold)}.fit-table .link{text-align:left;padding:0;font-weight:600}.fit-table .num{font-variant-numeric:tabular-nums;white-space:nowrap}.fit-table .sets{max-width:9em}.attempts{gap:12px;min-width:0;display:grid}.attempts h3{margin:0 0 6px}.attempts ol{gap:8px;margin:0;padding:0;list-style:none;display:grid}.attempts li{border:1px solid var(--line);background:var(--surface);border-radius:10px;min-width:0;padding:8px}.attempts li.used{border-color:var(--sold);box-shadow:inset 3px 0 var(--sold)}.attempts figure{gap:6px;min-width:0;margin:0;display:grid}.attempts img{border:1px solid var(--line);background:#fff;max-width:none;height:auto;display:block}.attempts figure>img{justify-self:start}.attempts li>figure{overflow-x:auto}.tag{background:var(--sold);color:var(--bg);border-radius:999px;margin-left:6px;padding:0 6px;font-size:.7rem;font-weight:700}.tools{color:var(--muted);justify-content:center;align-items:center;gap:16px;margin-top:32px;font-size:.85rem;display:flex}.tools a{color:var(--accent)}.signin{max-width:420px}.signin .error{margin:0}code{font-size:.9em}.mask-picture{aspect-ratio:63/88;background:var(--line);border-radius:4.5%/3.2%;flex:none;position:relative;overflow:hidden}.mask-picture img{object-fit:fill;user-select:none;-webkit-user-drag:none;width:100%;height:100%;display:block}.mask-picture .box{border:2px solid;border-radius:2px;position:absolute}.box.name{background:#ff5a5a2e;border-color:#ff5a5a}.box.code{background:#4da3ff33;border-color:#4da3ff}.mask-picture.drawing{cursor:crosshair;touch-action:none;-webkit-touch-callout:none;-webkit-user-select:none;user-select:none;width:min(100%,360px);overflow:visible}.mask-picture.drawing img{pointer-events:none;border-radius:4.5%/3.2%}.mask-picture.drawing .box{cursor:move}.mask-picture .box.selected{border-width:3px}.box-label{color:#fff;pointer-events:none;white-space:nowrap;background:#0000008c;border-radius:3px;padding:0 4px;font-size:.7rem;font-weight:700;position:absolute;top:-1.5em;left:0}.box.code .box-label{top:auto;bottom:-1.5em}.handle{pointer-events:none;background:#ffffffb3;border:3px solid;border-radius:50%;width:22px;height:22px;margin:-11px;position:absolute;box-shadow:0 1px 3px #00000080}.box.selected .handle{background:#fff;width:26px;height:26px;margin:-13px}.box.name .handle{color:#ff5a5a}.box.code .handle{color:#4da3ff}.handle.h0{top:0;left:0}.handle.h1{top:0;right:0}.handle.h2{bottom:0;right:0}.handle.h3{bottom:0;left:0}.nudge{grid-template-columns:repeat(4,1fr);gap:6px;width:min(100%,360px);display:grid}.nudge button{touch-action:manipulation;border-radius:10px;padding:10px 0;font-size:1rem}.new-mask{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);gap:10px;padding:14px;display:grid}.new-mask p{margin:0}.draw{flex-wrap:wrap;align-items:flex-start;gap:16px;display:flex}.draw-card{flex:260px;gap:6px;max-width:360px;display:grid}.draw-form{flex:220px;align-content:start;gap:10px;display:grid}.draw-form label{gap:4px;font-size:.85rem;display:grid}.draw-form .chips{margin:0}.mask-list{grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:10px;margin:0;padding:0;list-style:none;display:grid}.mask-list li{background:var(--surface);border:1px solid var(--line);border-radius:12px;gap:10px;min-width:0;padding:10px;display:flex}.mask-list .mask-picture{width:96px}.mask-list .what{align-content:start;gap:2px;min-width:0;font-size:.9rem;display:grid}.mask-list .sets{overflow-wrap:anywhere}.mask-list .actions{gap:4px;margin-top:4px;display:flex}.mask-list .link{margin-right:10px;padding:4px 0}.link.danger{color:var(--danger)}.reads{grid-template-columns:auto 1fr;align-items:center;gap:6px 12px;margin:0;display:grid}.reads dt{text-transform:uppercase;letter-spacing:.06em;color:var(--muted);font-size:.75rem}.reads dd{flex-wrap:wrap;align-items:center;gap:6px;min-height:2em;margin:0;display:flex}.reads dd.wide{grid-column:1/-1}.small-inline{font-size:.8rem}.prompt{margin:0}.use,.again{background:var(--accent);color:var(--accent-ink);cursor:pointer;border:0;border-radius:999px;padding:6px 14px;font-weight:600}.again{flex:none;margin-left:auto}.link{color:var(--accent);cursor:pointer;background:0 0;border:0;justify-self:center;padding:6px}.manual{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);gap:10px;padding:14px;display:grid}.manual label{color:var(--muted);gap:4px;font-size:.85rem;display:grid}.manual input,.manual select{border:1px solid var(--line);background:var(--bg);width:100%;color:var(--ink);border-radius:10px;padding:10px}.manual .pair{grid-template-columns:1fr 1fr;gap:10px;display:grid}.manual button{background:var(--ink);color:var(--bg);cursor:pointer;border:0;border-radius:10px;padding:12px;font-weight:600}.status,.readout{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);align-items:center;gap:12px;padding:12px;display:flex}.status.error{flex-wrap:wrap}.photo{object-fit:cover;border-radius:6px;flex:none;width:72px;height:100px}.read-name{margin:2px 0;font-size:1.1rem;font-weight:600}.readout p{margin:2px 0}.note{color:var(--listed);font-size:.85rem}.confidence.high{color:var(--sold)}.confidence.medium{color:var(--listed)}.confidence.low{color:var(--danger)}.candidates ul{scroll-snap-type:x proximity;gap:8px;margin:0;padding:0 0 6px;list-style:none;display:flex;overflow-x:auto}.candidates li{scroll-snap-align:start;flex:none}.candidates button{text-align:left;background:var(--surface);border:2px solid var(--line);cursor:pointer;border-radius:12px;align-items:center;gap:8px;width:230px;padding:8px;display:flex}.candidates button.chosen{border-color:var(--accent)}.candidates img,.candidates .noimg{object-fit:cover;background:var(--line);border-radius:4px;flex:none;width:46px;height:64px}.candidates .what{min-width:0;font-size:.85rem;display:grid}.candidates .what>*{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.chips{flex-wrap:wrap;gap:6px;margin-bottom:10px;display:flex}.chips button{border:1px solid var(--line);background:var(--surface);cursor:pointer;border-radius:999px;padding:6px 12px;font-size:.85rem}.chips button[aria-pressed=true]{background:var(--ink);color:var(--bg);border-color:var(--ink)}.ranges{gap:6px;margin-bottom:12px;display:grid}.range{background:var(--surface);border:1px solid var(--line);border-left:5px solid;border-radius:10px;grid-template-columns:auto 1fr;align-items:baseline;column-gap:12px;padding:10px 12px;display:grid}.range.sold{border-left-color:var(--sold)}.range.guide{border-left-color:var(--guide)}.range.listed{border-left-color:var(--listed)}.range .figure{text-align:right;font-variant-numeric:tabular-nums;font-size:1.15rem;font-weight:700}.range .small{text-align:right;grid-column:2}.market{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);margin-bottom:8px;padding:12px}.market table{border-collapse:collapse;width:100%}.market td{border-top:1px solid var(--line);vertical-align:top;padding:8px 0}.market tr:first-child td{border-top:0}.market .label{font-weight:500}.market .amount{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap;padding-left:12px;font-weight:700}.market .amount a{color:inherit}.basis{text-transform:uppercase;letter-spacing:.05em;margin-right:6px;font-size:.7rem;font-weight:700}.basis.sold{color:var(--sold)}.basis.guide{color:var(--guide)}.basis.listed{color:var(--listed)}.sources{color:var(--muted);gap:2px;margin:12px 0 0;padding:0;font-size:.8rem;list-style:none;display:grid}.sources .error{color:var(--danger)}.sold-links{margin-bottom:12px}.sold-links h3{margin:0 0 6px}.sold-links ul{grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:8px;margin:0;padding:0;list-style:none;display:grid}.sold-links a{border:1px solid var(--line);background:var(--surface);min-height:44px;color:var(--accent);border-radius:10px;gap:2px;padding:10px 12px;text-decoration:none;display:grid}.sold-links a:hover,.sold-links a:focus-visible{border-color:var(--accent)}.sold-links strong:after{content:" ↗";font-weight:400}.pricer{padding-bottom:calc(96px + env(safe-area-inset-bottom))}.session-bar{z-index:20;background:var(--surface);border-top:1px solid var(--line);padding:8px 16px calc(8px + env(safe-area-inset-bottom));position:fixed;bottom:0;left:0;right:0;box-shadow:0 -6px 18px #00000014}.session-bar-inner{grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:8px;max-width:720px;margin:0 auto;display:grid}.session-bar .sessions-button{border:1px solid var(--line);background:0 0}.session-sum{min-width:0;color:inherit;line-height:1.25;text-decoration:none;display:grid}.session-sum>span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.session-sum strong{font-variant-numeric:tabular-nums}.session-bar button{white-space:nowrap;border-radius:10px;min-height:44px;padding:0 14px}.session-bar .add{background:var(--accent);color:var(--accent-ink);border:0;font-weight:600}.session-bar .error{max-width:720px;margin:6px auto 0}@media (width<=560px){.session-bar-inner{grid-template-columns:minmax(0,1fr) auto}.session-bar .add{grid-column:1/-1}}.new-session{margin:0 0 16px}.session-list{gap:8px;margin:0;padding:0;list-style:none;display:grid}.session-list a{border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);color:inherit;grid-template-columns:1fr auto;gap:2px 12px;padding:12px 14px;text-decoration:none;display:grid}.session-list a:hover,.session-list a:focus-visible{border-color:var(--accent)}.session-name{overflow-wrap:anywhere;min-width:0;font-weight:600}.session-total{font-variant-numeric:tabular-nums;font-weight:700}.session-list .muted{grid-column:1/-1}.session-head{gap:12px;margin-bottom:16px;display:grid}.session-head h1{overflow-wrap:anywhere;margin:0}.session-total-box{border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);gap:2px;padding:12px 14px;display:grid}.session-total-box .figure{font-variant-numeric:tabular-nums;font-size:1.8rem;font-weight:700}.session-actions{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;display:flex}a.button{background:var(--accent);min-height:44px;color:var(--accent-ink);border-radius:10px;align-items:center;padding:0 16px;font-weight:600;text-decoration:none;display:inline-flex}.rename{flex-wrap:wrap;align-items:end;gap:8px;display:flex}.rename label{flex:200px;gap:4px;display:grid}.session-cards{gap:10px;margin:0;padding:0;list-style:none;display:grid}.session-card{border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);grid-template-columns:63px minmax(0,1fr);gap:12px;padding:12px;display:grid}.session-card img,.thumb-blank{object-fit:cover;background:var(--line);border-radius:4px;width:63px;height:88px}.session-card-body{gap:4px;min-width:0;display:grid}.session-card-body p{overflow-wrap:anywhere;margin:0}.session-card-controls{flex-wrap:wrap;align-items:end;gap:8px 10px;margin-top:4px;display:flex}.price-field{gap:2px;display:grid}.price-field input{border:1px solid var(--line);background:var(--bg);font-variant-numeric:tabular-nums;border-radius:8px;width:5.5em;min-height:40px;padding:0 8px}.qty{align-items:center;gap:6px;display:inline-flex}.qty button{border:1px solid var(--line);background:var(--bg);border-radius:8px;width:40px;height:40px}.qty span{text-align:center;font-variant-numeric:tabular-nums;min-width:2.5em}.line-total{font-variant-numeric:tabular-nums;align-self:center;margin-left:auto;font-weight:700}.session-title{flex-wrap:wrap;align-items:baseline;gap:8px;display:flex}.session-card-foot{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:4px 8px;display:flex}.session-card-foot>.small-inline{flex:200px;min-width:0}.session-card-actions{margin-left:auto}.session-card-foot .link{padding:6px 0 6px 8px}.sold-inline a{color:var(--accent)}.app-sidebar{display:none}@media (width>=1024px){.app{grid-template-columns:300px minmax(0,1fr);display:grid}.app-sidebar{overscroll-behavior:contain;border-right:1px solid var(--line);background:var(--surface);height:100dvh;display:block;position:sticky;top:0;overflow-y:auto}.app-main{min-width:0}.session-bar{left:300px}.session-bar .sessions-button{display:none}}.sidebar{padding:16px 12px 24px}.sidebar-head h2{flex:1}.sidebar-head{background:var(--surface);border-bottom:1px solid var(--line);align-items:center;gap:8px;margin:-16px -12px 8px;padding:16px 12px 8px;display:flex;position:sticky;top:-16px}.sidebar-head h2{margin:0;font-size:1.05rem}.sidebar-list{gap:4px;margin:0;padding:0;list-style:none;display:grid}.sidebar-list a{color:inherit;border-radius:10px;grid-template-columns:minmax(0,1fr) auto;gap:0 8px;padding:8px 10px;text-decoration:none;display:grid}.sidebar-list a:hover,.sidebar-list a:focus-visible{background:var(--bg)}.sidebar-list a[aria-current=page]{background:var(--bg);box-shadow:inset 3px 0 var(--accent)}.sidebar-name{text-overflow:ellipsis;white-space:nowrap;font-weight:600;overflow:hidden}.sidebar-total{font-variant-numeric:tabular-nums;font-weight:700}.sidebar-list .muted{grid-column:1/-1}.scale-control{border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);grid-template-columns:1fr auto;align-items:center;gap:4px 12px;padding:10px 14px;display:grid}.scale-control label{font-weight:600}.scale-control output{font-variant-numeric:tabular-nums;font-weight:700}.scale-control input[type=range]{width:100%;min-height:32px;accent-color:var(--accent);grid-column:1/-1}.scale-control .link{grid-column:1/-1;justify-self:start;padding:2px 0}.final-box{border:2px solid var(--accent);border-radius:var(--radius);background:var(--surface);gap:2px;margin-bottom:8px;padding:12px 14px;display:grid}.final-input{align-items:baseline;gap:2px;font-size:1.8rem;font-weight:700;display:flex}.final-input input{border:1px solid #0000;border-bottom-color:var(--line);width:100%;min-width:0;font:inherit;font-variant-numeric:tabular-nums;background:0 0;border-radius:6px;padding:2px 6px}.final-input input:hover{border-color:var(--line)}.final-input input:focus{border-color:var(--accent);background:var(--bg);outline:none}.final-box .link{justify-self:start;padding:2px 0}.market tr.pickable{cursor:pointer}.market tr.pickable:hover td{background:var(--bg)}.market tr.picked td{background:color-mix(in srgb, var(--accent) 10%, var(--surface))}.market input.pick{vertical-align:-3px;width:18px;height:18px;accent-color:var(--accent);margin:0 8px 0 0}.sessions-panel{background:var(--surface);width:100%;max-width:100%;height:100%;max-height:100%;color:var(--ink);border:0;margin:0;padding:0}.sessions-panel::backdrop{background:#0006}.sessions-panel .sidebar{padding-bottom:calc(24px + env(safe-area-inset-bottom))}@media (width>=600px){.sessions-panel{border-left:1px solid var(--line);width:min(420px,100%);margin:0 0 0 auto}}.account-strip{justify-content:flex-end;max-width:720px;margin:0 auto;padding:12px 16px 0;display:flex}.account-button{border:1px solid var(--line);background:var(--surface);min-height:40px;color:inherit;text-overflow:ellipsis;white-space:nowrap;border-radius:999px;align-items:center;gap:6px;max-width:100%;padding:0 12px;font-size:.9rem;text-decoration:none;display:inline-flex;overflow:hidden}.account-button:hover,.account-button:focus-visible,.account-button[aria-current=page]{border-color:var(--accent)}.account-section{gap:10px;margin-bottom:28px;display:grid}.account-section h2,.account-section form{margin:0}.notice{background:color-mix(in srgb, var(--sold) 14%, var(--surface));border-radius:10px;margin:0;padding:10px 12px}button.secondary{border:1px solid var(--line);background:var(--surface);cursor:pointer;border-radius:10px;min-height:44px;padding:0 16px}.names h2{margin:0 0 6px}.names .chips button .count{opacity:.7;font-variant-numeric:tabular-nums;margin-left:4px;font-size:.8em}.card-open{color:inherit;font:inherit;text-align:left;cursor:pointer;background:0 0;border:0;padding:0}.card-open strong{text-decoration:underline;text-decoration-color:var(--line);text-underline-offset:3px}.card-open:hover strong,.card-open:focus-visible strong{text-decoration-color:currentColor}.card-open.thumb{border-radius:4px;align-self:start}.session-card-actions{flex:none;gap:4px;display:inline-flex}.card-editor{background:var(--bg);width:100%;max-width:100%;height:100%;max-height:100%;color:var(--ink);border:0;margin:0;padding:0}.card-editor::backdrop{background:#00000073}.card-editor[open]{flex-direction:column;display:flex}.card-editor>.prices{overscroll-behavior:contain;flex:1;padding:12px 16px;overflow-y:auto}.card-editor-head{border-bottom:1px solid var(--line);background:var(--surface);justify-content:space-between;align-items:start;gap:12px;padding:12px 16px;display:flex}.card-editor-head h2{overflow-wrap:anywhere;margin:0}.card-editor-head p{margin:0}.card-editor-foot{padding:10px 16px calc(10px + env(safe-area-inset-bottom));border-top:1px solid var(--line);background:var(--surface);grid-template-columns:1fr auto;align-items:center;gap:6px 12px;display:grid}.card-editor-foot p{margin:0}.card-editor-foot .error{grid-column:1/-1}.card-editor-foot .add{background:var(--accent);min-height:44px;color:var(--accent-ink);white-space:nowrap;border:0;border-radius:10px;padding:0 16px;font-weight:600}@media (width>=760px){.card-editor{border-radius:var(--radius);border:1px solid var(--line);width:min(720px,100% - 48px);height:min(900px,100% - 48px);margin:auto}}.quote-note{color:var(--ink);opacity:.8;display:block}.price-source{color:var(--ink);font-weight:600;display:block}.login{box-sizing:border-box;flex-direction:column;justify-content:center;max-width:420px;min-height:100dvh;padding-top:24px;padding-bottom:24px;display:flex}.login .masthead{text-align:center}.login .signin{box-sizing:border-box;width:100%;max-width:none}
