
:root{--navy:#072a57;--blue:#093b72;--red:#d92525;--purple:#6b3fb1;--muted:#64748b;--bg:#eef6fb;--line:#c9dced;--card:#fff;--soft:#f7fbff;--green:#16805d;--orange:#b45309}
*{box-sizing:border-box}body{margin:0;background:var(--bg);color:#0b2545;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","Noto Sans KR","Apple SD Gothic Neo",Arial,sans-serif}a{color:#0b407a;text-decoration:none}a:hover{text-decoration:underline}.container{max-width:1220px;margin:0 auto;padding:26px 22px 34px}.hero{text-align:center;margin-bottom:18px}.hero h1{margin:8px 0 6px;font-size:42px;line-height:1.12;letter-spacing:-.045em;color:var(--navy);font-weight:900}.hero .subtitle{color:var(--muted);font-size:20px;font-weight:700;line-height:1.5}.topnav{display:flex;gap:8px;flex-wrap:wrap;justify-content:center;margin:12px 0}.topnav a{font-size:13px;font-weight:800;background:white;border:1px solid #c9dced;border-radius:999px;padding:8px 12px;color:#0b407a;text-decoration:none}.topnav a:hover{background:#f7fbff;text-decoration:none}.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:14px;margin-top:22px}.card{display:flex;flex-direction:column;gap:9px;background:var(--card);border:1px solid var(--line);border-radius:16px;padding:17px 18px;box-shadow:0 6px 20px rgba(0,0,0,.06)}.card h2,.card h3{margin:0;color:var(--navy);letter-spacing:-.03em}.card p{margin:0;color:#475569;line-height:1.55}.badge{display:inline-flex;align-items:center;justify-content:center;width:max-content;background:#eef6ff;border:1px solid #bfd6ea;color:#0b407a;border-radius:999px;padding:4px 9px;font-weight:800;font-size:12px}.badge.tight{background:#fff1f1;border-color:#f2b8b8;color:#9b1c1c}.badge.relaxed{background:#effaf4;border-color:#b6e2c7;color:#166534}.badge.extra{background:#fff7ed;border-color:#fed7aa;color:#9a3412}.btn-row{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}.btn{display:inline-flex;align-items:center;justify-content:center;padding:9px 12px;border-radius:10px;border:1px solid #b7cee4;background:#f7fbff;color:#0b407a;font-weight:800;font-size:13px;text-decoration:none;cursor:pointer}.btn.primary{background:var(--red);border-color:var(--red);color:#fff}.btn.green{background:#16805d;border-color:#16805d;color:#fff}.btn:hover{text-decoration:none;filter:brightness(.98)}.map-wrap{position:relative;border:2px solid #b8d0e5;border-radius:18px;overflow:hidden;background:#fff;box-shadow:0 6px 20px rgba(0,0,0,.08)}#map{width:100%;height:76vh;min-height:700px}.route-panel{position:absolute;z-index:500;top:16px;right:16px;width:380px;max-width:calc(100% - 32px);background:rgba(255,255,255,.96);border:1px solid #d2e3f2;border-radius:14px;padding:14px;box-shadow:0 4px 18px rgba(0,0,0,.12)}.route-panel h2{font-size:18px;margin:0 0 8px;color:var(--navy)}.route-panel p{font-size:14px;margin:6px 0;color:#334155;line-height:1.45}.legend{position:absolute;z-index:500;left:16px;bottom:16px;background:rgba(255,255,255,.95);border:1px solid #d2e3f2;border-radius:14px;padding:12px 14px;box-shadow:0 4px 18px rgba(0,0,0,.10);font-size:15px;font-weight:800}.legend .item{display:flex;align-items:center;gap:8px;margin:6px 0}.swatch{width:24px;height:5px;background:var(--red);border-radius:5px}.num-icon,.poi-icon,.bed-icon,.air-icon,.city-icon,.extra-icon{display:flex;align-items:center;justify-content:center;border:2px solid #fff;box-shadow:0 2px 8px rgba(0,0,0,.24);font-weight:900;color:#fff}.num-icon{width:34px;height:34px;border-radius:50%;background:var(--red)}.poi-icon{width:34px;height:34px;border-radius:9px;background:var(--purple);font-size:18px}.extra-icon{width:34px;height:34px;border-radius:9px;background:var(--orange);font-size:18px}.city-icon{width:28px;height:28px;border-radius:50%;background:var(--blue);font-size:14px}.bed-icon{width:34px;height:34px;border-radius:9px;background:var(--blue);font-size:18px}.air-icon{width:34px;height:34px;border-radius:50%;background:var(--blue);font-size:19px}.label{background:rgba(255,255,255,.94);border:1px solid rgba(9,59,114,.25);color:#06264d;border-radius:999px;padding:4px 9px;font-weight:900;font-size:13px;white-space:nowrap;box-shadow:0 1px 6px rgba(0,0,0,.12)}.label.lodging{color:var(--red);border-color:rgba(217,37,37,.35)}.label.poi{color:#5b299a;border-color:rgba(107,63,177,.35)}.label.extra{color:#9a3412;border-color:rgba(180,83,9,.35)}.popup-card{width:282px}.popup-card img{display:block;width:100%;height:128px;object-fit:cover;border-radius:10px;border:1px solid #d8e5f1;background:#eef6fb}.popup-card h3{font-size:17px;margin:9px 0 5px;color:var(--navy)}.popup-card p{font-size:13px;line-height:1.45;color:#475569;margin:0 0 8px}.popup-meta{display:flex;gap:6px;flex-wrap:wrap;margin:7px 0}.popup-meta span{font-size:11px;font-weight:800;background:#f2f5f8;border:1px solid #dbe6ef;border-radius:999px;padding:3px 7px;color:#475569}.popup-credit{font-size:11px!important;color:#64748b!important;margin:2px 0 8px!important}.note{margin-top:12px;color:#64748b;font-size:13px;text-align:center}.leaflet-container{font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","Noto Sans KR","Apple SD Gothic Neo",Arial,sans-serif}.filterbar{display:flex;flex-wrap:wrap;gap:7px;margin:10px 0}.filterbar button{border:1px solid #c9dced;background:#fff;color:#0b407a;border-radius:999px;padding:7px 10px;font-weight:800;cursor:pointer}.filterbar button.active{background:#0b407a;color:#fff;border-color:#0b407a}.day-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:14px;margin-top:18px}.day-card{background:#fff;border:1px solid var(--line);border-radius:16px;padding:16px;box-shadow:0 5px 18px rgba(0,0,0,.05)}.day-card h3{margin:0 0 8px;color:var(--navy)}.day-card ol{margin:8px 0 0 18px;padding:0;color:#475569;line-height:1.55}.poi-layout{display:grid;grid-template-columns:1.1fr .9fr;gap:18px;align-items:start}.poi-hero-img{width:100%;height:420px;object-fit:cover;border-radius:20px;border:1px solid var(--line);box-shadow:0 6px 20px rgba(0,0,0,.08);background:white}.section{background:#fff;border:1px solid var(--line);border-radius:18px;padding:18px;box-shadow:0 6px 20px rgba(0,0,0,.05);margin-bottom:16px}.section h2{margin:0 0 12px;color:var(--navy)}.section p,.section li{color:#475569;line-height:1.65}.gallery{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}.gallery figure{margin:0}.gallery img{width:100%;height:170px;object-fit:cover;border-radius:14px;border:1px solid var(--line);background:white}.gallery figcaption{font-size:12px;color:#64748b;line-height:1.45;margin-top:5px}.info-table{width:100%;border-collapse:collapse}.info-table th,.info-table td{border-bottom:1px solid #e2e8f0;padding:10px 8px;text-align:left;vertical-align:top}.info-table th{width:130px;color:#334155;background:#f8fafc}.table-wrap{overflow:auto;background:#fff;border:1px solid var(--line);border-radius:16px}.coord-table{width:100%;border-collapse:collapse;font-size:14px}.coord-table th,.coord-table td{border-bottom:1px solid #e2e8f0;padding:9px;text-align:left}.coord-table th{position:sticky;top:0;background:#f8fafc;color:#334155}.footer-note{font-size:13px;color:#64748b;margin-top:16px}.missing-img{display:flex;align-items:center;justify-content:center;height:128px;border-radius:10px;background:linear-gradient(135deg,#e0f2fe,#fef3c7);color:#0b2545;font-weight:900;text-align:center;padding:12px}.overview-list{max-height:290px;overflow:auto;border-top:1px solid #e2e8f0;margin-top:10px;padding-top:8px}.overview-list a{display:block;padding:6px 0;border-bottom:1px dashed #e2e8f0;font-size:13px;color:#0b407a}.route-key{display:grid;grid-template-columns:14px 1fr;gap:8px;align-items:center;margin:5px 0;font-size:13px;color:#334155}.route-color{height:5px;border-radius:99px}
@media(max-width:860px){.hero h1{font-size:32px}.hero .subtitle{font-size:17px}.route-panel,.legend{position:static;width:auto;max-width:none;border-radius:0;border-left:0;border-right:0;box-shadow:none}.map-wrap{overflow:visible}.poi-layout{grid-template-columns:1fr}#map{min-height:560px;height:70vh}.gallery{grid-template-columns:1fr}.route-panel{padding:12px}.container{padding:22px 14px}}
/* v6 editable planning additions */
.meal-icon { display:flex; align-items:center; justify-content:center; width:34px; height:34px; border-radius:10px; background:#b45309; color:#fff; font-size:18px; border:2px solid #fff; box-shadow:0 2px 8px rgba(0,0,0,.22); }
.num-icon.meal { background:#b45309; }
.label.meal { color:#92400e; border-color:rgba(180,83,9,.35); }
.editor-layout { display:grid; grid-template-columns: 280px minmax(0,1fr); gap:18px; align-items:start; }
.editor-sidebar { position:sticky; top:12px; display:flex; flex-direction:column; gap:8px; background:#fff; border:1px solid #c9dced; border-radius:16px; padding:12px; box-shadow:0 6px 18px rgba(0,0,0,.05); }
.editor-sidebar a, .editor-sidebar button { text-align:left; border:0; background:#f7fbff; padding:10px 12px; border-radius:10px; color:#0b407a; font-weight:800; text-decoration:none; cursor:pointer; }
.editor-sidebar a:hover, .editor-sidebar button:hover { background:#eaf5ff; }
.editor-section { background:#fff; border:1px solid #c9dced; border-radius:18px; padding:18px; margin-bottom:18px; box-shadow:0 6px 20px rgba(0,0,0,.05); }
.editor-section h2 { margin:0 0 12px; color:#072a57; font-size:24px; }
.editor-section h3 { margin:18px 0 8px; color:#0b407a; }
.form-grid { display:grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap:12px; }
.form-grid.three { grid-template-columns: repeat(3, minmax(0,1fr)); }
.form-row { display:flex; flex-direction:column; gap:5px; }
.form-row.full { grid-column:1/-1; }
.form-row label { font-weight:800; color:#334155; font-size:13px; }
.form-row input, .form-row textarea, .form-row select { width:100%; box-sizing:border-box; border:1px solid #b7cee4; border-radius:10px; padding:9px 10px; font-family:inherit; font-size:14px; background:#fff; }
.form-row textarea { min-height:76px; resize:vertical; }
.editor-actions { display:flex; flex-wrap:wrap; gap:8px; margin-top:12px; }
.status-box { margin-top:10px; padding:10px 12px; border-radius:12px; background:#f0fdf4; border:1px solid #bbf7d0; color:#166534; font-weight:700; display:none; }
.status-box.warn { background:#fff7ed; border-color:#fed7aa; color:#9a3412; }
.route-list { display:flex; flex-direction:column; gap:8px; margin:12px 0; }
.route-item { display:grid; grid-template-columns: 42px minmax(0,1fr) auto; gap:8px; align-items:center; padding:10px; border:1px solid #d8e7f4; border-radius:12px; background:#f8fbff; }
.route-item .idx { width:32px; height:32px; border-radius:50%; display:flex; align-items:center; justify-content:center; background:#d92525; color:#fff; font-weight:900; }
.route-item .name { font-weight:900; color:#072a57; }
.route-item .meta { color:#64748b; font-size:13px; }
.route-item .mini-actions { display:flex; gap:4px; }
.route-item button { border:1px solid #b7cee4; background:#fff; border-radius:8px; padding:6px 8px; cursor:pointer; }
.table-wrap { overflow:auto; border:1px solid #d8e7f4; border-radius:14px; }
table.editor-table { width:100%; border-collapse:collapse; min-width:900px; }
.editor-table th, .editor-table td { border-bottom:1px solid #e2edf6; padding:9px 10px; text-align:left; vertical-align:top; }
.editor-table th { background:#f1f8ff; color:#0b407a; font-size:13px; }
.editor-table td { font-size:13px; color:#334155; }
.danger { background:#fff1f2 !important; color:#be123c !important; border-color:#fecdd3 !important; }
.small-note { font-size:13px; color:#64748b; line-height:1.5; }
@media (max-width: 860px){ .editor-layout { grid-template-columns: 1fr; } .editor-sidebar { position:static; } .form-grid, .form-grid.three { grid-template-columns:1fr; } }
.gallery { display:grid; grid-template-columns: repeat(auto-fit, minmax(220px,1fr)); gap:14px; }
.gallery figure { margin:0; border:1px solid #d8e7f4; border-radius:14px; overflow:hidden; background:#fff; }
.gallery img { width:100%; height:180px; object-fit:cover; display:block; }
.gallery figcaption { padding:10px; color:#334155; font-size:13px; }
.meta-grid { display:grid; grid-template-columns: repeat(auto-fit, minmax(160px,1fr)); gap:10px; margin:12px 0; }
.meta-grid > div { background:#f8fbff; border:1px solid #d8e7f4; border-radius:12px; padding:10px; color:#334155; }
.notice { background:#fff8e7; border:1px solid #f0d28a; border-radius:14px; padding:14px 16px; margin:18px 0; color:#6b4e00; line-height:1.55; }

html { scroll-behavior:smooth; }
.hero h1, .card h2, .card h3 { letter-spacing:0; }
.topnav a.active { background:#0b407a; color:#fff; border-color:#0b407a; }
.itinerary-controls { margin:16px 0 18px; }
.plan-intro { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:16px; align-items:center; background:#fff; border:1px solid #c9dced; border-radius:14px; padding:16px; box-shadow:0 6px 18px rgba(7,42,87,.05); }
.plan-intro h2 { margin:4px 0 6px; color:#072a57; font-size:22px; line-height:1.25; }
.plan-intro p { margin:0; color:#475569; line-height:1.55; }
.mode-eyebrow { display:inline-flex; width:max-content; color:#0b407a; background:#eef6ff; border:1px solid #bfd6ea; border-radius:999px; padding:3px 8px; font-size:12px; font-weight:900; }
.mode-tabs { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; margin-top:10px; }
.mode-tabs a { display:grid; gap:5px; padding:14px 16px; min-height:116px; border:1px solid #b7cee4; border-radius:12px; background:#fff; color:#0b2545; text-decoration:none; box-shadow:0 5px 16px rgba(7,42,87,.04); }
.mode-tabs a:hover { background:#f7fbff; text-decoration:none; }
.mode-tabs a.active { border-color:#0b407a; background:#0b407a; color:#fff; }
.mode-name { font-size:18px; font-weight:900; line-height:1.2; }
.mode-tag { font-size:13px; font-weight:900; color:#16805d; }
.mode-tabs a.active .mode-tag { color:#dff8ec; }
.mode-summary { font-size:13px; color:#475569; line-height:1.45; }
.mode-tabs a.active .mode-summary { color:#e8f2ff; }
.topnav, .editor-sidebar { scrollbar-width:thin; }
.editor-section { scroll-margin-top:16px; }
.form-row input, .form-row textarea, .form-row select { min-height:44px; }
.editor-actions .btn { min-height:42px; }
.popup-note { background:#f8fbff; border:1px solid #dbe6ef; border-radius:10px; padding:8px; }
.poi-list-head { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:14px; align-items:start; }
.poi-list-head h2 { margin:0 0 6px; color:#072a57; }
.poi-list-head p { margin:0; color:#475569; line-height:1.55; }
.poi-list-toolbar { display:grid; grid-template-columns:minmax(0,1fr) 220px; gap:12px; margin:16px 0 10px; align-items:end; }
.poi-list-count { color:#64748b; font-size:13px; font-weight:800; margin-bottom:10px; }
.poi-select-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(280px,1fr)); gap:14px; }
.poi-select-card { display:grid; grid-template-rows:156px minmax(0,1fr); overflow:hidden; background:#fff; border:1px solid #c9dced; border-radius:12px; color:#0b2545; text-decoration:none; box-shadow:0 6px 18px rgba(7,42,87,.05); }
.poi-select-card:hover { text-decoration:none; border-color:#91b7d6; background:#fbfdff; }
.poi-select-thumb { min-height:0; background:#eef6fb; }
.poi-select-thumb img { display:block; width:100%; height:100%; object-fit:cover; }
.poi-select-placeholder { display:flex; align-items:center; justify-content:center; width:100%; height:100%; color:#64748b; font-weight:900; background:#f1f8ff; }
.poi-select-info { display:flex; flex-direction:column; gap:8px; padding:14px; }
.poi-select-info h3 { margin:0; color:#072a57; font-size:19px; line-height:1.25; }
.poi-select-info p { margin:0; color:#475569; line-height:1.55; font-size:14px; }
.poi-select-meta { display:flex; flex-wrap:wrap; gap:6px; margin-top:auto; }
.poi-select-meta span { font-size:12px; font-weight:800; color:#475569; background:#f2f5f8; border:1px solid #dbe6ef; border-radius:999px; padding:3px 7px; }
.cost-head { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:14px; align-items:start; margin-bottom:14px; }
.cost-head h2 { margin:0 0 6px; color:#072a57; }
.cost-head p { margin:0; color:#475569; line-height:1.55; }
.cost-summary-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(150px,1fr)); gap:10px; margin:12px 0 16px; }
.cost-summary-card { background:#f8fbff; border:1px solid #d8e7f4; border-radius:12px; padding:12px; }
.cost-summary-card span { display:block; color:#64748b; font-size:12px; font-weight:900; margin-bottom:4px; }
.cost-summary-card strong { display:block; color:#072a57; font-size:20px; line-height:1.2; }
.cost-table { width:100%; min-width:840px; border-collapse:collapse; }
.cost-table th, .cost-table td { border-bottom:1px solid #e2edf6; padding:9px 10px; text-align:left; vertical-align:middle; }
.cost-table th { background:#f1f8ff; color:#0b407a; font-size:13px; }
.cost-table td { background:#fff; }
.cost-table input, .cost-table select { width:100%; min-height:42px; border:1px solid #b7cee4; border-radius:10px; padding:8px 10px; font:inherit; background:#fff; }
.cost-table .cost-amount { text-align:right; }
.cost-table td:last-child { width:92px; }
.cost-empty { margin-top:10px; }

@media (max-width: 860px){
  .topnav { justify-content:center; flex-wrap:wrap; overflow:visible; padding-bottom:6px; }
  .topnav a { flex:0 1 auto; }
  .plan-intro { grid-template-columns:1fr; align-items:start; }
  .mode-tabs { grid-template-columns:1fr; }
  .mode-tabs a { min-height:auto; }
  .editor-sidebar { position:sticky; top:0; z-index:700; flex-direction:row; overflow-x:auto; border-radius:0; margin:-6px -14px 14px; padding:10px 14px; box-shadow:0 8px 20px rgba(7,42,87,.08); -webkit-overflow-scrolling:touch; }
  .editor-sidebar a, .editor-sidebar button { flex:0 0 auto; white-space:nowrap; }
  .editor-section { padding:16px 14px; border-radius:12px; scroll-margin-top:78px; }
  .editor-section h2 { font-size:21px; line-height:1.25; }
  .form-row input, .form-row textarea, .form-row select { font-size:16px; }
  .editor-actions { display:grid; grid-template-columns:1fr; }
  .editor-actions .btn { width:100%; }
  .route-item { grid-template-columns:34px minmax(0,1fr); align-items:start; }
  .route-item .idx { width:30px; height:30px; }
  .route-item .mini-actions { grid-column:1/-1; display:grid; grid-template-columns:repeat(3, minmax(0,1fr)); }
  .route-item button { min-height:40px; }
  .notice { padding:12px; border-radius:10px; }
  .poi-list-head { grid-template-columns:1fr; }
  .poi-list-toolbar { grid-template-columns:1fr; }
  .cost-head { grid-template-columns:1fr; }
  .cost-head .btn { width:100%; }
  .cost-table input, .cost-table select { font-size:16px; }
}

@media (max-width: 640px){
  .container { padding:18px 12px 28px; }
  .hero h1 { font-size:28px; line-height:1.18; }
  .hero .subtitle { font-size:15px; }
  .grid, .day-list { grid-template-columns:1fr; }
  .card, .day-card, .section { border-radius:10px; }
  .btn-row { display:grid; grid-template-columns:1fr; }
  .btn-row .btn { width:100%; min-height:42px; }
  .popup-card { width:min(282px, 76vw); }
  .table-wrap { border-radius:10px; }
  table.editor-table { min-width:680px; }
  .cost-table-wrap { border:0; background:transparent; overflow:visible; }
  .cost-table { min-width:0; }
  .cost-table thead { display:none; }
  .cost-table, .cost-table tbody, .cost-table tr, .cost-table td { display:block; width:100%; }
  .cost-table tr { background:#fff; border:1px solid #d8e7f4; border-radius:12px; padding:12px; margin-bottom:10px; }
  .cost-table td { border:0; padding:0 0 10px; }
  .cost-table td:last-child { width:100%; padding-bottom:0; }
  .cost-table td::before { content:attr(data-label); display:block; margin:0 0 5px; color:#334155; font-size:12px; font-weight:900; }
  .cost-table td:last-child .btn { width:100%; min-height:42px; }
}
