/* ============ HS3 Travel Consultancy — design tokens ============ */
:root{
  --navy:#0B3559; --navy-deep:#07223C; --navy-mid:#134063;
  --teal:#2F8084; --teal-dark:#1F5C5F; --teal-light:#7FB8B9;
  --gold:#C9A437; --gold-dark:#A6822A;
  --cream:#FBF7EF; --ice:#E8F1F1;

  --ground:#FFFFFF;
  --ground-alt:#FBF7EF;
  --surface:#FFFFFF;
  --surface-2:#F5F1E8;
  --ink:#10222F;
  --ink-soft:#3C4F5C;
  --mist:#5F7383;
  --line:#E3DCCE;
  --line-soft:#EFEAE0;
  --accent:#2F8084;
  --accent-ink:#1F5C5F;
  --brand-bar:#0B3559;
  --on-dark:#E8F1F1;
  --on-dark-mist:#9DB3C2;
  --good:#2F7D5C; --good-bg:#E6F2EC;
  --warn:#9A6B12; --warn-bg:#FBF1DC;
  --crit:#9B3131; --crit-bg:#F8E8E6;
  --info-bg:#E8F1F1;
  --shadow:0 1px 2px rgba(11,53,89,.06), 0 8px 24px -16px rgba(11,53,89,.28);
  --radius:6px;
  --maxw:1140px;
  --fd:"Fraunces","Iowan Old Style",Georgia,serif;
  --fb:"Outfit","Segoe UI",system-ui,-apple-system,sans-serif;
  --fm:"IBM Plex Mono",ui-monospace,SFMono-Regular,Menlo,monospace;
}
@media (prefers-color-scheme: dark){
  :root:not([data-theme="light"]){
    --ground:#071A2B; --ground-alt:#0A2338; --surface:#0E2B45; --surface-2:#123252;
    --ink:#E9F0F5; --ink-soft:#C3D4E0; --mist:#92A9BA;
    --line:#1E4463; --line-soft:#173753;
    --accent:#59A6A9; --accent-ink:#8FC6C7;
    --brand-bar:#05182A;
    --good:#7FD3AC; --good-bg:#0E3A2B;
    --warn:#E6BE63; --warn-bg:#3A2E10;
    --crit:#EFA09A; --crit-bg:#3C1A18;
    --info-bg:#0F3147;
    --shadow:0 1px 2px rgba(0,0,0,.4), 0 10px 30px -18px rgba(0,0,0,.8);
  }
}
:root[data-theme="dark"]{
  --ground:#071A2B; --ground-alt:#0A2338; --surface:#0E2B45; --surface-2:#123252;
  --ink:#E9F0F5; --ink-soft:#C3D4E0; --mist:#92A9BA;
  --line:#1E4463; --line-soft:#173753;
  --accent:#59A6A9; --accent-ink:#8FC6C7;
  --brand-bar:#05182A;
  --good:#7FD3AC; --good-bg:#0E3A2B;
  --warn:#E6BE63; --warn-bg:#3A2E10;
  --crit:#EFA09A; --crit-bg:#3C1A18;
  --info-bg:#0F3147;
  --shadow:0 1px 2px rgba(0,0,0,.4), 0 10px 30px -18px rgba(0,0,0,.8);
}

*{box-sizing:border-box}
[hidden]{display:none!important}
body{
  margin:0; background:var(--ground); color:var(--ink);
  font-family:var(--fb); font-size:16px; line-height:1.6;
  -webkit-font-smoothing:antialiased;
}
img{max-width:100%; display:block}
a{color:inherit}
h1,h2,h3,h4{font-family:var(--fd); font-weight:600; line-height:1.15; text-wrap:balance; margin:0}
p{margin:0}
button{font:inherit; color:inherit}
:focus-visible{outline:2px solid var(--accent); outline-offset:2px; border-radius:3px}
@media (prefers-reduced-motion:reduce){*{animation-duration:.001ms!important; transition-duration:.001ms!important}}

.wrap{width:100%; max-width:var(--maxw); margin-inline:auto; padding-inline:18px}
.stack{display:flex; flex-direction:column}
.eyebrow{font-family:var(--fm); font-size:11px; letter-spacing:.16em; text-transform:uppercase; color:var(--accent); margin:0}
.lede{color:var(--mist); font-size:17px; max-width:62ch}
.mono{font-family:var(--fm)}
.tnum{font-variant-numeric:tabular-nums}
.skip{position:absolute; left:-9999px}
.skip:focus{left:8px; top:8px; z-index:200; background:var(--surface); padding:8px 12px; border-radius:var(--radius)}

/* ---------- Top bar ---------- */
.utility{background:var(--navy-deep); color:var(--on-dark-mist); font-size:12.5px}
.utility .wrap{display:flex; gap:14px; align-items:center; justify-content:space-between; padding-block:7px; flex-wrap:wrap}
.utility a{color:var(--on-dark); text-decoration:none}
.utility .dot{color:var(--teal-light)}

.topbar{position:sticky; top:env(safe-area-inset-top,0px); z-index:60; background:var(--brand-bar); border-bottom:1px solid rgba(127,184,185,.22)}
.topbar .wrap{display:flex; align-items:center; gap:14px; padding-block:10px}
.brand{display:flex; align-items:center; gap:10px; text-decoration:none; color:var(--on-dark); margin-right:auto}
.brand img{width:40px; height:40px; border-radius:50%; background:var(--cream); padding:3px}
.brand b{font-family:var(--fd); font-size:20px; letter-spacing:.01em; display:block; line-height:1}
.brand span{font-family:var(--fm); font-size:9.5px; letter-spacing:.22em; text-transform:uppercase; color:var(--teal-light)}
.nav{display:flex; gap:2px; align-items:center}
.nav a{padding:7px 11px; border-radius:var(--radius); text-decoration:none; color:var(--on-dark); font-size:14.5px; opacity:.85}
.nav a:hover{opacity:1; background:rgba(255,255,255,.08)}
.nav a.on{opacity:1; background:rgba(127,184,185,.18); color:#fff}
.navbtn{display:none; background:transparent; border:1px solid rgba(232,241,241,.3); color:var(--on-dark); border-radius:var(--radius); padding:7px 10px; cursor:pointer}
@media (max-width:920px){
  .nav{position:absolute; top:100%; left:0; right:0; background:var(--brand-bar); flex-direction:column; align-items:stretch; padding:8px 18px 16px; border-bottom:1px solid rgba(127,184,185,.22)}
  .nav[hidden]{display:none}
  .nav a{padding:11px 12px}
  .navbtn{display:block}
  .topbar .wrap{position:relative}
  .btn-book-top{display:none}
}

/* ---------- Buttons ---------- */
.btn{display:inline-flex; align-items:center; justify-content:center; gap:8px; padding:11px 18px; border-radius:var(--radius);
  font-weight:600; font-size:15px; text-decoration:none; border:1px solid transparent; cursor:pointer; transition:.15s ease}
.btn-gold{background:var(--gold); color:#20180A; border-color:var(--gold-dark)}
.btn-gold:hover{background:var(--gold-dark); color:#fff}
.btn-teal{background:var(--accent); color:#fff}
.btn-teal:hover{background:var(--accent-ink)}
.btn-ghost{border-color:var(--line); background:var(--surface); color:var(--ink)}
.btn-ghost:hover{border-color:var(--accent); color:var(--accent-ink)}
.btn-onnavy{border-color:rgba(232,241,241,.42); color:var(--on-dark); background:transparent}
.btn-onnavy:hover{background:rgba(232,241,241,.12)}
.btn-sm{padding:7px 12px; font-size:13.5px}
.btn[disabled]{opacity:.55; cursor:not-allowed}
.btn-wa{background:#1FA855; color:#fff}
.btn-wa:hover{background:#17833f}

/* ---------- Sections ---------- */
.sec{padding-block:64px}
.sec-alt{background:var(--ground-alt)}
.sec-navy{background:var(--navy); color:var(--on-dark)}
.sec-navy .lede,.sec-navy .mist{color:var(--on-dark-mist)}
.sec-navy .eyebrow{color:var(--teal-light)}
.sec-head{display:flex; flex-direction:column; gap:10px; margin-bottom:30px; max-width:70ch}
.sec-head h2{font-size:clamp(26px,3.6vw,38px)}
@media (max-width:640px){.sec{padding-block:44px}}

/* ---------- Hero ---------- */
.hero{position:relative; background:var(--navy-deep); color:var(--on-dark); overflow:hidden}
.hero-img{position:absolute; inset:0; width:100%; height:100%; object-fit:cover; opacity:.5}
.hero-veil{position:absolute; inset:0; background:linear-gradient(105deg, rgba(7,34,60,.94) 0%, rgba(7,34,60,.82) 46%, rgba(7,34,60,.42) 100%)}
.hero .wrap{position:relative; padding-block:84px 72px}
.hero h1{font-size:clamp(34px,6vw,60px); max-width:16ch}
.hero .lede{color:#CBDCE6; margin-top:18px; font-size:18px}
.hero-cta{display:flex; gap:12px; flex-wrap:wrap; margin-top:28px}
.hero-facts{display:flex; flex-wrap:wrap; gap:10px 26px; margin-top:34px; padding-top:22px; border-top:1px solid rgba(127,184,185,.3)}
.hero-facts div{font-size:13.5px; color:#BDD1DE}
.hero-facts b{display:block; font-family:var(--fd); font-size:23px; color:var(--gold); font-weight:600}

/* ---------- Cards ---------- */
.grid{display:grid; gap:18px}
.g2{grid-template-columns:repeat(2,minmax(0,1fr))}
.g3{grid-template-columns:repeat(3,minmax(0,1fr))}
.g4{grid-template-columns:repeat(4,minmax(0,1fr))}
@media (max-width:980px){.g3,.g4{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:620px){.g2,.g3,.g4{grid-template-columns:minmax(0,1fr)}}

.card{background:var(--surface); border:1px solid var(--line); border-radius:var(--radius); overflow:hidden; display:flex; flex-direction:column}
.card-pad{padding:20px}
.card-img{aspect-ratio:16/10; width:100%; object-fit:cover; max-width:100%}
.card h3{font-size:21px; margin-top:6px}
.card p{color:var(--mist); font-size:14.5px}
a.card{text-decoration:none; color:inherit; transition:.15s}
a.card:hover{border-color:var(--accent); box-shadow:var(--shadow)}
.ticks{list-style:none; margin:14px 0 0; padding:0; display:grid; gap:6px}
.ticks li{font-size:14px; color:var(--ink-soft); padding-left:20px; position:relative}
.ticks li::before{content:"✓"; position:absolute; left:0; color:var(--accent); font-size:12px; top:1px}

.chip{display:inline-flex; align-items:center; gap:6px; font-family:var(--fm); font-size:10.5px; letter-spacing:.12em; text-transform:uppercase;
  padding:4px 9px; border-radius:100px; border:1px solid var(--line); color:var(--mist); background:var(--surface-2)}
.chip-teal{background:var(--info-bg); border-color:transparent; color:var(--accent-ink)}
.chip-gold{background:var(--warn-bg); border-color:transparent; color:var(--warn)}
.chip-good{background:var(--good-bg); border-color:transparent; color:var(--good)}
.chip-crit{background:var(--crit-bg); border-color:transparent; color:var(--crit)}

.price{font-family:var(--fd); font-size:27px; font-weight:600; color:var(--ink); font-variant-numeric:tabular-nums}
.price-note{font-size:12.5px; color:var(--mist)}

/* Departure board — group tours */
.dep{display:grid; grid-template-columns:minmax(0,20rem) 1fr; border:1px solid var(--line); border-radius:var(--radius); overflow:hidden; background:var(--surface); text-decoration:none; color:inherit}
.dep:hover{border-color:var(--accent); box-shadow:var(--shadow)}
.dep>img{width:100%; height:100%; min-height:200px; object-fit:cover}
.dep-body{padding:24px; display:flex; flex-direction:column; gap:10px}
@media (max-width:820px){.dep{grid-template-columns:minmax(0,1fr)} .dep>img{min-height:0; aspect-ratio:16/9}}
.strip{display:flex; flex-wrap:wrap; gap:0; border:1px solid var(--line); border-radius:var(--radius); overflow:hidden; background:var(--surface-2); margin-top:4px}
.strip div{flex:1 1 120px; padding:9px 13px; border-right:1px solid var(--line)}
.strip div:last-child{border-right:0}
.strip dt{font-family:var(--fm); font-size:9.5px; letter-spacing:.14em; text-transform:uppercase; color:var(--mist); margin:0}
.strip dd{margin:2px 0 0; font-size:14px; font-weight:600; font-variant-numeric:tabular-nums}

/* ---------- Tables ---------- */
.tablewrap{overflow-x:auto; border:1px solid var(--line); border-radius:var(--radius); background:var(--surface)}
table{border-collapse:collapse; width:100%; min-width:680px; font-size:14px}
th,td{text-align:left; padding:10px 13px; border-bottom:1px solid var(--line-soft); vertical-align:top}
th{font-family:var(--fm); font-size:10.5px; letter-spacing:.12em; text-transform:uppercase; color:var(--mist); background:var(--surface-2); white-space:nowrap}
tr:last-child td{border-bottom:0}

/* ---------- Forms ---------- */
.field{display:flex; flex-direction:column; gap:6px}
.field label,.lbl{font-family:var(--fm); font-size:10.5px; letter-spacing:.12em; text-transform:uppercase; color:var(--mist)}
input,select,textarea{
  font:inherit; font-size:15px; color:var(--ink); background:var(--surface); border:1px solid var(--line);
  border-radius:var(--radius); padding:10px 12px; width:100%; max-width:100%}
textarea{min-height:92px; resize:vertical}
input:focus,select:focus,textarea:focus{outline:none; border-color:var(--accent); box-shadow:0 0 0 3px color-mix(in srgb, var(--accent) 18%, transparent)}
.formgrid{display:grid; gap:14px; grid-template-columns:repeat(2,minmax(0,1fr))}
.formgrid .full{grid-column:1/-1}
@media (max-width:620px){.formgrid{grid-template-columns:minmax(0,1fr)}}
.help{font-size:12.5px; color:var(--mist)}
.err{font-size:12.5px; color:var(--crit)}
fieldset{border:0; margin:0; padding:0}
.radios{display:flex; flex-wrap:wrap; gap:8px}
.radios label{display:inline-flex; align-items:center; gap:7px; border:1px solid var(--line); background:var(--surface);
  padding:8px 13px; border-radius:100px; cursor:pointer; font-size:14px; font-family:var(--fb); letter-spacing:0; text-transform:none; color:var(--ink)}
.radios input{width:auto; accent-color:var(--accent)}
.radios label:has(input:checked){border-color:var(--accent); background:var(--info-bg); color:var(--accent-ink); font-weight:600}

/* ---------- Booking ---------- */
.steps{display:flex; gap:6px; flex-wrap:wrap; margin-bottom:24px}
.steps div{flex:1 1 130px; padding:9px 12px; border-radius:var(--radius); border:1px solid var(--line); background:var(--surface); font-size:13px; color:var(--mist)}
.steps div.on{border-color:var(--accent); background:var(--info-bg); color:var(--accent-ink); font-weight:600}
.steps div.done{color:var(--good); border-color:var(--good)}
.steps b{font-family:var(--fm); font-size:10.5px; letter-spacing:.1em; display:block}
.book-layout{display:grid; grid-template-columns:1fr minmax(0,320px); gap:22px; align-items:start}
@media (max-width:900px){.book-layout{grid-template-columns:minmax(0,1fr)}}
.summary{position:sticky; top:96px; border:1px solid var(--line); border-radius:var(--radius); background:var(--surface-2); padding:18px}
@media (max-width:900px){.summary{position:static}}
.sumrow{display:flex; justify-content:space-between; gap:12px; font-size:14px; padding:6px 0; border-bottom:1px dashed var(--line)}
.sumrow:last-of-type{border-bottom:0}
.sumrow b{font-variant-numeric:tabular-nums}
.pick{display:grid; gap:10px}
.pick label{display:grid; grid-template-columns:auto 1fr auto; gap:12px; align-items:center; border:1px solid var(--line); background:var(--surface);
  padding:12px 14px; border-radius:var(--radius); cursor:pointer}
.pick label:has(input:checked){border-color:var(--accent); background:var(--info-bg)}
.pick input{width:auto; accent-color:var(--accent)}
.pick .t{font-weight:600; font-size:15px}
.pick .b{font-size:12.5px; color:var(--mist)}
.pick .p{font-family:var(--fd); font-weight:600; white-space:nowrap; font-variant-numeric:tabular-nums}

/* Booking confirmation — file cover motif */
.filecover{border:1px solid var(--navy); border-radius:var(--radius); overflow:hidden; background:var(--surface)}
.filecover-top{background:var(--navy); color:var(--on-dark); padding:18px 20px; display:flex; justify-content:space-between; gap:14px; flex-wrap:wrap; align-items:center}
.filecover-top .ref{font-family:var(--fm); font-size:22px; letter-spacing:.08em; color:var(--gold)}
.perf{border-top:1px dashed var(--line); margin:0}

/* ---------- Notices ---------- */
.note{border-left:3px solid var(--gold); background:var(--warn-bg); color:var(--warn); padding:12px 15px; border-radius:0 var(--radius) var(--radius) 0; font-size:14px}
.note-teal{border-left-color:var(--accent); background:var(--info-bg); color:var(--accent-ink)}
.note-crit{border-left-color:var(--crit); background:var(--crit-bg); color:var(--crit)}
.disclaimer{font-size:12.5px; color:var(--mist); max-width:80ch}

/* ---------- Footer ---------- */
.foot{background:var(--navy-deep); color:var(--on-dark-mist); padding-block:46px 30px; font-size:14px}
.foot a{color:var(--on-dark); text-decoration:none}
.foot a:hover{color:var(--teal-light)}
.foot-grid{display:grid; grid-template-columns:1.6fr 1fr 1.4fr; gap:30px}
@media (max-width:820px){.foot-grid{grid-template-columns:minmax(0,1fr)}}
.foot h4{font-family:var(--fm); font-size:10.5px; letter-spacing:.16em; text-transform:uppercase; color:var(--teal-light); margin-bottom:12px; font-weight:400}
.foot ul{list-style:none; margin:0; padding:0; display:grid; gap:7px}
.foot-base{border-top:1px solid rgba(127,184,185,.2); margin-top:30px; padding-top:18px; display:flex; flex-wrap:wrap; gap:14px; justify-content:space-between; font-size:12.5px}

/* ---------- Live chat ---------- */
.chat-fab{position:fixed; right:16px; bottom:calc(16px + env(safe-area-inset-bottom,0px)); z-index:90;
  display:flex; align-items:center; gap:9px; background:var(--navy); color:var(--on-dark); border:1px solid var(--teal);
  border-radius:100px; padding:12px 18px; cursor:pointer; box-shadow:0 10px 30px -10px rgba(7,34,60,.6); font-weight:600; font-size:14.5px}
.chat-fab:hover{background:var(--navy-mid)}
.chat-fab .live{width:8px; height:8px; border-radius:50%; background:#3BD17A; box-shadow:0 0 0 0 rgba(59,209,122,.7); animation:pulse 2.4s infinite}
@keyframes pulse{0%{box-shadow:0 0 0 0 rgba(59,209,122,.6)}70%{box-shadow:0 0 0 9px rgba(59,209,122,0)}100%{box-shadow:0 0 0 0 rgba(59,209,122,0)}}
.chat-panel{position:fixed; right:16px; bottom:calc(16px + env(safe-area-inset-bottom,0px)); z-index:95; width:min(390px, calc(100vw - 32px));
  height:min(580px, calc(100dvh - 120px)); background:var(--surface); border:1px solid var(--line); border-radius:12px;
  display:flex; flex-direction:column; overflow:hidden; box-shadow:0 24px 60px -20px rgba(7,34,60,.55)}
.chat-head{background:var(--navy); color:var(--on-dark); padding:13px 15px; display:flex; align-items:center; gap:10px}
.chat-head img{width:34px; height:34px; border-radius:50%; background:var(--cream); padding:2px}
.chat-head b{font-family:var(--fd); font-size:16px; display:block; line-height:1.2}
.chat-head small{color:var(--teal-light); font-size:11.5px; font-family:var(--fm); letter-spacing:.06em}
.chat-x{margin-left:auto; background:transparent; border:0; color:var(--on-dark); font-size:22px; cursor:pointer; line-height:1; padding:4px 6px}
.chat-log{flex:1; overflow-y:auto; padding:14px; display:flex; flex-direction:column; gap:10px; background:var(--ground-alt)}
.msg{max-width:88%; padding:10px 13px; border-radius:12px; font-size:14.5px; line-height:1.5; white-space:pre-wrap; overflow-wrap:anywhere}
.msg.bot{background:var(--surface); border:1px solid var(--line); border-bottom-left-radius:3px; align-self:flex-start}
.msg.me{background:var(--navy); color:var(--on-dark); border-bottom-right-radius:3px; align-self:flex-end}
.msg.sys{align-self:center; background:transparent; color:var(--mist); font-size:12.5px; text-align:center; max-width:100%}
.chat-sugs{display:flex; gap:7px; flex-wrap:wrap; padding:0 14px 10px; background:var(--ground-alt)}
.chat-sugs button{background:var(--surface); border:1px solid var(--line); color:var(--accent-ink); border-radius:100px; padding:6px 12px; font-size:13px; cursor:pointer}
.chat-sugs button:hover{border-color:var(--accent)}
.chat-form{display:flex; gap:8px; padding:11px; border-top:1px solid var(--line); background:var(--surface)}
.chat-form input{border-radius:100px; padding:10px 15px}
.chat-form button{border-radius:100px; padding:9px 15px; border:0; background:var(--accent); color:#fff; cursor:pointer; font-weight:600}
.chat-foot{padding:8px 14px 11px; background:var(--surface); border-top:1px solid var(--line-soft); display:flex; gap:8px; align-items:center; flex-wrap:wrap}
.chat-foot small{color:var(--mist); font-size:11.5px}
.dots span{display:inline-block; width:5px; height:5px; margin-right:3px; border-radius:50%; background:var(--mist); animation:bounce 1.2s infinite}
.dots span:nth-child(2){animation-delay:.15s} .dots span:nth-child(3){animation-delay:.3s}
@keyframes bounce{0%,60%,100%{opacity:.3; transform:translateY(0)}30%{opacity:1; transform:translateY(-3px)}}

/* ---------- Misc ---------- */
.copyrow{display:flex; align-items:flex-start; justify-content:space-between; gap:12px; padding:9px 0; border-bottom:1px dashed var(--line)}
.copyrow:last-child{border-bottom:0}
.copyrow .v{font-family:var(--fm); font-size:13.5px; font-weight:500; overflow-wrap:anywhere}
.copybtn{border:1px solid var(--line); background:var(--surface); border-radius:var(--radius); width:34px; height:34px; flex:0 0 34px; cursor:pointer; color:var(--mist)}
.copybtn:hover{border-color:var(--accent); color:var(--accent)}
.toast{position:fixed; left:50%; transform:translateX(-50%); bottom:calc(22px + env(safe-area-inset-bottom,0px)); z-index:200;
  background:var(--navy); color:var(--on-dark); padding:11px 18px; border-radius:100px; font-size:14px; box-shadow:var(--shadow)}
.meter{height:9px; border-radius:100px; background:var(--surface-2); overflow:hidden; border:1px solid var(--line)}
.meter i{display:block; height:100%; background:var(--accent)}
details{border:1px solid var(--line); border-radius:var(--radius); background:var(--surface); padding:0}
details+details{margin-top:10px}
summary{cursor:pointer; padding:14px 18px; font-weight:600; font-size:15.5px; list-style:none; display:flex; justify-content:space-between; gap:12px}
summary::-webkit-details-marker{display:none}
summary::after{content:"+"; color:var(--accent); font-size:19px; line-height:1}
details[open] summary::after{content:"–"}
details .ans{padding:0 18px 16px; color:var(--mist); font-size:14.5px}
.split{display:grid; grid-template-columns:1.15fr .85fr; gap:28px; align-items:start}
@media (max-width:860px){.split{grid-template-columns:minmax(0,1fr)}}
.kpis{display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:12px}
@media (max-width:700px){.kpis{grid-template-columns:repeat(2,minmax(0,1fr))}}
.kpi{border:1px solid var(--line); border-radius:var(--radius); background:var(--surface); padding:14px}
.kpi b{display:block; font-family:var(--fd); font-size:27px; font-variant-numeric:tabular-nums}
.kpi span{font-size:12.5px; color:var(--mist)}
.pill-row{display:flex; gap:8px; flex-wrap:wrap}
.hidden{display:none!important}

/* ================= CRM / desk ================= */
.crm-bar{display:flex; gap:10px; align-items:center; flex-wrap:wrap; margin-bottom:20px}
.crm-tabs{display:flex; gap:4px; flex-wrap:wrap; border:1px solid var(--line); background:var(--surface-2); border-radius:100px; padding:4px}
.crm-tabs button{border:0; background:transparent; color:var(--mist); padding:7px 15px; border-radius:100px; cursor:pointer; font-size:14px; font-weight:500; white-space:nowrap}
.crm-tabs button.on{background:var(--navy); color:var(--on-dark)}
.crm-who{margin-left:auto; display:flex; align-items:center; gap:8px; font-size:13.5px; color:var(--mist); flex-wrap:wrap}
.crm-who b{color:var(--ink)}
.crm-who select{width:auto; padding:6px 10px; font-size:13.5px}
.role-badge{font-family:var(--fm); font-size:10px; letter-spacing:.12em; text-transform:uppercase; padding:3px 9px; border-radius:100px; background:var(--navy); color:var(--on-dark)}
.role-badge.team{background:var(--info-bg); color:var(--accent-ink)}

.filters{display:flex; gap:8px; flex-wrap:wrap; margin-bottom:14px; align-items:center}
.filters select,.filters input{width:auto; min-width:140px; padding:8px 11px; font-size:14px}
.filters .grow{flex:1 1 200px; min-width:160px}

.board{display:grid; grid-template-columns:repeat(5,minmax(200px,1fr)); gap:12px; overflow-x:auto; padding-bottom:6px}
@media (max-width:980px){.board{grid-template-columns:repeat(5,minmax(200px,1fr)); min-width:1040px}}
.board-wrap{overflow-x:auto}
.col{background:var(--ground-alt); border:1px solid var(--line); border-radius:var(--radius); padding:10px; min-height:90px}
.col>h4{font-family:var(--fm); font-size:10.5px; letter-spacing:.13em; text-transform:uppercase; color:var(--mist); display:flex; justify-content:space-between; margin:0 0 10px; font-weight:500}
.col>h4 span{color:var(--accent)}
.lead-card{background:var(--surface); border:1px solid var(--line); border-radius:var(--radius); padding:11px 12px; cursor:pointer; margin-bottom:8px; text-align:left; width:100%; display:block}
.lead-card:hover{border-color:var(--accent)}
.lead-card b{display:block; font-size:14.5px}
.lead-card .sub{font-size:12.5px; color:var(--mist); margin-top:2px}
.lead-card .row{display:flex; gap:6px; align-items:center; margin-top:7px; flex-wrap:wrap}
.tag{font-family:var(--fm); font-size:9.5px; letter-spacing:.08em; text-transform:uppercase; padding:2px 7px; border-radius:100px; background:var(--surface-2); color:var(--mist); border:1px solid var(--line)}
.tag.due{background:var(--warn-bg); color:var(--warn); border-color:transparent}
.tag.over{background:var(--crit-bg); color:var(--crit); border-color:transparent}
.tag.own{background:var(--info-bg); color:var(--accent-ink); border-color:transparent}

.drawer-bg{position:fixed; inset:0; background:rgba(7,34,60,.5); z-index:120}
.drawer{position:fixed; top:0; right:0; bottom:0; width:min(520px,100vw); background:var(--ground); z-index:125; overflow-y:auto;
  border-left:1px solid var(--line); box-shadow:-20px 0 50px -20px rgba(7,34,60,.4); padding:0 0 40px;
  padding-top:env(safe-area-inset-top,0px)}
.drawer-head{position:sticky; top:0; background:var(--navy); color:var(--on-dark); padding:16px 20px; display:flex; gap:12px; align-items:flex-start; z-index:2}
.drawer-head h3{font-size:21px; line-height:1.2}
.drawer-head .x{margin-left:auto; background:transparent; border:0; color:var(--on-dark); font-size:24px; cursor:pointer; line-height:1}
.drawer-body{padding:18px 20px; display:flex; flex-direction:column; gap:18px}
.dgroup{border:1px solid var(--line); border-radius:var(--radius); background:var(--surface); padding:15px}
.dgroup>h4{font-family:var(--fm); font-size:10.5px; letter-spacing:.13em; text-transform:uppercase; color:var(--mist); margin:0 0 12px; font-weight:500}
.checks{display:grid; gap:7px}
.checks label{display:flex; gap:9px; align-items:flex-start; font-size:14px; cursor:pointer; line-height:1.4}
.checks input{width:auto; margin-top:3px; accent-color:var(--accent); flex:0 0 auto}
.checks label.done{color:var(--mist); text-decoration:line-through}
.log{display:grid; gap:10px; max-height:260px; overflow-y:auto}
.log-item{border-left:2px solid var(--line); padding-left:11px}
.log-item .meta{font-family:var(--fm); font-size:10.5px; color:var(--mist); letter-spacing:.06em}
.log-item p{font-size:14px; margin-top:2px}
.inline-form{display:flex; gap:8px; margin-top:12px}
.inline-form input{flex:1}
.money{font-variant-numeric:tabular-nums; font-weight:600}
.money.out{color:var(--crit)}
.money.in{color:var(--good)}
.bar-track{height:7px; background:var(--surface-2); border-radius:100px; overflow:hidden; border:1px solid var(--line); margin-top:5px}
.bar-track i{display:block; height:100%; background:var(--good)}
.empty{border:1px dashed var(--line); border-radius:var(--radius); padding:28px; text-align:center; color:var(--mist); font-size:14.5px}
.funnel{display:grid; gap:7px}
.funnel-row{display:grid; grid-template-columns:120px 1fr 52px; gap:10px; align-items:center; font-size:13.5px}
.funnel-row .fb{height:22px; border-radius:3px; background:var(--accent); min-width:2px}
.funnel-row .fn{text-align:right; font-variant-numeric:tabular-nums; font-weight:600}
