
#page-travellers,#page-trips,#page-trip{ background:#fff; font-family:'Nunito',system-ui,sans-serif; }
.tv-top{ background:#FBF6EC; padding:30px 20px 26px; text-align:center; position:relative; }
.tv-back{
  position:absolute; top:16px; left:18px; display:inline-flex; align-items:center; gap:6px;
  background:#243447; border:none; color:#fff !important; -webkit-text-fill-color:#fff !important;
  padding:10px 16px; border-radius:999px; font:inherit; font-weight:700; font-size:.8rem;
  cursor:pointer; min-height:44px;
}
.tv-back svg{ width:15px; height:15px; }
.tv-eb{
  font-size:.72rem; font-weight:800; letter-spacing:.16em; text-transform:uppercase;
  color:#7d9e77 !important; -webkit-text-fill-color:#7d9e77 !important; margin:0 0 8px;
}
.tv-top h2{
  font-family:'Playfair Display',serif; font-size:clamp(1.7rem,3.4vw,2.3rem); margin:0 0 8px;
  color:#243447 !important; -webkit-text-fill-color:#243447 !important;
}
.tv-sub{ color:#78766c !important; -webkit-text-fill-color:#78766c !important; margin:0; font-size:.98rem; }
.tv-wrap{ max-width:1000px; margin:0 auto; padding:26px 20px 70px; }
.tv-row{ display:flex; justify-content:space-between; align-items:center; gap:12px; margin-bottom:16px; flex-wrap:wrap; }
.tv-h3{
  font-family:'Playfair Display',serif; font-size:1.3rem; margin:0;
  color:#243447 !important; -webkit-text-fill-color:#243447 !important;
}
.tv-add{
  background:#5E7E57; border:2px solid #5E7E57; border-radius:999px;
  padding:12px 24px; min-height:48px; font:inherit; font-weight:800;
  color:#fff !important; -webkit-text-fill-color:#fff !important;
  cursor:pointer; transition:transform .12s ease, background .15s ease;
}
.tv-add:hover{ background:#4d6a47; }
.tv-add:active{ transform:scale(.97); }
.tv-grid{ display:grid; grid-template-columns:repeat(auto-fill,minmax(260px,1fr)); gap:14px; }
.tv-box{
  background:#fff; border:1px solid #EAE2D4; border-radius:20px; padding:20px;
  transition:transform .16s ease, box-shadow .16s ease; cursor:pointer;
}
.tv-box:hover{ transform:translateY(-2px); box-shadow:0 12px 30px rgba(51,64,47,.08); }
.tv-who{ display:flex; align-items:center; gap:12px; margin-bottom:12px; }
.tv-face{
  flex:none; width:52px; height:52px; border-radius:50%; display:grid; place-items:center;
  background:#EAF1E4; font-size:1.4rem; font-weight:800;
  color:#5E7E57 !important; -webkit-text-fill-color:#5E7E57 !important;
}
.tv-box b{ display:block; font-size:1.05rem; color:#243447 !important; -webkit-text-fill-color:#243447 !important; }
.tv-box .tv-meta{ font-size:.84rem; color:#78766c !important; -webkit-text-fill-color:#78766c !important; margin:2px 0 0; }
.tv-dot{
  display:inline-flex; align-items:center; gap:6px; font-size:.8rem; font-weight:700;
  padding:5px 11px; border-radius:999px; margin-top:8px;
}
.tv-dot.green{ background:#EAF1E4; color:#4d6a47 !important; -webkit-text-fill-color:#4d6a47 !important; }
.tv-dot.amber{ background:#FBF1DC; color:#8a6d2f !important; -webkit-text-fill-color:#8a6d2f !important; }
.tv-dot.red{ background:#F7E4DC; color:#a8502a !important; -webkit-text-fill-color:#a8502a !important; }
.tv-dot.unknown{ background:#F1EFE8; color:#78766c !important; -webkit-text-fill-color:#78766c !important; }
.tv-none{
  background:#FBF6EC; border:1px dashed #EAE2D4; border-radius:20px; padding:38px 24px; text-align:center;
}
.tv-none p{ color:#78766c !important; -webkit-text-fill-color:#78766c !important; margin:0 0 16px; }
.tv-cd{
  display:inline-block; background:#243447; border-radius:999px; padding:5px 12px; font-size:.78rem; font-weight:800;
  color:#fff !important; -webkit-text-fill-color:#fff !important; margin-top:10px;
}
.tv-cd.past{ background:#EAE2D4; color:#78766c !important; -webkit-text-fill-color:#78766c !important; }
.tv-pills{ display:flex; flex-wrap:wrap; gap:6px; margin-top:10px; }
.tv-pil{
  background:#F4F1E8; border-radius:999px; padding:4px 10px; font-size:.75rem; font-weight:700;
  color:#5E7E57 !important; -webkit-text-fill-color:#5E7E57 !important;
}
/* editor */
.tv-sec{ margin-top:22px; }
.tv-sec-h{
  font-size:.72rem; font-weight:800; letter-spacing:.12em; text-transform:uppercase;
  color:#7d9e77 !important; -webkit-text-fill-color:#7d9e77 !important; margin:0 0 12px;
}
.tv-fields{ display:grid; grid-template-columns:repeat(auto-fit,minmax(220px,1fr)); gap:14px; }
.tv-f label{
  display:block; font-size:.74rem; font-weight:800; letter-spacing:.06em;
  color:#78766c !important; -webkit-text-fill-color:#78766c !important; margin-bottom:5px;
}
.tv-f input,.tv-f select,.tv-f textarea{
  width:100%; border:1.5px solid #EAE2D4; border-radius:14px; padding:12px 14px;
  font:inherit; font-size:.94rem; min-height:48px; background:#fff;
  color:#243447 !important; -webkit-text-fill-color:#243447 !important;
}
.tv-f textarea{ min-height:84px; resize:vertical; }
.tv-f input:focus,.tv-f select:focus,.tv-f textarea:focus{ outline:none; border-color:#7d9e77; }
.tv-lock{
  font-size:.72rem; margin-top:5px; display:block;
  color:#a8502a !important; -webkit-text-fill-color:#a8502a !important;
}
.tv-warn{
  background:#F7E4DC; border:1px solid #E8C4B4; border-left:4px solid #C6764F;
  border-radius:12px; padding:13px 15px; margin:0 0 20px;
  color:#8a4527 !important; -webkit-text-fill-color:#8a4527 !important; font-size:.87rem; line-height:1.6;
}
.tv-chips{ display:flex; flex-wrap:wrap; gap:8px; }
.tv-chip{
  background:#fff; border:1.5px solid #EAE2D4; border-radius:999px; padding:10px 16px; min-height:46px;
  font:inherit; font-weight:700; font-size:.86rem; cursor:pointer;
  color:#5E7E57 !important; -webkit-text-fill-color:#5E7E57 !important;
}
.tv-chip.on{ background:#5E7E57; border-color:#5E7E57; color:#fff !important; -webkit-text-fill-color:#fff !important; }
.tv-actions{ display:flex; gap:10px; margin-top:26px; flex-wrap:wrap; }
.tv-del{
  background:#fff; border:2px solid #EAE2D4; border-radius:999px; padding:12px 22px; min-height:48px;
  font:inherit; font-weight:700; cursor:pointer;
  color:#a8502a !important; -webkit-text-fill-color:#a8502a !important;
}
.tv-add:focus-visible,.tv-back:focus-visible,.tv-chip:focus-visible,.tv-del:focus-visible{ outline:3px solid #CF9E3F; outline-offset:2px; }
@media (max-width:600px){
  .tv-add,.tv-del{ width:100%; }
  .tv-actions .tv-add{ flex:1; }
}
@media (prefers-reduced-motion:reduce){ .tv-box,.tv-add{ transition:none !important; } }
