:root{--ink:#18221d;--muted:#66756c;--line:#dfe6e1;--paper:#f7f6f1;--card:#fff;--brand:#e95f37;--brand2:#173e31;--shadow:0 12px 35px rgba(20,45,35,.12)}*{box-sizing:border-box}body{margin:0;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","Noto Sans KR",sans-serif;background:var(--paper);color:var(--ink)}button,input,select{font:inherit}button{cursor:pointer}.topbar{height:64px;display:flex;align-items:center;justify-content:space-between;padding:0 max(20px,calc((100vw - 1180px)/2));background:rgba(247,246,241,.92);backdrop-filter:blur(12px);position:sticky;top:0;z-index:20;border-bottom:1px solid var(--line)}.brand{font-weight:900;letter-spacing:-.04em}.brand span{color:var(--brand)}.admin-link{color:var(--muted);text-decoration:none;font-size:14px}.hero{max-width:1180px;margin:0 auto;padding:58px 20px 34px;display:grid;grid-template-columns:1.15fr .85fr;gap:40px;align-items:center}.eyebrow{display:block;color:var(--brand);font-size:12px;font-weight:800;letter-spacing:.14em;text-transform:uppercase}.hero h1{font-size:clamp(38px,6vw,72px);line-height:1.02;letter-spacing:-.06em;margin:10px 0 18px}.hero p{font-size:18px;line-height:1.7;color:var(--muted);max-width:680px}.hero-card{background:var(--brand2);color:#fff;border-radius:28px;padding:26px;box-shadow:var(--shadow)}.hero-card h2{margin:6px 0 18px}.mode-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.mode-grid button{border:0;border-radius:16px;padding:18px;text-align:left;background:#fff;color:var(--ink);font-weight:800}.mode-grid button small{display:block;font-weight:500;color:var(--muted);margin-top:5px}.mode-grid button:disabled{opacity:.45}.controls{max-width:1180px;margin:0 auto;padding:0 20px 22px}.toolbar{background:#fff;border:1px solid var(--line);padding:14px;border-radius:20px;display:flex;gap:10px;align-items:center;flex-wrap:wrap;box-shadow:0 6px 20px rgba(20,45,35,.05)}.toolbar input,.toolbar select{border:1px solid var(--line);border-radius:12px;padding:12px 14px;background:#fff}.toolbar input{flex:1;min-width:220px}.toolbar button,.anchor{border:0;background:var(--brand);color:#fff;border-radius:12px;padding:12px 16px;font-weight:800}.ghost{background:#eef2ef!important;color:var(--ink)!important;border:0;border-radius:10px;padding:9px 12px}.status{min-height:26px;padding:8px 4px;color:var(--muted);font-size:14px}.status.bad{color:#b52d2d}.workspace{max-width:1180px;margin:0 auto;padding:0 20px 70px;display:grid;grid-template-columns:minmax(0,1fr) minmax(340px,.8fr);gap:22px}.place-list{display:grid;gap:14px}.place-card{display:grid;grid-template-columns:150px 1fr;background:var(--card);border:1px solid var(--line);border-radius:20px;overflow:hidden;box-shadow:0 5px 18px rgba(20,45,35,.05)}.place-card img,.photo-placeholder{width:100%;height:100%;min-height:190px;object-fit:cover}.photo-placeholder{display:flex;align-items:center;justify-content:center;background:#e5ece7;color:var(--brand2);font-size:50px;font-weight:900}.place-body{padding:18px}.place-meta{display:flex;justify-content:space-between;color:var(--muted);font-size:13px}.category{display:inline-block;background:#fce8df;color:#a33d20;padding:5px 9px;border-radius:999px;font-size:12px;font-weight:800}.place-card h3{margin:10px 0 8px;font-size:22px;letter-spacing:-.03em}.place-card p{margin:0 0 10px;color:var(--muted);line-height:1.55}.place-card small{color:var(--muted)}.card-actions{display:flex;align-items:center;gap:8px;margin-top:15px}.card-actions label{margin-right:auto;font-weight:700}.card-actions input{accent-color:var(--brand)}.map-column{position:relative}.map{height:650px;position:sticky;top:84px;border-radius:24px;overflow:hidden;border:1px solid var(--line);background:#e8eee9}.map-error,.empty{padding:40px;text-align:center;color:var(--muted)}.my-location-dot{width:18px;height:18px;border-radius:50%;background:#2a70ff;border:4px solid white;box-shadow:0 0 0 2px rgba(42,112,255,.25)}.route-panel{max-width:1180px;margin:0 auto 26px;background:#fff;border:1px solid var(--line);border-radius:26px;padding:26px;box-shadow:var(--shadow)}.route-head{display:flex;justify-content:space-between;gap:20px}.route-head h2{margin:6px 0}.route-head p{color:var(--muted);line-height:1.6}.route-summary{display:flex;gap:10px;margin:18px 0}.route-summary span{background:#eef2ef;padding:8px 12px;border-radius:999px;font-size:13px}.route-panel ol{list-style:none;margin:0;padding:0}.route-panel li{display:grid;grid-template-columns:42px 1fr auto;gap:14px;align-items:start;padding:16px 0;border-top:1px solid var(--line)}.route-order{width:36px;height:36px;border-radius:50%;display:flex;align-items:center;justify-content:center;background:var(--brand2);color:#fff;font-weight:900}.route-panel li small{display:block;color:var(--muted);margin-top:5px}.open{font-size:12px;color:#188050;font-weight:800}.open.closed{color:#b44}.map-links{display:flex;gap:7px;margin-top:9px}.map-links a{font-size:12px;color:var(--brand2);text-decoration:none;border-bottom:1px solid}.warnings{margin:16px 0;padding:14px;border-radius:12px;background:#fff3d7;color:#765b16;line-height:1.6}.stamp-board{display:flex;gap:10px;overflow:auto;padding-top:16px}.stamp-item{min-width:120px;border:1px dashed #bfcac2;border-radius:15px;padding:14px;text-align:center}.stamp-item b,.stamp-item small{display:block}.stamp-item small{color:var(--muted);margin-top:4px}.stamp-icon{display:block;font-size:24px}.modal{position:fixed;inset:0;background:rgba(5,15,10,.55);z-index:50;display:flex;align-items:center;justify-content:center;padding:20px}.modal[hidden]{display:none}.modal-content{background:#fff;width:min(520px,100%);border-radius:24px;padding:28px;position:relative}.modal-close{position:absolute;right:15px;top:12px;border:0;background:none;font-size:28px}.modal dl{display:grid;grid-template-columns:70px 1fr;gap:10px;margin:22px 0}.modal dt{color:var(--muted)}.admin-shell{max-width:1080px;margin:0 auto;padding:40px 20px}.admin-card{background:#fff;border:1px solid var(--line);border-radius:20px;padding:24px;margin-bottom:18px}.admin-card input{padding:12px;border:1px solid var(--line);border-radius:10px}.admin-card button{border:0;background:var(--brand2);color:white;padding:12px 16px;border-radius:10px}.preview-table{width:100%;border-collapse:collapse;font-size:13px}.preview-table th,.preview-table td{padding:9px;border-bottom:1px solid var(--line);text-align:left}.valid{color:#188050}.invalid{color:#b44}@media(max-width:850px){.hero{grid-template-columns:1fr;padding-top:36px}.workspace{grid-template-columns:1fr}.map{height:380px;position:relative;top:auto}.place-card{grid-template-columns:110px 1fr}.place-card img,.photo-placeholder{min-height:210px}.mode-grid{grid-template-columns:1fr}.route-panel li{grid-template-columns:36px 1fr}.route-panel li>.open{grid-column:2}.topbar{padding:0 18px}}

.schematic-layer{position:absolute;inset:0;background:linear-gradient(135deg,#eaf0eb,#dfe9e2);overflow:hidden}.schematic-layer:before,.schematic-layer:after{content:"";position:absolute;background:rgba(255,255,255,.7);transform:rotate(-18deg);border-radius:999px}.schematic-layer:before{width:140%;height:26px;left:-20%;top:44%}.schematic-layer:after{width:26px;height:140%;left:54%;top:-20%;transform:rotate(22deg)}.schematic-note{position:absolute;z-index:4;left:14px;top:14px;background:rgba(255,255,255,.9);padding:8px 11px;border-radius:10px;font-size:12px;color:var(--muted)}.schematic-point{position:absolute;z-index:3;transform:translate(-50%,-50%);border:0;background:transparent;display:flex;align-items:center;gap:5px;max-width:140px}.schematic-point b{flex:0 0 auto;width:28px;height:28px;border-radius:50%;display:flex;align-items:center;justify-content:center;background:var(--brand);color:white;box-shadow:0 5px 12px rgba(0,0,0,.15)}.schematic-point span{display:none;background:white;padding:5px 7px;border-radius:8px;font-size:11px;box-shadow:0 4px 12px rgba(0,0,0,.1)}.schematic-point:hover span,.schematic-point.active span{display:block}.schematic-point.active b{background:var(--brand2);transform:scale(1.2)}.schematic-user{position:absolute;z-index:4;transform:translate(-50%,-50%);background:#2a70ff;color:white;border:3px solid white;border-radius:999px;padding:4px 7px;font-size:10px;box-shadow:0 4px 10px rgba(0,0,0,.2)}
.top-actions{display:flex;align-items:center;gap:12px}.server-badge{font-size:10px;font-weight:900;letter-spacing:.12em;padding:5px 8px;border-radius:999px;background:#dfe9e2;color:var(--brand2)}.verification-state{background:#e3f2e9!important;color:#17683f}.visit-actions{display:flex;flex-direction:column;align-items:flex-end;gap:10px}.verify-btn{border:0;border-radius:10px;background:var(--brand);color:#fff;padding:10px 13px;font-weight:800;white-space:nowrap}.verify-btn:disabled{opacity:.55;cursor:default}.verify-btn.verified{background:#1d7d51}.progress-label{margin-top:18px;font-size:14px;color:var(--muted)}.qr-content{width:min(620px,100%)}.qr-content video{display:block;width:100%;max-height:330px;background:#101713;border-radius:16px;margin:16px 0}.qr-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.qr-actions button{border:0;border-radius:10px;padding:11px 14px;background:var(--brand2);color:#fff;font-weight:800}.qr-actions input{flex:1;min-width:230px;border:1px solid var(--line);border-radius:10px;padding:11px}.qr-note{font-size:13px;color:var(--muted)}@media(max-width:850px){.visit-actions{grid-column:2;align-items:flex-start}.top-actions .server-badge{display:none}}
.stamp-item.done{border-style:solid;border-color:#79b894;background:#edf8f1}.stamp-item.done .stamp-icon{color:#188050;font-weight:900}
.route-launch-row{display:flex;justify-content:flex-end;margin:0 0 10px}.play-launch{display:inline-block;background:var(--brand);color:#fff;text-decoration:none;border-radius:12px;padding:12px 16px;font-weight:900}.topbar .brand a{color:inherit;text-decoration:none}.region-context{font-size:13px;color:var(--muted);margin-left:8px}.top-nav-links{display:flex;align-items:center;gap:10px}.top-nav-links a{color:var(--muted);text-decoration:none;font-size:13px}@media(max-width:650px){.top-nav-links a:not(.admin-link){display:none}}
.guest-badge{background:#fff0cd!important;color:#725300!important}

/* ===== V0.3.7 UX ===== */
.course-options{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-bottom:14px}
.course-options label{display:flex;flex-direction:column;gap:5px;font-size:12px;color:var(--muted);font-weight:600}
.course-options select{padding:9px 10px;border:1px solid var(--line);border-radius:10px;background:#fff}
.mode-grid-two{grid-template-columns:1fr 1fr}
.mode-hint{margin:12px 0 0;font-size:12.5px;color:var(--muted)}
.mode-hint b{color:var(--brand)}
.sheet-handle{display:none;width:100%;background:none;border:0;padding:10px 0 6px}
.sheet-handle span{display:block;width:44px;height:5px;border-radius:3px;background:var(--line);margin:0 auto}
@media(max-width:850px){
  .course-options{grid-template-columns:repeat(2,1fr)}
  .route-panel.as-sheet{position:fixed;left:0;right:0;bottom:0;z-index:60;margin:0;max-height:78vh;overflow-y:auto;border-radius:22px 22px 0 0;box-shadow:0 -14px 44px rgba(10,25,18,.28);transition:transform .28s ease;background:var(--card)}
  .route-panel.as-sheet.collapsed{transform:translateY(calc(100% - 96px));overflow:hidden}
  .route-panel.as-sheet .sheet-handle{display:block;position:sticky;top:0;background:var(--card);z-index:2;cursor:pointer}
}


/* ===== V0.3.8 B-1 코스 공유 ===== */
.route-launch-row{gap:8px;align-items:center;flex-wrap:wrap}
.share-course{border:1px solid var(--ru-accent);background:#fff;color:var(--ru-accent);border-radius:12px;padding:11px 15px;font-weight:900;cursor:pointer}
.share-course:hover{background:rgba(233,95,55,.08)}


/* ===== V0.3.8 B-5 설문 기반 추천 ===== */
.mode-grid-three{grid-template-columns:repeat(3,minmax(0,1fr))}
.survey-content{width:min(760px,100%);max-height:min(88vh,820px);overflow:auto}
.survey-intro{margin:-6px 0 22px;color:var(--muted);line-height:1.65}
.survey-content fieldset{border:0;padding:0;margin:0 0 22px}
.survey-content legend{font-size:16px;font-weight:900;margin-bottom:10px}
.field-note{font-size:12px;color:var(--muted);margin:-6px 0 10px}
.survey-choice-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:9px}
.survey-choice-grid label{position:relative;cursor:pointer}
.survey-choice-grid input{position:absolute;opacity:0;pointer-events:none}
.survey-choice-grid span{display:flex;min-height:48px;align-items:center;justify-content:center;text-align:center;border:1px solid var(--line);border-radius:13px;background:#fff;padding:9px;color:var(--ink);font-size:13px;font-weight:800;transition:.16s ease}
.survey-choice-grid input:checked+span{border-color:var(--ru-accent);background:rgba(233,95,55,.09);color:var(--ru-accent);box-shadow:0 0 0 2px rgba(233,95,55,.09)}
.survey-two-columns{display:grid;grid-template-columns:1fr 1fr;gap:20px}
.survey-choice-grid.compact{grid-template-columns:repeat(3,minmax(0,1fr))}
.survey-actions{display:flex;justify-content:flex-end;gap:9px;position:sticky;bottom:-28px;background:linear-gradient(180deg,rgba(255,255,255,0),#fff 28%);padding:28px 0 2px}
.survey-actions button{border:0;border-radius:12px;padding:12px 16px;font-weight:900;background:var(--ru-accent);color:#fff}
body.modal-open{overflow:hidden}
@media(max-width:850px){.mode-grid-three{grid-template-columns:1fr}.survey-choice-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.survey-two-columns{grid-template-columns:1fr;gap:0}.survey-content{padding:24px 18px}.survey-actions{bottom:-24px}}
