:root{
  --bg:#f4f6f8; --card:#fff; --ink:#1d2939; --sub:#5b6676; --line:#e3e8ee;
  --main:#3b5b7a; --main-weak:#e9f0f6; --ok:#1f7a55; --ok-weak:#e6f4ee; --warn:#a15c07; --warn-weak:#fdf3e5;
  --hall:#c0392b; --park:#e67e22;
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--bg);color:var(--ink);font:17px/1.6 -apple-system,BlinkMacSystemFont,"Apple SD Gothic Neo","Malgun Gothic","Noto Sans KR",sans-serif}
.wrap{max-width:640px;margin:0 auto;padding:16px 14px 60px}
header.top{padding:22px 4px 10px}
header.top .cong{font-size:14px;color:var(--sub);letter-spacing:.02em}
header.top h1{margin:4px 0 6px;font-size:24px;line-height:1.35}
header.top p{margin:0;color:var(--sub);font-size:15px}
.card{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:18px 16px;margin:14px 0}
.card h2{margin:0 0 12px;font-size:18px;display:flex;align-items:center;gap:8px}
.card h2 .n{display:inline-flex;width:24px;height:24px;border-radius:50%;background:var(--main);color:#fff;font-size:13px;align-items:center;justify-content:center}
.talk .date{font-size:20px;font-weight:700}
.talk .title{margin-top:8px;font-size:19px;font-weight:700;color:var(--main);word-break:keep-all}
.talk .no{display:inline-block;margin-top:10px;padding:2px 10px;border-radius:999px;background:var(--main-weak);color:var(--main);font-size:14px;font-weight:600}
.addr{display:flex;gap:10px;align-items:flex-start;justify-content:space-between;background:#f8fafc;border:1px solid var(--line);border-radius:10px;padding:12px}
.addr b{display:block;font-size:16px}
.addr span{font-size:14px;color:var(--sub)}
.btn{appearance:none;border:1px solid var(--line);background:#fff;color:var(--ink);border-radius:10px;padding:10px 14px;font:inherit;font-size:15px;font-weight:600;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:6px;text-decoration:none;white-space:nowrap}
.btn:active{transform:translateY(1px)}
.btn.main{background:var(--main);border-color:var(--main);color:#fff}
.btn.sm{padding:6px 10px;font-size:13px}
.btn[disabled]{opacity:.5;cursor:default}
.nav{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:10px}
.nav .btn{flex-direction:column;gap:2px;padding:10px 4px;font-size:14px}
.nav .btn small{font-weight:400;color:var(--sub);font-size:11px}
.nav-naver{border-color:#03c75a!important}.nav-tmap{border-color:#e4007f!important}.nav-kakao{border-color:#f2c200!important}
.sub-title{font-size:15px;font-weight:700;margin:16px 0 6px}
ul.plain{margin:6px 0 0;padding-left:18px}ul.plain li{margin:2px 0}
#map{width:100%;height:320px;border-radius:12px;border:1px solid var(--line);margin-top:10px;background:#eef1f4}
.map-tools{display:flex;gap:8px;flex-wrap:wrap;margin-top:10px}
.eta{margin-top:10px;display:none;background:var(--main-weak);border-radius:10px;padding:12px;font-size:15px}
.eta b{font-size:17px}
.legend{display:flex;gap:14px;font-size:13px;color:var(--sub);margin-top:8px}
.legend i{display:inline-block;width:10px;height:10px;border-radius:50%;margin-right:4px;vertical-align:middle}
.mapimg{width:100%;border-radius:10px;border:1px solid var(--line);margin-top:10px;display:block}
.field{margin:14px 0}
.field label.t{display:block;font-weight:700;font-size:15px;margin-bottom:6px}
input[type=text],input[type=number],input[type=date],input[type=time],input[type=tel],input[type=password],textarea,select{width:100%;font:inherit;font-size:16px;padding:10px 12px;border:1px solid var(--line);border-radius:10px;background:#fff}
textarea{min-height:80px;resize:vertical}
.seg{display:flex;gap:8px}
.seg label{flex:1;border:1px solid var(--line);border-radius:10px;padding:10px;text-align:center;cursor:pointer;font-weight:600;font-size:15px;background:#fff}
.seg input{display:none}
.seg input:checked+span{color:var(--main)}
.seg label:has(input:checked){border-color:var(--main);background:var(--main-weak)}
.status{display:inline-block;white-space:nowrap;font-size:13px;font-weight:700;padding:3px 10px;border-radius:999px}
.status.ok{background:var(--ok-weak);color:var(--ok)}.status.wait{background:var(--warn-weak);color:var(--warn)}
.summary{display:grid;grid-template-columns:auto 1fr;gap:6px 14px;font-size:15px;margin:10px 0 0}
.summary dt{color:var(--sub)}.summary dd{margin:0;font-weight:700}
.drop{display:block;border:2px dashed #c4cfdb;border-radius:12px;padding:18px;text-align:center;color:var(--sub);font-size:15px;cursor:pointer;background:#fafcfe}
.drop.over{border-color:var(--main);background:var(--main-weak)}
.files{list-style:none;margin:10px 0 0;padding:0}
.files li{border:1px solid var(--line);border-radius:10px;padding:10px;margin:8px 0;background:#fff}
.files .row{display:flex;gap:8px;align-items:center;justify-content:space-between}
.files .nm{font-size:14px;font-weight:600;word-break:break-all}
.files .meta{font-size:12px;color:var(--sub)}
.files img,.files video{width:100%;max-height:340px;object-fit:contain;border-radius:8px;margin-top:8px;background:#000}
.files img{background:#f2f4f7}
.bar{height:6px;background:#e3e8ee;border-radius:3px;overflow:hidden;margin-top:6px}.bar i{display:block;height:100%;background:var(--main);width:0}
.toast{position:fixed;left:50%;bottom:24px;transform:translateX(-50%);background:#1d2939;color:#fff;padding:10px 16px;border-radius:999px;font-size:14px;opacity:0;transition:.25s;pointer-events:none;z-index:99}
.toast.on{opacity:1}
.foot{text-align:center;color:var(--sub);font-size:14px;margin-top:22px}
.contact{display:flex;gap:8px;justify-content:center;margin-top:10px}
.hidden{display:none!important}
.muted{color:var(--sub);font-size:14px}
.pin{padding:3px 8px;border-radius:6px;color:#fff;font-size:12px;font-weight:700;white-space:nowrap;box-shadow:0 1px 3px rgba(0,0,0,.3)}
.songtitle{margin-top:8px;padding:10px 12px;border-radius:10px;background:var(--main-weak);color:var(--main);font-weight:700;font-size:16px;display:none}
.songtitle.warn{background:var(--warn-weak);color:var(--warn);font-weight:600;font-size:14px}
.songpick{margin-top:8px;border:1px solid var(--line);border-radius:10px;padding:8px;background:#fff}
.songpick ul{list-style:none;margin:6px 0 0;padding:0;max-height:300px;overflow:auto}
.songpick li{padding:9px 8px;border-bottom:1px solid #f0f2f5;cursor:pointer;font-size:15px}
.songpick li b{display:inline-block;min-width:44px;color:var(--main)}
.songpick li:active,.songpick li:hover{background:var(--main-weak)}
