/* 기존 index.html의 CSS를 그대로 복사한 기본 스타일입니다. 원본 수정 시 이 구간도 함께 갱신합니다. */

  :root{
    --bg:#FFFFFF; --bg-soft:#F7F5F0; --line:#E5E1D8;
    --ink:#211D19; --ink-dim:#4A443E;
    --teal:#20689A; --teal-deep:#154D75;
    --pin:#E23F63; --pin-empty:#C9C2B4;
    --card-border:#E9E3D6;
  }
  *{ box-sizing:border-box; }
  html,body{ margin:0; background:var(--bg); color:var(--ink);
    font-family:'Noto Sans KR',sans-serif; -webkit-font-smoothing:antialiased; }
  h1,h2,h3{ font-family:'Noto Serif KR',serif; margin:0; }
  a{ color:inherit; text-decoration:none; }
  img{ max-width:100%; display:block; }
  button{ font-family:inherit; cursor:pointer; }

  /* ---------- Header ---------- */
  header{
    position:sticky; top:0; z-index:60; background:#fff;
    padding:0 32px; border-bottom:1px solid var(--line);
  }
  .header-inner{
    max-width:1500px; margin:0 auto; display:flex; align-items:center;
    justify-content:space-between; gap:20px; padding:12px 0; position:relative;
  }
  header .brand img{ width:130px; height:auto; }
  nav{ display:flex; gap:30px; overflow-x:auto; scrollbar-width:none; }
  nav::-webkit-scrollbar{ display:none; }
  nav a{
    font-size:15px; white-space:nowrap; color:var(--ink);
    padding:6px 2px; border-bottom:2px solid transparent; transition:.2s;
  }
  nav a:hover, nav a.active{ color:var(--teal-deep); border-bottom-color:var(--teal); }

  #hamburger{ display:none; background:none; border:none; font-size:24px; cursor:pointer; padding:4px 8px; color:var(--ink); }

  @media (max-width:700px){
    header{ padding:0 18px; }
    #hamburger{ display:block; }
    nav{
      display:none; position:absolute; top:100%; left:0; right:0;
      flex-direction:column; gap:0; background:#fff; border-bottom:1px solid var(--line);
      box-shadow:0 10px 24px rgba(0,0,0,.08); overflow:visible; padding:6px 0;
    }
    nav.open{ display:flex; }
    nav a{ padding:14px 20px; border-bottom:1px solid var(--bg-soft); width:100%; }
    .nav-item{ width:100%; }
    .nav-dropdown{ position:static; transform:none; box-shadow:none; border:none; margin:0 20px 8px; }
  }

  .nav-item{ position:relative; }
  .nav-dropdown{
    position:absolute; top:calc(100% + 10px); left:50%; transform:translateX(-50%);
    background:#fff; border:1px solid var(--line); border-radius:8px; box-shadow:0 8px 24px rgba(0,0,0,.1);
    padding:10px; display:none; flex-direction:column; gap:2px; min-width:140px; z-index:70;
  }
  .nav-dropdown.open{ display:flex; }
  .nav-dropdown button{
    background:none; border:none; text-align:left; padding:8px 10px; border-radius:6px;
    font-size:15px; color:var(--ink); font-family:inherit;
  }
  .nav-dropdown button:hover{ background:var(--bg-soft); }
  .nav-dropdown button.active{ color:var(--teal-deep); font-weight:700; background:var(--bg-soft); }

  /* ---------- Hero ---------- */
  .hero{ padding:52px 32px 36px; max-width:1240px; margin:0 auto; }
  .hero .eyebrow{ font-family:'Oswald',sans-serif; font-size:15px; letter-spacing:2px; color:var(--teal-deep); margin-bottom:14px; }
  .hero h1{ font-size:clamp(26px,3.6vw,38px); line-height:1.4; color:var(--ink); }
  .hero p{ margin-top:16px; font-size:16px; line-height:1.8; color:var(--ink-dim); max-width:620px; }
  .stat-row{ display:flex; flex-wrap:wrap; gap:10px; margin-top:24px; }
  .stat-chip{ border:1px solid var(--line); background:var(--bg-soft); padding:9px 16px; border-radius:20px; font-size:15px; color:var(--ink-dim); }
  .stat-chip b{ color:var(--teal-deep); }

  /* ---------- Workspace ---------- */
  .workspace{
    max-width:1500px; margin:0 auto; padding:0 32px 80px;
    display:grid; grid-template-columns:1fr; gap:24px;
  }
  @media (min-width:881px){
    .workspace{ grid-template-columns:400px 1fr; align-items:start; }
    #sidebar{ order:-1; position:sticky; top:82px; }
  }

  /* ---------- Map panel ---------- */
  #mapPanel{ background:var(--bg-soft); border:1px solid var(--line); border-radius:10px; padding:20px; }
  #mapPanel h2{ font-size:17px; }
  #mapPanel .hint{ font-size:15px; color:var(--ink-dim); margin:4px 0 14px; }
  .fix-row{ display:flex; gap:8px; margin-bottom:8px; }
  .fix-row select{ flex:1; padding:8px 10px; border:1px solid var(--line); border-radius:6px; font-size:15px; background:#fff; }
  .fix-row button{ padding:8px 12px; border-radius:6px; border:1px solid var(--teal); background:#fff; color:var(--teal-deep); font-size:15px; white-space:nowrap; }
  .fix-row button.on{ background:var(--teal); color:#fff; }
  .fix-hint{ font-size:15px; color:var(--ink-dim); background:var(--bg-soft); border-radius:6px; padding:8px 10px; margin-bottom:12px; line-height:1.6; display:none; }
  .fix-hint.show{ display:block; }
  #mapWrap.fixing{ cursor:crosshair; }
  #mapWrap.fixing img{ filter:brightness(0.97); }
  .map-wrap{ position:relative; width:100%; }
  .map-wrap img{ width:100%; border-radius:6px; border:1px solid var(--line); }

  #mapWrap{ --dot:11px; }
  .pin{ position:absolute; transform:translate(-50%,-50%); background:none; border:none; padding:2px;
    display:flex; flex-direction:column; align-items:center; z-index:1; }
  .pin .dot{ width:var(--dot); height:var(--dot); min-width:3px; min-height:3px; border-radius:50%; background:var(--pin);
    border:1px solid #fff; box-shadow:0 1px 1px rgba(0,0,0,.4); transition:.15s; box-sizing:border-box; }
  .pin.empty .dot{ background:var(--pin-empty); }
  .pin:hover .dot, .pin.active .dot{ width:calc(var(--dot) * 1.5); height:calc(var(--dot) * 1.5); }
  .pin:hover .dot{ background:var(--teal); }
  .pin.active .dot{ background:var(--teal-deep); }
  .pin:hover, .pin.active{ z-index:20; }
  .pin .label{ margin-top:2px; font-size:calc(var(--dot) * 0.6); color:#fff; background:rgba(33,29,25,0.9);
    padding:0.15em 0.5em; border-radius:4px; white-space:nowrap; opacity:0; transition:.15s; pointer-events:none; }
  .pin:hover .label, .pin.active .label{ opacity:1; }
  .pin.dim{ opacity:0.25; }
  .pin .badge{
    position:absolute; top:-5px; right:-6px; background:var(--ink); color:#fff;
    font-size:8px; line-height:1; font-weight:700; border-radius:8px;
    padding:1px 3px; border:1px solid #fff;
  }

  .legend{ display:flex; flex-wrap:wrap; gap:16px; margin-top:16px; font-size:15px; color:var(--ink-dim); }
  .legend span{ display:flex; align-items:center; gap:6px; }
  .legend i{ width:10px; height:10px; border-radius:50%; display:inline-block; }
  .map-note{ margin-top:14px; font-size:15px; color:var(--ink-dim); background:#fff; border:1px dashed var(--line); border-radius:6px; padding:10px 12px; line-height:1.6; }

  /* ---------- Sidebar (게시판) ---------- */
  #sidebar{ background:#fff; border:1px solid var(--card-border); border-radius:10px; padding:20px; }
  .sb-region{ font-family:'Oswald',sans-serif; font-size:15px; letter-spacing:1.5px; color:var(--teal-deep); }
  .sb-title{ font-size:22px; margin-top:4px; padding-bottom:14px; border-bottom:2px solid var(--ink); margin-bottom:16px; }

  .post-card{ border:1px solid var(--card-border); border-radius:8px; overflow:hidden; margin-bottom:14px; }
  .post-card .thumb{ width:100%; height:140px; background:linear-gradient(135deg,#20689A,#0C2E42);
    display:flex; align-items:center; justify-content:center; color:#E6F1F7; font-size:15px; letter-spacing:1px; }
  .post-card .thumb img{ width:100%; height:100%; object-fit:cover; }
  .thumb-grid{ display:grid; grid-template-columns:repeat(auto-fit, minmax(60px,1fr)); gap:3px; }
  .thumb-grid img{ width:100%; height:78px; object-fit:cover; display:block; }
  .post-card .body{ padding:14px; }
  .post-card h3{ font-size:16px; margin-bottom:8px; }
  .post-content{ font-size:16px; line-height:1.75; color:var(--ink); background:var(--bg-soft);
    border-radius:6px; padding:10px 12px; margin-bottom:12px; white-space:pre-wrap; }
  .post-card table{ width:100%; border-collapse:collapse; font-size:15px; }
  .post-card td{ padding:3px 0; vertical-align:top; }
  .post-card td.k{ width:58px; color:var(--ink-dim); white-space:nowrap; }
  .gpx-map{ width:100%; height:200px; border-radius:6px; margin:10px 0; border:1px solid var(--card-border); background:var(--bg-soft); }
  .gpx-map-wrap{ position:relative; cursor:pointer; }
  .gpx-map-expand{ position:absolute; bottom:18px; right:18px; background:rgba(33,29,25,0.75); color:#fff;
    font-size:15px; padding:5px 10px; border-radius:5px; pointer-events:none; }
  .gpx-modal{ display:none; position:fixed; top:0; left:0; right:0; bottom:0; background:rgba(20,20,20,0.65); z-index:200;
    align-items:center; justify-content:center; padding:20px; }
  .gpx-modal-inner{ background:#fff; border-radius:10px; padding:14px; width:100%; max-width:700px; position:relative; }
  .gpx-modal-inner h3{ margin:0 0 10px; font-size:15px; }
  #gpxModalSlot{ width:100%; }
  .gpx-map.gpx-map-enlarged{ width:100%; height:min(640px, 70vh); margin:0; }
  @supports (height: 1dvh){
    .gpx-map.gpx-map-enlarged{ height:min(640px, 70dvh); }
  }
  .gpx-modal-close{ position:absolute; top:10px; right:12px; background:none; border:none; font-size:20px;
    line-height:1; cursor:pointer; color:var(--ink-dim); z-index:2; }
  .post-links{ display:flex; gap:8px; margin-top:10px; flex-wrap:wrap; }
  .mini-link{ font-size:15px; padding:6px 10px; border-radius:6px; border:1px solid var(--line);
    background:#fff; color:var(--ink-dim); text-decoration:none; display:inline-block; }
  .mini-link:hover{ background:var(--bg-soft); }

  .empty-state{ text-align:center; color:var(--ink-dim); padding:34px 6px 24px; }
  .empty-state .icon{ font-size:22px; color:var(--pin-empty); margin-bottom:8px; }
  .empty-state p{ font-size:15px; line-height:1.7; }
  .empty-state .note{ margin-top:8px; font-size:15px; color:var(--teal-deep); font-weight:500; }

  .action-row{ display:flex; gap:8px; margin-top:16px; margin-bottom:16px; flex-wrap:wrap; }
  .action-row button{ flex:1; min-width:96px; padding:10px 8px; border-radius:6px; border:1px solid var(--line);
    background:var(--bg-soft); font-size:15px; color:var(--ink); transition:.15s; }
  .action-row button:hover{ background:#EFEAE0; }
  .action-row button.primary{ background:var(--teal); border-color:var(--teal); color:#fff; }
  .action-row button.primary:hover{ background:var(--teal-deep); }

  /* ---------- Add-post form ---------- */
  .add-form{ margin-top:16px; border-top:1px dashed var(--line); padding-top:16px; display:none; }
  .add-form.open{ display:block; }
  .add-form label{ display:block; font-size:15px; color:var(--ink-dim); margin:10px 0 4px; }
  .add-form input, .add-form textarea{
    width:100%; padding:8px 10px; border:1px solid var(--line); border-radius:6px;
    font-size:15px; font-family:inherit; color:var(--ink); background:#fff;
  }
  .add-form textarea{ resize:vertical; min-height:44px; }
  .add-form .save-btn{ margin-top:14px; width:100%; padding:11px; background:var(--ink); color:#fff;
    border:none; border-radius:6px; font-size:15px; }
  .add-form .save-btn:hover{ background:#000; }
  .save-msg{ font-size:15px; color:var(--teal-deep); margin-top:8px; display:none; }

  footer{ text-align:center; padding:26px; font-size:15px; color:var(--ink-dim); border-top:1px solid var(--line); }

/* Calendar 추가 스타일: 기존 색상 변수, 글꼴, 700/880px 반응형 기준을 사용합니다. */
main{max-width:1240px;margin:auto;padding:38px 32px 48px;line-height:1.7}.eyebrow{font-family:Oswald,sans-serif;color:var(--teal-deep);font-size:15px;letter-spacing:1.5px;margin:0 0 12px}.weekend-intro{margin-bottom:26px}.weekend-intro h1{font-size:clamp(26px,3.6vw,38px);line-height:1.4}.lead{font-size:16px;color:var(--ink-dim);line-height:1.9}.calendar-controls{display:flex;justify-content:space-between;align-items:center;gap:16px;flex-wrap:wrap;margin-bottom:24px;border-top:1px solid var(--line);padding-top:18px}.calendar-tabs{display:flex;gap:8px;flex-wrap:wrap}.calendar-controls button,#clearDay{padding:10px 16px;border:1px solid var(--line);border-radius:6px;background:var(--bg-soft);font-size:15px;color:var(--ink)}.calendar-controls button[aria-pressed=true]{background:var(--teal);border-color:var(--teal);color:#fff}#showAll{background:#fff;color:var(--ink-dim)}.weekend-layout{display:grid;grid-template-columns:360px minmax(0,1fr);gap:24px;align-items:start}.weekend-panel{background:var(--bg-soft);border:1px solid var(--line);padding:20px;border-radius:10px;position:sticky;top:82px}.weekend-panel h2{font-size:23px}.month-note,#context{font-size:15px;color:var(--ink-dim)}.weekdays,.calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:3px}.weekdays{text-align:center;font-size:15px;margin:18px 0 10px}.calendar-day,.calendar-blank{min-height:57px}.calendar-day{padding:7px;border:1px solid var(--line);background:#fff;border-radius:4px;font-size:15px;display:flex;flex-direction:column;gap:4px;align-items:flex-start}.calendar-day:nth-child(7n+1),.weekdays span:first-child{color:#b43f4c}.calendar-day:nth-child(7n),.weekdays span:last-child{color:var(--teal)}.calendar-day.has-trip{border-bottom:3px solid var(--teal)}.calendar-day[aria-pressed=true]{background:var(--teal);color:#fff}.day-count{font-size:15px;color:var(--teal)}.calendar-day[aria-pressed=true] .day-count{color:#fff}#clearDay{margin-top:12px;padding:6px 10px}.result-head,.card-top{display:flex;justify-content:space-between;align-items:center;gap:12px}.result-head h2{font-size:22px}.result-head span,.period{color:var(--teal-deep);font-size:15px}.card{border:1px solid var(--card-border);border-radius:8px;padding:22px;margin-top:18px}.card h3{font-size:23px;line-height:1.5;margin-top:8px}.status,.place{font-size:15px;color:var(--ink-dim)}.theme{font-size:15px;color:var(--teal-deep)}.ride-metrics{display:flex;gap:14px;flex-wrap:wrap;align-items:center;background:var(--bg-soft);padding:12px;border-radius:6px}.ride-metrics strong{font-size:23px;color:var(--teal-deep)}.ride-metrics span{font-size:15px}.note-field{margin:16px 0}.note-field h4{font-size:15px;color:var(--teal-deep);margin:0 0 4px}.note-field p{font-size:16px;line-height:1.8;margin:0}.pending{border-left:2px solid var(--line);padding-left:12px}.pending p{font-size:15px;color:var(--ink-dim)}.record-photo{margin:20px 0}.record-photo img{width:100%;height:auto;max-height:360px;object-fit:contain;background:var(--bg-soft)}figcaption{font-size:15px;color:var(--ink-dim);margin-top:6px}.trip-details{border-top:1px solid var(--line);padding-top:12px}.trip-details summary{font-size:15px;color:var(--teal-deep);cursor:pointer}.festival-source{border-top:1px solid var(--line);padding-top:12px;margin-top:18px}.festival-source p,.source{font-size:15px;color:var(--ink-dim)}.source{display:inline-block;text-decoration:underline;text-underline-offset:3px}.editor-note{border-top:1px solid var(--line);padding-top:24px;margin-top:30px}.editor-note p{font-size:15px;color:var(--ink-dim)}.empty{padding:24px;background:var(--bg-soft);border-radius:6px;font-size:15px}button:focus-visible,a:focus-visible,summary:focus-visible{outline:3px solid var(--teal);outline-offset:3px}[hidden]{display:none!important}@media(max-width:880px){.weekend-layout{grid-template-columns:1fr}.weekend-panel{position:static}.calendar-day,.calendar-blank{min-height:54px}}@media(max-width:700px){main{padding:26px 18px}.weekend-panel{padding:16px}.calendar-controls button{padding:9px 12px;font-size:15px}.card{padding:18px}.card h3{font-size:21px}.calendar-day{padding:6px}.note-field p{font-size:15px}}

/* 나의 계획 / 추천장소 / 전국축제정보 */.weekend-layout{grid-template-columns:360px minmax(0,1fr)}.weekend-layout section>.calendar-controls{border-top:0;padding-top:0;margin-bottom:20px}.empty-plan{font-size:15px;line-height:1.9;color:var(--ink-dim);padding:16px;background:#fff;border:1px dashed var(--line);border-radius:6px}.personal-plan{padding:14px;background:#fff;border:1px solid var(--line);border-radius:6px;margin:12px 0}.personal-plan h3{font-size:17px}.personal-plan p{margin:4px 0}.plan-note{font-size:15px;line-height:1.8}.plan-calendar{border-top:1px solid var(--line);padding-top:16px;margin-top:20px}.plan-calendar summary{font-size:15px;color:var(--teal-deep);cursor:pointer}.festival-directory{padding:22px;border:1px solid var(--card-border);border-radius:8px;margin:18px 0}.festival-directory h3{font-size:21px}.festival-directory p{font-size:16px;line-height:1.8;color:var(--ink-dim)}.festival-directory .source{font-size:15px;color:var(--teal-deep)}@media(max-width:880px){.weekend-layout{grid-template-columns:1fr}}

/* 일정 입력과 상세 보기: 메인 기록 패널의 테두리와 400px 폭을 사용 */.weekend-layout{grid-template-columns:400px minmax(0,1fr)}.weekend-panel{background:#fff;border-color:var(--card-border)}.weekend-layout section>.calendar-controls{justify-content:flex-end}.plan-heading,.month-selector,.dialog-heading{display:flex;align-items:center;justify-content:space-between;gap:12px}.plan-heading h2{font-size:22px}.plan-heading button,.month-selector button,#addPlan,.plan-dialog button{border:1px solid var(--line);background:var(--bg-soft);border-radius:6px;padding:8px 12px;color:var(--ink);font:inherit;font-size:15px}.month-selector{margin:20px 0 12px}.month-selector h3{font-size:17px}.month-selector button{font-size:21px;padding:2px 12px}#addPlan{width:100%;margin:10px 0;background:var(--teal);color:#fff;border-color:var(--teal)}#planStatus{font-size:15px;color:var(--ink-dim)}.plan-list-row{display:flex;align-items:flex-start;gap:12px;padding:12px;border-bottom:1px solid var(--line);width:100%;background:var(--bg-soft);border:0;border-left:3px solid var(--teal);text-align:left;color:var(--ink);margin:6px 0;font:inherit;font-size:15px}.plan-list-row .period{flex:0 0 56px;font-size:15px}.plan-calendar{border-top:1px solid var(--line)}.calendar-day{cursor:pointer;min-width:0}.calendar-day.has-trip{background:#edf4f9;border-color:var(--teal);font-weight:700;color:var(--teal-deep)}.calendar-subject{font-size:10px;line-height:1.4;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.plan-dialog{width:min(760px,calc(100vw - 32px));max-height:90dvh;border:1px solid var(--line);border-radius:10px;padding:24px;color:var(--ink);font-family:inherit}.plan-dialog::backdrop{background:rgba(20,20,20,.55)}.dialog-heading{margin-bottom:20px}.dialog-heading h2{font-size:22px}.dialog-heading button{font-size:22px;padding:0 10px}.plan-dialog label{display:block;font-size:15px;margin:12px 0}.plan-dialog input,.plan-dialog textarea{display:block;width:100%;font:inherit;padding:9px;border:1px solid var(--line);border-radius:6px;margin-top:5px;box-sizing:border-box}.input-row{display:grid;grid-template-columns:1fr 1fr;gap:16px}.plan-dialog fieldset{border:1px solid var(--line);margin:20px 0;padding:16px;border-radius:6px}.plan-dialog legend{font-size:15px}.block-actions,.form-actions,.plan-edit-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:14px}.form-actions button[type=submit]{background:var(--teal);color:#fff}.editor-block{border-bottom:1px dashed var(--line);padding-bottom:14px;margin-bottom:14px}.editor-block img{max-height:260px;width:auto}.editor-block textarea{width:100%;min-height:100px}.block-tools{display:flex;gap:6px;margin-top:8px}.plan-detail-table{width:100%;border-collapse:collapse;font-size:15px}.plan-detail-table th{width:110px;color:var(--ink-dim);font-weight:400;text-align:left}.plan-detail-table td,.plan-detail-table th{padding:7px 0;vertical-align:top;border-bottom:1px solid var(--line)}.plan-body p{white-space:pre-wrap;font-size:16px;line-height:1.8;color:#2E2925}.plan-body img{width:100%;height:auto;margin:20px 0;border-radius:6px}.plan-body figcaption{white-space:pre-wrap}.plan-selection{width:100%;margin:6px 0;text-align:left}#editorStatus{font-size:15px;white-space:pre-wrap}button:disabled{opacity:.55;cursor:default}@media(max-width:880px){.weekend-layout{grid-template-columns:1fr}}@media(max-width:700px){.input-row{grid-template-columns:1fr;gap:0}.plan-dialog{padding:18px}.plan-list-row{font-size:15px}}

/* 일정 먼저 / 오른쪽 상세 / 글·사진 통합 본문 */#rightFrame{scroll-margin-top:90px;outline:none}.plan-inline-card{border:1px solid var(--card-border);border-radius:8px;padding:22px;margin:18px 0}.plan-inline-card h3{font-size:22px;margin-bottom:15px}.back-to-plans{padding:8px 12px;background:var(--bg-soft);border:1px solid var(--line);border-radius:6px;font-size:15px}.plan-inline-card button{padding:8px 12px;border:1px solid var(--line);background:var(--bg-soft);border-radius:6px;color:var(--ink);font:inherit;font-size:15px}.body-toolbar{display:flex;gap:8px;flex-wrap:wrap;margin:12px 0}.editor-help{font-size:15px;color:var(--ink-dim);line-height:1.8}#planBodyEditor{min-height:280px;max-height:55vh;overflow:auto;border:1px solid var(--line);border-radius:6px;padding:14px;line-height:1.9;font-size:15px;white-space:pre-wrap;overflow-wrap:anywhere}#planBodyEditor:focus{outline:2px solid var(--teal)}#planBodyEditor:empty:before{content:attr(data-placeholder);color:var(--ink-dim);pointer-events:none}#planBodyEditor img{display:block;max-width:100%;height:auto;margin:14px 0}#planBodyEditor p{margin:8px 0;min-height:1.5em}.plan-body{overflow-wrap:anywhere}.plan-inline-card .plan-detail-table td{white-space:pre-wrap;overflow-wrap:anywhere}@media(max-width:700px){.plan-inline-card{padding:18px}.plan-detail-table th{width:90px}.calendar-tabs button{font-size:15px}}

/* 참가신청 (카카오톡 오픈채팅) */
.plan-join{margin-top:20px;display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap;padding:16px 18px;border-radius:10px;background:#FFF8D6;border:1px solid #F2E29A}
.plan-join-text{display:flex;flex-direction:column;gap:4px;min-width:0}
.plan-join-text strong{font-size:15px;color:var(--ink)}
.plan-join-text span{font-size:15px;color:var(--ink-dim);line-height:1.5}
.plan-join-btn{flex:none;display:inline-flex;align-items:center;padding:10px 16px;border-radius:8px;background:#FEE500;color:#191919;font-weight:700;font-size:15px;text-decoration:none}
.plan-join-btn:hover{background:#F5DC00}
.plan-join.ended{background:var(--bg-soft);border-color:var(--line)}
.join-fields label{display:block}
@media (max-width:520px){.plan-join-btn{width:100%;justify-content:center}}

/* 시간 선택 (24시간 · 30분 단위) */
.plan-dialog select{display:block;width:100%;font:inherit;padding:9px;border:1px solid var(--line);border-radius:6px;margin-top:5px;box-sizing:border-box;background:#fff;color:var(--ink)}

/* 계획 → 투어코스로 옮기기 */
.plan-edit-actions a{display:inline-flex;align-items:center;padding:8px 14px;border-radius:6px;background:var(--teal);color:#fff;font-size:15px;text-decoration:none;margin-left:auto}
.plan-edit-actions a:hover{background:var(--teal-deep)}

/* 상단 메뉴: About 아래 커뮤니티 */
#mainNav{overflow:visible}
.nav-sub{position:relative;display:flex;align-items:center}
.nav-sub .sub{display:none;position:absolute;top:100%;right:-14px;margin-top:10px;flex-direction:column;gap:2px;background:#fff;border:1px solid #E5E1D8;border-radius:8px;box-shadow:0 8px 24px rgba(0,0,0,.1);padding:6px;min-width:160px;z-index:80}
.nav-sub .sub::before{content:"";position:absolute;left:0;right:0;top:-12px;height:12px}
.nav-sub.open .sub{display:flex}
#mainNav .nav-sub .sub a{padding:9px 12px;border:0;border-radius:6px;white-space:nowrap;width:auto}
#mainNav .nav-sub .sub a:hover{background:#F7F5F0}
@media (max-width:1080px){#mainNav{gap:20px}}
@media (max-width:700px){
  #mainNav{gap:0}
  .nav-sub{flex-direction:column;align-items:stretch;width:100%}
  .nav-sub .sub{display:flex;position:static;margin:0;box-shadow:none;border:0;border-radius:0;padding:0 0 4px 18px;min-width:0}
  .nav-sub .sub::before{display:none}
}

/* 푸터: 강조색 바탕 · 모든 페이지 같은 형식 */
footer.site-foot{background:#154D75;color:#fff;text-align:center;padding:34px 20px 30px;border-top:0;margin-top:0;display:flex;flex-direction:column;align-items:center;gap:8px;font-family:'Noto Sans KR',sans-serif}
footer.site-foot .ft-label{font:500 15px/1.4 'Oswald','Noto Sans KR',sans-serif;letter-spacing:2px;text-transform:uppercase;color:rgba(255,255,255,.72)}
footer.site-foot .ft-copy{font-size:16px;font-weight:700;line-height:1.5;color:#fff}
footer.site-foot .ft-admin{margin-top:6px;font-size:15px;color:rgba(255,255,255,.6);text-decoration:underline;text-underline-offset:3px}
footer.site-foot .ft-admin:hover{color:#fff}
/* 상단 메뉴 글자 */
#mainNav > a, #mainNav .nav-sub > a{font-size:16px;font-weight:700}
