:root{--bg:#eef3f3;--surface:#fff;--surface-2:#f5f8f8;--line:#dce5e6;--ink:#122427;--ink-2:#4a5d60;--ink-3:#7f9093;--sea:#0b5f66;--sea-2:#0e7c84;--sea-soft:#e1f0f0;--crab:#e0502f;--crab-soft:#fdebe5;--good:#1e8a4c;--good-soft:#e3f4ea;--warn:#b7791f;--warn-soft:#fbf1de;--bad:#c2362b;--bad-soft:#fbe6e3;--shadow:0 1px 2px #0a282c0f,0 8px 24px #0a282c14;--f-display:"Do Hyeon","Gothic A1",system-ui,sans-serif;--f-body:"Gothic A1",system-ui,-apple-system,"Apple SD Gothic Neo","Malgun Gothic",sans-serif;--f-mono:"IBM Plex Mono",ui-monospace,Menlo,monospace}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--bg:#0a1517;--surface:#112225;--surface-2:#0d1b1d;--line:#21393c;--ink:#e6f0f0;--ink-2:#a9bdbf;--ink-3:#73898b;--sea:#3fb4b9;--sea-2:#5cc9cd;--sea-soft:#123a3d;--crab:#ff7651;--crab-soft:#3a1c14;--good:#5ccb8a;--good-soft:#123323;--warn:#e3b04f;--warn-soft:#33270f;--bad:#ff7a6e;--bad-soft:#3a1714;--shadow:0 1px 2px #0000004d,0 8px 24px #00000059;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}}:root[data-theme=dark]{--bg:#0a1517;--surface:#112225;--surface-2:#0d1b1d;--line:#21393c;--ink:#e6f0f0;--ink-2:#a9bdbf;--ink-3:#73898b;--sea:#3fb4b9;--sea-2:#5cc9cd;--sea-soft:#123a3d;--crab:#ff7651;--crab-soft:#3a1c14;--good:#5ccb8a;--good-soft:#123323;--warn:#e3b04f;--warn-soft:#33270f;--bad:#ff7a6e;--bad-soft:#3a1714;--shadow:0 1px 2px #0000004d,0 8px 24px #00000059;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}html,body{height:100%}body{background:var(--bg);color:var(--ink);font-family:var(--f-body);-webkit-font-smoothing:antialiased;word-break:keep-all;overflow-wrap:anywhere;font-size:15px;line-height:1.5}*{box-sizing:border-box}button{font:inherit;color:inherit;cursor:pointer}input,select{font:inherit;color:var(--ink)}:focus-visible{outline:2px solid var(--sea-2);outline-offset:2px}.num{font-variant-numeric:tabular-nums}.mono{font-family:var(--f-mono)}.modebar{background:var(--surface);border-bottom:1px solid var(--line);gap:4px;padding:10px 12px 8px;display:flex}.modebar button{color:var(--ink-3);background:0 0;border:0;border-radius:8px;flex:1;padding:7px 0;font-size:13px;font-weight:700}.modebar button[aria-pressed=true]{background:var(--ink);color:var(--surface)}main{scroll-behavior:smooth;flex:1;padding:0 16px 24px;overflow:hidden auto}nav.tabs{background:var(--surface);border-top:1px solid var(--line);padding:6px 4px calc(6px + env(safe-area-inset-bottom,0px));display:flex}nav.tabs button{color:var(--ink-3);background:0 0;border:0;flex-direction:column;flex:1;align-items:center;gap:2px;padding:4px 0;font-size:11px;font-weight:700;display:flex}nav.tabs button svg{width:22px;height:22px}nav.tabs button[aria-current=page]{color:var(--sea)}nav.tabs .use{position:relative}nav.tabs .use span.dot{background:var(--crab);color:#fff;border-radius:50%;place-items:center;width:46px;height:46px;margin-top:-20px;display:grid;box-shadow:0 4px 12px #e0502f59}nav.tabs .use span.dot svg{width:24px;height:24px}.top{justify-content:space-between;align-items:center;gap:10px;padding:14px 0 10px;display:flex}.top h2{font-family:var(--f-display);margin:0;font-size:24px;font-weight:400;line-height:1.1}.top .sub{color:var(--ink-3);font-size:12px}.sec{margin-top:18px}.sec-h{justify-content:space-between;align-items:baseline;margin:0 0 8px;display:flex}.sec-h h3{margin:0;font-size:16px;font-weight:800}.sec-h small{color:var(--ink-3);font-size:12px}.card{background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:14px}.list{flex-direction:column;gap:8px;display:flex}.row{align-items:center;gap:12px;min-width:0;display:flex}.row .grow{flex:1;min-width:0}.ell{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.muted{color:var(--ink-3);font-size:12px}.chip{background:var(--sea-soft);color:var(--sea);white-space:nowrap;border-radius:999px;align-items:center;gap:4px;padding:3px 8px;font-size:11px;font-weight:700;display:inline-flex}.chip.crab{background:var(--crab-soft);color:var(--crab)}.chip.good{background:var(--good-soft);color:var(--good)}.chip.warn{background:var(--warn-soft);color:var(--warn)}.chip.bad{background:var(--bad-soft);color:var(--bad)}.chip.ghost{background:var(--surface-2);color:var(--ink-2);border:1px solid var(--line)}.btn{background:var(--sea);color:#fff;border:0;border-radius:12px;justify-content:center;align-items:center;gap:6px;padding:12px 14px;font-size:15px;font-weight:800;display:inline-flex}.btn.crab{background:var(--crab)}.btn.line{background:var(--surface);color:var(--ink);border:1px solid var(--line)}.btn.sm{border-radius:9px;padding:7px 10px;font-size:13px}.btn.block{width:100%}.btn:disabled{opacity:.45;cursor:not-allowed}.grid2{grid-template-columns:1fr 1fr;gap:8px;display:grid}.grid3{grid-template-columns:repeat(3,1fr);gap:8px;display:grid}.stat{background:var(--surface);border:1px solid var(--line);border-radius:12px;min-width:0;padding:10px 12px}.stat .k{color:var(--ink-3);font-size:11px;font-weight:700}.stat .v{font-variant-numeric:tabular-nums;font-size:19px;font-weight:800;line-height:1.25}.stat .d{color:var(--ink-3);font-size:11px}.field{flex-direction:column;gap:5px;margin-bottom:10px;display:flex}.field label{color:var(--ink-2);font-size:12px;font-weight:700}.field input,.field select{border:1px solid var(--line);background:var(--surface);border-radius:10px;width:100%;padding:10px 12px}.amount-in{text-align:right;font-variant-numeric:tabular-nums;font-weight:800;font-size:24px!important}.seg{background:var(--surface-2);border:1px solid var(--line);border-radius:11px;gap:3px;padding:3px;display:flex}.seg button{color:var(--ink-2);background:0 0;border:0;border-radius:8px;flex:1;padding:8px 0;font-size:13px;font-weight:700}.seg button[aria-pressed=true]{background:var(--surface);color:var(--ink);box-shadow:0 1px 3px #0000001f}.hr{background:var(--line);height:1px;margin:10px 0}.kv{justify-content:space-between;gap:10px;padding:3px 0;font-size:14px;display:flex}.kv span:last-child{font-variant-numeric:tabular-nums;text-align:right;font-weight:700}.kv.total{padding-top:8px;font-size:17px}.kv.total span:last-child{color:var(--crab);font-size:21px}.minus{color:var(--good)}.pass{color:#fff;background:linear-gradient(140deg,#0b5f66 0%,#0e7c84 55%,#2a9a8e 100%);border-radius:18px;padding:16px;position:relative;overflow:hidden}.pass:after{content:"";pointer-events:none;border:26px solid #ffffff14;border-radius:50%;width:200px;height:200px;position:absolute;bottom:-60px;right:-40px}.pass .t{font-family:var(--f-display);font-size:26px;line-height:1}.pass .meta{opacity:.85;font-size:12px}.pass .clock{font-family:var(--f-mono);letter-spacing:.5px;font-size:22px;font-weight:600}.gauge{background:#ffffff38;border-radius:99px;height:10px;margin-top:6px;overflow:hidden}.gauge i{background:#ffd27a;border-radius:99px;height:100%;transition:width .4s;display:block}.gauge.dark{background:var(--surface-2);border:1px solid var(--line)}.gauge.dark i{background:var(--sea)}.gauge.dark i.warn{background:var(--warn)}.gauge.dark i.bad{background:var(--bad)}.cats{grid-template-columns:repeat(4,1fr);gap:8px;display:grid}.cat{border:1px solid var(--line);background:var(--surface);border-radius:12px;flex-direction:column;align-items:center;gap:4px;padding:10px 4px;font-size:12px;font-weight:700;display:flex}.cat svg{width:24px;height:24px;color:var(--sea)}.cat.hl svg{color:var(--crab)}.shop{background:var(--surface);border:1px solid var(--line);text-align:left;border-radius:14px;align-items:stretch;gap:12px;width:100%;padding:10px;display:flex}.thumb{width:72px;height:72px;font-family:var(--f-display);color:#fff;border-radius:10px;flex:none;place-items:center;font-size:26px;display:grid}.shop .grow{flex-direction:column;gap:3px;display:flex}.shop .nm{font-size:15px;font-weight:800}.benefit{color:var(--crab);font-size:14px;font-weight:800}.tags{flex-wrap:wrap;gap:4px;display:flex}.chiprow{scrollbar-width:none;gap:6px;padding-bottom:4px;display:flex;overflow-x:auto}.chiprow button{border:1px solid var(--line);background:var(--surface);white-space:nowrap;color:var(--ink-2);border-radius:999px;padding:6px 12px;font-size:13px;font-weight:700}.chiprow button[aria-pressed=true]{background:var(--ink);color:var(--surface);border-color:var(--ink)}.search{border:1px solid var(--line);background:var(--surface);border-radius:12px;align-items:center;gap:8px;padding:9px 12px;display:flex}.search input{background:0 0;border:0;outline:none;flex:1;min-width:0}.offer{border:1px dashed var(--line);background:var(--surface);border-radius:12px;align-items:center;gap:10px;padding:10px 12px;display:flex}.offer .big{font-family:var(--f-display);color:var(--crab);text-align:center;min-width:68px;font-size:22px;line-height:1}.offer.used{opacity:.5}.menuitem{border-bottom:1px solid var(--line);align-items:center;gap:10px;padding:10px 0;display:flex}.menuitem:last-child{border-bottom:0}.qty{align-items:center;gap:8px;display:flex}.qty button{border:1px solid var(--line);background:var(--surface);border-radius:8px;width:28px;height:28px;font-weight:800}.qrbox{border:1px solid var(--line);background:#fff;border-radius:16px;place-items:center;padding:16px;display:grid}.qrbox #qr{place-items:center;width:180px;height:180px;display:grid}.qrbox #qr img,.qrbox #qr canvas{width:180px!important;height:180px!important}.code{font-family:var(--f-mono);letter-spacing:6px;text-align:center;color:var(--ink);font-size:34px;font-weight:600}.ring{background:var(--line);border-radius:9px;height:4px;overflow:hidden}.ring i{background:var(--crab);height:100%;transition:width 1s linear;display:block}.pin{font-family:var(--f-mono);letter-spacing:10px;color:var(--sea);text-align:center;font-size:40px;font-weight:600}.tx{border-bottom:1px solid var(--line);align-items:center;gap:10px;padding:10px 0;display:flex}.tx:last-child{border-bottom:0}.tx .grow{flex:1;min-width:0}.grid3 .stat .v{white-space:nowrap;font-size:16px}.tx .ic{color:#fff;border-radius:10px;flex:none;place-items:center;width:34px;height:34px;font-size:13px;font-weight:800;display:grid}.amt{font-variant-numeric:tabular-nums;text-align:right;white-space:nowrap;font-weight:800}.status{border-radius:6px;padding:3px 8px;font-size:11px;font-weight:800}.steps{gap:4px;display:flex}.steps i{background:var(--line);border-radius:4px;flex:1;height:4px}.steps i.on{background:var(--sea)}table.t{border-collapse:collapse;width:100%;font-size:12.5px}table.t th{text-align:left;color:var(--ink-3);border-bottom:1px solid var(--line);white-space:nowrap;padding:6px;font-weight:700}table.t td{border-bottom:1px solid var(--line);font-variant-numeric:tabular-nums;white-space:nowrap;padding:7px 6px}table.t td.r,table.t th.r{text-align:right}.scroll-x{overflow-x:auto}.note{color:var(--ink-2);background:var(--surface-2);border:1px solid var(--line);border-radius:10px;padding:9px 11px;font-size:12px}.note b{color:var(--ink)}.bar{background:var(--surface-2);border-radius:6px;height:12px;display:flex;overflow:hidden}.bar i{height:100%;display:block}.scrim{z-index:20;background:#06141673;align-items:flex-end;display:flex;position:absolute;inset:0}.sheet{background:var(--surface);width:100%;max-height:88%;padding:8px 16px calc(18px + env(safe-area-inset-bottom,0px));border-radius:20px 20px 0 0;animation:.22s ease-out up;overflow-y:auto}.sheet .grab{background:var(--line);border-radius:4px;width:40px;height:4px;margin:4px auto 10px}.sheet h3{font-family:var(--f-display);margin:0 0 4px;font-size:24px;font-weight:400}@keyframes up{0%{opacity:.4;transform:translateY(30px)}to{opacity:1;transform:none}}@media (prefers-reduced-motion:reduce){.sheet{animation:none}.gauge i,.ring i{transition:none}}.toast{background:var(--ink);color:var(--surface);z-index:30;box-shadow:var(--shadow);border-radius:12px;padding:11px 14px;font-size:14px;font-weight:700;position:absolute;bottom:84px;left:16px;right:16px}.passopt{border:2px solid var(--line);background:var(--surface);text-align:left;border-radius:14px;align-items:center;gap:12px;width:100%;padding:12px;display:flex}.passopt[aria-pressed=true]{border-color:var(--sea);background:var(--sea-soft)}.passopt .p{font-variant-numeric:tabular-nums;font-size:17px;font-weight:800}.empty{text-align:center;color:var(--ink-3);padding:26px 10px;font-size:13px}.linkbtn{color:var(--sea);background:0 0;border:0;padding:0;font-size:13px;font-weight:700}.toggle{background:var(--line);border:0;border-radius:99px;flex:none;width:44px;height:26px;position:relative}.toggle:after{content:"";background:#fff;border-radius:50%;width:20px;height:20px;transition:left .15s;position:absolute;top:3px;left:3px}.toggle[aria-pressed=true]{background:var(--sea)}.toggle[aria-pressed=true]:after{left:21px}.hero{background:var(--surface);border:1px solid var(--line);border-radius:18px;padding:18px}.hero h2{font-family:var(--f-display);text-wrap:balance;margin:0 0 6px;font-size:30px;font-weight:400;line-height:1.1}.hero h2 em{color:var(--crab);font-style:normal}.qrc{place-items:center;width:180px;height:180px;display:grid}.qrc img,.qrc canvas{width:180px!important;height:180px!important}input[type=range]{accent-color:var(--sea);width:100%}.modebar button{font-size:12.5px}.ratebox{background:var(--crab-soft);border-radius:14px;align-items:center;gap:14px;padding:14px;display:flex}.ratebox .r{font-family:var(--f-display);color:var(--crab);font-size:44px;line-height:1}.src{flex-wrap:wrap;gap:4px;margin-top:4px;display:flex}.lock{background:var(--warn-soft);color:var(--warn);border-radius:10px;padding:9px 11px;font-size:12.5px;font-weight:700}.banner{color:#fff;text-align:left;background:#0b5f66;border:0;border-radius:14px;align-items:center;gap:12px;width:100%;padding:12px 14px;display:flex}.banner b{font-size:15px}.banner .muted{color:#fffc}.datechips{scrollbar-width:none;gap:6px;padding-bottom:4px;display:flex;overflow-x:auto}.datechips button{border:1px solid var(--line);background:var(--surface);min-width:56px;color:var(--ink-2);border-radius:12px;flex-direction:column;flex:none;align-items:center;padding:8px 10px;font-size:13px;font-weight:700;line-height:1.2;display:flex}.datechips button small{color:var(--ink-3);font-size:11px;font-weight:600}.datechips button[aria-pressed=true]{background:var(--ink);color:var(--surface);border-color:var(--ink)}.datechips button[aria-pressed=true] small{color:var(--surface)}.slots{grid-template-columns:repeat(4,1fr);gap:6px;display:grid}.slots button{border:1px solid var(--line);background:var(--surface);font-variant-numeric:tabular-nums;border-radius:10px;flex-direction:column;align-items:center;padding:8px 2px;font-size:13px;font-weight:700;line-height:1.2;display:flex}.slots button small{color:var(--good);font-size:10.5px;font-weight:700}.slots button:disabled{opacity:.4;cursor:not-allowed}.slots button:disabled small{color:var(--ink-3)}.slots button[aria-pressed=true]{border-color:var(--crab);background:var(--crab-soft)}.cpn{border:2px dashed var(--crab);text-align:center;background:var(--surface);border-radius:18px;padding:16px}.cpn .no{font-family:var(--f-mono);letter-spacing:3px;margin-top:10px;font-size:26px;font-weight:600}.cpn.used{border-color:var(--line);opacity:.6}.stamp-used{border:3px solid var(--bad);color:var(--bad);border-radius:8px;padding:4px 12px;font-size:18px;font-weight:800;display:inline-block;transform:rotate(-8deg)}.stepper{align-items:center;gap:12px;display:flex}.stepper button{border:1px solid var(--line);background:var(--surface);border-radius:10px;width:36px;height:36px;font-size:18px;font-weight:800}.stepper span{text-align:center;font-variant-numeric:tabular-nums;min-width:40px;font-size:20px;font-weight:800}.svc{border-bottom:1px solid var(--line);align-items:center;gap:10px;padding:9px 0;display:flex}.svc:last-child{border-bottom:0}.svc .dot{border-radius:50%;flex:none;width:10px;height:10px}.bell{border:1px solid var(--line);background:var(--surface);border-radius:999px;place-items:center;width:34px;height:34px;display:grid;position:relative}.bell svg{width:18px;height:18px}.bell i{background:var(--crab);color:#fff;border-radius:9px;place-items:center;min-width:16px;height:16px;padding:0 3px;font-size:10px;font-style:normal;font-weight:800;display:grid;position:absolute;top:-3px;right:-3px}.checks{flex-wrap:wrap;gap:6px;display:flex}.checks label{border:1px solid var(--line);background:var(--surface);border-radius:999px;align-items:center;gap:4px;padding:5px 10px;font-size:13px;display:flex}.stars button{color:var(--line);background:0 0;border:0;padding:0 2px;font-size:28px}.stars button[aria-pressed=true]{color:#e3a008}textarea{border:1px solid var(--line);width:100%;font:inherit;color:var(--ink);background:var(--surface);border-radius:10px;min-height:70px;padding:10px 12px}html,body{height:100%;margin:0}.app{background:var(--surface-2);flex-direction:column;max-width:480px;min-height:100%;margin:0 auto;display:flex;position:relative}@media (min-width:600px){.app{border-left:1px solid var(--line);border-right:1px solid var(--line);box-shadow:var(--shadow)}}.modebar{z-index:10;padding-top:calc(10px + env(safe-area-inset-top,0px));position:sticky;top:0}.modebar a{text-align:center;color:var(--ink-3);border-radius:8px;flex:1;padding:7px 0;font-size:12.5px;font-weight:700;text-decoration:none}.modebar a[aria-current=page]{background:var(--ink);color:var(--surface)}main{flex:1;padding:0 16px 96px}nav.tabs{z-index:10;width:100%;max-width:480px;position:fixed;bottom:0;left:50%;transform:translate(-50%)}.scrim{position:fixed}.toast{width:calc(100% - 32px);max-width:448px;left:50%;bottom:calc(84px + env(safe-area-inset-bottom,0px));position:fixed;transform:translate(-50%)}.authbox{max-width:400px;margin:40px auto;padding:0 16px}.authbox h1{font-family:var(--f-display);color:var(--sea);margin:0 0 6px;font-size:38px;font-weight:400}.err{color:var(--bad);font-size:13px;font-weight:700}.loading{text-align:center;color:var(--ink-3);padding:40px 0}video.scan{aspect-ratio:1;background:#000;border-radius:14px;width:100%}a.btn{text-decoration:none}.ratebox .r,.btn{white-space:nowrap}a.cat{color:inherit;text-decoration:none}.app.big{zoom:1.18}.btn.big{border-radius:16px;justify-content:center;align-items:center;gap:8px;min-height:56px;font-size:18px;font-weight:800;text-decoration:none;display:flex}a.btn{text-align:center;text-decoration:none}.howto{gap:6px;margin-top:14px;display:grid}.howto>div{align-items:center;gap:10px;font-size:15px;display:flex}.howto b{background:var(--crab);color:#fff;border-radius:13px;flex:none;place-items:center;width:26px;height:26px;font-size:14px;display:grid}.howto .linkbtn{justify-self:start;margin-top:4px}.payqr{background:#fff;border-radius:20px;width:max-content;margin:4px auto 0;padding:14px;box-shadow:0 2px 16px #00000014}details.alt{border:1px solid var(--line);border-radius:14px;padding:12px 14px}details.alt summary{cursor:pointer;font-size:15px;font-weight:700}.keypad{grid-template-columns:repeat(3,1fr);gap:8px;margin-top:10px;display:grid}.keypad button{border:1px solid var(--line);background:var(--surface);min-height:58px;color:inherit;border-radius:14px;font-size:24px;font-weight:700}.keypad button.wide{font-size:16px}.amtbig{text-align:center;border-bottom:2px solid var(--line);min-height:58px;padding:8px 0;font-size:36px;font-weight:800}.steps{gap:6px;margin:0 0 12px;display:flex}.steps span{text-align:center;background:var(--line);color:var(--ink-3);border-radius:10px;flex:1;padding:6px 0;font-size:13px;font-weight:700}.steps span.on{background:var(--crab);color:#fff}.presets{grid-template-columns:repeat(3,1fr);gap:8px;display:grid}.presets button{border:2px solid var(--line);background:var(--surface);min-height:64px;color:inherit;border-radius:14px;font-size:15px;font-weight:700}.presets button[aria-pressed=true]{border-color:var(--crab);color:var(--crab)}.presets button small{color:var(--ink-3);font-size:12px;font-weight:500;display:block}.guide h3{margin:18px 0 8px}.guide ol{padding-left:20px;font-size:15px;line-height:1.8}.guide details{border-bottom:1px solid var(--line);padding:10px 0}.guide summary{cursor:pointer;font-weight:700}@media print{.noprint{display:none!important}body{background:#fff}}.poster{color:#122427;background:#fff;min-height:100vh}.poster .sheet{border:1px dashed #ccd;max-width:720px;margin:0 auto 24px;padding:40px 36px}.poster .pbrand{color:#0b5f66;letter-spacing:2px;font-weight:800}.poster h1{font-family:var(--f-display);margin:6px 0;font-size:48px;font-weight:400}.poster .pbig{margin-bottom:14px;font-size:30px}.poster .pbig b{color:#e0502f;font-size:44px}.poster .psteps{padding-left:28px;font-size:22px;line-height:1.8}.poster .pqr{align-items:center;gap:20px;margin-top:18px;font-size:17px;line-height:1.6;display:flex}.poster .pfoot{color:#4a5d60;margin-top:24px;font-size:13px}.poster .staff p{font-size:17px;line-height:1.6}@media print{.poster .sheet{page-break-after:always;border:0;margin:0}}.pass .btn{z-index:1;position:relative}.paybar{margin-top:10px}.paybar .card{padding:10px 14px}.pass .clock{white-space:nowrap}.app.big .pass .clock{font-size:18px}.passopt .p{margin-left:auto}
