@import url("https://cdn.jsdelivr.net/gh/orioncactus/pretendard@v1.3.9/dist/web/variable/pretendardvariable-dynamic-subset.min.css");
/* 제주무브 앱 스타일 · 기획/디자인/01_현재버전/공통.css 를 실제 화면용으로 옮긴 것.
   어두운 화면 = 현장(홈·코스·여행 중), 밝은 화면 = 문서(조건·상세·설정). */
:root{color-scheme:dark;
--bg:#0f1312;--bg-deep:#070b0a;--bg-raised:#1a201e;--bg-raised-2:#242b29;
--ink:#111716;--ink-2:#5f6a66;--ink-3:#8b9490;
--paper:#f1efe8;--paper-2:#fbfaf6;--white:#fff;
--muted:#9aa4a0;--muted-2:#6f7975;
--line:rgba(255,255,255,.14);--line-strong:rgba(255,255,255,.26);--dark-line:rgba(17,23,22,.12);
--accent:#ffd15b;--accent-ink:#1a1a17;--coral:#ff7659;--green:#27b597;--blue:#45a8ff;--warn:#ffc24a;--bad:#ff5a3c;
--ok-bg:#e2f4ef;--ok-ink:#0f6d59;--warn-bg:#fdf1d4;--warn-ink:#8a6b17;--bad-bg:#fbe4dd;--bad-ink:#b23f22;--off-bg:#eceee9;--off-ink:#828c88;--mid-bg:#e3eefb;--mid-ink:#2b5f8f;
--shadow:0 30px 90px rgba(0,0,0,.42);--shadow-sm:0 8px 24px rgba(0,0,0,.28);
--r-sm:10px;--r:14px;--r-lg:18px;--r-xl:26px;
--font:"Pretendard Variable","Pretendard","Noto Sans KR","Apple SD Gothic Neo","Malgun Gothic",-apple-system,"Segoe UI Symbol","Segoe UI Emoji",sans-serif;
--mono:"SF Mono","Roboto Mono","Consolas","Menlo",monospace}
*{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{margin:0;background:#0b0e0d;color:white;font-family:var(--font);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
button,a,input,select{color:inherit;font:inherit}button{cursor:pointer;-webkit-tap-highlight-color:transparent}button:focus-visible,a:focus-visible,input:focus-visible{outline:3px solid var(--accent);outline-offset:3px}img{display:block;max-width:100%}a{text-decoration:none}
.num,.mono{font-family:var(--mono);font-variant-numeric:tabular-nums}
.app{position:relative;width:100%;max-width:480px;min-height:100dvh;margin:0 auto;background:var(--bg);overflow-x:clip}
@media(min-width:521px){body{background:radial-gradient(circle at 78% 30%,#26302d,#111 48%)}.app{box-shadow:var(--shadow)}}
.screen{position:relative;min-height:100dvh}
.paper{background:var(--paper);color:var(--ink)}

/* ── 상단 바 ── */
.appbar{position:sticky;top:0;z-index:20;display:flex;align-items:center;gap:10px;padding:calc(10px + env(safe-area-inset-top)) 15px 10px;background:rgba(15,19,18,.9);backdrop-filter:blur(14px)}.paper .appbar{background:rgba(251,250,246,.93);border-bottom:1px solid var(--dark-line)}.appbar>div{flex:1;min-width:0}.appbar h1{margin:0;font-size:20px;letter-spacing:-.04em;line-height:1.15}.appbar small{display:block;margin-bottom:2px;color:var(--accent);font-size:10px;font-weight:900;letter-spacing:.12em}.paper .appbar small{color:#a3792c}
.icon{display:grid;flex:0 0 auto;width:42px;height:42px;place-items:center;border:1px solid var(--line);border-radius:var(--r);background:rgba(0,0,0,.32);color:white;font-size:16px;backdrop-filter:blur(12px)}.paper .icon{border-color:var(--dark-line);background:white;color:var(--ink)}
.btn{display:inline-grid;min-height:46px;padding:0 16px;place-items:center;border:0;border-radius:var(--r);background:var(--coral);color:white;font-size:13px;font-weight:900;letter-spacing:-.01em;text-align:center;transition:.14s ease}.btn:active{transform:scale(.98)}.btn.secondary{border:1px solid var(--dark-line);background:white;color:var(--ink)}.btn.ghost{border:1px solid var(--line);background:rgba(255,255,255,.08);color:white}.btn.accent{background:var(--accent);color:var(--accent-ink)}.btn.block{display:grid;width:100%}.btn:disabled{opacity:.45;cursor:not-allowed}
.pill{display:inline-flex;min-height:30px;align-items:center;gap:5px;padding:0 10px;border:1px solid var(--line);border-radius:999px;background:rgba(0,0,0,.28);color:white;font-size:11px;font-weight:800;backdrop-filter:blur(10px)}
.dot{display:inline-grid;grid-auto-flow:column;align-items:center;gap:5px;padding:4px 9px;border-radius:999px;font-size:11px;font-weight:900;white-space:nowrap}.dot i{width:6px;height:6px;border-radius:50%;background:currentColor}.dot.ok{background:var(--ok-bg);color:var(--ok-ink)}.dot.mid{background:var(--mid-bg);color:var(--mid-ink)}.dot.warn{background:var(--warn-bg);color:var(--warn-ink)}.dot.bad{background:var(--bad-bg);color:var(--bad-ink)}.dot.off{background:var(--off-bg);color:var(--off-ink)}.on-dark.dot.ok{background:rgba(39,181,151,.18);color:#5fd9bd}.on-dark.dot.mid{background:rgba(69,168,255,.18);color:#8fc6ff}.on-dark.dot.warn{background:rgba(255,194,74,.18);color:#ffd27a}.on-dark.dot.bad{background:rgba(255,90,60,.2);color:#ff9d88}.on-dark.dot.off{background:rgba(255,255,255,.1);color:#a7b0ad}
.wip{display:inline-block;margin-left:5px;padding:2px 6px;border-radius:5px;background:#fff0cf;color:#8a6b17;font-size:10px;font-weight:900;vertical-align:middle}.on-dark.wip{background:rgba(255,209,91,.16);color:var(--accent)}

/* ── 시트 · 토스트 ── */
.sheet{position:fixed;z-index:80;bottom:0;left:50%;width:100%;max-width:480px;max-height:88dvh;overflow-y:auto;padding:10px 16px calc(24px + env(safe-area-inset-bottom));border-radius:var(--r-xl) var(--r-xl) 0 0;background:rgba(247,244,237,.98);color:var(--ink);box-shadow:0 -18px 50px rgba(0,0,0,.35);backdrop-filter:blur(18px);transform:translate(-50%,110%);transition:.22s ease;scrollbar-width:none}.sheet::-webkit-scrollbar{display:none}.sheet.open{transform:translate(-50%,0)}.sheet-grab{width:42px;height:4px;margin:0 auto 14px;border-radius:999px;background:#b6bbb7}.sheet h3{margin:0 0 6px;font-size:19px;letter-spacing:-.03em}.sheet p{margin:0;color:#6c7672;font-size:13px;line-height:1.55}.sheet-actions{display:grid;grid-template-columns:1fr 1fr;gap:7px;margin-top:14px}.sheet-menu{display:grid;gap:7px;margin-top:12px}.sheet-menu button,.sheet-menu a{display:flex;align-items:center;justify-content:space-between;min-height:48px;padding:0 13px;border:1px solid var(--dark-line);border-radius:var(--r);background:white;color:var(--ink);font-size:13px;font-weight:800}.sheet-menu em{color:#8b938f;font-size:12px;font-style:normal}
.backdrop{position:fixed;z-index:70;inset:0;background:rgba(0,0,0,.35);opacity:0;pointer-events:none;transition:.2s ease}.backdrop.show{opacity:1;pointer-events:auto}
.toast{position:fixed;z-index:300;bottom:24px;left:50%;width:calc(100% - 32px);max-width:440px;padding:14px 17px;border-radius:var(--r);background:white;color:var(--ink);box-shadow:var(--shadow);font-size:14px;font-weight:800;line-height:1.4;opacity:0;pointer-events:none;transform:translate(-50%,10px);transition:.18s ease}.toast.show{opacity:1;transform:translate(-50%,0)}

/* ── 밝은 문서 화면 부품 ── */
.grp{margin-top:16px}.grp>h3{margin:0;padding:0 18px 8px;color:#8b948f;font-size:11px;font-weight:900;letter-spacing:.12em}.card{margin:0 12px;overflow:hidden;border:1px solid var(--dark-line);border-radius:var(--r-lg);background:white}
.row{display:flex;align-items:center;justify-content:space-between;gap:12px;width:100%;min-height:58px;padding:12px 14px;border:0;border-bottom:1px solid var(--dark-line);background:white;color:var(--ink);text-align:left}.row:last-child{border-bottom:0}.row b{display:block;font-size:14px;font-weight:800;letter-spacing:-.01em}.row small{display:block;margin-top:3px;color:#727c78;font-size:12px;line-height:1.45}.row em{flex:0 0 auto;color:#8d9793;font-size:12px;font-style:normal;font-weight:800}.row .arrow{color:#a8b1ac;font-size:15px}.row.danger{color:#c2502c}
.switch{position:relative;flex:0 0 auto;width:46px;height:28px;border:0;border-radius:999px;background:#cfd4d0;transition:.16s ease;-webkit-appearance:none;appearance:none;margin:0;cursor:pointer}.switch::after{position:absolute;top:3px;left:3px;width:22px;height:22px;border-radius:50%;background:white;box-shadow:0 2px 5px rgba(0,0,0,.22);content:"";transition:.16s ease}.switch:checked,.switch.active{background:var(--green)}.switch:checked::after,.switch.active::after{transform:translateX(18px)}
.chips{display:flex;flex-wrap:wrap;gap:6px;padding:12px 14px;border-bottom:1px solid var(--dark-line);background:#fcfcfa}.chips:last-child{border-bottom:0}.chip{display:inline-flex;align-items:center;min-height:34px;padding:0 12px;border:1px solid #ccd2cd;border-radius:999px;background:white;color:#5b6560;font-size:12px;font-weight:800;cursor:pointer;transition:.14s ease;user-select:none}.chip input{position:absolute;opacity:0;width:0;height:0}.chip:has(input:checked),.chip.active{border-color:var(--green);background:#e4f3ef;color:#0f6d59}.chip.fixed{border-color:#111716;background:#111716;color:white}.chip.disabled,.chip:has(input:disabled){border-style:dashed;color:#a0a8a4;cursor:not-allowed}.chip em{margin-left:4px;font-size:10px;font-style:normal;color:#b09a5a}
.seg{display:grid;grid-template-columns:repeat(3,1fr);gap:4px;margin:0 14px 12px;padding:4px;border-radius:12px;background:#eceee9}.seg label,.seg button{display:grid;min-height:38px;place-items:center;border:0;border-radius:9px;background:transparent;color:#6c7671;font-size:12px;font-weight:900;cursor:pointer;position:relative}.seg input{position:absolute;opacity:0;width:0;height:0}.seg label:has(input:checked),.seg button.active{background:white;color:var(--ink);box-shadow:0 1px 4px rgba(0,0,0,.1)}
.lbl{padding:12px 14px 6px;font-size:13px;font-weight:800}.lbl span{color:#8d9793;font-weight:700}
.foot{padding:16px 18px 44px;color:#8d968f;font-size:11px;line-height:1.7;text-align:center}
.intro{margin:12px;padding:14px;border:1px solid #d7ceb4;border-radius:var(--r-lg);background:#fdf7e6}.intro b{display:block;font-size:14px}.intro p{margin:6px 0 0;color:#6d6549;font-size:12px;line-height:1.6}
.cta-bar{position:sticky;bottom:calc(9px + env(safe-area-inset-bottom));z-index:40;display:grid;grid-template-columns:1fr 1.6fr;gap:6px;margin:16px 10px 10px;padding:7px;border:1px solid var(--line);border-radius:17px;background:rgba(10,14,13,.92);backdrop-filter:blur(16px)}.paper .cta-bar{border-color:var(--dark-line);background:rgba(251,250,246,.96);box-shadow:0 -8px 30px rgba(17,23,22,.12)}.cta-bar .btn{min-height:48px}.cta-bar .btn.ghost{background:#222826;border:0;color:#a7b0ad}.cta-bar.one{grid-template-columns:1fr}

/* ── 지도 ── */
.leaflet-container{font-family:var(--font);background:#101a18}.leaflet-control-attribution{font-size:9px!important;background:rgba(0,0,0,.45)!important;color:#8d9793!important}.leaflet-control-attribution a{color:#a7b0ad!important}.paper .leaflet-control-attribution{background:rgba(255,255,255,.7)!important;color:#6e7874!important}
.map-wrap{position:relative;margin:12px 12px 0;overflow:hidden;border:1px solid var(--line);border-radius:var(--r-lg);background:#0f1a18}.paper .map-wrap{border-color:var(--dark-line);background:#e8ece9}.course-map{height:210px}.map-fallback{display:grid;height:210px;place-items:center;padding:20px;color:#8d9793;font-size:12px;text-align:center;line-height:1.5}.map-tag{position:absolute;z-index:500;top:10px;left:11px;display:flex;gap:5px}.map-tag span{padding:4px 8px;border-radius:6px;background:rgba(0,0,0,.55);color:#c9d1ce;font-size:10px;font-weight:900;backdrop-filter:blur(8px)}.map-tag span.k{color:var(--accent)}.paper .map-tag span{background:rgba(255,255,255,.9);color:#3d4a45}
.jm-pin{display:grid;width:26px;height:26px;place-items:center;border:2px solid white;border-radius:50%;background:#2b3833;color:white;font-family:var(--mono);font-size:11px;font-weight:900;box-shadow:0 2px 8px rgba(0,0,0,.45)}.jm-pin.done{background:#3a4a43;border-color:var(--accent);color:var(--accent)}.jm-pin.now{background:var(--accent);border-color:white;color:var(--accent-ink);transform:scale(1.2)}.jm-pin.home{background:var(--coral);border-radius:8px}.jm-pin.stop{background:var(--blue);border-radius:6px;width:22px;height:22px;font-size:9px}

/* ── 코스 카드 (추천·상세 공용) ── */
.cond{display:flex;gap:5px;margin:0 12px;padding-bottom:2px;overflow-x:auto;scrollbar-width:none}.cond::-webkit-scrollbar{display:none}.cond span{flex:0 0 auto;padding:6px 10px;border:1px solid var(--line);border-radius:999px;background:rgba(255,255,255,.05);color:#b5bdb9;font-size:11px;font-weight:800}.cond a{flex:0 0 auto;padding:6px 11px;border-radius:999px;background:var(--accent);color:var(--accent-ink);font-size:11px;font-weight:900}
.fresh{display:flex;align-items:center;gap:6px;margin:9px 15px 0;color:#7f8985;font-size:11px}.fresh i{flex:0 0 auto;width:5px;height:5px;border-radius:50%;background:#5fd9bd;font-style:normal}
.tags{display:flex;flex-wrap:wrap;gap:5px;margin-top:10px}
.strip{display:flex;gap:4px;margin-top:11px;overflow-x:auto;scrollbar-width:none}.strip::-webkit-scrollbar{display:none}.strip .fr{position:relative;flex:0 0 auto;width:58px}.strip .fr img{width:58px;height:44px;object-fit:cover;border-radius:7px}.strip .fr b{display:block;margin-top:3px;overflow:hidden;color:#b5bdb9;font-size:10px;font-weight:800;text-align:center;text-overflow:ellipsis;white-space:nowrap}.strip .fr .no{position:absolute;top:3px;left:3px;display:grid;width:14px;height:14px;place-items:center;border-radius:50%;background:rgba(0,0,0,.6);color:white;font-family:var(--mono);font-size:9px;font-weight:900}.strip .mv{display:grid;flex:0 0 auto;width:46px;height:44px;place-items:center;border:1px dashed rgba(255,255,255,.22);border-radius:7px;color:rgba(255,255,255,.55);font-size:10px;line-height:1.3;text-align:center}.strip .mv.taxi{border-color:#bd785d;color:#ffac8c}.strip .mv.mix{border-color:#5f8fc2;color:#a9cdf5}
.meta{display:grid;grid-template-columns:repeat(3,1fr);gap:5px;margin-top:11px}.meta div{padding:8px 6px;border-radius:10px;background:rgba(0,0,0,.28);text-align:center}.meta b{display:block;font-size:14px;letter-spacing:-.02em;font-variant-numeric:tabular-nums}.meta span{display:block;margin-top:3px;color:#8d9793;font-size:10px}.meta b.warn{color:var(--warn)}.meta b.bad{color:#ff8f77}
.why{margin-top:11px;padding:10px 11px;border-radius:12px;background:rgba(255,255,255,.04)}.why small{display:block;color:#8d9793;font-size:10px;font-weight:900;letter-spacing:.08em}.why ul{margin:6px 0 0;padding-left:15px;color:#c9d1ce;font-size:12px;line-height:1.6}.why li em{color:#8d9793;font-style:normal;font-size:11px}
.alert{margin-top:10px;padding:10px 11px;border:1px solid rgba(255,90,60,.4);border-radius:12px;background:rgba(255,90,60,.1)}.alert small{display:block;color:#ff9d88;font-size:10px;font-weight:900;letter-spacing:.08em}.alert p{margin:5px 0 0;color:#e8ddd9;font-size:12px;line-height:1.55}.alert p b{color:white}
