@font-face{font-family:Young Serif;src:url(/fonts/young-serif-latin.woff2)format("woff2");font-weight:400 900;font-display:swap}@font-face{font-family:Hanken Grotesk;src:url(/fonts/hanken-grotesk-latin.woff2)format("woff2");font-weight:400 700;font-display:swap}:root,[data-theme=light]{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--color-bg:#f5f3f8;--color-surface:#fff;--color-surface-raised:#ebe8f1;--color-border:#d9d4e3;--color-ink:#17151c;--color-muted:#55505f;--color-faint:#675f73;--color-accent:#8b2fa3;--color-accent-strong:#79268f;--color-accent-deep:#7b2d8e;--color-accent-soft:#8b2fa31f;--color-on-accent:#fff;--color-positive:#23784a;--color-negative:#b71c45;--color-negative-deep:#b71c45;--color-warn:#b8690a;--color-warn-soft:#b8690a1f;--color-warn-text:#8f5206;--scan-bg:#0b0a0e;--scan-ok:#6fcf97;--scan-warn:#e6a23c;--scan-dup:#b79bff;--scan-soft:#cfc8dc;--font-sans:"Hanken Grotesk", ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--font-serif:"Young Serif", Georgia, "Times New Roman", serif;--radius-md:6px;--radius-card:8px;--radius-cover:4px;--radius-full:9999px;--space-xs:4px;--space-sm:8px;--space-md:16px;--space-lg:20px;--space-xl:24px;--tap:48px;--shadow-cover:0 1px 2px #17151c33, 0 4px 10px -4px #17151c40;--shadow-sheet:0 -8px 32px -8px #17151c40;--ease:cubic-bezier(.2,.7,.2,1);--dur:.16s}[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--color-bg:#121016;--color-surface:#1b1820;--color-surface-raised:#25212c;--color-border:#34303d;--color-ink:#f4f1f8;--color-muted:#b9b3c4;--color-faint:#958ea2;--color-accent:#d58cec;--color-accent-strong:#e3aaf3;--color-accent-deep:#8e3aa3;--color-accent-soft:#d58cec26;--color-on-accent:#fff;--color-positive:#6fcf97;--color-negative:#ff8098;--color-negative-deep:#c9284f;--color-warn:#e6a23c;--color-warn-soft:#e6a23c26;--color-warn-text:var(--color-warn);--shadow-cover:0 1px 2px #000a, 0 6px 14px -6px #000c;--shadow-sheet:0 -8px 32px -8px #000c}*{box-sizing:border-box}.ook,body{font-family:var(--font-sans);color:var(--color-ink);background:var(--color-bg);-webkit-font-smoothing:antialiased;font-size:14px;line-height:1.5}body{margin:0}.ook h1,.ook h2,.ook h3,h1,h2,h3{font-family:var(--font-serif);letter-spacing:-.01em;margin:0;font-weight:700;line-height:1.15}.ook h1{font-size:24px}.ook h2{font-size:20px}.ook h3{font-size:17px;line-height:1.3}p{margin:0}.label{color:var(--color-faint);font-size:12px;line-height:1.4}.muted{color:var(--color-muted)}.ic{stroke:currentColor;fill:none;stroke-width:1.75px;stroke-linecap:round;stroke-linejoin:round;flex:none;width:20px;height:20px}.ic.sm{width:16px;height:16px}.ic.lg{width:24px;height:24px}.btn{min-height:var(--tap);border-radius:var(--radius-md);border:1px solid var(--color-border);background:var(--color-surface-raised);color:var(--color-ink);font:500 15px var(--font-sans);cursor:pointer;transition:transform var(--dur) var(--ease);justify-content:center;align-items:center;gap:8px;padding:0 18px;display:inline-flex}.btn:active{transform:scale(.98)}.btn.primary{background:var(--color-accent-deep);color:var(--color-on-accent);border-color:#0000}.btn.danger{background:var(--color-negative-deep);color:var(--color-on-accent);border-color:#0000}.btn.ghost{background:0 0}.btn.block{width:100%;display:flex}.btn.sm{min-height:36px;padding:0 12px;font-size:13px}.btn:disabled,.btn.disabled{opacity:.6}:focus-visible{outline:2px solid var(--color-accent-strong);outline-offset:2px}.field{display:block}.field>span{color:var(--color-muted);margin-bottom:4px;font-size:12px;display:block}.input{min-height:var(--tap);border-radius:var(--radius-md);background:var(--color-surface-raised);border:1px solid var(--color-border);color:var(--color-ink);align-items:center;gap:8px;padding:0 12px;display:flex}.input:focus-within{border-color:color-mix(in srgb,var(--color-accent) 50%,transparent)}.input input{min-width:0;font:15px var(--font-sans);color:inherit;background:0 0;border:0;outline:0;flex:1}.input input::placeholder{color:var(--color-faint)}.field.err .input{border-color:var(--color-negative)}.field .errmsg{color:var(--color-negative);margin-top:4px;font-size:12px}.chips{scrollbar-width:none;gap:8px;padding:2px 16px;display:flex;overflow-x:auto}.chip{border-radius:var(--radius-full);border:1px solid var(--color-border);background:var(--color-surface);min-height:36px;color:var(--color-muted);font:500 13px var(--font-sans);flex:none;align-items:center;gap:6px;padding:0 12px;display:inline-flex}.chip.on{background:var(--color-ink);color:var(--color-bg);border-color:#0000}.chip .n{font-variant-numeric:tabular-nums;opacity:.7}.seg{border-radius:var(--radius-md);background:var(--color-surface-raised);border:1px solid var(--color-border);padding:2px;display:inline-flex}.seg button{min-width:44px;min-height:40px;color:var(--color-muted);background:0 0;border:0;border-radius:4px;place-items:center;padding:0 10px;display:grid}.seg button.on{background:var(--color-surface);color:var(--color-ink);box-shadow:0 0 0 1px var(--color-border)}.tabs{border-bottom:1px solid var(--color-border);display:flex}.tabs a{text-align:center;color:var(--color-muted);border-bottom:2px solid #0000;flex:1;padding:12px 0;font-weight:500}.tabs a.on{color:var(--color-ink);border-color:var(--color-accent)}.card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-card);padding:var(--space-lg)}.list{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-card);overflow:hidden}.row{border-top:1px solid var(--color-border);align-items:center;gap:12px;min-height:56px;padding:10px 14px;display:flex}.row:first-child{border-top:0}.row .grow{flex:1;min-width:0}.row .t{white-space:nowrap;text-overflow:ellipsis;font-weight:500;overflow:hidden}.row .s{color:var(--color-faint);white-space:nowrap;text-overflow:ellipsis;font-size:12px;overflow:hidden}.badge{border-radius:var(--radius-full);background:var(--color-surface-raised);height:22px;color:var(--color-muted);align-items:center;gap:4px;padding:0 8px;font-size:12px;font-weight:500;display:inline-flex}.badge.accent{background:var(--color-accent-soft);color:var(--color-accent-strong)}.badge.warn{background:var(--color-warn-soft);color:var(--color-warn)}.badge.ok{color:var(--color-positive)}.count{font-variant-numeric:tabular-nums;color:var(--color-faint);font-size:13px}.cv{--h:270;width:100%;aspect-ratio:var(--r,2/3);border-radius:var(--radius-cover);box-shadow:var(--shadow-cover);background:hsl(var(--h) 38% 30%);color:#fff;display:block;position:relative;overflow:hidden;container-type:inline-size}.cv img{object-fit:contain;width:100%;height:100%;display:block}.cv.gen{background:linear-gradient(160deg,hsl(var(--h) 42% 36%),hsl(calc(var(--h) + 30) 45% 20%));flex-direction:column;justify-content:space-between;padding:9%;display:flex}.cv.gen:after{content:"";background:linear-gradient(90deg,#0000002e 0,#0000 6%);position:absolute;inset:0}.cv.gen b{font:700 clamp(9px,11cqw,17px)/1.15 var(--font-serif);-webkit-line-clamp:4;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.cv.gen i{font:normal 500 clamp(7px,7.5cqw,11px)/1.2 var(--font-sans);opacity:.8;align-items:center;gap:4px;display:flex}.cv.blur{filter:blur(8px)}.cv.sharp{transition:filter .3s var(--ease)}.r-book,.r-movie{--r:2/3}.r-ps{--r:.79}.r-switch{--r:.62}.r-square{--r:1}.shelf{gap:18px 12px;padding:0 16px;display:grid}.shelf.d3{grid-template-columns:repeat(3,1fr)}.shelf.d2{grid-template-columns:repeat(2,1fr);gap:22px 16px}.shelf.d4{grid-template-columns:repeat(4,1fr);gap:14px 8px}.tile{min-width:0;display:block}.tile .slot{aspect-ratio:2/3;border-bottom:1px solid var(--color-border);align-items:flex-end;padding-bottom:6px;display:flex}.tile .meta{min-width:0;padding-top:6px}.tile .meta b{-webkit-line-clamp:2;-webkit-box-orient:vertical;font-size:13px;font-weight:500;line-height:1.25;display:-webkit-box;overflow:hidden}.tile .meta span{color:var(--color-faint);white-space:nowrap;text-overflow:ellipsis;font-size:12px;display:block;overflow:hidden}.tile .pill{position:absolute;top:4px;right:4px}.tile.dup .slot:after{content:attr(data-n);position:absolute}.nav{background:var(--color-surface);border-top:1px solid var(--color-border);padding:6px 4px calc(10px + env(safe-area-inset-bottom,0px));grid-template-columns:1fr 1fr 76px 1fr 1fr;align-items:end;display:grid;position:relative}.nav a{min-height:var(--tap);color:var(--color-faint);flex-direction:column;justify-content:center;align-items:center;gap:2px;font-size:11px;font-weight:500;display:flex}.nav a.on{color:var(--color-accent-strong)}.nav .scan{border-radius:var(--radius-full);background:var(--color-accent-deep);width:64px;height:64px;color:var(--color-on-accent);border:4px solid var(--color-bg);place-items:center;margin:-26px auto 0;display:grid}.nav .scan .ic{width:28px;height:28px}.top{align-items:center;gap:8px;padding:12px 16px 8px;display:flex}.top h1{flex:1}.iconbtn{width:var(--tap);height:var(--tap);border-radius:var(--radius-full);color:var(--color-ink);background:0 0;border:0;place-items:center;display:grid}.iconbtn.fill{background:var(--color-surface-raised)}.scrim{z-index:10;background:#0b0a0e8c;position:absolute;inset:0}.sheet{z-index:11;background:var(--color-surface);box-shadow:var(--shadow-sheet);padding:8px 16px calc(16px + env(safe-area-inset-bottom,0px));border-radius:16px 16px 0 0;max-height:88%;position:absolute;bottom:0;left:0;right:0;overflow:hidden}.sheet:before{content:"";background:var(--color-border);border-radius:2px;width:36px;height:4px;margin:0 auto 12px;display:block}.sheet h2{margin-bottom:4px}.empty{text-align:center;flex-direction:column;align-items:center;gap:12px;padding:40px 32px;display:flex}.empty .art{width:96px;height:72px;color:var(--color-accent)}.empty p{color:var(--color-muted);max-width:28ch}.skel{background:linear-gradient(90deg,var(--color-surface-raised),var(--color-border),var(--color-surface-raised));border-radius:var(--radius-cover);background-size:200% 100%;animation:1.4s linear infinite sh}@keyframes sh{to{background-position:-200% 0}}.notice{border-radius:var(--radius-card);background:var(--color-surface-raised);border:1px solid var(--color-border);align-items:flex-start;gap:10px;padding:12px 14px;display:flex}.notice.err{border-color:var(--color-negative)}.notice.err .ic{color:var(--color-negative)}.notice.warn .ic{color:var(--color-warn)}.toast{border-radius:var(--radius-card);background:var(--color-ink);color:var(--color-bg);align-items:center;gap:10px;padding:12px 14px;display:flex}@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}.steps{color:var(--color-faint);align-items:center;gap:8px;font-size:12px;font-weight:500;display:inline-flex}.steps span{align-items:center;gap:6px;display:inline-flex}.steps i{width:20px;height:20px;font:600 11px var(--font-sans);border:1.5px solid;border-radius:50%;place-items:center;font-style:normal;display:inline-grid}.steps i .ic{stroke-width:2.5px;width:12px;height:12px}.steps b{background:var(--color-border);width:14px;height:1.5px}.steps .on{color:var(--color-ink)}.steps .on i{background:var(--color-accent-deep);color:var(--color-on-accent);border-color:#0000}.steps .done{color:var(--color-positive)}.rf .steps,.scanbg .steps{color:var(--scan-soft)}.rf .steps b,.scanbg .steps b{background:#ffffff40}.rf .steps .on,.scanbg .steps .on{color:#fff}.rf .steps .done,.scanbg .steps .done{color:var(--scan-ok)}.rf{z-index:50;background:var(--scan-bg);color:#fff;-webkit-user-select:none;user-select:none;flex-direction:column;display:flex;position:fixed;inset:0;overflow:hidden}.rf video{object-fit:cover;z-index:0;width:100%;height:100%;position:absolute;inset:0}.rf>:not(video):not(.rf-edge){z-index:3;position:relative}.rf .iconbtn{color:#fff;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#ffffff26}.rf .chip{color:#fff;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#ffffff26;border-color:#fff3}.rf-top{padding:calc(8px + env(safe-area-inset-top,0px)) 12px 0;align-items:center;gap:8px;display:flex}.rf-top .lieu{flex:1;justify-content:center;min-width:0;min-height:44px}.rf-steps{justify-content:center;padding:8px 0 0;display:flex}.rf-steps .steps{background:#0b0a0e99;border-radius:9999px;padding:5px 12px}.rf-stage{flex:1 1 0;min-height:0;position:relative}.rf-stage .vf{width:min(78vw,340px);height:min(36vw,160px);position:absolute;top:14%;left:50%;transform:translate(-50%)}.rf-stage .hint{text-align:center;pointer-events:none;position:absolute;top:calc(14% + min(36vw,160px) + 14px);left:0;right:0}.rf-stage .hint .cap{background:#0b0a0e99;border-radius:9999px;padding:4px 12px;font-size:13px;display:inline-block}.vfbars{opacity:.28;background:repeating-linear-gradient(90deg,#fff 0 3px,#0000 3px 6px,#fff 6px 7px,#0000 7px 11px,#fff 11px 15px,#0000 15px 17px);position:absolute;inset:26% 14%}.rf .vf.ok:before,.rf .vf.ok:after,.rf .vf.ok i,.rf .vf.ok b{border-color:var(--scan-ok)}.rf .vf.ko:before,.rf .vf.ko:after,.rf .vf.ko i,.rf .vf.ko b{border-color:#ff8098}.rf-edge{z-index:2;pointer-events:none;opacity:0;border-radius:0;position:absolute;inset:0}.rf-edge.ok{--c:var(--scan-ok)}.rf-edge.warn{--c:var(--scan-warn)}.rf-edge.dup{--c:var(--scan-dup)}.rf-edge.on{animation:.7s ease-out edge}@keyframes edge{0%{opacity:1;box-shadow:inset 0 0 0 10px var(--c),inset 0 0 60px var(--c)}to{opacity:0;box-shadow:inset 0 0 0 2px var(--c),inset 0 0 0 transparent}}@media (prefers-reduced-motion:reduce){.rf-edge.on{animation:.7s linear edgefade}@keyframes edgefade{0%{opacity:1;box-shadow:inset 0 0 0 8px var(--c)}to{opacity:0;box-shadow:inset 0 0 0 8px var(--c)}}}.rf-zone{padding:0 12px 8px}.glassbar{-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);background:#141119e6;border:1px solid #ffffff1f;border-radius:16px}.tally{color:#fff;white-space:nowrap;align-items:center;gap:12px;padding:0 4px 8px;font-size:13px;display:flex;overflow:hidden}.tally b{font:700 22px var(--font-serif);letter-spacing:-.01em;line-height:1}.tally span{color:var(--scan-soft)}.tally .s{align-items:center;gap:4px;font-style:normal;font-weight:600;display:inline-flex}.tally .s.ok{color:var(--scan-ok)}.tally .s.warn{color:var(--scan-warn)}.tally .s.dup{color:var(--scan-dup)}.tally .s.pend{color:var(--scan-soft)}.rail{justify-content:flex-end;align-items:flex-end;gap:12px;min-height:116px;padding:12px 16px 14px;display:flex;overflow:hidden}.rail .empty-rail{text-align:center;color:var(--scan-soft);align-self:center;max-width:30ch;margin:auto;font-size:13px}.rt{width:54px;color:inherit;font:inherit;cursor:pointer;background:0 0;border:0;flex:none;padding:0;position:relative}.rt .cvw{width:100%}.rt .bd{border:2px solid var(--scan-bg);width:26px;height:26px;color:var(--scan-bg);border-radius:50%;place-items:center;display:grid;position:absolute;bottom:-8px;right:-8px}.rt .bd .ic{stroke-width:2.5px;width:15px;height:15px}.rt.ok .bd{background:var(--scan-ok)}.rt.warn .bd{background:var(--scan-warn)}.rt.dup .bd{background:var(--scan-dup)}.rt.new .cvw{outline-offset:2px;border-radius:var(--radius-cover);outline:2px solid #fff}.rt .ph{aspect-ratio:2/3;border-radius:var(--radius-cover);color:var(--scan-soft);text-align:center;place-items:center;font-size:11px;line-height:1.2;display:grid}.rt.pend .ph{background:linear-gradient(90deg,#ffffff14,#ffffff2e,#ffffff14) 0 0/200% 100%;animation:1.4s linear infinite sh}.rt.wait .ph{background:#ffffff10;border:1.5px dashed #fff6}.rt .code{font:500 12px var(--font-sans);color:var(--scan-soft);text-align:center;margin-top:4px;display:block}.rt.sel .cvw{outline:2px solid var(--color-accent);outline-offset:2px;border-radius:var(--radius-cover)}.dock{padding:0 12px calc(12px + env(safe-area-inset-bottom,0px));align-items:stretch;gap:8px;display:flex}.dock .btn,.dock .iconbtn{min-height:64px}.dock .undo{color:#fff;background:#ffffff1f;border-color:#fff3;flex-direction:column;flex:none;gap:2px;width:76px;padding:0;font-size:12px}.dock .tri{flex:1;min-height:64px;font-size:16px}.dock .tri .count{color:#fff;background:#fff3;border-radius:9999px;padding:1px 9px;font-size:14px;font-weight:600}.dock .sq{border-radius:var(--radius-md);color:#fff;cursor:pointer;background:#ffffff1f;border:1px solid #fff3;flex:none;place-items:center;width:56px;min-height:64px;font-size:12px;display:grid}.dock .sq.on{color:var(--scan-bg);background:#fff}.dock .sq span{flex-direction:column;align-items:center;gap:2px;display:flex}.dock .sq:disabled{opacity:.4}.banner{background:var(--color-warn-soft);border:1px solid var(--scan-warn);color:#fff;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);border-radius:12px;align-items:center;gap:10px;margin:0 12px 8px;padding:10px 12px;font-size:13px;display:flex}.banner .ic{color:var(--scan-warn)}.banner.info{background:#141119e6;border-color:#fff3}.banner.info .ic{color:var(--scan-soft)}.banner .btn{min-height:44px;margin-left:auto}.chipstate{border-radius:9999px;align-items:center;gap:6px;padding:3px 10px;font-size:12px;font-weight:600;display:inline-flex}.chipstate.ok{background:var(--scan-ok);color:var(--scan-bg)}.chipstate.warn{background:var(--scan-warn);color:var(--scan-bg)}.chipstate.dup{background:var(--scan-dup);color:var(--scan-bg)}.chipstate .ic{stroke-width:2.5px;width:14px;height:14px}.badge.warn{color:var(--color-warn-text)}.btn.sm{min-height:44px}@media (width>=768px){.btn.sm{min-height:36px}}.tri-top{padding:calc(8px + env(safe-area-inset-top,0px)) 8px 4px 8px;align-items:center;gap:8px;display:flex}.tri-top .grow{flex:1;min-width:0}.prog{background:var(--color-border);border-radius:2px;height:4px;margin:0 16px 10px;overflow:hidden}.prog i{background:var(--color-accent-deep);height:100%;transition:width var(--dur) var(--ease);border-radius:2px;display:block}.cands{grid-template-columns:1fr 1fr;gap:16px 12px;margin-top:12px;padding:0 16px;display:grid}.cand{text-align:left;color:inherit;font:inherit;cursor:pointer;background:0 0;border:0;min-height:44px;padding:0;position:relative}.cand .cvbox{border-bottom:1px solid var(--color-border);padding-bottom:6px}.cand .m{padding-top:6px}.cand .m b{font-size:14px;font-weight:500;line-height:1.25;display:block}.cand .m span{color:var(--color-faint);font-size:12px;display:block}.cand.sel .cvbox .cv{outline:3px solid var(--color-accent);outline-offset:3px}.cand .tick{z-index:2;background:var(--color-accent-deep);width:28px;height:28px;color:var(--color-on-accent);border-radius:50%;place-items:center;display:grid;position:absolute;top:-8px;right:-8px}.cand .tick .ic{stroke-width:2.5px;width:16px;height:16px}.cand.sel .m b{color:var(--color-accent-strong)}.abar{padding:12px 16px calc(16px + env(safe-area-inset-bottom,0px));background:var(--color-surface);border-top:1px solid var(--color-border);z-index:5;gap:8px;margin-top:auto;display:grid;position:sticky;bottom:0}.abar .btn.primary{min-height:56px;font-size:16px}.abar .row3{grid-template-columns:repeat(3,1fr);gap:8px;display:grid}.abar .row2{grid-template-columns:1fr 1fr;gap:8px;display:grid}.abar .btn{padding:0 10px}.btn.txt-danger{color:var(--color-negative)}.typechip{align-items:center;gap:6px;display:inline-flex}.statrow{grid-template-columns:repeat(3,1fr);gap:8px;padding:0 16px;display:grid}.stat{border-radius:var(--radius-card);background:var(--color-surface);border:1px solid var(--color-border);padding:12px}.stat b{font:700 26px var(--font-serif);line-height:1.1;display:block}.stat span{color:var(--color-muted);font-size:12px}.stat.ok b{color:var(--color-positive)}.stat.warn b{color:var(--color-warn-text)}.sec-h{align-items:baseline;gap:8px;margin:16px 0 8px;padding:0 16px;display:flex}.sec-h h3{flex:1}.mini{grid-template-columns:repeat(7,1fr);gap:8px;padding:0 16px;display:grid}.mini>*{min-width:0}.mini .more{aspect-ratio:2/3;border-radius:var(--radius-cover);background:var(--color-surface-raised);font:600 13px var(--font-sans);color:var(--color-muted);cursor:pointer;border:0;place-items:center;display:grid}.mini button.tile-btn{cursor:pointer;color:inherit;text-align:left;background:0 0;border:0;min-height:44px;padding:0}.grp{border:0;border-top:1px solid var(--color-border);width:100%;min-height:56px;color:inherit;font:inherit;text-align:left;cursor:pointer;background:0 0;align-items:center;gap:12px;padding:0 14px;display:flex}.grp:first-child{border-top:0}.grp .ico{background:var(--color-warn-soft);width:36px;height:36px;color:var(--color-warn-text);border-radius:8px;flex:none;place-items:center;display:grid}.grp .ico.dup{background:var(--color-accent-soft);color:var(--color-accent-strong)}.grp .ico.neu{background:var(--color-surface-raised);color:var(--color-muted)}.grp .t{font-weight:500}.grp .s{color:var(--color-faint);font-size:12px}.copyline{border-top:1px solid var(--color-border);align-items:center;gap:10px;padding:10px 12px;display:flex}.copyline:first-child{border-top:0}.fieldrow{border-top:1px solid var(--color-border);justify-content:space-between;gap:12px;padding:8px 12px;font-size:14px;display:flex}.fieldrow:first-child{border-top:0}.fieldrow span:first-child{color:var(--color-muted)}.fieldrow .miss{color:var(--color-warn-text);align-items:center;gap:4px;font-weight:500;display:inline-flex}.code-big{letter-spacing:.04em;font:600 22px/1.2 ui-monospace,SFMono-Regular,Menlo,monospace}.bar-p{background:var(--color-surface-raised);border-radius:4px;height:8px;overflow:hidden}.bar-p i{background:var(--color-accent-deep);border-radius:4px;height:100%;display:block}.badge.warn.typechip{height:auto;padding:3px 10px}@media (width<=380px){.mini{grid-template-columns:repeat(5,1fr)}}.grp-wrap{border-top:1px solid var(--color-border);align-items:center;gap:8px;padding-right:12px;display:flex}.grp-wrap:first-child{border-top:0}.grp-wrap .grp{border-top:0;flex:1;min-width:0}.grp-bulk{white-space:nowrap;flex:none}html{-webkit-text-size-adjust:100%;background-color:var(--color-bg)}@media (width<=767px){input:not([type=checkbox]):not([type=radio]):not([type=file]):not([type=range]),select,textarea,textarea.input-area{font-size:16px}}body{overscroll-behavior-y:none;min-height:100dvh}button{font:inherit;color:inherit}a{color:inherit;text-decoration:none}.sr-only{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.app{min-height:100dvh}.content{padding-bottom:calc(112px + env(safe-area-inset-bottom,0px))}.page{max-width:1400px;margin:0 auto}.px{padding-left:16px;padding-right:16px}.stack{grid-template-columns:minmax(0,1fr);gap:12px;display:grid}.row-flex{align-items:center;gap:8px;display:flex}.grow{flex:1;min-width:0}.center{place-items:center;display:grid}.spin{animation:.9s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.btn{text-decoration:none}.nav{z-index:30;position:fixed;bottom:0;left:0;right:0}.side{display:none}@media (width>=768px){.nav{display:none}.content{margin-left:72px;padding-bottom:32px}.side{z-index:30;background:var(--color-surface);border-right:1px solid var(--color-border);flex-direction:column;align-items:center;gap:2px;width:72px;padding:16px 8px;display:flex;position:fixed;top:0;bottom:0;left:0}.side a{border-radius:var(--radius-md);width:48px;min-height:44px;color:var(--color-muted);justify-content:center;align-items:center;gap:12px;font-weight:500;display:flex;position:relative}.side a span.lbl,.side .btn span.lbl,.side .logo b{display:none}.side a.on{background:var(--color-surface-raised);color:var(--color-ink)}.side .logo{align-items:center;padding:2px 0 14px;display:flex}.side .btn.primary{border-radius:9999px;width:48px;min-height:48px;margin:8px 0 4px;padding:0}.side .gap{flex:1}.side .badge{background:var(--color-accent-deep);color:#fff;height:18px;padding:0 5px;font-size:11px;position:absolute;top:-2px;right:-6px}}@media (width>=1024px){.content{margin-left:236px}.side{align-items:stretch;width:236px;padding:16px 12px}.side a{justify-content:flex-start;width:auto;padding:0 12px}.side a span.lbl,.side .btn span.lbl,.side .logo b{display:inline}.side .logo{padding:2px 8px 14px}.side .btn.primary{border-radius:var(--radius-md);width:100%;padding:0 18px}.side .badge{height:22px;margin-left:auto;font-size:12px;position:static}}.logo b{font:700 24px var(--font-serif);letter-spacing:-.02em;margin-left:8px}.top{z-index:20;background:var(--color-bg);padding:calc(10px + env(safe-area-inset-top,0px)) 16px 8px;position:sticky;top:0}@media (width>=768px){.top{border-bottom:1px solid var(--color-border);padding:18px 24px 10px}.px,.chips{padding-left:24px;padding-right:24px}}.search-box{width:100%;max-width:340px}.vgrid{position:relative}.vrow{gap:0 12px;padding:0 16px;display:grid;position:absolute;left:0;right:0}@media (width>=768px){.vrow{gap:0 16px;padding:0 24px}}.tile{cursor:pointer;border-radius:var(--radius-cover);min-width:0;display:block;position:relative}.tile:focus-visible{outline-offset:3px}.tile .slot{position:relative}.tile.sel .cv{outline:3px solid var(--color-accent);outline-offset:2px}.tile .check{z-index:2;border:2px solid var(--color-border);background:var(--color-surface);color:#fff;border-radius:50%;place-items:center;width:26px;height:26px;display:grid;position:absolute;top:-4px;left:-4px}.tile .check.on{background:var(--color-accent-deep);border-color:#0000}.tile .pill{z-index:2;background:var(--color-ink);color:var(--color-bg);position:absolute;top:-4px;right:-4px}.cv img{opacity:0;transition:opacity .24s var(--ease);position:absolute;inset:0}.cv img.loaded{opacity:1}.cv .lq{filter:blur(6px);background-position:50%;background-size:cover;position:absolute;inset:0;transform:scale(1.1)}.cv.has-img{background:var(--color-surface-raised)}.hero{padding:0 0 20px;position:relative}.hero .top{background:0 0;border:0;position:relative}.hero .iconbtn{color:#fff;background:#ffffff26}.rating{justify-content:center;gap:2px;display:flex}.rating button{color:var(--color-accent);cursor:pointer;background:0 0;border:0;padding:6px}.rating button svg{width:26px;height:26px}.detail-panel{display:none}@media (width>=1100px){.detail-panel{z-index:25;background:var(--color-surface);border-left:1px solid var(--color-border);width:400px;padding:20px;display:block;position:fixed;top:0;bottom:0;right:0;overflow-y:auto}.with-panel{margin-right:400px}}.scanner{z-index:50;background:var(--scan-bg);color:#fff;position:fixed;inset:0;overflow:hidden}.scanner video{object-fit:cover;width:100%;height:100%;position:absolute;inset:0}.scanner .iconbtn{color:#fff;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#ffffff26}.scanner .chip{color:#fff;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#ffffff26;border-color:#fff3}.scanner .topbar{left:12px;right:12px;top:calc(8px + env(safe-area-inset-top,0px));z-index:3;align-items:center;gap:8px;display:flex;position:absolute}.scanner .vf{width:min(78vw,360px);height:min(40vw,180px);margin:0;position:absolute;top:30%;left:50%;transform:translate(-50%)}.scanner .vf .line{animation:2.2s ease-in-out infinite alternate sweep;top:8%}@keyframes sweep{to{top:92%}}.scanner .tray{left:12px;right:12px;bottom:calc(12px + env(safe-area-inset-bottom,0px));z-index:3;border-radius:16px;padding:14px;position:absolute}.scanner .hint{text-align:center;z-index:2;position:absolute;top:calc(30% + min(40vw,180px) + 18px);left:0;right:0}.scanner .flash-ok{opacity:0;pointer-events:none;z-index:2;background:#6fcf97;animation:.26s ease-out flash;position:absolute;inset:0}@keyframes flash{0%{opacity:.28}to{opacity:0}}.glass{-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);color:#fff;background:#141119e6;border:1px solid #ffffff1f}.glass .muted,.glass .label{color:#cfc8dc}.btn.light{color:#fff;background:#ffffff1a;border-color:#fff3}.vf{position:absolute}.vf:before,.vf:after,.vf i,.vf b{content:"";border:3px solid #fff;border-radius:10px;width:34px;height:34px;position:absolute}.vf:before{border-bottom:0;border-right:0;top:0;left:0}.vf:after{border-bottom:0;border-left:0;top:0;right:0}.vf i{border-top:0;border-right:0;bottom:0;left:0}.vf b{border-top:0;border-left:0;bottom:0;right:0}.vf .line{background:var(--color-accent);height:2px;box-shadow:0 0 12px var(--color-accent);position:absolute;left:10px;right:10px}.vf.ok:before,.vf.ok:after,.vf.ok i,.vf.ok b{border-color:#6fcf97}.vf.ko:before,.vf.ko:after,.vf.ko i,.vf.ko b{border-color:#ff8098}.cap{color:#fff;background:#0009;border-radius:9999px;align-items:center;gap:6px;min-height:36px;padding:0 12px;display:inline-flex}.sheet-wrap{z-index:80;position:fixed;inset:0}.sheet-wrap .scrim{animation:fade .16s var(--ease);position:absolute;inset:0}.sheet-wrap .sheet{max-height:min(90dvh,100% - 8px);animation:rise .2s var(--ease);padding-bottom:calc(16px + env(safe-area-inset-bottom,0px));overflow-y:auto}@keyframes fade{0%{opacity:0}}@keyframes rise{0%{opacity:0;transform:translateY(24px)}}@media (width>=768px){.sheet-wrap .sheet{border-radius:var(--radius-card);border:1px solid var(--color-border);width:480px;max-width:94vw;padding:22px;animation:none;inset:50% auto auto 50%;transform:translate(-50%,-50%)}.sheet:before{display:none}}.radio{border:2px solid var(--color-border);border-radius:50%;flex:none;place-items:center;width:22px;height:22px;display:grid}.radio.on{border-color:var(--color-accent)}.radio.on:after{content:"";background:var(--color-accent);border-radius:50%;width:10px;height:10px}.toast-host{z-index:90;left:12px;right:12px;bottom:calc(96px + env(safe-area-inset-bottom,0px));pointer-events:none;gap:8px;display:grid;position:fixed}.toast-host>*{pointer-events:auto}@media (width>=768px){.toast-host{width:380px;bottom:24px;left:auto;right:24px}}.login{place-items:center;min-height:100dvh;padding:24px;display:grid}.login .card{gap:14px;width:min(420px,100%);display:grid}.kb{font:500 12px/1 var(--font-sans);border:1px solid var(--color-border);background:var(--color-surface-raised);color:var(--color-muted);border-radius:4px;padding:3px 7px}.tbl{border-collapse:collapse;width:100%}.tbl th{text-align:left;font:500 12px var(--font-sans);color:var(--color-faint);border-bottom:1px solid var(--color-border);padding:8px 10px}.tbl td{border-bottom:1px solid var(--color-border);vertical-align:middle;padding:8px 10px}.tbl tr{cursor:pointer}.tbl tr:hover td{background:var(--color-surface-raised)}.tbl .cv{width:32px}.hide-sm{display:none}@media (width>=768px){.hide-sm{display:revert}.hide-lg{display:none}}textarea.input-area{border-radius:var(--radius-md);background:var(--color-surface-raised);border:1px solid var(--color-border);width:100%;min-height:120px;color:var(--color-ink);font:15px var(--font-sans);resize:vertical;padding:12px}.sticky-field{z-index:3;background:var(--color-surface);margin:0;padding:2px 0 8px;position:sticky;top:-1px}.sheet-wrap .sheet{overscroll-behavior:contain}:is(body:has(.scanner) .toast-host,body:has(.abar) .toast-host){top:calc(76px + env(safe-area-inset-top,0px));bottom:auto}.scanner .vf.cover{width:min(62vw,270px);height:min(88vw,390px);top:15%}.scanner .vf.cover .line{display:none}.shutter{background:var(--color-accent-deep);color:#fff;cursor:pointer;border:4px solid #fff;border-radius:50%;flex:none;place-items:center;width:68px;height:68px;display:grid}.shutter:disabled{opacity:.5}.row-flex.wrap{flex-wrap:wrap}.row-flex.wrap>.grow{flex:160px}.row.wrap{flex-wrap:wrap;row-gap:8px}.row.wrap>.grow{flex:160px}.row.wrap .t,.row.wrap .s,.card .grow{white-space:normal;overflow-wrap:anywhere}
