:root{--bg: #f4f5f7;--bg-2: #eceef2;--surface: #ffffff;--surface-2: #f7f8fa;--surface-3: #eef0f4;--ink: #1a1d23;--ink-2: #555c67;--ink-3: #8a909b;--line: rgba(22, 26, 33, .11);--line-2: rgba(22, 26, 33, .05);--accent: #2f6df0;--accent-ink: #ffffff;--accent-deep: #1f56d6;--accent-soft: color-mix(in srgb, var(--accent) 11%, transparent);--accent-line: color-mix(in srgb, var(--accent) 40%, var(--line));--indigo: #7158e0;--indigo-soft: color-mix(in srgb, var(--indigo) 12%, transparent);--indigo-line: color-mix(in srgb, var(--indigo) 42%, var(--line));--gold: #b0852a;--ok: #1f9d57;--warn: #d08a16;--danger: #e2453a;--warn-soft: color-mix(in srgb, var(--warn) 15%, transparent);--danger-soft: color-mix(in srgb, var(--danger) 12%, transparent);--ok-soft: color-mix(in srgb, var(--ok) 14%, transparent);--radius: 16px;--radius-sm: 11px;--maxw: 760px;--font: "IBM Plex Sans JP", system-ui, -apple-system, "Segoe UI", sans-serif;--mono: "IBM Plex Mono", ui-monospace, SFMono-Regular, monospace;--serif: var(--font);--shadow-1: 0 1px 2px rgba(20, 24, 33, .06);--shadow-2: 0 16px 40px -24px rgba(20, 24, 33, .3)}[data-theme=dark]{--bg: #14161b;--bg-2: #1a1d24;--surface: #1e2128;--surface-2: #242832;--surface-3: #2c313c;--ink: #eef1f6;--ink-2: #a8b0bd;--ink-3: #727b88;--line: rgba(232, 238, 248, .13);--line-2: rgba(232, 238, 248, .06);--accent: #5b8cf5;--accent-ink: #0b1220;--accent-deep: #2f6df0;--indigo: #9a86ee;--gold: #d6b250;--warn: #e0a13a;--danger: #ef6258;--ok: #44b873;--shadow-1: 0 1px 2px rgba(0, 0, 0, .4);--shadow-2: 0 18px 48px -22px rgba(0, 0, 0, .7)}*{box-sizing:border-box;margin:0;padding:0}html{-webkit-text-size-adjust:100%}html,body{height:100%}body{font-family:var(--font);color:var(--ink);background:var(--bg);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;line-height:1.55;min-height:100dvh}body:before{content:"";position:fixed;inset:0;z-index:0;pointer-events:none;opacity:1;background-image:radial-gradient(130% 80% at 50% -20%,var(--bg-2) 0%,transparent 62%)}a{color:inherit;text-decoration:none}button{font-family:inherit}.mono{font-family:var(--mono);font-variant-numeric:tabular-nums}.app{position:relative;z-index:1;max-width:var(--maxw);margin:0 auto;min-height:100dvh;display:flex;flex-direction:column}.topbar{position:sticky;top:0;z-index:30;display:flex;align-items:center;gap:12px;padding:11px clamp(14px,4vw,22px);border-bottom:1px solid var(--line);background:color-mix(in srgb,var(--bg) 84%,transparent);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.brand{display:flex;align-items:center;gap:11px;min-width:0}.brand__mark{width:38px;height:38px;flex:none;display:grid;place-items:center;border-radius:11px;background:var(--surface);border:1px solid var(--line);color:var(--accent)}.brand__mark svg{width:22px;height:22px}.brand__txt{min-width:0}.brand__name{font-size:15.5px;font-weight:600;line-height:1.15;white-space:nowrap}.brand__sub{font-family:var(--mono);font-size:10px;letter-spacing:.16em;text-transform:uppercase;color:var(--ink-3)}.topspring{flex:1}.store-badge{display:inline-flex;align-items:center;gap:6px;max-width:40vw;font-size:11.5px;font-weight:600;color:var(--accent);padding:5px 11px;border-radius:999px;border:1px solid var(--accent-line);background:var(--accent-soft);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.store-badge:before{content:"";width:6px;height:6px;border-radius:50%;background:var(--accent);flex:none}.actions{display:flex;align-items:center;gap:7px}.iconbtn{width:38px;height:38px;display:grid;place-items:center;border-radius:10px;border:1px solid var(--line);background:var(--surface);color:var(--ink-2);cursor:pointer;position:relative;transition:color .16s,border-color .16s,background .16s,transform .12s}.iconbtn:hover{color:var(--ink);border-color:var(--ink-3)}.iconbtn:active{transform:translateY(1px)}.iconbtn svg{width:19px;height:19px}.iconbtn .tip{position:absolute;top:46px;right:0;font-family:var(--mono);font-size:10px;white-space:nowrap;background:var(--ink);color:var(--bg);padding:4px 8px;border-radius:6px;opacity:0;pointer-events:none;transition:opacity .15s;z-index:40}.iconbtn:hover .tip{opacity:.95}.main{flex:1;min-height:0;position:relative}.screen{display:none;flex-direction:column;gap:16px;padding:clamp(14px,4vw,20px) clamp(14px,4vw,22px) 112px}.screen.is-active{display:flex;animation:scrIn .26s ease both}@keyframes scrIn{0%{opacity:0;transform:translateY(6px)}}.section-lab{display:flex;align-items:center;gap:9px;font-size:12px;font-weight:700;color:var(--ink-2);letter-spacing:.01em;padding:0 2px}.section-lab .en{font-family:var(--mono);font-size:9px;letter-spacing:.16em;text-transform:uppercase;color:var(--ink-3);font-weight:500}.section-lab__line{flex:1;height:1px;background:var(--line-2)}.section-lab__count{font-family:var(--mono);font-size:11px;color:var(--ink-3)}.section-lab__btn{border:1px solid var(--line);background:var(--surface-2);color:var(--ink-2);font-size:11.5px;font-weight:600;padding:5px 11px;border-radius:8px;cursor:pointer;display:inline-flex;align-items:center;gap:6px}.section-lab__btn svg{width:14px;height:14px}.section-lab__btn:hover{border-color:var(--accent-line);color:var(--accent)}.hero-scan{display:grid;grid-template-columns:1fr auto;gap:10px}.scan-cta{display:flex;align-items:center;justify-content:center;gap:12px;min-height:96px;border-radius:var(--radius);border:none;cursor:pointer;background:var(--accent);color:var(--accent-ink);font-size:21px;font-weight:700;letter-spacing:.02em;box-shadow:0 14px 30px -12px color-mix(in srgb,var(--accent) 64%,transparent);transition:background .16s,transform .1s}.scan-cta:hover{background:var(--accent-deep)}.scan-cta:active{transform:scale(.99)}.scan-cta svg{width:34px;height:34px}.scan-side{width:96px;display:flex;flex-direction:column;gap:6px;align-items:center;justify-content:center;border-radius:var(--radius);border:1px solid var(--line);background:var(--surface-2);color:var(--ink-2);font-size:12px;font-weight:600;cursor:pointer;transition:border-color .15s,color .15s}.scan-side:hover{border-color:var(--accent-line);color:var(--accent)}.scan-side svg{width:24px;height:24px}.stat-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.stat-card{padding:14px 14px 13px;border-radius:var(--radius-sm);border:1px solid var(--line);background:var(--surface)}.stat-card__k{font-size:11px;color:var(--ink-3);letter-spacing:.03em}.stat-card__v{font-family:var(--mono);font-weight:700;font-size:26px;letter-spacing:-.02em;margin-top:3px}.stat-card__u{font-size:12px;color:var(--ink-3);font-weight:600}.stat-card--stamp .stat-card__v{color:var(--accent)}.stat-card--ticket .stat-card__v{color:var(--indigo)}.cust-list{display:flex;flex-direction:column;gap:8px}.cust{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:12px;width:100%;text-align:left;cursor:pointer;padding:12px 14px;border-radius:var(--radius-sm);border:1px solid var(--line);background:var(--surface);transition:border-color .14s,background .14s,transform .08s}.cust:hover{border-color:var(--accent-line);background:var(--surface-2)}.cust:active{transform:scale(.995)}.cust__ava{flex:none;width:40px;height:40px;border-radius:12px;display:grid;place-items:center;background:var(--accent-soft);color:var(--accent);font-family:var(--serif);font-size:18px;font-weight:700;border:1px solid var(--accent-line)}.cust__main{min-width:0}.cust__name{font-size:14.5px;font-weight:600;line-height:1.3;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.cust__meta{font-size:11.5px;color:var(--ink-3);margin-top:2px;display:flex;gap:8px;flex-wrap:wrap}.cust__meta .mono{font-size:11px}.cust__badges{display:flex;flex-direction:column;gap:4px;align-items:flex-end}.cust__pill{font-family:var(--mono);font-size:10.5px;font-weight:700;padding:2px 8px;border-radius:999px;display:inline-flex;align-items:center;gap:5px;white-space:nowrap}.cust__pill--stamp{color:var(--accent);background:var(--accent-soft);border:1px solid var(--accent-line)}.cust__pill--ticket{color:var(--indigo);background:var(--indigo-soft);border:1px solid var(--indigo-line)}.card-box{border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);padding:16px 17px;display:flex;flex-direction:column;gap:13px}.card-box__lead{font-size:12.5px;color:var(--ink-2);line-height:1.7;text-wrap:pretty}.card-box__lead b{color:var(--ink)}.qty-pick{display:flex;align-items:center;gap:8px}.qty-pick .seg{flex:1}.print-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:12px}.qrcard{position:relative;border:1px dashed var(--line);border-radius:12px;background:#fff;color:#1a1208;padding:12px 10px 10px;display:flex;flex-direction:column;align-items:center;gap:7px;text-align:center}.qrcard__store{font-size:11px;font-weight:700;color:#333a45}.qrcard__qr{width:100%;aspect-ratio:1;max-width:130px;display:grid;place-items:center}.qrcard__qr svg{width:100%;height:100%;display:block}.qrcard__label{font-size:10px;font-weight:700;letter-spacing:.08em;color:#8a909b}.qrcard__id{font-family:var(--mono);font-size:13px;font-weight:700;color:#1a1d23;letter-spacing:.04em;line-height:1.3}.qrcard__dl{position:absolute;top:7px;right:7px;width:30px;height:30px;display:grid;place-items:center;border-radius:9px;cursor:pointer;background:var(--surface-2);color:var(--ink-2);border:1px solid var(--line);transition:background .15s,color .15s,border-color .15s}.qrcard__dl svg{width:16px;height:16px}.qrcard__dl:hover{background:var(--accent);color:var(--accent-ink);border-color:var(--accent)}.qrcard__dl:disabled{opacity:.5;cursor:default}@media print{.qrcard__dl{display:none!important}}.card-preview-empty{grid-column:1/-1;padding:26px;text-align:center;color:var(--ink-3);font-size:13px}.sheet__lead{margin:0 0 14px;font-size:12.5px;line-height:1.6;color:var(--ink-2)}.reissue-card-host{display:flex;justify-content:center;margin-bottom:18px}.reissue-card-host .qrcard{width:220px}.reissue-actions{display:flex;flex-direction:column;gap:10px}.cfg-list{display:flex;flex-direction:column;gap:8px}.cfg-row{display:grid;grid-template-columns:1fr auto auto;align-items:center;gap:10px;padding:11px 13px;border-radius:var(--radius-sm);border:1px solid var(--line);background:var(--surface)}.cfg-row__main{min-width:0}.cfg-row__t{font-size:13.5px;font-weight:600}.cfg-row__s{font-size:11px;color:var(--ink-3);margin-top:1px}.cfg-row__tag{font-family:var(--mono);font-size:10px;color:var(--indigo);border:1px solid var(--indigo-line);background:var(--indigo-soft);padding:1px 7px;border-radius:999px}.cfg-del{width:32px;height:32px;border-radius:8px;border:1px solid var(--line);background:transparent;color:var(--ink-3);cursor:pointer;display:grid;place-items:center}.cfg-del:hover{color:var(--danger);border-color:color-mix(in srgb,var(--danger) 40%,var(--line));background:var(--danger-soft)}.cfg-del svg{width:15px;height:15px}.cfg-del:disabled{opacity:.3;cursor:default}.cfg-add{display:grid;grid-template-columns:1fr auto auto;gap:8px;align-items:stretch}.cfg-add .tin{height:42px}.set-block{border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--surface-2);padding:13px 14px;display:flex;flex-direction:column;gap:10px}.set-block__row{display:flex;align-items:center;gap:10px}.set-block__t{font-size:13px;font-weight:700}.set-block__s{font-size:11.5px;color:var(--ink-3);flex:1}.storage-bar{height:7px;border-radius:5px;background:var(--surface-3);overflow:hidden}.storage-bar i{display:block;height:100%;background:var(--indigo);border-radius:5px;transition:width .4s}.detail{position:fixed;inset:0;z-index:45;background:var(--bg);transform:translate(100%);transition:transform .3s cubic-bezier(.32,.72,0,1);display:flex;flex-direction:column;overflow:hidden}.detail.show{transform:translate(0)}.detail__bar{position:sticky;top:0;z-index:2;display:flex;align-items:center;gap:10px;padding:11px clamp(14px,4vw,22px);border-bottom:1px solid var(--line);background:color-mix(in srgb,var(--bg) 86%,transparent);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.detail__back{display:inline-flex;align-items:center;gap:6px;height:38px;padding:0 12px 0 8px;border-radius:10px;border:1px solid var(--line);background:var(--surface);color:var(--ink-2);font-size:13px;font-weight:600;cursor:pointer}.detail__back:hover{color:var(--ink);border-color:var(--ink-3)}.detail__back svg{width:18px;height:18px}.detail__bartitle{font-size:14px;font-weight:700;flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.detail__scroll{flex:1;overflow-y:auto;padding:clamp(14px,4vw,20px) clamp(14px,4vw,22px) 40px;display:flex;flex-direction:column;gap:16px}.detail__scroll>*{flex-shrink:0}.detail__note{margin:0;font-size:12px;line-height:1.6;color:var(--ink-3)}.detail__note b{color:var(--ink-2);font-weight:600}.cust-head{border:1px solid var(--accent-line);border-radius:var(--radius);background:radial-gradient(140% 130% at 0% 0%,var(--accent-soft) 0%,transparent 55%),var(--surface);padding:18px;display:flex;gap:14px;align-items:flex-start}.cust-head__ava{flex:none;width:56px;height:56px;border-radius:16px;display:grid;place-items:center;background:var(--accent-soft);color:var(--accent);font-family:var(--serif);font-size:26px;font-weight:700;border:1px solid var(--accent-line)}.cust-head__main{flex:1;min-width:0}.cust-head__name{font-size:21px;font-weight:700;line-height:1.2}.cust-head__id{font-family:var(--mono);font-size:10.5px;color:var(--ink-3);margin-top:4px;word-break:break-all}.cust-head__edit{flex:none;width:36px;height:36px;border-radius:10px;border:1px solid var(--line);background:var(--surface);color:var(--ink-3);cursor:pointer;display:grid;place-items:center}.cust-head__edit:hover{color:var(--accent);border-color:var(--accent-line)}.cust-head__edit svg{width:17px;height:17px}.attr-rows{display:flex;flex-direction:column;gap:6px;margin-top:12px}.attr-row{display:flex;gap:10px;font-size:13px;line-height:1.5}.attr-row__k{flex:none;width:84px;color:var(--ink-3);font-size:12px}.attr-row__v{flex:1;color:var(--ink);font-weight:500;word-break:break-word}.stamp-panel{border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);padding:16px 17px;display:flex;flex-direction:column;gap:14px}.stamp-panel__top{display:flex;align-items:baseline;justify-content:space-between;gap:10px}.stamp-panel__title{font-size:14px;font-weight:700;display:flex;align-items:center;gap:8px}.stamp-panel__title .en{font-family:var(--mono);font-size:9px;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-3)}.stamp-panel__count{font-family:var(--mono);font-size:13px;color:var(--ink-2)}.stamp-panel__count b{color:var(--accent);font-size:17px}.stamp-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:10px;max-width:360px;margin:0 auto;width:100%}.stamp-cell{aspect-ratio:1;border-radius:50%;display:grid;place-items:center;position:relative;border:1.5px dashed var(--line);color:var(--ink-3);font-family:var(--mono);font-size:12px}.stamp-cell.filled{border:2px solid var(--accent);color:var(--accent);background:radial-gradient(120% 120% at 32% 26%,color-mix(in srgb,var(--accent) 22%,transparent),transparent 70%);font-family:var(--serif);font-size:clamp(14px,4.4vw,22px);font-weight:700;box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--accent) 30%,transparent);animation:stampPop .34s cubic-bezier(.3,1.4,.5,1) both}.stamp-cell.goal{border-style:solid;border-color:var(--gold);color:var(--gold)}@keyframes stampPop{0%{transform:scale(1.7) rotate(-12deg);opacity:0}60%{opacity:1}to{transform:scale(1) rotate(0)}}.stamp-reward{font-size:12px;color:var(--ink-2);background:var(--surface-2);border:1px solid var(--line);border-radius:var(--radius-sm);padding:10px 12px;line-height:1.6}.stamp-reward b{color:var(--gold)}.stamp-reward.ready{border-color:var(--gold);background:color-mix(in srgb,var(--gold) 12%,transparent);color:var(--ink)}.big-action{display:flex;align-items:center;justify-content:center;gap:10px;height:58px;border-radius:var(--radius-sm);border:none;cursor:pointer;font-size:16px;font-weight:700;transition:background .16s,transform .1s,filter .16s}.big-action:active{transform:scale(.99)}.big-action svg{width:22px;height:22px}.big-action--stamp{background:var(--accent);color:var(--accent-ink);box-shadow:0 10px 24px -12px color-mix(in srgb,var(--accent) 60%,transparent)}.big-action--stamp:hover{background:var(--accent-deep)}.big-action--reward{background:var(--gold);color:#1a1208}.big-action--reward:hover{filter:brightness(1.06)}.big-action--ticket{background:var(--indigo);color:#fff}.big-action--ticket:hover{filter:brightness(1.07)}.big-action--ghost{background:var(--surface-2);color:var(--ink-2);border:1px solid var(--line)}.big-action--ghost:hover{border-color:var(--ink-3);color:var(--ink)}.stamp-undo{display:flex;align-items:center;justify-content:center;gap:7px;margin:8px auto 0;padding:7px 14px;border-radius:999px;cursor:pointer;background:transparent;border:1px solid var(--line);color:var(--ink-3);font-size:12.5px;font-weight:600;transition:color .15s,border-color .15s,background .15s}.stamp-undo svg{width:15px;height:15px}.stamp-undo:hover{color:var(--warn);border-color:var(--warn);background:var(--warn-soft)}.ticket-panel{border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);padding:16px 17px;display:flex;flex-direction:column;gap:12px}.ticket-list{display:flex;flex-direction:column;gap:10px}.ticket{border:1px solid var(--indigo-line);border-radius:var(--radius-sm);overflow:hidden;background:radial-gradient(140% 130% at 100% 0%,var(--indigo-soft) 0%,transparent 55%),var(--surface)}.ticket__top{display:flex;align-items:center;gap:10px;padding:12px 14px 10px}.ticket__name{font-size:14px;font-weight:700;flex:1}.ticket__rem{font-family:var(--mono);font-size:13px;color:var(--indigo);font-weight:700}.ticket__rem b{font-size:20px}.ticket__punches{display:flex;flex-wrap:wrap;gap:5px;padding:0 14px 12px}.punch{width:16px;height:16px;border-radius:50%;border:1.5px solid var(--indigo-line)}.punch.used{background:var(--indigo);border-color:var(--indigo);opacity:.35}.ticket__foot{display:flex;gap:8px;padding:10px 12px;border-top:1px solid var(--line-2);background:var(--surface-2)}.ticket__usebtn{flex:1;height:42px;border-radius:9px;border:none;cursor:pointer;background:var(--indigo);color:#fff;font-size:14px;font-weight:700}.ticket__usebtn:hover{filter:brightness(1.07)}.ticket__usebtn:disabled{opacity:.4;cursor:default}.ticket__del{width:42px;height:42px;border-radius:9px;border:1px solid var(--line);background:var(--surface);color:var(--ink-3);cursor:pointer;display:grid;place-items:center}.ticket__del:hover{color:var(--danger);border-color:color-mix(in srgb,var(--danger) 40%,var(--line))}.ticket__del svg{width:16px;height:16px}.ticket--empty{opacity:.6}.ticket--empty .ticket__rem{color:var(--ink-3)}.timeline{display:flex;flex-direction:column;gap:0}.tl{display:grid;grid-template-columns:auto 1fr auto;gap:12px;align-items:start;padding:11px 0;border-top:1px solid var(--line-2);position:relative}.tl:first-child{border-top:none}.tl__dot{flex:none;width:28px;height:28px;border-radius:9px;display:grid;place-items:center;margin-top:1px}.tl__dot svg{width:15px;height:15px}.tl__dot--stamp{background:var(--accent-soft);color:var(--accent)}.tl__dot--stamp_undo{background:var(--warn-soft);color:var(--warn)}.tl__dot--reward{background:color-mix(in srgb,var(--gold) 15%,transparent);color:var(--gold)}.tl__dot--ticket_buy,.tl__dot--ticket_use{background:var(--indigo-soft);color:var(--indigo)}.tl__dot--register{background:var(--surface-3);color:var(--ink-3)}.tl__main{min-width:0;display:flex;flex-direction:column}.tl__t{font-size:13.5px;font-weight:600;line-height:1.4}.tl__s{font-size:11.5px;color:var(--ink-3);margin-top:1px}.tl__time{font-family:var(--mono);font-size:10.5px;color:var(--ink-3);white-space:nowrap;text-align:right}.intro-card{border:1px solid var(--accent-line);border-radius:var(--radius);background:radial-gradient(140% 130% at 0% 0%,var(--accent-soft) 0%,transparent 55%),var(--surface);padding:18px 18px 16px}.intro-card h2{font-size:18px;font-weight:700}.intro-card p{font-size:13px;color:var(--ink-2);margin-top:6px;line-height:1.75;text-wrap:pretty}.feat-row{display:flex;flex-wrap:wrap;gap:7px;margin-top:12px}.feat{font-family:var(--mono);font-size:11px;color:var(--ink-2);border:1px solid var(--line);background:var(--surface-2);padding:4px 10px;border-radius:999px;display:inline-flex;align-items:center;gap:6px}.feat:before{content:"";width:5px;height:5px;border-radius:50%;background:var(--accent)}.man-card{border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);padding:16px 17px}.man-card__head{display:flex;align-items:flex-start;gap:12px}.man-card__ic{flex:none;width:40px;height:40px;border-radius:11px;display:grid;place-items:center;background:var(--surface-3);color:var(--accent)}.man-card__ic svg{width:21px;height:21px}.man-card__t{font-size:15.5px;font-weight:700}.man-card__lead{font-size:12.5px;color:var(--ink-3);margin-top:2px;line-height:1.55}.man-steps{margin:14px 0 0;padding:0;list-style:none;counter-reset:step;display:flex;flex-direction:column;gap:10px}.man-steps li{position:relative;padding-left:34px;font-size:13.5px;color:var(--ink-2);line-height:1.7;text-wrap:pretty;counter-increment:step}.man-steps li:before{content:counter(step);position:absolute;left:0;top:1px;width:23px;height:23px;border-radius:7px;display:grid;place-items:center;font-family:var(--mono);font-size:12px;font-weight:700;color:var(--accent);background:var(--accent-soft);border:1px solid var(--accent-line)}.man-steps li b{color:var(--ink);font-weight:700}.man-steps code,.intro-card code,.faq-a code{font-family:var(--mono);font-size:11.5px;background:var(--surface-3);padding:1px 6px;border-radius:5px;color:var(--accent)}.faq-item{border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--surface);overflow:hidden}.faq-item+.faq-item{margin-top:8px}.faq-q{width:100%;display:flex;align-items:center;gap:12px;text-align:left;padding:14px 15px;background:transparent;border:none;color:var(--ink);cursor:pointer;font-size:14px;font-weight:600;line-height:1.4}.faq-q span{flex:1}.faq-chev{width:18px;height:18px;flex:none;color:var(--ink-3);transition:transform .2s}.faq-item.is-open .faq-chev{transform:rotate(180deg)}.faq-a{max-height:0;overflow:hidden;transition:max-height .28s ease}.faq-item.is-open .faq-a{max-height:360px}.faq-a p{padding:0 15px 15px;font-size:13px;color:var(--ink-2);line-height:1.8;text-wrap:pretty}.links-card{border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);overflow:hidden}.link-row{display:flex;align-items:center;gap:12px;padding:14px 15px;border-top:1px solid var(--line-2);cursor:pointer;transition:background .14s}.link-row:first-child{border-top:none}.link-row:hover{background:var(--surface-2)}.link-row__ic{flex:none;width:34px;height:34px;border-radius:9px;display:grid;place-items:center;background:var(--surface-3);color:var(--ink-2)}.link-row__ic svg{width:18px;height:18px}.link-row__t{flex:1;font-size:13.5px;font-weight:600}.link-row__arr{color:var(--ink-3)}.link-row__arr svg{width:16px;height:16px}.tabbar{position:fixed;left:50%;transform:translate(-50%);bottom:0;z-index:35;width:min(var(--maxw),100vw);display:grid;grid-template-columns:repeat(5,1fr);background:color-mix(in srgb,var(--surface) 94%,transparent);border-top:1px solid var(--line);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);padding-bottom:env(safe-area-inset-bottom)}.tab{display:flex;flex-direction:column;align-items:center;gap:3px;padding:9px 4px 8px;background:transparent;border:none;color:var(--ink-3);cursor:pointer;transition:color .15s}.tab svg{width:22px;height:22px}.tab span{font-size:10.5px;font-weight:600}.tab.is-on{color:var(--accent)}.tab:active{transform:scale(.95)}.scrim{position:fixed;inset:0;z-index:50;background:color-mix(in srgb,#000 50%,transparent);-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);opacity:0;pointer-events:none;transition:opacity .22s}.scrim.show{opacity:1;pointer-events:auto}.sheet{position:fixed;z-index:51;left:50%;bottom:0;transform:translate(-50%,100%);width:min(var(--maxw),100vw);max-height:92dvh;overflow-y:auto;background:var(--surface);border:1px solid var(--line);border-radius:22px 22px 0 0;box-shadow:var(--shadow-2);transition:transform .3s cubic-bezier(.32,.72,0,1);padding-bottom:env(safe-area-inset-bottom)}.sheet.show{transform:translate(-50%)}.sheet__grip{width:40px;height:4px;border-radius:4px;background:var(--line);margin:10px auto 0}.sheet__head{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:12px 18px 10px}.sheet__title{font-size:17px;font-weight:700}.sheet__title .en{font-family:var(--mono);font-size:9.5px;letter-spacing:.16em;text-transform:uppercase;color:var(--ink-3);margin-left:8px;font-weight:500}.sheet__body{padding:6px 18px 22px;display:flex;flex-direction:column;gap:16px}#regFields{display:flex;flex-direction:column;gap:16px;margin-top:16px}.fgroup{display:flex;flex-direction:column;gap:7px}.flabel{font-size:12px;font-weight:600;color:var(--ink-2);display:flex;align-items:center;gap:7px}.flabel .req{color:var(--accent);font-size:11px}.flabel .hint{font-weight:500;color:var(--ink-3);font-size:11px}.tin{width:100%;height:46px;padding:0 14px;border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--surface-2);color:var(--ink);font-family:inherit;font-size:15px;outline:none;transition:border-color .15s,box-shadow .15s,background .15s}.tin:focus{border-color:var(--accent);background:var(--surface);box-shadow:0 0 0 3px var(--accent-soft)}.tin::placeholder{color:var(--ink-3)}select.tin{-webkit-appearance:none;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%238c8472' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 12px center;padding-right:34px}textarea.tin{height:auto;min-height:80px;padding:11px 14px;line-height:1.6;resize:vertical}.tin--num{font-family:var(--mono);font-variant-numeric:tabular-nums;-moz-appearance:textfield}.tin--num::-webkit-outer-spin-button,.tin--num::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.frow2{display:grid;grid-template-columns:1fr 1fr;gap:12px}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;height:48px;padding:0 18px;border-radius:var(--radius-sm);border:1px solid transparent;font-size:14.5px;font-weight:700;color:var(--ink);background:transparent;cursor:pointer;white-space:nowrap;transition:background .16s,border-color .16s,color .16s,transform .1s}.btn svg{width:18px;height:18px}.btn--primary{background:var(--accent);color:var(--accent-ink)}.btn--primary:hover{background:var(--accent-deep)}.btn--primary:active{transform:translateY(1px)}.btn--indigo{background:var(--indigo);color:#fff}.btn--indigo:hover{filter:brightness(1.07)}.btn--ghost{border-color:var(--line);background:var(--surface-2);color:var(--ink-2)}.btn--ghost:hover{border-color:var(--ink-3);color:var(--ink)}.btn--danger{color:var(--danger);border-color:color-mix(in srgb,var(--danger) 40%,var(--line));background:var(--danger-soft)}.btn--danger:hover{background:var(--danger);color:#fff}.btn--block{width:100%}.btn:disabled{opacity:.45;cursor:default}.form-actions{display:flex;gap:10px}.form-actions .btn{flex:1}.seg-row{display:flex;gap:8px;width:100%}.seg{flex:1;height:42px;border-radius:10px;border:1px solid var(--line);background:var(--surface-2);color:var(--ink-2);font-size:13px;font-weight:600;cursor:pointer}.seg.is-on{border-color:var(--accent-line);background:var(--accent-soft);color:var(--accent)}.menu-pick{display:flex;flex-direction:column;gap:9px}.menu-opt{display:flex;align-items:center;gap:12px;text-align:left;cursor:pointer;padding:13px 15px;border-radius:var(--radius-sm);border:1px solid var(--indigo-line);background:var(--surface)}.menu-opt:hover{background:var(--indigo-soft)}.menu-opt__main{flex:1}.menu-opt__t{font-size:14.5px;font-weight:700}.menu-opt__s{font-size:11.5px;color:var(--ink-3);margin-top:1px}.menu-opt__c{font-family:var(--mono);font-size:13px;color:var(--indigo);font-weight:700}.scan-stage{position:relative;width:100%;border-radius:var(--radius-sm);overflow:hidden;background:#000;aspect-ratio:4/3}.scan-stage video{width:100%;height:100%;object-fit:cover;display:block}.scan-frame{position:absolute;inset:14% 16%;border:2px solid rgba(255,255,255,.7);border-radius:12px;box-shadow:0 0 0 9999px #00000047}.scan-frame:after{content:"";position:absolute;left:6%;right:6%;top:50%;height:2px;background:var(--accent);box-shadow:0 0 8px var(--accent);animation:scanline 2s ease-in-out infinite}@keyframes scanline{0%,to{top:16%}50%{top:84%}}.scan-status{font-size:12.5px;color:var(--ink-2);text-align:center;min-height:18px;line-height:1.6}.imp-help{font-size:11.5px;color:var(--ink-3);line-height:1.7}.imp-help code{font-family:var(--mono);font-size:11px;background:var(--surface-3);padding:1px 6px;border-radius:5px;color:var(--accent)}.imp-or{display:flex;align-items:center;gap:10px;color:var(--ink-3);font-size:11px}.imp-or:before,.imp-or:after{content:"";flex:1;height:1px;background:var(--line-2)}.empty{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;padding:44px 24px;text-align:center;color:var(--ink-3)}.empty__ic{width:54px;height:54px;display:grid;place-items:center;border-radius:16px;border:1px solid var(--line);background:var(--surface);color:var(--accent)}.empty__ic svg{width:26px;height:26px}.empty__t{font-size:14px;font-weight:600;color:var(--ink-2)}.empty__s{font-size:12.5px;line-height:1.7;max-width:280px;text-wrap:pretty}.toast{position:fixed;left:50%;bottom:92px;transform:translate(-50%,16px);z-index:80;display:flex;align-items:center;gap:9px;background:var(--ink);color:var(--bg);padding:11px 18px;border-radius:999px;font-size:13px;font-weight:600;box-shadow:0 16px 36px -14px #00000080;opacity:0;pointer-events:none;transition:opacity .24s,transform .24s;max-width:calc(100vw - 32px)}.toast.show{opacity:1;transform:translate(-50%)}.toast svg{width:16px;height:16px;flex:none;color:var(--accent)}.foot{text-align:center;color:var(--ink-3);font-size:11px;padding:4px 0 2px}.foot a{color:var(--ink-2)}.foot a:hover{color:var(--accent)}#reissuePrintWrap{display:none}@media print{body{background:#fff}body:before,.topbar,.tabbar,.toast,.scrim,.sheet,.detail,#tweaks-root,.screen:not(#scr-issue),#scr-issue>*:not(#cardPrintWrap){display:none!important}.app{max-width:none}#scr-issue{display:flex!important;padding:0}#cardPrintWrap{display:block!important}.print-grid{gap:8px}.qrcard{break-inside:avoid;border:1px dashed #999}body.reissue-print .app>*:not(#reissuePrintWrap){display:none!important}body.reissue-print #scr-issue{display:none!important}body.reissue-print #reissuePrintWrap{display:block!important}}@media(prefers-reduced-motion:reduce){*{transition-duration:.01ms!important;animation-duration:.01ms!important}}
