:root{--ground: #f2f4ee;--card: #ffffff;--line: #e2e6dd;--line-soft: #ecefe8;--control: #cdd2c9;--ink: #17251a;--muted: #5b675e;--green: #2e8540;--green-ink: #24703a;--green-tint: #e5f1e7;--green-soft: #f1f8f2;--orange: #eaa04b;--orange-ink: #8f520e;--orange-deep: #6e4310;--orange-tint: #fdf0de;--orange-soft: #fff8ee;--on-orange: #3a2206;--red: #b83c28;--red-tint: #fbebe8;--disabled: #e4e7e0;--on-green: #ffffff;--scrim: rgba(23, 37, 26, .45);--scan-bg: #0e1510;--scan-ink: #f2f4ee;--display: "Sora", system-ui, -apple-system, "Segoe UI", sans-serif;--mono: "DM Mono", ui-monospace, "SFMono-Regular", Menlo, monospace;color-scheme:light}*{box-sizing:border-box}html,body{margin:0;min-height:100%}body{background:var(--ground);color:var(--ink);font-family:var(--display);font-size:15px;-webkit-tap-highlight-color:transparent;-webkit-text-size-adjust:100%}button,input,textarea,select{font-family:var(--display);font-size:inherit;color:inherit}button:focus-visible,a:focus-visible,textarea:focus-visible,input:focus-visible{outline:3px solid var(--orange);outline-offset:2px}img{max-width:100%}.app{max-width:480px;min-height:100vh;min-height:100dvh;margin:0 auto;display:flex;flex-direction:column;background:var(--ground);padding-top:env(safe-area-inset-top,0px)}.top{padding:12px 16px 0;display:flex;align-items:center;gap:10px}.top img{width:34px;height:28px;flex-shrink:0}.ctx{flex:1;min-width:0;font:400 13px var(--mono);color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.chip{display:inline-flex;align-items:center;gap:6px;font-size:12px;font-weight:700;padding:5px 10px;border-radius:999px;flex-shrink:0;border:0;background:none}.chip i{width:7px;height:7px;border-radius:50%;display:block}.chip.ok{color:var(--green-ink);background:var(--green-tint)}.chip.ok i{background:var(--green)}.chip.wait{color:var(--orange-ink);background:var(--orange-tint)}.chip.wait i{background:var(--orange)}.chip.off{color:var(--muted);background:var(--disabled)}.chip.off i{background:var(--muted)}.screen{flex:1;padding:12px 16px 20px;display:flex;flex-direction:column;gap:12px}h1{margin:4px 0 0;font-size:28px;font-weight:800;letter-spacing:-.5px;line-height:1.15}h1.big{font-size:34px;letter-spacing:-.8px}h2{margin:0;font-size:17px;font-weight:800}h2.xl{font-size:26px;letter-spacing:-.3px}.sub{margin:0;color:var(--muted);font-size:14px;line-height:1.45}.lead{margin:0;font-size:17px;line-height:1.45;font-weight:600}.mono{font-family:var(--mono);font-variant-numeric:tabular-nums}.muted{color:var(--muted)}.small{font-size:13px}.card{background:var(--card);border:1px solid var(--line);border-radius:16px}.pad{padding:14px 16px}.rows>*+*{border-top:1px solid var(--line-soft)}.clip{overflow:hidden}.row{display:flex;align-items:center;gap:12px;min-height:52px;padding:0 8px 0 14px}.grow{flex:1;min-width:0}.stack{display:flex;flex-direction:column;gap:4px}.between{display:flex;justify-content:space-between;align-items:baseline;gap:12px}.center{align-items:center}.hint{font-size:13px;color:var(--muted);text-align:center;margin:2px 0 0}.warn-text{color:var(--orange-deep)}.ok-text{color:var(--green-ink)}.dock{position:sticky;bottom:0;z-index:5;background:var(--ground)}.action{padding:10px 16px 12px;display:flex;flex-direction:column;gap:4px;background:var(--ground);border-top:1px solid var(--line-soft)}.tabs{display:flex;background:var(--card);border-top:1px solid var(--line);padding:4px 8px calc(6px + env(safe-area-inset-bottom,0px))}.tab{flex:1;appearance:none;border:0;background:none;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;font-size:11px;font-weight:600;color:var(--muted);min-height:58px;cursor:pointer}.tab .pill{width:54px;height:30px;border-radius:999px;display:flex;align-items:center;justify-content:center}.tab .pill{position:relative}.tabdot{position:absolute;top:-4px;right:4px;min-width:18px;height:18px;padding:0 5px;border-radius:999px;background:var(--red);color:#fff;font:700 11px var(--display);display:flex;align-items:center;justify-content:center}.ticketcard{border:1.5px solid var(--orange)}.geobanner{margin:10px 16px 0;padding:10px 12px;border-radius:12px;font-size:13px;font-weight:600;line-height:1.4;background:var(--orange-tint);color:var(--orange-deep);border:1.5px solid var(--orange)}.ticketcard.new{background:var(--orange-tint)}.tab[aria-current=page]{color:var(--green-ink);font-weight:800}.tab[aria-current=page] .pill{background:var(--green-tint)}.btn{appearance:none;border:0;border-radius:16px;font-weight:800;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:10px;text-decoration:none;width:100%}.btn-big{min-height:68px;font-size:21px}.btn-main{background:var(--green);color:var(--on-green)}.btn-main:disabled{background:var(--disabled);color:var(--muted);cursor:not-allowed}.btn-line{background:var(--card);color:var(--green-ink);border:2px solid var(--green);min-height:52px;font-size:16px}.btn-red{background:var(--card);color:var(--red);border:2px solid var(--red);min-height:52px;font-size:16px}.btn-quiet{background:transparent;color:var(--muted);font-weight:600;font-size:14px;text-decoration:underline;min-height:44px}.btn-link{background:transparent;color:var(--green-ink);font-weight:700;font-size:15px;min-height:44px}.btn-dash{background:transparent;border:1.5px dashed #b9c0b4;color:var(--ink);font-weight:600;font-size:15px;min-height:52px}.btn-grey{background:var(--disabled);color:var(--ink);min-height:52px;font-size:16px}.btn-grey.btn-big{font-size:19px}.btn-grey:disabled{color:var(--muted);cursor:not-allowed}.duo{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,2.2fr);gap:8px}.linkbtn{appearance:none;border:0;background:none;padding:0;color:var(--green-ink);font:700 13px var(--display);text-decoration:underline;cursor:pointer;min-height:32px}.line{appearance:none;border:0;width:100%;display:flex;align-items:center;gap:12px;min-height:64px;padding:8px 10px 8px 14px;background:var(--card);color:var(--ink);font:inherit;text-align:left;cursor:pointer}.line.on{background:var(--green-soft)}.line.miss{background:var(--orange-soft)}.line:disabled{cursor:default}.tick{width:44px;height:44px;border-radius:12px;border:1.5px solid var(--control);background:var(--card);color:transparent;display:flex;align-items:center;justify-content:center;flex-shrink:0}.tick.on{background:var(--green);border-color:var(--green);color:var(--on-green)}.tick.diff{background:var(--orange);border-color:var(--orange);color:var(--on-orange)}.thumb{width:40px;height:40px;border-radius:9px;background:var(--green-tint);color:var(--green-ink);display:inline-flex;align-items:center;justify-content:center;font-weight:800;font-size:15px;flex-shrink:0;overflow:hidden}.thumb.pic{background:#fff;box-shadow:inset 0 0 0 1px var(--line)}.thumb img,.cell img{width:100%;height:100%;object-fit:contain;display:block}.thumb.box{background:var(--orange-tint);color:var(--orange-ink);box-shadow:inset 0 0 0 1.5px var(--orange)}.thumb.box.one,.thumb.box.grid{width:52px;height:52px;padding:3px;border-radius:10px}.thumb.box.grid{display:grid;grid-template-columns:1fr 1fr;grid-template-rows:1fr 1fr;gap:2px}.thumb.box.grid.n2{grid-template-rows:1fr}.cell{width:100%;height:100%;min-width:0;min-height:0;border-radius:4px;background:#fff;overflow:hidden;display:flex;align-items:center;justify-content:center;font:800 10px var(--display);color:var(--orange-ink)}.cell.more{background:transparent;font:500 11px var(--mono)}.cs{font:500 12px var(--mono);color:var(--on-orange);background:var(--orange-tint);border:1px solid var(--orange);border-radius:999px;padding:2px 8px;min-width:44px;text-align:center;flex-shrink:0}.phase{display:flex;align-items:center;gap:14px;min-height:56px;padding:0 16px}.num{width:34px;height:34px;border-radius:50%;display:flex;align-items:center;justify-content:center;font:500 15px var(--mono);flex-shrink:0;border:1.5px solid var(--control);color:var(--muted)}.num.now{background:var(--orange);border-color:var(--orange);color:var(--on-orange)}.num.done{background:var(--green-tint);border-color:var(--green-tint);color:var(--green-ink)}.badge{font-size:11px;font-weight:800;letter-spacing:.6px;padding:4px 9px;border-radius:999px;color:var(--orange-ink);background:var(--orange-tint);border:1px solid var(--orange)}.segs{display:flex;gap:4px}.seg{flex:1;display:flex;flex-direction:column;align-items:center;gap:5px;font-size:11px;font-weight:700;appearance:none;border:0;background:none;padding:0;cursor:pointer;color:var(--muted);min-height:28px}.seg b{display:block;height:6px;width:100%;border-radius:3px;background:var(--line)}.seg.done{color:var(--green-ink)}.seg.done b{background:var(--green)}.seg.now{color:var(--orange-ink)}.seg.now b{background:var(--orange)}.seg:disabled{cursor:default}.choice{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.opt{min-height:52px;border-radius:12px;border:1.5px solid var(--control);background:var(--card);font-size:16px;font-weight:700;color:var(--ink);cursor:pointer;padding:6px 12px;width:100%}.opt.on{background:var(--green);border-color:var(--green);color:var(--on-green)}.opt.warn.on{background:var(--orange);border-color:var(--orange);color:var(--on-orange)}.opt.left{text-align:left;display:flex;justify-content:space-between;align-items:center;gap:10px}.chips{display:flex;flex-wrap:wrap;gap:8px}.chipbtn{min-height:40px;border-radius:999px;border:1.5px solid var(--control);background:var(--card);font-size:14px;font-weight:600;color:var(--ink);padding:0 14px;cursor:pointer;display:inline-flex;align-items:center}.chipbtn.on{background:var(--green-tint);border-color:var(--green);color:var(--green-ink)}.chipbtn.static{cursor:default}.scrollx{display:flex;gap:6px;overflow-x:auto;padding-bottom:2px}.scrollx>*{flex-shrink:0}.stepper{display:flex;align-items:center;gap:6px;flex-shrink:0}.sbtn{width:46px;height:48px;border-radius:10px;border:1.5px solid var(--control);background:var(--card);font-size:22px;font-weight:700;color:var(--ink);cursor:pointer;line-height:1}.num-in{width:56px;height:48px;border:1.5px solid var(--control);border-radius:10px;background:var(--card);color:var(--ink);text-align:center;font:500 20px var(--mono);padding:0;appearance:textfield;-moz-appearance:textfield}.num-in::-webkit-outer-spin-button,.num-in::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.invrow{flex-wrap:wrap;row-gap:4px;min-height:64px;padding-top:8px;padding-bottom:8px}.invrow.warnrow{background:var(--orange-soft)}.invh{flex-basis:100%;line-height:1.35;font-size:13px}.slot{width:30px;font:500 13px var(--mono);color:var(--muted);flex-shrink:0}.invrow .slot{display:inline-block;width:auto;margin-right:6px}.pickline,.invname{appearance:none;border:0;background:none;padding:0;margin:0;display:flex;align-items:center;gap:10px;min-height:48px;text-align:left;font:inherit;color:inherit;cursor:pointer;min-width:0}.invname{cursor:default}.pickline .chev{color:var(--muted);display:flex;margin:0 -6px 0 auto}.searchbar{position:sticky;top:0;z-index:4;background:var(--ground);padding:8px 0;margin:-8px 0 -4px}.searchbar .field{font-size:17px}.pick{appearance:none;border:0;background:var(--card);width:100%;display:flex;align-items:center;gap:12px;min-height:60px;padding:6px 14px;text-align:left;font:inherit;color:inherit;cursor:pointer}.pick.on{background:var(--green-tint)}.alert{background:var(--orange-tint);border:1.5px solid var(--orange);border-radius:16px;padding:12px 14px;color:var(--orange-deep);display:flex;flex-direction:column;gap:8px}.warnred{background:var(--red-tint);border:1.5px solid var(--red);color:var(--red);border-radius:16px;padding:12px 14px;display:flex;align-items:center;gap:10px;font-weight:800;font-size:17px}.okline{color:var(--green-ink);font-size:12px}.fillrow{display:flex;align-items:flex-start;gap:10px;padding:10px 0}.fillrow .slot{padding-top:12px;width:auto;min-width:26px}.fillrow .thumb{margin-top:2px}.plus{font:500 22px var(--mono);color:var(--green-ink);padding-top:6px;flex-shrink:0}.pack{font:500 12px var(--mono)}.pack.whole{color:var(--orange-ink);font-weight:700}.changeline{color:var(--orange-deep);background:var(--orange-tint);border-radius:8px;padding:4px 8px;line-height:1.35}.shots{display:grid;grid-template-columns:1fr;gap:12px}.shot{display:flex;flex-direction:column;gap:6px}.photo{height:160px;border-radius:14px;border:2px dashed var(--orange);background:var(--orange-soft) center / cover no-repeat;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;color:var(--orange-ink);font-size:15px;font-weight:800;cursor:pointer;width:100%;padding:0}.photo.taken{border:1px solid var(--line);background-color:var(--card);color:var(--green-ink)}.photo .ok{width:40px;height:40px;border-radius:50%;background:var(--green-tint);color:var(--green-ink);display:flex;align-items:center;justify-content:center}.nphoto{height:120px;border-radius:12px;border:1px solid var(--line);background:var(--ground) center / cover no-repeat}.timer{border-radius:16px;padding:14px 16px;display:flex;align-items:center;gap:14px;border:1.5px solid var(--line);background:var(--card)}.timer.over{background:var(--orange-tint);border-color:var(--orange)}.timer .big{font:500 30px var(--mono)}.timer.over .big{color:var(--orange-ink)}.ft{display:flex;align-items:baseline;gap:12px;color:var(--green-ink)}.ft .ftime{font:500 40px var(--mono)}.ft.over{color:var(--red)}.ftchip{font:500 24px var(--mono);color:var(--green-ink);background:var(--green-tint);border-radius:12px;padding:4px 12px;flex-shrink:0}.ftchip.over{color:var(--card);background:var(--red)}.bar{height:5px;border-radius:3px;background:var(--line)}.bar i{display:block;height:5px;border-radius:3px;background:var(--green)}.bar.red i{background:var(--red)}.callbtn{display:flex;align-items:center;gap:10px;width:100%;min-height:48px;border-radius:14px;border:1.5px solid var(--orange);background:var(--orange-soft);color:var(--orange-ink);font:800 15px var(--display);padding:0 10px 0 12px;cursor:pointer}.callbtn.ok{border-color:var(--green-tint);background:var(--green-tint);color:var(--green-ink)}.tiles{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.tile{padding:12px 14px;display:flex;flex-direction:column;gap:2px}.tile .v{font:500 26px var(--mono)}.dot{width:26px;height:26px;border-radius:50%;display:flex;align-items:center;justify-content:center;font:500 12px var(--mono);flex-shrink:0;border:1.5px solid var(--control);color:var(--muted)}.dot.done{background:var(--green-tint);border-color:var(--green-tint);color:var(--green-ink)}.dot.now{background:var(--orange);border-color:var(--orange);color:var(--on-orange)}.dot.skip{background:var(--disabled);border-color:var(--disabled)}.mist{display:flex;flex-direction:column;gap:6px;padding:14px 16px;border-left:4px solid var(--orange)}.mist.withdrawn{border-left-color:var(--control);opacity:.75}.daydots{display:flex;gap:6px}.daydots i{flex:1;height:8px;border-radius:4px;background:var(--line)}.daydots i.done{background:var(--green)}.daydots i.now{background:var(--orange)}.tiers{display:flex;gap:6px}.tier{flex:1;padding:6px 0;border-radius:10px;background:var(--ground);display:flex;flex-direction:column;align-items:center;font-size:11px;color:var(--muted)}.tier.on{background:var(--orange-tint);outline:1.5px solid var(--orange);color:var(--orange-ink)}.tier b{font:500 14px var(--mono);color:var(--ink)}.tier.on b{color:var(--orange-ink)}.seg2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:4px;padding:4px;border-radius:12px;background:var(--disabled)}.seg2 button{min-height:44px;border:0;border-radius:9px;background:transparent;color:var(--muted);font-size:14px;font-weight:600;cursor:pointer}.seg2 button[aria-pressed=true]{background:var(--card);color:var(--ink);font-weight:800}.done-hero{display:flex;flex-direction:column;align-items:center;gap:12px;text-align:center;padding-top:28px}.done-hero .ring{width:92px;height:92px;border-radius:50%;background:var(--green-tint);color:var(--green);display:flex;align-items:center;justify-content:center}.scrim{position:fixed;inset:0;background:var(--scrim);display:flex;align-items:flex-end;justify-content:center;z-index:20}.sheet{background:var(--card);width:100%;max-width:480px;border-radius:20px 20px 0 0;padding:18px 16px calc(16px + env(safe-area-inset-bottom,0px));display:flex;flex-direction:column;gap:12px;max-height:88%;overflow:auto}textarea,.field{width:100%;border-radius:12px;border:1.5px solid var(--control);padding:10px 12px;font:400 16px var(--display);color:var(--ink);background:var(--card)}textarea{min-height:80px;resize:vertical}.field{min-height:52px}label.small{display:block}.scan{position:fixed;inset:0;background:var(--scan-bg);color:var(--scan-ink);z-index:30;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:18px;padding:24px}.scan .frame{width:260px;height:260px;max-width:78vw;max-height:78vw;border:3px solid var(--orange);border-radius:18px;position:relative;overflow:hidden;background:#000}.scan video{width:100%;height:100%;object-fit:cover}.scan .beam{position:absolute;left:0;right:0;top:0;height:3px;background:var(--orange);animation:beam 1.1s ease-in-out infinite alternate}.scan .okmark{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;color:var(--orange);background:var(--scan-bg)}.scan .field{background:#fff;color:var(--ink);text-align:center;font:500 26px var(--mono);letter-spacing:6px;max-width:260px}.scan .btn-quiet{color:var(--scan-ink)}@keyframes beam{0%{top:0}to{top:calc(100% - 3px)}}@media(prefers-reduced-motion:reduce){.scan .beam{animation:none;top:50%}}.toast{position:fixed;left:50%;bottom:calc(150px + env(safe-area-inset-bottom,0px));transform:translate(-50%);background:var(--ink);color:var(--card);padding:10px 16px;border-radius:12px;font-size:14px;font-weight:600;z-index:40;max-width:calc(100% - 32px);width:max-content;text-align:center}.signin{min-height:100vh;min-height:100dvh;display:flex;flex-direction:column;justify-content:center;gap:16px;padding:24px 16px;max-width:420px;margin:0 auto}.signin img.logo{width:220px;align-self:center}.err{color:var(--red);font-size:14px;font-weight:600}.install{background:var(--orange-soft);border:1.5px solid var(--orange);border-radius:16px;padding:14px 16px;display:flex;flex-direction:column;gap:8px;text-align:left}.install ol{margin:0;padding-left:22px;display:flex;flex-direction:column;gap:6px;font-size:15px;line-height:1.4}.install b{color:var(--orange-deep)}.clockscreen{min-height:100vh;min-height:100dvh;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;padding:16px;text-align:center;background:var(--ground)}.clockscreen .qr{background:#fff;padding:14px;border-radius:20px;border:1px solid var(--line);width:min(52vh,80vw,520px)}.clockscreen h1{font-size:clamp(22px,4vh,34px);margin:0}.clockscreen .qr svg{display:block;width:100%;height:auto}.clockscreen .digits{font:500 clamp(32px,7vh,64px) var(--mono);letter-spacing:.2em}.live{min-height:100vh;min-height:100dvh;background:var(--ground)}.live-top{display:flex;align-items:center;gap:12px;padding:12px 16px}.live-body{display:grid;grid-template-columns:minmax(280px,380px) minmax(0,1fr);gap:12px;padding:0 16px 16px;align-items:start}.live-map{position:sticky;top:12px;height:calc(100vh - 88px);min-height:360px;border-radius:16px;overflow:hidden;border:1px solid var(--line);background:#e6eae2}.live-nomap{padding:24px;gap:8px}.live-card.on{outline:2px solid var(--green)}.live-pick{appearance:none;border:0;background:none;padding:0;text-align:left;font:inherit;color:inherit;cursor:pointer;display:flex;flex-direction:column;gap:4px;width:100%}.live-dot{display:inline-block;width:10px;height:10px;border-radius:50%;margin-right:8px;vertical-align:1px}@media(max-width:760px){.live-body{grid-template-columns:1fr}.live-map{position:relative;top:0;height:55vh;order:-1}}
