:root{
  --paper:#f7f7f5; --sheet:#fff; --ink:#141519; --dim:#63666e; --faint:#9a9da4;
  --rule:#e1e2e5; --hair:#ededee; --seal:#0d7d74; --seal-bg:#e8f4f2; --warn:#b45309;
  --sans:"IBM Plex Sans KR",-apple-system,BlinkMacSystemFont,"Apple SD Gothic Neo",system-ui,sans-serif;
  --mono:"IBM Plex Mono",ui-monospace,SFMono-Regular,Menlo,monospace;
}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]){
  --paper:#0f1012; --sheet:#191b1e; --ink:#e8eaec; --dim:#8b8f97; --faint:#5c6068;
  --rule:#282b30; --hair:#1f2226; --seal:#3bb3a6; --seal-bg:#12211f; --warn:#d97706;}}
:root[data-theme="dark"]{
  --paper:#0f1012; --sheet:#191b1e; --ink:#e8eaec; --dim:#8b8f97; --faint:#5c6068;
  --rule:#282b30; --hair:#1f2226; --seal:#3bb3a6; --seal-bg:#12211f; --warn:#d97706;}
*{box-sizing:border-box}
body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--sans);
  font-size:16px;line-height:1.6;font-feature-settings:"tnum" 1;-webkit-font-smoothing:antialiased}
.wrap{max-width:900px;margin:0 auto;padding-left:20px;padding-right:20px;padding-block:clamp(36px,6vw,64px)}
.grid{display:grid;grid-template-columns:1fr 328px;gap:44px;align-items:start}
@media(max-width:800px){.grid{grid-template-columns:1fr;gap:30px}}

h1{font-size:clamp(27px,4.6vw,40px);line-height:1.16;letter-spacing:-.032em;font-weight:700;
  margin:0 0 15px;text-wrap:balance}
h1 u{text-decoration:underline;text-decoration-thickness:3px;text-underline-offset:6px;
  text-decoration-color:var(--seal-bg);color:var(--seal)}
.lede{font-size:15.5px;color:var(--dim);margin:0 0 26px;max-width:44ch}
.lede b{color:var(--ink);font-weight:600}

/* ── 영수증 ── */
.rail{position:sticky;top:24px}
.rcpt{background:var(--sheet);padding:20px 18px 0;font-family:var(--mono);font-size:12px;
  position:relative;box-shadow:0 12px 34px -16px rgba(0,0,0,.34);
  background-image:repeating-linear-gradient(0deg,transparent 0 3px,rgba(128,128,128,.045) 3px 4px)}
.rcpt::before,.rcpt::after{content:"";position:absolute;left:0;right:0;height:9px}
.rcpt::before{top:-9px;background:repeating-linear-gradient(-135deg,var(--sheet) 0 6px,transparent 6px 12px)}
.rcpt::after{bottom:-9px;background:repeating-linear-gradient(-45deg,var(--sheet) 0 6px,transparent 6px 12px)}
.rcpt h3{font-family:var(--sans);font-size:13px;font-weight:700;text-align:center;
  letter-spacing:.42em;text-indent:.42em;margin:0 0 3px}
.rcpt .sub{text-align:center;color:var(--faint);font-size:9.5px;margin:0 0 13px;letter-spacing:.04em}
.rcpt hr{border:0;border-top:1px dashed var(--rule);margin:10px 0}
.grp{font-size:9.5px;color:var(--faint);letter-spacing:.1em;margin:9px 0 3px}
.rl{display:grid;grid-template-columns:1fr auto;gap:10px;padding:1.5px 0;animation:print .3s ease both}
.rl em{font-style:normal;color:var(--faint)}
.rl .over{color:var(--warn)}
@keyframes print{from{opacity:0;transform:translateY(-5px)}}
.rtot{display:grid;grid-template-columns:1fr auto;gap:10px;padding:9px 0 19px;
  border-top:2px solid var(--ink);margin-top:9px;font-weight:600;font-size:12.5px}
.rtot .q{color:var(--seal)}
.caret{display:inline-block;width:5px;height:11px;background:currentColor;vertical-align:-1px;
  animation:blink 1.1s steps(2) infinite}
@keyframes blink{50%{opacity:0}}
.empty{color:var(--faint);text-align:center;padding:16px 0 26px;font-size:10.5px;line-height:1.9}

/* ── 추천 ── */
.ask{border:1px solid var(--rule);border-radius:3px;padding:18px 18px 16px;margin:0 0 22px;
  background:var(--sheet)}
.ask h2{font-size:13px;font-weight:700;margin:0 0 2px}
.ask>p{font-size:12px;color:var(--faint);margin:0 0 16px}
.q{margin:0 0 14px}
.q b{display:block;font-size:12.5px;color:var(--dim);font-weight:500;margin:0 0 7px}
.q .chips{gap:5px}
.q .chip{border-radius:3px;padding:6px 11px}
.ask .act{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin-top:16px;
  padding-top:14px;border-top:1px dashed var(--rule)}
.rec{flex:1;padding:12px 14px;font-size:14px;font-weight:700;font-family:inherit;
  background:var(--ink);color:var(--paper);border:0;border-radius:2px;cursor:pointer;min-width:160px}
.rec:disabled{background:var(--rule);color:var(--faint);cursor:not-allowed}
.manual{font-size:12px;color:var(--dim);background:none;border:0;cursor:pointer;
  text-decoration:underline;text-underline-offset:3px;font-family:inherit}
.why{font-size:11.5px;color:var(--faint);margin:12px 0 0;line-height:1.65;display:none}
.why.on{display:block}
.why b{color:var(--seal);font-weight:500}
.folded{display:none}.folded.open{display:block}

/* ── 칩 ── */
.pick{margin:0 0 26px}
.pick h2{font-size:12.5px;font-weight:600;margin:0 0 3px}
.pick p{font-size:12px;color:var(--faint);margin:0 0 12px}
.cat{margin:0 0 12px}
.cat b{display:block;font-family:var(--mono);font-size:9.5px;letter-spacing:.09em;
  color:var(--faint);margin:0 0 6px}
.chips{display:flex;gap:5px;flex-wrap:wrap}
.chip{font-size:12.5px;padding:5px 11px;border:1px solid var(--rule);background:transparent;
  color:var(--dim);border-radius:14px;cursor:pointer;font-family:inherit;transition:.1s;line-height:1.5}
.chip:hover{border-color:var(--seal);color:var(--seal)}
.chip[aria-pressed="true"]{background:var(--seal);border-color:var(--seal);color:#fff;font-weight:500}
.chip.kr::after{content:"·KR";font-family:var(--mono);font-size:9px;opacity:.55;margin-left:3px}

/* ── 슬라이더 ── */
.use{margin:26px 0 0}
.use>h2{font-size:12.5px;font-weight:600;margin:0 0 3px}
.use>p{font-size:12px;color:var(--faint);margin:0 0 16px}
.sl{margin:0 0 18px;opacity:.42;transition:opacity .18s}
.sl.on{opacity:1}
.sl-h{display:flex;justify-content:space-between;align-items:baseline;gap:10px;margin:0 0 4px}
.sl-h label{font-size:12.5px;color:var(--dim);flex:1 1 auto;min-width:0}
.val{font-family:var(--mono);font-size:14px;font-weight:500;background:none;border:0;
  color:var(--ink);text-align:right;padding:1px 3px;border-bottom:1px dashed transparent;
  flex:0 1 130px;min-width:0;width:auto;cursor:text}
.val:hover{border-bottom-color:var(--rule)}
.val:focus{outline:0;border-bottom-color:var(--seal)}
.val.zero{color:var(--faint)}
input[type=range]{-webkit-appearance:none;appearance:none;width:100%;height:18px;margin:0;background:none;cursor:pointer}
input[type=range]::-webkit-slider-runnable-track{height:3px;background:var(--rule);border-radius:2px}
input[type=range]::-moz-range-track{height:3px;background:var(--rule);border-radius:2px}
input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;width:15px;height:15px;
  background:var(--ink);border-radius:50%;margin-top:-6px;border:3px solid var(--paper);
  box-shadow:0 0 0 1px var(--ink)}
input[type=range]::-moz-range-thumb{width:15px;height:15px;background:var(--ink);border-radius:50%;
  border:3px solid var(--paper);box-shadow:0 0 0 1px var(--ink)}
input[type=range]:focus-visible{outline:2px solid var(--seal);outline-offset:4px}
.ticks{display:flex;justify-content:space-between;font-family:var(--mono);font-size:9.5px;
  color:var(--faint);margin-top:1px}
.quota{font-family:var(--mono);font-size:10px;color:var(--faint);margin-top:5px}
.quota.over{color:var(--warn)}

/* ── 제출 ── */
.send{margin:30px 0 0;padding-top:22px;border-top:1px dashed var(--rule)}
.send label{display:block;font-size:12.5px;color:var(--dim);margin:0 0 4px}
.send input{width:100%;padding:8px 0;font-size:16px;font-family:inherit;color:var(--ink);
  background:transparent;border:0;border-bottom:1px solid var(--rule)}
.send input::placeholder{color:var(--faint)}
.send input:focus{outline:0;border-bottom-color:var(--seal)}
.go{width:100%;margin-top:18px;padding:15px;font-size:15.5px;font-weight:700;font-family:inherit;
  background:var(--seal);color:#fff;border:0;border-radius:2px;cursor:pointer}
.go:hover{opacity:.92}
.go:disabled{background:var(--rule);color:var(--faint);cursor:not-allowed}
.excl{display:flex;flex-wrap:wrap;gap:4px 18px;margin:20px 0 0;font-size:12px;color:var(--faint)}
.excl span::before{content:"· ";color:var(--rule)}
@media (prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}

/* ── 공통 페이지(지원·방침) ── */
.page{max-width:720px;margin:0 auto;padding-left:20px;padding-right:20px;padding-block:clamp(36px,6vw,64px)}
.brand{display:inline-block;font-family:var(--sans);font-size:13px;font-weight:700;
  letter-spacing:.42em;text-indent:.42em;color:var(--ink);text-decoration:none;margin:0 0 4px}
.crumb{font-family:var(--mono);font-size:11px;color:var(--faint);margin:0 0 28px}
.crumb a{color:var(--dim)}
.page h1{font-size:clamp(23px,3.6vw,30px);margin:0 0 8px}
.page .upd{font-family:var(--mono);font-size:11px;color:var(--faint);margin:0 0 30px}
.page h2{font-size:15px;font-weight:700;margin:32px 0 10px;padding-bottom:7px;border-bottom:1px solid var(--rule)}
.page p,.page li{font-size:14.5px;color:var(--dim)}
.page li{margin:0 0 5px}
.page b{color:var(--ink)}
.page table{width:100%;border-collapse:collapse;font-size:13.5px;margin:12px 0}
.page th,.page td{text-align:left;padding:8px 10px;border-bottom:1px dashed var(--hair);vertical-align:top}
.page th{font-size:11.5px;color:var(--faint);font-weight:500;white-space:nowrap}
details{border-bottom:1px dashed var(--hair);padding:12px 0}
summary{cursor:pointer;font-size:14.5px;font-weight:500;list-style:none}
summary::-webkit-details-marker{display:none}
summary::before{content:"+ ";font-family:var(--mono);color:var(--seal)}
details[open] summary::before{content:"− "}
details p{margin:10px 0 0;font-size:14px}
.support-form{margin:26px 0 0;border-top:1px dashed var(--rule);padding-top:22px}
.support-form label{display:block;font-size:12.5px;color:var(--dim);margin:0 0 16px}
.support-form select,.support-form input,.support-form textarea{
  width:100%;margin-top:5px;padding:8px 0;font-size:15.5px;font-family:inherit;color:var(--ink);
  background:transparent;border:0;border-bottom:1px solid var(--rule);border-radius:0}
.support-form select:focus,.support-form input:focus,.support-form textarea:focus{
  outline:0;border-bottom-color:var(--seal)}
.support-form textarea{resize:vertical;line-height:1.6}
.support-form button{width:100%;padding:14px;font-size:15px;font-weight:700;font-family:inherit;
  background:var(--seal);color:#fff;border:0;border-radius:2px;cursor:pointer}
.form-note{font-size:11.5px;color:var(--faint);margin:12px 0 0;line-height:1.65}
#form-status{font-family:var(--mono);font-size:12px;margin:12px 0 0;min-height:18px}
.foot{margin:48px 0 0;padding-top:20px;border-top:1px dashed var(--hair);
  font-family:var(--mono);font-size:10.5px;color:var(--faint);letter-spacing:.04em}
.foot a{color:var(--dim)}
