:root{--bg: #f2f2f7;--surface: #ffffff;--fill: #f2f2f7;--fill-2: #e5e5ea;--text: #000000;--text-2: #6e6e73;--text-3: #8e8e93;--border: #e5e5ea;--separator: #c6c6c8;--accent: #16a34a;--accent-strong: #15803d;--accent-hover: #166534;--on-accent: #ffffff;--accent-text: #15803d;--destructive: #ff3b30;--destructive-hover: #d63029;--success: #34c759;--warning: #ff9500;--info: #5ac8fa;--purple: #af52de;--gray: #8e8e93;--success-text: #1e7a34;--warning-text: #a35500;--info-text: #1a6fbf;--purple-text: #8944ab;--gray-text: #6e6e73;--destructive-text: #d63029;--accent-tint: rgba(22, 163, 74, .1);--destructive-tint: rgba(255, 59, 48, .1);--success-tint: #e8f8ed;--warning-tint: #fff4e5;--info-tint: #e3f4fc;--purple-tint: #f3e8fa;--gray-tint: #f2f2f7;--scan: #1c1c1e;--scan-fg: #ffffff;--sh-card: 0 1px 3px rgba(0, 0, 0, .06);--sh-row: 0 2px 8px rgba(0, 0, 0, .04);--sh-hero: 0 4px 16px rgba(0, 0, 0, .06);--sh-dock: 0 8px 32px rgba(0, 0, 0, .12), 0 2px 8px rgba(0, 0, 0, .06);--sh-scan: 0 4px 16px rgba(0, 0, 0, .25);--r-sm: 8px;--r: 10px;--r-lg: 14px;--r-xl: 20px;--r-2xl: 24px;--r-full: 9999px;color-scheme:light}[data-theme=dark]{--bg: #000000;--surface: #1c1c1e;--fill: #2c2c2e;--fill-2: #3a3a3c;--text: #ffffff;--text-2: #aeaeb2;--text-3: #8e8e93;--border: #38383a;--separator: #38383a;--accent: #16a34a;--accent-strong: #15803d;--accent-hover: #166534;--on-accent: #ffffff;--accent-text: #30d158;--destructive: #ff453a;--destructive-hover: #ff3b30;--success: #30d158;--warning: #ff9f0a;--info: #64d2ff;--purple: #bf5af2;--gray: #8e8e93;--success-text: #30d158;--warning-text: #ff9f0a;--info-text: #64d2ff;--purple-text: #bf5af2;--gray-text: #aeaeb2;--destructive-text: #ff453a;--accent-tint: rgba(48, 209, 88, .14);--destructive-tint: rgba(255, 69, 58, .14);--success-tint: rgba(48, 209, 88, .16);--warning-tint: rgba(255, 159, 10, .16);--info-tint: rgba(100, 210, 255, .14);--purple-tint: rgba(191, 90, 242, .16);--gray-tint: #2c2c2e;--scan: #ffffff;--scan-fg: #000000;--sh-card: 0 1px 3px rgba(0, 0, 0, .4);--sh-row: 0 2px 8px rgba(0, 0, 0, .35);--sh-hero: 0 4px 16px rgba(0, 0, 0, .5);--sh-dock: 0 8px 32px rgba(0, 0, 0, .6), 0 2px 8px rgba(0, 0, 0, .5);--sh-scan: 0 4px 16px rgba(0, 0, 0, .5);color-scheme:dark}*{box-sizing:border-box;margin:0;padding:0}html,body,#root{height:100%}body{background:var(--bg);color:var(--text);font-family:-apple-system,BlinkMacSystemFont,SF Pro Display,SF Pro Text,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;font-size:17px;line-height:1.47059;letter-spacing:-.022em;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}a{color:var(--accent-text);text-decoration:none}button{font:inherit;letter-spacing:inherit;cursor:pointer}input,select,textarea{font:inherit;letter-spacing:inherit;color:var(--text)}.mono{font-family:SF Mono,ui-monospace,Menlo,Monaco,Courier New,monospace}.topbar{position:sticky;top:0;z-index:20;display:flex;align-items:center;justify-content:space-between;gap:8px;padding:12px 20px;background:var(--bg);border-bottom:1px solid var(--border)}.topbar .brand{display:flex;align-items:center;gap:10px;font-weight:700;font-size:17px;color:var(--text)}.brand-tile{width:30px;height:30px;border-radius:8px;background:var(--accent);color:var(--on-accent);display:flex;align-items:center;justify-content:center}.topbar .who{font-size:13px;color:var(--text-2)}.topbar .top-actions{display:flex;align-items:center;gap:4px}.icon-btn{width:44px;height:44px;border-radius:var(--r);display:inline-flex;align-items:center;justify-content:center;background:transparent;border:none;color:var(--text-2)}.icon-btn:hover{background:var(--fill);color:var(--text)}main{padding:16px 20px 120px;max-width:560px;margin:0 auto}.admin-page main{padding-bottom:48px}h1.greet{font-size:28px;font-weight:700;letter-spacing:-.022em}h2.sec{font-size:17px;font-weight:700;margin:20px 0 10px}h2.card-title{font-size:17px;font-weight:600}p.muted,.muted{color:var(--text-2)}p.small,.small{font-size:13px}.meta{font-size:13px;color:var(--text-2)}.micro{font-size:12px;font-weight:500}.card{background:var(--surface);border-radius:var(--r-lg);box-shadow:var(--sh-card);overflow:hidden}.card-pad{padding:16px}.card+.card{margin-top:12px}.hero-card{background:var(--surface);border-radius:var(--r-2xl);box-shadow:var(--sh-hero);padding:24px}.hero-card .icon-tile{width:48px;height:48px;border-radius:var(--r-xl);background:var(--accent-tint);color:var(--accent-text);display:flex;align-items:center;justify-content:center;margin-bottom:12px}.hero-card .label{font-size:13px;font-weight:500;color:var(--text-2)}.hero-card .value{font-size:28px;font-weight:700;margin-top:2px}.list{display:flex;flex-direction:column;gap:8px}.listrow{width:100%;background:var(--surface);border:none;text-align:left;border-radius:var(--r-xl);box-shadow:var(--sh-row);padding:16px;display:flex;align-items:center;gap:12px;color:var(--text)}.listrow:hover{box-shadow:var(--sh-hero)}.listrow .ic{width:40px;height:40px;border-radius:12px;background:var(--accent-tint);color:var(--accent-text);display:flex;align-items:center;justify-content:center;flex-shrink:0}.listrow .body{flex:1;min-width:0}.listrow .title{font-size:15px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.listrow .sub{font-size:13px;color:var(--text-2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.listrow .tail{color:var(--text-3);flex-shrink:0}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;height:44px;min-width:44px;padding:0 20px;border-radius:var(--r);border:1px solid transparent;font-size:17px;font-weight:500;letter-spacing:-.022em;transition:transform .15s,background .15s,color .15s,border-color .15s;white-space:nowrap}.btn:active{transform:scale(.98)}.btn:disabled{opacity:.4;pointer-events:none}.btn:focus-visible{outline:none;box-shadow:0 0 0 2px var(--surface),0 0 0 4px var(--accent)}.listrow:focus-visible,.icon-btn:focus-visible,.dock-item:focus-visible,.dock-fab:focus-visible,.link:focus-visible,.segmented button:focus-visible,.check input:focus-visible{outline:none;box-shadow:0 0 0 2px var(--surface),0 0 0 4px var(--accent)}.btn.primary{background:var(--accent-strong);color:var(--on-accent)}.btn.primary:hover{background:var(--accent-hover)}.btn.destructive{background:var(--destructive);color:#fff}.btn.destructive:hover{background:var(--destructive-hover)}.btn.outline{background:var(--surface);color:var(--accent-text);border-color:var(--border)}.btn.outline:hover{background:var(--accent-tint)}.btn.ghost{background:transparent;color:var(--accent-text)}.btn.ghost:hover{background:var(--accent-tint)}.btn.subtle{background:var(--fill);color:var(--text)}.btn.subtle:hover{background:var(--fill-2)}.btn.block{width:100%}.btn.sm{height:36px;padding:0 14px;font-size:15px}.btn.lg{height:50px;padding:0 24px}.field{display:block;margin-bottom:14px}.field label{display:block;font-size:13px;font-weight:600;color:var(--text-2);margin-bottom:6px}.field input,.field select{width:100%;height:44px;padding:0 16px;background:var(--fill);border:none;border-radius:var(--r);font-size:17px;color:var(--text)}.field input:focus,.field select:focus{outline:none;background:var(--surface);box-shadow:0 0 0 2px var(--accent)}.field input::placeholder{color:var(--text-3)}.check{display:flex;align-items:flex-start;gap:10px;margin:8px 0;cursor:pointer}.check input{width:20px;height:20px;margin-top:2px;accent-color:var(--accent);flex-shrink:0}.check span{font-size:15px;color:var(--text)}.badge{display:inline-flex;align-items:center;gap:5px;border-radius:var(--r-full);padding:2px 10px;font-size:13px;font-weight:500;letter-spacing:-.022em}.badge .dot{width:6px;height:6px;border-radius:50%;background:currentColor}.badge.success{background:var(--success-tint);color:var(--success-text)}.badge.warning{background:var(--warning-tint);color:var(--warning-text)}.badge.destructive{background:var(--destructive-tint);color:var(--destructive-text)}.badge.info{background:var(--info-tint);color:var(--info-text)}.badge.purple{background:var(--purple-tint);color:var(--purple-text)}.badge.gray{background:var(--gray-tint);color:var(--gray-text)}.badge.accent{background:var(--accent-tint);color:var(--accent-text)}.empty{background:var(--surface);border-radius:var(--r-xl);padding:32px;text-align:center;box-shadow:var(--sh-card)}.empty .ic{width:56px;height:56px;border-radius:16px;background:var(--gray-tint);color:var(--text-3);display:flex;align-items:center;justify-content:center;margin:0 auto 12px}.empty .ic.green{background:var(--success-tint);color:var(--success-text)}.empty h3{font-size:16px;font-weight:600}.empty p{font-size:14px;color:var(--text-2);margin-top:4px}.error-banner{background:var(--destructive-tint);color:var(--destructive-text);border-radius:var(--r);padding:12px 14px;font-size:14px;margin:12px 0}.demo-hint{background:var(--fill);color:var(--text-2);border:1px solid var(--border);border-radius:var(--r);padding:10px 14px;font-size:13px;margin:10px 0}.demo-hint strong{color:var(--text);font-weight:600}.spinner{width:32px;height:32px;border-radius:50%;border:2px solid var(--accent-tint);border-top-color:var(--accent);animation:spin .8s linear infinite;margin:20px auto}@keyframes spin{to{transform:rotate(360deg)}}.dock{position:fixed;bottom:20px;left:0;right:0;z-index:30;display:flex;justify-content:center;padding:0 20px;pointer-events:none}.dock-inner{pointer-events:auto;display:flex;align-items:center;justify-content:space-around;gap:2px;padding:8px 10px;width:100%;max-width:380px;background:var(--surface);border:1px solid var(--border);border-radius:28px;box-shadow:var(--sh-dock)}.dock-item{display:flex;flex-direction:column;align-items:center;gap:2px;padding:4px 12px;min-width:52px;border:none;background:transparent;color:var(--text-3);font-size:10px;font-weight:500;letter-spacing:-.01em}.dock-item.active{color:var(--accent-strong);background:var(--accent-tint);border-radius:14px}.dock-item svg{width:22px;height:22px}.dock-fab{width:52px;height:52px;border-radius:var(--r-full);border:none;background:var(--scan);color:var(--scan-fg);margin-top:-24px;box-shadow:var(--sh-scan);display:flex;align-items:center;justify-content:center}.auth-wrap{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:24px;background:var(--bg)}.auth-card{width:100%;max-width:400px}.auth-card.wide{max-width:440px}.auth-card .brand{display:flex;align-items:center;gap:12px;justify-content:center;margin-bottom:26px}.auth-card .brand .brand-tile{width:44px;height:44px;border-radius:13px}.brand-name{font-size:20px;font-weight:700;letter-spacing:-.01em}.brand-tagline{font-size:12.5px;color:var(--text-2);margin-top:1px}.auth-card h1{font-size:24px;font-weight:700;margin-bottom:6px;text-align:center}.auth-card .lede{font-size:15px;color:var(--text-2);margin-bottom:20px;text-align:center}.auth-footer{display:flex;justify-content:center;margin-top:16px}.link{background:none;border:none;padding:4px 8px;color:var(--accent-text);font-size:14px;font-weight:500;cursor:pointer}.link:hover{text-decoration:underline}.trust-line{text-align:center;font-size:12.5px;color:var(--text-3);margin-top:20px}.segmented{display:flex;background:var(--fill);border-radius:var(--r);padding:3px;margin-bottom:18px}.segmented button{flex:1;height:40px;border:none;border-radius:8px;background:transparent;color:var(--text-2);font-size:15px;font-weight:600;letter-spacing:-.01em}.segmented button.active{background:var(--surface);color:var(--text);box-shadow:var(--sh-card)}.steps{display:flex;gap:6px;margin-bottom:20px}.step-pill{flex:1;height:4px;border-radius:4px;background:var(--fill-2)}.step-pill.done{background:var(--accent)}.step-pill.active{background:var(--accent-text)}.cam{width:100%;height:220px;border-radius:var(--r-lg);background:#000;object-fit:cover;margin:12px 0}.challenge{background:var(--surface);border-radius:var(--r-lg);padding:20px;text-align:center;margin:12px 0;box-shadow:var(--sh-card)}.challenge-action{font-size:20px;font-weight:700;margin-bottom:14px}.qr-box{display:flex;flex-direction:column;align-items:center;gap:12px;padding:24px}.qr-box .qr-white{background:#fff;padding:14px;border-radius:16px;box-shadow:var(--sh-card)}.qr-token{font-family:SF Mono,ui-monospace,monospace;font-size:11px;color:var(--text-3);word-break:break-all}.kv{margin-top:8px}.kv dt{font-size:12px;font-weight:600;color:var(--text-3);text-transform:uppercase;letter-spacing:.05em;margin-top:10px}.kv dd{font-size:14px;font-weight:600;color:var(--text);margin-top:2px}.kv-row{display:flex;justify-content:space-between;align-items:center;padding:8px 0;border-bottom:1px solid var(--fill-2)}.kv-row:last-child{border-bottom:none}.kv-label{font-size:13px;color:var(--text-2)}.kv-value{font-size:14px;font-weight:600;color:var(--text);text-align:right}.req{display:flex;align-items:center;gap:12px;padding:12px 0;border-bottom:1px solid var(--fill-2)}.req:last-child{border-bottom:none}.req .ic{width:32px;height:32px;border-radius:var(--r-full);display:flex;align-items:center;justify-content:center;flex-shrink:0}.req.done .ic{background:var(--success-tint);color:var(--success)}.req.todo .ic{background:var(--gray-tint);color:var(--text-3)}.req .name{font-size:15px;font-weight:600}.req .desc{font-size:13px;color:var(--text-2)}.grid{display:flex;flex-direction:column;gap:12px}.row{display:flex;gap:10px;align-items:center}.row.wrap{flex-wrap:wrap}.ok{color:var(--success);font-weight:600}.page-head{display:flex;align-items:center;gap:14px;padding:4px 0 18px}.page-head .ic{width:40px;height:40px;border-radius:12px;background:var(--accent-tint);color:var(--accent-text);display:flex;align-items:center;justify-content:center;flex-shrink:0}.page-head h1{font-size:20px;font-weight:700;letter-spacing:-.022em}.page-head .meta{font-size:13px;color:var(--text-2);margin-top:2px}.stat-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}.stat{background:var(--surface);border-radius:var(--r-lg);box-shadow:var(--sh-row);padding:14px}.stat-num{font-size:22px;font-weight:700;display:block}.stat-label{font-size:12px;color:var(--text-2);font-weight:500}.req-list,.timeline{list-style:none}.t-row{display:flex;flex-direction:column;gap:2px;padding:10px 0;border-bottom:1px solid var(--fill-2)}.t-row:last-child{border-bottom:none}.t-event{font-size:14px;font-weight:600}.t-meta{font-size:13px;color:var(--text-2)}.t-time{font-size:12px;color:var(--text-3)}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.01ms!important;transition-duration:.01ms!important}}@media (min-width: 768px){main{max-width:640px}.topbar{padding:12px 32px}}.dock-fab{background:var(--scan);color:var(--scan-fg);box-shadow:var(--sh-scan)}.dock-item{padding:4px 8px;min-width:46px}.app-top{position:sticky;top:0;z-index:20;display:flex;align-items:center;gap:10px;padding:10px 16px;background:var(--bg)}.app-top .brand-tile{width:34px;height:34px;border-radius:10px}.app-top .ttl{flex:1;text-align:center;font-size:16px;font-weight:700;letter-spacing:-.02em}.app-top .acts{display:flex;align-items:center;gap:2px}.avatar{width:34px;height:34px;border-radius:var(--r-full);background:var(--accent);color:var(--on-accent);display:inline-flex;align-items:center;justify-content:center;font-size:12.5px;font-weight:700;letter-spacing:0;flex-shrink:0}.greet{font-size:28px;font-weight:700;letter-spacing:-.03em;margin:4px 0 18px}.score{background:var(--surface);border-radius:var(--r-2xl);box-shadow:var(--sh-hero);padding:18px}.score-top{display:flex;align-items:center;gap:14px}.score-tile{width:46px;height:46px;border-radius:14px;background:var(--accent);color:var(--on-accent);display:flex;align-items:center;justify-content:center;flex-shrink:0}.score-lbl{font-size:13px;color:var(--text-2);font-weight:500}.score-val{font-size:26px;font-weight:700;letter-spacing:-.02em}.score-cta{margin-left:auto;display:inline-flex;align-items:center;gap:2px;font-size:14px;font-weight:600;color:var(--accent-text);background:none;border:none}.progress{height:8px;border-radius:9999px;background:var(--fill-2);margin:14px 0 12px;overflow:hidden}.progress>i{display:block;height:100%;border-radius:9999px;background:var(--accent)}.score-foot{display:flex;align-items:center;gap:16px}.score-foot .s{display:inline-flex;align-items:center;gap:5px;font-size:12.5px;color:var(--text-2)}.score-foot .s svg{width:15px;height:15px;color:var(--accent-text)}.tiles{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-top:12px}.tile{background:var(--surface);border-radius:var(--r-xl);box-shadow:var(--sh-row);padding:14px 8px;display:flex;flex-direction:column;align-items:center;gap:6px}.tile .ic{width:34px;height:34px;border-radius:11px;display:flex;align-items:center;justify-content:center}.tile .n{font-size:20px;font-weight:700}.tile .l{font-size:11.5px;color:var(--text-2);font-weight:500}.sec-head{display:flex;align-items:baseline;justify-content:space-between;margin:22px 0 10px}.sec-head h2{font-size:17px;font-weight:700;letter-spacing:-.02em}.sec-head a,.sec-head button{font-size:14px;font-weight:600;color:var(--accent-text);background:none;border:none;display:inline-flex;align-items:center;gap:2px}.chips{display:flex;gap:6px;overflow-x:auto;padding-bottom:6px;margin-bottom:10px;-ms-overflow-style:none;scrollbar-width:none}.chips::-webkit-scrollbar{display:none}.chip{flex-shrink:0;height:34px;padding:0 12px;border-radius:9999px;border:1px solid var(--border);background:var(--surface);color:var(--text-2);font-size:12.5px;font-weight:600}.chip.on{background:var(--accent-strong);border-color:var(--accent-strong);color:var(--on-accent)}.pill-select{width:100%;height:42px;border-radius:var(--r);border:1px solid var(--border);background:var(--surface);padding:0 12px;font-size:14px;color:var(--text);margin-bottom:12px}.grp{font-size:11.5px;font-weight:700;color:var(--text-3);text-transform:uppercase;letter-spacing:.07em;margin:18px 0 8px}.tl{display:flex;flex-direction:column;gap:8px}.tl-row{width:100%;display:flex;align-items:center;gap:12px;background:var(--surface);border:none;border-radius:var(--r-xl);box-shadow:var(--sh-row);padding:14px;text-align:left;color:var(--text)}.tl-row .ic{width:38px;height:38px;border-radius:12px;display:flex;align-items:center;justify-content:center;flex-shrink:0}.tl-row .body{flex:1;min-width:0}.tl-row .t{font-size:15px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.tl-row .s{font-size:12.5px;color:var(--text-2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.tl-row .end{display:flex;flex-direction:column;align-items:flex-end;gap:4px;flex-shrink:0}.tl-row .ago{font-size:11.5px;color:var(--text-3)}.choose{display:grid;grid-template-columns:1fr 1fr;gap:10px}.money{background:var(--surface);border-radius:var(--r-2xl);box-shadow:var(--sh-hero);padding:22px;text-align:center}.money .lbl{font-size:13px;color:var(--text-2);font-weight:500}.money .amt{font-size:34px;font-weight:700;letter-spacing:-.03em;margin:2px 0 4px}.money .sub{font-size:12.5px;color:var(--text-3)}.voucher{display:flex;gap:8px;margin-top:10px}.voucher input{flex:1;height:44px;padding:0 14px;border-radius:var(--r);border:1px solid var(--border);background:var(--fill);font-size:15px}.tx{display:flex;align-items:center;justify-content:space-between;padding:13px 0;border-bottom:1px solid var(--fill-2)}.tx:last-child{border-bottom:none}.tx .t{font-size:15px;font-weight:600}.tx .d{font-size:12.5px;color:var(--text-3)}.tx .amt{font-size:15px;font-weight:700}.ring{position:relative;width:136px;height:136px;margin:4px auto 12px}.ring svg{transform:rotate(-90deg)}.ring .mid{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;align-items:center;justify-content:center}.ring .mid .p{font-size:30px;font-weight:700;letter-spacing:-.03em}.ring .mid .l{font-size:10.5px;color:var(--text-3);font-weight:700;text-transform:uppercase;letter-spacing:.07em}.mgroup{margin-top:18px}.mgroup .h{font-size:11.5px;font-weight:700;color:var(--text-3);text-transform:uppercase;letter-spacing:.07em;margin-bottom:8px;padding-left:4px}.mlist{background:var(--surface);border-radius:var(--r-xl);box-shadow:var(--sh-row);overflow:hidden}.mitem{width:100%;display:flex;align-items:center;gap:12px;padding:13px 16px;background:none;border:none;border-bottom:1px solid var(--fill-2);text-align:left;color:var(--text)}.mitem:last-child{border-bottom:none}.mitem .ic{width:34px;height:34px;border-radius:10px;background:var(--accent-tint);color:var(--accent-text);display:flex;align-items:center;justify-content:center;flex-shrink:0}.mitem .t{flex:1;font-size:15px;font-weight:600}.mitem .v{font-size:13.5px;color:var(--text-2)}.mitem.destructive{color:var(--destructive-text)}.mitem.destructive .ic{background:var(--destructive-tint);color:var(--destructive-text)}.share{background:var(--surface);border-radius:var(--r-xl);box-shadow:var(--sh-row);padding:16px}.share h3{font-size:16px;font-weight:700}.share p{font-size:13.5px;color:var(--text-2);margin:4px 0 14px}.share-btns{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}.share-btn{display:flex;flex-direction:column;align-items:center;gap:6px;padding:10px 4px;border-radius:var(--r);background:var(--fill);border:none;font-size:11px;font-weight:600;color:var(--text-2)}.appc{background:var(--surface);border-radius:var(--r-xl);box-shadow:var(--sh-row);padding:16px}.appc+.appc{margin-top:10px}.appc .hd{display:flex;align-items:center;gap:12px}.appc .hd .ic{width:42px;height:42px;border-radius:13px;background:var(--accent-tint);color:var(--accent-text);display:flex;align-items:center;justify-content:center;flex-shrink:0;font-weight:700;font-size:15px}.appc .hd .t{font-size:16px;font-weight:700}.appc .hd .s{font-size:12.5px;color:var(--text-2)}.appc ul{list-style:none;margin:12px 0 0;display:flex;flex-direction:column;gap:6px}.appc li{font-size:13.5px;color:var(--text-2);display:flex;align-items:center;gap:8px}.appc li svg{width:15px;height:15px;color:var(--success-text);flex-shrink:0}.flow{max-width:440px;margin:0 auto;padding:16px 20px 40px}.flow-top{display:flex;align-items:center;gap:8px;padding:8px 0 14px}.flow-top .back{width:40px;height:40px;border-radius:var(--r);border:none;background:transparent;color:var(--text);display:inline-flex;align-items:center;justify-content:center}.flow-top .ttl{font-size:16px;font-weight:700}.flow h1{font-size:26px;font-weight:700;letter-spacing:-.03em;margin-bottom:8px}.flow .lede{font-size:15px;color:var(--text-2);margin-bottom:22px}.code-box input{width:100%;height:58px;text-align:center;font-size:26px;font-weight:700;letter-spacing:.22em;border-radius:var(--r-lg);border:1.5px solid var(--border);background:var(--fill);color:var(--text)}.code-box input:focus{outline:none;border-color:var(--accent);background:var(--surface)}.photo-pick{width:120px;height:120px;border-radius:var(--r-full);background:var(--fill);border:2px dashed var(--border);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;margin:8px auto 20px;color:var(--text-3)}.big-check{width:88px;height:88px;border-radius:var(--r-full);background:var(--success-tint);color:var(--success-text);display:flex;align-items:center;justify-content:center;margin:20px auto 18px}.terms-body{max-height:320px;overflow-y:auto;background:var(--surface);border-radius:var(--r-lg);padding:16px;box-shadow:var(--sh-card);font-size:13.5px;color:var(--text-2)}.terms-body h4{color:var(--text);font-size:14px;margin:12px 0 4px}.terms-body h4:first-child{margin-top:0}.vl{margin-top:16px;background:var(--surface);border-radius:var(--r-xl);box-shadow:var(--sh-row);overflow:hidden}.vl-sec+.vl-sec{border-top:1px solid var(--fill-2)}.vl-head{width:100%;display:flex;align-items:center;gap:12px;padding:15px 16px;background:none;border:none;text-align:left;color:var(--text)}.vl-head .ic{width:34px;height:34px;border-radius:10px;background:var(--accent-tint);color:var(--accent-text);display:flex;align-items:center;justify-content:center;flex-shrink:0}.vl-head .t{flex:1;font-size:15px;font-weight:600}.vl-head .n{font-size:14px;font-weight:700;color:var(--text-2)}.vl-body{padding:0 12px 8px}.listrow .body,.tl-row .body{display:flex;flex-direction:column;gap:2px;min-width:0;overflow:hidden}.listrow .title,.listrow .sub,.tl-row .t,.tl-row .s{display:block;max-width:100%}.field>span{display:block;font-size:13px;font-weight:600;color:var(--text-2);margin-bottom:6px}.share-btn{font-size:10.5px}.mitem .t{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.page{max-width:560px;margin:0 auto;padding:24px 20px;min-height:100vh;min-height:100dvh;display:flex;flex-direction:column;justify-content:center}.page>*{flex:0 0 auto}.phone-row{display:flex;gap:8px;align-items:stretch}.phone-row .cc{flex:0 0 auto;width:104px;height:48px;border-radius:var(--r);border:1px solid var(--border);background:var(--fill);color:var(--text);font-size:14px;font-weight:600;padding:0 8px}.phone-row input{flex:1;min-width:0}.cc-hint{display:block;font-style:normal;font-size:12.5px;color:var(--text-3);margin-top:6px}.cc-hint.ok{color:var(--success-text)}.greet{font-size:28px}.page-head{padding:4px 0 16px}.page-head .ic{display:none}.page-head h1{font-size:28px}.sheet-back{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000059;z-index:40;display:flex;align-items:flex-end}.sheet{background:var(--surface);width:100%;max-width:560px;margin:0 auto;border-radius:var(--r-2xl) var(--r-2xl) 0 0;padding:20px 20px 28px}.sheet h3{font-size:18px;font-weight:700;letter-spacing:-.02em;margin-bottom:4px}.sheet p{font-size:14px;color:var(--text-2);margin-bottom:14px}.chip,.pill-select{height:44px}.dock-item,.share-btn{min-height:44px}svg.lucide{stroke-width:1.5}.dock-inner{background:var(--surface)}@supports (backdrop-filter: blur(1px)){.dock-inner{background:color-mix(in srgb,var(--surface) 85%,transparent);backdrop-filter:saturate(180%) blur(20px);-webkit-backdrop-filter:saturate(180%) blur(20px)}}.chip,.tl-row,.mitem,.vl-head,.listrow,.dock-item,.share-btn,.appc{transition:transform .12s ease,background .15s ease,box-shadow .15s ease}.chip:active,.tl-row:active,.mitem:active,.vl-head:active,.listrow:active,.dock-item:active,.share-btn:active{transform:scale(.98)}.id-trunc{display:inline-block;max-width:168px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;vertical-align:bottom}.seg{display:flex;gap:4px;background:var(--fill);border-radius:var(--r);padding:4px;margin-bottom:16px}.seg-btn{flex:1;min-height:44px;display:inline-flex;align-items:center;justify-content:center;gap:6px;border:none;background:transparent;color:var(--text-2);font-size:12.5px;font-weight:600;border-radius:8px;padding:0 6px;cursor:pointer}.seg-btn.on{background:var(--surface);color:var(--text);box-shadow:var(--sh-1)}.scanframe{border:1.5px dashed var(--border);border-radius:var(--r-lg);padding:26px 18px;text-align:center;color:var(--text-3);background:var(--surface);margin-bottom:14px}.scanframe p{font-size:13px;margin-top:10px;color:var(--text-2)}.verdict{display:flex;align-items:center;gap:8px;font-size:13.5px;font-weight:600;border-radius:var(--r);padding:10px 12px;margin-top:8px}.verdict.ok{background:var(--success-tint);color:var(--success-text)}.verdict.bad{background:var(--destructive-tint);color:var(--destructive-text)}.scope{display:flex;gap:10px;padding:11px 0;border-bottom:1px solid var(--border)}.scope:last-of-type{border-bottom:none}.scope>.ic{width:24px;height:24px;border-radius:8px;background:var(--success-tint);color:var(--success-text);display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;margin-top:2px}.scope strong{display:block;font-size:14.5px;font-weight:600}.scope em{display:block;font-style:normal;font-size:13px;color:var(--text-2);margin-top:2px}.pcode{display:flex;align-items:center;justify-content:space-between;gap:10px;background:var(--fill);border-radius:var(--r);padding:12px 14px}.pcode .mono{font-size:17px;font-weight:700;letter-spacing:.06em}.receipt-wording{font-size:14px;line-height:1.5;color:var(--text);background:var(--fill);border-radius:var(--r);padding:12px 14px;border-left:3px solid var(--accent)}.choose{display:flex;gap:10px}.choose>.btn{flex:1}.auth-wrap{max-width:560px;margin:0 auto;padding:16px 20px 48px;min-height:0;display:block}.auth-card{width:100%;max-width:none}.auth-card h1{font-size:24px}.auth-card h1,.auth-card .lede{text-align:center}.auth-head{position:relative;display:flex;align-items:center;justify-content:center;min-height:44px;margin-bottom:2px}.auth-head .ttl{font-size:16px;font-weight:700;letter-spacing:-.02em}.auth-head .back{position:absolute;left:0;top:0;width:44px;height:44px;border:none;background:transparent;color:var(--text);display:inline-flex;align-items:center;justify-content:center;border-radius:var(--r)}.auth-head .back:hover{background:var(--fill)}.brand-hero{display:flex;flex-direction:column;align-items:center;text-align:center;margin:22px 0}.brand-hero .brand-tile{width:60px;height:60px;border-radius:18px;margin-bottom:12px}.brand-hero .brand-name{font-size:26px;font-weight:700;letter-spacing:-.02em}.brand-hero .brand-tagline{font-size:14px;color:var(--text-2);margin-top:3px}.auth-title{font-size:24px;font-weight:700;text-align:center;letter-spacing:-.02em;margin-bottom:6px}.auth-lede{font-size:15px;color:var(--text-2);text-align:center;margin-bottom:20px}.auth-links{display:flex;flex-direction:column;align-items:center;gap:6px;margin-top:16px}.loading-page{max-width:560px;margin:0 auto;padding:64px 20px}
