:root{
  --fs-xs:12px; --fs-sm:14px; --fs-md:16px; --fs-lg:20px; --fs-xl:28px;
  --bg:#f3f5f4; --card:#ffffff; --ink:#10201d; --muted:#5d6d69; --line:#e1e7e5;
  --pri:#0f766e; --pri-2:#0b5f58; --pri-soft:#e3f3ef; --danger:#b42318; --warn:#b45309;
  --star:#d97706; --radius:14px; --nav-h:62px; --top-h:56px;
  --shadow:0 8px 28px rgba(16,32,29,.14);
}
*{box-sizing:border-box}
[hidden]{display:none!important}
html,body{margin:0;height:100%;background:var(--bg);color:var(--ink);
  font-family:'Rubik',system-ui,-apple-system,'Segoe UI',Arial,sans-serif;-webkit-tap-highlight-color:transparent}
body{overscroll-behavior:none;font-size:var(--fs-md)}
button,input,select,textarea{font:inherit;color:inherit}
a{color:var(--pri)}
h1,h2,h3{margin:0;line-height:1.25}
.muted{color:var(--muted)} .small{font-size:var(--fs-sm)}
.err{color:var(--danger);font-size:var(--fs-sm);min-height:1em;max-width:420px}

#app{height:100vh;height:100dvh;display:flex;flex-direction:column}
.screen.center{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:24px;text-align:center;gap:14px}
.logo-big{font-size:56px}
.app-title{font-size:var(--fs-xl)}
.spinner{width:28px;height:28px;border:3px solid var(--line);border-top-color:var(--pri);border-radius:50%;animation:spin .8s linear infinite}
@keyframes spin{to{transform:rotate(360deg)}}
.row-gap{display:flex;gap:10px;flex-wrap:wrap;justify-content:center}

/* buttons */
.btn{border:1px solid var(--line);background:var(--card);border-radius:11px;padding:10px 14px;cursor:pointer;
  display:inline-flex;align-items:center;justify-content:center;gap:6px;text-decoration:none;color:var(--ink);font-weight:500;min-height:42px}
.btn:active{transform:scale(.98)}
.btn.primary{background:var(--pri);border-color:var(--pri);color:#fff}
.btn.primary:hover{background:var(--pri-2)}
.btn.danger{color:var(--danger);border-color:#f3c9c4}
.btn.ghost{border-color:transparent;background:var(--bg)}
.btn.sm{padding:6px 10px;min-height:34px;font-size:var(--fs-sm);border-radius:9px}
.btn.lg{padding:13px 22px;font-size:var(--fs-md)}
.btn:disabled{opacity:.5;pointer-events:none}
.btn svg.g{width:20px;height:20px}
svg.i{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;flex:none}

/* top bar */
#screen-main{flex:1;display:flex;flex-direction:column;min-height:0}
.topbar{height:calc(var(--top-h) + env(safe-area-inset-top));padding:env(safe-area-inset-top) 10px 0 10px;display:flex;align-items:center;gap:8px;
  background:var(--card);border-bottom:1px solid var(--line);flex:none;z-index:6}
.trip-btn{flex:1;min-width:0;display:flex;flex-direction:column;align-items:flex-start;background:none;border:0;padding:4px 6px;text-align:start;cursor:pointer;border-radius:10px}
.trip-btn:hover{background:var(--bg)}
.trip-btn b{font-size:var(--fs-md);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}
.trip-btn b::after{content:" ▾";color:var(--muted);font-weight:400;font-size:var(--fs-sm)}
.trip-btn small{color:var(--muted);font-size:var(--fs-xs)}
.icon-btn{width:42px;height:42px;border-radius:12px;border:0;background:var(--bg);display:grid;place-items:center;cursor:pointer;flex:none}
.banner{background:rgba(245,158,11,.15);color:inherit;font-size:var(--fs-xs);padding:6px 12px;text-align:center;border-bottom:1px solid #f4e2bf;flex:none}

main{flex:1;position:relative;min-height:0;overflow:hidden}
.view{position:absolute;inset:0}
.view.scroll{overflow-y:auto;-webkit-overflow-scrolling:touch;padding:14px 14px 90px}
.wrap{max-width:760px;margin:0 auto}

/* bottom nav */
.bottomnav{flex:none;display:grid;grid-template-columns:repeat(6,1fr);height:calc(var(--nav-h) + env(safe-area-inset-bottom));
  padding-bottom:env(safe-area-inset-bottom);background:var(--card);border-top:1px solid var(--line);z-index:6}
.bottomnav button{border:0;background:none;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;font-size:var(--fs-xs);color:var(--muted);cursor:pointer;position:relative}
.bottomnav button.active{color:var(--pri);font-weight:600}
.bottomnav button.active::before{content:"";position:absolute;top:0;width:34px;height:3px;border-radius:0 0 3px 3px;background:var(--pri)}

/* map */
#map{position:absolute;inset:0;background:#dde6e3}
.map-msg{position:absolute;inset:auto 16px 50% 16px;transform:translateY(50%);background:var(--card);border-radius:var(--radius);padding:18px;box-shadow:var(--shadow);text-align:center;line-height:1.55;z-index:3}
.chips{display:flex;gap:7px;overflow-x:auto;scrollbar-width:none;padding:2px}
.chips::-webkit-scrollbar{display:none}
.chips.floating{position:absolute;top:10px;inset-inline:0;padding:2px 10px;z-index:3}
.chips.wrapline{flex-wrap:wrap;overflow:visible;margin:10px 0 14px}
.chip{flex:none;border:1px solid var(--line);background:var(--card);border-radius:999px;padding:7px 13px;cursor:pointer;display:inline-flex;align-items:center;gap:6px;
  font-size:var(--fs-sm);font-weight:500;box-shadow:0 1px 3px rgba(0,0,0,.06);white-space:nowrap}
.chip small{color:var(--muted);font-weight:400;font-size:var(--fs-xs)}
.chip i{width:9px;height:9px;border-radius:50%;display:inline-block}
.chip.on{background:var(--ink);color:var(--card);border-color:var(--ink)}
.chip.on small{color:#cfd8d6}
.fab-col{position:absolute;inset-inline-end:12px;bottom:16px;display:flex;flex-direction:column;gap:10px;z-index:3}
.fab{width:48px;height:48px;border-radius:50%;border:0;background:var(--card);box-shadow:var(--shadow);display:grid;place-items:center;cursor:pointer;color:var(--ink)}
.fab.pri{background:var(--pri);color:#fff}
.fab.on{background:var(--ink);color:#fff}
.place-card{position:absolute;inset-inline-start:10px;inset-inline-end:70px;bottom:14px;background:var(--card);border-radius:16px;box-shadow:var(--shadow);padding:12px;z-index:4;max-width:520px;margin-inline-start:auto}
.place-card .x{position:absolute;top:6px;inset-inline-end:8px;border:0;background:none;font-size:var(--fs-lg);color:var(--muted);cursor:pointer;width:32px;height:32px}
.pc-row{display:flex;gap:10px;align-items:flex-start;padding-inline-end:26px}
.pc-row img{width:64px;height:64px;border-radius:10px;object-fit:cover;flex:none}
.pc-row h3{font-size:var(--fs-md);margin:2px 0}
.pc-meta{font-size:var(--fs-xs);color:var(--muted);display:flex;align-items:center;gap:6px}
.pc-meta i{width:9px;height:9px;border-radius:50%;display:inline-block}
.pc-actions{display:flex;gap:8px;margin-top:10px}
.pc-actions .btn{flex:1;padding:8px 6px}
.me-dot{width:18px;height:18px;border-radius:50%;background:#2563eb;border:3px solid #fff;box-shadow:0 0 0 6px rgba(37,99,235,.2)}

/* search / cards */
.searchbar{display:flex;gap:8px;position:sticky;top:-14px;padding:0 0 4px;background:var(--bg);z-index:2}
.searchbar input{flex:1;min-width:0;border:1px solid var(--line);border-radius:12px;padding:11px 14px;background:var(--card);font-size:var(--fs-md)}
.searchbar input:focus,.field input:focus,.field select:focus,.field textarea:focus,textarea:focus{outline:2px solid var(--pri);outline-offset:-1px;border-color:transparent}
.row-opts{display:flex;justify-content:space-between;align-items:center;margin:8px 0 12px;gap:10px;flex-wrap:wrap}
.toggle{display:inline-flex;align-items:center;gap:8px;cursor:pointer}
.toggle input{width:18px;height:18px;accent-color:var(--pri)}
.seg{display:inline-flex;background:var(--line);border-radius:10px;padding:3px}
.seg button{border:0;background:none;padding:5px 11px;border-radius:8px;font-size:var(--fs-sm);cursor:pointer;color:var(--muted)}
.seg button.on{background:var(--card);color:var(--ink);font-weight:600;box-shadow:0 1px 2px rgba(0,0,0,.08)}
.rcard{display:flex;gap:12px;background:var(--card);border-radius:var(--radius);padding:10px;margin-bottom:10px;border:1px solid var(--line)}
.rimg{width:92px;height:92px;border-radius:10px;object-fit:cover;flex:none;background:var(--line)}
.rimg.ph{display:grid;place-items:center;color:#9aa8a5;font-size:var(--fs-xl)}
.rbody{flex:1;min-width:0}
.rbody h3{font-size:var(--fs-md);margin-bottom:3px}
.rmeta{display:flex;gap:6px;flex-wrap:wrap;font-size:var(--fs-sm);align-items:center;color:var(--muted)}
.star{color:var(--star);font-weight:600}
.addr{margin:3px 0 7px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ractions{display:flex;gap:6px;flex-wrap:wrap}
.badge{display:inline-flex;align-items:center;background:var(--pri-soft);color:var(--pri-2);border-radius:9px;padding:6px 10px;font-size:var(--fs-sm);font-weight:600}
.empty{text-align:center;color:var(--muted);padding:34px 16px;line-height:1.6}
.empty .big{font-size:38px;display:block;margin-bottom:6px}
.loading-row{display:flex;justify-content:center;padding:30px}
.card{background:var(--card);border-radius:var(--radius);border:1px solid var(--line);padding:14px;margin-bottom:12px}
.card .h{font-size:var(--fs-md);margin-bottom:6px}
textarea{width:100%;border:1px solid var(--line);border-radius:12px;padding:10px 12px;background:var(--field);resize:vertical;margin:8px 0 10px;font-size:var(--fs-sm);direction:auto}

/* recs */
.recs-controls{display:flex;gap:10px;align-items:flex-end;flex-wrap:wrap}
.recs-controls .field{margin:0}
.recs-controls .field select{min-width:0}
.recs-controls .seg{margin-inline-start:auto}

/* plan */
.plan-head{display:flex;justify-content:space-between;align-items:flex-end;gap:10px;margin-bottom:12px}
.plan-head h2{font-size:var(--fs-lg)}
.stats{display:flex;gap:6px}
.stat{background:var(--card);border:1px solid var(--line);border-radius:10px;padding:5px 10px;text-align:center;font-size:var(--fs-xs);color:var(--muted)}
.stat b{display:block;font-size:var(--fs-md);color:var(--ink)}
.progress{height:6px;background:var(--line);border-radius:4px;overflow:hidden;margin:-4px 0 14px}
.progress span{display:block;height:100%;background:var(--pri)}
.day{background:var(--card);border-radius:var(--radius);border:1px solid var(--line);margin-bottom:12px;overflow:hidden;scroll-margin-top:10px}
.day.today{border-color:var(--pri);box-shadow:0 0 0 2px var(--pri-soft)}
.day-h{display:flex;align-items:center;gap:8px;padding:11px 12px;border-bottom:1px solid var(--line);background:var(--soft)}
.day-h .dot{width:12px;height:12px;border-radius:50%;flex:none}
.day-h .t{flex:1;min-width:0}
.day-h .t b{font-size:var(--fs-md)}
.day-h .t small{color:var(--muted);margin-inline-start:6px}
.tag-today{background:var(--pri);color:#fff;border-radius:6px;font-size:var(--fs-xs);padding:2px 6px;margin-inline-start:6px;font-weight:600}
.day-h .acts{display:flex;gap:4px}
.day-empty{padding:12px;color:var(--muted);font-size:var(--fs-sm)}
.item{display:flex;align-items:stretch;gap:8px;padding:9px 10px;border-bottom:1px solid var(--line)}
.item:last-child{border-bottom:0}
.chk{width:30px;height:30px;border-radius:50%;border:2px solid #c9d3d0;background:var(--card);cursor:pointer;flex:none;align-self:center;display:grid;place-items:center;color:transparent;font-size:var(--fs-sm);font-weight:700}
.chk:hover{border-color:var(--pri);color:var(--pri)}
.item.visited .chk{background:var(--pri);border-color:var(--pri);color:#fff}
.item.visited .item-main b{text-decoration:line-through;color:var(--muted)}
.item.visited{background:var(--soft)}
.item-main{flex:1;min-width:0;cursor:pointer}
.item-top{display:flex;align-items:center;gap:7px}
.item-top b{font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.num{width:22px;height:22px;border-radius:50%;color:#fff;font-size:var(--fs-xs);font-weight:700;display:grid;place-items:center;flex:none}
.time{background:var(--bg);border-radius:6px;padding:1px 6px;font-size:var(--fs-xs);font-weight:600;font-variant-numeric:tabular-nums;flex:none}
.item-sub{font-size:var(--fs-xs);color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-top:2px}
.note{font-size:var(--fs-sm);background:rgba(250,204,21,.14);border-radius:7px;padding:4px 8px;margin-top:5px;white-space:pre-wrap}
.item-side{display:flex;flex-direction:column;gap:2px;justify-content:center}
.mini{width:30px;height:26px;border:0;background:none;border-radius:7px;cursor:pointer;color:var(--muted);font-size:var(--fs-xs);display:grid;place-items:center}
.mini:hover{background:var(--bg);color:var(--ink)}
.mini svg{width:18px;height:18px}

/* import */
.imp-row{display:flex;gap:10px;background:var(--card);border-radius:var(--radius);border:1px solid var(--line);padding:10px;margin-bottom:9px}
.imp-row input[type=checkbox]{width:20px;height:20px;accent-color:var(--pri);margin-top:4px}
.imp-body{flex:1;min-width:0}
.imp-src{font-size:var(--fs-xs);color:var(--muted);word-break:break-all;white-space:pre-line;max-height:3.2em;overflow:hidden}
.imp-q{display:flex;gap:6px;margin:6px 0}
.imp-q input{flex:1;min-width:0;border:1px solid var(--line);border-radius:9px;padding:7px 10px;font-size:var(--fs-sm)}
.cand{display:flex;gap:8px;align-items:flex-start;padding:7px 8px;border-radius:9px;cursor:pointer;border:1px solid transparent}
.cand:has(input:checked){background:var(--pri-soft);border-color:#bfe3da}
.cand input{margin-top:3px;accent-color:var(--pri)}
.cand .n{font-weight:600;font-size:var(--fs-sm)}
.cand .a{font-size:var(--fs-xs);color:var(--muted)}
.st{font-size:var(--fs-sm);margin:4px 0}
.st.bad{color:var(--warn)}
.imp-footer{position:sticky;bottom:0;display:flex;gap:8px;padding:10px 14px calc(10px + env(safe-area-inset-bottom));background:var(--bg);backdrop-filter:blur(6px);border-top:1px solid var(--line);margin:0 -14px -90px}
.imp-footer select{flex:1;min-width:0;border:1px solid var(--line);border-radius:11px;padding:9px;background:var(--card)}

/* sheet */
.backdrop{position:fixed;inset:0;background:rgba(10,20,18,.38);z-index:20}
.sheet{position:fixed;left:0;right:0;bottom:0;max-height:90vh;max-height:90dvh;overflow-y:auto;background:var(--card);border-radius:20px 20px 0 0;
  z-index:21;transform:translateY(100%);transition:transform .22s ease;padding:0 16px calc(18px + env(safe-area-inset-bottom));box-shadow:0 -8px 30px rgba(0,0,0,.15)}
.sheet.open{transform:none}
@media (min-width:700px){.sheet{left:50%;right:auto;width:560px;margin-left:-280px}}
.sheet-grip{width:42px;height:5px;border-radius:3px;background:#d5dcda;margin:9px auto 10px}
.sheet h2{font-size:var(--fs-lg);margin-bottom:12px}
.sheet h3{font-size:var(--fs-sm);margin:18px 0 8px}
.sheet-img{width:100%;height:150px;object-fit:cover;border-radius:12px;margin-bottom:10px}
.field{display:flex;flex-direction:column;gap:4px;margin-bottom:11px;font-size:var(--fs-sm);color:var(--muted)}
.field.inline{margin:0}
.field input,.field select,.field textarea{border:1px solid var(--line);border-radius:11px;padding:10px 12px;background:var(--field);color:var(--ink);font-size:var(--fs-md);margin:0;width:100%}
.grid2{display:grid;grid-template-columns:1.4fr 1fr;gap:10px}
.sheet-actions{display:flex;gap:8px;margin-top:8px;flex-wrap:wrap}
.sheet-actions .btn{flex:1}
.sheet-actions.sec{border-top:1px solid var(--line);padding-top:12px;margin-top:14px}
.sheet-actions.sec .btn{flex:1 1 40%}
.trip-list{display:flex;flex-direction:column;gap:7px;margin-bottom:6px}
.trip-item{display:flex;flex-direction:column;align-items:flex-start;text-align:start;border:1px solid var(--line);border-radius:12px;padding:11px 13px;background:var(--card);cursor:pointer}
.trip-item.on{border-color:var(--pri);background:var(--pri-soft)}
.trip-item small{color:var(--muted)}
.user-row{display:flex;align-items:center;gap:10px;margin-bottom:14px}
.user-row img{width:40px;height:40px;border-radius:50%}
.user-row>div{flex:1;min-width:0}
.note-box{background:rgba(245,158,11,.13);border-radius:11px;padding:10px 12px;font-size:var(--fs-sm);line-height:1.55;color:#6b4300;margin:12px 0}
.adm-sec{margin-bottom:12px}
.adm-sec .lbl{font-size:var(--fs-xs);color:var(--muted);margin-bottom:5px}
.adm-row{display:flex;align-items:center;gap:6px;padding:7px 0;border-bottom:1px solid var(--line);font-size:var(--fs-sm)}
.adm-row span{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis}
.adm-add{display:flex;gap:6px}
.adm-add input{flex:1;min-width:0;border:1px solid var(--line);border-radius:9px;padding:7px 10px;direction:ltr;text-align:start}

/* toast */
.toast{position:fixed;left:50%;transform:translateX(-50%);bottom:calc(var(--nav-h) + env(safe-area-inset-bottom) + 14px);background:#15221f;color:#fff;border-radius:12px;padding:10px 14px;
  z-index:30;display:flex;gap:14px;align-items:center;font-size:var(--fs-sm);box-shadow:var(--shadow);max-width:calc(100% - 28px)}
.toast button{border:0;background:none;color:#7ee0cf;font-weight:700;cursor:pointer;padding:0}

@media (min-width:900px){
  .view.scroll{padding-top:20px}
  .place-card{inset-inline-end:auto;width:420px}
}

/* mixed Hebrew/English text */
.addr,.item-sub,.rbody h3,.cand .a,.cand .n,.pc-row h3,.item-top b,.imp-src{unicode-bidi:plaintext;text-align:start}
.num{cursor:pointer}

/* map search */
.map-search{position:absolute;top:10px;inset-inline:10px;z-index:5;display:flex;align-items:center;gap:8px;background:var(--card);border-radius:14px;box-shadow:var(--shadow);padding:0 12px;height:48px;max-width:640px;margin:0 auto}
.map-search svg{color:var(--muted)}
.map-search input{flex:1;min-width:0;border:0;outline:0;background:none;font-size:var(--fs-md);height:100%}
.map-search input::-webkit-search-cancel-button{display:none}
.ms-clear{border:0;background:var(--bg);border-radius:50%;width:28px;height:28px;font-size:var(--fs-lg);line-height:1;cursor:pointer;color:var(--muted)}
.sugg{position:absolute;top:54px;inset-inline:0;background:var(--card);border-radius:14px;box-shadow:var(--shadow);overflow:hidden}
.sugg-item{display:flex;flex-direction:column;align-items:flex-start;gap:1px;width:100%;border:0;border-bottom:1px solid var(--line);background:none;padding:10px 14px;text-align:start;cursor:pointer}
.sugg-item:last-child{border-bottom:0}
.sugg-item:hover,.sugg-item:active{background:var(--pri-soft)}
.sugg-item b{font-weight:600;unicode-bidi:plaintext}
.sugg-item small{color:var(--muted);font-size:var(--fs-xs);unicode-bidi:plaintext}
.sugg-empty{padding:12px 14px;color:var(--muted);font-size:var(--fs-sm)}
.chips.floating{top:66px}

/* day picker in add form */
.daypick{display:grid;grid-template-columns:repeat(auto-fill,minmax(96px,1fr));gap:7px;margin-top:2px}
.dp{border:1.5px solid var(--line);background:var(--field);border-radius:11px;padding:8px 6px;cursor:pointer;display:flex;flex-direction:column;align-items:center;gap:2px;color:var(--ink)}
.dp i{width:9px;height:9px;border-radius:50%}
.dp b{font-size:var(--fs-sm)}
.dp small{font-size:var(--fs-xs);color:var(--muted)}
.dp.on{border-color:var(--pri);background:var(--pri-soft);box-shadow:0 0 0 1px var(--pri) inset}

/* navigation sheet */
.nav-grid{display:grid;grid-template-columns:1fr 1fr;gap:9px;margin-bottom:10px}
.nav-btn{border:1px solid var(--line);background:var(--field);border-radius:14px;padding:14px 8px;cursor:pointer;display:flex;flex-direction:column;align-items:center;gap:3px;font-weight:600;font-size:var(--fs-sm);color:var(--ink)}
.nav-btn span{font-size:var(--fs-xl)}
.nav-btn small{font-weight:400;color:var(--muted);font-size:var(--fs-xs);text-align:center}
.nav-btn.waze{background:#eaf7fd;border-color:#bfe6f7}
.nav-btn.last{border-color:var(--pri);box-shadow:0 0 0 1px var(--pri) inset}
.place-card .addr{white-space:normal}

.banner.warn{background:#fff7e6;color:#7a4b00}
.banner.err{background:#fdecea;color:#8a1c12;border-bottom-color:#f5c2bd;text-align:start;line-height:1.5}
.banner code{background:rgba(0,0,0,.06);padding:0 4px;border-radius:4px;direction:ltr;display:inline-block}
.gbtn{padding:0 12px;min-width:46px}
.field.sm select{padding:7px 10px;font-size:var(--fs-sm);border-radius:10px}
.field.inline.sm{flex-direction:row;align-items:center;gap:8px}
.chips.quick{flex-wrap:nowrap;overflow-x:auto;margin:0 -14px 12px;padding:2px 14px 4px}
.chips.quick .chip{padding:8px 12px}
.chips.quick .chip.on{background:var(--pri);border-color:var(--pri)}
.res-head{display:flex;justify-content:space-between;align-items:center;gap:8px;margin:0 0 10px;font-size:var(--fs-sm);color:var(--muted)}
.gsearch{display:flex;align-items:center;gap:10px;background:var(--card);border:1px dashed #c9d3d0;border-radius:var(--radius);padding:11px 12px;margin-bottom:10px;text-decoration:none;color:var(--ink);font-size:var(--fs-sm)}
.gsearch b{unicode-bidi:plaintext}

/* ======================= v3 additions ======================= */
:root{--field:#fbfcfc;--soft:#fafcfb;--chip-on:#10201d}
.ro .rw{display:none!important}
.ro .bottomnav{grid-template-columns:repeat(3,1fr)}
.banner.info{background:var(--pri-soft);color:var(--pri-2)}

/* subtabs */
.subtabs{display:flex;gap:4px;background:var(--line);border-radius:12px;padding:4px;margin-bottom:14px}
.subtabs button{flex:1;border:0;background:none;padding:8px 4px;border-radius:9px;font-size:var(--fs-sm);cursor:pointer;color:var(--muted);white-space:nowrap}
.subtabs button.on{background:var(--card);color:var(--ink);font-weight:600;box-shadow:0 1px 3px rgba(0,0,0,.08)}

/* plan v3 */
.plan-tools{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin:-4px 0 12px}
.plan-tools .hint{margin-inline-start:auto}
.day-set{border:1px solid var(--line);background:var(--card);border-radius:9px;padding:5px 9px;font-size:var(--fs-xs);cursor:pointer;font-variant-numeric:tabular-nums;white-space:nowrap}
.item{display:block;padding:0;border-bottom:1px solid var(--line)}
.item-row{display:flex;align-items:center;gap:8px;padding:9px 10px 9px 8px}
.leg{font-size:var(--fs-xs);color:var(--muted);padding:5px 52px 0 0;display:flex;align-items:center;gap:4px}
.leg::before{content:"";width:2px;height:14px;background:var(--line);margin-inline-end:8px;border-radius:2px}
.grip{cursor:grab;color:#aab5b2;font-size:var(--fs-sm);letter-spacing:-3px;padding:6px 2px;touch-action:none;user-select:none;flex:none}
.grip:active{cursor:grabbing}
.drag-ghost{opacity:.35;background:var(--pri-soft)}
.drag-chosen{box-shadow:var(--shadow);background:var(--card)}
.time.fixed{background:var(--pri-soft);color:var(--pri-2)}
.warn-pill{background:#fdecea;color:#a3271b;border-radius:6px;padding:1px 6px;font-size:var(--fs-xs);white-space:nowrap}
.wait-pill{background:#eef6ff;color:#1d4ed8;border-radius:6px;padding:1px 6px;font-size:var(--fs-xs);white-space:nowrap}
.event,.hotel-row{display:flex;align-items:center;gap:8px;padding:8px 12px;font-size:var(--fs-sm);background:rgba(59,130,246,.08);border-bottom:1px solid var(--line);cursor:pointer}
.hotel-row{background:rgba(124,58,237,.08);cursor:default}
.hotel-row.end{border-top:1px solid var(--line)}
.leg-inline{color:var(--muted);font-size:var(--fs-xs)}
.day-list{min-height:12px}
.day-foot{display:flex;justify-content:space-between;gap:10px;flex-wrap:wrap;padding:9px 12px;font-size:var(--fs-sm);color:var(--muted);background:var(--soft);border-top:1px solid var(--line)}
.day-foot b{color:var(--ink)}
.day-actions{display:flex;gap:6px;flex-wrap:wrap;padding:9px 10px;border-top:1px solid var(--line)}
.done-list{border-top:1px solid var(--line)}
.done-list summary{padding:8px 12px;font-size:var(--fs-sm);color:var(--muted);cursor:pointer}
.idea-list{border-top:1px solid var(--line)}
.idea-h{display:flex;align-items:center;gap:8px;padding:9px 12px 4px}
.idea-h b{font-size:var(--fs-sm)}
.idea-h .mini{margin-inline-start:auto}
.day-empty.small{padding:6px 12px 10px;font-size:var(--fs-xs)}

/* day strip on the map (mobile) */
.day-strip{position:absolute;left:0;right:0;bottom:0;z-index:4;background:linear-gradient(0deg,var(--bg) 70%,transparent);padding:18px 0 10px}
.strip-head{display:flex;gap:8px;align-items:baseline;padding:0 12px 6px;flex-wrap:wrap}
.strip-row{display:flex;gap:8px;overflow-x:auto;padding:2px 12px 4px;scrollbar-width:none}
.strip-row::-webkit-scrollbar{display:none}
.strip-card{flex:none;display:flex;gap:8px;align-items:center;background:var(--card);border:1px solid var(--line);border-radius:14px;padding:9px 11px;min-width:170px;max-width:230px;text-align:start;cursor:pointer;box-shadow:0 2px 8px rgba(0,0,0,.06);color:var(--ink)}
.strip-card b{display:block;font-size:var(--fs-sm);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:160px}
.strip-card small{color:var(--muted);font-size:var(--fs-xs)}
#view-map.has-strip .fab-col{bottom:118px}
.hotel-pin{font-size:var(--fs-lg);background:var(--card);border-radius:50%;width:34px;height:34px;display:grid;place-items:center;box-shadow:0 2px 6px rgba(0,0,0,.25);border:2px solid #7c3aed}

/* place sheet */
.pd-title{margin:0 0 2px}
.pd-when{background:var(--pri-soft);color:var(--pri-2);border-radius:9px;padding:6px 10px;font-size:var(--fs-sm);margin:8px 0;display:inline-block}
.photo-row{display:flex;gap:6px;overflow-x:auto;margin:10px 0;scrollbar-width:none}
.photo-row img{height:120px;border-radius:10px;flex:none;object-fit:cover}
.pd-sum{margin:8px 0;line-height:1.55;font-size:var(--fs-sm)}
.pd-chips{display:flex;gap:6px;flex-wrap:wrap;margin:8px 0}
.pill{display:inline-flex;align-items:center;gap:4px;background:var(--bg);border:1px solid var(--line);border-radius:999px;padding:3px 10px;font-size:var(--fs-xs);color:var(--ink);text-decoration:none;cursor:pointer}
.pill.ok{background:#e7f7ee;border-color:#bfe8cf}.pill.no{background:#fdecea;border-color:#f5c2bd}
.hours{margin:8px 0;font-size:var(--fs-sm)}
.hours summary{cursor:pointer;padding:4px 0}
.hours ul{margin:6px 0;padding-inline-start:18px;line-height:1.7}
.hours li.planned{font-weight:700;color:var(--pri-2)}
.hours li.today{text-decoration:underline dotted}
.pd-links{display:flex;gap:6px;flex-wrap:wrap;margin:8px 0 12px}
.pd-form{border-top:1px solid var(--line);padding-top:12px;margin-top:6px}
.seg.big button{padding:9px 16px;font-size:var(--fs-sm)}
.grid3{display:grid;grid-template-columns:1fr 1fr 1.2fr;gap:8px}

/* fill my day */
.fill-row{display:flex;align-items:center;gap:10px;padding:10px;border:1px solid var(--line);border-radius:12px;margin-bottom:8px}
.fill-row.on{border-color:var(--pri);background:var(--pri-soft)}
.fill-row input{width:20px;height:20px;accent-color:var(--pri)}
.fill-main{flex:1;min-width:0}
.center{text-align:center}

/* overview */
.ov .cover{position:relative;border-radius:18px;min-height:180px;background:linear-gradient(135deg,#0f766e,#1d4ed8);background-size:cover;background-position:center;color:#fff;display:flex;align-items:flex-end;padding:18px;margin-bottom:12px;overflow:hidden}
.cover-in h1{font-size:var(--fs-xl);margin:6px 0 2px;text-shadow:0 1px 8px rgba(0,0,0,.35)}
.cover-in div{opacity:.95;font-size:var(--fs-sm);text-shadow:0 1px 6px rgba(0,0,0,.35)}
.cd{display:inline-block;background:rgba(255,255,255,.22);backdrop-filter:blur(6px);border-radius:999px;padding:4px 12px;font-size:var(--fs-sm);font-weight:600}
.cover-edit{position:absolute;top:10px;inset-inline-end:10px;border:0;background:rgba(255,255,255,.25);color:#fff;border-radius:50%;width:36px;height:36px;font-size:var(--fs-md);cursor:pointer}
.ov-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-bottom:12px}
.ov-stats div{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:8px 4px;text-align:center}
.ov-stats b{display:block;font-size:var(--fs-lg)}
.ov-stats span{font-size:var(--fs-xs);color:var(--muted)}
.ov-card{cursor:pointer}
.ov-h{display:flex;justify-content:space-between;align-items:baseline;gap:8px;margin-bottom:8px}
.ov-stops{display:flex;flex-direction:column;gap:6px;margin-bottom:10px}
.ov-stop{display:flex;align-items:center;gap:8px;font-size:var(--fs-sm)}
.ov-stop.next{font-weight:600}
.ov-stop.next b::after{content:" ← הבא";color:var(--pri);font-size:var(--fs-xs)}
.row-gap.left{justify-content:flex-start}
.ov-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.ov-grid .card{margin-bottom:0}
.ov-line{display:flex;gap:6px;align-items:center;font-size:var(--fs-sm);margin-bottom:4px}
.ov-line span{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ov-line small{color:var(--muted)}
.ov-big{font-size:var(--fs-xl);font-weight:700;margin:2px 0 6px}
.progress.thin{height:5px;margin:4px 0 6px}
.clamp{display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;white-space:pre-line}
.ov-actions{margin:14px 0 4px}
.wx{display:flex;gap:6px;overflow-x:auto;scrollbar-width:none}
.wx-d{flex:none;display:flex;flex-direction:column;align-items:center;gap:1px;background:var(--bg);border-radius:10px;padding:6px 8px;min-width:64px}
.wx-d span{font-size:var(--fs-lg)}
.wx-d small{font-size:var(--fs-xs);color:var(--muted)}
.wx-sum{display:flex;gap:12px;align-items:center}
.wx-sum .big{font-size:34px}

/* manage */
.add-row{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:12px}
.bk-card{display:flex;gap:12px;background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:12px;margin-bottom:9px;cursor:pointer}
.bk-ic{font-size:var(--fs-xl)}
.bk-main{flex:1;min-width:0}
.bk-route{font-weight:600;direction:ltr;text-align:start;margin:2px 0}
.bk-meta{display:flex;gap:6px;flex-wrap:wrap;margin-top:6px}
.money-in{display:flex;gap:6px}
.money-in input{flex:1;min-width:0}
.money-in select{width:auto;flex:none}
.money-in.big input{font-size:var(--fs-xl);font-weight:700}
.btn.wide{width:100%;margin-bottom:12px}
.budget-top .bt-row{display:flex;justify-content:space-between;gap:10px;align-items:flex-start}
.bt-side{text-align:end;display:flex;flex-direction:column;align-items:flex-end;gap:4px}
.cat-bar{display:grid;grid-template-columns:120px 1fr auto;gap:8px;align-items:center;font-size:var(--fs-sm);margin:6px 0}
.cat-bar .bar{height:8px;background:var(--bg);border-radius:5px;overflow:hidden}
.cat-bar .bar i{display:block;height:100%;background:var(--pri);border-radius:5px}
.exp-group{margin-bottom:12px}
.exp-date{display:flex;justify-content:space-between;font-size:var(--fs-sm);color:var(--muted);margin:0 4px 6px}
.exp{display:flex;align-items:center;gap:10px;background:var(--card);border:1px solid var(--line);border-radius:12px;padding:10px 12px;margin-bottom:6px;cursor:pointer}
.exp-ic{font-size:var(--fs-lg)}
.exp-main{flex:1;min-width:0}
.exp-main small{display:block;color:var(--muted);font-size:var(--fs-xs)}
.exp-amt{text-align:end;display:flex;flex-direction:column;align-items:flex-end}
.exp-amt small{color:var(--muted);font-size:var(--fs-xs)}
.pack-add{display:flex;gap:6px;margin-top:10px}
.pack-add input{flex:1;min-width:0;border:1px solid var(--line);border-radius:10px;padding:8px 10px;background:var(--field)}
.pack-add select{border:1px solid var(--line);border-radius:10px;padding:6px;max-width:130px;background:var(--field)}
.pack-item{display:flex;align-items:center;gap:10px;padding:8px 2px;border-bottom:1px solid var(--line);cursor:pointer}
.pack-item:last-child{border-bottom:0}
.pack-item input{width:20px;height:20px;accent-color:var(--pri)}
.pack-item span{flex:1}
.pack-item.done span{text-decoration:line-through;color:var(--muted)}
#tripNotes{min-height:160px;background:var(--field)}
.link-row{display:flex;align-items:center;gap:8px;padding:7px 0;border-bottom:1px solid var(--line)}
.link-row a{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.link-add{display:flex;gap:6px;flex-wrap:wrap;margin:10px 0 6px}
.link-add input{flex:1 1 140px;min-width:0;border:1px solid var(--line);border-radius:10px;padding:8px 10px;background:var(--field)}
.share-url{background:var(--bg);border-radius:10px;padding:10px 12px;font-size:var(--fs-sm);word-break:break-all;margin:10px 0}
.big-toggle{font-size:var(--fs-md);margin:6px 0 4px}

/* desktop: list + map side by side */
@media (min-width:1000px){
  body.desk .view.scroll{left:auto;right:0;width:46%;border-left:1px solid var(--line)}
  body.desk #view-map{left:0;right:auto;width:54%}
  body.desk .bottomnav button[data-view="map"]{display:none}
  body.desk .bottomnav{grid-template-columns:repeat(5,1fr)}
  body.desk.ro .bottomnav{grid-template-columns:repeat(2,1fr)}
  body.desk .toast{left:27%}
}

/* print */
#printArea{display:none}
@media print{
  body *{visibility:hidden}
  #printArea,#printArea *{visibility:visible}
  #printArea{display:block;position:absolute;inset:0 0 auto 0;background:#fff;color:#000;direction:rtl;font-family:inherit}
  html,body,#app{height:auto;overflow:visible}

}

/* dark mode */
@media (prefers-color-scheme: dark){
  :root:not([data-theme="light"]){--bg:#0e1716;--card:#152220;--ink:#e6efed;--muted:#94a8a3;--line:#253634;--pri:#2bb3a3;--pri-2:#5fd1c3;--pri-soft:#12302c;--field:#101c1a;--soft:#122020;--shadow:0 8px 28px rgba(0,0,0,.45)}
}
:root[data-theme="dark"]{--bg:#0e1716;--card:#152220;--ink:#e6efed;--muted:#94a8a3;--line:#253634;--pri:#2bb3a3;--pri-2:#5fd1c3;--pri-soft:#12302c;--field:#101c1a;--soft:#122020;--shadow:0 8px 28px rgba(0,0,0,.45)}

/* paste confirmation */
.pb-item{display:flex;gap:10px;align-items:flex-start;border:1px solid var(--line);border-radius:12px;padding:10px;margin-bottom:8px;background:var(--card)}
.pb-check input{width:20px;height:20px;accent-color:var(--pri);margin-top:2px}
.pb-main{flex:1;min-width:0}
.pb-top{display:flex;align-items:center;gap:6px;flex-wrap:wrap}
#pasteText{min-height:150px;font-size:var(--fs-sm)}

/* travel-time tooltip on route lines */
.leg-tip{background:var(--card);color:var(--ink);border-radius:12px;box-shadow:var(--shadow);padding:8px 11px;font-size:var(--fs-sm);min-width:150px;max-width:240px;transform:translateY(-8px);pointer-events:none;text-align:center;direction:rtl}
.lt-names{font-size:var(--fs-xs);color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-bottom:3px}
.lt-main{font-size:var(--fs-sm);border-top:3px solid;padding-top:4px}
.lt-alt{font-size:var(--fs-xs);color:var(--muted);margin-top:2px}
.lt-note{font-size:var(--fs-xs);color:var(--muted);margin-top:3px}

/* auto plan */
.ai-btn{display:flex;align-items:center;gap:12px;width:100%;border:0;border-radius:16px;padding:13px 16px;margin-bottom:12px;cursor:pointer;text-align:start;color:#fff;
  background:linear-gradient(120deg,#7c3aed,#0f766e);box-shadow:0 6px 18px rgba(124,58,237,.25)}
.ai-btn span{font-size:var(--fs-xl)}
.ai-btn b{display:block;font-size:var(--fs-md)}
.ai-btn small{opacity:.9;font-size:var(--fs-xs)}
.ap-card,.ap-day{margin-bottom:10px}
.ap-hotel{display:flex;align-items:center;gap:10px;padding:8px;border:1px solid var(--line);border-radius:11px;margin-bottom:6px;cursor:pointer}
.ap-hotel.on{border-color:var(--pri);background:var(--pri-soft)}
.ap-hotel>div{flex:1;min-width:0}
.ap-hotel input{accent-color:var(--pri)}
.ap-item{display:flex;align-items:center;gap:8px;padding:6px 0;border-bottom:1px solid var(--line)}
.ap-item:last-child{border-bottom:0}
.ap-item.off{opacity:.4}
.ap-item.off b{text-decoration:line-through}
.ap-main{flex:1;min-width:0}
.ap-day .dot{display:inline-block;width:10px;height:10px;border-radius:50%;margin-inline-end:4px}
.sticky-actions{position:sticky;bottom:0;background:var(--card);padding:10px 0 4px;margin-top:10px}

.btn.booking{background:#003b95;border-color:#003b95;color:#fff}
.fl-card .row-gap{flex-wrap:wrap}

/* printable document (used for print and for PDF generation) */
.pdf-host{position:absolute;top:0;left:0;width:794px;background:#fff;z-index:-50;pointer-events:none}
.pr{background:#fff;color:#111;direction:rtl;font-family:'Rubik',system-ui,Arial,sans-serif;width:100%;box-sizing:border-box}
.pdf-host .pr{padding:0 6px}
.pr-t tr{break-inside:avoid;page-break-inside:avoid}
.pr{padding:10mm}
.pr h1{font-size:22pt;margin:0}
.pr-sub{color:#444;margin-bottom:8mm}
.pr h2{font-size:14pt;margin:6mm 0 2mm;border-bottom:1px solid #999;padding-bottom:1mm}
.pr-day{break-inside:avoid-page}
.pr-t{width:100%;border-collapse:collapse;font-size:10.5pt}
.pr-t td{border-bottom:1px solid #ddd;padding:1.5mm 2mm;vertical-align:top}
.pr-n{width:6mm;font-weight:700}
.pr-time{white-space:nowrap;width:24mm;font-variant-numeric:tabular-nums}
.pr-leg{white-space:nowrap;color:#555;width:22mm}
.pr-a{color:#555;font-size:9pt}
.pr-note{font-size:9pt;background:#fff8dc;padding:1mm 2mm;margin-top:1mm}
.pr-ev{font-size:10pt;margin:1mm 0}
.pr-foot{font-size:9.5pt;color:#444;margin-top:1.5mm}
.pr-notes{white-space:pre-wrap;font-size:10.5pt}
.pr-day h2{break-after:avoid;page-break-after:avoid}
.pdf-state{display:flex;align-items:center;gap:10px;background:var(--bg);border-radius:12px;padding:12px;margin:8px 0 12px;font-size:14px}
.pdf-state .spinner{width:20px;height:20px;border-width:2px}
.pdf-state.ok{background:var(--pri-soft);color:var(--pri-2);font-weight:600}
.pdf-state.bad{background:#fdecea;color:#8a1c12}
.pdf-actions{display:flex;flex-direction:column;gap:8px}
.big-btn{width:100%;min-height:50px;font-size:16px}
.btn.wa{background:#25d366;border-color:#25d366;color:#fff}

.chips.subs{flex-wrap:nowrap;overflow-x:auto;background:var(--soft);border:1px solid var(--line);border-radius:14px;padding:8px;margin:-4px 0 12px;align-items:center}
.subs-lbl{flex:none}
.chip.sm{padding:5px 10px;font-size:var(--fs-xs)}
.subs-lbl{font-size:var(--fs-xs);color:var(--muted);margin-inline-end:4px}

/* Claude */
.claude-row{display:grid;grid-template-columns:1.4fr 1fr;gap:8px;margin:-4px 0 12px}
.claude-card{display:flex;align-items:center;gap:10px;border:1px solid #e8d5c8;background:#fbf4ee;color:#6b3a1f;border-radius:14px;padding:10px 12px;cursor:pointer;text-align:start}
.claude-card.alt{background:var(--card);border-color:var(--line);color:var(--ink)}
.claude-card span{font-size:var(--fs-lg)}
.claude-card b{display:block;font-size:var(--fs-sm)}
.claude-card small{font-size:var(--fs-xs);opacity:.85}
.btn.claude-btn{background:#c96442;border-color:#c96442;color:#fff;width:100%;min-height:50px;font-size:var(--fs-md)}
.claude-steps{background:var(--bg);border-radius:12px;padding:10px 12px;margin:12px 0 8px;font-size:var(--fs-sm);line-height:1.7}
.claude-preview{white-space:pre-wrap;font-size:var(--fs-xs);background:var(--bg);padding:8px;border-radius:8px;max-height:220px;overflow:auto;text-align:start}
.ci-item{border:1px solid var(--line);border-radius:12px;padding:10px;margin-bottom:8px;background:var(--card)}
.ci-item.on{border-color:var(--pri);background:var(--pri-soft)}
.ci-top{display:flex;gap:10px;align-items:flex-start;cursor:pointer}
.ci-top input{width:20px;height:20px;accent-color:var(--pri);margin-top:2px;flex:none}
.ci-main{flex:1;min-width:0}
.ci-why{font-size:var(--fs-sm);margin-top:4px;line-height:1.5}
.ci-when{display:flex;gap:6px;margin-top:8px}
.ci-when select{flex:1;min-width:0;border:1px solid var(--line);border-radius:10px;padding:7px;background:var(--field);color:var(--ink)}
.ci-when input{width:110px;border:1px solid var(--line);border-radius:10px;padding:6px;background:var(--field);color:var(--ink)}
.mini.del{color:var(--muted);font-size:var(--fs-sm)}
.mini.del:hover{background:#fde8e8;color:#c62828}
/* AI page */
.ai-page{padding-bottom:40px}
.ai-hero{display:flex;gap:12px;align-items:flex-start;background:linear-gradient(135deg,#f6efe7,#efe6f7);border-radius:16px;padding:14px;margin:4px 0 6px}
[data-theme=dark] .ai-hero{background:linear-gradient(135deg,#2c2620,#2a2433)}
@media (prefers-color-scheme:dark){:root:not([data-theme=light]) .ai-hero{background:linear-gradient(135deg,#2c2620,#2a2433)}}
.ai-hero>span{font-size:var(--fs-xl);line-height:1}
.ai-hero b{display:block;font-size:var(--fs-md);margin-bottom:3px}
.ai-hero small{color:var(--muted);font-size:var(--fs-xs);line-height:1.45;display:block}
.ai-step{display:flex;align-items:center;gap:8px;margin:18px 0 8px}
.ai-step .n{width:24px;height:24px;border-radius:50%;background:var(--pri);color:#fff;display:grid;place-items:center;font-size:var(--fs-sm);font-weight:700;flex:none}
.ai-step .muted{margin-inline-start:auto}
.ai-page textarea{width:100%;box-sizing:border-box;margin:8px 0;font-size:var(--fs-md)}
.ai-lbl{display:flex;align-items:center;gap:8px;font-size:var(--fs-sm);color:var(--muted);margin-top:8px}
.ai-lbl select{flex:1}
.ai-page .big-btn{width:100%;margin-top:4px}
.ai-tip{background:#e8f5e9;color:#1b5e20;border-radius:10px;padding:9px 11px;font-size:var(--fs-sm);margin-top:8px;line-height:1.5}
[data-theme=dark] .ai-tip{background:#1d3321;color:#b9e4bd}
.ai-mini{margin-top:6px}
.ai-actions{position:sticky;bottom:0;display:flex;gap:8px;align-items:center;background:var(--card, var(--bg));padding:10px 0;margin-top:6px}
.st.warn{color:#b26a00;font-size:var(--fs-xs)}
/* opening hours */
.item.is-closed{box-shadow:inset 3px 0 0 #d32f2f;background:#fff5f5}
[dir=ltr] .item.is-closed{box-shadow:inset 3px 0 0 #d32f2f}
[dir=rtl] .item.is-closed{box-shadow:inset -3px 0 0 #d32f2f}
[data-theme=dark] .item.is-closed{background:#3a1f1f}
@media (prefers-color-scheme:dark){:root:not([data-theme=light]) .item.is-closed{background:#3a1f1f}}
.item.is-closed .time{background:#fde8e8;color:#c62828;border-color:#f5b5b5}
.item-hrs{display:flex;flex-wrap:wrap;gap:6px;align-items:center;margin-top:3px;font-size:var(--fs-xs)}
.item-hrs .hrs{color:var(--muted)}
.closed-pill{display:inline-flex;align-items:center;gap:3px;background:#fde8e8;color:#c62828;border-radius:8px;padding:2px 7px;font-size:var(--fs-xs);font-weight:600}
.strip-card.is-closed{border-color:#e57373;background:#fff5f5}
.local-clock{margin-top:6px;font-size:var(--fs-sm);opacity:.95}
.local-clock small{opacity:.8}
/* type pins */
.tpin{--c:#0f766e;position:relative;width:34px;height:34px;border-radius:50% 50% 50% 4px;transform:rotate(-45deg);background:var(--c);border:2px solid #fff;box-shadow:0 2px 6px rgba(0,0,0,.35);display:grid;place-items:center;cursor:pointer;transition:transform .15s;margin-bottom:6px}
.tpin-ic{transform:rotate(45deg);width:24px;height:24px;border-radius:50%;background:#fff;display:grid;place-items:center;font-size:var(--fs-sm);line-height:1}
.tpin-n{position:absolute;top:-7px;right:-7px;transform:rotate(45deg);min-width:17px;height:17px;padding:0 3px;border-radius:9px;background:#fff;color:var(--c);border:1.5px solid var(--c);font:700 10.5px/14px system-ui,sans-serif;text-align:center;box-sizing:border-box}
.tpin.sel{transform:rotate(-45deg) scale(1.3);z-index:2;box-shadow:0 0 0 4px rgba(255,255,255,.7),0 3px 10px rgba(0,0,0,.45)}
.tpin.visited{opacity:.75}
.tpin.visited .tpin-ic{color:#6b7775;font-weight:700;font-size:var(--fs-sm)}
.type-ic{font-size:.95em}
/* flight / hotel sync bar */
.sync-bar{display:flex;flex-wrap:wrap;gap:6px;padding:8px 12px;background:var(--pri-soft);border-bottom:1px solid var(--line);font-size:var(--fs-xs)}
.sync-bar span{background:var(--card);border:1px solid var(--line);border-radius:8px;padding:2px 8px}
.sync-bar .sb-warn{background:#fff4e5;border-color:#f5c68a;color:#8a4b00;font-weight:600}
[data-theme=dark] .sync-bar .sb-warn{background:#3a2a12;color:#f5c68a}
.rbadge{display:inline-block;font-size:var(--fs-xs);background:#00704a;color:#fff;border-radius:6px;padding:1px 6px;vertical-align:middle}
/* home: all trips */
.home-h{display:flex;align-items:baseline;justify-content:space-between;margin-top:6px}
.home-h h2{margin:0}
.home-actions{display:flex;gap:8px;margin:10px 0 14px}
.home-actions .btn{flex:1}
.trip-cards{display:grid;gap:12px;grid-template-columns:repeat(auto-fill,minmax(260px,1fr))}
.trip-card{background:var(--card);border:1px solid var(--line);border-radius:16px;overflow:hidden;cursor:pointer;box-shadow:var(--shadow);transition:transform .15s}
.trip-card:active{transform:scale(.99)}
.trip-card.cur{outline:2px solid var(--pri)}
.tc-cover{position:relative;height:104px;color:#fff;padding:12px 14px;display:flex;flex-direction:column;justify-content:flex-end;gap:6px}
.tc-name{font-size:var(--fs-lg);line-height:1.2;text-shadow:0 1px 3px rgba(0,0,0,.3)}
.tc-cd{align-self:flex-start;background:rgba(255,255,255,.22);border-radius:10px;padding:2px 9px;font-size:var(--fs-xs);font-weight:600}
.tc-fav{position:absolute;top:8px;inset-inline-end:8px;width:38px;height:38px;border-radius:50%;border:0;background:rgba(255,255,255,.22);color:#fff;font-size:var(--fs-lg);line-height:1;cursor:pointer}
.tc-fav.on{background:#fff;color:#f59e0b}
.tc-body{padding:10px 14px 12px;font-size:var(--fs-sm);color:var(--muted)}
.tc-foot{display:flex;align-items:center;gap:8px;margin-top:8px}
.tc-open{margin-inline-start:auto;color:var(--pri);font-weight:600}
/* mobile: keep form fields inside their columns (date/time inputs have a large intrinsic width, esp. on iPhone) */
.grid2,.grid3{grid-template-columns:repeat(2,minmax(0,1fr))}
.grid3{grid-template-columns:repeat(3,minmax(0,1fr))}
.grid2>*,.grid3>*,.field{min-width:0}
.field input,.field select,.field textarea{min-width:0;max-width:100%;box-sizing:border-box}
input[type=date],input[type=time]{min-width:0;max-width:100%;-webkit-appearance:none;appearance:none;min-height:44px;text-align:start}
input[type=date]::-webkit-date-and-time-value,input[type=time]::-webkit-date-and-time-value{text-align:start}
@media (max-width:340px){.grid3{grid-template-columns:repeat(2,minmax(0,1fr))}}
.subtabs{overflow-x:auto;scrollbar-width:none;max-width:100%}
.subtabs::-webkit-scrollbar{display:none}
.subtabs button{flex:0 0 auto;white-space:nowrap}
.subtabs button{flex:1 0 auto}
@media (max-width:420px){.subtabs button{font-size:var(--fs-xs);padding:8px 5px}.subtabs{gap:2px}}
/* import from page */
.imp-group{margin:14px 2px 6px;font-weight:600;font-size:var(--fs-sm);color:var(--pri)}
.imp-row.is-far{background:#fff8db;border-color:#f0d36b}
[data-theme=dark] .imp-row.is-far{background:#3a3316;border-color:#8a7424}
.st.far{color:#8a6100;font-weight:600}
.imp-rday{margin-top:6px;font-size:var(--fs-sm);padding:5px 8px;border-radius:8px;border:1px solid var(--line);background:var(--field);color:var(--ink);max-width:100%}
.leg.long{background:#fff8db;color:#8a6100;border-radius:8px;font-weight:600}
.sync-bar .sb-btn{border:1px solid var(--pri);background:var(--card);color:var(--pri);border-radius:8px;padding:2px 9px;font-size:var(--fs-xs);cursor:pointer;font-weight:600}
.ap-fl{border:1px solid var(--line);border-radius:12px;padding:8px 12px;margin:0 0 12px;background:var(--bg)}
.ap-fl summary{cursor:pointer;font-weight:600;font-size:var(--fs-sm);padding:4px 0}
.ap-fl-h{font-size:var(--fs-sm);font-weight:600;margin:6px 0 4px}
/* stage A/D */
.wx-chip{margin-inline-start:6px;font-size:var(--fs-xs);background:var(--bg);border:1px solid var(--line);border-radius:8px;padding:1px 6px;white-space:nowrap}
.rain-bar{display:flex;flex-wrap:wrap;align-items:center;gap:8px;padding:8px 12px;background:#e8f1fb;color:#1e4b7a;font-size:var(--fs-sm);border-bottom:1px solid var(--line)}
[data-theme=dark] .rain-bar{background:#1b2d42;color:#b9d4f0}
.task{display:flex;align-items:flex-start;gap:10px;padding:9px 2px;border-top:1px solid var(--line);font-size:var(--fs-sm)}
.task input{margin-top:3px;width:18px;height:18px;flex:none}
.tk-main{flex:1;display:flex;flex-direction:column;gap:2px}
.tk-due{font-size:var(--fs-xs);color:var(--muted);white-space:nowrap}
.task.done .tk-main span{text-decoration:line-through;opacity:.6}
.task.late .tk-due{color:#c62828;font-weight:700}
.task.soon .tk-due{color:#b26a00;font-weight:700}
.ov-tasks{cursor:pointer}
.ovt{display:flex;justify-content:space-between;gap:8px;font-size:var(--fs-sm);padding:4px 0}
.ovt small{color:var(--muted);white-space:nowrap}
.mb-pill{display:inline-flex;gap:3px;align-items:center;background:#f3e8ff;color:#6b21a8;border-radius:8px;padding:2px 7px;font-size:var(--fs-xs);font-weight:600}
.mb-pill a{color:inherit;text-decoration:none}
[data-theme=dark] .mb-pill{background:#3b2552;color:#e3c8ff}
/* live today */
.live-card{border:2px solid var(--pri);background:linear-gradient(180deg,var(--pri-soft),var(--card) 60%)}
.lv-row{display:flex;flex-wrap:wrap;align-items:center;gap:6px 8px;padding:6px 0}
.lv-row b{flex:1;min-width:0}
.lv-row small{color:var(--muted)}
.lv-tag{background:var(--pri);color:#fff;border-radius:7px;padding:1px 7px;font-size:var(--fs-xs);font-weight:700}
.lv-tag.next{background:#64748b}
.lv-leave{background:var(--card);border:1px solid var(--line);border-radius:10px;padding:8px 10px;margin:4px 0 8px;font-size:var(--fs-sm)}
.lv-leave.urgent{border-color:#e57373;background:#fdecea;color:#8a1c12}
.linkbtn{border:0;background:none;color:var(--pri);text-decoration:underline;cursor:pointer;padding:0;font:inherit}
.banner.offline{background:#fff4e5;color:#8a4b00}
/* stage C */
.settle .st-row{display:flex;justify-content:space-between;padding:4px 0;font-size:var(--fs-sm)}
.settle .pos{color:#15803d}.settle .neg{color:#c62828}
.st-moves{margin-top:8px;padding-top:8px;border-top:1px solid var(--line);display:flex;flex-direction:column;gap:4px;font-size:var(--fs-sm)}
.votes{display:inline-flex;gap:4px;margin:3px 0}
.vote{border:1px solid var(--line);background:var(--card);border-radius:14px;padding:1px 8px;font-size:var(--fs-xs);cursor:pointer;color:var(--ink)}
.vote.on{background:#dcfce7;border-color:#86efac}
.vote.on.down{background:#fee2e2;border-color:#fca5a5}
.kid-bar{display:flex;flex-wrap:wrap;gap:6px;align-items:center;padding:8px 12px;background:#fef9c3;color:#713f12;font-size:var(--fs-xs);border-bottom:1px solid var(--line)}
[data-theme=dark] .kid-bar{background:#3a3412;color:#fde68a}
.kid-bar span{background:rgba(255,255,255,.55);border-radius:8px;padding:2px 7px}
.dest-card .dc-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
.dest-card .dc-grid>div{background:var(--bg);border-radius:10px;padding:8px;display:flex;flex-direction:column;gap:2px;font-size:var(--fs-sm)}
.dest-card .dc-grid span{font-size:var(--fs-lg)}
.dest-card .dc-grid small{color:var(--muted)}
.dc-extra{margin-top:8px;font-size:var(--fs-sm);background:#fff4e5;color:#8a4b00;border-radius:10px;padding:7px 10px}
[data-theme=dark] .dc-extra{background:#3a2a12;color:#f5c68a}
.dc-links{display:flex;flex-wrap:wrap;gap:12px;margin-top:10px;font-size:var(--fs-sm)}
.dc-links a{color:var(--pri);text-decoration:none}
/* stage D */
.docs .doc-row{display:flex;flex-wrap:wrap;gap:4px 12px;padding:6px 0;border-top:1px solid var(--line);font-size:var(--fs-sm)}
.docs .doc-row span,.docs .doc-row a{color:var(--muted);text-decoration:none}
.doc-warn{background:#fff4e5;color:#8a4b00;border-radius:10px;padding:8px 10px;margin:0 0 8px;font-size:var(--fs-sm);cursor:pointer}
.doc-warn.bad{background:#fdecea;color:#8a1c12}
.doc-edit{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;margin-bottom:8px;align-items:end}
.doc-edit input{width:100%;box-sizing:border-box;border:1px solid var(--line);border-radius:9px;padding:8px;background:var(--field);color:var(--ink);font-size:var(--fs-sm);min-width:0}
.doc-edit label{display:flex;flex-direction:column;gap:2px;min-width:0}
@media (max-width:420px){.doc-edit{grid-template-columns:1fr 1fr}.doc-edit>input{grid-column:1/-1}}
.book-btn{display:flex;align-items:center;gap:12px;width:100%;border:1px solid var(--line);background:var(--card);border-radius:16px;padding:12px 16px;margin:0 0 12px;cursor:pointer;text-align:start;color:var(--ink)}
.book-btn span{font-size:var(--fs-xl)}.book-btn small{display:block;color:var(--muted)}
.forecast .ov-big{margin:4px 0}
/* trip book (PDF) */
.pr.book .bk-cover{background:linear-gradient(135deg,#0f766e,#2563eb);color:#fff;border-radius:14px;padding:26px 22px;margin-bottom:14px}
.pr.book .bk-cover h1{color:#fff;margin:4px 0}.pr.book .bk-cover .pr-sub{color:#e0f2fe}
.bk-kicker{font-size:var(--fs-xs);letter-spacing:.08em;opacity:.85}
.bk-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-bottom:14px}
.bk-stats div{background:#f1f5f4;border-radius:10px;padding:10px;text-align:center;font-size:12px;color:#555}
.bk-stats b{display:block;font-size:22px;color:#0f766e}
.bk-day h2{border-bottom:2px solid #0f766e;padding-bottom:4px}
.bk-item{display:flex;gap:10px;align-items:flex-start;padding:8px 0;border-bottom:1px solid #eee}
.bk-item img,.bk-ph{width:120px;height:80px;object-fit:cover;border-radius:8px;flex:none;background:#eef3f2;display:grid;place-items:center;font-size:28px}
.bk-end{text-align:center;color:#888;margin-top:16px;font-size:13px}
@media (max-width:420px){.subtabs{flex-wrap:wrap;overflow:visible}.subtabs button{flex:1 1 auto}}
/* airport picker */
.apt-list{position:relative;z-index:30;margin:-6px 0 10px;max-height:260px;overflow-y:auto;background:var(--card);border:1px solid var(--line);border-radius:12px;box-shadow:var(--shadow)}
.apt-opt{display:flex;flex-direction:column;align-items:flex-start;gap:1px;width:100%;border:0;border-bottom:1px solid var(--line);background:none;padding:8px 10px;text-align:start;cursor:pointer;color:var(--ink);font-size:var(--fs-sm)}
.apt-opt small{color:var(--muted);font-size:var(--fs-xs)}
.apt-opt:hover{background:var(--bg)}
.apt-name{display:block;color:var(--muted);font-size:var(--fs-xs);min-height:14px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ret-fl{border:1px solid var(--line);border-radius:12px;padding:6px 12px 8px;margin:0 0 12px;background:var(--bg)}
.ret-fl summary{cursor:pointer;font-weight:600;padding:4px 0}
[data-fstat]{margin:-4px 0 10px}
.apt-name{direction:ltr;unicode-bidi:plaintext}[dir=rtl] .apt-name{text-align:right}
/* quick day chips under booking dates */
.dchips{display:flex;gap:5px;overflow-x:auto;margin:-6px 0 10px;padding-bottom:2px;scrollbar-width:none}
.dchips::-webkit-scrollbar{display:none}
.dchip{flex:none;display:flex;flex-direction:column;align-items:center;border:1px solid var(--line);background:var(--card);border-radius:9px;padding:3px 8px;font-size:var(--fs-xs);cursor:pointer;color:var(--ink);line-height:1.2}
.dchip small{color:var(--muted);font-size:var(--fs-xs)}
.dchip.on{background:var(--pri);border-color:var(--pri);color:#fff}.dchip.on small{color:#e0f2f1}
.fill-win{background:var(--pri-soft);border-radius:10px;padding:8px 10px;margin:-4px 0 8px;font-size:var(--fs-sm);font-weight:600}
/* trip members */
.members{margin-top:14px;border-top:1px solid var(--line);padding-top:10px}
.members h3{margin:0 0 4px}
.mem-row{display:flex;align-items:center;gap:10px;padding:7px 0;border-bottom:1px solid var(--line)}
.mem-row>div{flex:1;min-width:0;display:flex;flex-direction:column}
.mem-row small{color:var(--muted);font-size:var(--fs-xs);overflow:hidden;text-overflow:ellipsis}
.mem-av{width:32px;height:32px;border-radius:50%;background:var(--pri);color:#fff;display:grid;place-items:center;font-weight:700;flex:none}
.mem-add{display:flex;gap:8px;margin:10px 0 6px}
.mem-add input{flex:1;min-width:0;border:1px solid var(--line);border-radius:10px;padding:9px 11px;background:var(--field);color:var(--ink);font-size:var(--fs-md)}
.tc-foot .pill{font-size:var(--fs-xs)}

/* ---------- trip screen widgets ---------- */
.ov-widgets{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;align-items:start}
.wg{grid-column:span 2;min-width:0;position:relative}
.wg.half{grid-column:span 1}
.wg-body>*{margin-bottom:0}
.wg-body>*+*{margin-top:10px}
.wg-body .card{margin-bottom:0}
.wg-body .ov-actions{margin:2px 0}
.cover .cover-wg{inset-inline-end:54px}
.wg-open{display:block;margin:16px auto 4px}
.wg-tools{display:flex;align-items:center;gap:8px;background:var(--pri-soft);border:1px solid var(--pri);border-radius:14px;padding:10px 12px;margin-bottom:12px;position:sticky;top:6px;z-index:5}
.wg-tools>div{flex:1;min-width:0}
.wg-editing .wg{outline:2px dashed var(--line);outline-offset:3px;border-radius:14px;background:var(--bg)}
.wg-editing .wg-body{pointer-events:none;opacity:.85;max-height:220px;overflow:hidden}
.wg-editing .wg.half .wg-body{max-height:160px}
.wg-bar{display:flex;align-items:center;gap:4px;padding:4px 2px 6px;font-size:var(--fs-sm)}
.wg-bar b{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.wg-bar button{border:1px solid var(--line);background:var(--card);border-radius:8px;min-width:30px;height:30px;padding:0 4px;cursor:pointer;font-size:var(--fs-sm);color:inherit}
.wg-bar .wg-x{color:var(--danger)}
.wg.half .wg-bar button[data-wg=up],.wg.half .wg-bar button[data-wg=down]{min-width:26px}
.wg.half .wg-bar b{display:none}
.wg-handle{cursor:grab;touch-action:none;font-size:var(--fs-lg);line-height:1;padding:4px 6px;border-radius:8px;background:var(--card);border:1px solid var(--line);user-select:none;-webkit-user-select:none}
.wg.dragging{opacity:.55;outline-color:var(--pri)!important;outline-style:solid!important}
body.wg-dragging{user-select:none;-webkit-user-select:none;cursor:grabbing}
.wg-empty{padding:12px;text-align:center;border:1px dashed var(--line);border-radius:12px}
.wg-add{margin-top:16px;padding:12px;border:1px dashed var(--line);border-radius:14px}
.wg-chips{display:flex;flex-wrap:wrap;gap:8px;margin-top:8px}

/* ---------- nav: 7 buttons ---------- */
.bottomnav{grid-template-columns:repeat(6,1fr)}
.bottomnav button{font-size:var(--fs-xs);min-width:0}
body.desk .bottomnav{grid-template-columns:repeat(5,1fr)}
.nav-badge{position:absolute;top:5px;inset-inline-start:calc(50% + 6px);background:var(--danger,#dc2626);color:#fff;border-radius:999px;font-size:var(--fs-xs);font-weight:700;min-width:16px;height:16px;line-height:16px;padding:0 4px;text-align:center}

/* ---------- feedback ---------- */
.fb-hero{display:flex;gap:14px;align-items:center;padding:18px;border-radius:18px;margin-bottom:12px;color:#fff;background:linear-gradient(135deg,#0f766e 0%,#2563eb 60%,#7c3aed 100%);box-shadow:0 8px 24px -12px rgba(37,99,235,.6)}
.fb-hero h2{margin:0 0 4px;font-size:var(--fs-lg)}
.fb-hero p{margin:0;opacity:.92;font-size:var(--fs-sm);line-height:1.45}
.fb-hero-ic{font-size:34px;width:58px;height:58px;flex:none;display:grid;place-items:center;background:rgba(255,255,255,.18);border-radius:16px}
.fb-tabs{display:flex;gap:6px;background:var(--card);border:1px solid var(--line);border-radius:14px;padding:4px;margin-bottom:12px}
.fb-tabs button{flex:1;border:0;background:none;border-radius:10px;padding:9px 6px;font:inherit;font-size:var(--fs-sm);color:var(--muted);cursor:pointer;white-space:nowrap}
.fb-tabs button.on{background:var(--pri);color:#fff;font-weight:600}
.fb-tabs small{opacity:.8}
.fb-new{background:var(--danger,#dc2626);color:#fff;border-radius:999px;padding:0 6px;font-size:var(--fs-xs)}
.fb-card{padding:16px}
.fb-q{font-weight:600;font-size:var(--fs-sm);margin:14px 0 8px}
.fb-q:first-child{margin-top:0}
.fb-types{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
.fb-types button{display:flex;align-items:center;gap:8px;border:1.5px solid var(--line);background:var(--bg);border-radius:12px;padding:11px 10px;font:inherit;font-size:var(--fs-sm);cursor:pointer;color:inherit;text-align:start;transition:.15s}
.fb-types button span{font-size:var(--fs-lg)}
.fb-types button.on{border-color:var(--pri);background:var(--pri-soft);font-weight:600;box-shadow:0 0 0 3px var(--pri-soft)}
.fb-chips{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:6px}
.fb-chips .chip{padding:6px 11px;font-size:var(--fs-sm)}
.chip.on{background:var(--pri);border-color:var(--pri);color:#fff}
.chip.on small{color:#fff;opacity:.85}
.fb textarea{width:100%;box-sizing:border-box;border:1.5px solid var(--line);border-radius:12px;padding:12px;font:inherit;font-size:var(--fs-sm);background:var(--bg);color:inherit;resize:vertical;min-height:110px}
.fb textarea:focus{outline:none;border-color:var(--pri);box-shadow:0 0 0 3px var(--pri-soft)}
.fb-count{text-align:end;margin-top:2px}
.fb-seg{display:flex;gap:6px}
.fb-seg button{flex:1;border:1.5px solid var(--line);background:var(--bg);border-radius:10px;padding:8px 4px;font:inherit;font-size:var(--fs-xs);cursor:pointer;color:inherit}
.fb-seg button.on{border-color:#f97316;background:#fff7ed;color:#9a3412;font-weight:600}
.fb-mood{display:flex;gap:10px;justify-content:center}
.fb-mood button{font-size:30px;width:54px;height:54px;border-radius:50%;border:2px solid transparent;background:var(--bg);cursor:pointer;filter:grayscale(.7);opacity:.7;transition:.15s}
.fb-mood button.on{filter:none;opacity:1;border-color:var(--pri);transform:scale(1.12)}
.fb-send{width:100%;margin:18px 0 8px;padding:13px;font-size:var(--fs-md)}
.fb-send:disabled{opacity:.45}
.fb-thanks{text-align:center;padding:26px 18px}
.fb-burst{font-size:52px;animation:fbpop .5s ease-out}
@keyframes fbpop{0%{transform:scale(.3);opacity:0}70%{transform:scale(1.15)}100%{transform:scale(1);opacity:1}}
.fb-item{padding:12px 14px}
.fb-item-h{display:flex;gap:10px;align-items:flex-start}
.fb-ic{font-size:var(--fs-lg)}
.fb-meta{flex:1;min-width:0;font-size:var(--fs-sm)}
.fb-text{margin:8px 0 2px;white-space:pre-wrap;line-height:1.5;font-size:var(--fs-sm)}
.fb-reply{margin-top:8px;background:var(--pri-soft);border-radius:10px;padding:8px 10px;font-size:var(--fs-sm)}
.fb-ctx{margin-top:6px}
.fb-admin{display:flex;gap:6px;margin-top:8px}
.fb-admin select{flex:none;border:1px solid var(--line);border-radius:8px;padding:6px;background:var(--bg);color:inherit;font:inherit;font-size:var(--fs-sm)}
.fb-admin input{flex:1;min-width:0;border:1px solid var(--line);border-radius:8px;padding:6px 8px;background:var(--bg);color:inherit;font:inherit;font-size:var(--fs-sm)}
.fb-st{flex:none;font-size:var(--fs-xs);border-radius:999px;padding:3px 9px;background:var(--bg);border:1px solid var(--line);white-space:nowrap}
.fb-st.st-new{background:#eff6ff;border-color:#bfdbfe;color:#1d4ed8}
.fb-st.st-review{background:#fefce8;border-color:#fde68a;color:#854d0e}
.fb-st.st-planned{background:#f5f3ff;border-color:#ddd6fe;color:#6d28d9}
.fb-st.st-done{background:#f0fdf4;border-color:#bbf7d0;color:#15803d}
.fb-st.st-declined{background:var(--bg);color:var(--muted)}
.fb-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-bottom:10px}
.fb-stats div{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:8px 4px;text-align:center}
.fb-stats b{display:block;font-size:var(--fs-lg)}
.fb-stats span{font-size:var(--fs-xs);color:var(--muted)}
.fb-export{margin:6px 0 12px}

/* ---------- first-time tour ---------- */
#tour{position:fixed;inset:0;z-index:9000}
#tour[hidden]{display:none}
.tour-dim{position:absolute;inset:0;background:rgba(8,15,25,.62)}
.tour-spot{position:absolute;border-radius:14px;box-shadow:0 0 0 9999px rgba(8,15,25,.62),0 0 0 3px #fff,0 0 22px 6px rgba(255,255,255,.35);transition:all .3s ease;pointer-events:none}
.tour-card{position:absolute;left:16px;right:16px;max-width:380px;margin:0 auto;background:var(--card);color:var(--ink,inherit);border-radius:18px;padding:16px;box-shadow:0 18px 50px -10px rgba(0,0,0,.5);animation:tourin .25s ease-out}
#tour.center .tour-card{top:50%;transform:translateY(-50%);text-align:center}
#tour.center .tour-h{justify-content:center;flex-direction:column;gap:6px}
#tour.center .tour-ic{font-size:44px}
@keyframes tourin{from{opacity:0;translate:0 8px}to{opacity:1;translate:0 0}}
.tour-arrow{position:absolute;width:18px;height:18px;background:var(--card);transform:rotate(45deg);inset-inline-start:auto}
.arrow-top .tour-arrow{top:-8px}
.arrow-bottom .tour-arrow{bottom:-8px}
.tour-h{display:flex;align-items:center;gap:10px}
.tour-ic{font-size:var(--fs-xl)}
.tour-h b{flex:1;font-size:var(--fs-md)}
.tour-n{font-size:var(--fs-xs);color:var(--muted)}
.tour-card p{margin:8px 0 10px;line-height:1.5;font-size:var(--fs-sm)}
.tour-dots{display:flex;gap:5px;justify-content:center;margin-bottom:12px}
.tour-dots i{width:7px;height:7px;border-radius:50%;background:var(--line)}
.tour-dots i.on{background:var(--pri);width:18px;border-radius:4px}
.tour-f{display:flex;align-items:center;gap:6px;flex-wrap:wrap}
.tour-never{flex:1;display:flex;align-items:center;gap:6px;font-size:var(--fs-xs);color:var(--muted);min-width:120px;cursor:pointer}

/* ---------- what's new ---------- */
.wn-hero{display:flex;align-items:center;gap:12px;margin-bottom:12px}
.wn-hero>span{font-size:38px;width:60px;height:60px;display:grid;place-items:center;border-radius:16px;background:linear-gradient(135deg,#fde68a,#fbcfe8)}
.wn-hero h2{margin:0}
.wn-ver{border:1px solid var(--line);border-radius:14px;padding:10px 12px;margin-bottom:10px;background:var(--bg)}
.wn-vh{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:6px}
.wn-vh b{background:var(--pri);color:#fff;border-radius:999px;padding:1px 9px;font-size:var(--fs-xs)}
.wn-item{display:flex;gap:10px;align-items:flex-start}
.wn-item span{font-size:var(--fs-lg);line-height:1.3}
.wn-item p{margin:0 0 6px;line-height:1.5;font-size:var(--fs-sm)}
.wn-off{margin:6px 0 4px;font-size:var(--fs-sm)}
.imp-hidden{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin:12px 2px;padding:10px 12px;border:1px dashed var(--line);border-radius:12px}
.leg-btn{border:0;background:none;color:inherit;font:inherit;font-size:var(--fs-xs);padding:3px 8px;border-radius:999px;cursor:pointer;display:inline-flex;align-items:center;gap:4px}
.leg-btn:hover{background:var(--bg)}
.leg-btn.own{background:var(--pri-soft);color:var(--pri);font-weight:600}
.leg-caret{font-size:var(--fs-xs);opacity:.6}
.lm-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-bottom:8px}
.lm-opt{display:flex;flex-direction:column;align-items:center;gap:2px;border:1.5px solid var(--line);background:var(--bg);border-radius:14px;padding:12px 6px;cursor:pointer;color:inherit;font:inherit}
.lm-opt span{font-size:var(--fs-xl)}
.lm-opt small{color:var(--muted)}
.lm-opt.on{border-color:var(--pri);background:var(--pri-soft);box-shadow:0 0 0 3px var(--pri-soft)}
.lm-def{flex-direction:row;width:100%;justify-content:center;gap:10px;padding:10px}
.lm-def span{font-size:var(--fs-lg)}

/* ---------- airport ⇄ hotel transfer ---------- */
.xfer{margin:8px 0 10px;border:1px solid var(--line);border-radius:14px;background:var(--card);overflow:hidden}
.xfer summary{list-style:none;cursor:pointer;padding:10px 12px;font-weight:600;font-size:var(--fs-sm);display:flex;align-items:center;gap:8px}
.xfer summary::-webkit-details-marker{display:none}
.xfer summary::after{content:"▾";margin-inline-start:auto;color:var(--muted);transition:transform .2s}
.xfer[open] summary::after{transform:rotate(180deg)}
.xf-sum{font-size:var(--fs-lg)}
.xf-reco{margin:0 12px 10px;padding:8px 10px;border-radius:10px;font-size:var(--fs-sm);font-weight:600}
.xf-reco.taxi{background:#fff7ed;color:#9a3412}
.xf-reco.pt{background:#ecfdf5;color:#065f46}
[data-theme=dark] .xf-reco.taxi{background:#3b2414;color:#fdba74}
[data-theme=dark] .xf-reco.pt{background:#0f2e24;color:#6ee7b7}
.xf-opt{margin:0 12px 10px;padding:10px;border:1.5px solid var(--line);border-radius:12px;display:flex;flex-direction:column;gap:6px}
.xf-opt.best{border-color:var(--pri);box-shadow:0 0 0 3px var(--pri-soft)}
.xf-h{display:flex;justify-content:space-between;gap:8px;font-size:var(--fs-sm)}
.xf-line{display:flex;gap:8px;align-items:flex-start;font-size:var(--fs-sm)}
.xf-veh{font-size:var(--fs-lg);line-height:1.2}
.xf-opt .btn{align-self:flex-start}
.xf-ride{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.ride-btns{display:inline-flex;gap:6px}
.ride{border:0;border-radius:10px;padding:8px 14px;font:inherit;font-weight:700;font-size:var(--fs-sm);cursor:pointer;color:#fff}
.ride.uber{background:#000}
.ride.bolt{background:#34d186;color:#06281a}
.ride.best{box-shadow:0 0 0 3px var(--pri-soft)}

/* ---------- back navigation ---------- */
.back-btn{flex:none}
[dir=ltr] .back-btn svg{transform:scaleX(-1)}
.swipe-back{position:fixed;z-index:8000;width:44px;height:44px;border-radius:50%;background:var(--card);box-shadow:0 4px 16px rgba(0,0,0,.25);display:grid;place-items:center;font-size:var(--fs-xl);color:var(--muted);pointer-events:none;transition:background .15s,color .15s}
.swipe-back.ready{background:var(--pri);color:#fff}
.xf-reco.unk{background:var(--bg);color:var(--ink,inherit)}
.hprice{font-size:var(--fs-xs);margin-top:3px;color:#0f5132;font-weight:600}
[data-theme=dark] .hprice{color:#86efac}
.hprice .muted{font-weight:400}
.ov-leg{font-size:var(--fs-xs);color:var(--muted);padding-inline-start:30px;margin:-2px 0}
.walk-t{font-size:var(--fs-xs);margin-top:3px;font-weight:600;color:var(--pri)}
.walk-t .muted{font-weight:400}
.pr-synct td{background:#f3f8f7;border-bottom:1px solid #e2ecea}
.pr-synct tr.warn td{color:#9a2a00;font-weight:700;background:#fff4ec}
.pr-xfer{background:#f5f3ff;border-radius:2mm;padding:1.5mm 2.5mm;margin:1.5mm 0 2mm}
.walk-t.far{color:#8a4b00}
.fb-link{display:block;margin:10px auto 0;border:0;background:none;color:var(--pri);font:inherit;font-weight:600;min-height:44px;padding:0 12px;cursor:pointer}

/* ---------- plan + map split (phones) ---------- */
:root{--split-h:0px}
body.split #view-map{bottom:auto;height:var(--split-h)}
body.planbar #view-plan{top:calc(var(--split-h) + 34px)}
body.split #view-map .map-search,body.split #view-map .fab-col,body.split #dayStrip{display:none}
body.split #view-map #dayChips{top:8px}
.split-bar{position:absolute;left:0;right:0;top:var(--split-h);height:34px;z-index:4;display:flex;align-items:center;justify-content:center;gap:10px;background:var(--card);border-bottom:1px solid var(--line);border-top:1px solid var(--line);touch-action:none;cursor:ns-resize}
.split-bar[hidden]{display:none}
.split-bar.off{border-top:0}
.sb-grip{width:42px;height:5px;border-radius:5px;background:var(--line)}
.sb-btn{border:0;background:none;color:var(--pri);font:inherit;font-size:var(--fs-sm);font-weight:600;min-height:34px;padding:0 10px;cursor:pointer}

/* ---------- plan rows (clean) ---------- */
.item{display:block;padding:0;gap:0}
.item .leg{padding:6px 0 0;padding-inline-start:62px;display:flex}
.item-row{display:grid;grid-template-columns:58px minmax(0,1fr) 44px;gap:8px;align-items:center;padding:8px 8px 10px 4px}
.it-time{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;min-height:48px;cursor:grab;user-select:none;-webkit-user-select:none;border-radius:12px}
.it-time:active{cursor:grabbing;background:var(--bg)}
.it-time .num{width:22px;height:22px;font-size:var(--fs-xs)}
.it-time .num.done{background:var(--pri)}
.it-time .num.done svg{width:14px;height:14px;color:#fff}
.it-time b{font-size:var(--fs-md,16px);font-variant-numeric:tabular-nums;font-weight:700;line-height:1.1}
.it-time b.fixed{color:var(--pri)}
.it-time small{font-size:var(--fs-xs,12px);color:var(--muted)}
.it-name{font-weight:600;font-size:var(--fs-md,16px);line-height:1.3;overflow-wrap:anywhere}
.it-name .type-ic{font-size:var(--fs-md,16px)}
.it-sub{font-size:var(--fs-sm,14px);color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-top:2px}
.it-pills{display:flex;flex-wrap:wrap;gap:4px;margin-top:4px}
.item.visited .it-name{text-decoration:line-through;color:var(--muted)}
.it-more{width:44px;height:44px;border:0;background:none;border-radius:12px;color:var(--muted);display:grid;place-items:center;cursor:pointer;flex:none}
.it-more:hover{background:var(--bg);color:var(--ink)}
.it-more svg{width:22px;height:22px}
.day-h .it-more{margin-inline-start:-4px}
.day-actions{padding:10px 12px 12px}
.btn.add-day{width:100%;min-height:48px;border-style:dashed;color:var(--pri);font-weight:600;display:flex;align-items:center;justify-content:center;gap:6px;background:transparent}
.plan-tools{display:flex;align-items:center;gap:8px;justify-content:space-between}
.plan-tools .btn svg{width:18px;height:18px}

/* ---------- action sheet ---------- */
.acts-sheet h2{margin:0 0 10px;font-size:var(--fs-lg,20px)}
.acts-list{display:flex;flex-direction:column;border:1px solid var(--line);border-radius:16px;overflow:hidden;background:var(--card)}
.act-row{display:flex;align-items:center;gap:12px;min-height:56px;padding:8px 14px;border:0;border-bottom:1px solid var(--line);background:none;color:inherit;font:inherit;text-align:start;cursor:pointer}
.act-row:last-child{border-bottom:0}
.act-row:hover,.act-row:active{background:var(--bg)}
.act-row.on{background:var(--pri-soft)}
.act-row.danger{color:var(--danger)}
.act-ic{width:28px;display:grid;place-items:center;font-size:var(--fs-lg);flex:none;color:var(--pri)}
.act-row.danger .act-ic{color:var(--danger)}
.act-ic svg{width:22px;height:22px}
.act-tx{display:flex;flex-direction:column;min-width:0}
.act-tx b{font-weight:600;font-size:var(--fs-md,16px)}
.act-tx small{color:var(--muted);font-size:var(--fs-sm,14px)}
.act-cancel{width:100%;margin-top:10px;min-height:48px}
.dotc{display:inline-block;width:14px;height:14px;border-radius:50%}

/* ---------- skeletons ---------- */
.skel{display:block;height:12px;border-radius:6px;background:linear-gradient(90deg,var(--line) 25%,var(--bg) 50%,var(--line) 75%);background-size:200% 100%;animation:skel 1.2s ease-in-out infinite}
@keyframes skel{0%{background-position:100% 0}100%{background-position:-100% 0}}
@media (prefers-reduced-motion:reduce){.skel{animation:none}}
.skel-card{display:grid;grid-template-columns:72px minmax(0,1fr);gap:12px;align-items:center;background:var(--card);border:1px solid var(--line);border-radius:16px;padding:12px;margin-bottom:10px}
.skel-img{width:72px;height:72px;border-radius:12px}
.skel-b{display:flex;flex-direction:column;gap:9px}
.skel-lines{display:flex;flex-direction:column;gap:8px;padding:4px 0}
.skel-wx{display:flex;gap:8px}
.skel-wx .skel{width:48px;height:64px;border-radius:12px}
.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
body.split .plan-head,body.split #view-plan .progress{display:none}
.it-time small{white-space:nowrap}

/* ---------- discover: one filter row, one-action cards ---------- */
.filter-row{display:flex;align-items:center;gap:6px;overflow-x:auto;scrollbar-width:none;margin:0 -14px 12px;padding:2px 14px}
.filter-row::-webkit-scrollbar{display:none}
.filter-row .chips{flex-wrap:nowrap;margin:0;overflow:visible;padding:0}
.chip-select{flex:none;display:inline-flex;align-items:center;gap:4px;border:1.5px solid var(--pri);color:var(--pri);background:var(--card);border-radius:999px;padding:0 4px 0 12px;min-height:44px;font-weight:600}
.chip-select select{border:0;background:transparent;color:inherit;font:inherit;font-weight:600;min-height:40px;padding:0 4px;-webkit-appearance:none;appearance:none;cursor:pointer}
.chip-select::after{content:"▾";font-size:var(--fs-xs);padding-inline-end:6px}
#googleBtn{display:none}
.ractions{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-top:8px}
.ractions .r-add{flex:1 1 auto;min-height:44px;display:inline-flex;align-items:center;justify-content:center;gap:6px;font-weight:600}
.ractions .btn.icon{width:44px;height:44px;padding:0;display:grid;place-items:center;flex:none}
.ractions .btn.icon svg{width:20px;height:20px}
.ractions .booking{min-height:44px;display:inline-flex;align-items:center}
.ractions .in-trip{flex:1 1 auto;min-height:44px;display:inline-flex;align-items:center;justify-content:center}
.rcard{flex-wrap:wrap}
.rcard .rimg{width:84px;height:84px}
.rcard .ractions{flex:1 1 100%}
.item-row{grid-template-columns:64px minmax(0,1fr) 44px}
.item .leg{padding-inline-start:68px}

/* ======================================================================
   DESIGN SYSTEM LAYER
   - touch targets ≥ 44px
   - one set of message colors: info · ok · warn · bad
   ====================================================================== */
:root{
  --s-info:#1e4f8a; --s-info-bg:#eaf2fc;
  --s-ok:#166534;   --s-ok-bg:#e8f6ee;
  --s-warn:#8a4b00; --s-warn-bg:#fff4e2;
  --s-bad:#a3271b;  --s-bad-bg:#fdecea;
}
@media (prefers-color-scheme: dark){:root:not([data-theme="light"]){
  --s-info:#9cc3f0; --s-info-bg:#172a40; --s-ok:#86d9a5; --s-ok-bg:#12301e; --s-warn:#f5c68a; --s-warn-bg:#3a2a12; --s-bad:#f3a29a; --s-bad-bg:#3a1a17}}
:root[data-theme="dark"]{
  --s-info:#9cc3f0; --s-info-bg:#172a40; --s-ok:#86d9a5; --s-ok-bg:#12301e; --s-warn:#f5c68a; --s-warn-bg:#3a2a12; --s-bad:#f3a29a; --s-bad-bg:#3a1a17}

/* info */
.banner,.event,.hotel-row,.rain-bar,.wait-pill,.fb-st.st-new,.fb-st.st-planned,.sync-bar,.lv-card-info{background:var(--s-info-bg)!important;color:var(--s-info)!important;border-color:color-mix(in srgb,var(--s-info) 25%,transparent)!important}
.hotel-row b,.event span{color:inherit}
/* ok */
.xf-reco.pt,.vote.on,.fb-st.st-done,.ai-tip,.pill.ok{background:var(--s-ok-bg)!important;color:var(--s-ok)!important;border-color:color-mix(in srgb,var(--s-ok) 30%,transparent)!important}
.hprice{color:var(--s-ok)!important}
/* warn */
.banner.warn,.banner.offline,.note-box,.sync-bar .sb-warn,.imp-row.is-far,.leg.long,.kid-bar,.dc-extra,.doc-warn,.xf-reco.taxi,.fb-seg button.on,.fb-st.st-review,.mb-pill,.warn-pill{background:var(--s-warn-bg)!important;color:var(--s-warn)!important;border-color:color-mix(in srgb,var(--s-warn) 30%,transparent)!important}
.st.far,.walk-t.far{color:var(--s-warn)!important}
.kid-bar span{background:color-mix(in srgb,var(--card) 60%,transparent)!important}
/* bad */
.banner.err,.closed-pill,.doc-warn.bad,.pdf-state.bad,.vote.on.down,.lv-leave.urgent,.pill.no,.item.is-closed .time{background:var(--s-bad-bg)!important;color:var(--s-bad)!important;border-color:color-mix(in srgb,var(--s-bad) 30%,transparent)!important}
.item.is-closed,.strip-card.is-closed{background:color-mix(in srgb,var(--s-bad-bg) 55%,var(--card))!important;box-shadow:inset 3px 0 0 var(--s-bad)!important}
.mini.del:hover{background:var(--s-bad-bg)!important;color:var(--s-bad)!important}
/* user notes: neutral, not an alert */
.note{background:var(--soft,var(--bg))!important;border:1px solid var(--line);color:var(--ink)}

/* touch targets ≥ 44px */
.btn,.btn.sm{min-height:44px}
.btn.sm{padding:8px 12px}
.mini{width:44px;height:44px}
.icon-btn{width:44px;height:44px}
.chip{min-height:44px}
.subtabs button,.seg button,.fb-tabs button{min-height:44px}
.field input,.field select,.field textarea,input[type=text],input[type=email],input[type=number],input[type=date],input[type=time],input[type=search],select{min-height:44px}
.toggle{min-height:44px;display:flex;align-items:center;gap:8px}
.toggle input[type=checkbox]{width:22px;height:22px}
.day-set{min-height:44px}
.cover-edit{width:44px;height:44px}
.tc-fav{width:44px;height:44px}
/* small inline controls keep their look but get a 44px hit area */
.leg-btn,.vote,.sb-btn,.ms-clear,.num[data-act]{position:relative}
.leg-btn::after,.vote::after,.sb-btn::after,.ms-clear::after{content:"";position:absolute;inset:-8px -4px}
.leg-btn{min-height:32px}
.cover-edit svg{width:20px;height:20px;color:#fff}
.wg-bar button svg{width:18px;height:18px}
.wg-bar button{min-width:44px;height:44px}
.wg.half .wg-bar [data-wg=up],.wg.half .wg-bar [data-wg=down]{display:none}
.ap-steps{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;margin:4px 0 14px}
.ap-st{font-size:var(--fs-xs);font-weight:600;color:var(--muted);text-align:center;padding:8px 2px 0;border-top:4px solid var(--line);border-radius:2px}
.ap-st.on{color:var(--pri);border-top-color:var(--pri)}
.ap-st.done{color:var(--ink);border-top-color:color-mix(in srgb,var(--pri) 45%,var(--line))}
.ap-nav{position:sticky;bottom:0;background:var(--card);padding-top:10px;margin-top:8px}
.it-time b.approx{color:var(--ink);font-weight:600}
.ractions{flex-wrap:nowrap}
.ractions .r-add{min-width:0;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}
/* plan row v2: number + drag handle | name, time line, status | ⋯ */
.item-row{grid-template-columns:40px minmax(0,1fr) 44px}
.item .leg{padding-inline-start:48px}
.it-handle{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;min-height:48px;letter-spacing:normal;cursor:grab;touch-action:none;user-select:none;-webkit-user-select:none;border-radius:12px;padding:0}
.it-handle:active{background:var(--bg)}
.it-handle .num{width:26px;height:26px;font-size:var(--fs-sm)}
.it-handle .num.done{background:var(--pri)}
.it-handle .num.done svg{width:15px;height:15px;color:#fff}
.it-handle .num.idea{background:var(--line);color:var(--muted)}
.it-handle .dots{color:var(--muted);opacity:.6;font-size:var(--fs-xs);letter-spacing:-2px;line-height:1}
.it-when{font-size:var(--fs-sm);color:var(--ink);margin-top:2px;font-variant-numeric:tabular-nums}
.it-when bdi{font-weight:600}
.split-bar{justify-content:space-between;padding:0 8px}
.sb-close{color:var(--muted)}
.split-bar.off{justify-content:center}
.item-row{grid-template-columns:40px minmax(0,1fr) auto}
.it-acts{display:flex;align-items:center}
.it-del{width:44px;height:44px;border:0;background:none;border-radius:12px;color:var(--muted);display:grid;place-items:center;cursor:pointer}
.it-del svg{width:18px;height:18px}
.it-del:hover,.it-del:active{background:var(--s-bad-bg);color:var(--s-bad)}
/* locked plan */
.lock-bar{display:flex;align-items:center;justify-content:space-between;gap:10px;width:100%;min-height:48px;margin-bottom:12px;padding:8px 14px;border-radius:14px;border:1px solid color-mix(in srgb,var(--s-info) 30%,transparent);background:var(--s-info-bg);color:var(--s-info);font:inherit;font-weight:600;text-align:start;cursor:pointer}
.lock-bar span{text-decoration:underline;font-weight:700;white-space:nowrap}
.plan-locked .it-handle{cursor:default}
.plan-locked .it-handle .dots{display:none}
.ver-row{display:flex;align-items:center;justify-content:space-between;gap:10px;width:100%;min-height:48px;margin:14px 0 4px;padding:8px 12px;border:1px solid var(--line);border-radius:12px;background:var(--bg);color:inherit;font:inherit;cursor:pointer;text-align:start}
.ver-row small{color:var(--muted);font-size:var(--fs-xs)}
/* v45 destination picker */
.dest-list .apt-opt b{font-weight:600}
.dest-list .apt-opt.on{background:var(--bg);outline:2px solid var(--accent, #2563eb);outline-offset:-2px}
/* v47 smarter auto-plan preview */
.ap-daysum{display:flex;flex-wrap:wrap;gap:4px 10px;margin:-2px 0 8px;font-size:var(--fs-xs);color:var(--muted)}
.ap-daysum span:first-child{color:var(--ink);font-weight:600}
.ap-how ul{margin:4px 0 0;padding-inline-start:18px;display:grid;gap:3px;color:var(--muted)}
/* v47 hotel preferences in the auto-plan wizard */
.ap-hotelpref{border:1px solid var(--line);border-radius:12px;padding:8px 10px 2px;margin:0 0 10px}
.ap-hmode button{font-size:var(--fs-sm)}
.ap-hmode-sub{margin-top:4px}
.rr-moved{color:var(--s-info,#2563eb)}
/* v49 fill-day: more places to pick */
.fill-more{margin-top:12px;border-top:1px solid var(--line);padding-top:8px}
.fill-row.more{grid-template-columns:1fr auto}
.fill-warn{color:var(--s-warn,#b45309)}
.ap-exday{max-width:118px;min-height:36px;font-size:var(--fs-xs)}
/* v51 "how long there?" check */
.dur-check{margin:-4px 0 12px;padding:8px 10px;border-radius:10px;background:var(--bg);font-size:var(--fs-sm)}
.dur-check .dc-line.ok{color:var(--s-ok,#15803d)}
.dur-check .dc-line.warn{color:var(--s-warn,#b45309)}
.dur-check .dc-line.bad{color:var(--s-bad,#b91c1c)}
.dur-check .dc-alt{display:flex;flex-wrap:wrap;gap:6px;margin-top:6px;align-items:center}
.move-pill{border:1px solid var(--s-info,#2563eb);color:var(--s-info,#2563eb);background:none;border-radius:999px;padding:2px 10px;font-size:var(--fs-xs);min-height:28px;cursor:pointer}
/* v52 "!" help next to "How long there?" */
.dur-lbl{display:inline-flex;align-items:center;gap:6px}
.info-dot{width:20px;height:20px;min-height:20px;padding:0;border-radius:50%;border:1.5px solid var(--s-info,#2563eb);background:none;color:var(--s-info,#2563eb);font:700 12px/1 system-ui,sans-serif;cursor:pointer;position:relative}
.info-dot::after{content:'';position:absolute;inset:-12px}
.dur-help{margin:-4px 0 12px;padding:10px 12px;border-radius:12px;background:var(--bg);border:1px solid var(--line);font-size:var(--fs-sm)}
.dur-help .dh-title{font-weight:700;margin-bottom:4px}
.dh-list{list-style:none;margin:6px 0;padding:0;display:grid;gap:2px}
.dh-list li{display:flex;justify-content:space-between;gap:8px;padding:3px 6px;border-radius:6px}
.dh-list li.mine{background:var(--s-info-bg,#e0ecff);font-weight:600}
.dh-tips{margin:4px 0 0;padding-inline-start:18px;display:grid;gap:3px}
.dh-list li b{white-space:nowrap}
/* v53 new trip: flights + hotels */
.nt-extra{border:1px solid var(--line);border-radius:12px;padding:8px 10px;margin:0 0 10px}
.nt-extra summary{font-weight:600;cursor:pointer;min-height:32px;display:flex;align-items:center}
.nt-hotel{border-top:1px dashed var(--line);padding-top:8px;margin-top:6px}
.nt-hotel:first-child{border-top:0;margin-top:0}
.nt-hfound{margin:-6px 0 8px}
.hotel-list .apt-opt b{font-weight:600}
/* v54 flight clocks */
.fclk{margin:-6px 0 10px;color:var(--muted);display:flex;flex-wrap:wrap;gap:4px 8px;align-items:center}
.fclk .fclk-ok{color:var(--s-ok,#15803d)}
.fclk-est,.fclk-warn{flex-basis:100%}
.fclk-warn{color:var(--s-warn,#b45309)}
.linkbtn{background:none;border:0;padding:0 2px;color:var(--s-info,#2563eb);text-decoration:underline;cursor:pointer;font:inherit;min-height:0}
/* fill-day: tap a place for its details */
.fill-row .fill-main[data-f="info"]{cursor:pointer;-webkit-tap-highlight-color:transparent}
.fill-row .fill-main[data-f="info"]:focus-visible{outline:2px solid var(--accent,#2563eb);outline-offset:2px;border-radius:8px}
.fill-info-hint{color:var(--accent,#2563eb);margin-top:2px}
.fill-info{margin:-4px 0 10px;padding:10px;animation:fillInfoIn .18s ease}
@keyframes fillInfoIn{from{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:none}}
.fill-info-img{width:100%;max-height:200px;object-fit:cover;border-radius:12px;margin-bottom:8px;display:block}
.fill-info .photo-row img{height:110px}
.fill-info .pd-links{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}
/* photos on tap (each photo shown is billed by Google) */
.rimg.ph-load{border:0;cursor:pointer;font:inherit;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;color:var(--muted,#6b7a78)}
.rimg.ph-load span{font-size:var(--fs-xs,11px)}
.photo-row .ph-more{flex:none;height:120px;min-width:96px;border:1px dashed var(--line);border-radius:10px;background:transparent;color:var(--accent,#2563eb);font:inherit;font-size:var(--fs-sm,13px);cursor:pointer;padding:0 10px}
.fill-info .photo-row .ph-more{height:110px}
/* monthly new-trip limit */
.quota-line{margin:-4px 0 10px;padding:6px 10px;border-radius:10px;background:var(--soft,#eef6f4);color:var(--ink,#1f2a29)}
.quota-line.none{background:#fff4e5;color:#8a4b00}
.quota-meter{height:8px;border-radius:99px;background:var(--line);overflow:hidden;margin:4px 0 12px}
.quota-meter div{height:100%;background:#d97706}
.adm-limits .adm-lim{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin:4px 0}
.adm-limits input[type=number],.adm-own input{width:64px;text-align:center}
.adm-user{border-bottom:1px solid var(--line);padding:6px 0}
.adm-user .adm-row{border:0;padding:0}
.adm-who{min-width:0;overflow-wrap:anywhere}
.adm-plan{display:flex;align-items:center;gap:8px 12px;flex-wrap:wrap;font-size:var(--fs-sm,13px);margin-top:4px}
.adm-fam{display:inline-flex;align-items:center;gap:4px}
.adm-use{padding:2px 8px;border-radius:99px;background:var(--soft,#eef6f4)}
.adm-use.full{background:#fde8e8;color:#9b1c1c}
.adm-own{display:inline-flex;align-items:center;gap:4px}
/* brand: TripNGo */
.logo-img{width:88px;height:88px;border-radius:22px;box-shadow:0 10px 28px rgba(14,90,83,.28);display:block}
.app-title[dir=ltr]{font-weight:700;letter-spacing:-.01em;margin-bottom:0}
.app-tag{color:#9A5A0B;font-weight:500;margin:-4px 0 6px;letter-spacing:.02em}

/* =====================================================================
   TripNGo brand layer (1.10.0) — colors from the logo:
   deep teal road-green, sun orange, sand. Light + dark.
   ===================================================================== */
:root{
  --bg:#F5F2EA; --card:#FFFFFF; --ink:#152320; --muted:#5A6764; --line:#E6E0D3; --field:#FFFFFF; --soft:#EEF5F2;
  --pri:#0E5A53; --pri-2:#0A4741; --pri-soft:#E3F0EC;
  --sun:#F2A33A; --sun-ink:#8F5309; --sun-soft:#FCEFD9; --sand:#F5E6C8;
  --star:#D98A1C; --radius:16px;
  --shadow:0 10px 30px rgba(14,90,83,.14);
  --lift:0 1px 2px rgba(21,35,32,.05),0 6px 18px rgba(21,35,32,.06);
}
@media (prefers-color-scheme: dark){
  :root:not([data-theme="light"]){--bg:#0A1513;--card:#12201E;--ink:#E9F0ED;--muted:#9AAEA9;--line:#213330;--field:#0E1B19;--soft:#132522;
    --pri:#45BBA9;--pri-2:#74D3C4;--pri-soft:#0F2F2A;--sun:#F2A33A;--sun-ink:#F6C27A;--sun-soft:#2B2213;--sand:#F5E6C8;
    --shadow:0 10px 30px rgba(0,0,0,.5);--lift:0 1px 2px rgba(0,0,0,.3),0 6px 18px rgba(0,0,0,.25)}
}
:root[data-theme="dark"]{--bg:#0A1513;--card:#12201E;--ink:#E9F0ED;--muted:#9AAEA9;--line:#213330;--field:#0E1B19;--soft:#132522;
  --pri:#45BBA9;--pri-2:#74D3C4;--pri-soft:#0F2F2A;--sun:#F2A33A;--sun-ink:#F6C27A;--sun-soft:#2B2213;--sand:#F5E6C8;
  --shadow:0 10px 30px rgba(0,0,0,.5);--lift:0 1px 2px rgba(0,0,0,.3),0 6px 18px rgba(0,0,0,.25)}

/* primary buttons keep white text readable in dark mode too */
.btn.primary{background:#0E5A53;border-color:#0E5A53;color:#fff;box-shadow:0 2px 8px rgba(14,90,83,.22)}
.btn.primary:hover{background:#0A4741;border-color:#0A4741}
[data-theme=dark] .btn.primary{background:#17776B;border-color:#17776B}
@media (prefers-color-scheme:dark){:root:not([data-theme=light]) .btn.primary{background:#17776B;border-color:#17776B}}
.chip.on{background:#0E5A53;border-color:#0E5A53;color:#fff}
[data-theme=dark] .chip.on{background:#17776B;border-color:#17776B}
@media (prefers-color-scheme:dark){:root:not([data-theme=light]) .chip.on{background:#17776B;border-color:#17776B}}
.card{border-color:var(--line);box-shadow:var(--lift)}
.stat{border-radius:14px;box-shadow:var(--lift)}
.stat b{color:var(--pri)}

/* ---------- splash (every launch; longer the first time) ---------- */
.splash{position:fixed;inset:0;z-index:100;background:#0E5A53;color:#F5E6C8;gap:10px;transition:opacity .35s ease}
.splash.out{opacity:0;pointer-events:none}
.splash-logo{width:104px;height:104px;border-radius:26px;box-shadow:0 18px 40px rgba(0,0,0,.28);animation:splashIn .6s cubic-bezier(.2,.8,.2,1) both}
.splash-name{font-size:38px;font-weight:700;letter-spacing:-.01em;margin-top:12px;animation:splashIn .6s .08s cubic-bezier(.2,.8,.2,1) both}
.splash-tag{font-size:16px;font-weight:500;color:#F2A33A;letter-spacing:.04em;animation:splashIn .6s .16s cubic-bezier(.2,.8,.2,1) both}
.splash-bar{width:120px;height:3px;border-radius:3px;background:rgba(245,230,200,.2);overflow:hidden;margin-top:26px}
.splash-bar i{display:block;width:40%;height:100%;border-radius:3px;background:#F5E6C8;animation:splashBar 1.1s ease-in-out infinite}
@keyframes splashIn{from{opacity:0;transform:translateY(10px) scale(.96)}to{opacity:1;transform:none}}
@keyframes splashBar{0%{transform:translateX(-110%)}100%{transform:translateX(260%)}}
[dir=rtl] .splash-bar i{animation-name:splashBarRtl}
@keyframes splashBarRtl{0%{transform:translateX(110%)}100%{transform:translateX(-260%)}}
.splash h2,.splash p{color:#F5E6C8}
@media (prefers-reduced-motion:reduce){.splash-logo,.splash-name,.splash-tag{animation:none}.splash-bar i{animation-duration:2.4s}}

/* ---------- sign-in screen ---------- */
.brand-screen{background:#0E5A53;color:#F5E6C8}
.brand-screen .logo-img{width:96px;height:96px;border-radius:24px;box-shadow:0 18px 40px rgba(0,0,0,.28)}
.brand-screen .app-title{color:#F5E6C8;font-size:36px}
.brand-screen .app-tag{color:#F2A33A}
.brand-screen .muted{color:rgba(245,230,200,.82)}
.brand-screen .btn.primary{background:#FFFFFF;border-color:#FFFFFF;color:#152320;box-shadow:0 8px 24px rgba(0,0,0,.2)}
.brand-screen .btn.primary:hover{background:#F5E6C8;border-color:#F5E6C8}
.brand-screen .err{color:#FFD7A8}

/* ---------- top bar: the logo at the start ---------- */
.topbar{background:var(--card);border-bottom:1px solid var(--line);box-shadow:0 1px 0 rgba(21,35,32,.02),0 4px 14px rgba(21,35,32,.04)}
.brand-btn{flex:none;width:44px;height:44px;display:grid;place-items:center;border:0;background:none;padding:0;cursor:pointer;border-radius:12px}
.brand-btn img{width:34px;height:34px;border-radius:9px;box-shadow:0 2px 6px rgba(14,90,83,.25);display:block}
.brand-btn:active img{transform:scale(.94)}
.brand-btn:focus-visible{outline:2px solid var(--pri);outline-offset:2px}
.trip-btn b{font-weight:700;letter-spacing:-.005em}
.icon-btn{background:var(--soft);color:var(--pri)}

/* ---------- bottom navigation ---------- */
.bottomnav{background:var(--card);box-shadow:0 -4px 14px rgba(21,35,32,.04)}
.bottomnav button svg.i{padding:3px 14px;border-radius:999px;box-sizing:content-box;transition:background .15s}
.bottomnav button.active{color:var(--pri);font-weight:600}
.bottomnav button.active svg.i{background:var(--pri-soft)}
.bottomnav button.active::before{display:none}

/* ---------- trip home: cover in the logo's colors (a photo of the destination replaces it when found) ---------- */
.ov .cover{background-color:#0E5A53;border-radius:22px;min-height:196px;box-shadow:0 12px 30px -12px rgba(14,90,83,.55);
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 400 200'%3E%3Ccircle cx='108' cy='132' r='54' fill='%23F2A33A'/%3E%3Cpath d='M0 128 C70 110 130 116 200 124 C270 132 330 112 400 118 V200 H0 Z' fill='%230A4741'/%3E%3Cpath d='M0 160 C80 146 150 150 220 158 C290 166 340 150 400 154 V200 H0 Z' fill='%23083B36'/%3E%3Cpath d='M104 126 C110 136 112 144 104 154 C94 166 70 172 72 184 C73 192 70 197 70 200 L134 200 C132 194 116 188 112 180 C108 170 124 162 120 150 C118 140 110 132 107 126 Z' fill='%23F5E6C8'/%3E%3C/svg%3E"),linear-gradient(180deg,transparent 59%,#0A4741 59%,#0A4741 77%,#083B36 77%);
  
  background-repeat:no-repeat;background-size:auto 100%,100% 100%;background-position:left bottom,0 0}
[dir=ltr] .ov .cover{background-position:right bottom,0 0}
.ov .cover.has-img{background-size:cover;background-position:center}
.cd{background:#F2A33A;color:#2A1A04;backdrop-filter:none;box-shadow:0 2px 8px rgba(0,0,0,.18)}
.cover-in h1{font-size:30px;font-weight:700;letter-spacing:-.01em}

/* ---------- auto-plan button: sand + sun instead of the purple gradient ---------- */
.ai-btn{background:var(--sun-soft);color:var(--ink);border:1px solid rgba(242,163,58,.35);box-shadow:var(--lift)}
.ai-btn span{width:46px;height:46px;flex:none;display:grid;place-items:center;border-radius:14px;background:#F2A33A;font-size:22px}
.ai-btn b{color:var(--pri)}
.ai-btn small{color:var(--muted);opacity:1}
.ai-hero{background:var(--sun-soft)}
[data-theme=dark] .ai-hero{background:var(--sun-soft)}
@media (prefers-color-scheme:dark){:root:not([data-theme=light]) .ai-hero{background:var(--sun-soft)}}

/* other gradients → brand */
.fb-hero{background:#0E5A53;box-shadow:0 8px 24px -12px rgba(14,90,83,.6)}
.pr.book .bk-cover{background:#0E5A53}
.wn-hero>span{background:var(--sun-soft)}
.live-card{border-color:var(--pri)}

/* ---------- welcome: logo on the empty home + in the tour ---------- */
.welcome-empty{display:flex;flex-direction:column;align-items:center;gap:6px;color:var(--muted)}
.welcome-empty .logo-img{width:88px;height:88px;border-radius:22px;box-shadow:0 12px 28px rgba(14,90,83,.28);margin-bottom:6px}
.we-name{font-size:28px;font-weight:700;color:var(--pri);letter-spacing:-.01em}
.tour-brand{display:flex;align-items:center;gap:14px;margin:2px 0 12px}
.tour-brand img{width:72px;height:72px;border-radius:18px;box-shadow:0 10px 24px rgba(14,90,83,.28);flex:none}
.tour-brand b{display:block;font-size:26px;font-weight:700;color:var(--pri);letter-spacing:-.01em}
.tour-brand small{display:block;color:var(--sun-ink);font-weight:500;font-size:var(--fs-sm)}
.tour-h .tour-ic:empty{display:none}
/* cover: keep the text clear of the sun & road */
.ov .cover:not(.has-img){background-position:-34px bottom,0 0}
[dir=ltr] .ov .cover:not(.has-img){background-position:calc(100% + 34px) bottom,0 0}
.ov .cover:not(.has-img) .cover-in{max-width:62%;margin-inline-start:0}
.splash-logo,.brand-screen .logo-img{outline:2px solid rgba(245,230,200,.22);outline-offset:4px}

/* =====================================================================
   1.11.0 — first-run onboarding, My profile, user activity
   ===================================================================== */
#onb{position:fixed;inset:0;z-index:95;background:var(--bg);overflow:auto;-webkit-overflow-scrolling:touch}
body.onb-open{overflow:hidden}
.onb-scr{min-height:100%;max-width:520px;margin:0 auto;display:flex;flex-direction:column;box-sizing:border-box;padding-bottom:env(safe-area-inset-bottom)}
#onb.s0{background:#0E5A53}
.onb-top{display:flex;align-items:center;justify-content:space-between;padding:calc(14px + env(safe-area-inset-top)) 14px 6px}
.onb-back{width:44px;height:44px;border:0;border-radius:12px;background:var(--soft);color:var(--pri);display:grid;place-items:center;cursor:pointer}
.onb-n{font-size:var(--fs-sm);color:var(--muted)}
.onb-skip{background:none;border:0;color:var(--muted);font-weight:500;font-size:15px;font-family:inherit;min-height:44px;padding:0 6px;cursor:pointer}
.onb-skip.light{color:#F5E6C8;opacity:.85}
.onb-prog{display:flex;gap:6px;padding:0 20px}
.onb-prog i{flex:1;height:4px;border-radius:4px;background:var(--line);transition:background .25s}
.onb-prog i.on{background:var(--pri)}
.onb-body{flex:1;padding:24px 20px 8px;display:flex;flex-direction:column;gap:18px}
.onb h1{margin:0;font-size:28px;font-weight:700;letter-spacing:-.01em;line-height:1.2}
.onb-sub{margin-top:6px;font-size:15px;color:var(--muted)}
.onb-lbl{font-size:15px;font-weight:600;margin-bottom:8px}
.onb-field{display:flex;flex-direction:column;gap:6px}
.onb-field span{font-size:var(--fs-sm);font-weight:600}
.onb-field small{font-size:13px;color:var(--muted)}
.onb-field input,.onb-field select{min-height:52px;border:1.5px solid var(--line);border-radius:14px;padding:0 14px;font-weight:400;font-size:17px;font-family:inherit;background:var(--card);color:var(--ink)}
.onb-field input:focus,.onb-field select:focus{outline:none;border-color:var(--pri);box-shadow:0 0 0 4px var(--pri-soft)}
.onb-foot{padding:12px 20px calc(22px + env(safe-area-inset-bottom));display:flex;flex-direction:column;gap:8px;position:sticky;bottom:0;background:linear-gradient(0deg,var(--bg) 78%,transparent)}
.onb-cta{width:100%;background:#0E5A53;color:#fff;border:0;border-radius:14px;min-height:54px;font-weight:600;font-size:17px;font-family:inherit;cursor:pointer;box-shadow:0 6px 16px rgba(14,90,83,.28)}
.onb-cta:active,.onb-card:active,.onb-chip:active{transform:scale(.98)}
.onb-cta2{width:100%;background:none;color:var(--pri);border:1.5px solid var(--pri);border-radius:14px;min-height:50px;font-weight:500;font-size:16px;font-family:inherit;cursor:pointer}
.onb-note{font-size:12px;color:var(--muted);text-align:center;line-height:1.5}
.onb-grid2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.onb-card{min-height:64px;border:1.5px solid var(--line);border-radius:16px;background:var(--card);font-weight:500;font-size:16px;font-family:inherit;color:var(--ink);cursor:pointer}
.onb-card.on{border:2px solid var(--pri);background:var(--pri-soft);color:var(--pri);font-weight:600}
.onb-box{background:var(--card);border:1px solid var(--line);border-radius:16px;padding:4px 16px}
.onb-row{display:flex;align-items:center;justify-content:space-between;gap:10px;min-height:58px;border-bottom:1px solid var(--line)}
.onb-row:last-child{border-bottom:0}
.onb-row b{display:block;font-size:16px;font-weight:600}
.onb-row small{display:block;font-size:13px;color:var(--muted)}
.onb-step{display:flex;align-items:center;gap:14px}
.onb-step button{width:40px;height:40px;border-radius:50%;border:1.5px solid var(--pri);background:var(--card);color:var(--pri);font-weight:500;font-size:22px;font-family:inherit;cursor:pointer;line-height:1}
.onb-step b{min-width:16px;text-align:center;font-size:18px}
.onb-kids{padding:14px 0 12px;display:flex;flex-direction:column;gap:10px}
.onb-kids b{display:block;font-size:16px;font-weight:600}.onb-kids small{font-size:13px;color:var(--muted)}
.onb-chips{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.onb-chip{border-radius:999px;padding:9px 14px;background:var(--card);border:1.5px solid var(--line);font-weight:400;font-size:15px;font-family:inherit;color:var(--ink);cursor:pointer;min-height:42px}
.onb-chip.on{background:#0E5A53;border-color:#0E5A53;color:#fff;font-weight:500}
.onb-sep{width:1px;height:28px;background:var(--line);margin:0 2px}
.onb-kid{display:inline-flex;align-items:center;gap:8px;border-radius:999px;padding:6px 6px 6px 14px;background:#0E5A53;color:#fff;font-size:15px}
[dir=rtl] .onb-kid{padding:6px 14px 6px 6px}
.onb-kid button{width:26px;height:26px;border-radius:50%;border:0;background:rgba(255,255,255,.22);color:#fff;cursor:pointer;padding:0}
.onb-addkid{display:inline-flex;align-items:center;gap:6px}
.onb-addkid input{width:70px;min-height:42px;border:1.5px solid var(--line);border-radius:12px;padding:0 10px;font-weight:400;font-size:16px;font-family:inherit;background:var(--card);color:var(--ink);text-align:center}
.onb-addkid button{border-radius:999px;padding:8px 14px;border:1.5px dashed var(--pri);background:none;color:var(--pri);font-weight:500;font-size:15px;font-family:inherit;min-height:42px;cursor:pointer}
.onb-list{display:flex;flex-direction:column;gap:8px}
.onb-opt{display:flex;align-items:center;gap:12px;min-height:58px;padding:0 14px;border-radius:14px;background:var(--card);border:1.5px solid var(--line);font-weight:400;font-size:15px;font-family:inherit;color:var(--muted);text-align:start;cursor:pointer}
.onb-opt b{color:var(--ink);font-weight:600}
.onb-opt i{width:20px;height:20px;border-radius:50%;border:2px solid #B9B2A3;flex:none;box-sizing:border-box}
.onb-opt.on{background:var(--pri-soft);border:2px solid var(--pri)}
.onb-opt.on b{color:var(--pri)}
.onb-opt.on i{border:6px solid var(--pri);background:#fff}
.onb-seg{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:4px;background:var(--line);padding:4px;border-radius:14px}
.onb-seg button{min-height:44px;border:0;border-radius:11px;background:none;font-weight:500;font-size:14px;font-family:inherit;color:var(--muted);cursor:pointer}
.onb-seg button.on{background:var(--card);color:var(--pri);font-weight:600;box-shadow:0 1px 3px rgba(0,0,0,.1)}
.onb-tog{display:flex;align-items:center;justify-content:space-between;min-height:50px;border-bottom:1px solid var(--line);cursor:pointer;position:relative}
.onb-tog:last-child{border-bottom:0}
.onb-tog input{position:absolute;opacity:0;width:46px;height:28px;inset-inline-end:0;margin:0;cursor:pointer}
.onb-tog i{width:46px;height:28px;border-radius:999px;background:#D9D3C6;position:relative;flex:none;transition:background .2s}
.onb-tog i::after{content:"";position:absolute;top:3px;inset-inline-end:3px;width:22px;height:22px;border-radius:50%;background:#fff;transition:inset-inline-end .2s;box-shadow:0 1px 2px rgba(0,0,0,.2)}
.onb-tog input:checked+i{background:#0E5A53}
.onb-tog input:checked+i::after{inset-inline-end:21px}
.onb-tog input:focus-visible+i{outline:2px solid var(--pri);outline-offset:2px}
.onb-done{padding:calc(34px + env(safe-area-inset-top)) 20px 0;display:flex;flex-direction:column;align-items:center;gap:10px;text-align:center}
.onb-check{width:72px;height:72px;border-radius:50%;background:#0E5A53;display:grid;place-items:center;box-shadow:0 0 0 8px var(--pri-soft)}
.onb-done h1{margin-top:10px}
.onb-sum{box-shadow:var(--lift)}
.onb-edit{background:none;border:0;color:var(--pri);font-weight:500;font-size:14px;font-family:inherit;min-height:44px;cursor:pointer;flex:none}
/* welcome */
.onb-welcome{min-height:100vh;min-height:100dvh;display:flex;flex-direction:column;background:#0E5A53}
.onb-w-top{display:flex;justify-content:flex-start;padding:calc(14px + env(safe-area-inset-top)) 20px 0}
.onb-w-hero{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;padding:0 28px 24px;text-align:center}
.onb-w-hero img{width:112px;height:112px;border-radius:28px;box-shadow:0 18px 40px rgba(0,0,0,.3);outline:2px solid rgba(245,230,200,.22);outline-offset:4px;animation:splashIn .6s both}
.onb-w-hero h1{margin-top:14px;color:#F5E6C8;font-size:30px}
.onb-w-tag{font-size:16px;font-weight:500;color:#F2A33A;letter-spacing:.03em}
.onb-w-sheet{background:var(--bg);border-radius:28px 28px 0 0;padding:28px 22px calc(24px + env(safe-area-inset-bottom));display:flex;flex-direction:column;gap:18px}
.onb-ben{display:flex;align-items:center;gap:14px}
.onb-ben b{display:block;font-size:16px;font-weight:600}.onb-ben small{display:block;font-size:14px;color:var(--muted)}
.onb-ic{width:44px;height:44px;flex:none;border-radius:14px;background:var(--pri-soft);color:var(--pri);display:grid;place-items:center}
.onb-ic.sun{background:var(--sun-soft);color:var(--sun-ink)}
.onb-w-sheet .onb-cta{margin-top:6px}
@media (prefers-reduced-motion:reduce){.onb-w-hero img{animation:none}}
@media (min-width:700px){.onb-scr{padding-top:30px}.onb-welcome{border-radius:0}}
/* My profile */
.pf-open{width:100%;justify-content:flex-start;margin:-4px 0 14px}
.pf-head{display:flex;align-items:center;gap:14px;margin:4px 0 14px}
.pf-head b{font-size:var(--fs-lg)}
.pf-av{width:60px;height:60px;border-radius:50%;background:#0E5A53;color:#F5E6C8;display:grid;place-items:center;font-size:22px;font-weight:700;flex:none}
.pf-lbl{font-size:var(--fs-sm);font-weight:600;color:var(--muted);margin:6px 0 8px}
.pf-list{padding:0 14px}
.pf-row{width:100%;display:flex;align-items:center;gap:10px;min-height:60px;border:0;border-bottom:1px solid var(--line);background:none;text-align:start;cursor:pointer;color:var(--ink);font:inherit}
.pf-row:last-child{border-bottom:0}
.pf-row span{flex:1;min-width:0}.pf-row b{display:block;font-weight:500}.pf-row small{display:block;color:var(--muted);font-size:13px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.pf-row svg{color:var(--muted)}
[dir=ltr] .pf-row svg{transform:scaleX(-1)}
/* auto-plan: tailored to the profile */
.ap-prof{background:var(--sun-soft);border:1px solid rgba(242,163,58,.45);border-radius:16px;padding:10px 14px;margin-bottom:12px}
.ap-prof-h{display:flex;align-items:center;justify-content:space-between;gap:10px}
.ap-prof-h b{color:var(--pri)}
.ap-prof .linkbtn{color:var(--sun-ink);font-weight:600;min-height:40px}
.ap-prof small{display:block;font-size:13px;line-height:1.5}
.ap-saveprof{margin:0 0 10px}
/* admin: user activity */
.act-open{width:100%;justify-content:flex-start;margin-bottom:10px}
.act-seg{display:flex;width:100%;margin-bottom:12px}.act-seg button{flex:1;min-height:38px}
.act-kpis{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-bottom:12px}
.act-kpis div{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:12px 8px;text-align:center;box-shadow:var(--lift)}
.act-kpis b{display:block;font-size:22px;font-weight:700;color:var(--pri)}
.act-kpis small{font-size:12px;color:var(--muted)}
.act-list{padding:2px 12px}
.act-row{width:100%;display:flex;align-items:center;gap:12px;min-height:64px;border:0;border-bottom:1px solid var(--line);background:none;text-align:start;cursor:pointer;color:var(--ink);font:inherit}
.act-av{position:relative;width:40px;height:40px;border-radius:50%;display:grid;place-items:center;font-weight:700;flex:none;font-size:15px}
.act-av i{position:absolute;bottom:0;inset-inline-start:0;width:12px;height:12px;border-radius:50%;background:#1F9D55;border:2px solid var(--card)}
.act-main{flex:1;min-width:0}.act-main b{display:block;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.act-main small{display:block;font-size:13px;color:var(--muted)}.act-main small.on{color:#1F7A45}
[data-theme=dark] .act-main small.on{color:#6FD39B}
@media (prefers-color-scheme:dark){:root:not([data-theme=light]) .act-main small.on{color:#6FD39B}}
.act-num{text-align:end;flex:none}.act-num b{display:block;font-weight:600}.act-num small{font-size:12px;color:var(--muted)}
.act-days{padding:10px 4px 14px;border-bottom:1px solid var(--line)}
.act-bars{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:8px;align-items:end;height:70px}
.act-bars.m{grid-template-columns:repeat(30,minmax(0,1fr));gap:2px}
.act-bars i{display:block;min-height:2px;background:#CFE4DE;border-radius:5px 5px 2px 2px}
.act-bars i.today{background:#0E5A53}
.act-axis{display:flex;justify-content:space-between;font-size:11px;color:var(--muted);margin:4px 0 6px}
.act-note{text-align:center;margin:10px 0}
[dir=ltr] .onb-back svg{transform:scaleX(-1)}
/* auto-plan: own activities, own hotel */
.ap-custom-add{display:flex;gap:8px;margin-top:8px}
.ap-custom-add input{flex:1;min-width:0}
.ap-cchip{gap:6px;padding-inline-end:6px}
.ap-cchip button{width:24px;height:24px;border-radius:50%;border:0;background:rgba(255,255,255,.25);color:inherit;cursor:pointer;padding:0;line-height:1}
.ap-myhotel{margin:6px 0 10px}
/* finished trips: rating & archive */
.rt-head{display:flex;gap:12px;align-items:flex-start;margin-bottom:14px}
.rt-ic{width:48px;height:48px;border-radius:14px;background:var(--sun-soft);display:grid;place-items:center;font-size:24px;flex:none}
.rt-q{background:var(--card);border:1px solid var(--line);border-radius:16px;padding:12px 14px;margin-bottom:10px}
.rt-q b{display:block}.rt-q small{display:block;color:var(--muted);font-size:13px;margin-bottom:6px}
.rt-stars{display:flex;gap:4px;direction:ltr;justify-content:flex-end}
[dir=ltr] .rt-stars{justify-content:flex-start}
.rt-stars button{width:44px;height:44px;border:0;background:none;font-size:32px;line-height:1;color:#D9D3C6;cursor:pointer;padding:0;transition:transform .1s}
.rt-stars button.on{color:#F2A33A}
.rt-stars button:active{transform:scale(.9)}
.rt-st{color:#E0952B;letter-spacing:1px;direction:ltr;unicode-bidi:isolate}
.rt-banner{display:flex;align-items:center;justify-content:space-between;gap:10px;background:var(--sun-soft);border:1px solid rgba(242,163,58,.45);border-radius:16px;padding:10px 14px;margin-bottom:12px;font-size:var(--fs-sm)}
.rt-banner.arch{background:var(--soft);border-color:var(--line)}
.arch-sec{margin-top:18px}
.arch-sec summary{cursor:pointer;font-weight:600;color:var(--muted);padding:10px 2px;min-height:44px;display:flex;align-items:center}
.trip-cards.arch .tc-cover{filter:grayscale(.55) brightness(.92)}
.tc-arch{display:flex;align-items:center;justify-content:space-between;gap:8px;margin:6px 0}
.tc-rate{margin:6px 0}
.rt-list{padding:2px 14px}
.rt-row{padding:12px 0;border-bottom:1px solid var(--line)}.rt-row:last-child{border-bottom:0}
.rt-top b{display:block}.rt-top small{color:var(--muted);font-size:13px}
.rt-two{display:flex;gap:16px;font-size:var(--fs-sm);margin-top:4px}
.rt-note{margin:6px 0 0;font-size:var(--fs-sm);background:var(--bg);border-radius:10px;padding:8px 10px}
/* beta versions */
.beta-bar{display:flex;align-items:center;gap:10px;justify-content:center;flex-wrap:wrap;background:#F2A33A;color:#2A1A04;font-size:var(--fs-sm);padding:6px 12px;padding-top:calc(6px + env(safe-area-inset-top));flex:none}
.beta-bar button,.beta-bar a{background:rgba(255,255,255,.45);border:0;border-radius:999px;padding:3px 10px;color:inherit;font:inherit;font-weight:600;text-decoration:none;cursor:pointer;min-height:28px;display:inline-flex;align-items:center}
.beta-bar + .topbar{padding-top:0;height:var(--top-h)}
.rel-card{display:flex;align-items:center;gap:12px}
.rel-card div{flex:1}.rel-card small{display:block;color:var(--muted);font-size:13px}.rel-card b{font-size:20px}
.rel-card.beta{border:2px solid #F2A33A}.rel-card.beta.none{border:1px dashed var(--line);opacity:.8}
.rel-card.beta small{color:var(--sun-ink);font-weight:600}
.rel-ic{width:40px;height:40px;border-radius:12px;background:var(--sun-soft);display:grid;place-items:center;flex:none;font-size:18px}
.rel-ic.ok{background:var(--pri-soft);color:var(--pri);font-weight:700}
.rel-how{margin:-4px 0 14px}
.rel-how summary{list-style:none;width:100%}
.rel-how summary::-webkit-details-marker{display:none}
.rel-how p{font-size:var(--fs-sm);margin:10px 0 6px}
.rel-how code{display:block;background:var(--bg);border:1px solid var(--line);border-radius:10px;padding:8px 10px;font-size:12px;overflow-x:auto;white-space:nowrap}
.rel-row{display:flex;align-items:center;justify-content:space-between;gap:10px;min-height:56px;border-bottom:1px solid var(--line);cursor:pointer}
.rel-row:last-child{border-bottom:0}
.rel-row b{display:block;font-weight:500}.rel-row small{display:block;color:var(--muted);font-size:12px}
.rel-row input{width:22px;height:22px;accent-color:#0E5A53;flex:none}

/* ---------- 1.13.3: native controls follow the app's theme ----------
   Date/time icons, the calendar that opens, dropdowns, checkboxes and scrollbars
   are drawn by the browser — tell it which theme the app is in (the device setting
   or the user's own choice in Settings), so they aren't black-on-dark on a phone. */
:root{color-scheme:light}
:root[data-theme="dark"]{color-scheme:dark}
@media (prefers-color-scheme: dark){:root:not([data-theme="light"]){color-scheme:dark}}
input[type=date]::-webkit-calendar-picker-indicator,input[type=time]::-webkit-calendar-picker-indicator{opacity:.85;cursor:pointer;padding:4px;margin-inline-start:2px}
:root[data-theme="dark"] input::placeholder,:root[data-theme="dark"] textarea::placeholder{color:#7f948f}
@media (prefers-color-scheme: dark){:root:not([data-theme="light"]) input::placeholder,:root:not([data-theme="light"]) textarea::placeholder{color:#7f948f}}
