/* 檔案位置：jonaminz-travel/styles.css
   時間戳：2026-07-25 11:33 UTC+8
   用途：Travel 現有視覺系統與低干擾同步狀態／衝突處理樣式。

   Jonaminz Travel — 樣式改版（2026-07-14），照交接包
   REFERENCE/v0.5.1-visual-prototype-standalone.html 的「Journey
   Builder」畫面設計語言重做（色票、字體、卡片樣式都是從那份參考檔
   摘出來的真實數值，不是憑空另外設計一套）。只重做這個畫面本身的
   呈現層，資料模型/邏輯（Trip/Place/Day/Stop CRUD）不變。 */

:root{
  --bg:#eee5d7;
  --paper:#f8f2e7;
  --surface:rgba(250,246,238,.82);
  --ink:#244154;
  --text:#373a37;
  --muted:#807c74;
  --rust:#a55f45;
  --sage:#859783;
  --sand:#c4a37b;
  --line:rgba(50,58,54,.13);
  --shadow:0 22px 58px rgba(65,53,40,.12);
  --serif:"Iowan Old Style","Baskerville","Noto Serif TC","Songti TC",Georgia,serif;
  --sans:Inter,"PingFang TC","Microsoft JhengHei",system-ui,sans-serif;
}

*{box-sizing:border-box}
html{font-size:16px}
body{
  margin:0;
  min-height:100vh;
  background:radial-gradient(circle at 12% 5%,rgba(255,255,255,.9),transparent 25%),
              linear-gradient(145deg,#f3ebdf,#e7dccb);
  font-family:var(--sans);
  color:var(--text);
  line-height:1.55;
}
button,input,textarea,select{font:inherit}
button{cursor:pointer}
button:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid rgba(165,95,69,.28);outline-offset:2px}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}

/* ---- top bar ---- */

.travel-header{
  display:flex;align-items:center;justify-content:space-between;
  max-width:1320px;margin:0 auto;padding:24px 30px 20px;
}
.travel-brand{font:700 22px var(--serif);color:var(--ink);letter-spacing:-.02em}
.travel-brand i{display:inline-block;width:6px;height:6px;border-radius:50%;background:var(--rust);margin-left:6px;vertical-align:middle}

.travel-sync-control{position:relative;margin-left:auto;z-index:2100}
.travel-sync-pill{
  display:inline-flex;align-items:center;gap:8px;padding:8px 12px;
  border:1px solid var(--line);border-radius:999px;background:rgba(250,246,238,.72);
  color:var(--ink);box-shadow:0 8px 22px rgba(65,53,40,.08);
  backdrop-filter:blur(12px);cursor:default;
}
.travel-sync-pill span{width:8px;height:8px;border-radius:50%;background:#b08b5f;box-shadow:0 0 0 4px rgba(176,139,95,.12)}
.travel-sync-pill b{font-size:11px;letter-spacing:.04em}
.travel-sync-pill[data-sync-state="synced"] span{background:#688673;box-shadow:0 0 0 4px rgba(104,134,115,.13)}
.travel-sync-pill[data-sync-state="syncing"] span{background:var(--rust);box-shadow:0 0 0 4px rgba(165,95,69,.13);animation:sync-breathe 1.25s ease-in-out infinite}
.travel-sync-pill[data-sync-state="conflict"]{border-color:rgba(165,95,69,.32);background:#fff5e8;cursor:pointer}
.travel-sync-pill[data-sync-state="conflict"] span{background:#a84f39;box-shadow:0 0 0 4px rgba(168,79,57,.13)}
@keyframes sync-breathe{50%{opacity:.38;transform:scale(.72)}}
.travel-sync-conflict{
  position:absolute;right:0;top:calc(100% + 10px);width:min(360px,calc(100vw - 32px));
  border:1px solid rgba(165,95,69,.22);border-radius:18px;background:#fffaf2;
  color:var(--text);padding:18px;box-shadow:0 24px 60px rgba(43,49,46,.2);
}
.travel-sync-conflict:before{content:"";position:absolute;right:24px;top:-6px;width:11px;height:11px;border-left:1px solid rgba(165,95,69,.22);border-top:1px solid rgba(165,95,69,.22);background:#fffaf2;transform:rotate(45deg)}
.travel-sync-conflict small{display:block;color:var(--rust);font-size:9px;font-weight:800;letter-spacing:.17em}
.travel-sync-conflict strong{display:block;margin-top:5px;color:var(--ink);font:700 18px var(--serif)}
.travel-sync-conflict p{margin:7px 0 14px;color:var(--muted);font-size:11px;line-height:1.65}
.travel-sync-conflict div{display:flex;gap:7px}
.travel-sync-conflict button{flex:1;border:1px solid var(--line);border-radius:10px;background:transparent;color:var(--ink);padding:9px;font-size:11px;font-weight:700}
.travel-sync-conflict button:last-child{border-color:var(--ink);background:var(--ink);color:#fff}

.travel-main{max-width:1320px;margin:0 auto;padding:0 30px 60px}

/* ---- trip switcher ---- */

.trip-bar{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-bottom:18px;padding:8px;border:1px solid var(--line);border-radius:16px;background:rgba(250,246,238,.55)}
.trip-chip{
  padding:9px 16px;border-radius:999px;border:1px solid var(--line);
  background:var(--surface);color:var(--text);font-size:13px;
}
.trip-chip[data-active="true"]{background:var(--ink);border-color:var(--ink);color:#fff;font-weight:700}
.new-trip-form{display:flex;gap:8px}
.trip-bar-create{margin-left:auto}
.new-trip-form input{
  padding:9px 13px;border-radius:10px;border:1px solid var(--line);
  background:var(--surface);font-size:13px;
}
.new-trip-form select{padding:9px 12px;border-radius:10px;border:1px solid var(--line);background:var(--surface);color:var(--text)}
.inline-create-form{margin-bottom:13px;flex-wrap:wrap}
.btn{
  padding:9px 16px;border-radius:11px;border:1px solid var(--ink);
  background:var(--ink);color:#fff;font-size:13px;font-weight:700;
  box-shadow:0 9px 18px rgba(36,65,84,.17);
}
.btn[data-variant="ghost"]{
  background:transparent;color:var(--ink);border:1px solid var(--line);
  box-shadow:none;font-weight:600;
}
.btn:hover{filter:brightness(1.06);transform:translateY(-1px)}
.btn:active{transform:translateY(0)}
.welcome-start{align-self:flex-start;margin-top:30px;background:#ead8b8;border-color:#ead8b8;color:#294653;padding:13px 21px}

/* ---- new journey studio ---- */

.wizard-backdrop{position:fixed;inset:0;z-index:2200;padding:30px;display:grid;place-items:center;background:rgba(29,37,38,.58);backdrop-filter:blur(9px)}
.trip-wizard{width:min(940px,100%);max-height:calc(100vh - 60px);overflow:auto;border:1px solid rgba(255,255,255,.28);border-radius:28px;background:#f7efe3;box-shadow:0 35px 90px rgba(22,28,29,.35)}
.trip-wizard>header{display:flex;justify-content:space-between;gap:20px;align-items:flex-start;padding:28px 31px 23px;background:linear-gradient(125deg,#294756,#657a70);color:#fff}
.trip-wizard>header small{color:#e5cba7;font-size:10px;letter-spacing:.17em}.trip-wizard>header h2{font:700 31px/1.12 var(--serif);margin:7px 0 0}
.trip-wizard>header button{width:38px;height:38px;border:1px solid rgba(255,255,255,.25);border-radius:50%;background:rgba(255,255,255,.08);color:#fff;font-size:21px}
.trip-wizard form{padding:24px 30px 28px}
.wizard-methods{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}
.wizard-method{min-height:130px;text-align:left;border:1px solid var(--line);border-radius:17px;background:#fffaf2;color:var(--ink);padding:16px;display:grid;grid-template-columns:42px 1fr;grid-template-rows:auto 1fr;gap:2px 10px}
.wizard-method i{grid-row:1/3;width:40px;height:40px;display:grid;place-items:center;border-radius:12px;background:#e8ded0;color:var(--rust);font:700 12px var(--serif);font-style:normal}
.wizard-method b{font:700 16px var(--serif)}.wizard-method span{font-size:11px;color:var(--muted);line-height:1.55}
.wizard-method.active{background:var(--ink);border-color:var(--ink);color:#fff;box-shadow:0 13px 27px rgba(36,65,84,.2)}.wizard-method.active i{background:#ead7b7;color:var(--ink)}.wizard-method.active span{color:rgba(255,255,255,.68)}
.wizard-fields{display:grid;grid-template-columns:1.4fr 1.2fr 1fr 1fr;gap:11px;margin-top:18px}.wizard-fields label,.wizard-pdf label{font-size:10px;letter-spacing:.08em;color:#8d7259;font-weight:800}
.wizard-fields input,.wizard-fields select{display:block;width:100%;margin-top:6px;border:1px solid var(--line);border-radius:11px;background:#fffaf2;color:var(--text);padding:11px 12px;font-size:13px;letter-spacing:0}
.wizard-fields label:last-child:nth-child(5){grid-column:1/-1}
.wizard-pdf{margin-top:16px;display:grid;grid-template-columns:1fr auto;gap:10px;align-items:center}
.pdf-drop{min-height:78px;border:1px dashed #ad8c6c;border-radius:14px;background:#fffaf2;padding:14px 16px;display:flex;flex-direction:column;justify-content:center;cursor:pointer}.pdf-drop input{position:absolute;opacity:0;pointer-events:none}.pdf-drop b{font:700 14px var(--serif);color:var(--ink);letter-spacing:0}.pdf-drop span{font-size:10px;color:var(--muted);letter-spacing:0;margin-top:3px}
.pdf-progress{grid-column:1/-1;display:flex;justify-content:space-between;border-radius:10px;background:#e6dccd;padding:8px 11px;color:var(--ink);font-size:11px}.wizard-error{grid-column:1/-1;color:#9b4735;font-size:12px;margin:0}
.wizard-discovered{margin-top:15px;padding:14px;border:1px solid var(--line);border-radius:14px;background:rgba(255,255,255,.42)}.wizard-discovered>b{font:700 13px var(--serif);color:var(--ink)}.wizard-discovered>div{display:flex;gap:6px;flex-wrap:wrap;margin-top:9px}.wizard-discovered span{border-radius:999px;background:#e4d9ca;color:#5f625c;padding:5px 9px;font-size:10px}
.trip-wizard form>footer{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-top:21px;padding-top:17px;border-top:1px solid var(--line)}.trip-wizard form>footer span{font-size:11px;color:var(--muted)}

/* ---- import inbox and travel database ---- */

.import-inbox{margin-top:22px;border-radius:24px;background:linear-gradient(145deg,#284654,#3d6265);color:#fff;padding:25px;box-shadow:var(--shadow)}
.import-inbox>header,.guide-library>header{display:flex;justify-content:space-between;align-items:flex-start;gap:18px;margin-bottom:16px}.import-inbox header small,.guide-library header small{font-size:10px;letter-spacing:.16em;color:#dfc49f}.import-inbox header h2,.guide-library header h2{font:700 25px var(--serif);margin:3px 0}.import-inbox header p{margin:3px 0 0;color:rgba(255,255,255,.66);font-size:11px}.import-inbox>header>b{border-radius:999px;background:#e4c9a5;color:#294653;padding:6px 10px;font-size:10px;white-space:nowrap}
.import-inbox>div{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.import-card{display:grid;grid-template-columns:38px minmax(0,1fr) auto;gap:10px;align-items:start;border:1px solid rgba(255,255,255,.13);border-radius:14px;background:rgba(255,255,255,.07);padding:12px}.import-icon{width:36px;height:36px;border-radius:10px;display:grid;place-items:center;background:#e6d2b4;color:#294653;font-weight:800}.import-card>div:nth-child(2){min-width:0;display:flex;flex-direction:column}.import-card small{font-size:9px;color:#e3c9a6}.import-card b{font:700 13px var(--serif);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin:2px 0}.import-card p{font-size:9px;line-height:1.5;color:rgba(255,255,255,.6);margin:0;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.import-actions{display:flex;flex-direction:column;gap:4px}.import-actions button{border:1px solid rgba(255,255,255,.18);border-radius:8px;background:transparent;color:#fff;padding:6px 7px;font-size:9px;white-space:nowrap}.import-actions button:first-child{background:#e6d2b4;color:#294653;border-color:#e6d2b4;font-weight:800}
.guide-library{margin-top:18px;border:1px solid var(--line);border-radius:23px;background:var(--surface);padding:23px}.guide-library header small{color:var(--rust)}.guide-library header span{font-size:11px;color:var(--muted)}.guide-library>div{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:9px}.guide-card{border:1px solid var(--line);border-radius:14px;background:#fffaf2;padding:14px;min-height:120px;display:flex;flex-direction:column}.guide-card small{font-size:9px;color:var(--rust);letter-spacing:.08em}.guide-card b{font:700 14px/1.3 var(--serif);color:var(--ink);margin:5px 0}.guide-card p{font-size:10px;color:var(--muted);margin:0;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}

.empty-panel{
  border:1px dashed #ad9a81;border-radius:18px;padding:60px 20px;
  text-align:center;color:var(--muted);font-size:14px;background:var(--surface);
}

/* ---- first-run travel library ---- */

.welcome-shell{
  min-height:590px;border:1px solid var(--line);border-radius:30px;
  background:
    radial-gradient(circle at 76% 18%,rgba(229,205,164,.20),transparent 28%),
    linear-gradient(132deg,#243f50 0%,#385763 45%,#758477 100%);
  color:#fff;box-shadow:var(--shadow);overflow:hidden;position:relative;
  display:grid;grid-template-columns:minmax(0,1fr) minmax(440px,.9fr);gap:36px;
  padding:56px 58px 48px;
}
.welcome-shell:before{content:"";position:absolute;width:520px;height:520px;border:1px solid rgba(255,255,255,.08);border-radius:50%;right:-180px;top:-270px;box-shadow:0 0 0 78px rgba(255,255,255,.025),0 0 0 156px rgba(255,255,255,.018)}
.welcome-copy{position:relative;z-index:2;display:flex;flex-direction:column;justify-content:center;max-width:610px}
.welcome-copy>small{font-size:12px;letter-spacing:.19em;color:#e2cba7;font-weight:700}
.welcome-copy h1{font:700 clamp(42px,5vw,68px)/1.04 var(--serif);letter-spacing:-.055em;margin:18px 0 20px}
.welcome-copy>p{max-width:560px;font-size:15px;line-height:1.8;color:rgba(255,255,255,.78);margin:0}
.welcome-form{margin-top:32px;max-width:560px}
.welcome-form>label{display:block;font-size:12px;letter-spacing:.12em;color:#dfc9aa;margin-bottom:9px;font-weight:700}
.welcome-form>div{display:flex;gap:9px;padding:7px;border:1px solid rgba(255,255,255,.18);border-radius:16px;background:rgba(255,255,255,.09);backdrop-filter:blur(12px)}
.welcome-form input{min-width:0;flex:1;border:0;background:transparent;color:#fff;padding:9px 11px;outline:0;font-size:15px}
.welcome-form input::placeholder{color:rgba(255,255,255,.48)}
.welcome-form .btn{background:#ead8b8;border-color:#ead8b8;color:#294653;box-shadow:0 12px 25px rgba(17,34,43,.2);white-space:nowrap;padding-inline:20px}
.local-note{font-size:12px!important;color:rgba(255,255,255,.58)!important;margin-top:13px!important}
.local-note span{color:#a8c6ad;font-size:8px;margin-right:7px}
.welcome-visual{position:relative;z-index:2;min-height:470px;display:grid;place-items:center}
.welcome-book{width:min(390px,90%);min-height:470px;padding:28px 30px 24px;border-radius:8px 24px 24px 8px;background:linear-gradient(145deg,#fbf5ea,#e9ddca);color:var(--ink);box-shadow:-18px 28px 55px rgba(15,26,31,.30),inset 10px 0 18px rgba(72,56,36,.07);transform:rotate(2.5deg);position:relative;overflow:hidden}
.welcome-book:after{content:"";position:absolute;left:13px;top:0;bottom:0;width:1px;background:rgba(73,61,45,.13);box-shadow:4px 0 7px rgba(73,61,45,.08)}
.book-meta,.book-foot{display:flex;justify-content:space-between;gap:12px;font-size:10px;letter-spacing:.12em;color:#8b765f}
.book-meta b{color:var(--rust)}
.book-title{padding:40px 0 25px;border-bottom:1px solid rgba(54,63,58,.13)}
.book-title small{font-size:9px;letter-spacing:.18em;color:#a07857}
.book-title h2{font:700 50px/.88 var(--serif);letter-spacing:-.06em;margin:10px 0 0}
.route-preview{padding:20px 0 15px;display:flex;flex-direction:column;gap:9px}
.route-preview article{display:grid;grid-template-columns:34px 1fr;gap:10px;align-items:center;padding:10px;border:1px solid rgba(54,63,58,.11);border-radius:11px;background:rgba(255,255,255,.38)}
.route-preview article i{width:30px;height:30px;border-radius:50%;display:grid;place-items:center;background:var(--ink);color:#fff;font-style:normal;font:700 10px var(--serif)}
.route-preview article div{display:flex;flex-direction:column}.route-preview article b{font:700 13px var(--serif)}.route-preview article span{font-size:10px;color:#827b70;margin-top:2px}
.route-preview article.future{opacity:.55}.route-preview article.future i{background:#aa9071}
.book-foot{position:absolute;left:30px;right:25px;bottom:22px}
.postcard{position:absolute;width:155px;border:1px solid rgba(54,63,58,.12);border-radius:14px;padding:14px;background:#faf3e8;color:var(--ink);box-shadow:0 15px 28px rgba(20,31,34,.23);display:flex;flex-direction:column}
.postcard span{font-size:9px;letter-spacing:.15em;color:var(--rust)}.postcard b{font:700 14px var(--serif);margin-top:5px}.postcard em{font-style:normal;font-size:10px;color:#8a8277;margin-top:2px}
.postcard-a{left:-4px;top:60px;transform:rotate(-8deg)}.postcard-b{right:-4px;bottom:42px;transform:rotate(7deg)}
.welcome-steps{margin-top:16px;display:grid;grid-template-columns:repeat(4,1fr);gap:10px}
.welcome-steps article{border:1px solid var(--line);background:rgba(250,246,238,.7);border-radius:15px;padding:14px 16px;display:flex;align-items:center;gap:12px}
.welcome-steps article>b{font:700 19px var(--serif);color:var(--rust)}
.welcome-steps article div{display:flex;flex-direction:column}.welcome-steps strong{font-size:13px;color:var(--ink)}.welcome-steps span{font-size:11px;color:var(--muted);margin-top:2px}
.welcome-steps article.active{background:var(--ink);border-color:var(--ink)}.welcome-steps article.active>b,.welcome-steps article.active strong{color:#fff}.welcome-steps article.active span{color:rgba(255,255,255,.62)}
.welcome-steps article.muted{opacity:.56}

/* ---- builder hero ---- */

.builder-hero{
  min-height:230px;border-radius:26px;padding:34px 40px;
  background:linear-gradient(132deg,#2b4555,#6e7b70);
  color:#fff;display:flex;justify-content:space-between;align-items:center;
  gap:24px;box-shadow:var(--shadow);overflow:hidden;flex-wrap:wrap;
  margin-bottom:18px;
}
.builder-hero>div:first-child{max-width:640px}
.builder-hero small{font-size:11px;letter-spacing:.18em;color:#dfc8a8}
.builder-hero h1{font:700 36px/1.1 var(--serif);letter-spacing:-.03em;margin:10px 0}
.builder-hero p{font-size:14px;line-height:1.7;color:rgba(255,255,255,.76);margin:0;max-width:620px}
.phase-chip{display:inline-block;margin-top:14px;border:1px solid rgba(255,255,255,.18);border-radius:999px;padding:6px 10px;font-size:10px;letter-spacing:.12em;color:#ead7b7;background:rgba(255,255,255,.06)}
.builder-flow{display:flex;align-items:center;gap:9px;margin-top:18px;flex-wrap:wrap}
.builder-flow span{
  display:flex;align-items:center;gap:7px;border:1px solid rgba(255,255,255,.18);
  background:rgba(255,255,255,.07);border-radius:999px;padding:8px 12px;font-size:12px;
}
.builder-flow span b{
  width:20px;height:20px;border-radius:50%;background:#ead7b7;color:#314a57;
  display:grid;place-items:center;font-size:11px;
}
.builder-flow i{font-style:normal;opacity:.55}
.builder-summary{
  width:250px;flex:0 0 auto;border:1px solid rgba(255,255,255,.18);
  background:rgba(255,255,255,.08);border-radius:18px;padding:16px;
}
.builder-summary h3{font:700 20px var(--serif);margin:4px 0 12px}
.builder-summary>div{
  display:flex;justify-content:space-between;align-items:center;
  padding:8px 0;border-top:1px solid rgba(255,255,255,.12);
}
.builder-summary>div span{font-size:12px;color:rgba(255,255,255,.72)}
.builder-summary>div b{font:700 20px var(--serif)}
.trip-delete{width:100%;margin-top:12px;border:1px solid rgba(255,255,255,.22);border-radius:10px;background:transparent;color:rgba(255,255,255,.68);padding:8px 10px;font-size:11px;font-weight:700}
.trip-delete:hover{border-color:#f0c4b5;color:#fff;background:rgba(126,48,35,.18)}

/* ---- toolbar ---- */

.builder-toolbar{display:grid;grid-template-columns:minmax(220px,1fr) auto auto;gap:12px;align-items:center;margin:0 0 13px}
.search{
  height:42px;border:1px solid var(--line);background:var(--surface);
  border-radius:12px;display:flex;align-items:center;gap:8px;padding:0 13px;
}
.search svg{width:15px;color:#85867f;flex:0 0 auto}
.search input{width:100%;border:0;background:transparent;outline:none;font-size:13px}
.builder-filters{display:flex;gap:4px;background:#e5dacb;padding:3px;border-radius:11px;flex-wrap:wrap}
.builder-filters button{border:0;background:transparent;border-radius:8px;padding:8px 12px;font-size:12px;color:#74766f}
.builder-filters button.active{background:#faf6ef;color:var(--ink);font-weight:700;box-shadow:0 3px 7px rgba(56,47,37,.08)}

/* ---- 3-column board ---- */

.builder-layout{display:grid;grid-template-columns:290px minmax(0,1fr) 250px;gap:13px;align-items:start}
@media (max-width:980px){.builder-layout{grid-template-columns:1fr}}

.place-pool-panel,.journey-board-panel,.generation-panel{
  border:1px solid var(--line);background:var(--surface);border-radius:18px;
}
.place-pool-panel,.generation-panel{padding:15px}
.journey-board-panel{padding:15px;overflow:hidden}
.place-pool-panel>header,.generation-panel>header,.journey-board-head{
  display:flex;justify-content:space-between;align-items:flex-end;margin-bottom:12px;gap:8px;
}
.place-pool-panel small,.generation-panel small,.journey-board-head small{
  font-size:12px;letter-spacing:.13em;color:#a18160;
}
.place-pool-panel h3,.generation-panel h3,.journey-board-head h3{
  font:700 16px var(--serif);color:var(--ink);margin:3px 0;
}
.place-pool-panel header>span{font-size:12px;color:#8a867e}
.journey-board-head>div:last-child{display:flex;gap:8px;flex-wrap:wrap}

.builder-place-pool{display:flex;flex-direction:column;gap:9px;max-height:640px;overflow:auto;padding-right:2px}
.builder-place-card{
  border:1px solid var(--line);background:#f7efe3;border-radius:12px;padding:10px 12px;
  display:flex;align-items:center;gap:10px;
}
.builder-place-card .place-icon{
  width:38px;height:38px;border-radius:9px;background:#e7ddcf;flex:0 0 auto;
  display:grid;place-items:center;font-size:15px;
}
.builder-place-card>div{display:flex;flex-direction:column;min-width:0;flex:1}
.builder-place-card b{font:700 13px var(--serif);color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.builder-place-card em{font-style:normal;font-size:12px;color:#96775a;margin-top:3px}
.assign-select{
  padding:5px 8px;border-radius:8px;border:1px solid var(--line);
  background:#fcf8f1;font-size:12px;color:#56605d;max-width:96px;
}

.builder-day-board{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:11px;align-items:start}
.builder-day-column{border:1px solid var(--line);background:#f7efe3;border-radius:14px;padding:11px;min-height:160px}
.builder-day-column>header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:9px}
.builder-day-column header small{font-size:12px;color:#9c7a59}
.builder-day-column header h4{font:700 17px var(--serif);color:var(--ink);margin:3px 0}
.builder-stop-list{display:flex;flex-direction:column;gap:6px}
.builder-stop{
  display:flex;align-items:center;gap:8px;
  border:1px solid rgba(58,62,58,.08);background:#fffaf2;border-radius:10px;padding:8px 10px;
}
.builder-stop>div{display:flex;flex-direction:column;flex:1;min-width:0}
.builder-stop b{font-size:13px;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.builder-stop-actions{display:flex;gap:2px;flex:0 0 auto}
.icon-btn{width:24px;height:24px;border:0;background:transparent;color:#8b7560;border-radius:7px;font-size:12px;display:grid;place-items:center}
.icon-btn:hover{background:#eee5d8}
.icon-btn:disabled{opacity:.3;cursor:not-allowed}
.builder-day-empty{border:1px dashed #ad9a81;border-radius:10px;padding:18px 10px;text-align:center;font-size:12px;color:#87837c}

.generation-rule{display:flex;gap:10px;align-items:flex-start;border:1px solid var(--line);background:#f7efe3;border-radius:11px;padding:10px;margin-bottom:8px}
.rule-icon{width:32px;height:32px;border-radius:50%;background:#e7ddcf;display:grid;place-items:center;color:var(--ink);flex:0 0 auto;font-size:14px}
.generation-rule div{display:flex;flex-direction:column}
.generation-rule b{font-size:13px;color:var(--ink)}
.generation-rule p{font-size:12px;line-height:1.5;color:#7e7b74;margin:3px 0 0}
.generation-note{
  border:1px dashed #ad9a81;border-radius:11px;padding:12px;margin-top:10px;
  font-size:12px;color:#87837c;line-height:1.6;
}
.generation-note b{color:var(--rust)}

.travel-footer{text-align:center;padding:24px;font-size:12px}
.travel-footer a{color:var(--muted)}

@media (max-width:1080px){
  .welcome-shell{grid-template-columns:1fr minmax(360px,.8fr);padding:45px 40px}
  .welcome-book{width:330px}.postcard{display:none}
  .welcome-steps{grid-template-columns:repeat(2,1fr)}
  .builder-toolbar{grid-template-columns:1fr auto}.builder-filters{grid-column:1/-1;grid-row:2}
}

@media (max-width:760px){
  .travel-header{padding:18px 18px 15px}.travel-brand{font-size:19px}
  .travel-main{padding:0 14px 36px}
  .welcome-shell{min-height:auto;grid-template-columns:1fr;padding:34px 24px 28px;border-radius:23px}
  .welcome-copy h1{font-size:clamp(38px,12vw,54px)}
  .welcome-visual{min-height:400px}.welcome-book{min-height:400px;width:min(340px,92%);padding:24px}.book-title{padding:26px 0 18px}.book-title h2{font-size:43px}.route-preview{padding-top:15px}.book-foot{left:24px;bottom:18px}
  .welcome-steps{grid-template-columns:1fr 1fr}.welcome-steps article{padding:12px}
  .trip-bar{align-items:stretch}.trip-bar-create{width:100%;margin-left:0}.trip-bar-create input{flex:1;min-width:0}
  .builder-hero{padding:28px 24px;border-radius:22px}.builder-hero h1{font-size:32px}.builder-summary{width:100%}
  .builder-toolbar{display:flex;flex-wrap:wrap}.search{width:100%}.builder-filters{width:100%;overflow:auto;flex-wrap:nowrap}.builder-toolbar>.btn{margin-left:auto}
  .new-trip-form{flex-wrap:wrap}.new-trip-form input{flex:1;min-width:150px}
}

@media (max-width:500px){
  .welcome-form>div{flex-direction:column}.welcome-form .btn{width:100%}
  .welcome-visual{min-height:370px}.welcome-book{width:100%;min-height:370px}.route-preview article{padding:8px}.book-foot{font-size:8px}
  .welcome-steps{grid-template-columns:1fr}
  .builder-flow i{display:none}.builder-flow span{flex:1 1 45%}
  .builder-day-board{grid-template-columns:1fr}.builder-toolbar>.btn{width:100%;margin:0}
  .travel-footer{padding:18px 10px}
}

/* ---- map-centered Journey Builder (2026-07-23) ---- */

.builder-layout{
  grid-template-columns:minmax(250px,280px) minmax(390px,.92fr) minmax(410px,1.08fr);
}
.place-pool-panel,.journey-board-panel,.map-panel{
  border:1px solid var(--line);background:var(--surface);border-radius:18px;
}
.place-pool-panel,.journey-board-panel,.map-panel{padding:15px}
.place-pool-panel>header,.map-panel>header,.journey-board-head{
  display:flex;justify-content:space-between;align-items:flex-end;margin-bottom:12px;gap:8px;
}
.place-pool-panel small,.map-panel small,.journey-board-head small{
  font-size:11px;letter-spacing:.13em;color:#a18160;
}
.place-pool-panel h3,.map-panel h3,.journey-board-head h3{
  font:700 17px var(--serif);color:var(--ink);margin:3px 0;
}
.map-panel{
  position:sticky;top:14px;min-width:0;box-shadow:0 16px 38px rgba(64,54,43,.08);
}
.map-panel header>span{font-size:11px;color:var(--muted)}
.journey-map{
  height:600px;border-radius:14px;overflow:hidden;background:#dbe1db;
  border:1px solid rgba(55,65,60,.15);isolation:isolate;
}
.journey-map.is-picking{cursor:crosshair;box-shadow:0 0 0 4px rgba(165,95,69,.2)}
.map-fallback{
  height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;
  text-align:center;gap:7px;padding:30px;color:var(--ink);
  background:linear-gradient(145deg,#e8e3d7,#cedbd4);
}
.map-fallback span{font-size:12px;color:#626c67;max-width:270px}
.map-day-tabs{display:flex;gap:5px;margin-bottom:9px;overflow:auto;padding-bottom:1px}
.map-day-tabs button{
  flex:0 0 auto;border:1px solid var(--line);border-radius:999px;background:#f7efe3;
  color:#6f756f;padding:6px 11px;font-size:11px;font-weight:700;
}
.map-day-tabs button.active{background:var(--ink);border-color:var(--ink);color:#fff}
.map-actions{display:grid;grid-template-columns:auto 1fr;gap:7px;margin-top:9px}
.map-actions .btn{display:flex;align-items:center;justify-content:center;text-decoration:none}
.map-google{background:var(--rust);border-color:var(--rust)}
.map-hint{font-size:11px;color:var(--muted);margin:8px 2px 0;line-height:1.5}

.travel-marker-wrap{background:transparent;border:0}
.travel-marker{
  display:grid;place-items:center;width:32px;height:32px;border-radius:50% 50% 50% 4px;
  transform:rotate(-45deg);background:var(--marker-color);color:#fff;border:3px solid #fff;
  box-shadow:0 5px 13px rgba(28,39,37,.34);font:800 12px var(--sans);
}
.travel-marker.is-active{width:38px;height:38px;margin:-3px;box-shadow:0 0 0 4px rgba(255,255,255,.65),0 6px 18px rgba(28,39,37,.42)}
.travel-marker-wrap{display:grid;place-items:center}
.travel-marker b{font-size:12px;line-height:1;transform:rotate(45deg)}

.inline-create-form{
  display:flex;gap:8px;margin-bottom:13px;flex-wrap:wrap;padding:11px;
  border:1px dashed #b39e83;border-radius:12px;background:rgba(255,255,255,.28);
}
.inline-create-form input,.inline-create-form select,.inline-create-form textarea,
.editor-sheet input,.editor-sheet select,.editor-sheet textarea{
  width:100%;padding:9px 11px;border:1px solid var(--line);border-radius:9px;
  background:#fffaf2;color:var(--text);
}
.inline-create-form textarea,.editor-sheet textarea{min-height:72px;resize:vertical}
.inline-create-form>.btn{flex:1}
.coordinate-row{display:grid;grid-template-columns:1fr 1fr;gap:8px;width:100%}
.coordinate-row label{min-width:0}

.builder-place-card{flex-wrap:wrap;transition:.16s ease}
.builder-place-card:hover,.builder-place-card.is-focused{
  border-color:rgba(165,95,69,.42);box-shadow:0 8px 18px rgba(81,60,42,.08);transform:translateY(-1px)
}
.place-copy{min-width:0;flex:1}
.place-card-actions{display:flex!important;flex-direction:row!important;flex:0 0 auto!important}
.assign-select{width:100%;max-width:none;margin-left:48px}
.icon-link{
  width:26px;height:26px;border:0;background:transparent;color:#8b7560;border-radius:7px;
  font-size:13px;display:grid;place-items:center;text-decoration:none;
}
.icon-link:hover{background:#eee5d8}

.builder-day-board{display:flex;flex-direction:column;gap:12px}
.builder-day-column{min-height:0;border-left:4px solid rgba(165,95,69,.18)}
.builder-day-column>header{gap:8px}
.day-actions{display:flex;align-items:center;gap:3px}
.day-route{
  text-decoration:none;font-size:11px;color:var(--ink);font-weight:700;
  padding:5px 8px;border:1px solid var(--line);border-radius:8px;background:#fffaf2;
}
.builder-stop{
  position:relative;display:grid;grid-template-columns:28px minmax(0,1fr) auto;align-items:center;
  border-left:3px solid var(--day-color);padding:9px 8px;transition:.16s ease;
}
.builder-stop:hover,.builder-stop.is-focused{
  border-color:var(--day-color);box-shadow:0 7px 18px rgba(73,58,45,.1);transform:translateX(2px)
}
.stop-number{
  width:24px;height:24px;border-radius:50%;display:grid;place-items:center;
  background:var(--day-color);color:#fff;font-size:11px;font-weight:800;
}
.stop-copy{display:flex;flex-direction:column;min-width:0}
.stop-copy b{font-size:13px;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.stop-copy small{font-size:10px;color:#827b72;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-top:2px}
.stop-meta{font-size:10px;color:#88735d;margin-top:2px}
.stop-meta.is-empty{color:#aaa39a}
.builder-stop-actions{display:flex!important;flex-direction:row!important;flex-wrap:wrap;justify-content:flex-end;max-width:82px}

.editor-backdrop{
  position:fixed;inset:0;z-index:1100;background:rgba(26,35,37,.47);backdrop-filter:blur(4px);
  display:flex;justify-content:flex-end;padding:18px;
}
.editor-sheet{
  width:min(440px,100%);height:100%;overflow:auto;background:var(--paper);border-radius:20px;
  box-shadow:0 28px 70px rgba(17,25,27,.35);padding:22px;animation:sheet-in .2s ease-out;
}
@keyframes sheet-in{from{transform:translateX(22px);opacity:.4}to{transform:none;opacity:1}}
.editor-sheet>header{display:flex;align-items:center;justify-content:space-between;margin-bottom:18px}
.editor-sheet header small{font-size:10px;letter-spacing:.16em;color:var(--rust)}
.editor-sheet h3{font:700 24px var(--serif);color:var(--ink);margin:2px 0}
.editor-close{border:0;background:#e9dfd1;color:var(--ink);font-size:22px;width:36px;height:36px;border-radius:50%}
.editor-sheet form{display:flex;flex-direction:column;gap:12px}
.editor-sheet label{font-size:11px;color:#716d66;font-weight:700;display:flex;flex-direction:column;gap:5px}
.editor-actions{display:flex;align-items:center;justify-content:flex-end;gap:8px;margin-top:7px;flex-wrap:wrap}
.danger-link{border:0;background:transparent;color:#9a4c3a;font-size:12px;font-weight:700;margin-right:auto}

@media (max-width:1180px){
  .builder-layout{grid-template-columns:260px minmax(370px,1fr)}
  .map-panel{grid-column:1/-1;position:relative;top:auto}
  .journey-map{height:500px}
}

@media (max-width:800px){
  .builder-layout{display:flex;flex-direction:column}
  .map-panel{order:1;width:100%;padding:11px}
  .journey-board-panel{order:2;width:100%}
  .place-pool-panel{order:3;width:100%}
  .journey-map{height:46vh;min-height:320px;max-height:480px}
  .builder-hero{min-height:0}
  .builder-hero>div:first-child{max-width:none}
  .builder-hero h1{font-size:30px}
  .builder-place-pool{max-height:none}
  .map-actions{grid-template-columns:1fr}
}

@media (max-width:500px){
  .builder-stop{grid-template-columns:26px minmax(0,1fr)}
  .builder-stop-actions{grid-column:2;max-width:none;justify-content:flex-start;margin-top:5px}
  .builder-stop-actions .icon-btn,.builder-stop-actions .icon-link{width:30px;height:28px;background:#f1e8db}
  .assign-select{margin-left:0}
  .coordinate-row{grid-template-columns:1fr}
  .editor-backdrop{padding:0;align-items:flex-end}
  .editor-sheet{height:auto;max-height:92vh;border-radius:22px 22px 0 0;padding:20px}
  .journey-map{height:44vh;min-height:290px}
}

/* ---- Travel product shell: Home / Plan / Live / Book ---- */

.travel-mode-nav{
  display:flex;align-items:center;justify-content:center;gap:5px;width:max-content;
  margin:0 auto 18px;padding:5px;border:1px solid var(--line);border-radius:16px;
  background:rgba(250,246,238,.78);box-shadow:0 10px 25px rgba(61,51,40,.07);
  backdrop-filter:blur(16px);position:sticky;top:10px;z-index:500;
}
.travel-mode-nav button{
  min-width:112px;border:0;border-radius:11px;background:transparent;color:#777970;
  padding:9px 14px;display:flex;align-items:center;justify-content:center;gap:8px;font-size:12px;
}
.travel-mode-nav button i{font-style:normal;font:700 16px var(--serif)}
.travel-mode-nav button.active{background:var(--ink);color:#fff;box-shadow:0 7px 16px rgba(36,65,84,.19);font-weight:700}

.trip-overview{display:flex;flex-direction:column;gap:17px}
.travel-cover-card{
  min-height:510px;border-radius:28px;padding:44px 48px;overflow:hidden;position:relative;
  background:
    radial-gradient(circle at 78% 22%,rgba(226,199,154,.17),transparent 25%),
    linear-gradient(128deg,#223e4e 0%,#315462 52%,#718173 100%);
  color:#fff;box-shadow:var(--shadow);display:grid;grid-template-columns:minmax(0,1fr) minmax(390px,.75fr);gap:35px;
}
.travel-cover-card:before{
  content:"";position:absolute;inset:0;opacity:.12;pointer-events:none;
  background-image:linear-gradient(rgba(255,255,255,.12) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.12) 1px,transparent 1px);
  background-size:70px 70px;mask-image:linear-gradient(to right,transparent,black);
}
.cover-stamp{
  position:absolute;top:28px;right:30px;border:1px solid rgba(255,255,255,.27);
  border-radius:999px;padding:7px 12px;font-size:9px;letter-spacing:.15em;color:#ead6b5;
}
.cover-copy{align-self:center;position:relative;z-index:2;max-width:650px}
.cover-copy>small{font-size:12px;letter-spacing:.23em;color:#e5cba3;font-weight:800}
.cover-copy h1{font:700 clamp(48px,6vw,78px)/.98 var(--serif);letter-spacing:-.065em;margin:17px 0 15px;max-width:670px}
.cover-copy>p{font:400 20px/1.6 var(--serif);color:rgba(255,255,255,.76);margin:0}
.cover-date{margin-top:28px;font-size:12px;letter-spacing:.12em;color:rgba(255,255,255,.68)}
.cover-action{
  margin-top:30px;border:0;border-radius:13px;background:#ead7b6;color:#294653;
  padding:13px 18px;font-size:13px;font-weight:800;box-shadow:0 12px 28px rgba(18,30,35,.22);
}
.cover-action span{margin-left:18px}
.cover-collage{position:relative;min-height:400px;align-self:center;z-index:2}
.cover-photo{
  position:absolute;border:8px solid #f5ead7;background:#d9c6a7;color:#244154;
  box-shadow:0 20px 42px rgba(15,27,32,.32);display:flex;flex-direction:column;justify-content:flex-end;
}
.cover-photo-a{
  width:270px;height:320px;right:42px;top:20px;transform:rotate(5deg);padding:22px;
  background:
    linear-gradient(transparent 45%,rgba(22,40,46,.72)),
    radial-gradient(circle at 70% 32%,#e7c99b 0 8%,transparent 9%),
    linear-gradient(150deg,#92a59b 0 40%,#c9b08c 41% 62%,#5e7678 63%);
  color:#fff;
}
.cover-photo-a b{font:700 31px var(--serif)}.cover-photo-a span{font-size:10px;letter-spacing:.12em}
.cover-photo-b{width:150px;height:185px;left:6px;bottom:4px;transform:rotate(-8deg);padding:18px;background:#a65f46;color:#fff}
.cover-photo-b i{font:italic 56px/1 var(--serif)}.cover-photo-b b{font-size:11px;letter-spacing:.18em}
.cover-ticket{
  position:absolute;right:-18px;bottom:9px;width:230px;padding:18px 21px;transform:rotate(-3deg);
  background:#f4ead9;color:var(--ink);box-shadow:0 17px 32px rgba(16,29,34,.26);
  border-left:7px dotted #87927f;display:flex;flex-direction:column;
}
.cover-ticket small{font-size:8px;letter-spacing:.14em;color:#9a7758}.cover-ticket b{font:700 45px/1 var(--serif);margin:7px 0}.cover-ticket span{font-size:9px;letter-spacing:.13em}

.overview-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}
.overview-stats article{
  border:1px solid var(--line);border-radius:15px;background:rgba(250,246,238,.75);
  padding:17px 19px;display:grid;grid-template-columns:1fr auto;align-items:end;
}
.overview-stats small{grid-column:1/-1;font-size:9px;letter-spacing:.16em;color:#9a795c}
.overview-stats b{font:700 30px var(--serif);color:var(--ink);line-height:1;margin-top:8px}
.overview-stats span{font-size:11px;color:var(--muted)}
.overview-section-head{display:flex;justify-content:space-between;align-items:end;margin-top:15px;padding:0 4px}
.overview-section-head small,.overview-panel header small{font-size:10px;letter-spacing:.16em;color:var(--rust)}
.overview-section-head h2,.overview-panel h2{font:700 25px var(--serif);color:var(--ink);margin:3px 0}
.overview-section-head button{border:0;background:transparent;color:var(--ink);font-size:12px;font-weight:700}
.overview-days{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}
.overview-day-card{
  border:1px solid var(--line);border-top:4px solid var(--day-color);border-radius:17px;
  background:#f8f0e4;padding:18px;box-shadow:0 11px 25px rgba(64,50,37,.06);
}
.overview-day-card header{display:grid;grid-template-columns:42px 1fr;gap:10px;align-items:start}
.overview-day-card header>span{font:italic 31px/1 var(--serif);color:var(--day-color)}
.overview-day-card header small{font-size:10px;color:#9a7b5e}.overview-day-card h3{font:700 17px/1.25 var(--serif);color:var(--ink);margin:3px 0 0}
.overview-route{display:flex;flex-direction:column;gap:7px;margin:17px 0;min-height:128px}
.overview-route span{display:flex;align-items:center;gap:8px;font-size:11px;color:#5d625d}
.overview-route span i{width:20px;height:20px;border-radius:50%;display:grid;place-items:center;background:var(--day-color);color:#fff;font-style:normal;font-size:9px}
.overview-route em{font-style:normal;font-size:10px;color:#9a938a;margin-left:28px}
.overview-day-card>button{width:100%;border:0;border-top:1px solid var(--line);padding:11px 0 0;background:transparent;color:var(--ink);text-align:right;font-size:11px;font-weight:700}
.overview-grid{display:grid;grid-template-columns:1.05fr .95fr;gap:13px}
.overview-panel{border:1px solid var(--line);border-radius:18px;background:var(--surface);padding:19px}
.overview-panel>header{display:flex;align-items:end;justify-content:space-between;margin-bottom:13px}
.overview-panel>header>span{font-size:11px;color:var(--muted)}
.booking-list{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}
.booking-card{border:1px solid var(--line);border-radius:12px;background:#f8f0e4;padding:12px;display:flex;gap:10px;min-width:0}
.booking-icon{width:32px;height:32px;border-radius:50%;background:#e4d8c8;color:var(--ink);display:grid;place-items:center;flex:0 0 auto}
.booking-card>div{display:flex;flex-direction:column;min-width:0}.booking-card small{font-size:8px;letter-spacing:.13em;color:var(--rust)}
.booking-card b{font:700 12px var(--serif);color:var(--ink);margin-top:3px}.booking-card em{font-style:normal;font-size:9px;color:#777970;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.booking-card p{font-size:9px;color:#9a826a;margin:6px 0 0}
.check-list{display:grid;grid-template-columns:1fr 1fr;gap:7px}
.check-item{display:flex;align-items:center;gap:9px;border:1px solid var(--line);border-radius:11px;padding:9px;background:#f8f0e4;cursor:pointer}
.check-item input{position:absolute;opacity:0}.check-item>span{width:23px;height:23px;border:1px solid #b9a88f;border-radius:50%;display:grid;place-items:center;flex:0 0 auto}
.check-item.is-done>span{background:var(--sage);border-color:var(--sage)}.check-item.is-done>span:after{content:"✓";color:#fff;font-size:11px}
.check-item div{display:flex;flex-direction:column}.check-item small{font-size:8px;color:#a37c5b}.check-item b{font-size:10px;color:var(--ink)}
.check-item.is-done b{text-decoration:line-through;color:#92948d}
.panel-empty{border:1px dashed #b6a58e;border-radius:11px;padding:20px;text-align:center;color:var(--muted);font-size:12px}

/* Live Trip */
.live-trip{display:flex;flex-direction:column;gap:13px}
.live-header{
  border-radius:24px;padding:28px 34px;background:linear-gradient(130deg,#223e4e,#567169);
  color:#fff;display:flex;justify-content:space-between;align-items:center;box-shadow:var(--shadow);
}
.live-header small{font-size:10px;letter-spacing:.18em;color:#e3c9a4}.live-header h1{font:700 38px var(--serif);margin:4px 0}.live-header p{margin:0;color:rgba(255,255,255,.7);font-size:13px}
.live-progress{text-align:center;border-left:1px solid rgba(255,255,255,.18);padding-left:30px}.live-progress b{font:700 32px var(--serif);display:block}.live-progress span{font-size:10px;color:rgba(255,255,255,.65)}
.live-day-tabs{display:flex;gap:7px;overflow:auto}
.live-day-tabs button{border:1px solid var(--line);border-radius:12px;background:var(--surface);padding:9px 14px;display:flex;align-items:center;gap:8px;color:#777970}
.live-day-tabs button b{font:700 14px var(--serif)}.live-day-tabs button span{font-size:10px;white-space:nowrap}
.live-day-tabs button.active{background:var(--ink);color:#fff;border-color:var(--ink)}
.next-stop-card{
  border-radius:20px;padding:23px 26px;background:#f0dabb;color:var(--ink);position:relative;overflow:hidden;
  display:grid;grid-template-columns:1fr auto;gap:16px;box-shadow:0 14px 31px rgba(84,59,34,.1);
}
.next-stop-card:after{content:"NEXT";position:absolute;right:-20px;top:-25px;font:700 100px var(--serif);color:rgba(255,255,255,.2)}
.next-label{grid-column:1/-1;font-size:9px;letter-spacing:.2em;color:var(--rust);font-weight:800}
.next-main{display:flex;align-items:center;justify-content:space-between;position:relative;z-index:1}
.next-main small{font-size:12px;color:var(--rust)}.next-main h2{font:700 30px var(--serif);margin:3px 0}.next-main p{font-size:11px;color:#756a5b;margin:0}
.next-number{font:italic 67px/1 var(--serif);color:rgba(36,65,84,.22);padding-right:15px}
.next-actions{display:flex;flex-direction:column;gap:7px;justify-content:end;position:relative;z-index:1}
.next-actions button,.next-actions a{border:0;border-radius:10px;padding:10px 14px;text-decoration:none;text-align:center;font-size:11px;font-weight:800}
.next-actions button{background:var(--ink);color:#fff}.next-actions a{border:1px solid rgba(36,65,84,.25);color:var(--ink);background:rgba(255,255,255,.24)}
.live-layout{display:grid;grid-template-columns:minmax(380px,.8fr) minmax(440px,1.2fr);gap:13px;align-items:start}
.live-timeline,.live-wallet{border:1px solid var(--line);border-radius:18px;background:var(--surface);padding:16px}
.section-kicker{font-size:10px;letter-spacing:.15em;color:var(--rust);margin-bottom:12px}
.live-stop{display:grid;grid-template-columns:34px minmax(0,1fr) auto;gap:10px;align-items:center;padding:11px 7px;border-bottom:1px solid var(--line)}
.live-stop:last-child{border-bottom:0}.live-stop.is-complete{opacity:.52}.live-stop.is-complete b{text-decoration:line-through}
.live-stop.is-current{background:#f1e2ce;border-radius:12px;padding-inline:11px;border:1px solid rgba(165,95,69,.2)}
.live-check{width:30px;height:30px;border-radius:50%;border:1px solid #b4a48f;background:#f8f0e4;color:var(--ink);font-size:11px;font-weight:800}
.live-stop.is-complete .live-check{background:var(--sage);border-color:var(--sage);color:#fff}
.live-stop>div:nth-child(2){display:flex;flex-direction:column;min-width:0}.live-stop small{font-size:9px;color:var(--rust)}.live-stop b{font:700 13px var(--serif);color:var(--ink)}.live-stop span{font-size:9px;color:var(--muted)}
.live-stop-actions{display:flex;gap:4px}.live-stop-actions button,.live-stop-actions a{border:0;background:transparent;color:var(--ink);font-size:10px;text-decoration:none;padding:5px}
.live-side{display:flex;flex-direction:column;gap:13px}.live-side .map-panel{position:relative;top:auto}.live-side .journey-map{height:430px}
.live-wallet header{margin-bottom:10px}.live-wallet header small{font-size:9px;letter-spacing:.15em;color:var(--rust)}.live-wallet h3{font:700 18px var(--serif);color:var(--ink);margin:2px 0}
.live-wallet>.booking-card{display:inline-flex;width:calc(33.333% - 6px);vertical-align:top;margin-right:5px}
.live-empty{text-align:center;border:1px dashed #ad9a81;border-radius:20px;padding:80px;background:var(--surface)}

/* Book Studio */
.book-studio{display:flex;flex-direction:column;gap:16px}
.book-studio-head{display:flex;justify-content:space-between;align-items:end;border-radius:23px;padding:28px 32px;background:var(--ink);color:#fff}
.book-studio-head small{font-size:10px;letter-spacing:.18em;color:#e0c49d}.book-studio-head h1{font:700 36px var(--serif);margin:5px 0}.book-studio-head p{font-size:12px;color:rgba(255,255,255,.66);margin:0}
.book-tools{display:flex;flex-direction:column;gap:9px;align-items:flex-end}.book-style-switch{display:flex;background:rgba(255,255,255,.08);padding:3px;border-radius:10px}
.book-style-switch button{border:0;background:transparent;color:rgba(255,255,255,.6);font-size:10px;padding:7px 10px;border-radius:7px}.book-style-switch button.active{background:#ead8b7;color:var(--ink);font-weight:800}
.book-pages{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;align-items:start}
.book-page{
  aspect-ratio:210/297;background:#f9f1e4;color:var(--ink);position:relative;overflow:hidden;
  padding:8% 8% 7%;box-shadow:0 17px 38px rgba(57,43,30,.13);border:1px solid rgba(52,60,56,.13);
}
.book-page .page-number{position:absolute;right:5%;top:3%;font:italic 22px var(--serif);color:rgba(165,95,69,.55)}
.book-cover{background:linear-gradient(145deg,#294856,#647a70);color:#fff;display:flex;flex-direction:column;justify-content:center}
.book-cover>small{font-size:9px;letter-spacing:.21em;color:#e3c9a4}.book-cover h2{font:700 clamp(36px,5vw,68px)/.98 var(--serif);letter-spacing:-.05em;margin:14px 0}.book-cover>p{font:italic 18px var(--serif);color:rgba(255,255,255,.65)}
.book-cover-art{display:flex;gap:17px;align-items:center;margin-top:18%;font:italic 40px var(--serif);color:#e6d2b0}.book-cover-art span:nth-child(2){font-size:15px}
.book-page footer{position:absolute;left:8%;right:8%;bottom:5%;border-top:1px solid currentColor;padding-top:8px;font-size:8px;letter-spacing:.12em;opacity:.6}
.day-page header small{font-size:8px;letter-spacing:.14em;color:var(--rust)}.day-page header h2{font:700 clamp(22px,3vw,38px)/1.08 var(--serif);margin:7px 0 6%}
.book-photo-grid{height:29%;display:grid;grid-template-columns:1fr 35%;gap:7px;margin-bottom:5%}
.book-photo-main{background:linear-gradient(145deg,#8ca09a,#2f5662);color:#fff;padding:7%;display:flex;align-items:end;font:700 16px var(--serif)}
.book-photo-note{background:#c47757;color:#fff;padding:12%;font-size:9px;letter-spacing:.12em;display:flex;flex-direction:column;justify-content:end}.book-photo-note b{font:700 18px var(--serif);letter-spacing:0}
.day-page ol{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:1fr 1fr;gap:6px 13px}
.day-page li{display:grid;grid-template-columns:33px 1fr;gap:6px;border-top:1px solid rgba(50,58,54,.13);padding-top:5px}.day-page time{font-size:8px;color:var(--rust)}.day-page li div{display:flex;flex-direction:column}.day-page li b{font-size:8px}.day-page li span{font-size:7px;color:#848078;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.book-style-editorial .book-page{border-radius:0;background:#f7f5ef}.book-style-editorial .book-photo-note{background:#244154}.book-style-editorial .book-photo-main{filter:grayscale(.75)}
.book-style-atlas .book-page{background-color:#f1eadc;background-image:linear-gradient(rgba(67,91,88,.08) 1px,transparent 1px),linear-gradient(90deg,rgba(67,91,88,.08) 1px,transparent 1px);background-size:24px 24px}.book-style-atlas .book-photo-main{background:linear-gradient(145deg,#b6a57e,#54716d)}.book-style-atlas .book-photo-note{background:#7c8b67}

@media (max-width:1000px){
  .travel-cover-card{grid-template-columns:1fr 330px;padding:39px 34px}.cover-collage{transform:scale(.9)}
  .overview-days{grid-template-columns:1fr 1fr}.overview-day-card:last-child{grid-column:1/-1}
  .overview-grid{grid-template-columns:1fr}.live-layout{grid-template-columns:1fr}.live-side .journey-map{height:480px}
}

@media (max-width:700px){
  .wizard-backdrop{padding:0;place-items:end center}.trip-wizard{width:100%;max-height:94vh;border-radius:25px 25px 0 0}
  .trip-wizard>header{padding:22px 19px 18px}.trip-wizard>header h2{font-size:24px;max-width:270px}.trip-wizard form{padding:16px 15px 22px}
  .wizard-methods{grid-template-columns:1fr}.wizard-method{min-height:0;grid-template-columns:38px 1fr;padding:12px}.wizard-method i{width:36px;height:36px}.wizard-method span{font-size:10px}
  .wizard-fields{grid-template-columns:1fr 1fr}.wizard-fields label:nth-child(-n+2){grid-column:1/-1}.wizard-pdf{grid-template-columns:1fr}.wizard-pdf>.btn{width:100%}.pdf-progress{grid-column:auto}.trip-wizard form>footer{align-items:stretch;flex-direction:column}.trip-wizard form>footer .btn{width:100%;padding:12px}
  .import-inbox{padding:19px 13px;border-radius:20px}.import-inbox>div{grid-template-columns:1fr}.import-card{grid-template-columns:34px minmax(0,1fr)}.import-actions{grid-column:2;flex-direction:row}.import-actions button{flex:1}
  .guide-library{padding:18px 13px}.guide-library>div{grid-template-columns:1fr 1fr}.guide-card{min-height:105px}
  body{padding-bottom:76px}
  .travel-mode-nav{
    position:fixed;left:10px;right:10px;bottom:9px;top:auto;width:auto;margin:0;z-index:1200;
    justify-content:space-around;border-radius:18px;padding:5px;background:rgba(249,243,233,.94);
  }
  .travel-mode-nav button{min-width:0;flex:1;padding:7px 5px;flex-direction:column;gap:1px}.travel-mode-nav button i{font-size:17px}.travel-mode-nav button span{font-size:9px}
  .travel-cover-card{min-height:670px;grid-template-columns:1fr;padding:38px 25px}.cover-copy{align-self:start}.cover-copy h1{font-size:48px}.cover-copy>p{font-size:16px}.cover-collage{min-height:280px;transform:none}.cover-photo-a{width:210px;height:245px;right:8px}.cover-photo-b{width:120px;height:150px}.cover-ticket{width:190px;right:-6px}
  .overview-stats{grid-template-columns:1fr 1fr}.overview-days{grid-template-columns:1fr}.overview-day-card:last-child{grid-column:auto}.overview-section-head h2{font-size:21px}
  .booking-list{grid-template-columns:1fr}.check-list{grid-template-columns:1fr}
  .live-header{padding:24px;align-items:end}.live-header h1{font-size:31px}.live-progress{padding-left:18px}
  .next-stop-card{grid-template-columns:1fr;padding:20px}.next-actions{flex-direction:row}.next-actions>*{flex:1}.next-number{font-size:50px}
  .live-stop{grid-template-columns:32px minmax(0,1fr)}.live-stop-actions{grid-column:2}
  .live-wallet>.booking-card{width:100%;margin:0 0 6px}
  .book-studio-head{align-items:flex-start;flex-direction:column;gap:18px;padding:24px}.book-studio-head h1{font-size:31px}.book-tools{width:100%;align-items:stretch}.book-style-switch{justify-content:space-around}.book-style-switch button{flex:1}
  .book-pages{grid-template-columns:1fr;gap:13px}.book-page{padding:8%}.day-page header h2{font-size:28px}
}

@media print{
  body{background:#fff;padding:0}.travel-header,.trip-bar,.travel-mode-nav,.book-studio-head,.travel-footer{display:none!important}
  .travel-main{max-width:none;padding:0}.book-pages{display:block}.book-page{width:210mm;height:297mm;aspect-ratio:auto;box-shadow:none;border:0;page-break-after:always;margin:0}
}

/* ---- mobile planner: map + focused day sheet ---- */

.mobile-plan-head,.mobile-pool-actions,.mobile-pool-search{display:none}

@media (max-width:700px){
  .mobile-plan-head{
    display:flex;align-items:center;justify-content:space-between;gap:12px;
    margin:0 2px 10px;padding:4px 2px;
  }
  .mobile-plan-head small{font-size:9px;letter-spacing:.15em;color:var(--rust)}
  .mobile-plan-head h2{font:700 19px/1.25 var(--serif);color:var(--ink);margin:2px 0;max-width:250px}
  .mobile-plan-head>button{
    border:1px solid var(--line);border-radius:11px;background:#f8f0e4;color:var(--ink);
    padding:8px 10px;font-size:10px;font-weight:700;white-space:nowrap;
  }
  .mobile-plan-head>button b{display:inline-grid;place-items:center;min-width:19px;height:19px;border-radius:50%;background:var(--rust);color:#fff;margin-left:4px}

  .builder-hero,.builder-toolbar{display:none}
  .builder-layout{gap:0;position:relative}
  .builder-layout .map-panel{
    order:1;border-radius:20px 20px 0 0;padding:10px 10px 26px;box-shadow:none;
  }
  .builder-layout .map-panel>header{margin:2px 3px 8px}
  .builder-layout .journey-map{height:41vh;min-height:300px;max-height:430px;border-radius:13px}
  .builder-layout .map-hint{display:none}
  .builder-layout .map-actions{grid-template-columns:auto 1fr}
  .builder-layout .map-actions .btn{padding:9px 7px;font-size:10px}

  .builder-layout .journey-board-panel{
    order:2;position:relative;z-index:3;width:100%;margin-top:-17px;padding:17px 12px 13px;
    border-radius:23px 23px 18px 18px;box-shadow:0 -10px 30px rgba(58,47,35,.12);
    background:rgba(250,246,238,.97);
  }
  .journey-board-head{align-items:center;margin-bottom:10px}
  .journey-board-head small{font-size:9px}.journey-board-head h3{font-size:18px;margin:1px 0}
  .journey-board-head .btn{font-size:10px;padding:7px 9px}
  .builder-day-column{display:none;border:0;border-radius:0;background:transparent;padding:0;min-height:0}
  .builder-day-column.is-selected{display:block}
  .builder-day-column>header{padding:8px 2px 11px;margin:0;border-bottom:1px solid var(--line)}
  .builder-day-column header small{font-size:10px}.builder-day-column header h4{font-size:19px;margin-top:3px}
  .day-actions .icon-btn[data-delete-day]{display:none}
  .day-route{padding:7px 10px}

  .builder-stop-list{gap:1px}
  .builder-stop{
    grid-template-columns:28px minmax(0,1fr) auto;min-height:62px;padding:8px 3px;
    border:0;border-bottom:1px solid var(--line);border-radius:0;background:transparent;transform:none!important;box-shadow:none!important;
  }
  .builder-stop:last-child{border-bottom:0}
  .stop-number{width:25px;height:25px}
  .stop-copy b{font-size:14px}.stop-meta{font-size:10px}
  .stop-copy small{display:none}
  .builder-stop-actions{grid-column:auto;display:flex!important;max-width:none;gap:4px;margin:0}
  .builder-stop-actions [data-edit-place],
  .builder-stop-actions [data-move],
  .builder-stop-actions [data-unassign]{display:none}
  .builder-stop-actions .icon-link,
  .builder-stop-actions [data-edit-stop]{
    width:34px;height:34px;border:1px solid var(--line);border-radius:10px;background:#f2e8da;
  }

  .builder-layout .place-pool-panel{display:none}
  .builder-layout.show-mobile-pool:before{
    content:"";position:fixed;inset:0;z-index:1050;background:rgba(31,40,40,.45);backdrop-filter:blur(3px);
  }
  .builder-layout.show-mobile-pool .place-pool-panel{
    display:flex;flex-direction:column;position:fixed;left:10px;right:10px;bottom:82px;z-index:1100;
    width:auto;max-height:72vh;padding:17px 13px;border-radius:22px;background:#f7efe3;
    box-shadow:0 22px 60px rgba(24,31,31,.35);
  }
  .place-pool-panel>header{align-items:center}
  .place-pool-panel>header>span{display:none}
  .mobile-pool-actions{display:flex;gap:5px;margin-left:auto}
  .mobile-pool-actions button{border:1px solid var(--line);border-radius:9px;background:#fffaf2;color:var(--ink);padding:7px 9px;font-size:10px;font-weight:700}
  .mobile-pool-search{
    display:flex;align-items:center;gap:7px;border:1px solid var(--line);border-radius:11px;background:#fffaf2;padding:0 10px;margin-bottom:9px;
  }
  .mobile-pool-search input{width:100%;border:0;background:transparent;outline:0;padding:10px 0;font-size:12px}
  .builder-place-pool{overflow:auto;max-height:none;min-height:0}
  .builder-place-card{background:#fffaf2}

  /* Keep all four Travel modes visible and move the platform launcher above them. */
  .travel-mode-nav{right:10px}
  .jonaminz-chat-launcher-frame,
  .jonaminz-chat-launcher-overlay{right:12px!important;bottom:86px!important}
  .jonaminz-chat-panel-frame{right:10px!important;bottom:160px!important}
}

/* ---- Itinerary Studio v2: editorial planning experience ---- */

.planner-shell{display:flex;flex-direction:column;gap:14px}
.planner-masthead{
  min-height:350px;display:grid;grid-template-columns:minmax(0,.84fr) minmax(430px,1.16fr);gap:28px;
  padding:34px;border-radius:28px;overflow:hidden;position:relative;color:#fff;
  background:
    radial-gradient(circle at 14% 20%,rgba(232,204,163,.18),transparent 23%),
    radial-gradient(circle at 96% 5%,rgba(255,255,255,.10),transparent 24%),
    linear-gradient(125deg,#203f50 0%,#355761 50%,#718175 100%);
  box-shadow:0 26px 62px rgba(50,53,47,.16);
}
.planner-masthead:before{
  content:"";position:absolute;width:440px;height:440px;border:1px solid rgba(255,255,255,.08);
  border-radius:50%;left:-250px;bottom:-315px;box-shadow:0 0 0 68px rgba(255,255,255,.025),0 0 0 136px rgba(255,255,255,.018);
}
.planner-masthead-copy{position:relative;z-index:1;display:flex;flex-direction:column;justify-content:center;padding:12px 8px}
.planner-masthead-copy>small{font-size:10px;letter-spacing:.2em;color:#e3c49f;font-weight:800}
.planner-masthead-copy h1{font:700 clamp(38px,4.3vw,62px)/1.02 var(--serif);letter-spacing:-.05em;margin:15px 0 13px;max-width:620px}
.planner-masthead-copy>p{font-size:13px;line-height:1.8;color:rgba(255,255,255,.7);max-width:480px;margin:0}
.planner-metrics{display:flex;gap:24px;margin-top:28px;padding-top:18px;border-top:1px solid rgba(255,255,255,.13)}
.planner-metrics span{font-size:9px;letter-spacing:.14em;color:rgba(255,255,255,.52);display:flex;align-items:baseline;gap:6px}
.planner-metrics b{font:700 25px var(--serif);letter-spacing:0;color:#fff}
.planner-route-card{
  position:relative;z-index:1;align-self:stretch;border:1px solid rgba(255,255,255,.2);border-radius:21px;
  padding:17px;background:rgba(248,242,231,.09);backdrop-filter:blur(16px);
  display:flex;flex-direction:column;min-width:0;
}
.route-card-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:0 3px 13px;border-bottom:1px solid rgba(255,255,255,.13)}
.route-card-head span{font-size:9px;letter-spacing:.2em;color:#e4c8a4}.route-card-head b{font-size:10px;color:rgba(255,255,255,.6)}
.planner-day-strip{display:flex;flex-direction:column;gap:5px;padding:10px 0;overflow:auto;max-height:232px}
.planner-day-strip button{
  display:grid;grid-template-columns:45px minmax(0,1fr);gap:11px;align-items:center;text-align:left;
  border:1px solid transparent;border-radius:13px;background:transparent;color:#fff;padding:8px 10px;
}
.planner-day-strip button:hover{background:rgba(255,255,255,.07)}
.planner-day-strip button.active{background:#f5ead9;color:var(--ink);box-shadow:0 11px 24px rgba(20,32,33,.18)}
.planner-day-strip i{width:40px;height:40px;border-radius:11px;display:grid;place-items:center;font:italic 19px var(--serif);font-style:italic;background:rgba(255,255,255,.09);border-bottom:3px solid var(--day-color)}
.planner-day-strip button.active i{background:var(--day-color);color:#fff;border:0}
.planner-day-strip span{display:flex;flex-direction:column;min-width:0}.planner-day-strip b{font:700 13px var(--serif);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.planner-day-strip small{font-size:8px;letter-spacing:.08em;color:rgba(255,255,255,.48);margin-top:2px}.planner-day-strip button.active small{color:#897e70}
.route-card-foot{display:flex;gap:7px;margin-top:auto;padding-top:10px;border-top:1px solid rgba(255,255,255,.13)}
.route-card-foot button{flex:1;border:1px solid rgba(255,255,255,.2);border-radius:10px;background:transparent;color:#fff;padding:9px;font-size:10px;font-weight:800}
.route-card-foot button:first-child{background:#e4ccaa;border-color:#e4ccaa;color:var(--ink)}
.route-card-foot .route-delete-trip{flex:0 0 88px;color:#f2c4b7;border-color:rgba(242,196,183,.35)}

.planner-shell .builder-layout{display:grid;grid-template-columns:minmax(0,1.12fr) minmax(390px,.88fr);gap:14px;align-items:start;position:relative}
.planner-shell .journey-board-panel{grid-column:1;padding:0;border-radius:22px;background:rgba(250,246,238,.82);overflow:hidden;box-shadow:0 18px 45px rgba(66,53,40,.08)}
.planner-shell .map-panel{grid-column:2;position:sticky;top:82px;padding:13px;border-radius:22px;background:rgba(250,246,238,.88)}
.planner-shell .journey-map{height:690px;border-radius:16px}
.planner-shell .journey-board-head{padding:18px 20px 14px;margin:0;border-bottom:1px solid var(--line);align-items:center}
.planner-shell .journey-board-head small{font-size:9px;letter-spacing:.19em;color:var(--rust)}.planner-shell .journey-board-head h3{font-size:21px;margin:2px 0}
.planner-shell .journey-board-head>div:last-child{display:flex;gap:6px}.planner-shell .journey-board-head .btn{font-size:10px;padding:8px 10px}
.planner-shell .builder-day-board{display:block}
.planner-shell .builder-day-column{display:none;border:0;border-radius:0;background:transparent;padding:0}
.planner-shell .builder-day-column.is-selected{display:block}
.planner-shell .builder-day-column>header{
  min-height:145px;display:grid;grid-template-columns:84px minmax(0,1fr) auto;align-items:center;gap:18px;
  padding:23px 25px;margin:0;background:linear-gradient(100deg,#f5eadb,#eee0cd);
  border-bottom:1px solid rgba(54,63,58,.1);
}
.day-editor-number{font:italic 61px/.9 var(--serif);color:var(--day-color);letter-spacing:-.06em}
.day-editor-title small{font-size:9px;letter-spacing:.14em;color:var(--rust)}.day-editor-title h4{font:700 27px/1.15 var(--serif);letter-spacing:-.025em;margin:5px 0;color:var(--ink)}
.day-editor-title p{font-size:10px;color:#8d8275;margin:0}.planner-shell .day-actions{align-self:start;margin-top:3px}
.planner-shell .day-route{border:0;border-radius:10px;background:var(--ink);color:#fff;padding:9px 12px}
.planner-shell .builder-stop-list{gap:0;padding:8px 24px 22px}
.planner-shell .builder-stop{
  display:grid;grid-template-columns:53px minmax(0,1fr) 120px;gap:13px;align-items:stretch;
  min-height:112px;padding:13px 3px;border:0;border-bottom:1px solid var(--line);border-radius:0;background:transparent;transform:none;
}
.planner-shell .builder-stop:last-child{border-bottom:0}.planner-shell .builder-stop:hover,.planner-shell .builder-stop.is-focused{background:rgba(240,225,205,.38);box-shadow:none;transform:none}
.stop-rail{position:relative;display:flex;justify-content:center}.stop-rail:after{content:"";position:absolute;width:1px;top:35px;bottom:-14px;background:#d8c7b1}
.builder-stop:last-child .stop-rail:after{display:none}.stop-rail i{position:absolute;top:35px;width:5px;height:5px;border-radius:50%;background:var(--day-color)}
.planner-shell .stop-number{width:36px;height:36px;background:var(--day-color);font:italic 14px var(--serif);box-shadow:0 5px 12px rgba(61,50,40,.12)}
.planner-shell .stop-copy{justify-content:center;padding:3px 0}.stop-title-row{display:flex;gap:8px;align-items:center;min-width:0}
.planner-shell .stop-title-row b{font:700 17px var(--serif);color:var(--ink)}.stop-title-row em{font-style:normal;border-radius:999px;background:#e8ddce;color:#816c56;padding:3px 7px;font-size:8px;white-space:nowrap}
.planner-shell .stop-meta{font-size:10px;color:var(--rust);margin-top:5px}.planner-shell .stop-address{font-size:9px;color:#948a7f;margin-top:3px}.planner-shell .stop-copy p{font-size:10px;color:#77736d;line-height:1.55;margin:5px 0 0}
.planner-shell .builder-stop-actions{display:flex!important;max-width:none;flex-direction:column!important;align-items:stretch;justify-content:center;gap:5px}
.planner-shell .builder-stop-actions>a,.planner-shell .builder-stop-actions>button{border:1px solid var(--line);border-radius:9px;padding:7px 8px;text-align:center;text-decoration:none;font-size:9px;font-weight:800}
.planner-shell .stop-primary-action{background:var(--ink);border-color:var(--ink)!important;color:#fff}.planner-shell .builder-stop-actions>button{background:#f4ebde;color:var(--ink)}
.stop-more-actions{display:flex;justify-content:center;gap:2px;opacity:.55}.stop-more-actions button{width:23px;height:23px;border:0;border-radius:6px;background:transparent;color:#7e756b;font-size:9px}.stop-more-actions button:hover{background:#e9ddcd}.stop-more-actions button:disabled{opacity:.25}
.day-empty-story{margin:26px;padding:50px 20px;border:1px dashed #b7a288;border-radius:17px;text-align:center;background:rgba(255,255,255,.28)}
.day-empty-story>span{display:grid;place-items:center;width:46px;height:46px;margin:0 auto 12px;border-radius:50%;background:#e7d7c2;color:var(--rust);font-size:23px}.day-empty-story b{display:block;font:700 19px var(--serif);color:var(--ink)}.day-empty-story p{font-size:11px;color:var(--muted)}.day-empty-story button{border:0;border-radius:10px;background:var(--ink);color:#fff;padding:9px 13px;font-size:10px;font-weight:800}

.planner-shell .place-pool-panel{
  display:none;position:fixed;z-index:1500;top:18px;bottom:18px;left:18px;width:min(390px,calc(100vw - 36px));
  padding:20px;border-radius:24px;background:#f6eddf;box-shadow:0 30px 85px rgba(28,35,35,.36);overflow:hidden;
}
.planner-shell .builder-layout.show-mobile-pool:before{content:"";position:fixed;inset:0;z-index:1450;background:rgba(28,37,38,.48);backdrop-filter:blur(5px)}
.planner-shell .builder-layout.show-mobile-pool .place-pool-panel{display:flex;flex-direction:column}
.planner-shell .place-pool-panel>header{align-items:flex-start;margin-bottom:14px}.planner-shell .place-pool-panel>header h3{font-size:25px;margin:2px 0}.planner-shell .place-pool-panel>header p{font-size:10px;color:var(--muted);margin:1px 0}.planner-shell .place-pool-panel>header>b{margin-left:auto;width:31px;height:31px;border-radius:50%;display:grid;place-items:center;background:var(--rust);color:#fff;font:700 13px var(--serif)}
.pool-close{width:31px;height:31px;border:0;border-radius:50%;background:#e7dccd;color:var(--ink);font-size:18px}.pool-quick-actions{display:flex;align-items:center;justify-content:space-between;margin-bottom:9px}.pool-quick-actions button{border:0;border-radius:9px;background:var(--ink);color:#fff;padding:8px 10px;font-size:10px;font-weight:800}.pool-quick-actions span{font-size:9px;color:var(--muted)}
.planner-shell .mobile-pool-search{display:flex}.pool-filter-row{display:flex;gap:4px;overflow:auto;margin-bottom:10px;padding-bottom:2px}.pool-filter-row button{flex:0 0 auto;border:1px solid var(--line);border-radius:999px;background:#fff9f0;color:#7b756d;padding:5px 9px;font-size:9px}.pool-filter-row button.active{background:var(--rust);border-color:var(--rust);color:#fff;font-weight:800}
.planner-shell .builder-place-pool{flex:1;max-height:none;overflow:auto}.planner-shell .builder-place-card{background:#fffaf2;border-radius:14px;padding:11px}

@media (max-width:980px){
  .planner-masthead{grid-template-columns:1fr;gap:16px}.planner-masthead-copy{padding:0}.planner-masthead-copy h1{font-size:45px}.planner-route-card{min-height:270px}
  .planner-shell .builder-layout{grid-template-columns:1fr}.planner-shell .journey-board-panel{grid-column:1}.planner-shell .map-panel{grid-column:1;position:relative;top:auto}.planner-shell .journey-map{height:520px}
}

@media (max-width:700px){
  .planner-shell{gap:9px}.planner-masthead{min-height:0;padding:20px 15px 15px;border-radius:22px;gap:14px}
  .planner-masthead-copy{padding:2px 4px}.planner-masthead-copy>small{font-size:8px}.planner-masthead-copy h1{font-size:34px;margin:8px 0}.planner-masthead-copy>p{display:none}
  .planner-metrics{margin-top:13px;padding-top:11px;gap:17px}.planner-metrics b{font-size:19px}
  .planner-route-card{min-height:0;padding:10px;border-radius:16px}.route-card-head{padding-bottom:8px}.planner-day-strip{flex-direction:row;max-height:none;overflow:auto;padding:8px 0}
  .planner-day-strip button{flex:0 0 180px;grid-template-columns:38px minmax(0,1fr);padding:7px}.planner-day-strip i{width:34px;height:34px;font-size:16px}.planner-day-strip b{font-size:11px}.route-card-foot{padding-top:8px}.route-card-foot button{padding:8px 5px;font-size:9px}
  .planner-shell .builder-layout{display:flex;gap:0}.planner-shell .map-panel{order:1;border-radius:20px 20px 0 0;padding:9px 9px 25px}.planner-shell .journey-map{height:36vh;min-height:260px;max-height:350px}
  .planner-shell .map-panel>header{margin:2px 3px 8px}.planner-shell .map-actions{grid-template-columns:auto 1fr}.planner-shell .map-hint{display:none}
  .planner-shell .journey-board-panel{order:2;margin-top:-17px;z-index:3;border-radius:23px 23px 18px 18px}
  .planner-shell .journey-board-head{padding:15px 13px 10px}.planner-shell .journey-board-head h3{font-size:18px}.planner-shell .journey-board-head>div:last-child .btn:last-child{display:none}
  .planner-shell .builder-day-column>header{min-height:110px;grid-template-columns:55px minmax(0,1fr);gap:10px;padding:17px 13px}.day-editor-number{font-size:43px}.day-editor-title h4{font-size:21px}.day-editor-title p{font-size:9px}
  .planner-shell .day-actions{grid-column:1/-1;width:100%;margin:0;display:none}
  .planner-shell .builder-stop-list{padding:5px 13px 14px}
  .planner-shell .builder-stop{grid-template-columns:40px minmax(0,1fr) 70px;gap:7px;min-height:94px;padding:10px 0}
  .planner-shell .stop-number{width:31px;height:31px;font-size:12px}.stop-rail:after{top:31px}.stop-rail i{top:31px}
  .planner-shell .stop-title-row b{font-size:14px}.stop-title-row em{display:none}.planner-shell .stop-address,.planner-shell .stop-copy p{display:none}
  .planner-shell .builder-stop-actions{gap:4px}.planner-shell .builder-stop-actions>a,.planner-shell .builder-stop-actions>button{padding:7px 4px;font-size:8px}.stop-more-actions{display:none}
  .planner-shell .place-pool-panel{top:auto;left:8px;right:8px;bottom:79px;width:auto;max-height:78vh;border-radius:23px;padding:17px}
  .planner-shell .place-pool-panel>header h3{font-size:22px}.planner-shell .builder-place-pool{min-height:0}
}

/* ---- Travel tools + reliable mobile interactions ---- */

.map-stage{position:relative}
.map-stage:not(.is-unlocked) .journey-map{pointer-events:none;filter:saturate(.82)}
.map-interaction-lock{
  position:absolute;right:9px;top:9px;z-index:500;
  min-width:150px;border:1px solid rgba(255,255,255,.8);border-radius:14px;padding:10px 14px;
  background:rgba(34,59,69,.9);color:#fff;box-shadow:0 12px 28px rgba(25,37,38,.26);
  backdrop-filter:blur(10px);display:flex;flex-direction:column;align-items:center;
}
.map-interaction-lock b{font-size:12px}.map-interaction-lock span{font-size:8px;color:rgba(255,255,255,.66);margin-top:2px}
.map-stage.is-unlocked .map-interaction-lock{min-width:0;padding:7px 9px;background:rgba(165,95,69,.92)}
.map-stage.is-unlocked .map-interaction-lock span{display:none}
.map-stage.no-touch-guard .map-interaction-lock{display:none}

/* Saved places are inline. No modal, backdrop or page-blocking layer. */
.planner-shell .place-pool-panel{
  position:static;display:none;grid-column:1/-1;width:auto;height:auto;max-height:none;
  padding:20px;border-radius:22px;background:rgba(247,239,227,.92);box-shadow:none;overflow:visible;
}
.planner-shell .builder-layout.show-mobile-pool:before{display:none}
.planner-shell .builder-layout.show-mobile-pool .place-pool-panel{display:block}
.planner-shell .place-pool-panel>header{position:relative}
.planner-shell .builder-place-pool{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));max-height:none;overflow:visible}
.planner-shell .assign-select{margin-left:0}

.explore-hub{display:flex;flex-direction:column;gap:16px}
.explore-hero{
  min-height:280px;border-radius:28px;padding:38px 42px;color:#fff;display:grid;
  grid-template-columns:minmax(0,1fr) 290px;gap:30px;align-items:center;position:relative;overflow:hidden;
  background:
    radial-gradient(circle at 82% 18%,rgba(232,204,163,.22),transparent 23%),
    linear-gradient(128deg,#213f50,#3e6365 58%,#7a8878);
  box-shadow:var(--shadow);
}
.explore-hero:after{content:"✦";position:absolute;right:33%;bottom:-90px;font:italic 220px var(--serif);color:rgba(255,255,255,.035)}
.explore-hero>div:first-child{position:relative;z-index:1}.explore-hero small{font-size:10px;letter-spacing:.2em;color:#e4c7a1}.explore-hero h1{font:700 clamp(34px,4.8vw,58px)/1.03 var(--serif);letter-spacing:-.045em;margin:11px 0}.explore-hero p{font-size:12px;color:rgba(255,255,255,.7);margin:0}
.explore-anchor{position:relative;z-index:1;border:1px solid rgba(255,255,255,.2);border-radius:18px;background:rgba(255,255,255,.08);padding:20px;display:flex;flex-direction:column}
.explore-anchor b{font:700 20px var(--serif);margin:7px 0 2px}.explore-anchor span{font-size:10px;color:rgba(255,255,255,.62)}
.explore-section,.shopping-deck{border:1px solid var(--line);border-radius:23px;background:var(--surface);padding:24px}
.explore-section>header,.shopping-deck>header{display:flex;justify-content:space-between;align-items:flex-end;gap:15px;margin-bottom:16px}.explore-section header small,.shopping-deck header small,.transport-deck small{font-size:9px;letter-spacing:.18em;color:var(--rust)}.explore-section h2,.shopping-deck h2,.transport-deck h2{font:700 25px var(--serif);color:var(--ink);margin:3px 0}.explore-section header>span,.shopping-deck header>span{font-size:10px;color:var(--muted)}
.discovery-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:9px}
.discovery-card{min-height:145px;border:1px solid var(--line);border-radius:16px;background:#fffaf2;padding:15px;color:var(--ink);text-decoration:none;display:grid;grid-template-columns:40px minmax(0,1fr) auto;gap:10px;align-items:start;transition:.16s ease}
.discovery-card:hover{transform:translateY(-2px);box-shadow:0 13px 26px rgba(62,50,38,.09)}.discovery-card>i{width:39px;height:39px;border-radius:12px;background:var(--ink);color:#fff;display:grid;place-items:center;font-style:normal;font-weight:800}.discovery-card>div{display:flex;flex-direction:column}.discovery-card b{font:700 15px var(--serif)}.discovery-card span{font-size:10px;color:var(--muted);line-height:1.5;margin-top:4px}.discovery-card small{font-size:8px;color:var(--rust);margin-top:12px}.discovery-card em{font-style:normal;color:var(--rust)}
.theme-map-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:9px}.theme-map-card{min-height:150px;border-radius:16px;padding:16px;text-decoration:none;color:#fff;display:flex;flex-direction:column;background:linear-gradient(145deg,#294b59,#637a70)}.theme-map-card:nth-child(2n){background:linear-gradient(145deg,#7f563e,#b27856)}.theme-map-card i{width:36px;height:36px;border:1px solid rgba(255,255,255,.25);border-radius:50%;display:grid;place-items:center;font-style:normal}.theme-map-card b{font:700 16px var(--serif);margin-top:12px}.theme-map-card span{font-size:9px;color:rgba(255,255,255,.65)}.theme-map-card em{font-style:normal;font-size:9px;color:#f0d1aa;margin-top:auto;padding-top:12px}
.castle-atlas{border-radius:25px;background:#213e49;color:#fff;padding:26px;box-shadow:var(--shadow)}
.castle-atlas>header{display:flex;align-items:flex-end;justify-content:space-between;gap:22px;margin-bottom:18px}
.castle-atlas>header small{font-size:9px;letter-spacing:.18em;color:#e4c39b}.castle-atlas>header h2{font:700 30px var(--serif);margin:4px 0}.castle-atlas>header p{font-size:10px;color:rgba(255,255,255,.58);margin:0}
.castle-progress{display:flex;align-items:baseline;gap:5px;white-space:nowrap}.castle-progress b{font:italic 42px var(--serif);color:#e8cca7}.castle-progress span{font-size:10px;color:rgba(255,255,255,.58)}
.castle-map-layout{display:grid;grid-template-columns:minmax(360px,.9fr) minmax(420px,1.1fr);gap:13px}
.castle-map-column{min-width:0}.castle-map{height:620px;border-radius:18px}.castle-map-column>p{font-size:8px;color:rgba(255,255,255,.46);margin:7px 3px 0}
.castle-map-stage:not(.is-unlocked) .castle-map{pointer-events:none;filter:saturate(.78)}
.castle-directory{min-width:0;border-radius:18px;background:#f5ecdf;color:var(--ink);padding:12px;display:flex;flex-direction:column;height:620px}
.castle-toolbar{flex:0 0 auto}.castle-search{display:flex;align-items:center;gap:8px;border:1px solid var(--line);border-radius:11px;background:#fffaf2;padding:0 10px}.castle-search span{color:var(--rust)}.castle-search input{width:100%;border:0;outline:0;background:transparent;padding:10px 0;font-size:11px;color:var(--ink)}
.castle-filters{display:flex;gap:4px;overflow:auto;padding:8px 0}.castle-filters button{flex:0 0 auto;border:1px solid #d8c8b4;border-radius:999px;background:transparent;color:#786e62;padding:5px 9px;font-size:8px}.castle-filters button.active{border-color:var(--rust);background:var(--rust);color:#fff}
.castle-list{flex:1;min-height:0;overflow:auto;display:flex;flex-direction:column;gap:5px;padding-right:3px}
.castle-card{display:grid;grid-template-columns:27px 31px minmax(0,1fr) auto;gap:8px;align-items:center;border:1px solid var(--line);border-radius:11px;background:#fffaf2;padding:8px}
.castle-check{width:25px;height:25px;border:1px solid #b9a993;border-radius:50%;background:transparent;color:#fff;font-weight:900}.castle-card.is-visited .castle-check{border-color:var(--sage);background:var(--sage)}
.castle-card>span{font:italic 11px var(--serif);color:var(--rust)}.castle-card>div{display:flex;flex-direction:column;min-width:0}.castle-card b{font:700 12px var(--serif);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.castle-card small{font-size:8px;color:var(--muted);margin-top:2px}.castle-card>a{border-radius:8px;background:var(--ink);color:#fff;text-decoration:none;padding:7px 8px;font-size:8px;font-weight:800;white-space:nowrap}.castle-card.is-visited{opacity:.58}
.transport-deck{border-radius:23px;padding:24px;background:#263f4b;color:#fff;display:grid;grid-template-columns:230px minmax(0,1fr);gap:20px;align-items:center}.transport-deck h2{color:#fff}.transport-deck p{font-size:10px;color:rgba(255,255,255,.62)}.transport-actions{display:grid;grid-template-columns:repeat(4,1fr);gap:7px}.transport-actions a{border:1px solid rgba(255,255,255,.14);border-radius:14px;background:rgba(255,255,255,.06);padding:13px;color:#fff;text-decoration:none;display:flex;flex-direction:column}.transport-actions i{width:31px;height:31px;border-radius:9px;background:#ead1ad;color:var(--ink);display:grid;place-items:center;font-style:normal;font-size:10px;font-weight:800}.transport-actions b{font-size:11px;margin-top:10px}.transport-actions span{font-size:8px;color:rgba(255,255,255,.52)}
.shopping-deck>form{display:grid;grid-template-columns:minmax(0,1fr) 150px 75px auto;gap:7px;margin-bottom:17px}.shopping-deck input,.shopping-deck select{border:1px solid var(--line);border-radius:10px;background:#fffaf2;padding:10px 11px;font-size:11px}.shopping-deck form button{border:0;border-radius:10px;background:var(--ink);color:#fff;padding:9px 15px;font-size:10px;font-weight:800}
.shopping-layout{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(280px,.85fr);gap:13px}.shopping-list{display:flex;flex-direction:column;gap:6px}.shopping-item{display:grid;grid-template-columns:30px minmax(0,1fr) auto 27px;gap:9px;align-items:center;border:1px solid var(--line);border-radius:12px;background:#fffaf2;padding:10px}.shopping-item>button:first-child{width:27px;height:27px;border:1px solid #b7a58e;border-radius:50%;background:transparent;color:#fff}.shopping-item.is-done>button:first-child{background:var(--sage);border-color:var(--sage)}.shopping-item>div{display:flex;flex-direction:column}.shopping-item small{font-size:8px;color:var(--rust)}.shopping-item b{font:700 12px var(--serif);color:var(--ink)}.shopping-item>span{font-size:10px;color:var(--muted)}.shopping-item>button:last-child{border:0;background:transparent;color:#9d8b78}.shopping-item.is-done{opacity:.5}.shopping-item.is-done b{text-decoration:line-through}
.shopping-layout>aside{border-radius:16px;background:#efe2d0;padding:16px}.shopping-layout>aside>small{font-size:8px;letter-spacing:.16em;color:var(--rust)}.shopping-layout>aside h3{font:700 19px var(--serif);color:var(--ink);margin:3px 0 11px}.recommendation-list{display:grid;grid-template-columns:1fr 1fr;gap:5px}.shopping-recommendation{border:1px solid var(--line);border-radius:10px;background:#fffaf2;color:var(--ink);padding:8px;text-align:left;display:flex;gap:7px;align-items:center}.shopping-recommendation>span{color:var(--rust)}.shopping-recommendation>div{display:flex;flex-direction:column}.shopping-recommendation b{font-size:9px}.shopping-recommendation small{font-size:7px;color:var(--muted)}.shopping-recommendation.added{opacity:.4}

@media (max-width:980px){
  .discovery-grid{grid-template-columns:1fr 1fr}.theme-map-grid{grid-template-columns:1fr 1fr}.transport-deck{grid-template-columns:1fr}.shopping-layout{grid-template-columns:1fr}
  .castle-map-layout{grid-template-columns:1fr}.castle-map{height:470px}.castle-directory{height:560px}
  .planner-shell .builder-place-pool{grid-template-columns:1fr 1fr}
}

@media (max-width:700px){
  .travel-mode-nav button{padding-inline:3px}.travel-mode-nav button span{font-size:8px}
  .planner-shell .place-pool-panel{position:static;order:0;width:100%;max-height:none;border-radius:20px;padding:15px;overflow:visible}
  .planner-shell .builder-place-pool{grid-template-columns:1fr;overflow:visible}
  .planner-shell .builder-layout.show-mobile-pool .map-panel,.planner-shell .builder-layout.show-mobile-pool .journey-board-panel{display:none}
  .map-interaction-lock{min-width:142px}.explore-hub{gap:9px}.explore-hero{min-height:0;grid-template-columns:1fr;padding:24px 20px;border-radius:22px}.explore-hero h1{font-size:34px}.explore-anchor{padding:14px}
  .explore-section,.shopping-deck{padding:17px 13px;border-radius:20px}.explore-section>header,.shopping-deck>header{align-items:flex-start}.explore-section header>span{max-width:125px;text-align:right}
  .discovery-grid,.theme-map-grid{grid-template-columns:1fr 1fr}.discovery-card{min-height:130px;grid-template-columns:34px minmax(0,1fr);padding:11px}.discovery-card>i{width:33px;height:33px}.discovery-card>em{display:none}.discovery-card small{margin-top:7px}.theme-map-card{min-height:135px;padding:13px}
  .castle-atlas{padding:18px 13px;border-radius:20px}.castle-atlas>header{align-items:flex-start}.castle-atlas>header h2{font-size:25px}.castle-atlas>header p{max-width:230px;line-height:1.5}.castle-progress b{font-size:32px}.castle-map-layout{gap:9px}.castle-map{height:42vh;min-height:290px;max-height:390px}.castle-directory{height:58vh;min-height:430px;padding:9px}.castle-card{grid-template-columns:27px 27px minmax(0,1fr);gap:6px}.castle-card>a{grid-column:3;padding:6px 8px;width:max-content}.castle-card b{font-size:11px}
  .transport-deck{padding:20px 14px;border-radius:20px}.transport-actions{grid-template-columns:1fr 1fr}.shopping-deck>form{grid-template-columns:1fr 80px}.shopping-deck>form input:first-child{grid-column:1/-1}.shopping-deck>form button{grid-column:1/-1}.recommendation-list{grid-template-columns:1fr 1fr}
}
