:root{--ground:#E9ECF0;--surface:#F6F7F9;--card:#FFFFFF;--ink:#1B2430;--muted:#5E6A78;--line:#E1E5EA;--ctl-line:#CBD2DA;--brand:#3B4A5C;--brand-text:#34465B;--on-brand:#F6F8FA;--brand-line:#3B4A5C;--brass:#B08D57;--brass-text:#8A6A38;--brass-soft:#F4EEE4;--frame:#1B2430;--plate:#E6EAEF;--plate-line:#CDD4DC;--plate-ink:#1B2430;--s-wait:#DA6B4C;--s-clean:#3E7BB6;--s-cleaned:#5C9A88;--s-pass:#3B7C57;--s-rework:#C4553B;--s-inspecting:#7B6BB0;--s-occupied:#93999A;--s-vacant:#C8C4BA;--fill-pass:#3B7C57;--fill-clean:#3E7BB6;--fill-rework:#C4553B;--rework-text:#A83F2C;--wallet:#2B3746;--ok-soft:#E3F1EA;--bad-soft:#F8E6E2;--info-soft:#E5EDF6;--mute-soft:#ECEEF1;--shade:rgba(27,36,48,.12);--scrim:rgba(15,20,28,.48);--r-sheet:16px;--r-card:10px;--r-ctl:10px;--r-chip:6px;--r-plate:4px;--font-body:"IBM Plex Sans","IBM Plex Sans KR","IBM Plex Sans Thai","Noto Sans SC",system-ui,-apple-system,"Segoe UI",sans-serif;--font-num:"IBM Plex Sans Condensed","IBM Plex Sans",system-ui,sans-serif;--scale:1}:root:lang(zh){--font-body:"IBM Plex Sans","Noto Sans SC",system-ui,-apple-system,sans-serif}:root:lang(th){--font-body:"IBM Plex Sans","IBM Plex Sans Thai",system-ui,-apple-system,sans-serif}:lang(ko) body{word-break:keep-all}@media(prefers-color-scheme:dark){:root:not([data-theme=light]){--ground:#0D1015;--surface:#12161C;--card:#1A2028;--ink:#E6EAF0;--muted:#9BA6B4;--line:#29313C;--ctl-line:#3A4452;--brand:#4D6079;--brand-text:#AFC0D4;--on-brand:#F6F8FA;--brand-line:#AFC0D4;--brass:#D3B27C;--brass-text:#D3B27C;--brass-soft:#362C1C;--frame:#000000;--plate:#232B35;--plate-line:#3A4452;--plate-ink:#E6EAF0;--s-wait:#E5804F;--s-clean:#5E9CD8;--s-cleaned:#6FB8A4;--s-pass:#52B07D;--s-rework:#E5715B;--fill-pass:#2A6E48;--fill-clean:#2B63A0;--fill-rework:#B0412E;--rework-text:#E5715B;--wallet:#243040;--ok-soft:#17302A;--bad-soft:#3A2020;--info-soft:#182637;--mute-soft:#20262E;--shade:rgba(0,0,0,.5);--scrim:rgba(0,0,0,.6);color-scheme:dark}}:root[data-theme=dark]{--ground:#0D1015;--surface:#12161C;--card:#1A2028;--ink:#E6EAF0;--muted:#9BA6B4;--line:#29313C;--ctl-line:#3A4452;--brand:#4D6079;--brand-text:#AFC0D4;--on-brand:#F6F8FA;--brand-line:#AFC0D4;--brass:#D3B27C;--brass-text:#D3B27C;--brass-soft:#362C1C;--frame:#000000;--plate:#232B35;--plate-line:#3A4452;--plate-ink:#E6EAF0;--s-wait:#E5804F;--s-clean:#5E9CD8;--s-cleaned:#6FB8A4;--s-pass:#52B07D;--s-rework:#E5715B;--fill-pass:#2A6E48;--fill-clean:#2B63A0;--fill-rework:#B0412E;--rework-text:#E5715B;--wallet:#243040;--ok-soft:#17302A;--bad-soft:#3A2020;--info-soft:#182637;--mute-soft:#20262E;--shade:rgba(0,0,0,.5);--scrim:rgba(0,0,0,.6);color-scheme:dark}html{box-sizing:border-box;height:100%;font-size:calc(16px * var(--scale))}*,*:before,*:after{box-sizing:inherit}body{margin:0;height:100%;background:var(--ground);color:var(--ink);font-family:var(--font-body);font-size:1rem;line-height:1.45;-webkit-font-smoothing:antialiased}h1,h2,h3,b,strong{font-weight:600}button{font:inherit;color:inherit;cursor:pointer}button:focus-visible,input:focus-visible,summary:focus-visible,[tabindex]:focus-visible{outline:2px solid var(--brand-line);outline-offset:2px}.num{font-variant-numeric:tabular-nums}.ic{fill:none;stroke:currentColor;stroke-width:1.75;stroke-linecap:round;stroke-linejoin:round;flex:0 0 auto}#app{position:relative;height:100dvh;min-height:100dvh;max-width:480px;margin:0 auto;overflow:hidden;display:flex;flex-direction:column;background:var(--surface)}#view{flex:1;min-height:0;display:flex;flex-direction:column}.pad{padding-left:max(16px,env(safe-area-inset-left,0px));padding-right:max(16px,env(safe-area-inset-right,0px))}.top{display:flex;flex-wrap:wrap;align-items:center;gap:6px 10px;padding-top:14px;padding-bottom:10px;background:var(--card);border-bottom:1px solid var(--line)}.top .who{flex:1 1 10rem;min-width:min(10rem,100%)}.top .pill{max-width:100%}.pill>span{min-width:0;overflow-wrap:anywhere}.pill.send{background:var(--info-soft);border-color:transparent;color:var(--brand-text)}.top .hi{font-size:.8125rem;color:var(--muted)}.top .nm{font-weight:600;font-size:1.0625rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.pill{display:inline-flex;align-items:center;gap:6px;border-radius:var(--r-chip);padding:6px 10px;font-size:.8125rem;font-weight:500;border:1px solid var(--line);background:var(--surface);color:var(--muted)}.pill.off{background:var(--bad-soft);border-color:transparent;color:var(--rework-text)}.scroll{flex:1;min-height:0;overflow-y:auto;padding-top:14px;padding-bottom:16px;display:flex;flex-direction:column;gap:14px}.ubar+.scroll{padding-top:0}.scroll::-webkit-scrollbar{width:0}.scroll>*{flex-shrink:0}.act{padding-top:10px;padding-bottom:12px;background:var(--surface);border-top:1px solid var(--line);display:flex;flex-direction:column;gap:6px}.tabs{display:grid;grid-template-columns:repeat(4,1fr);background:var(--card);border-top:1px solid var(--line);padding-top:6px;padding-bottom:calc(6px + env(safe-area-inset-bottom,0px))}.tabs button{position:relative;border:0;background:none;display:flex;flex-direction:column;align-items:center;gap:2px;padding:6px 2px;color:var(--muted);font-size:.75rem;font-weight:500;min-height:56px}.tabs button.on{color:var(--ink);font-weight:600}.tabs button.on:before{content:"";position:absolute;top:-7px;left:50%;width:32px;margin-left:-16px;height:2px;background:var(--brass)}.tabs button:focus-visible{outline-offset:-2px}.tabs .tb{position:relative;display:flex;justify-content:center}.tabs .badge{position:absolute;top:-4px;right:-14px;background:var(--fill-rework);color:#fff;font-size:.6875rem;font-weight:600;border-radius:var(--r-chip);min-width:18px;height:18px;display:flex;align-items:center;justify-content:center;padding:0 5px}.big{text-wrap:balance;width:100%;min-height:64px;border:0;border-radius:var(--r-ctl);font-size:1.1875rem;font-weight:600;display:flex;align-items:center;justify-content:center;gap:10px;color:var(--on-brand);background:var(--brand);padding:8px 14px;text-align:center}.big.go{background:var(--brand)}.big.ok{background:var(--fill-pass);color:#fff}.big.redo{background:var(--fill-rework);color:#fff}.big.cont{background:var(--brand)}.big.off{background:var(--mute-soft);color:var(--ink);border:1px solid var(--line)}.big.ghost{background:var(--card);color:var(--ink);border:1px solid var(--ctl-line);min-height:56px;font-size:1.0625rem}.big[disabled]{opacity:.45;cursor:default}.big:active{transform:translateY(1px)}.link{border:0;background:none;color:var(--muted);font-size:.875rem;font-weight:500;padding:10px;min-height:48px;text-decoration:underline;text-decoration-color:var(--ctl-line);text-underline-offset:4px;align-self:center}.big .spin{width:18px;height:18px;border-radius:50%;border:2px solid currentColor;border-right-color:transparent;animation:spin .8s linear infinite;flex:0 0 auto}@keyframes spin{to{transform:rotate(360deg)}}.plate{display:inline-block;width:max-content;max-width:100%;font-family:var(--font-num);font-weight:600;font-variant-numeric:tabular-nums;letter-spacing:0;line-height:1;color:var(--plate-ink);background:var(--plate);border:1px solid var(--plate-line);border-radius:var(--r-plate);padding:.1em .2em .06em}.card{background:var(--card);border:1px solid var(--line);border-radius:var(--r-card);padding:18px;display:flex;flex-direction:column;gap:12px}.card .head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.card .plate{font-size:4.75rem;padding:.08em .16em .04em}.card .meta{font-size:.9375rem;color:var(--muted);margin-top:10px}.tags{display:flex;flex-wrap:wrap;gap:6px}.tag{display:inline-flex;align-items:center;gap:5px;border-radius:var(--r-chip);padding:4px 8px;font-size:.8125rem;font-weight:500;background:var(--surface);border:1px solid var(--line)}.tag.arr{background:var(--brass-soft);color:var(--ink);border-color:transparent}.tag.me{background:var(--info-soft);color:var(--brand-text);border-color:transparent}.tag.open{color:var(--muted)}.tag.rw{background:var(--fill-rework);color:#fff;border-color:transparent}.tag.wait{color:var(--rework-text);background:var(--bad-soft);border-color:transparent}.tag.appt{background:var(--brass-soft);color:var(--ink);border-color:transparent;font-variant-numeric:tabular-nums}.ptsbox{text-align:right;flex:0 1 auto;min-width:min-content}.ptsbox .v{font-family:var(--font-num);font-weight:600;font-size:2.125rem;color:var(--brass);line-height:1}.ptsbox .v.zero{color:var(--muted);font-size:1.375rem}.ptsbox .l{font-size:.75rem;color:var(--muted);font-weight:500}.c-wait{--c:var(--s-wait)}.c-cleaning{--c:var(--s-clean)}.c-insp{--c:var(--s-cleaned)}.c-pass{--c:var(--s-pass)}.c-rework{--c:var(--s-rework)}.c-inspecting{--c:var(--s-inspecting)}.c-occupied{--c:var(--s-occupied)}.status{display:inline-flex;align-items:center;gap:7px;font-weight:600;font-size:.875rem;color:var(--ink)}.dot{width:10px;height:10px;border-radius:50%;background:var(--c, currentColor);flex:0 0 auto}.tc{color:var(--c)}.clockrow{display:flex;align-items:center;gap:10px;color:var(--s-clean)}.clockrow .tm{display:flex;flex-direction:column;line-height:1.05}.clockrow .tm small{font-size:.75rem;color:var(--muted);font-weight:500}.clockrow .tm b{font-family:var(--font-num);font-weight:600;font-size:1.875rem;color:var(--ink)}.clockrow .tm.now b{color:var(--s-clean)}.clockrow .sep{color:var(--muted);display:flex}.flagline{display:flex;flex-wrap:wrap;gap:6px}.flagline span{display:inline-flex;align-items:center;gap:5px;background:var(--bad-soft);color:var(--rework-text);border-radius:var(--r-chip);padding:4px 8px;font-size:.8125rem;font-weight:600}.nextrow{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.nextrow .lbl{font-size:.8125rem;color:var(--muted);font-weight:500;margin-right:2px}.nchip{display:inline-flex;align-items:center;gap:7px;border:1px solid var(--ctl-line);background:var(--card);border-radius:var(--r-ctl);padding:10px 14px;font-family:var(--font-num);font-weight:600;font-size:1.25rem;min-height:56px}.nchip .dot{width:9px;height:9px}.nchip .ic.rw{color:var(--s-rework)}.nchip .ic.arr{color:var(--brass-text)}.sumrow{display:grid;grid-template-columns:repeat(3,1fr);gap:0;background:var(--card);border:1px solid var(--line);border-radius:var(--r-card);overflow:hidden}.sum{background:none;border:0;border-radius:0;padding:12px 12px 10px;display:flex;flex-direction:column;gap:4px}.sum+.sum{border-left:1px solid var(--line)}button.sum{font:inherit;color:inherit;text-align:left;cursor:pointer}button.sum:focus-visible{outline-offset:-3px}button.sum .l{display:flex;align-items:center;gap:4px}.sum .v{font-family:var(--font-num);font-weight:600;font-size:1.625rem;line-height:1;font-variant-numeric:tabular-nums}.sum .l{font-size:.75rem;color:var(--muted);font-weight:500}.banner{border-radius:var(--r-card);padding:12px 8px 12px 14px;display:flex;flex-wrap:wrap;gap:6px 10px;align-items:center}.banner.ok{background:var(--ok-soft);color:var(--s-pass)}.banner.bad{background:var(--bad-soft);color:var(--rework-text)}.banner.info{background:var(--info-soft);color:var(--brand-text)}.banner .bt{flex:1 1 11rem;min-width:0}.banner .bacts{display:flex;gap:4px;align-items:center;margin-left:auto}.banner .b1{font-weight:600;font-size:.9375rem}.banner .b2{font-size:.8125rem;color:var(--ink);opacity:.9}.banner .x{border:0;background:none;min-width:48px;min-height:48px;display:flex;align-items:center;justify-content:center;color:inherit}.banner .bview{border:1px solid currentColor;background:var(--card);border-radius:var(--r-ctl);min-height:48px;min-width:48px;padding:0 12px;font-weight:600;color:inherit;flex:0 0 auto}.banner button.bt{border:0;background:none;color:inherit;font:inherit;text-align:left;padding:0;min-height:48px;display:flex;flex-direction:column;justify-content:center;cursor:pointer}.banner .acount{display:inline-block;align-self:flex-start;font-size:.75rem;font-weight:600;border-radius:var(--r-chip);padding:1px 7px;margin-bottom:3px;background:var(--card);color:inherit;border:1px solid currentColor}.banner .bt .b1,.banner .bt .b2{display:block}.banner .b2+.b2{margin-top:2px}.ubar{padding-top:12px;padding-bottom:12px}.ubar .banner{border-radius:var(--r-card)}.sum .ns{display:inline-flex;align-items:center;gap:3px;font-size:.6875rem;font-weight:600;color:var(--rework-text);margin-top:2px}.rvroom{background:var(--card);border:1px solid var(--line);border-radius:var(--r-card);padding:10px 12px;display:flex;flex-direction:column;gap:4px;text-align:left}.rvroom .rvh{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.rvroom .rvh .plate{font-size:1.75rem}.rvroom .rvr{display:flex;gap:10px;font-size:.84375rem}.rvroom .rvr .num{color:var(--muted);flex:0 0 auto;font-weight:600}.plist{display:flex;flex-direction:column;gap:0;text-align:left;border:1px solid var(--line);border-radius:var(--r-card);overflow:hidden}.plist .prow{background:var(--surface);border-radius:0;padding:10px 12px;display:flex;flex-direction:column;gap:4px}.plist .prow+.prow{border-top:1px solid var(--line)}.plist .prow .ph{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.plist .prow .plate{font-size:1.75rem}.plist .prow .pp{display:flex;justify-content:space-between;gap:10px;font-size:.875rem}.plist .prow .pp b{font-family:var(--font-num);font-size:1.125rem}.empty{text-align:center;padding:40px 16px;display:flex;flex-direction:column;align-items:center;gap:10px}.empty .big-ic{width:72px;height:72px;border-radius:50%;background:var(--ok-soft);color:var(--s-pass);display:flex;align-items:center;justify-content:center}.empty h3{margin:0;font-size:1.25rem;letter-spacing:-.01em;text-wrap:balance}.empty p{margin:0;color:var(--muted)}.syncline{font-size:.8125rem;color:var(--muted);text-align:center}.ctop{display:flex;flex-wrap:wrap;align-items:center;gap:4px 12px;padding-top:12px;padding-bottom:10px;background:var(--card);border-bottom:1px solid var(--line)}.ctop .back{border:1px solid var(--ctl-line);background:var(--card);border-radius:var(--r-ctl);min-width:56px;height:56px;display:flex;align-items:center;justify-content:center;gap:4px;padding:0 10px;font-size:.875rem;font-weight:600;flex:0 0 auto}.ctop .plate{font-size:2.75rem;white-space:nowrap}.ctop .grow{flex:1;min-width:min-content}.ctop .sub{font-size:.8125rem;color:var(--muted);margin-top:4px}.clocks{order:3;flex:1 0 100%;display:flex;flex-direction:row;flex-wrap:wrap;align-items:baseline;gap:4px 16px;font-size:.8125rem;color:var(--muted);font-weight:500;line-height:1.15}.clocks b{font-family:var(--font-num);font-weight:600;font-size:1.375rem;color:var(--ink)}.clocks .now b{color:var(--s-clean)}.progress{display:flex;align-items:center;gap:10px;font-weight:600}.bar{flex:1;height:6px;background:var(--line);border-radius:3px;overflow:hidden}.bar>i{display:block;height:100%;background:var(--s-pass);border-radius:3px;transition:width .2s}.hint{font-size:.8125rem;color:var(--muted)}.zones{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.zone{position:relative;border:1px solid var(--line);background:var(--card);border-radius:var(--r-card);min-height:108px;padding:12px 6px 10px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;text-align:center;font-weight:600;font-size:.875rem;line-height:1.2;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none;touch-action:manipulation}:lang(th) .zone{line-height:1.4}.zone .zn{overflow-wrap:anywhere;-webkit-hyphens:auto;hyphens:auto;max-width:100%}.zone>.ic{width:34px;height:34px}.zone .part{display:flex;gap:3px}.zone .part i{width:6px;height:6px;border-radius:50%;background:var(--line)}.zone .part i.on{background:var(--s-pass)}.zone.done{background:var(--fill-pass);border-color:var(--fill-pass);color:#fff}.zone.done .part i{background:#ffffff73}.zone.done .part i.on{background:#fff}.zone.flag{border-color:var(--s-rework);box-shadow:inset 0 0 0 1px var(--s-rework);background:var(--bad-soft);color:var(--rework-text)}.zone.flag.done{background:var(--fill-pass);border-color:var(--fill-pass);box-shadow:none;color:#fff}.zone.lock{border-style:dashed;cursor:default}.zone.need{border-color:var(--brand-line);box-shadow:inset 0 0 0 1px var(--brand-line);background:var(--info-soft);color:var(--brand-text)}.zone .small.must{color:var(--brand-text)}.zone.flag .small.must{color:inherit}.zone.done.lock{background:var(--ok-soft);border-color:var(--s-pass);color:var(--s-pass)}.zone .ok{position:absolute;top:7px;right:7px;width:22px;height:22px;border-radius:50%;background:#fff;color:var(--fill-pass);display:none;align-items:center;justify-content:center}.zone.done .ok{display:flex}.zone .small{display:inline-flex;align-items:center;gap:3px;font-size:.6875rem;font-weight:500;overflow-wrap:anywhere}.sp{display:grid;grid-template-columns:1fr 1fr;gap:8px}.spb{border:1px solid var(--ctl-line);background:var(--card);border-radius:var(--r-ctl);min-height:62px;display:flex;align-items:center;gap:10px;padding:8px 12px;font-weight:600;text-align:left}.spb .ic{width:28px;height:28px}.spb.on{border-color:var(--brand);background:var(--brand);color:var(--on-brand)}.spb.logged{border-style:dashed;border-color:var(--line);color:var(--muted);cursor:default}.spb small{display:block;font-size:.75rem;font-weight:500}.secth{display:flex;align-items:baseline;justify-content:space-between;gap:8px;font-weight:600;font-size:.9375rem;flex-wrap:wrap}.secth small{font-size:.75rem;color:var(--muted);font-weight:500}.rpt{border:1px solid var(--s-rework);color:var(--s-rework);background:var(--card);border-radius:var(--r-ctl);min-height:58px;font-weight:600;display:flex;align-items:center;justify-content:center;gap:10px;width:100%;flex-wrap:wrap}.rpt .rc{font-size:.8125rem;background:var(--bad-soft);border-radius:var(--r-chip);padding:2px 8px}.rbanner{background:var(--bad-soft);color:var(--rework-text);border-radius:var(--r-card);padding:10px 12px;font-weight:600;display:flex;gap:10px;align-items:center}.spline{display:flex;align-items:center;justify-content:center;gap:6px;font-size:.8125rem;font-weight:500;color:var(--brand-text)}.cfix{flex:0 0 auto;display:flex;flex-direction:column;gap:6px;padding-top:4px;padding-bottom:8px}.cfix+.scroll{padding-top:6px}.sigrow{height:calc(2 * .75rem * 1.3 + 8px);display:flex;align-items:center;overflow:hidden}.sigrow .pill{font-size:.75rem;line-height:1.3;padding:3px 10px;max-width:100%}.sigrow .pill>span{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.aslot{height:max(52px,calc(2.1125rem + 14px));display:flex;flex-direction:column;overflow:hidden}.aslot .banner{flex:1;min-height:0;flex-wrap:nowrap;padding:4px 4px 4px 12px;border-radius:var(--r-card);overflow:hidden}.aslot .banner .bt{display:flex;flex-direction:column;justify-content:center;min-width:0}.aslot .banner .b1,.aslot .banner .b2{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.aslot .banner .b1{font-size:.875rem}.aslot .banner .b2{font-size:.75rem}.aslot .banner .acount{margin:0 6px 0 0;vertical-align:1px}.aslot.tall{height:max(110px,calc(2.275rem + 74px))}.sband{flex:1;min-height:0;border-radius:var(--r-card);background:var(--bad-soft);color:var(--rework-text);padding:8px 10px;display:flex;flex-direction:column;gap:6px;overflow:hidden}.sband.ack{background:var(--ok-soft);color:var(--s-pass)}.sband .sr1{display:flex;gap:8px;align-items:flex-start;min-height:0;flex:1}.sband .sr1 .st{display:flex;flex-direction:column;min-width:0;font-weight:600;font-size:.875rem;line-height:1.3}.sband .sr1 .st span{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.sband .sr1 .st span+span{-webkit-line-clamp:1;font-weight:500;color:var(--ink)}.sband .sr2{flex:0 0 48px;display:flex;align-items:center;gap:8px}.sband .sr2 .wt{display:flex;align-items:center;gap:6px;font-weight:600;font-size:.875rem;color:var(--ink);min-width:0;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.sband .sr2 button{flex:1 1 0;min-width:0;min-height:48px;border-radius:var(--r-ctl);font-weight:600;font-size:.875rem;padding:0 8px;border:1px solid currentColor;background:var(--card);color:inherit;line-height:1.15}.sband .sr2 button.pri{background:var(--fill-pass);border-color:var(--fill-pass);color:#fff}.lg .aslot.tall{height:max(110px,calc(4.55rem + 74px))}.lg .sband .sr1 .st span:only-child{-webkit-line-clamp:3}.lg .sband .sr1 .st span+span{-webkit-line-clamp:2}.opcard{background:var(--card);border:1px solid var(--line);border-radius:var(--r-card);padding:8px 12px;display:flex;flex-direction:column;gap:2px}.opcard .oph{display:flex;align-items:center;gap:6px;font-weight:600;font-size:.875rem;color:var(--rework-text)}.opcard .opr{font-size:.8125rem;color:var(--muted)}.lg .zone .zn{hyphens:none;-webkit-hyphens:none;overflow-wrap:break-word;word-break:normal}.act .rpt{min-height:48px}.frozen{display:contents}.slide{position:relative;height:66px;border-radius:var(--r-ctl);background:var(--fill-pass);overflow:hidden;touch-action:none;user-select:none;-webkit-user-select:none}.slide.lock{background:var(--mute-soft);box-shadow:inset 0 0 0 1px var(--line)}.slide .lab{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;padding-left:60px;padding-right:8px;color:#fff;font-weight:600;font-size:1.0625rem;pointer-events:none;text-align:center}.slide.lock .lab{color:var(--ink)}.slide .fill{position:absolute;left:0;top:0;bottom:0;width:0;background:#ffffff2e}.slide .thumb{position:absolute;left:5px;top:5px;width:56px;height:56px;border-radius:6px;border:0;background:#fff;color:var(--fill-pass);display:flex;align-items:center;justify-content:center}.slide.lock .thumb{color:var(--muted);background:var(--card);box-shadow:0 0 0 1px var(--ctl-line)}.slide.busy .fill{width:100%}.slide.busy .thumb{left:auto;right:5px}.slide .spin{width:24px;height:24px;border-radius:50%;border:3px solid currentColor;border-right-color:transparent;animation:spin .8s linear infinite}.slide.shake{animation:shake .35s}@keyframes shake{25%{transform:translate(-6px)}75%{transform:translate(6px)}}.ctop .ttl{font-weight:600;font-size:1.25rem;line-height:1.2;letter-spacing:-.01em}.ctop .ttl .plate{font-size:2.75rem;letter-spacing:0}.card.round{gap:8px;padding:14px}.card.round .rh{display:flex;flex-wrap:wrap;align-items:center;gap:6px 10px}.card.round details summary{cursor:pointer;font-weight:600;font-size:.875rem;padding:6px 0;min-height:44px;display:flex;align-items:center}.ckl{display:flex;flex-direction:column;gap:10px}.ckz{border-top:1px solid var(--line);padding-top:8px;display:flex;flex-direction:column;gap:4px}.ckh{display:flex;align-items:center;gap:6px;font-size:.875rem}.ckh .num{margin-left:auto;color:var(--muted);font-weight:600}.cki{display:flex;align-items:flex-start;gap:8px;font-size:.8125rem;padding:3px 0}.cki .cb{width:18px;height:18px;border-radius:4px;border:1px solid var(--ctl-line);flex:0 0 auto;display:flex;align-items:center;justify-content:center;color:#fff;margin-top:1px}.cki .cb.on{background:var(--fill-pass);border-color:var(--fill-pass)}.cki .ct{flex:1;min-width:0}.cki .cm{flex:0 0 auto;font-size:.6875rem;color:var(--muted);font-weight:500;text-align:right;max-width:34%}.cki.fl .ct,.cki.fl .cm{color:var(--rework-text)}.ritem.pl .mid b{font-size:.9375rem}.ritem.void{opacity:.75}.ritem.void .p{text-decoration:line-through;color:var(--muted)}.grp h3{font-size:.8125rem;font-weight:600;margin:4px 2px 8px;color:var(--muted)}.rlist{display:flex;flex-direction:column;gap:0;background:var(--card);border:1px solid var(--line);border-radius:var(--r-card);overflow:hidden}.ritem{display:flex;align-items:center;gap:12px;background:var(--card);border:0;border-radius:0;padding:12px 14px;min-height:72px;text-align:left;width:100%}.ritem+.ritem{border-top:1px solid var(--line)}button.ritem:focus-visible{outline-offset:-3px}.ritem .plate{font-size:2.375rem;min-width:76px;text-align:center}.ritem .mid{flex:1;min-width:0;display:flex;flex-direction:column;gap:4px}.ritem .p{font-family:var(--font-num);font-weight:600;font-size:1.375rem;color:var(--brass-text)}.ritem>.ic{color:var(--muted)}.wallet{background:var(--wallet);color:var(--on-brand);border-radius:var(--r-card);padding:18px;display:flex;flex-direction:column;gap:14px}.wallet .l{font-size:.8125rem;font-weight:500;opacity:.8}.wallet .v{font-family:var(--font-num);font-weight:600;font-size:3.5rem;line-height:.95;color:var(--brass);font-variant-numeric:tabular-nums}.wallet .v small{font-size:1.5rem;margin-left:4px}.wallet .row{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0;border-top:1px solid rgba(232,237,242,.16);padding-top:12px}.wallet .row span{overflow-wrap:anywhere}.wallet .row div{background:none;border-radius:0;padding:0 10px}.wallet .row div:first-child{padding-left:0}.wallet .row div+div{border-left:1px solid rgba(232,237,242,.16)}.wallet .row b{display:block;font-family:var(--font-num);font-weight:600;font-size:1.375rem;font-variant-numeric:tabular-nums}.wallet .row span{font-size:.75rem;opacity:.8}.lvl{display:flex;align-items:center;gap:12px}.lvl .badge{width:52px;height:52px;border-radius:var(--r-card);background:var(--brass-soft);color:var(--brass-text);display:flex;flex-direction:column;align-items:center;justify-content:center;font-weight:600;flex:0 0 auto}.lvl .badge b{font-family:var(--font-num);font-size:1.5rem;line-height:1}.lvl .badge span{font-size:.625rem;color:var(--ink);font-weight:500}.lvl .bar{flex:0 0 auto}.rank{background:var(--card);border:1px solid var(--line);border-radius:var(--r-card);overflow:hidden}.rank div{display:flex;align-items:center;gap:12px;padding:10px 14px;border-bottom:1px solid var(--line)}.rank div:last-child{border-bottom:0}.rank div.me{background:var(--info-soft)}.rank .n{font-family:var(--font-num);font-weight:600;font-size:1.25rem;width:22px;text-align:center;color:var(--muted)}.rank .who{flex:1;font-weight:500}.rank div.me .who{font-weight:600}.rank .s{font-family:var(--font-num);font-weight:600;font-size:1.25rem;font-variant-numeric:tabular-nums}.rw{display:grid;grid-template-columns:1fr 1fr;gap:8px}.rwi{background:var(--card);border:1px solid var(--line);border-radius:var(--r-card);padding:12px;display:flex;flex-direction:column;gap:6px;align-items:flex-start;text-align:left}.rwi .ic{width:30px;height:30px;color:var(--muted)}.rwi b{font-size:.9375rem}.rwi .sub{font-size:.75rem;color:var(--muted)}.rwi .c{font-family:var(--font-num);font-weight:600;font-size:1.25rem;color:var(--brass-text)}.rwi .need{font-size:.75rem;color:var(--muted);font-weight:500}.rwi .go{font-size:.8125rem;color:var(--brand-text);font-weight:600}.rwi .bar{width:100%;flex:0 0 auto;height:4px}.rwi .bar>i{background:var(--brass)}.rwi[disabled]{cursor:default}.rwi[disabled] .ic{opacity:.6}.rwi[disabled] .c{color:var(--muted)}.rwi[aria-disabled=true]{cursor:default}.rwi[aria-disabled=true] .ic{opacity:.6}.rwi[aria-disabled=true] .c{color:var(--muted)}.note{font-size:.8125rem;color:var(--ink);background:var(--info-soft);border-radius:var(--r-card);padding:10px 12px}.prof{display:flex;align-items:center;gap:14px;background:var(--card);border:1px solid var(--line);border-radius:var(--r-card);padding:14px}.av{width:56px;height:56px;border-radius:var(--r-ctl);background:var(--mute-soft);color:var(--ink);border:1px solid var(--line);display:flex;align-items:center;justify-content:center;font-weight:600;font-size:1.375rem;flex:0 0 auto}.set{background:var(--card);border:1px solid var(--line);border-radius:var(--r-card);padding:14px;display:flex;flex-direction:column;gap:10px}.set h3{margin:0;font-size:.9375rem;display:flex;align-items:center;gap:8px}.set+.set{margin-top:-15px;border-top-left-radius:0;border-top-right-radius:0}.set:has(+.set){border-bottom-left-radius:0;border-bottom-right-radius:0}.lgrid{display:grid;grid-template-columns:1fr 1fr;gap:8px}.lbtn{border:1px solid var(--ctl-line);background:var(--card);border-radius:var(--r-ctl);min-height:56px;padding:8px 12px;font-weight:500;text-align:left;font-size:1rem}.lbtn.on{border-color:var(--brand);background:var(--brand);color:var(--on-brand);font-weight:600}.seg{display:grid;grid-template-columns:1fr 1fr;gap:4px;background:var(--surface);border:1px solid var(--line);border-radius:var(--r-ctl);padding:3px}.seg button{border:0;border-radius:7px;min-height:56px;background:none;font-weight:500;color:var(--muted)}.seg button.on{background:var(--brand);color:var(--on-brand);font-weight:600}.legend{display:grid;grid-template-columns:1fr 1fr;gap:8px 12px;font-size:.84375rem}.legend span{display:flex;align-items:center;gap:8px}.start{flex:1;display:flex;flex-direction:column;gap:18px;padding-top:28px;padding-bottom:20px;overflow-y:auto}.brandmark{font-size:.75rem;letter-spacing:.2em;color:var(--muted);font-weight:600}.start h2{margin:0;font-size:1.625rem;line-height:1.2;letter-spacing:-.01em;text-wrap:balance}.multi{color:var(--muted);font-size:.875rem}.langs{display:grid;grid-template-columns:1fr;gap:0;background:var(--card);border:1px solid var(--line);border-radius:var(--r-card);overflow:hidden}.langs button{display:flex;align-items:center;justify-content:space-between;border:0;background:var(--card);border-radius:0;min-height:64px;padding:10px 18px;font-size:1.25rem;font-weight:500}.langs button+button{border-top:1px solid var(--line)}.langs button:focus-visible{outline-offset:-3px}.langs button span{font-size:.8125rem;color:var(--muted);font-weight:500;letter-spacing:.04em}.field{background:var(--card);border:1px solid var(--ctl-line);border-radius:var(--r-ctl);padding:10px 14px;display:flex;flex-direction:column;gap:2px}.field:focus-within{border-color:var(--brand-line);box-shadow:inset 0 0 0 1px var(--brand-line)}.field label{font-size:.75rem;color:var(--muted);font-weight:500}.field input{border:0;background:none;font:inherit;font-family:var(--font-num);font-size:1.75rem;font-weight:600;color:var(--ink);outline:none;width:100%;min-height:44px}.field .frow{display:flex;align-items:center;gap:8px}.field .frow input{flex:1;min-width:0}.field .eye{flex:0 0 auto;min-width:64px;min-height:48px;border:1px solid var(--ctl-line);background:var(--surface);border-radius:var(--r-ctl);font-weight:500;font-size:.875rem;padding:0 10px}.err .e2{display:block;font-weight:500;margin-top:2px}.err{color:var(--s-rework);font-weight:600;text-align:center;font-size:.875rem}.check{display:flex;align-items:center;gap:10px;font-weight:500;font-size:.9375rem;min-height:48px}.check input{width:24px;height:24px;accent-color:var(--brand)}.scrim{position:absolute;inset:0;background:var(--scrim);z-index:40;display:flex;align-items:flex-end}.sheet{width:100%;background:var(--surface);border-radius:var(--r-sheet) var(--r-sheet) 0 0;padding-top:8px;padding-bottom:calc(18px + env(safe-area-inset-bottom,0px));display:flex;flex-direction:column;gap:14px;max-height:92%;overflow-y:auto;box-shadow:0 -8px 24px var(--shade)}.grab{width:36px;height:4px;border-radius:2px;background:var(--ctl-line);align-self:center}.sheet h3{margin:0;font-size:1.25rem;letter-spacing:-.01em;text-wrap:balance}.items{display:flex;flex-direction:column;gap:8px}.itm{display:flex;align-items:center;gap:12px;border:1px solid var(--line);background:var(--card);border-radius:var(--r-ctl);min-height:60px;padding:10px 14px;text-align:left;font-weight:500}.itm .box{width:28px;height:28px;border-radius:var(--r-chip);border:1px solid var(--ctl-line);display:flex;align-items:center;justify-content:center;flex:0 0 auto;color:#fff}.itm .gd{display:block;font-size:.78125rem;font-weight:400;color:var(--muted);margin-top:2px}.itm.on{border-color:var(--s-pass);box-shadow:inset 0 0 0 1px var(--s-pass)}.itm.must{border-color:var(--brand-line);box-shadow:inset 0 0 0 1px var(--brand-line)}.itm.must.on{border-color:var(--s-pass);box-shadow:inset 0 0 0 1px var(--s-pass)}.mtag{display:inline-block;font-size:.6875rem;font-weight:600;color:var(--brand-text);background:var(--info-soft);border-radius:var(--r-plate);padding:1px 6px;margin-right:6px;vertical-align:1px}.itm.lockd{border-style:dashed;color:var(--muted)}.itm.lockd .box{background:var(--ok-soft);border-color:var(--s-pass);color:var(--s-pass)}.sheet .sh{font-size:.8125rem;font-weight:500;color:var(--muted);margin-bottom:-6px}.hint.mh{display:flex;align-items:center;gap:6px;color:var(--brand-text);font-weight:600}.ghost-slot{visibility:hidden}.itm.on .box{background:var(--fill-pass);border-color:var(--fill-pass)}.itm .il{flex:1;min-width:0}.ritem.fin{min-height:64px}.ritem.fin .p.wait{color:var(--muted)}.publine{display:flex;align-items:center;gap:12px;width:100%;min-height:56px;padding:10px 14px;background:var(--card);border:1px solid var(--line);border-radius:var(--r-card);text-align:left;font-weight:600;font-size:1rem}.publine>.ic{color:var(--muted)}.publine .pl-t{flex:1;min-width:0;display:flex;flex-direction:column;gap:6px}.publine .bar{flex:0 0 auto;height:4px}.publine.done{background:var(--ok-soft);border-color:transparent;color:var(--s-pass)}.publine.done>.ic{color:var(--s-pass)}button.publine:focus-visible{outline-offset:-3px}.mico{min-width:76px;display:flex;align-items:center;justify-content:center;color:var(--muted);flex:0 0 auto}.itm .tm{margin-left:auto;flex:0 0 auto;font-family:var(--font-num);font-weight:600;font-size:1rem;color:var(--s-pass)}.ctop .ptsbox .v{font-size:1.625rem}.kinds{display:grid;grid-template-columns:1fr 1fr;gap:8px}.kind{border:1px solid var(--ctl-line);background:var(--card);border-radius:var(--r-ctl);min-height:86px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;font-weight:600;text-align:center;padding:8px}.kind .ic{width:32px;height:32px}.kind.on{border-color:var(--brand-line);background:var(--info-soft);color:var(--brand-text);box-shadow:inset 0 0 0 1px var(--brand-line)}.kind.stop{grid-column:1 / -1;flex-direction:row;justify-content:flex-start;text-align:left;gap:14px;padding:12px 16px;border-color:var(--s-rework);color:var(--s-rework)}.kind.stop small{display:block;font-size:.8125rem;font-weight:500;color:var(--ink)}.kind.stop.on{background:var(--bad-soft);color:var(--rework-text);box-shadow:inset 0 0 0 1px var(--s-rework)}.cam{border:1px dashed var(--ctl-line);background:var(--card);border-radius:var(--r-ctl);min-height:96px;display:flex;align-items:center;justify-content:center;gap:12px;font-weight:600;font-size:1.0625rem;width:100%;overflow:hidden}.cam img{width:84px;height:84px;object-fit:cover;border-radius:var(--r-chip)}.cam .ic{width:34px;height:34px}.modal{position:absolute;inset:0;background:var(--scrim);z-index:50;display:flex;align-items:center;justify-content:center;padding:20px}.mbox{background:var(--card);border-radius:var(--r-sheet);padding:24px 20px 18px;width:100%;display:flex;flex-direction:column;gap:14px;align-items:stretch;text-align:center;position:relative;overflow:hidden;max-height:100%;overflow-y:auto;box-shadow:0 8px 24px var(--shade)}.mbox .burst{width:84px;height:84px;border-radius:50%;margin:0 auto;display:flex;align-items:center;justify-content:center;color:#fff;background:var(--fill-pass);flex:0 0 auto}.mbox .burst.gold{background:var(--brand);color:var(--on-brand)}.mbox .spark~.burst.gold{background:var(--brass);color:var(--card)}.mbox .burst.bad{background:var(--fill-rework)}.mbox .burst .ic{width:44px;height:44px;stroke-width:2.2}.mbox h3{margin:0;font-size:1.5rem;letter-spacing:-.01em;text-wrap:balance}.mbox .sub{color:var(--muted)}.mbox .plate{align-self:center}.mbox .sub.plate{color:var(--plate-ink)}.mbox .say{font-size:1.0625rem;font-weight:500}.brk{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-card);padding:4px 14px;text-align:left}.brk div{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:9px 0;border-bottom:1px solid var(--line);font-size:.9375rem}.brk div:last-child{border-bottom:0}.brk b{font-family:var(--font-num);font-size:1.25rem;flex:0 0 auto;font-variant-numeric:tabular-nums}.brk b.txt{font-family:var(--font-body);font-size:.875rem;text-align:right;flex:0 1 auto}.brk .gold{color:var(--brass-text)}.brk .wait{color:var(--muted)}.spark{position:absolute;width:8px;height:8px;border-radius:2px;top:-10px;animation:fall 1.6s linear forwards}@keyframes fall{to{transform:translateY(420px) rotate(400deg);opacity:0}}#toast{position:absolute;left:16px;right:16px;bottom:calc(150px + env(safe-area-inset-bottom,0px));z-index:60;background:var(--ink);color:var(--surface);border-radius:var(--r-ctl);padding:12px 14px;font-weight:500;font-size:.90625rem;text-align:center;opacity:0;transform:translateY(10px);box-shadow:0 8px 24px var(--shade);transition:.25s;pointer-events:none}#toast.show{opacity:1;transform:none}#toast.help{display:flex;align-items:flex-start;gap:8px;padding:6px 6px 6px 14px;text-align:left;line-height:1.5;pointer-events:none}#toast.help.help-top{top:calc(10px + env(safe-area-inset-top,0px));bottom:auto;pointer-events:auto}#toast.help>span{flex:1 1 auto;min-width:0;padding-block:8px}#toast .hx{pointer-events:auto;flex:none;min-width:48px;min-height:48px;display:inline-flex;align-items:center;justify-content:center;border:0;background:transparent;color:inherit;border-radius:var(--r-ctl);padding:0}#toast .hx:focus-visible{outline-color:var(--surface)}.hbtn{flex:none;min-width:48px;min-height:48px;display:inline-flex;align-items:center;justify-content:center;border:0;background:transparent;color:var(--muted);border-radius:var(--r-ctl);padding:0}.hbtn:hover,.hbtn[aria-expanded=true]{color:var(--ink)}.progress .hbtn,.secth .hbtn{margin-block:-12px;align-self:center}.fph{margin:0;display:flex;flex-direction:column;gap:4px;align-items:flex-start}.fph img{width:100%;max-width:240px;aspect-ratio:16/11;object-fit:cover;border-radius:var(--r-chip);border:1px solid var(--line)}.fph figcaption{display:flex;align-items:center;gap:5px;font-size:.75rem;color:var(--muted);font-weight:500}.phrow{display:flex;flex-wrap:wrap;gap:8px}.phrow img{width:96px;aspect-ratio:16/11;object-fit:cover;border-radius:var(--r-chip);border:1px solid var(--line)}.tag.done{background:var(--ok-soft);color:var(--s-pass);border-color:transparent}.langs button.on{background:var(--info-soft);box-shadow:inset 3px 0 0 var(--brand-line);font-weight:600}.bday{display:flex;align-items:center;gap:6px}.progress small{font-weight:600;flex:0 0 auto}@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}.vbox{display:flex;flex-direction:column;height:100dvh;min-height:0}.overlay-host{display:contents}.fph button{border:0;background:none;padding:0;min-width:44px;min-height:44px;display:block;width:100%;max-width:240px;text-align:left}.fph.full button{max-width:none}.fph.full img{max-width:none;aspect-ratio:auto;object-fit:contain}.link .spin,.sband .sr2 .spin{display:inline-block;width:14px;height:14px;margin-right:6px;vertical-align:-2px;border-radius:50%;border:2px solid currentColor;border-right-color:transparent;animation:spin .8s linear infinite}
