:root{--bg:#fff8f3;--ink:#1f2a24;--sub:#5d675f;--line:#eadfd6;--card:#fff;--accent:#e8613c;--accent-soft:#ffe9df;--ok:#1d7a4f;--ok-soft:#e3f4ea;font-family:-apple-system,BlinkMacSystemFont,"Apple SD Gothic Neo","Pretendard","Noto Sans KR",sans-serif;color:var(--ink);background:var(--bg)}
*{box-sizing:border-box}
body{margin:0;line-height:1.55;-webkit-text-size-adjust:100%}
a{color:var(--accent)}
.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
.skip-link{position:absolute;left:-999px}.skip-link:focus{left:12px;top:12px;background:#fff;padding:8px;z-index:9}
.shell{max-width:560px;margin:0 auto;padding:0 18px calc(32px + env(safe-area-inset-bottom))}
.header{display:flex;justify-content:space-between;align-items:center;padding:16px 0}
.brand img{border-radius:8px}
.brand{display:flex;gap:8px;align-items:center;font-weight:800;font-size:19px;color:var(--ink);text-decoration:none}
.header-link{font-size:14px;color:var(--sub);text-decoration:none}
.hero{padding:18px 0 8px}
.eyebrow{display:inline-block;margin:0 0 10px;padding:4px 10px;border-radius:99px;background:var(--accent-soft);color:#b8431f;font-size:13px;font-weight:700}
h1{margin:0;font-size:32px;line-height:1.22;letter-spacing:-.02em}h1 span{color:var(--accent)}
.hero-copy{color:var(--sub);margin:10px 0 18px}
.search-form{display:flex;gap:8px;background:#fff;border:1.5px solid var(--line);border-radius:16px;padding:6px}
.search-form:focus-within{border-color:var(--accent)}
.search-form input{flex:1;min-width:0;border:0;font-size:16px;padding:10px;background:transparent;outline:none}
.search-form button,.wide-button{border:0;border-radius:12px;background:var(--accent);color:#fff;font-weight:700;font-size:15px;padding:10px 16px;cursor:pointer}
.search-extras{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-top:10px;font-size:13px;color:var(--sub)}
.text-button{border:0;background:none;color:var(--accent);font-weight:700;font-size:14px;padding:4px 0;cursor:pointer}
.notice{margin:16px 0;padding:14px 16px;border-radius:14px;background:#fff3cd;color:#5b4500;font-size:14px}
.notice a{color:inherit;font-weight:700}
.controls{display:flex;gap:10px;margin:18px 0 10px}
.controls label{flex:1;display:flex;flex-direction:column;font-size:12px;color:var(--sub);gap:4px}
select,input,textarea{font:inherit;font-size:16px;border:1.5px solid var(--line);border-radius:10px;padding:9px 10px;background:#fff;color:var(--ink);width:100%}
.filter-chips{display:flex;gap:6px;flex-wrap:wrap}
.filter-chips button{border:1.5px solid var(--line);background:#fff;border-radius:99px;padding:6px 12px;font-size:14px;cursor:pointer;color:var(--ink)}
.filter-chips button[aria-pressed=true]{background:var(--ink);border-color:var(--ink);color:#fff}
#result-count{font-size:14px;color:var(--sub);margin:14px 0 8px}
.clinic,.card,.empty{background:var(--card);border:1px solid var(--line);border-radius:18px;padding:16px;margin-bottom:12px}
.clinic header{display:flex;justify-content:space-between;gap:8px}
.clinic h3{margin:0;font-size:17px}.km{font-size:13px;color:var(--sub);white-space:nowrap}
.where{margin:2px 0 8px;color:var(--sub);font-size:14px}
.price{margin:0 0 6px}.price b{font-size:22px;color:var(--accent)}.price span{display:block;font-size:13px;color:var(--sub)}
.badge{display:inline-block;font-size:12px;font-weight:700;padding:3px 8px;border-radius:8px;background:#f1ece7;color:var(--sub)}
.badge.ok{background:var(--ok-soft);color:var(--ok)}
.meta{display:flex;flex-wrap:wrap;gap:6px;list-style:none;padding:0;margin:8px 0 0;font-size:13px;color:var(--sub)}
.meta li:not(:last-child)::after{content:"·";margin-left:6px}
.empty{text-align:center;color:var(--sub)}.empty b{color:var(--ink)}
.card{margin-top:22px}.card h2{margin:0 0 8px;font-size:19px}
.card ol,.facts{padding-left:20px;margin:8px 0}.facts li,.card ol li{margin-bottom:6px}
.submit{background:var(--accent-soft);border-color:#f7cdbb}
.wide-button{width:100%;padding:13px;margin-top:6px}
.small{font-size:13px;color:var(--sub)}
.sources{padding-left:18px}
.footer{margin-top:28px;text-align:center;font-size:14px;color:var(--sub)}
dialog{border:0;border-radius:20px;padding:20px;width:min(520px,calc(100% - 24px));max-height:90vh}
dialog::backdrop{background:rgba(20,20,20,.45)}
dialog h2{margin:0 0 12px}
#submit-form label{display:block;font-size:13px;color:var(--sub);margin-bottom:10px}
#submit-form label input,#submit-form label select,#submit-form label textarea{margin-top:4px}
#submit-form .row{display:flex;gap:10px}#submit-form .row label{flex:1}
fieldset{border:0;padding:0;margin:0 0 10px;font-size:13px;color:var(--sub)}
#submit-form label.inline{display:inline-flex;align-items:center;gap:4px;margin-right:12px;color:var(--ink);font-size:15px}
#submit-form label.inline input{width:auto;margin:0}
.dialog-actions{display:flex;gap:10px;align-items:center}.dialog-actions .wide-button{flex:1;margin:0}
.header-links{display:flex;gap:12px;flex-wrap:wrap;justify-content:flex-end}
.ja{margin:2px 0 0;font-size:13px;color:var(--sub)}
.tourist-note{background:var(--ok-soft);color:var(--ok);border-radius:10px;padding:8px 10px;font-size:13px;margin:8px 0}
.meta li.good{color:var(--ok);font-weight:700}
details{margin-top:8px;font-size:14px}summary{cursor:pointer;color:var(--accent);font-weight:700}
.others{padding-left:18px;margin:6px 0}.others span{color:var(--sub);font-size:13px}
.map{margin-left:6px;font-weight:700}
.card h3{margin:20px 0 6px;font-size:16px}
.steps{padding-left:20px}.steps li{margin-bottom:8px}.steps b:first-child{display:block}
.card-form label{display:block;font-size:13px;color:var(--sub);margin-bottom:10px}
.card-form label input,.card-form label select{margin-top:4px}
.card-form .row{display:flex;gap:10px}.card-form .row label{flex:1}
.card-form label.inline{display:inline-flex;align-items:center;gap:4px;margin:0 12px 6px 0;color:var(--ink);font-size:15px}
.card-form label.inline input{width:auto;margin:0}
#card-output{margin-top:14px}
.ja-card{background:#fffdf8;border:2px solid var(--ink);border-radius:14px;padding:16px;font-size:18px;line-height:1.7;font-family:"Hiragino Sans","Hiragino Kaku Gothic ProN","Noto Sans JP",sans-serif}
.ja-card p{margin:0 0 8px}.ja-card-head{font-weight:800;font-size:15px;color:var(--accent)}
.phrases{list-style:none;padding:0;margin:0}
.phrases li{border-top:1px solid var(--line);padding:10px 0;display:flex;flex-direction:column}
.phrases b{font-size:16px;font-family:"Hiragino Sans","Noto Sans JP",sans-serif}.phrases .read{color:var(--accent);font-size:13px}.phrases span{font-size:14px;color:var(--sub)}
.legend{display:flex;gap:8px;flex-wrap:wrap;font-size:13px}.legend span{padding:3px 10px;border-radius:99px;background:#fff;border:1px solid var(--line)}
.guide-steps{list-style:none;padding:0;margin:18px 0 0}
.step{background:#fff;border:1px solid var(--line);border-radius:20px;overflow:hidden;margin-bottom:16px}
.step .art{display:block;width:100%;height:auto}
.step-body{padding:14px 16px 16px}
.step-no{margin:0;font-size:13px;font-weight:800;color:var(--accent)}.step-no span{color:var(--sub);font-weight:600}
.step h2{margin:2px 0 8px;font-size:20px}
.say{background:var(--bg);border-radius:14px;padding:10px 12px;margin-top:10px}
.say-label{margin:0 0 4px;font-size:12px;font-weight:800;color:var(--sub)}
.say .say-ja{margin:8px 0 0;font-size:18px;font-weight:700;font-family:"Hiragino Sans","Hiragino Kaku Gothic ProN","Noto Sans JP",sans-serif;line-height:1.45}
.say .say-ja:first-of-type{margin-top:0}
.say-read{color:var(--accent);font-weight:700}
.say .say-read{margin:2px 0 0;font-size:15px}
.say .say-ko{margin:0;font-size:14px;color:var(--sub)}
.legend .say-ja{font-weight:700}.legend .say-ko{color:var(--sub)}
.check{padding-left:20px;margin:6px 0}.check li{margin-bottom:6px}
.words{width:100%;border-collapse:collapse;font-size:14px;margin:8px 0}
.words th,.words td{text-align:left;padding:7px 6px;border-top:1px solid var(--line)}
.words th{font-family:"Hiragino Sans","Noto Sans JP",sans-serif;font-size:15px;white-space:nowrap}
.link-button{display:block;text-align:center;text-decoration:none;box-sizing:border-box}
.link-button.ghost{background:#fff;color:var(--accent);border:1.5px solid var(--accent);margin-top:8px}
.center{text-align:center}
.guide-banner{display:flex;gap:12px;align-items:center;background:var(--ink);color:#fff;border-radius:16px;padding:14px 16px;text-decoration:none;margin:4px 0 14px}
.guide-banner b{display:block;font-size:16px}.guide-banner span{font-size:13px;opacity:.8}.guide-banner i{margin-left:auto;font-style:normal;font-size:20px}
.app-promo{margin:18px 0;padding:16px 18px;background:#f3effb;border:1px solid #e5def3;border-radius:17px;color:#443461}
.promo-heading{display:flex;justify-content:space-between;align-items:center;gap:8px;color:#706082;font-size:11px;margin-bottom:12px}
.promo-body{display:flex;gap:13px;align-items:center}
.promo-body img{flex-shrink:0;width:56px;height:56px;border-radius:14px}
.promo-body h2{margin:0;font-size:19px;color:#49366c}
.promo-body p{margin:3px 0 0;font-size:13px;line-height:1.55;color:#706082}
.promo-links{display:grid;grid-template-columns:1fr 1fr;gap:9px;margin-top:14px}
.promo-links a{display:flex;justify-content:space-between;align-items:center;min-height:44px;padding:9px 13px;border:1px solid #d9ceeb;background:#ffffff99;border-radius:9px;font-size:13px;font-weight:650;text-decoration:none;color:#443461}
.promo-links a:hover{background:#fff}
.promo-item{list-style:none}.promo-item .app-promo{margin:0 0 16px}
.warning{margin:16px 0 0;padding:14px 16px;border-radius:14px;background:#fde8e8;border:1px solid #f5c2c2;color:#7a1f1f;font-size:14px}
.warning > b{display:block;font-size:15px;margin-bottom:4px}.warning p{margin:0}.warning a{color:inherit;font-weight:700}
.filter-chips.channel{margin-bottom:8px}
.online-note{font-size:13px;color:#3b5b8a;background:#eaf1fb;border-radius:10px;padding:8px 10px;margin:8px 0 0}
.online-box{background:#eaf1fb;border-radius:12px;padding:10px 12px;margin:8px 0;font-size:13px;color:#24406a}
.online-box p{margin:0}.online-box ul{list-style:none;padding:0;margin:6px 0}.online-box li{margin:2px 0}.online-box li b{display:inline-block;min-width:64px}
.online-box.muted{background:#f1ece7;color:var(--sub)}
.online-route{background:#fff;border:2px solid #9cb3d6;border-radius:20px;overflow:hidden;margin:4px 0 16px}
.online-route .art{display:block;width:100%;height:auto}
.warning-inline{background:#fde8e8;color:#7a1f1f;border-radius:10px;padding:10px 12px;font-size:14px}
.mini-steps{padding-left:20px}.mini-steps li{margin-bottom:8px}.mini-steps li > b:first-child{display:block}
.legal h2{font-size:17px}.legal.warn{border-color:#f5c2c2;background:#fff7f7}.legal.warn h2{color:#7a1f1f}
#submit-form label.consent{display:flex;align-items:flex-start;gap:6px;font-size:13px;margin:6px 0 4px}
.consent-panel{position:fixed;z-index:10;bottom:max(12px,env(safe-area-inset-bottom));left:50%;transform:translateX(-50%);width:calc(100% - 24px);max-width:520px;padding:16px 18px;border:1px solid var(--line);background:#fff;border-radius:15px;box-shadow:0 8px 40px #1f2a2425}
.consent-panel strong{font-size:15px}.consent-panel p{font-size:13px;color:var(--sub);margin:6px 0 12px;line-height:1.6}
.consent-actions{display:flex;gap:8px}.consent-actions button{flex:1;min-height:44px;border:1px solid var(--line);background:#fff;border-radius:10px;font-size:14px;cursor:pointer}
.consent-actions button:last-child{background:var(--accent);color:#fff;border-color:var(--accent)}
.text-button.muted{color:var(--sub);font-weight:600;font-size:13px}
.meta li.bad{color:#b42318;font-weight:700}.tourist-note.refused{background:#fde8e8;color:#7a1f1f}
.penuri-promo{margin:18px 0;padding:16px 18px;background:#eef7f1;border:1px solid #cfe5d7;border-radius:17px;color:#1f3a2c}
.penuri-promo h2{margin:0 0 4px;font-size:19px;color:#1d5a3c}.penuri-promo p{margin:4px 0;font-size:14px;line-height:1.55}
.penuri-promo .promo-heading{color:#4f7a62}.penuri-promo .promo-links a{border-color:#cfe5d7;color:#1d5a3c}
.penuri-promo .small{color:#4f7a62;margin-top:10px}
.chain-note{font-size:12px;color:#5b4500;background:#fff3cd;border-radius:8px;padding:4px 8px;display:inline-block;margin:0 0 4px}
.price em.krw{font-style:normal;font-size:14px;color:var(--ink);font-weight:700;margin-left:2px}
.compare{font-size:13px;font-weight:700;margin:2px 0 6px}.compare.cheaper{color:#1d7a4f}.compare.pricier{color:#b42318}
.compare-banner{margin:14px 0 0;padding:14px 16px;border-radius:14px;background:#fff;border:1px solid var(--line);font-size:14px}
.compare-banner .rows{display:grid;grid-template-columns:1fr auto;gap:4px 12px;margin:8px 0}
.compare-banner .rows b{text-align:right}.compare-banner .jp{color:var(--accent)}
.hero-note{margin:12px 0 0;padding:10px 12px;border-radius:12px;background:#fff3cd;color:#5b4500;font-size:13px;line-height:1.5}.hero-note a{color:inherit;font-weight:700}
.not-official{margin:6px 0 0;font-size:12px;color:var(--sub)}
.results-toolbar{display:flex;justify-content:space-between;align-items:center;gap:8px}.results-toolbar #result-count{margin:14px 0 8px}
.share-panel{background:#fff;border:1px solid var(--line);border-radius:12px;padding:10px;margin:6px 0 10px}.share-panel textarea{margin-top:6px;font-size:14px}
.notes .note{border-top:1px solid var(--line);padding:10px 0}.notes .note:first-child{border-top:0}
.note p{margin:4px 0}.note ul{padding-left:18px;margin:4px 0;font-size:14px}.note-head{font-size:13px;color:var(--sub)}
.note.caution{background:#fff7f7;border-radius:12px;padding:10px 12px;border-top:0;margin:6px 0}
.note-tip{font-size:13px;background:#eaf1fb;color:#24406a;border-radius:10px;padding:6px 10px}
.card-notes .note{border-top:1px solid var(--line);padding:8px 0}
.quick-links{margin:8px 0 0;font-size:13px;font-weight:700}.quick-links a{color:var(--accent)}
.finder-tabs{display:grid;grid-template-columns:1fr 1fr;gap:6px;margin:18px 0 4px;background:#f1ece7;border-radius:14px;padding:4px}
.finder-tabs button{border:0;border-radius:11px;padding:10px 8px;font-size:14px;font-weight:700;background:transparent;color:var(--sub);cursor:pointer}
.finder-tabs button[aria-selected=true]{background:#fff;color:var(--ink);box-shadow:0 1px 3px #0001}
.finder-tabs span{color:var(--accent);margin-left:2px}
#notes-tab .note{background:#fff;border:1px solid var(--line);border-radius:14px;padding:12px 14px;margin:8px 0}
#notes-tab .note.caution{background:#fff7f7;border-color:#f5c2c2}
.toolbar-actions{display:flex;align-items:center;gap:10px}
.view-toggle{display:inline-flex;background:#f1ece7;border-radius:10px;padding:3px}
.view-toggle button{border:0;background:transparent;border-radius:8px;padding:5px 10px;font-size:13px;font-weight:700;color:var(--sub);cursor:pointer}
.view-toggle button[aria-pressed=true]{background:#fff;color:var(--ink);box-shadow:0 1px 3px #0001}
.map-box{height:min(62vh,520px);border-radius:16px;border:1px solid var(--line);overflow:hidden;background:#eef2f0;z-index:0}
.map-legend{display:flex;flex-wrap:wrap;gap:4px 10px;align-items:center;margin:8px 0 0}.map-legend .dot{display:inline-block;width:10px;height:10px;border-radius:50%;margin-right:3px;vertical-align:-1px}
.map-pop{font-size:13px;line-height:1.5}.map-pop .pp{color:var(--accent);font-size:15px}.map-pop .bad{color:#b42318;font-weight:700}
.hero-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:10px}
.pill-button{border:1.5px solid var(--line);background:#fff;color:var(--ink);border-radius:12px;padding:11px 10px;font-size:15px;font-weight:800;cursor:pointer}
.pill-button.map{background:var(--ink);border-color:var(--ink);color:#fff}
.search-extras:empty,.search-extras:has(#nearby[hidden]):not(:has(#location-status:not(:empty))){margin:0}
.inline-promo{margin:4px 0 12px}.inline-promo .promo-title{margin:0;font-size:16px;color:#49366c;line-height:1.35}
/* 외국인 처방·예약 상태 줄 */
.status-row{display:flex;flex-wrap:wrap;gap:6px;list-style:none;padding:0;margin:8px 0 4px;font-size:12.5px}
.status-row .st{border-radius:999px;padding:3px 9px;background:#eef1ee;color:#3d4a42;line-height:1.4}
.status-row .st b{font-weight:800}.status-row .st span{font-weight:400;opacity:.85}
.status-row .st.good{background:#e3f3ea;color:#1d6b45}
.status-row .st.bad{background:#fde8e8;color:#9a1c1c}
.status-row .st.mid{background:#fff3dc;color:#8a5300}
.status-row .st.unk{background:#f1f1ef;color:#5d625e;border:1px dashed #b9bdb8}
.status-row .st.warn{background:#fff0e6;color:#a1440f}
.status-row .st.lang{background:#e8f0fd;color:#24508f}
.book-line{display:flex;flex-wrap:wrap;align-items:center;gap:8px 12px;margin:6px 0}
.book-btn{display:inline-block;padding:7px 12px;border-radius:10px;background:var(--ink,#1f2a24);color:#fff;font-weight:700;font-size:13.5px;text-decoration:none}
.book-btn.line{background:#06c755}.book-btn.phone{background:#eef1ee;color:#3d4a42}
.book-tip{font-size:13px}
.booking-note{margin-top:2px}
.copy-lines{list-style:none;padding:0;margin:8px 0;display:grid;gap:8px}
.copy-line{display:block;width:100%;text-align:left;background:#fff;border:1px solid #dfe3df;border-radius:12px;padding:10px 12px;font:inherit;cursor:pointer}
.copy-line span{display:block;font-weight:600}.copy-line small{display:block;color:var(--sub);margin-top:3px}
.copy-line.inline{display:inline;padding:4px 8px;width:auto}
.form-tips{display:grid;grid-template-columns:auto 1fr;gap:6px 12px;font-size:14px;margin:10px 0}
.form-tips dt{font-weight:700}.form-tips dd{margin:0}
@media (max-width:520px){.form-tips{grid-template-columns:1fr}.form-tips dd{margin-bottom:6px}}
