:root{
  --bg:#f4f7f9; --panel:#fff; --ink:#15232d; --muted:#5f7280; --line:#dde5ea;
  --brand:#0b6e8a; --brand-ink:#fff; --brand-soft:#e3f2f6;
  --ok:#1f7a4d; --ok-bg:#e3f4ea; --info:#1d5fa8; --info-bg:#e5eefa;
  --warn:#8a5a00; --warn-bg:#fdf1d8; --bad:#b3261e; --bad-bg:#fde7e5; --mute:#5f6b73; --mute-bg:#eceff1;
  --radius:10px; --nav-w:236px; --top-h:56px;
  font-family:Inter,"IBM Plex Sans Arabic",system-ui,-apple-system,"Segoe UI",sans-serif;
}
[dir=rtl]{font-family:"IBM Plex Sans Arabic",Inter,system-ui,sans-serif}
*{box-sizing:border-box}
body{margin:0;background:var(--bg);color:var(--ink);font-size:15px;line-height:1.45}
a{color:var(--brand);text-decoration:none}
a:hover{text-decoration:underline}
h1{font-size:1.45rem;margin:0 0 .25rem}
h2{font-size:1.1rem;margin:0 0 .75rem}
h3{font-size:1rem;margin:0 0 .5rem}
small,.muted{color:var(--muted)}
svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;flex:none}

/* layout */
.topbar{position:fixed;inset-block-start:0;inset-inline:0;height:var(--top-h);background:var(--panel);border-block-end:1px solid var(--line);
  display:flex;align-items:center;gap:14px;padding:0 16px;z-index:30}
.brand{font-weight:600;color:var(--ink);font-size:1.05rem;display:flex;gap:8px;align-items:center}
.brand .logo{color:var(--brand);font-size:1.3rem}
.topbar .spacer{flex:1}
.topbar .who{color:var(--ink);font-weight:500}
.topbar .who small{display:block;font-weight:400;font-size:.75rem}
.topbar form{margin:0}
.menu-btn{display:none;background:none;border:0;padding:6px;cursor:pointer;color:var(--ink)}
.sidebar{position:fixed;inset-block:var(--top-h) 0;inset-inline-start:0;width:var(--nav-w);background:var(--panel);
  border-inline-end:1px solid var(--line);padding:12px 10px 40px;overflow-y:auto;z-index:20}
.sidebar a{display:flex;align-items:center;gap:10px;padding:8px 10px;border-radius:8px;color:var(--ink);margin-block:1px}
.sidebar a:hover{background:var(--bg);text-decoration:none}
.sidebar a.active{background:var(--brand-soft);color:var(--brand);font-weight:600}
.nav-group{font-size:.72rem;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);padding:14px 10px 4px}
[dir=rtl] .nav-group{letter-spacing:0}
main{padding:24px}
main.with-nav{margin-inline-start:var(--nav-w);margin-block-start:var(--top-h)}
main.bare{min-height:100vh;display:flex;flex-direction:column;justify-content:center}
@media (max-width:900px){
  .menu-btn{display:block}
  .sidebar{transform:translateX(-100%);transition:transform .2s;visibility:hidden}
  [dir=rtl] .sidebar{transform:translateX(100%)}
  body.nav-open .sidebar{transform:none;visibility:visible;box-shadow:0 10px 30px rgba(0,0,0,.12)}
  .brand{font-size:.95rem}
  main.with-nav{margin-inline-start:0}
  main{padding:16px}
  .topbar .who small,.topbar .lang{display:none}
}
@media (max-width:480px){ .topbar .who{display:none} }
.sidebar .nav-foot{display:none}
@media (max-width:1000px){ .sidebar .nav-foot{display:flex} }

/* page header */
.page-head{display:flex;align-items:flex-end;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:18px}
.page-head .actions{display:flex;gap:8px;flex-wrap:wrap}

/* cards & grids */
.card{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:18px;margin-bottom:18px}
.card.narrow{max-width:420px;margin-inline:auto;width:100%}
.card.center{text-align:center}
.big-code{font-size:3rem;font-weight:600;color:var(--brand)}
.grid{display:grid;gap:18px}
.grid.cols-2{grid-template-columns:repeat(auto-fit,minmax(320px,1fr))}
.grid.cols-3{grid-template-columns:repeat(auto-fit,minmax(240px,1fr))}
.stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:12px;margin-bottom:18px}
.stat{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:14px 16px}
.stat .n{font-size:1.6rem;font-weight:600;font-variant-numeric:tabular-nums}
.stat .l{color:var(--muted);font-size:.85rem}
.stat.alert .n{color:var(--bad)}
dl.kv{display:grid;grid-template-columns:max-content 1fr;gap:6px 16px;margin:0}
dl.kv dt{color:var(--muted)}
dl.kv dd{margin:0}

/* tables */
.table-wrap{overflow-x:auto;margin-inline:-18px;padding-inline:18px}
table{width:100%;border-collapse:collapse;font-size:.93rem}
th,td{padding:9px 10px;text-align:start;border-block-end:1px solid var(--line);vertical-align:middle}
th{font-size:.78rem;text-transform:uppercase;letter-spacing:.04em;color:var(--muted);font-weight:600;white-space:nowrap}
[dir=rtl] th{letter-spacing:0}
tr:last-child td{border-block-end:0}
td.num,th.num{text-align:end;font-variant-numeric:tabular-nums;white-space:nowrap}
tr.row-bad td{background:var(--bad-bg)}
.empty{color:var(--muted);padding:18px 4px;text-align:center}

/* badges */
.badge{display:inline-block;padding:2px 9px;border-radius:999px;font-size:.78rem;font-weight:500;white-space:nowrap}
.badge.ok{background:var(--ok-bg);color:var(--ok)} .badge.info{background:var(--info-bg);color:var(--info)}
.badge.warn{background:var(--warn-bg);color:var(--warn)} .badge.bad{background:var(--bad-bg);color:var(--bad)}
.badge.mute{background:var(--mute-bg);color:var(--mute)}

/* forms */
form.stack{display:grid;gap:14px}
.fields{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:14px}
label{display:grid;gap:5px;font-size:.88rem;font-weight:500}
label.check{display:flex;gap:8px;align-items:center;font-weight:400}
label.inline{display:inline-flex;gap:6px;align-items:center;font-weight:400;margin-inline-end:14px}
input,select,textarea{font:inherit;padding:9px 11px;border:1px solid var(--line);border-radius:8px;background:#fff;color:var(--ink);width:100%}
input[type=checkbox],input[type=radio]{width:auto}
textarea{min-height:80px;resize:vertical}
input:focus,select:focus,textarea:focus{outline:2px solid var(--brand-soft);border-color:var(--brand)}
.inline-form{display:flex;gap:8px;align-items:flex-end;flex-wrap:wrap}
.inline-form label{flex:1;min-width:150px}
.btn,button.btn{display:inline-flex;align-items:center;gap:6px;background:var(--brand);color:var(--brand-ink);border:0;border-radius:8px;
  padding:9px 16px;font:inherit;font-weight:500;cursor:pointer;white-space:nowrap}
.btn:hover{text-decoration:none;filter:brightness(1.08)}
.btn.secondary{background:var(--panel);color:var(--ink);border:1px solid var(--line)}
.btn.danger{background:var(--bad)}
.btn.small{padding:5px 10px;font-size:.85rem}
button.link{background:none;border:0;color:var(--brand);cursor:pointer;font:inherit;padding:0}
.btn-row{display:flex;gap:8px;flex-wrap:wrap;align-items:center}
form.inline{display:inline}

/* flash */
.flash{padding:11px 14px;border-radius:8px;margin-bottom:14px;border:1px solid}
.flash.ok{background:var(--ok-bg);color:var(--ok);border-color:#bfe3cd}
.flash.error{background:var(--bad-bg);color:var(--bad);border-color:#f5c2bd}
.flash.info{background:var(--info-bg);color:var(--info);border-color:#c5d8f2}

/* milestones */
.steps{list-style:none;padding:0;margin:0}
.steps li{display:flex;gap:12px;align-items:center;padding:10px 0;border-block-end:1px solid var(--line)}
.steps li:last-child{border:0}
.steps .dot{width:26px;height:26px;border-radius:50%;display:grid;place-items:center;font-size:.8rem;font-weight:600;
  background:var(--mute-bg);color:var(--mute);flex:none}
.steps li.done .dot{background:var(--ok);color:#fff}
.steps .grow{flex:1}
.progress{height:8px;background:var(--mute-bg);border-radius:99px;overflow:hidden;min-width:80px}
.progress span{display:block;height:100%;background:var(--brand)}
.tabs{display:flex;gap:4px;border-bottom:1px solid var(--line);margin-bottom:16px;flex-wrap:wrap}
.tabs a{padding:8px 14px;color:var(--muted);border-bottom:2px solid transparent}
.tabs a.active{color:var(--brand);border-color:var(--brand);font-weight:600}
.perm-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:14px}
.perm-grid fieldset{border:1px solid var(--line);border-radius:8px;padding:10px 14px}
.perm-grid legend{font-weight:600;padding:0 6px}
.typeahead{position:relative}
.typeahead .results{position:absolute;inset-inline:0;top:100%;background:#fff;border:1px solid var(--line);border-radius:8px;
  box-shadow:0 8px 24px rgba(0,0,0,.08);z-index:10;max-height:260px;overflow:auto}
.typeahead .results div{padding:8px 11px;cursor:pointer}
.typeahead .results div:hover{background:var(--brand-soft)}
.login-logo{font-size:2.2rem;color:var(--brand);text-align:center}

/* ===================================================================== version 2 */
.flash.warn{background:var(--warn-bg);color:var(--warn);border-color:#f0dcae}
.btn.active{background:var(--brand-soft);color:var(--brand);border-color:var(--brand)}
.btn[disabled],button[disabled]{opacity:.45;cursor:not-allowed}
a.stat{color:inherit;display:block} a.stat:hover{text-decoration:none;border-color:var(--brand)}
.stat .n.warn{color:var(--warn)}
.stat .n small{font-size:.8rem;font-weight:500;color:var(--muted)}
.card.testing{border-style:dashed;border-color:var(--brand)}
table.compact th,table.compact td{padding:5px 8px;font-size:.86rem}
tr.total td{font-weight:600;border-block-start:2px solid var(--line)}
.up{color:var(--ok)} .down{color:var(--bad)}
.small{font-size:.82rem}

/* view-as + bell + branding */
.viewas-bar{position:fixed;inset-block-start:0;inset-inline:0;height:34px;z-index:40;background:#2b2b2b;color:#fff;display:flex;gap:12px;
  align-items:center;justify-content:center;font-size:.88rem}
.viewas-bar .btn{background:#fff;color:#2b2b2b;padding:3px 10px}
.topbar.with-viewas{inset-block-start:34px}
.sidebar.with-viewas{inset-block-start:calc(var(--top-h) + 34px)}
main.with-nav.with-viewas{margin-block-start:calc(var(--top-h) + 34px)}
.viewas-form select{padding:6px 8px;font-size:.85rem;max-width:230px;border-color:var(--brand)}
.bell{position:relative;color:var(--ink);display:flex;padding:6px}
.bell .count,.topnews .count{position:absolute;inset-block-start:-2px;inset-inline-end:-4px;background:var(--bad);color:#fff;border-radius:99px;
  font-size:.68rem;font-weight:600;padding:1px 5px;line-height:1.3}
.brand-logo{height:34px;width:auto;max-width:140px;object-fit:contain}
.brand-preview{display:flex;gap:12px;align-items:center;margin-top:8px}
.brand-preview img{height:48px;max-width:200px;object-fit:contain;background:#fff;border:1px solid var(--line);border-radius:6px;padding:4px}
.color-sample{display:inline-block;padding:9px 16px;border-radius:8px;color:#fff;font-weight:500;margin-top:22px}
@media (max-width:700px){ .viewas-form select{max-width:120px} .brand-name{display:none} }

/* notifications & tasks */
.notif-list{list-style:none;margin:0;padding:0}
.notif-list li a{display:flex;gap:10px;align-items:center;padding:10px 12px;border-radius:8px;color:var(--ink);border-inline-start:4px solid var(--line);margin-bottom:6px;background:var(--bg)}
.notif-list li.warn a{border-color:#e0a526} .notif-list li.bad a{border-color:var(--bad)} .notif-list li.info a{border-color:var(--info)}
.notif-list .n{font-weight:700;min-width:28px;text-align:center;background:var(--panel);border-radius:99px;padding:1px 6px}
.notif-list .go{margin-inline-start:auto;color:var(--muted)}
.task{display:flex;gap:12px;align-items:flex-start;justify-content:space-between;padding:12px 0;border-block-end:1px solid var(--line);flex-wrap:wrap}
.task:last-child{border:0}
.task-main{flex:1;min-width:240px}

/* tags, timeline, journey */
.tag{display:inline-block;background:var(--mute-bg);color:var(--ink);border-radius:99px;padding:1px 9px;font-size:.78rem;margin:2px 2px 0 0}
.tag.link-tag{background:var(--brand-soft);color:var(--brand)}
.timeline{list-style:none;margin:0;padding:0;max-height:520px;overflow:auto}
.timeline li{padding:8px 0 8px 14px;border-inline-start:2px solid var(--line);position:relative;margin-inline-start:6px}
.timeline li::before{content:"";position:absolute;inset-inline-start:-6px;top:13px;width:10px;height:10px;border-radius:50%;background:var(--brand)}
.timeline .tl-icon{display:none}
.journey{margin:0;padding-inline-start:20px}
.journey li{padding:5px 0}

/* course: sessions & skills */
.wide-left{grid-template-columns:minmax(0,2fr) minmax(280px,1fr)}
@media (max-width:1000px){ .wide-left{grid-template-columns:1fr} }
.session{border:1px solid var(--line);border-radius:8px;padding:10px 12px;margin-bottom:10px}
.session.done{background:var(--ok-bg);border-color:#bfe3cd}
.session-head{display:flex;gap:10px;align-items:center;justify-content:space-between;flex-wrap:wrap}
.session-loc{margin-top:8px}
.session-loc form{display:flex;gap:6px;flex-wrap:wrap;align-items:center}
.session-loc select,.session-loc input{width:auto;padding:5px 8px;font-size:.86rem}
.skills{list-style:none;padding:0;margin:8px 0 4px;display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:2px 12px}
.skills li{display:flex;gap:6px;align-items:center;font-size:.9rem}
.skills li.done{color:var(--ok)}
.skill-btn{background:none;border:0;font-size:1.15rem;cursor:pointer;padding:0 2px;line-height:1;color:inherit}
.lock{font-weight:500}
.cert{border-inline-start:4px solid var(--brand)}
.cert.overdue{border-inline-start-color:var(--bad)}
.cert-actions{display:grid;gap:10px;margin-top:10px}
.matrix-box{border:1px solid var(--line);border-radius:8px;padding:10px 14px;display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:6px}
.matrix-box legend{font-weight:600;padding:0 6px}

/* phone-friendly cards instead of wide tables */
.mobile-only{display:none}
@media (max-width:760px){ .desktop-only{display:none} .mobile-only{display:block} }
.cards{display:grid;gap:10px}
.mcard{display:block;border:1px solid var(--line);border-radius:8px;padding:12px;color:var(--ink);background:var(--panel)}
.mcard:hover{text-decoration:none;border-color:var(--brand)}
.mcard .progress{margin-top:8px}

/* bookings: payment + gear */
.gear-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:8px}
.gear-item{display:flex;gap:6px;align-items:center;font-weight:400;border:1px solid var(--line);border-radius:8px;padding:6px 8px}
.gear-item .gear-size{width:64px;padding:4px 6px;margin-inline-start:auto}
.edit-row td{background:var(--bg)}
/* which boxes belong to each way of paying (the script sets data-pay; without it everything shows) */
.pay-fields .pay-ota,.pay-fields .pay-inv,.pay-fields .pay-rcpt,.pay-fields .pay-agency{display:grid}
.pay-fields small.pay-agency{display:block}
.pay-fields .pay-matrix{display:grid;gap:4px;align-content:start}
.pay-matrix-note{padding:9px 12px;border:1px dashed var(--line);border-radius:8px;background:var(--brand-soft);font-size:.92em}
.pay-fields[data-pay=unpaid] :is(.pay-inv,.pay-rcpt,.pay-ota,.pay-agency,.pay-matrix),
.pay-fields[data-pay=online] :is(.pay-inv,.pay-rcpt,.pay-ota,.pay-agency,.pay-matrix),
.pay-fields[data-pay=link] :is(.pay-inv,.pay-rcpt,.pay-ota,.pay-agency,.pay-matrix),
.pay-fields:not([data-pay=link]) .pay-link,
.pay-fields[data-pay=paid] :is(.pay-ota,.pay-agency,.pay-matrix),
.pay-fields[data-pay=ota] :is(.pay-inv,.pay-rcpt,.pay-agency,.pay-price),
.pay-fields[data-pay=agency] :is(.pay-rcpt,.pay-ota,.pay-price){display:none}

/* searchable select */
.ss-wrap{position:relative}
.ss-filter{margin-bottom:4px;padding:6px 9px;font-size:.86rem}

/* CRM board */
.board{display:grid;grid-template-columns:repeat(6,minmax(200px,1fr));gap:10px;overflow-x:auto;padding-bottom:8px}
.board-col{background:var(--mute-bg);border-radius:10px;padding:8px;min-height:200px;display:flex;flex-direction:column}
.board-col.over{outline:2px dashed var(--brand)}
.board-head{font-weight:600;padding:4px 6px 8px;display:flex;gap:6px;align-items:baseline;flex-wrap:wrap}
.board-head .count{background:var(--panel);border-radius:99px;padding:0 7px;font-size:.8rem}
.board-head small{margin-inline-start:auto}
.board-list{display:grid;gap:8px;flex:1;align-content:start}
.board-card{display:block;background:var(--panel);border:1px solid var(--line);border-radius:8px;padding:9px;color:var(--ink);cursor:grab;font-size:.9rem}
.board-card:hover{text-decoration:none;border-color:var(--brand)}
.board-card.due{border-inline-start:4px solid #e0a526}
.board-card.dragging{opacity:.5}
.stage-won{color:var(--ok)} .stage-lost{color:var(--mute)}
.stage-picker{display:flex;flex-wrap:wrap;gap:6px}
.stage-opt{display:flex;gap:6px;align-items:center;border:1px solid var(--line);border-radius:99px;padding:5px 12px;font-weight:500}
.dupe-warning{background:var(--warn-bg);color:var(--warn);border-radius:8px;padding:10px 12px}

/* charts */
.chart-with-legend{display:flex;gap:16px;align-items:center;flex-wrap:wrap}
.chart-pie{width:170px;height:170px;flex:none}
.pie-total{font-size:22px;font-weight:600;fill:var(--ink)} .pie-sub{font-size:11px;fill:var(--muted)}
.legend{list-style:none;margin:0;padding:0;font-size:.86rem;flex:1;min-width:150px}
.legend li{display:flex;gap:6px;align-items:center;padding:2px 0}
.legend .sw{width:11px;height:11px;border-radius:3px;flex:none}
.legend b{margin-inline-start:auto}
.hbars{display:grid;gap:5px}
.hbar{display:grid;grid-template-columns:minmax(90px,160px) 1fr auto;gap:8px;align-items:center;font-size:.86rem}
.hbar .hl{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.hbar .ht{background:var(--mute-bg);border-radius:4px;height:14px;position:relative}
.hbar .ht span{display:block;height:100%;border-radius:4px}
.hbar .hv{font-variant-numeric:tabular-nums;min-width:42px;text-align:end}
.hbar .mark{position:absolute;top:-3px;bottom:-3px;width:2px;background:var(--ink)}
.chart-cols{width:100%;height:190px}
.chart-cols .ax{font-size:10px;fill:var(--muted)}
.chart-cols .target-line{stroke:var(--bad);stroke-width:2;stroke-dasharray:6 4}
.tbar{position:relative;height:22px;background:var(--mute-bg);border-radius:6px;margin:34px 0 30px}
.tbar .fill{display:block;height:100%;background:var(--brand);border-radius:6px}
.tbar .mark{position:absolute;top:-6px;bottom:-6px;width:2px;background:var(--ink)}
.tbar .mark b{position:absolute;bottom:100%;transform:translateX(-50%);white-space:nowrap;font-size:.75rem;font-weight:600;padding-bottom:2px}
.tbar .mark.final{background:var(--bad)} .tbar .mark.final b{color:var(--bad)}
.tbar .mark.stage b{top:100%;bottom:auto;padding-top:4px}
.shortfall{border:1px solid var(--line);border-radius:8px;padding:10px 12px;display:grid;gap:2px}
.shortfall b{font-size:1.5rem}
.shortfall.bad b{color:var(--bad)} .shortfall.warn b{color:var(--warn)} .shortfall.ok b{color:var(--ok)}
.shortfall small{font-size:.75rem}
.heat{display:grid;gap:12px}
.heat-title{font-weight:600;font-size:.88rem;margin-bottom:4px}
.heat-tiles{display:flex;flex-wrap:wrap;gap:4px}
.tile{width:56px;height:46px;border-radius:6px;display:grid;place-items:center;font-size:.75rem;line-height:1.1;text-align:center;padding:2px}
.tile span{font-size:.7rem}
.insights ul{margin:0;padding-inline-start:20px} .insights li{padding:3px 0}

/* printouts */
body.print-page{background:#fff;padding:24px;max-width:1100px;margin:0 auto}
.print-bar{display:flex;gap:8px;margin-bottom:16px}
.print-head{display:flex;gap:16px;align-items:center;border-block-end:2px solid var(--brand);padding-bottom:10px;margin-bottom:14px}
.print-logo{height:56px;width:auto}
.print-company{font-size:1.2rem;font-weight:600}
.print-title{font-size:1.25rem;margin:8px 0}
.print-table{width:100%;border-collapse:collapse;font-size:.9rem}
.print-table th,.print-table td{border:1px solid #bbb;padding:5px 7px}
.print-foot{margin-top:24px;border-block-start:1px solid var(--line);padding-top:8px;font-size:.8rem;color:var(--muted);display:flex;justify-content:space-between;gap:12px}
@media print{
  .no-print,.print-bar,.topbar,.sidebar,.viewas-bar{display:none!important}
  body.print-page{padding:0}
  main.with-nav{margin:0}
  .card{break-inside:avoid;border:0;padding:6px 0}
  tr.row-bad td{background:#fde7e5!important;-webkit-print-color-adjust:exact;print-color-adjust:exact}
}
dl.kv dd{overflow-wrap:anywhere;min-width:0}
@media (max-width:760px){ body{overflow-x:hidden} .hbar{grid-template-columns:minmax(70px,110px) 1fr auto} }
/* diver / snorkeler / sunset */
.kind-counts{display:flex;gap:8px;flex-wrap:wrap;margin-top:8px}
.kind-counts span{background:var(--panel);border:1px solid var(--line);border-radius:99px;padding:3px 12px;font-size:.88rem}
.badge.kind-diver{background:#e3eef8;color:#1d5fa8}
.badge.kind-snorkeler{background:#e3f4ea;color:#1f7a4d}
.badge.kind-sunset{background:#fdf1d8;color:#8a5a00}

/* booking calendar */
.cal-head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;flex-wrap:wrap;margin-bottom:10px}
.cal-stats{display:flex;gap:16px;flex-wrap:wrap;color:var(--muted);margin-top:4px;font-size:.92rem}
.cal-stats b{color:var(--ink)} .cal-stats .warn b{color:var(--warn)}
.cal-bar{display:flex;gap:8px;align-items:center;flex-wrap:wrap;padding:10px 0;border-block:1px solid var(--line);margin-bottom:12px}
.cal-week{margin:0 4px}
.cal-sep{width:1px;height:22px;background:var(--line);margin:0 4px}
.pill{border:1px solid var(--line);border-radius:99px;padding:4px 12px;color:var(--ink);font-size:.88rem;background:var(--panel)}
.pill:hover{text-decoration:none;border-color:var(--brand)}
.pill.on{background:var(--ink);color:#fff;border-color:var(--ink)}
.cal-scroll{overflow-x:auto;margin-inline:-18px;padding-inline:18px}
.cal-grid{display:grid;grid-template-columns:70px repeat(7,minmax(118px,1fr));min-width:900px;border:1px solid var(--line);border-radius:8px;overflow:hidden}
.cal-corner,.cal-day,.cal-row-head{background:var(--bg);padding:10px;border-block-end:1px solid var(--line);font-size:.85rem}
.cal-corner{font-weight:600;color:var(--muted)}
.cal-day{text-align:center;border-inline-start:1px solid var(--line);display:grid}
.cal-day span{color:var(--muted)} .cal-day b{font-size:1.1rem}
.cal-day.today{background:var(--brand);color:#fff} .cal-day.today span,.cal-day.today b{color:#fff}
.cal-day em{font-style:normal;font-size:.7rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;justify-self:center;background:#fff;color:var(--brand);border-radius:99px;padding:0 8px;margin-top:2px}
.cal-day.past{background:#e9eef1} .cal-day.past b,.cal-day.past span{color:#8a99a3}
.cal-row-head{font-weight:700;font-size:1rem;background:var(--panel);color:var(--ink)}
.cal-cell{border-inline-start:1px solid var(--line);border-block-end:1px solid var(--line);padding:6px;display:grid;gap:6px;align-content:start;min-height:70px}
.cal-cell.today{background:var(--brand-soft);box-shadow:inset 2px 0 0 var(--brand),inset -2px 0 0 var(--brand)}
.cal-cell.past{background:#f0f3f5} .cal-cell.past .cal-ev{opacity:.7}
.cal-ev{display:grid;gap:3px;border-radius:8px;padding:8px 9px;background:var(--panel);color:var(--ink);font-size:.85rem;border:1px solid #c5d3db;border-inline-start:4px solid var(--brand);overflow:hidden;box-shadow:0 1px 2px rgba(21,35,45,.08)}
.cal-ev:hover{text-decoration:none;border-color:var(--brand);box-shadow:0 3px 10px rgba(21,35,45,.14)}
.cal-ev small{color:#4a5b66}
.cal-ev b{color:var(--brand);line-height:1.25}
.cal-ev.empty{background:var(--panel);border:1px dashed var(--line)}
.cal-ev.attn{background:#fff8e8;border-color:#e8c77a;border-inline-start-color:#c98a00}
.cal-ev.sold{border-inline-start-color:#d93025}
.cal-ev.closed{background:var(--mute-bg);border-inline-start-color:var(--mute);opacity:.85}
.cal-ev.empty{border-inline-start-width:1px}
.cal-flag{background:#d93025;color:#fff;font-weight:700;text-align:center;margin:-8px -9px 4px;padding:4px;font-size:.78rem;letter-spacing:.03em}
.cal-flag.closed{background:var(--mute)}
.cal-boat i{color:var(--warn);font-style:normal;font-weight:600}
.cal-count{font-weight:600}
.cal-kinds{display:flex;gap:4px;flex-wrap:wrap}
.cal-kinds .k{font-style:normal;font-size:.72rem;border-radius:99px;padding:0 6px}
.cal-kinds .d{background:#dbe8f6;color:#1d5fa8} .cal-kinds .s{background:#dcf1e4;color:#1f7a4d} .cal-kinds .u{background:#fbebc8;color:#8a5a00}
.cal-bar-fill{height:5px;background:#dfe7ec;border-radius:99px;overflow:hidden;display:block}
.cal-bar-fill span{display:block;height:100%;background:var(--brand)}
.cal-issues{font-size:.75rem;color:#7a4f00;font-weight:600} .cal-issues.ok{color:var(--ok)}

/* bookings: trip cards and passengers */
.day-title{margin:18px 0 8px;font-size:1rem}
.trip-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:10px}
.trip-card{display:grid;gap:4px;background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:12px;color:var(--ink);overflow:hidden}
.trip-card:hover{text-decoration:none;border-color:var(--brand);box-shadow:0 4px 14px rgba(0,0,0,.06)}
.trip-card b{color:var(--brand);line-height:1.3}
.trip-card .tc-time{font-weight:700;font-size:1.05rem}
.trip-card .tc-seats{font-weight:600;font-size:.88rem}
.trip-card.sold,.trip-card.closed{opacity:.6;cursor:not-allowed}
.trip-card .cal-flag{margin:-12px -12px 6px}
.trip-summary{display:flex;gap:16px;flex-wrap:wrap;align-items:center}
.trip-summary b{color:var(--brand);font-size:1.05rem}
.pax{border:1px solid var(--line);border-radius:10px;padding:12px;margin-bottom:12px;display:grid;gap:10px}
.pax:first-child{border-color:var(--brand)}
.pax-head{display:flex;justify-content:space-between;align-items:center}
.bokun-asks{border:1px dashed var(--line,#d5dde3);border-radius:8px;padding:10px 12px;display:grid;gap:6px}
.err-text{display:block;max-width:70ch;white-space:normal;overflow-wrap:anywhere}
.team-add{display:grid;gap:12px;margin-top:14px;padding-top:14px;border-top:1px solid var(--line,#e3e8ec)}
details.team-upgrade>summary{cursor:pointer;font-weight:600}
h1 a.badge{text-decoration:none}
.skills-all{margin:8px 0 0;padding-bottom:6px;border-bottom:1px dashed var(--line)}
.skills-all .skill-btn{display:inline-flex;gap:6px;align-items:center;font-weight:600}
.skills-all .skill-btn span{font-size:.9rem}
.skill-btn:disabled{opacity:.4;cursor:not-allowed}
/* v2.5 payout form */
.pay-form h3{margin:16px 0 6px;font-size:1rem}
.pay-form .pay-full{color:var(--ok);font-weight:600}
.pay-form .pay-part{color:var(--warn);font-weight:600}
.pay-summary{margin:8px 0 0;font-weight:600}
/* v2.5 booking form: search first */
.pax-top{display:grid;grid-template-columns:minmax(0,2fr) minmax(0,1fr);gap:12px;align-items:start}
.pax-search label,.pax-kind>label{display:block;margin-bottom:5px}
.pax-kind-fixed{padding:9px 0}
.pax[data-state=search] .pax-details,.pax[data-state=search] .pax-status{display:none}
.pax:not([data-state=search]) .pax-hint{display:none}
.pax[data-state=picked] .pax-status-new,.pax[data-state=new] .pax-status-picked{display:none}
.pax[data-state=picked] .pax-same{display:none}
.pax-status{display:block;margin-top:5px;color:var(--ok)}
.pax[data-state=new] .pax-status{color:var(--info)}
.pax-details{display:grid;gap:10px}
.typeahead .results div.create{border-top:1px solid var(--line);font-weight:600;color:var(--brand)}
.need{font-style:normal;font-size:.68rem;font-weight:700;border-radius:4px;padding:0 4px;margin-inline-start:3px;vertical-align:1px}
.need-b{background:var(--info-bg);color:var(--info)}
.need-p{background:var(--warn-bg);color:var(--warn)}
.need-legend{margin:0}
.more-guests{border-top:1px dashed var(--line);padding-top:12px;display:grid;gap:8px}
.more-guests h3{margin:0;font-size:1rem}
.more-or{display:flex;align-items:flex-end}
.guest-total{margin:0;font-size:1.02rem}
details.more>summary{cursor:pointer;color:var(--brand);font-weight:600;margin-bottom:8px}
@media (max-width:700px){.pax-top{grid-template-columns:1fr}}
/* v2.5 unpaid bookings */
.unpaid-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(310px,1fr));gap:12px;margin-bottom:18px}
.unpaid-card{background:#fff;border:1px solid var(--line);border-inline-start:4px solid var(--line);border-radius:10px;padding:12px;display:grid;gap:10px}
.unpaid-card.overdue{border-inline-start-color:var(--bad)}
.unpaid-card.soon{border-inline-start-color:var(--warn)}
.uc-main{display:grid;gap:4px;color:inherit;text-decoration:none}
.uc-main:hover b{text-decoration:underline}
.uc-top{display:flex;justify-content:space-between;gap:10px;align-items:baseline}
.uc-amount{font-weight:700;white-space:nowrap}
.uc-actions{display:flex;flex-wrap:wrap;gap:6px;align-items:center;border-top:1px solid var(--line);padding-top:10px}
.uc-phone{font-weight:600;margin-inline-end:auto;direction:ltr}
.uc-form{border-top:1px dashed var(--line);padding-top:10px}
.uc-contact{color:var(--info)}
.contact-line{margin:6px 0 0}
/* v2.5 guest details table */
.gd-table td{padding:4px 4px}
.gd-table input,.gd-table select{min-width:108px;width:100%}
.gd-table .gd-missing{border-color:var(--bad);background:var(--bad-bg)}
/* v2.5 collapsible side menu */
.sidebar details.nav-sec{margin-bottom:2px}
.sidebar summary.nav-group{display:flex;align-items:center;gap:8px;cursor:pointer;list-style:none;padding:11px 10px;border-radius:8px;font-size:.8rem;font-weight:600;user-select:none}
.sidebar summary.nav-group::-webkit-details-marker{display:none}
.sidebar summary.nav-group:hover{background:var(--bg);color:var(--ink)}
.sidebar summary.nav-group>span:first-child{flex:1}
.sidebar details.has-active>summary.nav-group{color:var(--brand)}
.nav-chev{width:14px;height:14px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;transition:transform .15s;flex:none}
.sidebar details[open]>summary .nav-chev{transform:rotate(180deg)}
.nav-count{background:var(--warn-bg);color:var(--warn);border-radius:999px;font-size:.7rem;font-weight:700;padding:1px 7px;line-height:1.5;letter-spacing:0;text-transform:none}
.sidebar details[open]>summary .nav-count{display:none}
.sidebar a .nav-label{flex:1}
.lbl{display:block}
.lbl .need{display:inline-block}
[hidden]{display:none!important}
.unpaid-cards{align-items:start}
.pay-summary{font-weight:500}
/* v2.5 ready-to-sail checklist */
.checklist .ck-row{display:grid;grid-template-columns:34px minmax(0,1fr) auto;gap:6px 12px;align-items:center;padding:12px 0;border-top:1px solid var(--line)}
.checklist h2+.ck-row{border-top:0}
.ck-state{width:28px;height:28px;border-radius:50%;display:grid;place-items:center;font-weight:700;font-size:.9rem}
.ck-ok{background:var(--ok-bg);color:var(--ok)}
.ck-todo{background:var(--bad-bg);color:var(--bad)}
.ck-warn.ck-state,.ck-wait{background:var(--warn-bg);color:var(--warn)}
.ck-na{background:var(--bg);color:var(--muted)}
.ck-detail{color:var(--muted);font-size:.92rem;margin-top:2px}
span.ck-warn,small.ck-warn{color:var(--warn);font-weight:500}
.ck-act{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end;align-items:center}
.ck-form{display:flex;gap:6px;align-items:center}
.ck-form select,.ck-form input{min-width:150px;width:auto}
.ck-more{grid-column:2/-1;display:grid;gap:6px;font-size:.92rem}
.ck-foot{display:flex;gap:14px;align-items:center;flex-wrap:wrap;border-top:1px solid var(--line);padding-top:14px;margin-top:2px}
.crew-pick{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:8px 16px;margin-top:10px}
.crew-opt{display:flex;gap:8px;align-items:center;justify-content:space-between;border:1px solid var(--line);border-radius:8px;padding:6px 10px}
.crew-opt label{flex:1}
.crew-opt label small{display:block}
.crew-opt select{width:auto;min-width:130px}
.crew-pick-foot{grid-column:1/-1;display:flex;gap:12px;align-items:center;flex-wrap:wrap}
details.fold>summary{cursor:pointer;list-style:none}
details.fold>summary h2{display:inline;margin:0}
details.fold>summary::before{content:'▸ ';color:var(--muted)}
details.fold[open]>summary::before{content:'▾ '}
details.fold[open]>summary{margin-bottom:12px}
@media (max-width:760px){.checklist .ck-row{grid-template-columns:34px minmax(0,1fr)}.ck-act{grid-column:2;justify-content:flex-start}}
/* v2.5 calendar cards: open or book */
.cal-open{display:grid;gap:3px;color:inherit;text-decoration:none}
.cal-open:hover{text-decoration:none}
.cal-book{justify-self:start;font-size:.78rem;font-weight:600;border:1px solid var(--brand);color:var(--brand);border-radius:6px;padding:1px 8px;background:#fff;margin-top:3px}
.cal-book:hover{background:var(--brand);color:#fff;text-decoration:none}
.pay-form .fields>label:first-child{grid-column:span 2}
@media (max-width:700px){.pay-form .fields>label:first-child{grid-column:auto}}
/* v2.5.2 "not in Bokun" panel */
.bokun-fix{border:1px solid #f5c2bd;border-inline-start:5px solid var(--bad);background:#fff}
.bokun-fix.calm{border-color:var(--line);border-inline-start-color:var(--info)}
.bokun-fix h2{color:var(--bad);margin-bottom:6px}
.bokun-fix.calm h2{color:var(--ink)}
.bf-lead{font-size:1.02rem;margin:0 0 12px}
.bf-fields{margin-bottom:12px;align-items:start}
.bf-fields label{align-content:start}
.bf-fields input,.bf-fields select{border-color:var(--bad)}
.bf-why{color:var(--bad)}
.bf-note{margin-inline-start:10px}
.bf-tip{margin:10px 0 0}
.bf-steps{margin:0 0 12px;padding-inline-start:22px;display:grid;gap:4px}
.bf-tech{margin-top:14px;border-top:1px dashed var(--line);padding-top:8px;color:var(--muted);font-size:.82rem}
.bf-tech summary{cursor:pointer}
.bf-tech p{margin:4px 0;overflow-wrap:anywhere}

/* v2.5.3 — why the customer has to be contacted */
.why-contact{background:#fff8e6;border:1px solid #f1d58a;border-radius:10px;padding:10px 14px;margin-bottom:12px}
.why-contact ol{margin:6px 0 0;padding-inline-start:20px;display:grid;gap:8px}
.why-contact ul{margin:4px 0;padding-inline-start:18px;font-size:.9rem}
.why-title{font-weight:600;display:block}
.why-do{display:block;font-size:.9rem;color:var(--muted)}
.why-none{color:var(--muted);margin:0 0 12px}

/* v2.6 — receipt vouchers owed for invoiced bookings */
.rc-card{border-inline-start:5px solid var(--warn,#c27c0e)}
.rc-row.rc-high{background:#fff8e6}
.rc-row.rc-warning,.rc-row.rc-blocked{background:#fdecea}
.rc-row{padding-inline:10px;border-radius:8px}
.rc-left{color:var(--bad);font-weight:600}
.rc-row.rc-reminder .rc-left{color:var(--muted);font-weight:400}
.rc-blocked-people{background:#fdecea;border-radius:8px;padding:8px 12px}
.rc-quick{background:#fff8e6;border:1px solid #f1d58a;border-radius:10px;padding:10px 14px;margin:10px 0}
.rc-banner a{font-weight:600;text-decoration:underline}
dialog.rc-popup{border:0;border-radius:14px;padding:22px 24px;max-width:560px;width:calc(100% - 32px);box-shadow:0 20px 60px rgba(0,0,0,.35);border-top:6px solid var(--bad)}
dialog.rc-popup::backdrop{background:rgba(15,23,42,.55)}
dialog.rc-popup h2{color:var(--bad);margin:0 0 8px}
dialog.rc-popup ul{margin:10px 0 16px;padding-inline-start:20px;display:grid;gap:6px}
dialog.rc-popup .btn-row form{display:inline}

/* v2.7 — screenshot of the receipt voucher */
input[type=file][data-receipt-file]{padding:6px;border:1px dashed var(--line);border-radius:8px;background:#fff;max-width:100%;font-size:.9rem}
input[type=file][data-receipt-file].rf-got{border-style:solid;border-color:var(--ok,#1a7f4b);background:#f1faf5}
.rf-hint{display:block}
.rf-link a{font-weight:600}
.rf-link.rf-old a{font-weight:400;color:var(--muted)}
.rc-form{align-items:flex-end}

/* v2.7.1 — the screenshot box: choose, paste or drop, with a preview */
.rf-box{display:block;border:1px dashed var(--line);border-radius:10px;padding:8px 10px;background:#fafbfc}
.rf-box.rf-armed{border-color:var(--brand);background:var(--brand-soft)}
.rf-box.rf-over{border-style:solid;border-color:var(--brand)}
.rf-row{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.rf-row input[type=file][data-receipt-file]{flex:1;min-width:170px;border:0;background:transparent;padding:2px}
.rf-row input[type=file][data-receipt-file].rf-got{border:0;background:transparent}
.rf-preview{display:flex;gap:10px;align-items:center;margin-top:8px;font-size:.85rem;flex-wrap:wrap}
.rf-preview[hidden]{display:none}
.rf-preview img{max-height:90px;max-width:160px;border:1px solid var(--line);border-radius:6px;background:#fff}
.rf-msg{display:block;margin-top:6px;color:var(--ok,#1a7f4b);font-weight:600}
.rf-msg.bad{color:var(--bad)}
/* v3.20 the other numbers read from the screenshot, one tap each */
.rf-choices{display:flex;flex-wrap:wrap;gap:6px;align-items:center;margin-top:6px}
.rf-choices > small{flex-basis:100%}
.rf-choice{cursor:pointer;max-width:100%;overflow-wrap:anywhere;text-align:start}
.rf-choice span{font-size:.8rem;opacity:.85}
.rf-box .rf-hint{margin-top:6px}
.fields > label:has(> .rf-box){grid-column:1/-1}
.fields:has(.rf-box){align-items:start}
.rf-box{max-width:640px}

/* v2.8 — details read from Bokun */
.bokun-details h3{margin:14px 0 6px;font-size:1rem}
.bk-pax{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:10px;margin-top:8px}
.bk-guest{border:1px solid var(--line);border-radius:8px;padding:8px 10px;font-size:.9rem}
.bk-guest .kv{margin-top:4px}
.bk-all td{padding:3px 8px;font-size:.85rem;vertical-align:top}
.bk-all td:first-child{color:var(--muted);white-space:nowrap}

/* v2.8.2 — settle "completed without a fund" */
.fund-missing{border-inline-start:5px solid var(--bad)}
.fm-row{display:flex;gap:14px;align-items:flex-end;flex-wrap:wrap;padding:12px 0;border-top:1px solid var(--line)}
.fm-what{flex:1 1 240px;align-self:center}
.fm-form{flex:0 1 auto;gap:8px;align-items:flex-end}
.fm-form label{min-width:130px}
.fm-void{color:var(--bad)}
.fm-form:last-of-type label{min-width:220px}

/* v3.0 */

.work-row{display:flex;gap:12px;align-items:center;padding:10px 6px;border-top:1px solid var(--line);color:inherit;text-decoration:none}
.work-row:hover{background:var(--brand-soft)}
.work-n{min-width:34px;height:34px;border-radius:17px;background:var(--line);display:grid;place-items:center;font-weight:600}
.work-text{flex:1}
.work-text small{display:block}
.work-row:hover,.work-row:hover *{text-decoration:none}

/* tasks: what a purchase invoice must show, in boxes */
.task.task-purchase{display:block}
.task-purchase>form{margin-top:10px;align-items:flex-end}
.task-boxes{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:8px;margin:8px 0 6px}
.tbox{border:1px solid var(--line);border-radius:8px;padding:6px 10px;background:#fafbfc;min-width:0}
.tbox>span{display:block;font-size:.75rem;color:var(--muted)}
.tbox>b{display:block;font-weight:600;overflow-wrap:anywhere}
.tbox-wide{grid-column:1/-1}
.tbox-copy{display:flex!important;gap:10px;align-items:center;justify-content:space-between;flex-wrap:wrap}
.btn.copied{background:var(--ok,#1a7f4b);color:#fff;border-color:var(--ok,#1a7f4b)}
/* screenshots to review */
.sc-card{border-inline-start:5px solid var(--line)}
.sc-card.sc-open,.sc-card.sc-refused{border-inline-start-color:var(--bad)}
.sc-card.sc-pending{border-inline-start-color:var(--warn,#c27c0e)}
.sc-head{display:flex;gap:16px;justify-content:space-between;align-items:flex-start;flex-wrap:wrap}
.sc-head h3{margin:0 0 4px}
.sc-pic{display:flex;flex-direction:column;align-items:center;gap:4px;font-size:.8rem}
.sc-pic img{max-height:120px;max-width:220px;border:1px solid var(--line);border-radius:6px;background:#fff}
.sc-table{margin:10px 0}
.sc-table th:first-child{text-align:start;font-weight:600;white-space:nowrap}
.sc-table tr.sc-bad td,.sc-table tr.sc-bad th{background:#fdecea}
.sc-actions{display:flex;gap:14px;align-items:flex-end;flex-wrap:wrap;border-top:1px solid var(--line);padding-top:12px;margin-top:8px}
.sc-actions .sc-correct{flex:1 1 420px;align-items:flex-end}
.sc-actions .sc-accept{flex:1 1 300px;align-items:flex-end}

/* receipt vouchers of a sale */
.rcpt-list{list-style:none;margin:0;padding:0;display:grid;gap:4px}
.rcpt-list li{display:flex;gap:8px;align-items:baseline;flex-wrap:wrap}
.rcpt-sum{margin-top:6px}

/* pages customers see: one column, large touch targets */
body.public{background:var(--bg);margin:0;display:flex;flex-direction:column;min-height:100vh}
.pub-top{display:flex;justify-content:space-between;align-items:center;padding:12px 18px;background:var(--panel);border-bottom:1px solid var(--line)}
.pub-top .brand{display:flex;align-items:center;gap:10px;font-weight:600;font-size:1.05rem}
.pub-top .brand-logo{height:34px}
.pub-lang{font-weight:600}
.pub-main{width:100%;max-width:720px;margin:0 auto;padding:18px 14px;flex:1}
.pub-card{background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:18px;margin-bottom:14px}
.pub-card h1{margin:0 0 6px;font-size:1.45rem}
.pub-card h2{margin:0 0 10px;font-size:1.1rem;display:flex;gap:8px;align-items:baseline;flex-wrap:wrap}
.pub-card h2 small{font-weight:400;color:var(--muted);font-size:.85rem}
.pub-center{text-align:center;padding:36px 18px}
.pub-lead{color:var(--muted);margin:0 0 10px;font-weight:500}
.pub-fields{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:12px}
.pub-fields label,.pub-form label{display:flex;flex-direction:column;gap:4px;font-size:.9rem;font-weight:500}
.pub-form label.check{flex-direction:row;align-items:flex-start;gap:10px;font-weight:400}
.pub-form label.check input{width:20px;height:20px;margin-top:2px;flex:none}
body.public input:not([type=checkbox]):not([type=radio]),body.public select{font-size:16px;min-height:46px;padding:10px 12px;border:1px solid var(--line);border-radius:10px;background:#fff;width:100%;box-sizing:border-box}
.pub-sizes{margin-top:12px;padding-top:12px;border-top:1px dashed var(--line)}
.pub-hint{color:var(--muted);font-size:.8rem;font-weight:400;grid-column:1/-1}
.pub-guest.pub-ok{border-inline-start:5px solid var(--ok)}
.pub-btn{width:100%;min-height:50px;font-size:1.05rem}
.pub-foot{text-align:center;color:var(--muted);font-size:.85rem;padding:18px 14px}
.gl-row{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin:8px 0}
.gl-row input{flex:1;min-width:240px;font-family:ui-monospace,monospace;font-size:.85rem}

/* a card with two views, and trips as boxes (permit details per trip) */
.card-head{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:10px}
.card-head h2{margin:0}
.seg{display:inline-flex;border:1px solid var(--line);border-radius:8px;overflow:hidden}
.seg-btn{border:0;background:var(--panel);padding:6px 14px;font:inherit;font-size:.85rem;cursor:pointer;color:var(--ink)}
.seg-btn + .seg-btn{border-inline-start:1px solid var(--line)}
.seg-btn.active{background:var(--brand);color:var(--brand-ink);font-weight:600}
.ptrip-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:12px}
.ptrip{position:relative;display:flex;flex-direction:column;gap:4px;aspect-ratio:1/1;min-height:150px;padding:34px 12px 12px;border:1px solid var(--line);border-radius:12px;
  background:var(--panel);color:var(--ink);text-decoration:none;overflow:hidden}
.ptrip:hover{box-shadow:0 4px 14px rgba(15,35,45,.12);text-decoration:none}
.ptrip-ribbon{position:absolute;top:0;inset-inline:0;padding:4px 10px;font-size:.75rem;font-weight:600;text-align:center;color:#fff}
.ptrip-ok .ptrip-ribbon{background:var(--ok)}
.ptrip-bad .ptrip-ribbon{background:var(--bad)}
.ptrip-ok{border-color:var(--ok)}
.ptrip-bad{border-color:var(--bad)}
.ptrip-date{font-weight:700;font-size:1rem}
.ptrip-what{font-weight:500;overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}
.ptrip-boat{color:var(--muted);font-size:.85rem}
.ptrip-n{margin-top:auto;font-size:.82rem;color:var(--muted)}
.ptrip-bad .ptrip-n b{color:var(--bad)}
.pub-product{display:flex;gap:14px;justify-content:space-between;align-items:center;color:var(--ink);text-decoration:none}
.pub-product:hover{border-color:var(--brand);text-decoration:none}
.pp-main{display:flex;flex-direction:column;gap:4px;min-width:0}
.pp-main b{font-size:1.1rem}
.pp-desc,.pp-long{color:var(--muted)}
.pp-price{display:flex;flex-direction:column;align-items:center;gap:2px;white-space:nowrap}
.pp-price b{font-size:1.15rem}
.pp-price small{color:var(--muted)}
.dep-list{display:grid;gap:8px;max-height:340px;overflow:auto}
.dep-opt,.pay-choice{display:flex!important;flex-direction:row!important;align-items:center;gap:12px!important;border:1px solid var(--line);border-radius:10px;padding:10px 12px;cursor:pointer}
.dep-opt input,.pay-choice input{width:20px;height:20px;flex:none}
.dep-opt:has(input:checked),.pay-choice:has(input:checked){border-color:var(--brand);background:var(--brand-soft)}
.dep-opt small{color:var(--muted);font-weight:400}
.dep-opt em{color:var(--bad);font-style:normal;font-size:.8rem;margin-inline-start:8px}
.pay-choices{display:grid;gap:8px;margin-bottom:12px}
.pay-choice span{display:flex;flex-direction:column;gap:2px}
.pay-choice small{color:var(--muted);font-weight:400}
.book-total{display:flex;flex-direction:column;gap:4px;justify-content:flex-end}
.book-total span{font-size:.9rem;color:var(--muted)}
.book-total b{font-size:1.4rem}
.terms{margin:10px 0;color:var(--muted)}
.terms summary{cursor:pointer;color:var(--brand);font-weight:500}
.pub-kv{display:grid;grid-template-columns:auto 1fr;gap:6px 16px;margin:10px 0}
.pub-kv dt{color:var(--muted)}
.pub-kv dd{margin:0}
.pub-done{border-top:6px solid var(--ok)}
.pub-done h1{color:var(--ok)}
.spinner{width:38px;height:38px;border:4px solid var(--line);border-top-color:var(--brand);border-radius:50%;margin:16px auto;animation:spin 1s linear infinite}
@keyframes spin{to{transform:rotate(360deg)}}
.pay-env{border:1px solid var(--line);border-radius:10px;padding:12px;display:grid;gap:10px}
.pay-env legend{font-weight:600;padding:0 6px}
.rsv-attn{border-inline-start:5px solid var(--bad)}

/* short messages where the person is working */
#toasts{position:fixed;inset-inline:0;bottom:18px;display:flex;flex-direction:column;align-items:center;gap:8px;z-index:60;pointer-events:none;padding:0 12px}
.toast{pointer-events:auto;max-width:560px;padding:10px 16px;border-radius:10px;border:1px solid;box-shadow:0 6px 22px rgba(0,0,0,.16);font-weight:600;cursor:pointer;animation:toast-in .18s ease-out}
.toast.ok{background:var(--ok-bg);color:var(--ok);border-color:#bfe3cd}
.toast.info{background:var(--info-bg);color:var(--info);border-color:#c5d8f2}
.toast.warn{background:var(--warn-bg);color:var(--warn);border-color:#f0dcae}
.toast.error{background:var(--bad-bg);color:var(--bad);border-color:#f5c2bd}
@keyframes toast-in{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
.live-busy{opacity:.65;transition:opacity .15s}
.live-busy button,.live-busy select{pointer-events:none}

/* ---- version 3.3: price matrix, charter, travel agencies */
.pm-notes{margin:0;padding-inline-start:18px}
.pm-wrap{max-height:72vh;overflow:auto}
.pm-table{border-collapse:separate;border-spacing:0;min-width:100%}
.pm-table th,.pm-table td{white-space:nowrap;vertical-align:top}
.pm-table thead th{position:sticky;inset-block-start:0;background:var(--panel);z-index:2}
.pm-table thead tr:nth-child(2) th{inset-block-start:34px;font-weight:500}
.pm-table .pm-prod{position:sticky;inset-inline-start:0;background:var(--panel);z-index:1;text-align:start;white-space:normal;min-width:190px;max-width:260px}
.pm-table thead .pm-prod{z-index:3}
.pm-table .pm-prod small{display:block;font-weight:400}
.pm-table .pm-own{background:var(--brand-soft)}
.pm-table .pm-group{text-align:center;border-inline-start:2px solid var(--line)}
.pm-table .pm-agency{background:#f6f3fb}
.pm-table input{width:98px;text-align:end}
.pm-table .pm-diff{display:block;min-height:1.1em;color:var(--muted);font-size:.78em;direction:ltr;text-align:right}
[dir=rtl] .pm-table .pm-diff{text-align:left}
.pm-table tbody .pm-prod{text-transform:none;letter-spacing:0;font-size:.95rem;color:var(--ink)}
.pm-table tbody .pm-prod small{font-size:.8rem}
.pax-save{display:flex;flex-wrap:wrap;gap:8px 12px;align-items:center;margin-block-start:10px;padding-block-start:10px;border-block-start:1px dashed var(--line)}
.pax[data-state=search] .pax-save{display:none}
.pax-save-msg{flex-basis:100%;color:var(--ok)}
.pax-save-msg.bad{color:var(--bad)}
.stop-note{display:grid;gap:8px}
.stop-note div{display:flex;gap:10px;align-items:center;flex-wrap:wrap}
.trip-card.was-chosen{outline:2px dashed var(--line)}
.pay-matrix-value{display:block;font-size:1.05em;margin-block-end:4px}
.pay-matrix-value.bad{color:var(--bad);font-weight:600}
.pay-matrix-value:not(.bad) + *{font-size:.9em}
.combine-note{display:flex;gap:14px;align-items:center;justify-content:space-between;flex-wrap:wrap}
tr.pax-section th{background:var(--brand-soft);color:var(--ink);text-align:start;text-transform:none;letter-spacing:0;font-size:.98rem;padding-block:9px}
tr.pax-section th small{font-weight:500;margin-inline-start:10px}
.sc-should{margin-block:12px;padding:10px 12px;border:1px solid var(--line);border-radius:10px;display:grid;gap:8px}
.sc-should-bad{border-color:var(--bad);background:var(--bad-bg)}
.sc-should .tbox-wide b span{font-size:1.02rem}
input[readonly]{background:var(--mute-bg);color:var(--muted)}
.lock-note{display:block}
.dep-table td{vertical-align:top}
.dep-table tr.dep-todo td:first-child{box-shadow:inset 3px 0 0 var(--warn)}
[dir=rtl] .dep-table tr.dep-todo td:first-child{box-shadow:inset -3px 0 0 var(--warn)}
.dep-todo-list .badge{margin-block-end:4px;white-space:normal;text-align:start}

/* booking from OTA screenshots */
.ota-shots{display:block;border:1px dashed var(--line);border-radius:10px;padding:12px;background:#fafbfc;max-width:760px}
.ota-shots.rf-over{border-style:solid;border-color:var(--brand);background:var(--brand-soft)}
.ota-shots-buttons{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:6px}
.ota-shots-list{display:flex;gap:10px;flex-wrap:wrap;margin-top:8px}
.ota-shot{display:flex;flex-direction:column;align-items:center;gap:4px;max-width:150px;font-size:.8rem}
.ota-shot img{max-height:110px;max-width:150px;border:1px solid var(--line);border-radius:6px;background:#fff}
.ota-shot small{max-width:150px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ota-read-pdf{display:inline-flex;align-items:center;justify-content:center;width:80px;height:100px;border:1px solid var(--line);border-radius:6px;background:#fff;font-weight:600;color:var(--muted)}
.ota-read-body{display:grid;grid-template-columns:minmax(0,260px) 1fr;gap:16px;align-items:start}
.ota-read-shots{display:flex;flex-wrap:wrap;gap:8px}
.ota-read-shots img{max-width:120px;max-height:160px;border:1px solid var(--line);border-radius:6px;background:#fff}
.ota-read .ai-unsure,input.ai-unsure,select.ai-unsure,textarea.ai-unsure{background:#fff7cc;border-color:#e0b400}
.ota-read dd.ai-unsure{padding:2px 6px;border-radius:6px}
@media (max-width:700px){.ota-read-body{grid-template-columns:1fr}}

.pm-child-row{display:flex;align-items:center;gap:4px;margin-top:2px}
.pm-child-row small{color:var(--muted);font-size:.75em;white-space:nowrap}
.pm-table input.pm-child{font-size:.85em;padding:3px 6px;max-width:90px}

input.id-bad{border-color:var(--bad,#c0392b);background:#fdecea}

.money-stats .stat .n{font-size:1.35rem}
.money-stats .stat .n small{font-size:.65em;font-weight:500;color:var(--muted)}

/* Admin → Notifications */
.nt-users{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:6px 16px}
.nt-rules input[type=number]{width:80px}
.push-box{display:flex;gap:10px;align-items:center;flex-wrap:wrap}

.nt-rules th{white-space:normal;min-width:70px}
.nt-rules input[type=number]{width:70px}

/* trip page: check-in (arrived at the centre → on board) */
.btn.ok{background:var(--ok);color:#fff;border-color:var(--ok)}
.checkin-head{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap}
.checkin-head h2{margin:0}
.checkin-counts{display:flex;gap:14px;flex-wrap:wrap}
.checkin-counts b{font-size:1.05rem}
.checkin-all{margin:8px 0}
.checkin-list{list-style:none;margin:8px 0 0;padding:0}
.checkin-list li{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:10px 4px;border-block-end:1px solid var(--line);flex-wrap:wrap}
.checkin-list li.is-on{background:var(--ok-bg)}
.checkin-list li.is-arrived{background:var(--info-bg)}
.checkin-list li.is-noshow{opacity:.65}
.checkin-list .ci-do{display:flex;gap:6px;flex-wrap:wrap}
.checkin-list .ci-do .btn{min-width:96px;min-height:38px}
@media (max-width:640px){.checkin-list .ci-do{width:100%}.checkin-list .ci-do form,.checkin-list .ci-do .btn{flex:1}}

/* My work: schedule, trip log, incidents */
.bad-text{color:var(--bad)}
.sched-list{display:grid;gap:8px}
.sched-item{display:grid;grid-template-columns:150px 1fr auto;gap:10px;align-items:center;border:1px solid var(--line);border-radius:10px;padding:10px 12px}
.sched-item.is-pending{border-color:var(--warn);background:var(--warn-bg)}
.sched-item.is-declined{opacity:.75}
.sched-what{display:grid;gap:2px}
.sched-do{display:flex;gap:6px;align-items:flex-start;flex-wrap:wrap}
.sched-do details.decline{position:relative}
.sched-do details.decline summary{list-style:none;cursor:pointer}
.sched-do details.decline[open] form{margin-top:6px;min-width:220px}
@media (max-width:640px){.sched-item{grid-template-columns:1fr}}
.copy-line{display:flex;gap:6px}.copy-line input{flex:1;min-width:0}
ul.plain{list-style:none;padding:0;margin:8px 0}ul.plain li{padding:4px 0}
.ci-info{color:var(--ink)}
.incident{border-block-end:1px solid var(--line);padding-block-end:12px}.incident.is-done{opacity:.7}
.ok-text{color:var(--ok)}
.my-link{display:grid;grid-template-columns:auto 1fr;gap:18px;align-items:center}
.my-link-qr svg{width:170px;height:170px;display:block}
@media (max-width:640px){.my-link{grid-template-columns:1fr}.my-link-qr{justify-self:center}}

/* new booking: experience first, then a strip of days, then the times */
.exp-picker{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:14px}
.exp-btn{display:flex;align-items:center;gap:8px;border:1.5px solid var(--line);border-radius:12px;padding:10px 16px;background:var(--panel);color:var(--ink);font-weight:600;font-size:1rem}
.exp-btn span{font-size:1.25rem}
.exp-btn:hover{text-decoration:none;border-color:var(--brand)}
.exp-btn.on{background:var(--brand);border-color:var(--brand);color:#fff}
.day-strip-wrap{display:flex;align-items:center;gap:8px;margin-bottom:6px}
.day-strip{display:flex;gap:6px;overflow-x:auto;padding:4px 2px 8px;flex:1;scroll-snap-type:x proximity}
.day-chip{flex:0 0 74px;display:grid;justify-items:center;gap:1px;border:1.5px solid var(--line);border-radius:12px;padding:8px 4px;background:var(--panel);color:var(--ink);scroll-snap-align:start}
.day-chip:hover{text-decoration:none;border-color:var(--brand)}
.day-chip b{font-size:1.3rem;line-height:1.1}
.day-chip small{color:var(--muted);font-size:.75rem}
.day-chip em{font-style:normal;font-size:.75rem;font-weight:700;color:var(--ok);margin-top:2px}
.day-chip.full em{color:var(--bad)} .day-chip.none{opacity:.55} .day-chip.none em{color:var(--muted)}
.day-chip.on{background:var(--brand);border-color:var(--brand);color:#fff}
.day-chip.on small,.day-chip.on em{color:#fff}
.strip-jump input{width:150px}
.sold-fold{margin-top:14px}
@media (max-width:640px){.strip-jump{display:none}.exp-btn{flex:1 1 40%;justify-content:center}}
.msg-list{list-style:none;margin:0;padding:0}
.msg-list li{display:flex;justify-content:space-between;align-items:center;gap:8px;padding:8px 2px;border-block-end:1px solid var(--line)}
.msg-list li.done{background:var(--ok-bg)}
.msg-body{white-space:pre-wrap;font-family:inherit;background:var(--bg);padding:8px;border-radius:8px;margin:6px 0}

/* guided tours (Tutorials) */
.tour-shade{position:fixed;inset:0;background:rgba(10,20,28,.55);z-index:900}
.tour-shade.clear{background:transparent}
.tour-ring{position:absolute;z-index:901;border-radius:10px;box-shadow:0 0 0 3px var(--brand),0 0 0 9999px rgba(10,20,28,.55);pointer-events:none;transition:all .2s}
.tour-tip{position:absolute;z-index:902;background:var(--panel);color:var(--ink);border-radius:12px;padding:14px 16px;box-shadow:0 10px 30px rgba(0,0,0,.25);max-width:calc(100vw - 24px)}
.tour-tip.center{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);width:min(380px,calc(100vw - 24px))}
.tour-tip b{display:block;font-size:1.05rem;margin-bottom:4px}
.tour-tip p{margin:0 0 12px}
.tour-row{display:flex;gap:6px;align-items:center;flex-wrap:wrap}
.tour-row small{margin-inline-end:auto;color:var(--muted)}
.tour-help{display:inline-grid;place-items:center;width:28px;height:28px;border-radius:50%;border:1.5px solid var(--line);color:var(--brand);font-weight:700;text-decoration:none}
.tour-help:hover{border-color:var(--brand);text-decoration:none}
.tut-list{list-style:none;padding:0;margin:0}.tut-list li{display:flex;justify-content:space-between;align-items:center;gap:8px;padding:8px 0;border-block-end:1px solid var(--line)}
details.guide summary{cursor:pointer;list-style:none}details.guide summary h2{margin:0;font-size:1.05rem}details.guide ol{margin:10px 0}

/* v3.6.1 — compact booking calendar */
.cal-head{margin-bottom:6px}
.cal-bar{padding:6px 0;gap:6px;margin-bottom:8px}
.cal-grid{grid-template-columns:52px repeat(7,minmax(112px,1fr));min-width:840px}
.cal-corner,.cal-day,.cal-row-head{padding:5px 6px;font-size:.8rem}
.cal-day{display:flex;align-items:center;justify-content:center;gap:6px;flex-wrap:wrap}
.cal-day b{font-size:.95rem}
.cal-day em{margin:0;font-size:.62rem;padding:0 6px}
.cal-row-head{font-size:.85rem}
.cal-cell{padding:4px;gap:4px;min-height:40px}
.cal-ev{position:relative;padding:4px 6px;gap:2px;font-size:.76rem;border-radius:6px;box-shadow:none;line-height:1.3}
.cal-open{gap:2px}
.cal-top{display:flex;align-items:center;gap:4px;min-width:0;padding-inline-end:18px}
.cal-top small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.68rem}
.cal-ev .cal-flag{margin:0;padding:0 5px;border-radius:4px;font-size:.62rem;flex:none;line-height:1.5}
.cal-name{font-size:.8rem;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;padding-inline-end:18px}
.cal-line{display:flex;gap:6px;align-items:baseline;min-width:0}
.cal-line .cal-count{flex:none}
.cal-line .cal-boat{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#4a5b66}
.cal-kinds .k{font-size:.64rem;padding:0 5px}
.cal-bar-fill{height:3px}
.cal-issues{font-size:.68rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.cal-book{position:absolute;top:3px;inset-inline-end:3px;margin:0;padding:0;width:18px;height:18px;line-height:16px;text-align:center;border-radius:5px;font-size:.85rem;z-index:1}
.cal-kinds small{font-size:.64rem;white-space:nowrap}

/* v3.6.2 — team availability */
.av-key{display:flex;gap:6px;flex-wrap:wrap;align-items:center}
.av-grid{border-collapse:separate;border-spacing:0;width:100%;min-width:980px;font-size:.8rem}
.av-grid th,.av-grid td{border-block-end:1px solid var(--line);border-inline-start:1px solid var(--line);padding:4px;text-align:center;vertical-align:top}
.av-grid thead th{background:var(--bg);font-weight:600;line-height:1.2}
.av-grid thead th small{display:block;color:var(--muted);font-weight:400}
.av-grid thead th.today{background:var(--brand);color:#fff} .av-grid thead th.today small{color:#fff}
.av-grid thead th.wkend{background:#e9eef1}
.av-grid td.today{background:var(--brand-soft)}
.av-grid td.is-ok{background:#eef8f2} .av-grid td.is-off{background:#fdeeee}
.av-grid .av-name{text-align:start;min-width:170px;position:sticky;inset-inline-start:0;background:var(--panel);z-index:1}
.av-grid .av-name small{display:block;color:var(--muted);font-weight:400}
.av-grid td{min-width:58px;height:34px}
.av-chip{display:inline-block;font-style:normal;font-size:.72rem;font-weight:600;border-radius:5px;padding:1px 6px;margin:1px;white-space:nowrap;text-decoration:none}
.av-chip.trip{background:var(--brand);color:#fff} .av-chip.trip.wait{background:#fff;color:var(--brand);border:1px dashed var(--brand)}
.av-chip.ok{background:#dcf1e4;color:#1f7a4d} .av-chip.off{background:#f8d7d5;color:#a52a1f}
.av-chip.warn{box-shadow:0 0 0 2px #e0a03c} .av-key .av-chip.warn{background:#fff;color:#8a5a00}
a.av-chip:hover{text-decoration:none;filter:brightness(1.1)}

/* v3.7 — ZAWIL shore permits */
.zw-divers{display:grid;gap:8px}
.zw-row{display:grid;grid-template-columns:1.2fr 1fr 1fr 1fr 1.2fr auto;gap:8px;align-items:end;padding:8px;border:1px solid var(--line);border-radius:8px;background:var(--panel)}
.zw-row.known{border-color:#9fd3b2;background:#f3fbf6}
.zw-row label{margin:0}
.zw-on{grid-column:1/-1}
.zw-found{display:block;min-height:1em}
.zw-total{padding:10px 12px;background:var(--brand-soft);border-radius:8px}
.zw-card{display:grid;grid-template-columns:auto 1fr auto;gap:12px;align-items:center;border:1px solid var(--line);border-radius:10px;padding:10px 12px;background:var(--panel);margin-bottom:8px}
.zw-card.urgent{border-color:#d93025;background:#fdeeee;box-shadow:inset 4px 0 0 #d93025}
.zw-when{font-weight:700;font-size:1.05rem;white-space:nowrap}
.zw-left{font-weight:700;white-space:nowrap} .zw-card.urgent .zw-left{color:#b42318}
@media (max-width:760px){.zw-row{grid-template-columns:1fr 1fr}.zw-row .zw-del{justify-self:end}.zw-card{grid-template-columns:1fr}}
.tel{unicode-bidi:isolate;white-space:nowrap}
[dir=rtl] input[type=tel],[dir=rtl] input[name$="phone"],[dir=rtl] input[name$="phone]"],[dir=rtl] input[name="phone"]{direction:ltr;text-align:right}
dl.kv{grid-template-columns:minmax(0,max-content) minmax(8em,1fr)} dl.kv dd{overflow-wrap:break-word}

/* v3.7.3 — tasks as separate cards */
#team .task,#receipts .task{background:var(--panel);border:1px solid #cfd9df;border-inline-start:5px solid var(--brand);border-radius:10px;padding:12px 14px;margin:0 0 12px;box-shadow:0 1px 3px rgba(21,35,45,.07)}
#team .task:last-child,#receipts .task:last-child{border:1px solid #cfd9df;border-inline-start-width:5px}
#team .task-k-purchase{border-inline-start-color:#1d5fa8;background:#f6f9fd}
#team .task-k-bokun{border-inline-start-color:#7a4cc2;background:#f9f6fd}
#team .task-k-ota{border-inline-start-color:#0e8a7a;background:#f4fbf9}
#team .task-k-noshow{border-inline-start-color:#c98a00;background:#fffaf0}
#team .task-k-other{border-inline-start-color:#6b7b86}
#receipts .rc-high{border-inline-start-color:#c98a00} #receipts .rc-warning,#receipts .rc-blocked{border-inline-start-color:#d93025}
#team .task:hover,#receipts .task:hover{box-shadow:0 3px 10px rgba(21,35,45,.12)}
.task-filter{display:flex;gap:6px;flex-wrap:wrap;margin:6px 0 12px}
.task-filter .pill{border-inline-start-width:4px;border-inline-start-style:solid}
.task-filter .task-k-purchase{border-inline-start-color:#1d5fa8}.task-filter .task-k-bokun{border-inline-start-color:#7a4cc2}
.task-filter .task-k-ota{border-inline-start-color:#0e8a7a}.task-filter .task-k-noshow{border-inline-start-color:#c98a00}.task-filter .task-k-other{border-inline-start-color:#6b7b86}
.update-news{max-height:320px;overflow:auto;font-size:.85rem;background:var(--bg);border-radius:8px;padding:10px 12px;text-align:left}
.steps-plain{margin:0;padding-inline-start:20px} .steps-plain li{margin:4px 0}
.no-copy{-webkit-user-select:none;user-select:none}
.zw-find{position:relative}
.zw-results{position:absolute;inset-inline:0;top:100%;z-index:20;background:var(--panel);border:1px solid var(--line);border-radius:8px;box-shadow:0 6px 18px rgba(21,35,45,.15);max-height:320px;overflow:auto;margin-top:4px}
.zw-results button{display:flex;justify-content:space-between;gap:10px;width:100%;text-align:start;background:none;border:0;border-block-end:1px solid var(--line);padding:8px 12px;cursor:pointer;font:inherit}
.zw-results button:hover,.zw-results button:focus{background:var(--brand-soft)}
.zw-results small{color:var(--muted)}

/* v3.9 — marketing: promo codes, consent, embedded reservation page */
.promo-row{display:flex;flex-wrap:wrap;gap:8px;align-items:flex-end;margin-top:12px}
.promo-row label{flex:1 1 180px}
.promo-msg{display:block;flex-basis:100%}
.promo-msg.ok{color:var(--ok,#1a7f4b)}
.promo-msg.bad{color:var(--bad,#b42318)}
.pub-offers{margin-top:12px}
body.public.embedded .pub-top,body.public.embedded .pub-foot{display:none}
body.public.embedded{min-height:0}
body.public.embedded .pub-main{padding-top:8px;flex:none}
.code-box{font-family:ui-monospace,Menlo,Consolas,monospace;font-size:12px;width:100%}
.mk-kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px}
.mk-kpi{background:var(--card,#fff);border:1px solid var(--line,#e3e8ee);border-radius:10px;padding:12px}
.mk-kpi b{display:block;font-size:22px}
.mk-chips{display:flex;flex-wrap:wrap;gap:6px}
.mk-chips label.check{border:1px solid var(--line,#e3e8ee);border-radius:16px;padding:3px 10px;margin:0}
.mk-filters .fields{align-items:end}
.mk-link{font-family:ui-monospace,Menlo,Consolas,monospace;font-size:12.5px}
/* v3.10 — marketing 2 */
.bar{height:5px;background:var(--line,#e3e8ee);border-radius:3px;margin-top:4px;overflow:hidden;min-width:60px}
.bar span{display:block;height:100%;background:var(--brand,#0e7490)}
/* v3.11 — marketing advice */
.mk-summary{font-size:15.5px;line-height:1.7}
.mk-flags li{padding:6px 0;border-bottom:1px solid var(--line,#e3e8ee)}
.mk-flags li:last-child{border-bottom:0}
/* v3.12 — AI assistants */
.ai-wrap{display:grid;grid-template-columns:240px 1fr;gap:16px;align-items:start}
@media (max-width:800px){.ai-wrap{grid-template-columns:1fr}.ai-side{order:2}}
.ai-side li{padding:6px 0;border-bottom:1px solid var(--line,#e3e8ee)}
.ai-side li.on a{font-weight:600}
.ai-thread{display:flex;flex-direction:column;gap:10px;min-height:260px;max-height:62vh;overflow:auto;padding:4px}
.ai-msg{max-width:85%;padding:10px 14px;border-radius:12px;line-height:1.6}
.ai-msg p{margin:0 0 6px}.ai-msg ul{margin:4px 0;padding-inline-start:20px}
.ai-msg.user{align-self:flex-end;background:var(--brand-soft,#e0f2f1)}
.ai-msg.assistant{align-self:flex-start;background:var(--bg,#f4f6f8);border:1px solid var(--line,#e3e8ee)}
.ai-msg.wait{opacity:.7;font-style:italic}.ai-msg.error{border-color:#f3b5ae;background:#fdecea}
.ai-looked{display:block;margin-top:6px}
.ai-ask{display:flex;gap:8px;margin-top:12px}.ai-ask textarea{flex:1}
.ai-hello{display:flex;flex-wrap:wrap;gap:6px;align-items:center}
.ai-days{display:flex;align-items:flex-end;gap:2px;height:90px;border-bottom:1px solid var(--line,#e3e8ee)}
.ai-days span{flex:1;background:var(--brand,#0e7490);border-radius:2px 2px 0 0;min-width:4px}
.wr-text{white-space:normal;margin:8px 0;padding:8px;background:var(--bg,#f4f6f8);border-radius:8px}
.ai-wrap>*{min-width:0}.ai-msg{overflow-wrap:anywhere}
/* v3.13 — marketing overview */
.mk-kpi small{display:block;margin-top:4px}.ok-txt{color:var(--ok,#1a7f4b)}.bad-txt{color:var(--bad,#b42318)}
.mk-todo li{display:flex;justify-content:space-between;align-items:center;padding:8px 0;border-bottom:1px solid var(--line,#e3e8ee)}
.mk-incent{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:16px}
.bar.big{height:10px;position:relative;overflow:visible;margin:8px 0}
.bar.big i{position:absolute;top:-3px;width:2px;height:16px;background:#64748b}
.dot{display:inline-block;width:10px;height:10px;border-radius:50%;background:#cbd5e1}.dot.ok{background:#1a7f4b}.dot.warn{background:#d97706}.dot.bad{background:#b42318}
.mk-review{margin:8px 0}.mk-review span{color:#d97706}
/* v3.13 — assistant action cards */
.ai-action{display:flex;flex-wrap:wrap;gap:8px;align-items:center;justify-content:space-between;margin:8px 0 4px;padding:10px 12px;border:1px dashed var(--brand,#0f766e);border-radius:10px;background:var(--card,#fff)}
.ai-action.done{border-style:solid;border-color:#16a34a}.ai-action.failed{border-style:solid;border-color:#dc2626}.ai-action.cancelled{opacity:.65}
.ai-action > div:first-child{min-width:0;overflow-wrap:anywhere}
/* v3.13 — role home pages and tabbed hubs */
.hub-tabs{display:flex;flex-wrap:wrap;gap:4px;margin:0 0 14px;border-bottom:1px solid var(--line,#e5e7eb);padding-bottom:0}
.hub-tabs a{padding:8px 12px;border-radius:8px 8px 0 0;color:var(--muted,#64748b);text-decoration:none;border:1px solid transparent;border-bottom:none;margin-bottom:-1px;white-space:nowrap}
.hub-tabs a:hover{color:var(--text,#0f172a);background:var(--soft,#f1f5f9)}
.hub-tabs a.on{color:var(--brand,#0f766e);background:var(--card,#fff);border-color:var(--line,#e5e7eb);font-weight:600}
.hub-tabs .nav-count{margin-inline-start:6px}
/* v3.22.0 menu: the second row of tabs (Reports: the reports of the section) */
.hub-tabs.hub-sub{margin:-6px 0 14px;border-bottom:none;gap:6px}
.hub-tabs.hub-sub a{padding:4px 12px;border:1px solid var(--line,#e5e7eb);border-radius:99px;margin:0;font-size:.9em}
.hub-tabs.hub-sub a.on{background:var(--brand-soft,#f1f5f9);border-color:var(--brand,#0f766e);color:var(--brand,#0f766e)}
/* v3.22.0 the WhatsApp inbox: "⋯" opens the other pages of the WhatsApp hub */
.wa-listhead .wa-titlerow{position:relative}.wa-hubmore{position:static}.wa-hubmore>summary{list-style:none;font-size:1.3rem;line-height:1}.wa-hubmore>summary::-webkit-details-marker{display:none}
@media (min-width:561px){.wa-hubmore .tp-menu{top:calc(100% + 4px);inset-inline-start:0;inset-inline-end:auto;min-width:220px}}
/* v3.22.0 the settings page in 4 groups */
.set-group{margin:0 0 22px}.set-group>h2{margin:0 0 10px;font-size:1.05rem;color:var(--muted)}
.home-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:16px}
.home-cards .card{margin:0;min-width:0}.home-cards .card.wide{grid-column:1/-1}
.home-todo .mk-todo{columns:2 280px}
.hub-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:14px}
.hub-cards a.card{display:block;margin:0;text-decoration:none;color:inherit}.hub-cards a.card:hover{border-color:var(--brand,#0f766e)}
.hub-cards a.card h3{margin:0 0 4px}.hub-cards a.card p{margin:0;color:var(--muted,#64748b);font-size:.9em}
.mk-sources li{margin:4px 0;overflow-wrap:anywhere}
.ai-side li a{overflow-wrap:anywhere}
/* v3.14 — permits */
.permit-no{display:inline-flex;align-items:center;gap:4px;background:#eef6fb;border:1px solid #cfe3ee;border-radius:6px;padding:1px 6px;font-size:.9em;white-space:nowrap}
.permit-no.small{font-size:.8em}
.btn-copy{border:0;background:none;cursor:pointer;padding:0 2px;font-size:.95em}
.cal-permit{display:block;font-size:.72rem;color:#0b6e8a}
.dest-pick{border:1px solid var(--line);border-radius:8px;padding:8px 10px;max-height:190px;overflow:auto;display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:2px 10px}
.dest-pick legend{font-size:.85rem;color:var(--muted)}
/* v3.14 — products fold away once set up */
.prod-fold > summary{list-style:none;display:flex;flex-wrap:wrap;gap:10px;align-items:center;cursor:pointer;margin:0 0 8px;padding:10px 14px}
.prod-fold > summary::-webkit-details-marker{display:none}
.prod-fold > summary .pf-ok{width:22px;height:22px;border-radius:50%;background:#16a34a;color:#fff;display:inline-flex;align-items:center;justify-content:center;font-weight:700}
.prod-fold[open] > summary{border-color:var(--brand)}
.prod-tabs{align-items:center}

/* ---- v3.14 staff news */
.news-col{margin:0}
.news-col-h{display:flex;justify-content:space-between;align-items:center;gap:8px;margin:0}
.news-col-a{display:flex;gap:10px;align-items:center;font-size:.9rem;font-weight:500}
.nf-bar{display:flex;border:1px solid var(--line);border-radius:8px;overflow:visible;align-items:stretch;margin:10px 0 6px;background:#fff;flex-wrap:wrap}
.nf-bar input[type=search]{border:0;padding:8px 10px;flex:1;min-width:140px;background:transparent}
.nf-bar select{border:0;border-inline-start:1px solid var(--line);border-radius:0;padding:6px 10px;max-width:46%}
.nf-bar>.btn{margin:4px}
.nf-filter{position:relative;border-inline-start:1px solid var(--line)}
.nf-filter summary{padding:8px 14px;cursor:pointer;white-space:nowrap;list-style:none;position:relative}
.nf-filter summary b{position:absolute;top:-6px;inset-inline-end:2px;background:#d42020;color:#fff;border-radius:50%;font-size:10px;width:16px;height:16px;display:flex;align-items:center;justify-content:center}
.nf-filter-box{position:absolute;z-index:20;inset-inline-end:0;top:100%;background:#fff;border:1px solid var(--line);border-radius:8px;padding:12px;box-shadow:0 6px 24px rgba(0,0,0,.12);display:grid;gap:8px;min-width:240px}
.nf-tabs{display:flex;gap:6px;margin:8px 0 4px;flex-wrap:wrap}
.nf-tabs a{padding:4px 12px;border:1px solid var(--line);border-radius:16px;font-size:.85rem;color:inherit;text-decoration:none}
.nf-tabs a.on{border-color:var(--brand);color:var(--brand);font-weight:600;background:var(--brand-soft)}
.nf-tabs .c{background:#d42020;color:#fff;border-radius:10px;padding:0 6px;font-size:.72rem;margin-inline-start:4px}
.nc{display:grid;grid-template-columns:64px minmax(0,1fr);gap:12px;padding:10px;border-radius:10px;border:2px solid transparent;margin-top:6px;color:inherit;text-decoration:none;background:#fff}
.nc:hover{background:#f7f9fa}
.nc.unread{border-color:#4aa3c0;background:#f7fbfd}
.nc.ack{border-color:#d42020;background:#fff8f8}
.nc .thumb{width:64px;height:64px;border-radius:8px;display:flex;align-items:center;justify-content:center;font-size:28px;color:#fff;overflow:hidden}
.nc .thumb img{width:100%;height:100%;object-fit:cover}
.nc-body{display:block;min-width:0}
.nc .meta{display:flex;justify-content:space-between;gap:8px;font-size:.82rem}
.nc .ch{font-weight:600}
.nc-title{display:block;margin:2px 0;font-size:.95rem;font-weight:600}
.nc-sum{display:-webkit-box;margin:0;font-size:.85rem;color:#3c4b55;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.nc .foot{display:flex;gap:14px;font-size:.8rem;color:var(--muted);margin-top:4px;align-items:center;flex-wrap:wrap}
.pill-act{background:#d42020;color:#fff;border-radius:4px;padding:1px 6px;font-size:.7rem;font-weight:700;margin-inline-end:6px;vertical-align:middle}
.pill-urgent{margin-inline-end:4px}
.ok-text{color:var(--ok)}
.news-feed{max-width:900px}
.nc-wrap{position:relative}.nc-edit{position:absolute;top:10px;inset-inline-end:10px}
.msg-page{background:#fff;border:1px solid var(--line);border-radius:12px}
.msg-head{display:flex;align-items:center;gap:14px;padding:16px 22px;border-bottom:1px solid var(--line);flex-wrap:wrap}
.msg-head .spacer{flex:1}
.msg-av{width:52px;height:52px;border-radius:50%;background:var(--brand);color:#fff;font-weight:700;display:flex;align-items:center;justify-content:center;font-size:19px}
.msg-who .nm{font-size:1.2rem;font-weight:600}
.msg-arr{font-size:22px;padding:0 10px;color:#333;text-decoration:none}
.msg-x{border:1px solid var(--line);border-radius:50%;width:34px;height:34px;display:flex;align-items:center;justify-content:center;color:#333;text-decoration:none}
.msg-grid{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(0,1fr);gap:34px;padding:20px 22px}
@media (max-width:900px){.msg-grid{grid-template-columns:1fr}}
.msg-ch{font-size:1.05rem;font-weight:600}
.msg-title{font-size:1.7rem;margin:8px 0 10px;line-height:1.25}
.msg-tags a{display:inline-block;border:1px solid #333;border-radius:4px;padding:2px 9px;font-size:.78rem;margin:0 6px 6px 0;color:inherit;text-decoration:none}
.ackbar{display:flex;align-items:center;gap:14px;margin:14px 0;padding:12px 14px;background:#fff8f8;border:1px solid #f1c8c8;border-radius:10px;flex-wrap:wrap}
.ackbar.done{background:var(--ok-bg);border-color:#bfe3cc}
.ack-form{display:flex;flex-wrap:wrap;gap:8px 14px;align-items:center}
.ack-form small{flex-basis:100%}
.ack-confirm{display:flex;gap:6px;align-items:flex-start;font-weight:500}
.ackbtn{background:#c0392b;color:#fff;border:0;border-radius:8px;padding:9px 16px;font-weight:600;cursor:pointer}
.ack-done{color:var(--ok);font-weight:600}
.qbtn{margin-inline-start:auto;border:1px solid #333;border-radius:6px;padding:5px 12px;color:inherit;text-decoration:none}
.msg-body{line-height:1.65}
.msg-body h3,.msg-body h4,.msg-body h5{margin:16px 0 6px}
.msg-img{max-width:100%;border-radius:10px;margin:6px 0 12px}
.msg-att{display:inline-flex;gap:10px;align-items:center;border:1px solid var(--line);border-radius:8px;padding:10px 14px;margin-top:10px;color:inherit;text-decoration:none}
.msg-other{margin-top:16px}
.msg-q{margin-top:26px;border-top:1px solid var(--line);padding-top:10px}
.q-item{border:1px solid var(--line);border-radius:8px;padding:10px;margin:8px 0}
.q-ans{margin-top:6px;padding:8px;background:#f4f8fa;border-radius:6px}
.q-form{display:flex;gap:8px;align-items:flex-start;margin-top:8px;flex-wrap:wrap}.q-form textarea{flex:1;min-width:220px}
.msg-manage{margin-top:22px;display:flex;gap:6px;flex-wrap:wrap}
.msg-rel h3{margin-top:0}
.md-tools{display:flex;gap:4px;margin:4px 0}
.md-tools button{border:1px solid var(--line);background:#f4f7f9;border-radius:5px;padding:3px 9px;cursor:pointer;min-width:32px}
.news-form textarea{width:100%;font-family:inherit}
.chk-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:4px 12px;margin:6px 0}
.aud-pick{border:1px solid var(--line);border-radius:8px;padding:10px 14px;margin:12px 0}
.kind-pick{border:1px solid var(--line);border-radius:8px;padding:10px 14px;margin:0;display:flex;flex-wrap:wrap;align-items:center;gap:8px 4px;align-self:start}
.kind-pick legend{font-size:.88rem;font-weight:500;padding:0 4px}
.kind-pick small{flex-basis:100%}
.news-form .grid{align-items:start}
.sched{display:inline-flex;gap:6px;align-items:center}
.ai-row{display:flex;gap:10px;align-items:center;flex-wrap:wrap}
tr.row-warn td{background:#fff8f0}
.news-pub .ackbar{margin:18px 0}
.topnews{position:relative;display:inline-flex;align-items:center;gap:4px;padding:4px 10px;border:1px solid var(--line);border-radius:16px;color:inherit;text-decoration:none;font-size:.88rem;margin-inline-end:6px}
.topnews .count{position:absolute;top:-6px;inset-inline-end:-6px}
.topsearch{display:flex;margin-inline-end:8px}
.topsearch input{border:1px solid var(--line);border-radius:16px;padding:5px 12px;width:220px;font-size:.88rem}
@media (max-width:760px){.topsearch input{width:120px}.topnews span.lbl{display:none}}
.pre-wrap{white-space:pre-wrap;font-family:inherit;background:#f6f8f9;padding:8px;border-radius:6px}
#qr-text{width:100%;margin:6px 0}
.msg-email{margin-top:12px}
mark.ps{background:#ffe58a;padding:0 1px;border-radius:2px}
.doc-fill{margin:8px 0}.doc-filled{background:#fffbe0}.warn-text{color:var(--warn)}.doc-btn{cursor:pointer}
.bulk-bar{display:flex;gap:12px;align-items:center;margin:8px 0;padding:8px 10px;background:#f4f8fa;border-radius:8px}.bulk-pick{margin-inline-end:8px;transform:scale(1.2)}
/* v3.14 home pages: To do + Staff news */
.hm-top{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.1fr);gap:16px;margin-bottom:16px;align-items:start}
.hm-top .card{margin:0}
@media (max-width:980px){.hm-top{grid-template-columns:1fr}}
.hm-h{margin:0}
.dt-sec{margin:12px 0 2px}
.dt-head{display:flex;justify-content:space-between;align-items:center;background:#eef2f5;padding:7px 10px;border-radius:6px;font-weight:600}
.dt-head.all{background:#6b7780;color:#fff}
.dt-row{display:grid;grid-template-columns:18px minmax(0,1fr) 44px auto 22px;align-items:center;gap:8px;padding:7px 10px;border-bottom:1px solid var(--line);color:inherit;text-decoration:none}
.dt-row:hover{background:#f7f9fa}
.dt-row .n{text-align:end;font-weight:600}
.dt-go{color:var(--brand);text-decoration:underline;font-size:.88rem;white-space:nowrap}
.dt-dot{width:14px;height:14px;border:1.5px solid #b8c4cc;border-radius:50%}
.bang{width:18px;height:18px;border-radius:50%;background:#d42020;color:#fff;font-weight:700;font-size:12px;display:flex;align-items:center;justify-content:center}
.dt-foot{display:flex;gap:10px;align-items:center;margin-top:12px;font-size:.78rem;color:var(--muted)}
.btn-ghost{border:1px solid var(--line);background:#f4f7f9;border-radius:6px;padding:3px 10px;font-size:.8rem;color:var(--muted);text-decoration:none}
.page-search{padding:7px 14px;border:1px solid var(--line);border-radius:20px;width:280px;max-width:100%}
/* v3.14.2 file boxes: choose, drag and drop, paste */
.dz{border:1px dashed var(--line);border-radius:10px;padding:8px 10px;background:#fafbfc;max-width:640px}
.dz.dz-armed{border-color:var(--brand);background:var(--brand-soft)}
.dz.dz-over{border-style:solid;border-color:var(--brand);background:var(--brand-soft)}
.dz.dz-got{border-style:solid}
.dz input[type=file]{width:100%}
.dz-bar{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin-top:6px}
.dz-msg{display:block;margin-top:4px}
.consent-bulk{margin-top:14px;padding:12px;border:1px solid var(--line);border-radius:10px;background:#fafbfc}
.update-news h3,.update-news h4{margin:10px 0 4px;font-size:.95rem}.update-news ul{margin:4px 0;padding-inline-start:20px}
/* v3.14.13: the top bar stays on one line on tablets and phones */
.topbar>*{white-space:nowrap;min-width:0}
.topbar .brand{min-width:0;flex-shrink:1}
.topbar .brand-name{overflow:hidden;text-overflow:ellipsis;max-width:220px}
.topbar .who{overflow:hidden;text-overflow:ellipsis;max-width:200px;line-height:1.2}
.topbar .signout button{display:inline-flex;align-items:center;gap:6px}
.topbar .signout svg{display:none}
.viewas-form select{max-width:190px;padding-block:5px}
@media (max-width:1280px){
  .topbar{gap:10px}
  .topbar .brand-name{display:none}
  .topbar .who small{display:none}
  .topbar .who{max-width:150px}
  .topsearch input{width:170px}
  .viewas-form select{max-width:150px}
  .topbar .signout .lbl{display:none}
  .topbar .signout svg{display:block;width:20px;height:20px}
}
@media (max-width:1000px){
  .topbar .who{display:none}
  .topnews span.lbl{display:none}
  .topsearch input{width:140px}
  .viewas-form select{max-width:120px}
}
@media (max-width:560px){
  .topbar{gap:6px;padding:0 8px}
  .topsearch input{width:96px}
  .viewas-form select{max-width:90px}
  .brand-logo{max-width:90px}
}
/* v3.15: DiveHub date box (dd/mm/yyyy, weeks from Sunday) */
.dh-date{position:relative;display:flex;align-items:stretch;width:100%}
.dh-date .dh-date-text{flex:1;min-width:0;padding-inline-end:38px}
.dh-date-btn{position:absolute;inset-inline-end:4px;top:50%;transform:translateY(-50%);background:none;border:0;padding:6px;cursor:pointer;color:var(--muted)}
.dh-date-btn svg{width:18px;height:18px}
.dh-cal{position:absolute;top:calc(100% + 4px);inset-inline-start:0;z-index:60;background:#fff;border:1px solid var(--line);border-radius:12px;box-shadow:0 12px 32px rgba(0,0,0,.14);padding:10px;width:282px;direction:inherit}
.dh-cal-head{display:flex;align-items:center;gap:2px;margin-bottom:6px}.dh-cal-head b{flex:1;text-align:center;font-size:.92rem}
.dh-cal-head button,.dh-cal-foot button{background:none;border:0;padding:6px 8px;border-radius:8px;cursor:pointer;color:var(--ink);font:inherit}
.dh-cal-head button:hover,.dh-cal-foot button:hover{background:var(--bg)}
.dh-cal-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:2px}
.dh-cal-grid .dh-dow{font-size:.7rem;color:var(--muted);text-align:center;padding:4px 0}
.dh-cal-grid button{border:0;background:none;padding:7px 0;border-radius:8px;cursor:pointer;font:inherit;font-size:.86rem;color:var(--ink)}
.dh-cal-grid button:hover{background:var(--brand-soft)}.dh-cal-grid button.today{outline:1px solid var(--brand)}
.dh-cal-grid button.on{background:var(--brand);color:#fff}.dh-cal-grid button:disabled{color:#c3cbd2;cursor:default;background:none}
.dh-cal-foot{display:flex;justify-content:space-between;margin-top:6px;font-size:.85rem}
/* v3.15: country search box */
.dh-country{position:relative;display:block;width:100%}
.dh-country-list{position:absolute;top:calc(100% + 2px);inset-inline:0;z-index:60;background:#fff;border:1px solid var(--line);border-radius:10px;box-shadow:0 10px 26px rgba(0,0,0,.12);max-height:280px;overflow:auto;padding:4px}
.dh-country-list button{display:block;width:100%;text-align:start;background:none;border:0;padding:8px 10px;border-radius:7px;font:inherit;cursor:pointer;color:var(--ink)}
.dh-country-list button.on,.dh-country-list button:hover{background:var(--brand-soft)}
.dh-country-sec{font-size:.72rem;color:var(--muted);padding:6px 10px;text-transform:uppercase;letter-spacing:.04em}
.dh-country-hint{display:block;color:var(--ok,#2f7d4f);font-size:.75rem;margin-top:3px}
/* v3.15: one Guests card, grouped by booking */
.gx-top{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap}
.gx-top h2{margin:0}
.gx-bk{border:1px solid var(--line);border-radius:12px;margin-top:12px;overflow:hidden}
.gx-bk-h{background:var(--bg);padding:9px 12px;display:flex;flex-wrap:wrap;gap:6px 10px;align-items:center;font-size:.9rem}
.gx-bk-h .gx-link{margin-inline-start:auto;display:inline-flex;gap:6px}
.gx-g{border-top:1px solid #eef1f4;padding:10px 12px}
.gx-row{display:flex;gap:10px;align-items:flex-start}
.gx-who{flex:1;min-width:0}
.gx-ph{color:var(--muted);font-style:italic;font-weight:600}
.gx-sub{font-size:.82rem;margin-top:2px}
.gx-st{font-size:.85rem;margin-top:4px}
.gx-act{display:flex;gap:6px;align-items:flex-start}
.gx-more{position:relative}.gx-more summary{list-style:none;cursor:pointer}.gx-more summary::-webkit-details-marker{display:none}
.gx-menu{position:absolute;inset-inline-end:0;top:calc(100% + 4px);background:#fff;border:1px solid var(--line);border-radius:10px;box-shadow:0 10px 24px rgba(0,0,0,.12);padding:6px;z-index:20;min-width:190px;display:grid;gap:2px}
.gx-menu form{margin:0}.gx-menu .link{display:block;width:100%;text-align:start;padding:7px 9px;border-radius:7px}.gx-menu .link:hover{background:var(--bg)}
.gx-edit{margin-top:10px;background:#fbfcfd;border:1px solid var(--line);border-radius:10px;padding:12px}
.gx-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:10px;margin-bottom:10px}
.gx-edit .gd-missing{border-color:#e7b3a6;background:#fff6f3}
@media (max-width:560px){.gx-grid{grid-template-columns:1fr 1fr}.gx-bk-h .gx-link{margin-inline-start:0}}
/* v3.15 guest-details link: one guest at a time */
.gl-progress{display:flex;align-items:center;gap:12px;margin:10px 0 4px}
.gl-bar{flex:1;height:10px;border-radius:6px;background:var(--line);overflow:hidden}
.gl-bar span{display:block;height:100%;background:var(--ok);border-radius:6px;transition:width .3s}
.gl-progress strong{font-size:.9rem;white-space:nowrap}
.gl-chips{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px}
.gl-chip{padding:5px 11px;border:1px solid var(--line);border-radius:20px;font-size:.85rem;color:var(--ink);text-decoration:none;background:var(--panel)}
.gl-chip.ok{border-color:var(--ok);color:var(--ok)}
.gl-chip.cur{background:var(--brand);border-color:var(--brand);color:#fff}
.gl-h{font-size:1rem;margin:16px 0 8px}
.gl-form .doc-fill{margin:4px 0 6px;padding:12px;border:1px dashed var(--brand);border-radius:12px;background:var(--brand-soft)}
.gl-form .doc-fill .doc-btn{width:100%;min-height:48px;font-size:1rem;justify-content:center}
.gl-seg{display:flex;gap:8px}
.gl-seg label{flex:1;flex-direction:row !important;align-items:center;justify-content:center;gap:6px;border:1px solid var(--line);border-radius:10px;padding:10px;font-weight:500;cursor:pointer}
.gl-seg label:has(input:checked){border-color:var(--brand);background:var(--brand-soft)}
.gl-idkind small{color:var(--muted);font-weight:400}
.gl-opt{margin-top:16px;border-top:1px dashed var(--line);padding-top:12px}
.gl-opt summary{cursor:pointer;font-weight:600}
.gl-opt summary small{font-weight:400;color:var(--muted);margin-inline-start:6px}
.gl-opt .pub-fields{margin-top:12px}
.gl-agree{margin-top:16px}
.gl-skip{text-align:center;margin:0}
.pub-fields div.gl-field{display:flex;flex-direction:column;gap:4px;font-size:.9rem;font-weight:500}
/* v3.15 duplicate customers */
.dup-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:10px;margin:8px 0}
.dup-card{display:flex;flex-direction:column;gap:3px;border:1px solid var(--line);border-radius:10px;padding:10px 12px;cursor:pointer}
.dup-card:has(input[type=radio]:checked){border-color:var(--brand);background:var(--brand-soft)}
.dup-pick{font-weight:600;display:flex;gap:6px;align-items:center}
/* v3.15 course registration */
.cr-h{display:flex;align-items:center;gap:8px;margin:0 0 12px;font-size:1.1rem}
.cr-h small{font-weight:400}
.cr-step{display:inline-flex;width:26px;height:26px;border-radius:50%;background:var(--brand);color:#fff;align-items:center;justify-content:center;font-size:.85rem}
.st-row{border:1px solid var(--line);border-radius:10px;padding:10px 12px;margin-bottom:10px}
.st-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:6px}
.st-new{margin-top:8px}
.st-new .doc-fill{margin-bottom:8px}
.st-new-btn{margin-top:6px}
.prog-btns{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:12px}
.prog-btn{border:1px solid var(--line);background:var(--panel);border-radius:20px;padding:8px 14px;font:inherit;cursor:pointer;color:var(--ink)}
.prog-btn.on{background:var(--brand);border-color:var(--brand);color:#fff}
.cr-total{margin:10px 0;padding:10px 12px;border-radius:10px;background:var(--brand-soft);display:flex;gap:10px;flex-wrap:wrap;align-items:baseline}
.cr-total:has(#cr-sum:empty){display:none}
.cr-comp summary{cursor:pointer;color:var(--muted)}
/* v3.15 roles matrix and people */
.rm-table th,.rm-table td{text-align:center;vertical-align:middle;white-space:nowrap}
.rm-table th.rm-area{text-align:start;white-space:normal;min-width:150px}
.rm-table th.rm-sec{text-align:start;background:var(--bg)}
.rm-lv{min-width:96px;padding:4px 6px}
.rm-lv.rm-manage{background:#e5f4ea}.rm-lv.rm-work{background:#eef5fb}.rm-lv.rm-view{background:#f6f7f9}.rm-lv.rm-custom{background:#fff6e0}.rm-lv.rm-own{background:#eef5fb}
.who-row{padding:8px 0;border-bottom:1px solid var(--line)}
.pp-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:12px}
.pp-card{border:1px solid var(--line);border-radius:12px;padding:14px;background:var(--panel);display:flex;flex-direction:column;gap:8px}
.pp-card.off{opacity:.6}
.pp-head{display:flex;justify-content:space-between;gap:8px;align-items:flex-start}
.pp-tags{display:flex;flex-wrap:wrap;gap:4px}
.pp-tags .tag{font-size:.75rem}
.pp-sec{border-top:1px dashed var(--line);padding-top:8px;font-size:.88rem}
.pp-actions{display:flex;flex-wrap:wrap;gap:6px}
.pp-actions form{margin:0}
.tg-table td{text-align:center;padding:4px}
.tg-table .tg-in{width:58px;padding:4px;text-align:center}
.tg-table small{display:block;font-size:.72rem}
.ok-text{color:var(--ok)}
/* v3.15 photo library and ad maker */
.ph-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:12px}
.ph-card{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:8px;display:flex;flex-direction:column;gap:6px}
.ph-img{position:relative;aspect-ratio:4/3;background:var(--bg);border-radius:8px;overflow:hidden;display:flex;align-items:center;justify-content:center}
.ph-img img{width:100%;height:100%;object-fit:cover}
.ph-state{position:absolute;top:6px;inset-inline-start:6px}
.ph-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ph-form{display:flex;flex-direction:column;gap:5px}
.ph-form input,.ph-form select{padding:5px 8px;font-size:.85rem}
.amk-wrap{display:grid;grid-template-columns:minmax(280px,380px) 1fr;gap:14px;align-items:start}
@media (max-width:900px){.amk-wrap{grid-template-columns:1fr}}
.amk-canvas-box{background:repeating-conic-gradient(#eee 0 25%,#fff 0 50%) 0 0/20px 20px;border-radius:12px;padding:10px;text-align:center}
.amk-canvas-box canvas{max-width:100%;max-height:70vh;box-shadow:0 2px 12px rgba(0,0,0,.15)}
.amk-pick{display:grid;grid-template-columns:repeat(auto-fill,minmax(70px,1fr));gap:6px;max-height:220px;overflow:auto}
.amk-pick button{border:2px solid transparent;padding:0;border-radius:6px;overflow:hidden;cursor:pointer;aspect-ratio:1;background:var(--bg)}
.amk-pick button.on{border-color:var(--brand)}
.amk-pick img{width:100%;height:100%;object-fit:cover}
.amk-recent{display:grid;grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:8px}
.amk-recent a img{width:100%;border-radius:6px;display:block}
.badge-wrap{white-space:normal;display:inline-block;margin-top:4px;line-height:1.35;max-width:100%}
/* v3.16 who is online */
.toponline{display:inline-flex;align-items:center;gap:5px;padding:5px 10px;border:1px solid var(--line);border-radius:20px;color:var(--ink);text-decoration:none;font-size:.85rem;white-space:nowrap}
.toponline .dot,.pp-dot{width:9px;height:9px;border-radius:50%;background:var(--ok);display:inline-block}
.pp-dot.off{background:var(--line)}
@media (max-width:1000px){.toponline .lbl{display:none}}
.pp-seen{font-size:.82rem}
.pp-today td,.pp-today th{white-space:nowrap}

/* v3.16 💡 suggestions */
.topidea{background:none;border:0;font-size:18px;cursor:pointer;padding:4px 6px;border-radius:8px;line-height:1}
.topidea:hover{background:rgba(0,0,0,.06)}
.idea-dlg{max-width:520px;width:calc(100% - 32px);border:0;border-radius:14px;padding:18px 20px;box-shadow:0 10px 40px rgba(0,0,0,.25)}
.idea-dlg h2{margin:0 0 6px}
.idea-dlg textarea{width:100%}
.idea-dlg .idea-shot{display:block;margin-top:8px}
.idea-dlg .idea-q label{display:block;margin-top:6px}
/* v3.16 assistant: files and voice */
.ai-ask .ai-row{display:flex;gap:8px;align-items:flex-end}
.ai-ask .ai-row textarea{flex:1}
.ai-tool{background:none;border:1px solid var(--line,#ddd);border-radius:10px;font-size:18px;padding:6px 8px;cursor:pointer;line-height:1}
.ai-tool.on{background:#fde2e2;border-color:#e57373;animation:aipulse 1s infinite}
@keyframes aipulse{50%{opacity:.6}}
.ai-files{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:6px}
.ai-chip{background:#eef3f8;border-radius:12px;padding:3px 8px;font-size:13px}
.ai-chip button{background:none;border:0;cursor:pointer;font-size:14px;padding:0 2px}
.ai-opts{display:flex;gap:12px;align-items:center;flex-wrap:wrap;margin-top:6px}
.ai-ask{flex-direction:column;align-items:stretch}
/* v3.16 end-of-day summary */
.day-head{display:flex;gap:16px;align-items:center;flex-wrap:wrap}
.day-total{display:flex;flex-direction:column;align-items:center;min-width:60px}.day-total b{font-size:26px;line-height:1}
.day-usual{flex:1;min-width:160px}
.day-trend{display:flex;gap:4px;align-items:flex-end}
.day-trend .dt-col{display:flex;flex-direction:column;align-items:center;justify-content:flex-end;min-width:20px;height:58px}
.day-trend .dt-col span{width:12px;background:var(--brand,#0a7);border-radius:2px;opacity:.8}
.day-trend .dt-col.off span{background:#bbb}.day-trend .dt-col.today span{opacity:.35;outline:1px dashed var(--brand,#0a7)}
.day-trend .dt-n{font-size:.68rem;line-height:1;color:var(--muted,#667);min-height:.8rem}.day-trend .dt-d{font-size:.66rem;line-height:1.3;color:var(--muted,#667)}
.day-trend .dt-col.today .dt-d{font-weight:700;color:inherit}
.day-trend .dt-col span.cut{border-radius:0 0 2px 2px;-webkit-mask:linear-gradient(to bottom,transparent 0 2px,#000 2px 5px,transparent 5px 7px,#000 7px);mask:linear-gradient(to bottom,transparent 0 2px,#000 2px 5px,transparent 5px 7px,#000 7px)}
.day-trend .dt-col:has(span.cut) .dt-n{font-weight:700;color:inherit}
.day-chips{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}
.day-chip{background:#f1f5f9;border-radius:12px;padding:3px 9px;font-size:13px}.day-chip.zero{opacity:.55}.day-chip.met{background:#dcfce7}
.day-open{margin-top:6px}
.ok-text{color:#15803d}
.ph-img{position:relative}.ph-ai{position:absolute;top:6px;left:6px}
.ai-pick{display:flex;flex-wrap:wrap;gap:6px}
.ai-thumb{border:2px solid transparent;border-radius:8px;padding:0;background:none;cursor:pointer;width:88px;height:88px;overflow:hidden;display:block}
.ai-thumb img{width:100%;height:100%;object-fit:cover}.ai-thumb.on{border-color:var(--brand,#0a7)}
.ph-card{position:relative}.ph-tick{position:absolute;top:6px;right:6px;z-index:2;background:#fff;border-radius:6px;padding:2px 4px}.ph-cons{display:block}.ph-bulk .inline-form{margin-top:8px}
/* v3.16.1 logo catalog */
.logo-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:12px;margin-bottom:12px}
.logo-card.off{opacity:.55}
.logo-box{height:120px;display:flex;align-items:center;justify-content:center;border-radius:10px;margin-bottom:8px;
  background:repeating-conic-gradient(#eee 0 25%,#fff 0 50%) 0 0/16px 16px}
.logo-box.dark{background:#16323f}
.logo-box img{max-width:90%;max-height:100px}
/* v3.19 logos and pictures with a transparent background: a grey checkered background so a white one shows too; ◐ switches a logo's background */
.logo-box{position:relative;background:repeating-conic-gradient(#8f99a1 0 25%,#b4bcc3 0 50%) 0 0/16px 16px}
.logo-box.light{background:#fff;box-shadow:inset 0 0 0 1px var(--line)}
.logo-bg-btn{position:absolute;bottom:6px;inset-inline-end:6px;border:0;border-radius:6px;background:rgba(255,255,255,.85);color:#16323f;padding:2px 8px;cursor:pointer;font-size:.95rem;line-height:1.4}
.ph-img.ph-alpha{background:repeating-conic-gradient(#8f99a1 0 25%,#b4bcc3 0 50%) 0 0/16px 16px}
.ph-img.ph-alpha img{object-fit:contain}
.ct-line{display:block;color:var(--muted);margin-top:4px}.ct-line.ct-recent{color:#a16207}.ct-line.ct-many{color:#b91c1c}
.wa-acts{display:flex;gap:6px;flex-wrap:wrap;align-items:center}.wa-acts form{margin:0;display:inline}
/* v3.16.3 the calmer trips list */
.pill{display:inline-block;border:1px solid var(--line);border-radius:999px;padding:5px 14px;font-size:.88rem;background:var(--panel);color:var(--ink)}
.pill.on{background:var(--brand);border-color:var(--brand);color:#fff}
.pill:hover{text-decoration:none}
.tl-filters{margin:0 0 12px}.tl-filters>summary{cursor:pointer;color:var(--muted);font-size:.9rem}.tl-filters form{margin-top:8px}
.tl-list{padding:0;overflow:hidden}
.tl-day{padding:8px 16px;background:var(--bg);font-size:.85rem;font-weight:600;color:var(--muted);border-block-end:1px solid var(--line)}
.tl-row{display:grid;grid-template-columns:64px 1fr 120px minmax(80px,150px) 70px;gap:12px;align-items:center;padding:12px 16px;border-block-end:1px solid var(--line);color:var(--ink)}
.tl-row:hover{background:var(--brand-soft);text-decoration:none}
.tl-name{display:flex;flex-direction:column;min-width:0}.tl-name small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.tl-cap small{display:block}.tl-cap>i{display:block;height:5px;background:var(--line);border-radius:4px;overflow:hidden;margin-top:3px}.tl-cap>i>i{display:block;height:100%;background:var(--brand)}
.tl-end{text-align:end}
.tl-dot{display:inline-block;width:12px;height:12px;border-radius:50%;background:#c3ccd2}
.tl-ready .tl-dot{background:#2e9d62}.tl-todo .tl-dot{background:#e09b18}
.tl-empty{color:var(--muted)}
.tl-issues{grid-column:2 / -1;margin-top:-6px;color:var(--warn);font-size:.82rem}
@media (max-width:700px){.tl-row{grid-template-columns:52px 1fr 60px 22px}.tl-crew{display:none}.tl-issues{grid-column:2 / -1}}
.gp-noar{color:#b3261e}
/* v3.16.3 market sweep */
.mk-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px;align-items:start;margin-bottom:14px}
@media (max-width:900px){.mk-grid{grid-template-columns:1fr}}
.mk-thumb{width:64px;height:64px;object-fit:cover;border-radius:6px;display:block}
.mk-summary{font-size:1.02rem}
.mk-cols{display:grid;grid-template-columns:1fr 1fr;gap:18px}@media (max-width:800px){.mk-cols{grid-template-columns:1fr}}
.mk-cols li,.mk-report li{margin-bottom:6px}
.mk-ideas{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:12px}
.mk-idea{border:1px solid var(--line);border-radius:10px;padding:12px}
.mk-edit form{min-width:240px}
/* v3.17 camera or gallery */
.doc-pickers{display:flex;gap:8px;flex-wrap:wrap}.doc-pickers .doc-btn{flex:1 1 180px;justify-content:center}
.gl-form .doc-fill .doc-pickers .doc-btn{width:auto}
/* v3.17 back button on inner pages */
.back-btn{display:inline-flex;align-items:center;gap:4px;margin:0 0 10px;padding:6px 12px;border:1px solid var(--line,#dde5ea);border-radius:999px;background:var(--card,#fff);color:inherit;text-decoration:none;font-size:.9rem}
.back-btn:hover{border-color:var(--brand)}
@media print{.back-btn{display:none}}
/* v3.17 courses on the calendar */
.cal-course{display:flex;flex-direction:column;gap:1px;margin:0 0 4px;padding:4px 6px;border-radius:6px;background:#efe9fb;border-inline-start:3px solid #7b5cc4;color:inherit;text-decoration:none;font-size:.78rem;line-height:1.25}
.cal-course b{font-size:.8rem}.cal-course.attn{border-inline-start-color:var(--warn,#c80)}
/* v3.17 permit changes */
.zw-change{border-inline-start:4px solid var(--warn,#c80)}
.zw-diff li{padding:3px 0}.zw-minus{color:var(--bad,#b33)}.zw-plus{color:var(--ok,#18794e)}
.zw-off{display:block;padding:6px 0;border-bottom:1px solid var(--line,#eee)}
.zw-versions li{padding:6px 0;border-bottom:1px solid var(--line,#eee)}
/* v3.17 beach & pool tickets */
.pub-ticket{background:#fff;border:1.5px solid #15232d;border-radius:12px;overflow:hidden;margin:0 0 14px;page-break-inside:avoid;break-inside:avoid}
.pub-ticket.off{opacity:.55}
.pt-top{display:flex;justify-content:space-between;gap:8px;background:var(--brand,#0b6e8a);color:#fff;padding:8px 14px}
.pt-body{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:10px 14px;flex-wrap:wrap}
.pt-body dl{display:grid;grid-template-columns:auto 1fr;gap:2px 12px;margin:0}.pt-body dt{color:var(--muted,#667)}.pt-body dd{margin:0;font-weight:600}
.pt-qr svg{width:150px;height:150px}
.pt-terms{padding:0 14px 10px;font-size:.78rem;color:var(--muted,#667);line-height:1.45}
.ticket-qr svg{width:180px;height:180px}.ticket-qr-card{text-align:center}
.gate{background:#fff;border-radius:14px;padding:16px;border:3px solid #18794e}.gate.no{border-color:#b33}
.gate-state{font-size:1.25rem;font-weight:700;padding:10px;border-radius:10px;background:#e6f4ec;color:#18794e;margin-bottom:8px}
.gate.no .gate-state{background:#fbe9e9;color:#b33}
.gate-form .btn.big,.btn.big{font-size:1.1rem;min-height:52px}
.venue-menu{display:flex;flex-wrap:wrap;gap:6px;align-items:center;margin:0 0 12px}.venue-menu b{margin-inline-end:auto}
.venue-scan video{width:100%;max-height:60vh;border-radius:10px;background:#000}
.vp-row{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;padding:8px 0;border-bottom:1px solid var(--line,#eee)}
@media print{.no-print,.pub-top,.pub-foot,.pub-lang{display:none!important}.pub-ticket{border-width:1px}}
.warn-row td{background:#fff6e0}
/* v3.17 search while typing */
.topsearch{position:relative}
.ls-panel{position:absolute;top:calc(100% + 6px);inset-inline-start:0;z-index:60;width:min(1100px,94vw);max-height:75vh;overflow:auto;background:var(--card,#fff);border:1px solid var(--line,#dde5ea);border-radius:12px;box-shadow:0 12px 32px rgba(0,0,0,.18);padding:10px}
.ls-tabs{display:flex;flex-wrap:wrap;gap:6px;padding-bottom:8px;border-bottom:1px solid var(--line,#eee);margin-bottom:8px}
.ls-eye{border:1px solid var(--line,#dde5ea);background:transparent;border-radius:999px;padding:3px 10px;font-size:.8rem;cursor:pointer;color:inherit}
.ls-eye.off{opacity:.5;text-decoration:line-through}.ls-eye b{margin-inline-start:2px}
.ls-all{margin-inline-start:auto;font-size:.85rem;align-self:center}
.ls-cols{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:10px}
.ls-head{font-weight:700;font-size:.82rem;border-bottom:2px solid var(--brand,#0b6e8a);padding-bottom:3px;margin-bottom:4px}
.ls-row{padding:4px 2px;border-bottom:1px solid var(--line,#f0f0f0);font-size:.88rem;line-height:1.3}
.ls-row small{display:block;color:var(--muted,#667);font-size:.76rem}
.ls-item{color:inherit;text-decoration:none;font-weight:500}a.ls-item:hover,a.ls-item:focus{color:var(--brand,#0b6e8a);text-decoration:underline;outline:none}
.ls-row.locked .ls-item{text-decoration:line-through;color:var(--muted,#889)}
.ls-acts{float:inline-end;display:inline-flex;gap:2px}.ls-act{border:0;background:none;cursor:pointer;text-decoration:none;font-size:.9rem;padding:0 2px}
.ls-none{margin:4px;color:var(--muted,#667)}
.search-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:12px}
.search-res li.locked b{text-decoration:line-through;color:var(--muted,#889)}.sr-act{margin-inline-start:6px;text-decoration:none}
.guide-doc h2{margin-top:18px}.guide-doc table{font-size:.85rem}
@media (max-width:700px){.ls-panel{position:fixed;top:56px;inset-inline:8px;width:auto;max-height:80vh}.ls-cols{grid-template-columns:1fr}}
.ls-row{overflow-wrap:anywhere}
.ls-cols>*{min-width:0}.ls-row small{overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;unicode-bidi:plaintext}
/* v3.18 payment links */
.paylinks{margin-top:14px;border-top:1px solid var(--line, #e3e3e3);padding-top:10px}
.paylinks h3{margin:0 0 8px;font-size:1rem}
.paylink{padding:8px 10px;border:1px solid var(--line, #e3e3e3);border-radius:8px;margin-bottom:8px}
.paylink-new{border-color:var(--ok, #2e7d32);box-shadow:0 0 0 2px rgba(46,125,50,.15)}
.paylink-send{margin-top:6px;flex-wrap:wrap;align-items:center}
.paylink-url{flex:1 1 220px;min-width:0;font-size:.85rem}
.paylink-form fieldset.plain{border:0;padding:0;margin:0}
.paylink-form fieldset.plain legend{font-weight:600;padding:0;margin-bottom:4px}
/* v3.22.1 pay — one link for students registered together: "Whole group, one bill" and the group link's students */
.paylink-form .pl-group{display:none;margin:6px 0 0;padding:8px 10px;border:1px dashed var(--line, #e3e3e3);border-radius:8px}
.paylink-form:has(input[name=who][value=group]:checked) .pl-group,.paylink-form.is-group .pl-group{display:block}
.paylink-form:has(input[name=who][value=group]:checked) .pl-amount,.paylink-form.is-group .pl-amount{display:none}
.paylink-form .pl-group label.check{overflow-wrap:anywhere}
.paylink-group .pl-lines{margin:6px 0;padding-inline-start:0}
.paylink-group .pl-lines li{padding:2px 0;overflow-wrap:anywhere}
.paylink-group .pl-lines li.pl-me{font-weight:500}
.paylink-group .pl-group-meta>br:first-child{display:none}
.pub-lines{margin:0;padding:0;list-style:none}.pub-lines li{padding:2px 0;overflow-wrap:anywhere}
/* end v3.22.1 pay */
/* v3.18 marketing incentives */
.inc-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(460px,100%),1fr));gap:16px;margin-bottom:16px}
.inc-card{margin:0;min-width:0}
.inc-card h3,#inc-people h3{margin:0 0 6px;font-size:1.05rem;display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.inc-seg{display:inline-flex;border:1px solid var(--line);border-radius:8px;overflow:hidden;font-size:.82rem;font-weight:500}
.inc-seg label{margin:0;cursor:pointer}
.inc-seg input{position:absolute;opacity:0;pointer-events:none}
.inc-seg span{display:block;padding:4px 10px}
.inc-seg input:checked+span{background:var(--brand);color:#fff}
.inc-seg input:focus-visible+span{outline:2px solid var(--brand);outline-offset:-2px}
.inc-from{font-size:.82rem;font-weight:400;display:inline-flex;align-items:center;gap:6px;margin:0}
.inc-from input{padding:3px 6px}
.inc-lv{display:flex;align-items:center;column-gap:6px;row-gap:2px;margin:6px 0;font-size:.87rem;flex-wrap:wrap}
.inc-lv .inc-a,.inc-lv .inc-b{white-space:nowrap;display:inline-flex;align-items:center;gap:5px}
.inc-lv input{width:50px;padding:3px 4px;text-align:center;font-weight:600}
.inc-lv.hit{background:var(--ok-bg);border-radius:8px;padding:4px 8px;margin:6px -8px}
.inc-x{margin-inline-start:auto;background:none;border:0;color:var(--muted);cursor:pointer;font-size:1rem;padding:2px 6px}
.inc-x:hover{color:var(--bad)}
.inc-bar{height:10px;background:var(--line);border-radius:6px;position:relative;margin:16px 0 6px}
.inc-bar i{position:absolute;inset-block:0;inset-inline-start:0;background:var(--brand);border-radius:6px}
.inc-bar b{position:absolute;top:-3px;width:2px;height:16px;background:var(--muted)}
.inc-ticks{position:relative;height:18px;font-size:.72rem;color:var(--muted)}
.inc-ticks span{position:absolute;transform:translateX(-50%);white-space:nowrap}
[dir=rtl] .inc-ticks span{transform:translateX(50%)}
.inc-ticks span.now{top:18px;color:var(--brand);font-weight:600}
.inc-ticks span.at-start{transform:none}
.inc-ticks span.at-end{transform:translateX(-100%)}
[dir=rtl] .inc-ticks span.at-end{transform:translateX(100%)}
.inc-ticks:has(.now){height:36px}
.inc-ex{background:var(--bg);border-radius:8px;padding:10px 12px;font-size:.88rem;margin-top:8px;line-height:1.55}
.inc-counts{margin-top:10px;font-size:.88rem}
.inc-counts select{padding:4px 8px;font-size:.86rem;width:auto;max-width:100%;display:inline-block}
.inc-counts-help{display:block;font-size:.82rem;margin-top:3px}
.inc-foot{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-top:10px;flex-wrap:wrap}
.inc-foot details{flex:1 1 100%}
.inc-total{display:inline-block;border-radius:999px;padding:2px 10px;font-weight:600;font-size:.82rem}
.inc-total.ok{background:var(--ok-bg);color:var(--ok)}
.inc-total.bad{background:var(--bad-bg);color:var(--bad)}
.inc-off{padding:6px 0;border-bottom:1px solid var(--line)}
/* v3.18 our Instagram */
.grid-2{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(420px,100%),1fr));gap:16px;margin-bottom:16px}
.grid-2>.card{margin:0;min-width:0}
.ig-report h3{font-size:1rem;margin:14px 0 6px}
.ig-idea{border:1px solid var(--line);border-radius:8px;padding:8px 10px;margin:8px 0}
.ig-idea blockquote{margin:6px 0;padding:6px 10px;background:var(--bg);border-inline-start:3px solid var(--brand);border-radius:4px;white-space:normal}
.pay-fields .pay-link{grid-column:1/-1;margin:0}
/* v3.19 customer segments (redesign): group tiles, chips, filters, sortable list; rows become cards on a phone */
.sg-sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.sg-tiles{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:10px;margin-bottom:12px}
.sg-tile{position:relative;background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);border-block-start:3px solid var(--mute-bg);min-width:0}
.sg-tile.t-ok{border-block-start-color:var(--ok)} .sg-tile.t-info{border-block-start-color:var(--info)} .sg-tile.t-warn{border-block-start-color:#e0a526}
.sg-tile.t-bad{border-block-start-color:var(--bad)} .sg-tile.all{border-block-start-color:var(--brand)}
.sg-tile-main{display:grid;gap:2px;padding:10px 12px 12px;color:var(--ink);height:100%;padding-inline-end:38px}
.sg-tile.all .sg-tile-main{padding-inline-end:12px}
.sg-tile-main:hover{text-decoration:none}
.sg-tile:hover{border-color:var(--brand)}
.sg-tile .t-name{font-weight:600;font-size:.92rem}
.sg-tile .t-n{font-size:1.55rem;font-weight:600;line-height:1.2}
.sg-tile .t-meta{font-size:.8rem;color:var(--ink)}
.sg-tile .t-what{font-size:.76rem;color:var(--muted);line-height:1.3;margin-top:2px}
.sg-tile.zero .t-n{color:var(--muted)}
.sg-tile.on{background:var(--brand-soft);border-color:var(--brand);box-shadow:inset 0 0 0 1px var(--brand)}
.sg-tile.on .t-name{color:var(--brand)}
.sg-tile-add{position:absolute;inset-block-start:8px;inset-inline-end:8px;width:26px;height:26px;border-radius:7px;border:1px solid var(--line);
  display:grid;place-items:center;background:var(--panel);color:var(--muted);font-weight:700;line-height:1}
.sg-tile-add:hover{text-decoration:none;border-color:var(--brand);color:var(--brand)}
.sg-tile.on .sg-tile-add{background:var(--brand);border-color:var(--brand);color:#fff}
.sg-chips{display:flex;flex-wrap:wrap;gap:6px;align-items:center;margin-bottom:14px}
.sg-chip{display:inline-flex;align-items:center;gap:2px;border:1px solid var(--line);border-radius:99px;background:var(--panel);font-size:.86rem;color:var(--ink)}
.sg-chip>a,a.sg-chip{padding:5px 12px;color:inherit}
a.sg-chip:hover,.sg-chip>a:hover{text-decoration:none}
.sg-chip:hover{border-color:var(--brand)}
.sg-chip.ready{border-style:dashed}
.sg-chip.on{background:var(--brand);border-color:var(--brand);color:#fff;border-style:solid}
.sg-chip form{margin:0;display:inline}
.sg-x{background:none;border:0;color:inherit;opacity:.6;cursor:pointer;font-size:1rem;line-height:1;padding:4px 10px 4px 2px}
[dir=rtl] .sg-x{padding:4px 2px 4px 10px}
.sg-x:hover{opacity:1;color:var(--bad)} .sg-chip.on .sg-x:hover{color:#fff}
.sg-filters{display:grid;gap:12px}
.sg-search input{font-size:1rem;padding:10px 12px}
.sg-main{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;align-items:end}
.sg-last{display:grid;gap:5px;font-size:.88rem;font-weight:500}
.sg-pair{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,1fr);gap:6px}
.sg-more>summary{cursor:pointer;color:var(--brand);font-weight:600}
.sg-more[open]>summary{margin-bottom:10px}
.sg-fchips{display:flex;flex-wrap:wrap;gap:6px;border-block-start:1px solid var(--line);padding-top:10px}
.sg-fchip{display:inline-flex;gap:6px;align-items:center;background:var(--brand-soft);color:var(--brand);border-radius:99px;padding:3px 10px;font-size:.84rem;font-weight:500}
.sg-fchip:hover{text-decoration:none;background:var(--bad-bg);color:var(--bad)}
.sg-fchip.clear{background:none;color:var(--muted);text-decoration:underline}
.sg-res-head{display:flex;justify-content:space-between;align-items:center;gap:10px 16px;flex-wrap:wrap}
.sg-totals{margin:0;font-size:1rem}
.sg-actions{display:flex;gap:8px;flex-wrap:wrap;align-items:flex-start}
.sg-actions form{margin:0}
.sg-desc{margin:6px 0 10px}
.sg-save{position:relative}
.sg-save>summary{list-style:none}
.sg-save>summary::-webkit-details-marker{display:none}
.sg-save-box{position:absolute;inset-inline-end:0;top:calc(100% + 6px);z-index:15;background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);
  box-shadow:0 10px 30px rgba(0,0,0,.12);padding:12px;display:grid;gap:10px;width:min(320px,86vw)}
.sg-table th a{color:inherit;display:inline-flex;gap:3px;align-items:center}
.sg-table th a:hover{color:var(--brand);text-decoration:none}
.sg-table th.sorted a{color:var(--brand)}
.sg-table th.num a{flex-direction:row}
.sg-arrow{min-width:.7em;display:inline-block}
.sg-table td.ck,.sg-table th.ck{width:34px}
.sg-table td.nm{min-width:180px}
.sg-sub{font-size:.8rem;color:var(--muted);margin-top:1px}
.sg-mline{display:none}
.sg-pager{display:flex;gap:8px 12px;align-items:center;flex-wrap:wrap;margin-top:12px}
.sg-per{margin:0;margin-inline-start:auto}
.sg-per label{display:flex;gap:6px;align-items:center;font-weight:400}
.sg-per select{width:auto;padding:5px 8px}
.sg-sortbar{margin-bottom:10px}
.consent-bulk>summary{cursor:pointer}
.consent-bulk[open]>summary{margin-bottom:12px}
@media (max-width:1000px){.sg-main{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:760px){
  .sg-tiles{display:flex;overflow-x:auto;scroll-snap-type:x proximity;gap:8px;margin-inline:-16px;padding:0 16px 6px;-webkit-overflow-scrolling:touch}
  .sg-tile{flex:0 0 158px;scroll-snap-align:start}
  .sg-tile .t-what{display:none}
  .sg-main{grid-template-columns:1fr}
  .sg-res-head{align-items:stretch}
  .sg-actions{width:100%}
  .sg-actions>*{flex:1 1 auto}
  .sg-actions .btn{width:100%;justify-content:center}
  .sg-save-box{inset-inline:0;width:auto}
  .sg-results .table-wrap{margin-inline:0;padding-inline:0;overflow:visible}
  .sg-table,.sg-table tbody{display:block}
  .sg-table thead{display:none}
  .sg-table tr{display:grid;grid-template-columns:30px minmax(0,1fr) auto;gap:4px 10px;align-items:start;padding:12px;border:1px solid var(--line);border-radius:var(--radius);margin-bottom:8px;background:var(--panel)}
  .sg-table.no-ck tr{grid-template-columns:minmax(0,1fr) auto}
  .sg-table td{padding:0;border:0}
  .sg-table td.ck{grid-row:1 / span 2;padding-top:2px}
  .sg-table td.nm{min-width:0}
  .sg-table td.sp{grid-column:-2;grid-row:1;font-weight:600}
  .sg-table td.vi,.sg-table td.lv{display:none}
  .sg-table td.grp{grid-column:2}
  .sg-table td.of{grid-column:3;text-align:end}
  .sg-table.no-ck td.grp{grid-column:1}
  .sg-table.no-ck td.of{grid-column:2}
  .sg-table tr.sg-empty{display:block}
  .sg-mline{display:block;font-size:.82rem;color:var(--ink);margin-top:3px}
  .sg-per{margin-inline-start:0}
}
/* v3.19 budget and ad spend (redesign): spend against the budget, one line per campaign, the daily chart */
.bd-sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.bd-month{display:inline-flex;gap:6px;align-items:center}
.bd-month b{padding:0 4px;white-space:nowrap}
.bd-stats .stat{display:grid;gap:4px;align-content:start}
.bd-stats .bd-main{grid-column:span 2}
.bd-bar{height:10px;background:var(--mute-bg);border-radius:99px;overflow:hidden;min-width:80px}
.bd-bar i{display:block;height:100%;background:var(--brand);border-radius:99px}
.bd-bar.near i{background:#e0a526} .bd-bar.over i{background:var(--bad)}
.bd-bar.none{background:repeating-linear-gradient(45deg,var(--mute-bg) 0 6px,transparent 6px 12px)}
.bd-groups{display:grid}
.bd-g{display:grid;grid-template-columns:minmax(160px,1.2fr) minmax(200px,2fr) 130px;gap:6px 18px;align-items:center;padding:10px 0;border-block-end:1px solid var(--line)}
.bd-g:last-child{border-block-end:0}
.bd-g.off{opacity:.6}
.bd-g-name{display:grid;gap:2px;min-width:0}
.bd-g-bar{display:grid;gap:4px}
.bd-g-input input{text-align:end;padding:7px 9px}
.bd-save{margin-top:12px}
.bd-head{display:flex;justify-content:space-between;align-items:baseline;gap:8px 16px;flex-wrap:wrap}
.bd-head h2{margin:0}
.bd-legend{list-style:none;margin:0;padding:0;display:flex;gap:4px 16px;flex-wrap:wrap;font-size:.85rem;align-items:center}
.bd-legend li{display:inline-flex;gap:6px;align-items:center}
.bd-legend .sw{width:11px;height:11px;border-radius:3px;display:inline-block}
.bd-src{display:inline-grid;place-items:center;width:20px;height:20px;border-radius:5px;font-size:.7rem;font-weight:700;color:#fff;flex:none;vertical-align:middle;font-style:normal}
:root{--bd-meta:#2a78d6;--bd-sheet:#eb6834;--bd-manual:#1baf7a}
.bd-src.s-meta,.bd-legend .sw.s-meta{background:var(--bd-meta)} .bd-src.s-sheet,.bd-legend .sw.s-sheet{background:var(--bd-sheet)}
.bd-src.s-manual,.bd-legend .sw.s-manual{background:var(--bd-manual)}
.bd-table td.c-name{min-width:200px}
.bd-table tr.has-warn td{border-block-end:0}
.bd-table tr.bd-warn td{padding-top:0}
.bd-w{display:flex;gap:6px;align-items:flex-start;background:var(--warn-bg);color:var(--warn);border-radius:8px;padding:6px 10px;font-size:.86rem;margin-bottom:6px}
.bd-w.w-double,.bd-w.w-nobook,.bd-w.w-nolink{background:var(--bad-bg);color:var(--bad)}
.bd-link{display:flex;gap:8px;align-items:flex-end;flex-wrap:wrap;margin:0 0 6px}
.bd-link label{flex:1 1 260px;max-width:460px}
.bd-link select{padding:6px 9px}
.warn-txt{color:var(--warn)}
.bd-chart-wrap{overflow-x:auto;margin:8px 0 6px}
.bd-chart{display:block;width:100%;min-width:520px;height:auto;max-height:240px;stroke:none;fill:none}
.bd-chart *{stroke:none}
.bd-chart .grid{stroke:var(--line);stroke-width:1}
.bd-chart .base{stroke:var(--muted);stroke-width:1;opacity:.6}
.bd-chart .ax{font-size:10px;fill:var(--muted);font-variant-numeric:tabular-nums}
.bd-chart .hit{fill:transparent}
.bd-chart .day:hover .hit{fill:var(--brand-soft)}
.bd-chart .s-meta{fill:var(--bd-meta)} .bd-chart .s-sheet{fill:var(--bd-sheet)} .bd-chart .s-manual{fill:var(--bd-manual)}
.bd-lines{margin-top:10px}
tr.bd-nc td{color:var(--muted)}
.bd-assign{margin-bottom:8px}
.bd-assign select{max-width:240px}
@media (max-width:900px){.bd-stats .bd-main{grid-column:1 / -1}}
@media (max-width:760px){
  .bd-g{grid-template-columns:1fr;gap:6px}
  .bd-g-input input{text-align:start}
  .bd-camps .table-wrap{margin-inline:0;padding-inline:0;overflow:visible}
  .bd-table,.bd-table tbody,.bd-table tfoot{display:block}
  .bd-table thead{display:none}
  .bd-table tr.bd-row,.bd-table tfoot tr{display:grid;grid-template-columns:1fr 1fr;gap:4px 12px;padding:12px;border:1px solid var(--line);border-radius:var(--radius);background:var(--panel);margin-top:8px}
  .bd-table tr.has-warn{border-end-start-radius:0;border-end-end-radius:0}
  .bd-table td,.bd-table tr.total td{border:0;padding:0;text-align:start}
  .bd-table td.c-name{grid-column:1 / -1;min-width:0;font-size:1rem}
  .bd-table td[data-l]::before{content:attr(data-l);display:block;font-size:.72rem;color:var(--muted);font-weight:500}
  .bd-table tr.bd-warn{display:block;border:1px solid var(--line);border-block-start:0;border-radius:0 0 var(--radius) var(--radius);padding:0 12px 6px;background:var(--panel)}
  .bd-table tr.bd-warn td{display:block}
  .bd-table tfoot td:empty{display:none}
  .bd-table tfoot td:first-child{grid-column:1 / -1}
}
/* v3.21 platform campaigns: cards (Campaigns page, the campaign's page), the form, the line on Budget and ad spend */
.pc-h{margin:18px 0 10px;display:flex;gap:2px 10px;align-items:baseline;flex-wrap:wrap}
.pc-h small{font-weight:400;font-size:.85rem}
.pc-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,420px),1fr));gap:14px;margin-bottom:18px}
.pc-card{display:grid;gap:12px;align-content:start;margin:0;min-width:0}
.pc-card.pc-reached{border-inline-start:4px solid var(--ok)}
.pc-card.pc-not_reached{border-inline-start:4px solid var(--bad)}
.pc-head{display:flex;justify-content:space-between;gap:6px 12px;align-items:flex-start;flex-wrap:wrap}
.pc-title{min-width:0;flex:1 1 220px}
.pc-title h3{margin:2px 0;font-size:1.05rem;overflow-wrap:anywhere}
.pc-kind{font-size:.74rem;font-weight:600;color:var(--brand)}
.pc-state{display:grid;justify-items:end;gap:2px}
.pc-stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px 14px;padding:10px 0;border-block:1px solid var(--line)}
.pc-stats>div{display:grid;gap:1px;min-width:0;align-content:start}
.pc-stats span{font-size:.78rem;color:var(--muted)}
.pc-stats b{font-size:1.15rem;font-variant-numeric:tabular-nums}
.pc-stats small{font-size:.76rem;color:var(--muted);overflow-wrap:anywhere}
.pc-plats{list-style:none;margin:0;padding:0;display:grid;gap:12px}
.pc-pl-head{display:flex;gap:2px 8px;align-items:baseline;flex-wrap:wrap}
.pc-pl-fig{margin-inline-start:auto;font-variant-numeric:tabular-nums}
.pc-pct{min-width:3em;text-align:end;font-variant-numeric:tabular-nums}
.pc-pct.ok{color:var(--ok)} .pc-pct.behind{color:var(--warn)}
.pc-bar{position:relative;height:10px;background:var(--mute-bg);border-radius:99px;margin:5px 0 3px}
.pc-bar i{display:block;height:100%;max-width:100%;background:var(--brand);border-radius:99px}
.pc-bar.ok i{background:var(--ok)} .pc-bar.behind i{background:#e0a526}
.pc-bar .pc-mark{position:absolute;top:-3px;bottom:-3px;width:2px;margin-inline-start:-1px;background:var(--ink);opacity:.55;border-radius:1px}
.pc-pl-ctx{display:block;font-size:.8rem}
.pc-note{margin:0}
.pc-card .bd-w{margin:0}
.pc-foot{display:flex;justify-content:flex-end}
.pc-fs{border:1px solid var(--line);border-radius:var(--radius);padding:8px 14px 14px;margin:0;min-width:0}
.pc-fs legend{font-weight:600;padding:0 6px}
.pc-fs p{margin:0 0 8px}
.pc-picks{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,220px),1fr));gap:6px 14px;margin:8px 0}
.pc-otas{display:grid}
.pc-ota{display:grid;grid-template-columns:minmax(140px,1.1fr) minmax(110px,1fr) minmax(110px,1fr) minmax(180px,1.6fr);gap:6px 12px;align-items:end;padding:10px 0;border-block-end:1px solid var(--line)}
.pc-ota:last-child{border-block-end:0}
.pc-ota-on,.pc-ota-out{align-self:center}
.pc-ota:has(.pc-ota-on input:not(:checked)){padding:6px 0}
.pc-ota:has(.pc-ota-on input:not(:checked)) > label:not(.pc-ota-on){display:none}
.pc-new>summary{cursor:pointer;list-style:none;display:grid;gap:4px}
.pc-new>summary::-webkit-details-marker{display:none}
.pc-new>summary h2{margin:0}
.pc-new>summary h2::before{content:"+ ";color:var(--brand)}
.pc-new[open]>summary{margin-bottom:12px}
.pc-new[open]>summary h2::before{content:"− "}
.pc-typed{align-items:end;padding-block-end:8px;border-block-end:1px solid var(--line)}
.pc-typed-name{align-self:center}
.pc-recount{display:flex;gap:10px;align-items:center;justify-content:space-between;flex-wrap:wrap}
.pc-off{margin-top:12px}
.pc-make small{color:var(--brand)}
.bd-pc{display:block;margin-top:2px}
.bd-pc .badge{margin-inline-end:4px}
.bd-pc-link summary{cursor:pointer;color:var(--brand);font-size:.84rem}
@media (max-width:640px){
  .pc-stats{grid-template-columns:repeat(2,minmax(0,1fr))}
  .pc-ota{grid-template-columns:1fr 1fr}
  .pc-ota-on,.pc-ota-out{grid-column:1 / -1}
  .pc-state{justify-items:start}
}
/* v3.19 payments: the yellow box's link buttons, special prices, the price request, the booking page on a phone */
.why-actions{margin-top:6px;gap:6px}
.why-actions small{flex:1 1 180px}
.special-price{white-space:normal;text-align:start}
.special-price-note{display:block;color:var(--warn);font-weight:600}
.dep-opt .dep-price{font-style:normal;font-weight:600;color:var(--ok);margin-inline-start:6px}
.price-reason{grid-column:1/-1}
.price-req{margin-top:6px;padding:6px 8px;border:1px solid #f1d58a;background:#fff8e6;border-radius:8px}
.price-req .btn-row{margin-top:6px}
.price-changes summary{cursor:pointer}
details.m-fold>summary.m-sum{display:none}
.bk-mbar,.bk-mbar-space{display:none}
@media (max-width:760px){
  details.m-fold>summary.m-sum{display:flex;align-items:center;gap:8px;flex-wrap:wrap;list-style:none;cursor:pointer;background:var(--panel);border:1px solid var(--line);
    border-radius:var(--radius);padding:12px 14px;margin-bottom:10px;font-weight:600}
  details.m-fold>summary.m-sum::-webkit-details-marker{display:none}
  details.m-fold>summary.m-sum::before{content:'▸';color:var(--muted)}
  details.m-fold[open]>summary.m-sum::before{content:'▾'}
  .card details.m-fold>summary.m-sum{border:0;padding:10px 0 0;margin:8px 0 0;background:none;border-top:1px solid var(--line);border-radius:0}
  .bk-mbar-space{display:block;height:72px}
  .bk-mbar{display:flex;gap:8px;position:fixed;inset-inline:0;bottom:0;z-index:25;background:var(--panel);border-top:1px solid var(--line);
    padding:8px 12px calc(8px + env(safe-area-inset-bottom));box-shadow:0 -4px 14px rgba(0,0,0,.06)}
  .bk-mbar .btn{flex:1 1 0;justify-content:center;text-align:center;min-width:0;padding-inline:6px}
}
/* v3.19 strategist: research steps, findings, the end-of-period check, goal planner, price suggestions */
.stg-steps{display:flex;flex-wrap:wrap;gap:6px;list-style:none;padding:0;margin:6px 0}
.stg-steps li{padding:3px 10px;border-radius:99px;background:var(--mute-bg);color:var(--muted);font-size:.85rem}
.stg-steps li.on{background:var(--brand);color:#fff;font-weight:600}
.stg-steps li.done{background:var(--ok-bg);color:var(--ok)}
.stg-topics{list-style:none;padding:0;margin:0 0 10px}
.stg-topics li{padding:8px 0;border-block-end:1px solid var(--line);display:flex;flex-wrap:wrap;gap:6px 10px;align-items:center}
.stg-topics li[data-status="searching"] .stg-state{background:var(--brand);color:#fff}
.stg-topics li[data-status="done"] .stg-state{background:var(--ok-bg);color:var(--ok)}
.stg-topics li[data-status="failed"] .stg-state{background:var(--bad-bg);color:var(--bad)}
.stg-topic{border:1px solid var(--line);border-radius:10px;padding:10px 14px;margin:0;min-width:0}
.stg-topic legend{padding:0 6px}
.stg-topic.removed{opacity:.6}
.stg-topic textarea,.stg-findings textarea{width:100%;font-size:.92rem}
.stg-text{font-size:.92rem;overflow-wrap:anywhere}
.stg-err{color:var(--bad)}
.stg-warn{color:var(--warn)}
.stg-kpis{grid-template-columns:repeat(auto-fit,minmax(150px,1fr));margin-bottom:12px;gap:10px}
.stg-kpis>div{background:var(--mute-bg);border-radius:10px;padding:10px 12px;display:flex;flex-direction:column;gap:2px;min-width:0}
.stg-kpis b{font-size:1.25rem}
details.stg-new>summary,details.stg-findings>summary,details.stg-more>summary{cursor:pointer}
details.stg-new>summary h2,details.stg-findings>summary h2{display:inline;margin:0}
.stg-price input[type=number]{width:96px}
.stg-price td form{display:inline}
.stg-scen{border:1px solid var(--line);border-radius:10px;padding:12px 14px;min-width:0}
.stg-ours{background:var(--mute-bg);border-radius:8px;padding:8px 10px;font-size:.9rem;margin:8px 0}
.stg-note{background:var(--warn-bg);color:var(--warn);border-radius:8px;padding:8px 12px;margin:0 0 12px}
.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
@media (max-width:640px){.stg-topic{padding:8px 10px}.stg-kpis b{font-size:1.1rem}.stg-price input[type=number]{width:80px}
  /* the price tables become one card per departure */
  table.stg-stack,table.stg-stack tbody,table.stg-stack tr,table.stg-stack td{display:block;width:100%}
  table.stg-stack tr:first-child{display:none}
  table.stg-stack tr{border-block-end:1px solid var(--line);padding:8px 0}
  table.stg-stack td{border:0;padding:3px 0;text-align:start}
  table.stg-stack td[data-label]::before{content:attr(data-label);display:block;font-size:.75rem;color:var(--muted)}
  table.stg-stack td.stg-hide{display:none}}
/* v3.19 WhatsApp: the inbox, a chat, the templates */
.wa-search{display:flex;gap:6px;margin:0 0 10px}.wa-search input{flex:1;min-width:0}
.wa-list{list-style:none;margin:0;padding:0}
.wa-list li{border-block-end:1px solid var(--line)}
.wa-list li a{display:flex;gap:10px;align-items:center;padding:10px 4px;color:var(--ink);text-decoration:none}
.wa-list li a:hover{background:var(--bg)}
.wa-list li.unread b{font-weight:700}.wa-list li.done{opacity:.65}
.wa-av{flex:0 0 38px;height:38px;border-radius:50%;background:#25d366;color:#fff;display:flex;align-items:center;justify-content:center;font-weight:600}
.wa-main{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}
.wa-top{display:flex;gap:6px;align-items:baseline}.wa-top b{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.wa-time{margin-inline-start:auto;font-size:.78rem;color:var(--muted);white-space:nowrap}
.wa-last{font-size:.88rem;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.wa-meta{display:flex;gap:6px;flex-wrap:wrap;align-items:center}
.wa-unread{flex:0 0 auto;background:#25d366;color:#fff;border-radius:999px;font-size:.75rem;padding:2px 8px;font-weight:600}
.wa-head h1{margin:4px 0}.wa-acts{display:flex;gap:6px;flex-wrap:wrap;align-items:center}.wa-assign select{width:auto;max-width:180px;padding:5px 8px}
.wa-grid{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:16px;align-items:start}
.wa-grid>.card{margin:0;min-width:0}
@media (max-width:900px){.wa-grid{grid-template-columns:1fr}.wa-side{order:-1}}
.wa-msgs{max-height:62vh;overflow-y:auto;padding:6px 2px;background:#efeae2;border-radius:8px;display:flex;flex-direction:column;gap:4px}
.wa-day{text-align:center;margin:8px 0}.wa-day span{background:#fff;border-radius:6px;padding:2px 10px;font-size:.76rem;color:var(--muted)}
.wa-msg{display:flex}.wa-msg.in{justify-content:flex-start}.wa-msg.out{justify-content:flex-end}
.wa-bubble{max-width:min(78%,560px);background:#fff;border-radius:10px;padding:6px 10px;box-shadow:0 1px 1px rgba(0,0,0,.08);overflow-wrap:anywhere;font-size:.93rem;line-height:1.45}
.wa-bubble.out{background:#d9fdd3}.wa-bubble.failed{background:var(--bad-bg)}
.src-auto .wa-bubble.out{background:#e7f3ff}.src-phone .wa-bubble.out{background:#f0f9e8}.src-history .wa-bubble{opacity:.85}
.wa-by{font-size:.74rem;color:var(--brand);font-weight:600;margin-bottom:2px}
.wa-foot{display:flex;gap:6px;justify-content:flex-end;color:var(--muted);font-size:.72rem}
.wa-tick{font-weight:700}.wa-tick.st-read{color:#0a7fc2}.wa-tick.st-failed{color:var(--bad)}      /* v3.20 fixed: the page uses st-<status> */
.wa-err{font-size:.8rem;color:var(--bad);margin-top:4px}
.wa-img{display:block;max-width:100%;max-height:260px;border-radius:6px;margin-bottom:4px}
.wa-file{display:inline-block;padding:6px 8px;background:var(--bg);border-radius:6px;margin-bottom:4px}
.wa-react{font-size:1.4rem}
.wa-reply{margin-top:12px}.wa-reply textarea{min-height:70px}
.wa-qr{display:flex;gap:8px;flex-wrap:wrap;align-items:center}.wa-qr select{flex:1;min-width:160px;width:auto}
.wa-ai{border:1px dashed var(--brand);border-radius:8px;padding:8px 10px;margin-bottom:8px}
.wa-tplform{margin-top:10px}.wa-tp .wa-bubble{max-width:100%;margin:8px 0}
.wa-bk li{padding:6px 0;border-block-end:1px solid var(--line)}
.wa-param{background:#fff3c4;border-radius:4px;padding:0 3px;font-weight:600}
.wa-tpl{border-block-start:1px solid var(--line);padding-block:10px}.wa-tpl h3{margin:0 0 8px;font-size:1rem}
.wa-tpl-langs{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(300px,100%),1fr));gap:12px}
.wa-tpl-lang .wa-bubble{max-width:100%;margin:6px 0}
.wa-tpl-head{display:flex;gap:6px;flex-wrap:wrap;align-items:center}
.wa-copyrow{display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin:6px 0}.wa-copyrow code{overflow-wrap:anywhere;background:var(--bg);padding:3px 6px;border-radius:4px}
.wa-days{display:flex;gap:4px 14px;flex-wrap:wrap}
.wa-why{margin:4px 0}

/* ===================================================================== v3.20 the WhatsApp inbox on one screen
   (views/work/wa_inbox.php): chats | chat | customer; the DiveHub menu folds to icons on this page. */
body:has(.wa-app) main.with-nav{padding:0;height:calc(100vh - var(--top-h));height:calc(100dvh - var(--top-h));display:flex;flex-direction:column;overflow:hidden}
body:has(.wa-app) main.with-nav.with-viewas{height:calc(100dvh - var(--top-h) - 34px)}
body:has(.wa-app) main > .back-btn,body:has(.wa-app) main > .hub-tabs{display:none}
body:has(.wa-app) main > .flash{margin:8px 16px 0}
.wa-rail,.wa-foldbtn{display:none}
@media (min-width:901px){
  body:has(.wa-app):not(.wa-menu-full) .sidebar{display:none}
  body:has(.wa-app):not(.wa-menu-full) main.with-nav{margin-inline-start:64px}
  body:has(.wa-app):not(.wa-menu-full) .wa-rail{display:flex}
  body.wa-menu-full .wa-foldbtn{display:flex}
}
.wa-rail{position:fixed;inset-block:var(--top-h) 0;inset-inline-start:0;width:64px;background:var(--panel);border-inline-end:1px solid var(--line);
  flex-direction:column;align-items:center;gap:4px;padding:12px 0;overflow-y:auto;z-index:20}
.wa-rail a,.wa-rail button{width:44px;height:44px;flex:none;border-radius:10px;display:flex;align-items:center;justify-content:center;color:var(--ink);position:relative;background:none;border:0;cursor:pointer}
.wa-rail a:hover,.wa-rail button:hover{background:var(--bg);text-decoration:none}
.wa-rail a.active{background:var(--brand-soft);color:var(--brand)}
.wa-rail svg{width:20px;height:20px}
.wa-rail .nav-count{position:absolute;top:3px;inset-inline-end:2px;background:var(--ok);color:#fff;font-size:10px;padding:0 5px;line-height:16px}
.wa-rail-sp{flex:1}
.wa-foldbtn{align-items:center;gap:8px;width:100%;border:0;background:none;color:var(--muted);font:inherit;font-size:.85rem;padding:6px 10px;border-radius:8px;cursor:pointer;margin-bottom:4px}
.wa-foldbtn:hover{background:var(--bg);color:var(--ink)}

.wa-app{flex:1;min-height:0;display:grid;grid-template-columns:minmax(280px,320px) minmax(0,1fr) 290px;background:var(--panel);font-size:14px}
.wa-app:not(.has-chat){grid-template-columns:minmax(280px,320px) minmax(0,1fr)}
.wa-app [hidden]{display:none !important}
.wa-pane{min-width:0;min-height:0;display:flex;flex-direction:column;overflow:hidden}
.wa-grow{flex:1}
.wa-ic{width:auto;height:auto}
[dir=rtl] .wa-ic.flip{transform:scaleX(-1)}
.wa-btn{display:inline-flex;align-items:center;gap:6px;border:1px solid var(--line);background:var(--panel);color:var(--ink);border-radius:8px;padding:6px 10px;font:inherit;font-size:13px;cursor:pointer;white-space:nowrap;min-height:34px;text-decoration:none}
.wa-btn:hover{border-color:var(--brand);text-decoration:none}
.wa-btn.ok{border-color:var(--ok);background:var(--ok-bg);color:var(--ok);font-weight:600}
.wa-btn.on{background:var(--warn-bg);border-color:#f0dcae;color:var(--warn)}
.wa-ibtn{width:36px;height:36px;flex:none;border:0;background:none;color:var(--muted);border-radius:8px;display:inline-flex;align-items:center;justify-content:center;cursor:pointer;padding:0}
.wa-ibtn:hover{background:var(--bg);color:var(--ink)}
.wa-btn:focus-visible,.wa-ibtn:focus-visible,.wa-tbtn:focus-visible,.wa-mi:focus-visible,.wa-opt:focus-visible,.wa-list a:focus-visible,.wa-tabs a:focus-visible{outline:2px solid var(--brand);outline-offset:1px}
.wa-chip{display:inline-flex;align-items:center;gap:4px;font-size:11px;border-radius:999px;padding:1px 8px;line-height:1.5;white-space:nowrap;background:var(--bg);color:var(--muted)}
.wa-chip.info{background:var(--info-bg);color:var(--info)} .wa-chip.ok{background:var(--ok-bg);color:var(--ok)}
.wa-chip.warn{background:var(--warn-bg);color:var(--warn)} .wa-chip.bad{background:var(--bad-bg);color:var(--bad)}
.wa-chip.brand{background:var(--brand-soft);color:var(--brand)} .wa-chip.mute{background:var(--bg);color:var(--muted)}
.wa-chip.you{background:var(--panel);color:var(--brand);border:1px solid #b9dbe5;padding:0 8px}
.wa-chip.strong{font-weight:600}
.wa-chip svg{width:12px;height:12px}

/* 1. the chats */
.wa-listpane{border-inline-end:1px solid var(--line)}
.wa-listhead{padding:14px 14px 10px;display:flex;flex-direction:column;gap:10px;border-block-end:1px solid var(--line)}
.wa-titlerow{display:flex;align-items:center;gap:8px}
.wa-titlerow h1{margin:0;font-size:18px}
.wa-warnline{margin:0;font-size:12px;color:var(--warn);background:var(--warn-bg);border-radius:8px;padding:6px 10px}
.wa-tabs{display:flex;gap:4px;background:var(--bg);border-radius:8px;padding:3px}
.wa-tabs a{flex:1;text-align:center;color:var(--ink);border-radius:6px;padding:6px 4px;font-size:13px;text-decoration:none;white-space:nowrap}
.wa-tabs a:hover{text-decoration:none;background:rgba(255,255,255,.6)}
.wa-tabs a[aria-selected=true]{background:var(--panel);font-weight:600;box-shadow:0 1px 2px rgba(0,0,0,.08)}
.wa-n{color:var(--brand)} .wa-n.bad{color:var(--bad)}
.wa-filter{display:flex;gap:6px;margin:0}
.wa-search{flex:1;display:flex;align-items:center;gap:6px;border:1px solid var(--line);border-radius:8px;padding:0 10px;color:var(--muted);min-width:0;font-weight:400}
.wa-search:focus-within{border-color:var(--brand);outline:2px solid var(--brand-soft)}
.wa-search input{border:0;outline:0;padding:7px 0;min-width:0;flex:1;font-size:13px;background:transparent}
.wa-stsel{display:flex;font-weight:400}
.wa-stsel select{width:auto;padding:6px 8px;font-size:13px}
.wa-only{margin:0;display:flex;gap:8px;align-items:center;font-size:12px}
.wa-app .wa-list{list-style:none;margin:0;padding:0;overflow-y:auto;flex:1}
.wa-app .wa-list li{border:0}
.wa-app .wa-list li a{display:flex;gap:10px;align-items:flex-start;padding:12px 14px;border-block-end:1px solid #eef2f4;color:var(--ink);text-decoration:none}
.wa-app .wa-list li a:hover{background:var(--bg)}
.wa-app .wa-list li a[aria-current=true]{background:var(--brand-soft);box-shadow:inset 3px 0 0 var(--brand)}
[dir=rtl] .wa-app .wa-list li a[aria-current=true]{box-shadow:inset -3px 0 0 var(--brand)}
.wa-app .wa-list li.done a{opacity:.7}
.wa-app .wa-av{flex:0 0 40px;height:40px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:15px}
.tone-brand{background:var(--brand-soft);color:var(--brand)} .tone-bad{background:var(--bad-bg);color:var(--bad)} .tone-warn{background:var(--warn-bg);color:var(--warn)}
.tone-ok{background:var(--ok-bg);color:var(--ok)} .tone-info{background:var(--info-bg);color:var(--info)} .tone-mute{background:var(--bg);color:var(--muted)}
.tone-sel{background:var(--brand);color:#fff}
.wa-app .wa-main{flex:1;min-width:0;display:flex;flex-direction:column;gap:3px}
.wa-app .wa-top{display:flex;align-items:baseline;gap:6px}
.wa-app .wa-top b{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.wa-sub{font-size:12px;color:var(--muted);white-space:nowrap}
.wa-app .wa-time{margin-inline-start:auto;font-size:12px;color:var(--muted);white-space:nowrap}
.wa-app .wa-time.new{color:var(--ok);font-weight:600}
.wa-app .wa-last{font-size:13px;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.wa-app .wa-last.out{color:var(--muted)}
.wa-app .wa-meta{display:flex;gap:6px;align-items:center;flex-wrap:wrap}
.wa-app .wa-unread{margin-inline-start:auto;background:var(--ok);color:#fff;font-size:11px;font-weight:700;border-radius:999px;padding:0 7px;line-height:1.6}
.wa-app li.unread .wa-top b{font-weight:700}
.wa-none{padding:24px 14px;color:var(--muted);text-align:center;display:flex;flex-direction:column;gap:6px}

/* 2. the chat */
.wa-chatpane{background:var(--panel);position:relative}
.wa-chatpane.wa-busy .wa-msgs{opacity:.55}
.wa-empty{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;color:var(--muted);background:#efeae2}
.wa-empty svg{opacity:.5}
.wa-chathead{display:flex;align-items:center;gap:10px;padding:10px 16px;border-block-end:1px solid var(--line);flex-wrap:nowrap}
@media (max-width:1439px){.wa-narrow-hide{display:none}}
.wa-app .wa-foot{direction:ltr;justify-content:flex-end;align-items:center}
[dir=rtl] .wa-app .wa-msg.out .wa-foot{justify-content:flex-start}
.wa-chathead form{margin:0}
.wa-back{display:none}
.wa-who{min-width:60px;flex:1 1 auto}
.wa-who h2{margin:0;font-size:16px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.wa-who .wa-sub{display:block;overflow:hidden;text-overflow:ellipsis}
.wa-snooze summary .wa-desk-only{display:inline-flex;align-items:center;gap:6px}
.wa-who h2:focus{outline:none}
.wa-assign label{display:flex;align-items:center;gap:6px;color:var(--muted);font-weight:400}
.wa-assign select{width:auto;min-width:150px;max-width:none;padding:6px 8px;font-size:13px}
.wa-menu{position:relative}
.wa-menu>summary{list-style:none;cursor:pointer}
.wa-menu>summary::-webkit-details-marker{display:none}
.wa-menu-list{position:absolute;inset-block-start:calc(100% + 6px);inset-inline-end:0;min-width:250px;background:var(--panel);border:1px solid var(--line);border-radius:12px;
  box-shadow:0 10px 30px rgba(0,0,0,.14);padding:6px;z-index:26;display:flex;flex-direction:column;gap:2px}
.wa-menu-list form{margin:0}
.wa-menu-h{margin:4px 8px;font-size:12px;color:var(--muted)}
.wa-mi{display:flex;align-items:center;gap:8px;width:100%;text-align:start;border:0;background:none;padding:8px 10px;border-radius:8px;cursor:pointer;font:inherit;font-size:13px;color:var(--ink);min-height:40px}
.wa-mi:hover{background:var(--bg)}
.wa-mi small{color:var(--muted);font-size:12px}
.wa-snooze .wa-mi{justify-content:space-between}
.wa-pick{display:flex;gap:6px;align-items:flex-end;padding:6px 8px;border-block-start:1px solid #eef2f4;margin-top:4px}
.wa-pick label{flex:1;font-size:12px}
.wa-pick input{padding:6px 8px;font-size:13px}
.wa-chips{display:none}
.wa-linkbtn{border:0;background:none;color:var(--brand);font:inherit;font-size:12px;cursor:pointer;text-decoration:underline;margin-inline-start:auto;padding:6px 0}
.wa-typing{display:flex;align-items:center;gap:8px;padding:7px 16px;background:var(--warn-bg);color:var(--warn);font-size:13px;border-block-end:1px solid #f3e1b5}
.wa-dot{width:8px;height:8px;flex:none;border-radius:50%;background:var(--warn);animation:wa-pulse 1.2s ease-in-out infinite}
@keyframes wa-pulse{50%{opacity:.3}}
@media (prefers-reduced-motion:reduce){.wa-dot{animation:none}}
.wa-notice{margin:0;padding:7px 16px;font-size:13px;display:flex;gap:8px;align-items:center}
.wa-notice.info{background:var(--info-bg);color:var(--info)} .wa-notice.warn{background:var(--warn-bg);color:var(--warn)}
.wa-app .wa-msgs{flex:1;min-height:0;max-height:none;overflow-y:auto;background:#efeae2;padding:14px 18px;display:flex;flex-direction:column;gap:6px;border-radius:0}
.wa-app .wa-msgs:focus-visible{outline:2px solid var(--brand);outline-offset:-2px}
.wa-nomsg{margin:auto;color:var(--muted)}
.wa-app .wa-day{margin:4px 0}
.wa-app .wa-bubble{max-width:68%;border-radius:10px;padding:7px 10px;font-size:14px}
.wa-app .wa-bubble.has-card{width:300px}
.wa-app .src-auto .wa-by,.wa-app .src-history .wa-by{color:var(--info)}
.wa-app .wa-foot time{font-size:11px}
.wa-card{background:#fff;border-radius:8px;padding:10px;margin:4px 0;display:flex;flex-direction:column;gap:4px;color:var(--ink);text-decoration:none}
a.wa-card:hover{text-decoration:none;box-shadow:0 0 0 1px var(--line)}
.wa-card-t{display:flex;align-items:center;gap:6px;font-weight:600}
.wa-card-t svg{color:var(--brand)}
.wa-card-s{font-size:13px}
.wa-card-b{display:flex;align-items:center;gap:6px}
.wa-card-b .wa-chip{margin-inline-start:auto;font-weight:600}
.wa-loc{padding:0;overflow:hidden}
.wa-map{height:92px;background:#dfe9ee;display:flex;align-items:center;justify-content:center;color:var(--brand)}
.wa-loc-t{padding:8px 10px;display:flex;flex-direction:column}
.wa-loc-t small{color:var(--muted);font-size:12px}
.wa-app .wa-file{flex-direction:row;align-items:center;gap:10px;padding:10px}
.wa-ext{flex:0 0 36px;height:42px;border-radius:6px;background:var(--bg);color:var(--muted);display:flex;align-items:center;justify-content:center;font-size:10px;font-weight:700}
.wa-ext.pdf{background:var(--bad-bg);color:var(--bad)}
.wa-file-t{min-width:0;display:flex;flex-direction:column}
.wa-file-t b{font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.wa-file-t small{color:var(--muted);font-size:12px}
.wa-audio{max-width:100%}
.wa-note{align-self:center;width:78%;background:#fff3c4;border:1px dashed #d8b84a;border-radius:10px;padding:7px 12px;font-size:14px}
.wa-note-by{display:flex;align-items:center;gap:6px;font-size:12px;font-weight:600;color:var(--warn)}
.wa-sys{align-self:center;max-width:85%;background:#fff;color:var(--muted);font-size:12px;border-radius:8px;padding:4px 12px;text-align:center}
.wa-sys time{margin-inline-start:6px;font-size:11px}
.wa-app .src-history .wa-bubble{opacity:.8;filter:grayscale(.35)}
.wa-app .wa-alert{margin:0;border-radius:0;border-width:0 0 1px;font-size:13px}
.wa-at{color:var(--brand)}
.wa-window{display:flex;align-items:center;gap:8px;padding:6px 16px;font-size:12px}
.wa-window.ok{background:var(--ok-bg);color:var(--ok)}
.wa-window.closed{background:var(--mute-bg);color:var(--mute)}

/* the reply box: always at the bottom of the chat */
.wa-composer{position:relative;border-block-start:1px solid var(--line);padding:8px 16px 12px;display:flex;flex-direction:column;gap:8px;background:var(--panel)}
.wa-ctabs{display:flex;gap:16px}
.wa-ctabs button{border:0;background:none;padding:4px 0;color:var(--muted);display:inline-flex;align-items:center;gap:4px;cursor:pointer;font:inherit;font-size:13px}
.wa-ctabs button[aria-selected=true]{color:var(--brand);font-weight:600;box-shadow:inset 0 -2px 0 var(--brand)}
.wa-composer[data-mode=note] #wa-tab-note{color:var(--warn);box-shadow:inset 0 -2px 0 var(--warn)}
.wa-form{display:flex;flex-direction:column;gap:8px;margin:0}
.wa-crow{display:flex;align-items:flex-end;gap:4px}
.wa-tbox{flex:1;display:block;font-weight:400}
.wa-tbox textarea{display:block;min-height:62px;max-height:200px;resize:none;border-radius:10px;padding:10px 12px;font-size:14px;line-height:1.45}
.wa-composer[data-mode=note] .wa-tbox textarea{background:#fffbea;border-color:#e6cf7a}
.wa-composer.wa-sending textarea{opacity:.6}
.wa-tools{display:flex;align-items:center;gap:2px;flex-wrap:wrap}
.wa-tbtn{border:0;background:none;color:var(--muted);height:36px;border-radius:8px;display:inline-flex;align-items:center;gap:4px;padding:0 8px;font:inherit;font-size:13px;cursor:pointer}
.wa-tbtn:hover{background:var(--bg);color:var(--ink)}
.wa-hint{font-size:12px;color:var(--muted)}
.wa-app .wa-send{border-radius:10px;padding:9px 16px;font-weight:600;margin-inline-start:8px}
.wa-composer[data-mode=note] .wa-reply-only{display:none}
.wa-composer.closed[data-mode=reply] .wa-form{display:none}
.wa-composer:not(.closed) .wa-tplbox,.wa-composer[data-mode=note] .wa-tplbox{display:none}
.wa-tplbox{max-height:45vh;overflow-y:auto}
.wa-tplform .wa-bubble{max-width:100%;margin:6px 0}
.wa-ai{border:1px dashed var(--brand);border-radius:8px;padding:8px 10px;display:flex;flex-direction:column;gap:6px;align-items:flex-start}
.wa-composer[data-mode=note] .wa-ai{display:none}
.wa-filechip{display:flex;align-items:center;gap:8px;background:var(--bg);border-radius:8px;padding:4px 4px 4px 10px;font-size:13px}
.wa-filechip b{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.wa-filechip small{color:var(--muted)}
.wa-filechip .wa-ibtn{margin-inline-start:auto;width:30px;height:30px}
.wa-phone-only{display:none}
.wa-pop{position:absolute;inset-block-end:calc(100% - 4px);inset-inline-start:16px;width:min(380px,calc(100% - 32px));max-height:min(380px,55vh);overflow-y:auto;background:var(--panel);
  border:1px solid var(--line);border-radius:12px;box-shadow:0 10px 30px rgba(0,0,0,.14);padding:8px;z-index:25;display:flex;flex-direction:column;gap:4px}
.wa-pop-wide{width:min(540px,calc(100% - 32px))}
.wa-pop-h{display:flex;align-items:center;gap:8px;justify-content:space-between;padding:2px 6px 4px}
.wa-pop form{margin:0}
.wa-pop-list{display:flex;flex-direction:column;gap:2px}
.wa-opt{display:flex;flex-direction:column;align-items:flex-start;gap:2px;text-align:start;border:0;background:none;border-radius:8px;padding:7px 9px;cursor:pointer;font:inherit;font-size:13px;width:100%;color:var(--ink)}
.wa-opt small{color:var(--muted);font-size:12px;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.wa-opt:hover,.wa-opt.on{background:var(--brand-soft)}
.wa-seg{display:inline-flex;gap:10px}
.wa-seg label{display:inline-flex;gap:4px;align-items:center;font-weight:400;font-size:12px}
.wa-pop.wa-emoji{flex-direction:row;flex-wrap:wrap;width:min(330px,calc(100% - 32px));gap:2px}
.wa-em{width:38px;height:38px;font-size:20px;border:0;background:none;border-radius:8px;cursor:pointer;line-height:1}
.wa-em:hover,.wa-em:focus-visible{background:var(--bg)}
.wa-locform input{padding:7px 9px;font-size:13px}
.wa-pop .wa-mi>span{display:flex;flex-direction:column;align-items:flex-start}
.wa-dialog{border:1px solid var(--line);border-radius:12px;padding:18px;max-width:min(420px,calc(100vw - 32px))}
.wa-dialog::backdrop{background:rgba(21,35,45,.35)}
.wa-dialog h2{margin-top:0}
.wa-dialog form{display:flex;flex-direction:column;gap:12px}

/* 3. the customer */
.wa-side{border-inline-start:1px solid var(--line);overflow-y:auto;padding:16px;gap:16px;background:var(--panel)}
.wa-sidehead{display:none}
.wa-sec{display:flex;flex-direction:column;gap:6px}
.wa-sec p{margin:0}
.wa-sec form{margin:0}
.wa-cap{font-size:12px;color:var(--muted);font-weight:600;text-transform:uppercase;letter-spacing:.05em;margin:0}
[dir=rtl] .wa-cap{letter-spacing:0}
.wa-cname{font-size:16px;font-weight:700}
.wa-csub{font-size:13px;color:var(--muted)}
.wa-cbtns{display:flex;gap:6px;flex-wrap:wrap;margin-top:4px}
.wa-cbtns .btn.small{padding:6px 10px;font-size:13px}
.wa-lbls{display:flex;gap:6px;flex-wrap:wrap;align-items:center}
.wa-lbl{display:inline-flex;align-items:center;gap:2px;font-size:12px;border-radius:999px;padding:1px 3px 1px 10px;background:var(--bg);color:var(--muted)}
[dir=rtl] .wa-lbl{padding:1px 10px 1px 3px}
.wa-lbl.info{background:var(--info-bg);color:var(--info)} .wa-lbl.ok{background:var(--ok-bg);color:var(--ok)} .wa-lbl.warn{background:var(--warn-bg);color:var(--warn)}
.wa-lbl.bad{background:var(--bad-bg);color:var(--bad)} .wa-lbl.brand{background:var(--brand-soft);color:var(--brand)}
.wa-lbl-x{border:0;background:none;color:inherit;width:22px;height:22px;border-radius:50%;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;opacity:.65;padding:0}
.wa-lbl-x:hover{opacity:1;background:rgba(0,0,0,.06)}
.wa-addlbl{font-size:12px;background:var(--panel);color:var(--muted);border:1px dashed #c3cfd6;border-radius:999px;padding:1px 10px;display:inline-flex;align-items:center;gap:4px}
.wa-lblmenu .wa-menu-list{inset-inline-end:auto;inset-inline-start:0;min-width:280px;max-width:calc(100vw - 32px);max-height:60vh;overflow-y:auto}
.wa-newlbl{border-block-start:1px solid #eef2f4;padding:8px;gap:8px}
.wa-newlbl input,.wa-lblrow input,.wa-lblrow select{padding:6px 8px;font-size:13px}
.wa-colors{border:0;padding:0;margin:0;display:flex;flex-wrap:wrap;gap:4px}
.wa-colors legend{font-size:.88rem;font-weight:500;margin-bottom:4px;padding:0}
.wa-colors label.wa-chip{display:inline-flex;font-size:12px;padding:2px 8px;cursor:pointer;font-weight:400}
.wa-lbledit{padding:4px 8px;font-size:13px}
.wa-lbledit summary{cursor:pointer;color:var(--brand)}
.wa-lblrow{display:grid;grid-template-columns:1fr 1fr 90px auto auto;gap:4px;align-items:center;margin:6px 0}
.wa-lblrow label{display:block}
.wa-bkwrap{display:flex;flex-direction:column;gap:6px}
.wa-bk{border:1px solid var(--line);border-radius:10px;padding:10px;color:var(--ink);text-decoration:none;display:flex;flex-direction:column;gap:4px}
.wa-bk:hover{border-color:var(--brand);text-decoration:none}
.wa-bk-top{display:flex;align-items:center;gap:6px}
.wa-bk-top .muted{margin-inline-start:auto;font-size:12px}
.wa-bk-when{font-size:13px}
.wa-full{width:100%;justify-content:flex-start}
.wa-old{font-size:13px;color:var(--ink);display:flex;gap:6px;text-decoration:none;padding:2px 0}
.wa-old .muted{margin-inline-start:auto}
/* v3.22.1 chat — the prospect card in the chat's right pane (views/work/_wa_prospect.php) and "Reply in" of the AI helper */
#wa-s-pr:focus{outline:none}
.wa-prnew>summary,.wa-prlog>summary,.wa-prlost>summary{list-style:none;width:max-content;max-width:100%}
.wa-prnew>summary::-webkit-details-marker,.wa-prlog>summary::-webkit-details-marker,.wa-prlost>summary::-webkit-details-marker{display:none}
.wa-prnew[open]>summary,.wa-prlog[open]>summary{border-color:var(--brand);color:var(--brand)}
.wa-prform,.wa-prlog form,.wa-prlost form{gap:10px;margin-top:8px;padding:10px;border:1px solid var(--line);border-radius:10px;background:var(--bg)}
.wa-prform input,.wa-prform select,.wa-prform textarea,.wa-prlog input,.wa-prlog select,.wa-prlog textarea,.wa-prlost select{padding:7px 9px;font-size:14px;max-width:100%}
.wa-prphone{font-size:13px;display:flex;gap:6px;align-items:baseline;flex-wrap:wrap}
.wa-prphone>span{font-weight:500}
.wa-prcard{display:flex;flex-direction:column;gap:8px;border:1px solid var(--line);border-radius:10px;padding:10px;min-width:0}
.wa-prtop{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.wa-prtop .wa-cname{font-size:15px;overflow-wrap:anywhere}
.wa-prstages{display:flex;flex-wrap:wrap;gap:6px;align-items:flex-start}
.wa-stg{display:inline-flex;align-items:center;min-height:32px;border:1px solid var(--line);border-radius:999px;background:var(--panel);color:var(--ink);padding:3px 11px;font:inherit;font-size:12px;cursor:pointer}
.wa-stg:hover{border-color:var(--brand)}
.wa-stg.on{background:var(--brand);border-color:var(--brand);color:#fff;font-weight:600;cursor:default;opacity:1}
.wa-stg.stage-won.on{background:var(--ok);border-color:var(--ok)}
.wa-stg.stage-lost.on{background:var(--muted);border-color:var(--muted)}
.wa-prlost[open]{flex-basis:100%}
.wa-prlost[open]>summary{border-color:var(--bad);color:var(--bad)}
.wa-prfu{display:flex;flex-direction:column;gap:6px;font-size:13px}
.wa-prquick{display:flex;flex-wrap:wrap;gap:6px}
.wa-qchip{display:inline-flex;flex-direction:column;align-items:center;border:1px solid var(--line);border-radius:10px;background:var(--panel);color:var(--ink);padding:4px 10px;font:inherit;font-size:12px;cursor:pointer;min-height:36px;line-height:1.25}
.wa-qchip small{color:var(--muted);font-size:11px}
.wa-qchip:hover{border-color:var(--brand)}
.wa-prpick{display:flex;gap:6px;align-items:center}
.wa-prpick label{flex:1;min-width:0}
.wa-prpick input{padding:6px 8px;font-size:13px;width:100%}
.wa-practs{list-style:none;margin:0;padding:8px 0 0;display:flex;flex-direction:column;gap:6px;font-size:13px;border-block-start:1px solid #eef2f4}
.wa-practs li{display:flex;gap:8px;align-items:flex-start}
.wa-practs li>span:last-child{display:flex;flex-direction:column;min-width:0;overflow-wrap:anywhere}
.wa-pract-i{flex:none;width:18px;text-align:center}
.wa-prfull{margin:0;align-self:flex-start;padding:4px 0}
.wa-ailang{display:flex;flex-direction:column;gap:6px;padding:4px 10px 10px;border-block-end:1px solid #eef2f4;margin-bottom:4px}
.wa-ailang-h{margin:0;font-size:13px}
.wa-ailang-seg{display:flex;flex-wrap:wrap;gap:6px}
.wa-ailang-seg label{border:1px solid var(--line);border-radius:999px;padding:3px 10px;cursor:pointer;min-height:30px}
.wa-ailang-seg label:has(input:checked){border-color:var(--brand);background:var(--brand-soft);color:var(--brand);font-weight:600}
@media (max-width:900px){.wa-stg,.wa-qchip{min-height:40px}.wa-ailang-seg label{min-height:38px}}
/* end v3.22.1 chat */

/* not wide enough for three parts: the customer opens over the chat */
@media (max-width:1199px){
  .wa-app.has-chat{grid-template-columns:minmax(260px,320px) minmax(0,1fr)}
  .wa-app .wa-side{position:fixed;inset-block:var(--top-h) 0;inset-inline-end:0;width:min(360px,100%);z-index:28;box-shadow:-8px 0 30px rgba(0,0,0,.14);
    transform:translateX(105%);visibility:hidden;transition:transform .18s,visibility .18s}
  [dir=rtl] .wa-app .wa-side{transform:translateX(-105%);box-shadow:8px 0 30px rgba(0,0,0,.14)}
  .wa-app.side-open .wa-side,[dir=rtl] .wa-app.side-open .wa-side{transform:none;visibility:visible}
  .wa-sidehead{display:flex;align-items:center;gap:8px;margin:-8px -8px 0}
  .wa-chips{display:flex;gap:6px;padding:6px 16px;border-block-end:1px solid #eef2f4;flex-wrap:wrap;align-items:center}
  .wa-chips .wa-chip{font-size:12px;padding:1px 10px}
}
/* a phone: the list, or one chat on the whole screen */
@media (max-width:900px){
  body:has(.wa-app) main.with-nav{height:calc(100dvh - var(--top-h))}
  .wa-app,.wa-app.has-chat{display:flex;flex-direction:column}
  .wa-listpane{flex:1;border:0}
  .wa-app:not(.has-chat) .wa-chatpane{display:none}
  .wa-app.has-chat .wa-chatpane{position:fixed;inset:0;z-index:35;height:100vh;height:100dvh}
  .wa-app .wa-side{inset-block-start:0;width:100%;z-index:36}
  .wa-back{display:inline-flex}
  .wa-desk-only{display:none !important}
  .wa-phone-only{display:inline-flex}
  .wa-tools{display:none}
  .wa-chathead{flex-wrap:nowrap;padding:10px;gap:8px}
  .wa-who{flex:1}
  .wa-who .wa-sub{white-space:normal;line-height:1.35}
  .wa-chathead .wa-grow{display:none}
  .wa-chathead .wa-ibtn{width:44px;height:44px;color:var(--ink)}
  .wa-chathead .wa-av{flex:0 0 38px;height:38px}
  .wa-assign label{position:relative;width:44px;height:44px;justify-content:center;color:var(--ink)}
  .wa-assign select{position:absolute;inset:0;opacity:0;min-width:0;width:44px;height:44px;cursor:pointer}
  .wa-snooze>summary.wa-btn{width:44px;height:44px;padding:0;justify-content:center;border:0;background:none;color:var(--ink)}
  .wa-snooze>summary.wa-btn.on{color:var(--warn)}
  .wa-chathead .wa-donebtn{border:0;background:none;width:44px;height:44px;padding:0;justify-content:center}
  .wa-menu-list{position:fixed;inset-inline:10px;inset-block-start:66px;min-width:0}
  .wa-menu-more{display:block;border-block-start:1px solid #eef2f4;margin-top:4px;padding-top:4px}
  .wa-chips{padding:6px 12px}
  .wa-linkbtn{min-height:32px}
  .wa-app .wa-msgs{padding:12px}
  .wa-app .wa-bubble{max-width:82%}
  .wa-app .wa-bubble.has-card{width:250px;max-width:82%}
  .wa-note{width:94%}
  .wa-win-more{display:none}
  .wa-window{padding:5px 12px}
  .wa-composer{padding:6px 10px 10px;padding-bottom:max(10px,env(safe-area-inset-bottom));gap:6px}
  .wa-ctabs{gap:14px;padding:0 4px}
  .wa-ctabs button{min-height:32px}
  .wa-tbox textarea{min-height:44px;border-radius:22px;padding:10px 14px}
  .wa-crow .wa-ibtn{width:40px;height:44px}
  .wa-sendr{width:44px;height:44px;flex:none;border:0;border-radius:50%;background:var(--brand);color:#fff;display:flex;align-items:center;justify-content:center;cursor:pointer}
  .wa-pop,.wa-pop-wide,.wa-pop.wa-emoji{inset-inline:10px;width:auto}
  .wa-app .wa-list li a{min-height:64px}
  .wa-tabs a{padding:10px 4px}
  .wa-search input{padding:10px 0}
  .wa-stsel select{min-height:42px}
  .wa-titlerow .wa-btn,.wa-titlerow .wa-ibtn{min-height:44px}
  .wa-titlerow .wa-ibtn{width:44px}
  .wa-mi{min-height:44px}
  .wa-lbl-x{width:32px;height:32px}
  .wa-addlbl{padding:6px 12px}
  .wa-lblrow{grid-template-columns:1fr 1fr;}
}

/* ===================================================================== v3.19 easier for the staff */
/* the "+" button and the bell's list */
.top-plus{position:relative}
.top-plus>summary{list-style:none;cursor:pointer;width:34px;height:34px;border-radius:50%;background:var(--brand);color:#fff;display:grid;place-items:center;font-size:1.4rem;font-weight:500;line-height:1}
.top-plus>summary::-webkit-details-marker{display:none}
.top-plus[open]>summary{filter:brightness(.92)}
.tp-menu{position:absolute;top:calc(100% + 8px);inset-inline-end:-40px;min-width:240px;background:var(--panel);border:1px solid var(--line);border-radius:12px;box-shadow:0 12px 32px rgba(0,0,0,.16);padding:6px;z-index:70;display:grid}
.tp-menu a{display:flex;gap:10px;align-items:center;padding:11px 12px;border-radius:8px;color:var(--ink);font-weight:500;white-space:nowrap}
.tp-menu a:hover{background:var(--brand-soft);text-decoration:none}
@media (max-width:560px){.tp-menu{position:fixed;top:calc(var(--top-h) + 4px);inset-inline:8px;min-width:0}.tp-menu a{padding:14px 12px;font-size:1.02rem}}
.bell .count{background:var(--warn)}
.bell.urgent .count{background:var(--bad)}
.bell-panel{position:fixed;top:calc(var(--top-h) + 4px);inset-inline-end:10px;width:400px;max-width:calc(100vw - 16px);max-height:75vh;overflow:auto;background:var(--panel);border:1px solid var(--line);border-radius:12px;box-shadow:0 14px 36px rgba(0,0,0,.18);z-index:70;padding:8px;white-space:normal}
.topbar.with-viewas .bell-panel{top:calc(var(--top-h) + 38px)}
@media (max-width:560px){.bell-panel{inset-inline:8px;width:auto}}
.bp-head{display:flex;justify-content:space-between;align-items:center;padding:6px 8px 8px;border-bottom:1px solid var(--line)}
.bp-empty{color:var(--muted);padding:16px 8px;margin:0}
.bp-list{list-style:none;margin:0;padding:0}
.bp-row{display:flex;align-items:center;gap:4px;border-bottom:1px solid var(--line)}
.bp-row:last-child{border-bottom:0}
.bp-open{flex:1;display:flex;gap:10px;align-items:center;padding:9px 6px;color:var(--ink);min-width:0}
.bp-open:hover{background:var(--brand-soft);text-decoration:none;border-radius:8px}
.bp-n{min-width:34px;height:28px;border-radius:14px;display:grid;place-items:center;font-weight:700;font-size:.86rem;background:var(--mute-bg);flex:none;padding:0 6px}
.bp-n.bad{background:var(--bad-bg);color:var(--bad)} .bp-n.warn{background:var(--warn-bg);color:var(--warn)} .bp-n.info{background:var(--info-bg);color:var(--info)}
.bp-text{flex:1;min-width:0;font-size:.9rem;line-height:1.3}
.bp-text .badge{font-size:.7rem;padding:0 6px}
.bp-snooze button{font-size:1.1rem;padding:8px;border-radius:8px}
.bp-snooze button:hover{background:var(--bg)}
.bp-more{margin:6px 8px;font-size:.88rem}
/* Done — Undo */
.toast-undo{display:flex;gap:12px;align-items:center;position:relative;overflow:hidden;cursor:default}
.toast-undo .btn{flex:none}
.toast-timer{position:absolute;inset-inline-start:0;bottom:0;height:3px;width:100%;background:var(--ok);opacity:.45;animation:dh-timer linear forwards;transform-origin:left}
[dir=rtl] .toast-timer{transform-origin:right}
@keyframes dh-timer{from{transform:scaleX(1)}to{transform:scaleX(0)}}
.undo-offer{display:flex;gap:10px;align-items:center;flex-wrap:wrap}
/* snooze, groups of tasks, snoozed */
.work-line{display:flex;align-items:center;gap:6px;border-top:1px solid var(--line)}
.work-line .work-row{flex:1;border-top:0;min-width:0}
.snooze-form{margin:0}
.snooze-btn{white-space:nowrap}
.snooze-small .snooze-btn{padding:4px 8px;font-size:.8rem}
@media (max-width:640px){.work-line{flex-wrap:wrap}.work-line .snooze-form{margin-inline-start:46px;margin-block-end:8px}.snooze-btn span{display:none}.snooze-small .snooze-btn span{display:inline}}
.task-grp{border:1px solid var(--line);border-radius:10px;margin:0 0 12px;background:var(--bg)}
.task-grp>summary{list-style:none;cursor:pointer}
.task-grp>summary::-webkit-details-marker{display:none}
.task-grp-head{display:flex;gap:10px;align-items:center;padding:10px 12px;flex-wrap:wrap}
.task-grp-head b{flex:1;min-width:160px}
.task-grp-open{color:var(--brand);font-size:.86rem}
.task-grp[open]>.task-grp-head .task-grp-open{color:var(--muted)}
.task-grp-tools{display:flex;justify-content:flex-end;padding:0 12px 8px}
.task-grp>.task{margin:0 10px 10px!important}
.task .snooze-form{align-self:flex-end}
.snoozed-card .sn-row{display:flex;gap:10px;align-items:center;padding:8px 0;border-top:1px solid var(--line);flex-wrap:wrap}
.snoozed-card .sn-text{flex:1;min-width:180px}
.snoozed-card>form:last-child{margin-top:10px}
/* saved views */
.sv-bar{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin:-6px 0 14px}
.sv-lbl{color:var(--muted);font-size:.85rem}
.sv-chip{display:inline-flex;align-items:center;border:1px solid var(--line);border-radius:999px;background:var(--panel);padding-inline-start:12px;font-size:.88rem;max-width:100%}
.sv-chip a{color:var(--ink);padding:5px 0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:220px}
.sv-chip.on{background:var(--brand);border-color:var(--brand)} .sv-chip.on a,.sv-chip.on .sv-x{color:#fff}
.sv-x{background:none;border:0;cursor:pointer;color:var(--muted);font-size:1.05rem;padding:4px 10px;line-height:1}
.sv-x:hover{color:var(--bad)}
.sv-all{font-size:.85rem}
.sv-save>summary{list-style:none;cursor:pointer}
.sv-save>summary::-webkit-details-marker{display:none}
.sv-save[open]{flex-basis:100%}
.sv-form{margin-top:8px;background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:10px;max-width:520px}
/* the desk */
.desk-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:14px;margin-bottom:18px}
.desk-btn{display:grid;gap:4px;align-content:center;min-height:132px;padding:18px;border-radius:16px;background:var(--panel);border:2px solid var(--line);color:var(--ink);box-shadow:0 2px 6px rgba(21,35,45,.06)}
.desk-btn:hover{text-decoration:none;border-color:var(--brand);box-shadow:0 6px 18px rgba(21,35,45,.12)}
.desk-btn b{font-size:1.2rem}
.desk-btn small{color:var(--muted)}
.desk-ico{font-size:1.9rem;line-height:1}
.desk-new{background:var(--brand);border-color:var(--brand);color:#fff}.desk-new small{color:rgba(255,255,255,.85)}
.desk-in{border-color:#bfe3cd}.desk-pay{border-color:#f0dcae}.desk-came{border-color:#c5d8f2}
@media (max-width:560px){.desk-grid{grid-template-columns:1fr 1fr;gap:10px}.desk-btn{min-height:118px;padding:14px}.desk-btn b{font-size:1.02rem}.desk-btn small{font-size:.78rem}}
.desk-deps{display:grid;gap:8px}
.desk-dep{display:grid;grid-template-columns:150px 1fr auto;gap:10px;align-items:center;padding:12px 14px;border:1px solid var(--line);border-radius:10px;color:var(--ink);background:var(--panel)}
.desk-dep:hover{border-color:var(--brand);text-decoration:none;background:var(--brand-soft)}
.desk-dep-what small{display:block}
.desk-dep-left{font-weight:600;color:var(--ok);white-space:nowrap}
.desk-dep-left.few{color:var(--warn)}
@media (max-width:640px){.desk-dep{grid-template-columns:1fr auto}.desk-dep-what{grid-column:1/-1;grid-row:2}}
.desk-find{display:flex;gap:10px;align-items:flex-end;flex-wrap:wrap}
.desk-find label{flex:1;min-width:200px}
.desk-find input{font-size:1.1rem;padding:12px}
.desk-result-head{display:flex;justify-content:space-between;gap:10px;flex-wrap:wrap;margin-bottom:10px}
.desk-result-pay{text-align:end}
.desk-receipt{margin-top:12px;padding-top:10px;border-top:1px solid var(--line)}
.desk-guest-list{list-style:none;margin:0;padding:0}
.desk-guest-list li{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:10px 6px;border-top:1px solid var(--line);flex-wrap:wrap}
.desk-guest-list li.is-on{background:var(--ok-bg)} .desk-guest-list li.is-arrived{background:var(--info-bg)}
.desk-guest-do{display:flex;gap:6px;flex-wrap:wrap}
.desk-guest-do .btn{min-height:44px;min-width:110px;justify-content:center}
@media (max-width:640px){.desk-guest-do{width:100%}.desk-guest-do form{flex:1}.desk-guest-do .btn{width:100%}}
/* walk-in booking */
.walkin{max-width:860px}
.wi-step h2{display:flex;gap:10px;align-items:center}
.wi-n{width:28px;height:28px;border-radius:50%;background:var(--brand);color:#fff;display:grid;place-items:center;font-size:.9rem;flex:none}
.wi-step input[type=tel]{font-size:1.25rem;padding:12px;letter-spacing:.03em}
.wi-found{display:flex;flex-wrap:wrap;gap:8px;margin:10px 0}
.wi-found[hidden],.wi-picked[hidden],#wi-names[hidden]{display:none}
.wi-found-q{flex-basis:100%;margin:0;color:var(--muted)}
.wi-person{min-height:46px;white-space:normal;text-align:start}
.wi-picked{display:flex;gap:12px;align-items:center;flex-wrap:wrap;margin:10px 0;padding:10px 12px;background:var(--ok-bg);color:var(--ok);border-radius:10px}
.wi-deps{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:10px}
.wi-dep{display:grid;gap:3px;padding:14px;border:2px solid var(--line);border-radius:12px;cursor:pointer;background:var(--panel);font-weight:400;position:relative}
.wi-dep input{position:absolute;opacity:0;pointer-events:none}
.wi-dep:hover{border-color:var(--brand)}
.wi-dep.on{border-color:var(--brand);background:var(--brand-soft);box-shadow:0 0 0 2px var(--brand-soft)}
.wi-dep:focus-within{outline:2px solid var(--brand);outline-offset:2px}
.wi-dep-what{font-weight:600;font-size:1.02rem}
.wi-dep-meta{color:var(--muted);font-size:.86rem}
@media (max-width:560px){.wi-deps{grid-template-columns:1fr 1fr;gap:8px}.wi-dep{padding:10px}.wi-dep-what{font-size:.94rem}.wi-dep-meta{font-size:.78rem}}
.wi-counts{display:grid;gap:10px}
.wi-count{display:grid;grid-template-columns:1fr 52px 76px 52px;gap:8px;align-items:center}
.wi-count[hidden]{display:none}
.wi-count-lbl{font-weight:600}
.wi-count input{text-align:center;font-size:1.15rem;padding:10px 4px}
.wi-step-btn{min-height:48px;justify-content:center;font-size:1.3rem;padding:0}
.wi-save{position:sticky;bottom:0;padding:10px 0;background:linear-gradient(transparent,var(--bg) 30%)}
.wi-save .btn{width:100%;justify-content:center}
@media (min-width:700px){.wi-save .btn{width:auto;min-width:260px}}
/* scan to check in */
.scan-open{min-height:40px}
@media (max-width:760px){.ck-form{flex-wrap:wrap;max-width:100%}.ck-form select,.ck-form input{min-width:0;flex:1 1 140px}}      /* the trip page was wider than a phone */
.scan-dlg{border:0;border-radius:16px;padding:16px;width:min(520px,calc(100vw - 16px));max-height:calc(100vh - 16px);box-shadow:0 20px 50px rgba(0,0,0,.3)}
.scan-dlg::backdrop{background:rgba(10,20,30,.6)}
.scan-head{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-bottom:10px}
.scan-cam{position:relative;border-radius:12px;overflow:hidden;background:#000;aspect-ratio:4/3}
.scan-cam[hidden]{display:none}
.scan-cam video{width:100%;height:100%;object-fit:cover;display:block}
.scan-frame{position:absolute;inset:18%;border:3px solid rgba(255,255,255,.85);border-radius:14px;box-shadow:0 0 0 999px rgba(0,0,0,.25)}
.scan-result{margin:12px 0;padding:14px;border-radius:12px;background:var(--bg);text-align:center}
.scan-result[hidden]{display:none}
.scan-result.ok{background:var(--ok-bg);color:var(--ok)} .scan-result.bad{background:var(--bad-bg);color:var(--bad)}
.scan-name{font-size:1.8rem;font-weight:700;line-height:1.2;overflow-wrap:anywhere}
.scan-msg{font-size:1rem;margin-top:4px}
.scan-result .scan-undo{margin-top:8px}
.scan-hint{margin:8px 0}
.scan-manual input{font-size:1.1rem;letter-spacing:.06em;text-transform:uppercase}
.ci-card{max-width:560px;margin-inline:auto;text-align:center}
.ci-card.is-on{border-color:#bfe3cd;background:var(--ok-bg)} .ci-card.is-arrived{border-color:#c5d8f2}
.ci-name{font-size:2rem;margin:8px 0}
.ci-card .btn-row{justify-content:center}
/* the guest's check-in QR codes (pages for customers) */
.ci-qr-list{display:flex;flex-wrap:wrap;gap:14px;justify-content:center}
.ci-qr{margin:0;text-align:center;background:#fff;border:1px solid var(--line);border-radius:12px;padding:10px 10px 12px}
.ci-qr-img svg{width:200px;height:200px;max-width:70vw;display:block;margin:0 auto}
.ci-qr code{font-size:1rem;letter-spacing:.08em;color:var(--ink)}
/* v3.19 phones: the header keeps its round buttons whole; "who is online" makes room for the + button */
@media (max-width:560px){.topbar .toponline{display:none}.topbar .top-plus,.topbar .bell,.topbar .signout,.topbar .menu-btn{flex-shrink:0}.top-plus>summary{width:32px;height:32px}}
/* v3.19.1 OTAs: the history under "Alert when no bookings for … days", across the whole form */
.fields > label:has(.otaq-hint){grid-column:1/-1}
.fields > label:has(.otaq-hint) > input{max-width:220px}
.otaq-hint{display:grid;gap:4px;font-weight:400;line-height:1.45}
.otaq-suggest{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
/* v3.19.1 my target: the strip at the top of every page, and the note at 50 / 75 / 100 % */
.goal-strip{display:flex;align-items:center;flex-wrap:wrap;gap:6px 12px;padding:7px 12px;margin:0 0 12px;border-radius:10px;background:#e8f3f6;border:1px solid #cfe4ea;color:var(--ink);text-decoration:none;font-size:.86rem;line-height:1.3}
.goal-strip:hover{border-color:var(--brand,#0b6e8a);text-decoration:none}
.goal-strip .gs-lbl{font-weight:600}
.goal-strip .gs-bar{flex:1 1 120px;min-width:90px;max-width:260px;height:8px;border-radius:5px;background:#cfe0e5;overflow:hidden}
.goal-strip .gs-bar i{display:block;height:100%;background:var(--brand,#0b6e8a);border-radius:5px;transition:width .6s}
.goal-strip .gs-pct{font-size:1rem}
.goal-strip .gs-amt,.goal-strip .gs-rank{color:var(--muted,#5f7280)}
.goal-strip .gs-bonus{color:#1a7f4b;font-weight:600}
.goal-strip.done{background:#e6f5ec;border-color:#bfe3cc}
.goal-strip.done .gs-bar i{background:#1a7f4b}
.goal-cheer{position:relative;margin:0 0 10px;padding:12px 44px 12px 14px;border-radius:12px;color:#fff;font-weight:600;background:linear-gradient(120deg,#0b6e8a,#1aa37a);box-shadow:0 4px 14px rgba(11,110,138,.25);animation:gc-pop .5s ease-out}
[dir=rtl] .goal-cheer{padding:12px 14px 12px 44px}
.goal-cheer.m100{background:linear-gradient(120deg,#d97706,#e11d48,#7c3aed)}
.goal-cheer .gc-burst{display:inline-block;font-size:1.3rem;animation:gc-spin 1.2s ease-out}
.goal-cheer .gc-x{position:absolute;inset-inline-end:10px;top:9px;background:none;border:0;color:#fff;font-size:1.1rem;cursor:pointer}
@keyframes gc-pop{0%{transform:scale(.92);opacity:0}100%{transform:scale(1);opacity:1}}
@keyframes gc-spin{0%{transform:rotate(-30deg) scale(.6)}60%{transform:rotate(15deg) scale(1.25)}100%{transform:none}}
@media (max-width:560px){.goal-strip{font-size:.8rem;gap:4px 8px}.goal-strip .gs-amt,.goal-strip .gs-rank{display:none}.goal-strip .gs-bar{flex-basis:80px}}
.tg-grid input{width:110px}.tg-grid .tg-team td{background:#f3f8fa}.tg-tiers input{width:90px}
.tg-link{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
/* v3.19.2 a booking entered after its trip sailed (an OTA checked late) */
.trip-card.late{border-style:dashed;background:var(--mute-bg)}
.day-chip.past em{color:var(--muted)}
.late-title{margin-top:18px}
.late-note{border-inline-start:4px solid var(--warn)}
/* v3.19.2 a child ticket used by an adult: the difference on the booking, the check at the boat */
.charge{padding:10px 0;border-top:1px solid var(--line,#e3e3e3)}
.charge:first-of-type{border-top:0}
.charge .btn-row{margin-top:6px;flex-wrap:wrap;align-items:flex-start}
.adult-at{margin-top:4px}.adult-at summary,.ci-adult summary{font-size:.85rem}
.ci-adult{margin-top:6px}.ci-adult form{min-width:180px}
.ci-kids{margin:8px 0}
.gl-child{background:var(--warn-bg);border-radius:8px;padding:8px 10px}
/* v3.19.2 a task says what happened and what to do */
.task-why{font-size:.85rem;color:var(--muted,#5f7280);margin:2px 0 4px;max-width:70ch}
/* v3.19.2 the best post itself: its picture beside the caption and the reactions */
.mk-best{display:flex;gap:10px;align-items:flex-start;min-width:220px}
.mk-best-pic{width:72px;height:72px;object-fit:cover;border-radius:8px;border:1px solid var(--line,#e3e3e3);flex:0 0 auto}
/* v3.19.2 the marina gate pass list: clean and neat on paper (no colours, no "missing" marks) */
.gp-sheet{font-size:.95rem}
.gp-title{margin:4px 0 10px}
.gp-info{width:100%;border-collapse:collapse;margin:0 0 12px}
.gp-info td{border:1px solid #c8c8c8;padding:6px 10px;vertical-align:top}
.gp-info td span{display:block;font-size:.72rem;color:#666;text-transform:uppercase;letter-spacing:.03em}
.gp-info td b{font-size:1rem}
.gp-table th{background:#f1f3f4;text-align:start;font-weight:600}
.gp-table th,.gp-table td{border:1px solid #c8c8c8;padding:6px 8px}
.gp-table tbody tr:nth-child(even) td{background:#fafafa}
.gp-table .gp-n{width:2.2em;text-align:center;color:#555}
.gp-totals{margin-top:10px}
.gp-missing{margin-bottom:12px}
.gp-switch{margin:0 0 10px}
@media print{
  @page{size:A4;margin:14mm 12mm;@bottom-center{content:counter(page) " / " counter(pages);font-size:9pt;color:#666}}
  .gp-table th{background:#f1f3f4!important;-webkit-print-color-adjust:exact;print-color-adjust:exact}
  .gp-table tbody tr:nth-child(even) td{background:#fafafa!important;-webkit-print-color-adjust:exact;print-color-adjust:exact}
  .gp-table thead{display:table-header-group}.gp-table tr{break-inside:avoid}
}
.gp-table th{text-transform:none;letter-spacing:0;color:#222;font-size:.85rem}

/* v3.20 market sweep: possible duplicates, "Is this X?" */
.mk-dupe,.mk-ask{border-top:1px solid var(--line);padding:10px 0 4px}
.mk-dupe:first-of-type,.mk-ask:first-of-type{border-top:0}
.mk-dupe ul.plain li{padding:3px 0;overflow-wrap:anywhere}
.mk-dupe-why{margin:0 0 4px}
.mk-ask p{margin:0 0 6px}
.mk-ask .btn-row{flex-wrap:wrap;gap:6px}
.mk-ask-other select{max-width:220px}
.mk-del-now{display:block;margin-top:4px}
/* v3.20 suggestions: the record on the page when it was sent */
.sg-snap{font-size:.85rem;background:var(--panel);border:1px solid var(--line);border-radius:8px;padding:8px 10px;overflow-wrap:anywhere}
.sg-snap dt{font-weight:600;margin-top:4px}.sg-snap dd{margin:0 0 2px}
.idea-dlg details.idea-prob{margin:6px 0}.idea-dlg details.idea-prob textarea{width:100%}
.idea-dlg details.idea-prob label{display:block;margin-top:4px}

/* v3.19.3 the booking page: what Bokun was told about the money */
.bk-paid-lines{margin:4px 0 0}.bk-paid-lines li{padding:1px 0}
.db-missing code{font-size:.9em}
/* v3.20 policies: the pages customers read, the checkout tick, Admin → Policies */
.pub-main:has(.pol-page){max-width:920px}
.pol-head{display:flex;flex-wrap:wrap;justify-content:space-between;gap:6px 16px;align-items:flex-start}
.pol-actions{display:flex;gap:12px;align-items:center;flex-wrap:wrap;margin:4px 0 8px}
.pol-text{line-height:1.7;overflow-wrap:anywhere}
.pol-text h2{font-size:1.2rem;margin:22px 0 8px}
.pol-text h3{font-size:1.05rem;margin:22px 0 6px}
.pol-text h4{font-size:.95rem;margin:16px 0 6px}
.pol-text ul,.pol-text ol{padding-inline-start:22px;margin:6px 0 12px}
.pol-text li{margin:3px 0}
.pol-tw{overflow-x:auto;margin:8px 0 14px}
.pol-tw table{border-collapse:collapse;width:100%;font-size:.92rem}
.pol-tw th,.pol-tw td{border:1px solid var(--line);padding:7px 9px;text-align:start;vertical-align:top}
.pol-tw th{background:var(--brand-soft);font-weight:600;font-size:.88rem;text-transform:none;letter-spacing:0;color:var(--ink);white-space:normal}
.pol-tw td{white-space:normal}
.pol-more{margin:18px 0 0}
.pol-print-only{display:none}
.pol-tick{margin:12px 0;padding:12px 14px;border:1px solid var(--line);border-radius:10px;background:var(--brand-soft)}
.pol-tick-h{font-weight:600;margin:0 0 4px}
.pol-tick .pol-sum ul{margin:0 0 10px;padding-inline-start:20px;font-size:.9rem;line-height:1.55}
.pol-tick .pol-sum p{margin:0 0 8px;font-size:.9rem}
.pol-tick label.check{display:flex;gap:10px;align-items:flex-start;font-weight:500}
.pol-tick label.check input{width:20px;height:20px;margin-top:2px;flex:none}
.pol-ticks{display:grid;gap:10px}.pol-ticks label.check{margin:0;color:var(--ink)}.pol-ticks label.check span{min-width:0;overflow-wrap:anywhere}
.pol-ticks label.pol-offers{font-weight:400}.pol-ticks label.check+label.pol-offers{padding-top:10px;border-top:1px solid var(--line)}
.pol-line form.inline{margin-inline-start:6px}
.pol-both{align-items:start}.pol-both .pol-text{border:1px solid var(--line);border-radius:8px;padding:4px 14px 10px;background:var(--panel)}
textarea.pol-src{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.85rem;line-height:1.5;width:100%;box-sizing:border-box}
textarea.pol-src[dir=rtl]{font-family:inherit;font-size:.95rem;line-height:1.7}
textarea.pol-src{height:520px;max-height:75vh}textarea.pol-src.pol-src-sum{height:150px}
.pol-help ul{margin:6px 0;padding-inline-start:20px;font-size:.88rem}
@media print{
  body.public .pol-actions,body.public .pol-more{display:none!important}
  body.public .pub-card.pol-page{border:0;padding:0;margin:0}
  body.public{background:#fff}
  .pol-print-only{display:block;color:#444;font-size:9pt;margin-top:14px}
  .pol-tw th{-webkit-print-color-adjust:exact;print-color-adjust:exact}
  .pol-text h3{break-after:avoid}.pol-tw tr{break-inside:avoid}
}
/* v3.20 OTA sales: cancelled by the customer / on the OTA, Sold via, Check Bokun now, notices */
.cancel-form{flex-basis:100%;width:100%;max-width:640px;margin-top:8px}
.cancel-form .fields label{min-width:0}
.btn-row .cancel-form{order:9}
.sold-via summary{display:inline;cursor:pointer;color:var(--accent,#0e6e8a);font-size:.88rem;margin-inline-start:6px}
.sold-via form{max-width:420px}
.bokun-check{display:inline}
.sale-notices li{padding:6px 0;border-bottom:1px solid var(--line)}
.sale-notices li.unseen a{font-weight:600}
.ota-sweep td small.bad-text{display:inline-block;max-width:260px}
@media (max-width:640px){.cancel-form{max-width:none}.sold-via form{max-width:none}}
/* v3.20 Admin → Privacy → Automatic deletion */
.ret-points{margin:0;padding-inline-start:1.2em}.ret-points li{margin:4px 0}
.ret-rule .card-head h2{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.ret-parts{margin:6px 0 0;padding-inline-start:1.2em}.ret-parts li{margin:2px 0}
.ret-preview .ret-n{font-size:1.15rem}
.ret-log td.num,.ret-log th.num{text-align:center}
@media (max-width:640px){.ret-rule dl.kv{grid-template-columns:1fr;row-gap:2px}.ret-rule dl.kv dt{margin-top:8px}}
/* v3.20 the Federation's incident report (SWSDF) */
.incident.is-overdue{border-inline-start:4px solid var(--bad);padding-inline-start:10px;background:var(--bad-bg)}
.sdf-send.is-overdue{border-color:var(--bad);box-shadow:0 0 0 1px var(--bad) inset}
.sdf-steps{margin:4px 0 8px;padding-inline-start:1.3em}.sdf-steps li{margin:2px 0}
.sdf-send .inline-form label{flex:1 1 210px;min-width:0}.sdf-send .inline-form input,.sdf-send .inline-form select{width:100%;box-sizing:border-box}
.sdf-choice{display:flex;flex-wrap:wrap;gap:4px 0;align-items:center;padding:6px 0;border-block-end:1px dashed var(--line)}
.sdf-choice:last-child{border:0}
.sdf-dive{border:1px solid var(--line);border-radius:10px;padding:8px 12px 12px;margin:0 0 10px}.sdf-dive legend{font-weight:600;padding:0 6px}
.sdf-rescue{display:grid;gap:10px}
.sdf-rline{display:grid;grid-template-columns:28px minmax(0,2fr) minmax(0,1fr);gap:10px;align-items:start;border-block-end:1px solid var(--line);padding-block-end:10px}
.sdf-no{font-weight:600;color:var(--mute);padding-top:6px;text-align:center}
.sdf-q{font-weight:500;margin-bottom:4px}
.sdf-rline textarea{min-height:44px}
.sdf-signs{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:12px}
.sdf-signs fieldset{border:1px solid var(--line);border-radius:10px;padding:8px 12px 12px;display:grid;gap:10px}.sdf-signs legend{font-weight:600;padding:0 6px}
.sdf-save{position:sticky;bottom:0;z-index:5;display:flex;gap:8px;flex-wrap:wrap;padding:10px 0;background:var(--bg,#fff);border-top:1px solid var(--line)}
@media (max-width:640px){.sdf-rline{grid-template-columns:24px minmax(0,1fr)}.sdf-rline>label:last-child{grid-column:2}}
/* v3.20 credit codes and the cancel/refund calculator (booking and course pages #credit, Credit codes, the customer pages) */
.cr-code{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;letter-spacing:.04em;white-space:nowrap}
.cr-paid{margin-block-end:2px}
.cr-modes{gap:16px}
.cr-calc.js[data-mode] .cr-mode{display:none}
.cr-calc.js[data-mode=customer] .cr-mode-customer,.cr-calc.js[data-mode=we] .cr-mode-we,.cr-calc.js[data-mode=special] .cr-mode-special{display:block}
.cr-calc.js .cr-reason{display:none}
.cr-calc.js[data-reason=no_id] .cr-r-no_id,.cr-calc.js[data-reason=not_allowed] .cr-r-not_allowed,.cr-calc.js[data-reason=undeclared] .cr-r-undeclared,
.cr-calc.js[data-reason=safety] .cr-r-safety,.cr-calc.js[data-reason=quit] .cr-r-quit,.cr-calc.js[data-reason=doctor] .cr-r-doctor,
.cr-calc.js[data-reason=snorkel] .cr-r-snorkel,.cr-calc.js[data-reason=cut_short] .cr-r-cut_short{display:block}
.cr-calc.js .cr-opts[data-min]:not(.on){display:none}
.cr-mode,.cr-reason{border-inline-start:3px solid var(--brand-soft);padding-inline-start:10px;display:grid;gap:8px}
.cr-table tr.on td{background:var(--brand-soft);font-weight:600}
.cr-choice{display:flex;gap:8px;align-items:flex-start;margin:2px 0}
.cr-choice input{width:auto;margin-top:3px}
.cr-facts{margin:0}
.cr-hint{display:block;margin:6px 0}
.cr-decisions li{margin-block-end:4px}
.pay-fields[data-pay]:not([data-pay=credit]) .pay-credit{display:none}
.pay-fields[data-pay=credit] :is(.pay-ota,.pay-agency,.pay-matrix){display:none}
.pub-credit summary{cursor:pointer;padding:4px 0}
.pub-credit label{display:block;margin-top:8px}
.pub-credit input[name=credit_code]{text-transform:uppercase;letter-spacing:.04em}
@media (max-width:640px){.cr-codes .btn-row,.cr-list .btn-row{flex-wrap:wrap}.cr-modes{flex-direction:column;align-items:flex-start;gap:6px}}
/* v3.20 guest forms (guest helper): the steps of a guest — details, health, release — and the staff cards */
.gf-steps{list-style:none;display:flex;gap:6px;margin:12px 0 0;padding:0;flex-wrap:wrap}
.gf-steps li{flex:1;min-width:90px;padding:7px 10px;border-radius:20px;background:var(--bg);color:var(--muted);font-size:.85rem;text-align:center;border:1px solid var(--line)}
.gf-steps li span{display:inline-grid;place-items:center;width:20px;height:20px;border-radius:50%;background:var(--line);color:var(--ink);font-size:.75rem;margin-inline-end:4px}
.gf-steps li.cur{background:var(--brand);border-color:var(--brand);color:#fff;font-weight:600}
.gf-steps li.cur span{background:#fff;color:var(--brand)}
.gf-steps li.done{border-color:var(--ok);color:var(--ok)}
.gf-steps li.done span{background:var(--ok);color:#fff}
.gf-steps li a{color:inherit}
.gf-back{margin:0 0 6px;font-size:.9rem}
.gf-known{display:grid;grid-template-columns:auto 1fr;gap:4px 14px;margin:0 0 6px}
.gf-known dt{color:var(--muted);font-size:.85rem}
.gf-known dd{margin:0;font-weight:500}
.gf-border{margin-top:12px}
.gf-chips{list-style:none;display:flex;flex-wrap:wrap;gap:6px;margin:6px 0 10px;padding:0}
.gf-chips li{padding:4px 10px;border:1px solid var(--line);border-radius:16px;font-size:.82rem;color:var(--muted);display:flex;gap:6px;align-items:center}
.gf-chips li.ok{border-color:var(--ok);color:var(--ok)}
.gf-send{border-top:1px dashed var(--line);padding-top:10px;margin-top:6px}
.gf-send .btn-row{flex-wrap:wrap}
.gf-intro summary{cursor:pointer;color:var(--brand);font-size:.9rem;margin-bottom:6px}
.gf-intro p,.gf-directions{font-size:.88rem}
.gf-noall{display:flex;flex-wrap:wrap;gap:8px 12px;align-items:center;margin:10px 0;padding:10px;border-radius:10px;background:var(--brand-soft)}
.gf-qs{margin:0;padding-inline-start:22px;display:grid;gap:4px}
.gf-q{padding:8px 0;border-bottom:1px solid var(--line)}
.gf-q:last-child{border-bottom:0}
.gf-qt{display:block;font-size:.93rem;margin-bottom:6px}
.gf-star{color:var(--bad);font-weight:600}
.gf-yn{display:inline-flex;gap:8px}
.pub-form .gf-yn label{display:flex;flex-direction:row;align-items:center;gap:6px;padding:7px 16px;border:1px solid var(--line);border-radius:20px;cursor:pointer;font-weight:500;min-width:76px;justify-content:center;background:var(--panel)}
.gf-yn input{width:18px;height:18px;margin:0}
.gf-yn label:has(input:checked){border-color:var(--brand);background:var(--brand-soft)}
.gf-yn label.gf-y:has(input:checked){border-color:var(--bad);background:var(--bad-bg)}
.gf-box{margin:10px 0 4px;border:1px solid var(--warn);border-radius:10px;padding:8px 12px;background:var(--warn-bg)}
.gf-box legend{font-weight:600;font-size:.9rem;padding:0 6px}
.gf-box .gf-sub{border-bottom-color:rgba(0,0,0,.08)}
.gf-none{margin:12px 0;padding:10px;border-radius:10px;background:var(--ok-bg)}
.gf-result{border-inline-start:4px solid var(--warn)}
.gf-result.gf-doctor,.gf-result.gf-nodive{border-inline-start-color:var(--bad)}
.gf-doc{max-height:46vh;overflow-y:auto;border:1px solid var(--line);border-radius:10px;padding:12px 14px;background:var(--bg);font-size:.9rem;line-height:1.6}
.gf-doc h3{font-size:1rem}
.gf-doc:focus{outline:2px solid var(--brand)}
.gf-ticks{display:grid;gap:12px}
.gf-ticks label.check{padding:10px;border:1px solid var(--line);border-radius:10px}
.gf-ticks label.gf-release-tick{border-color:var(--brand)}
.gf-sig input{font-size:1.1rem;padding:12px}
.gf-rel{display:flex;flex-direction:column;gap:4px;font-weight:500}
.gf-done h2{justify-content:center}
.gf-how{padding-inline-start:20px}
.gf-actions .pub-hint{margin-top:8px}
.gf-policy{text-align:center;margin:8px 0 20px}
.gf-card h2{flex-wrap:wrap}
.gf-staff-list{list-style:none;margin:0;padding:0}
.gf-staff-row{display:flex;justify-content:space-between;gap:12px;padding:10px 0;border-bottom:1px solid var(--line);flex-wrap:wrap}
.gf-staff-row:last-child{border-bottom:0}
.gf-steps-mini{display:flex;flex-wrap:wrap;gap:4px 12px;font-size:.84rem;margin-top:4px}
.gf-doctor-staff{margin-top:6px;font-size:.86rem;display:flex;flex-wrap:wrap;gap:6px;align-items:center}
.gf-act{align-items:flex-start}
.gf-act form{margin:0}
.inline-details{display:inline-block}
.inline-details summary{cursor:pointer;color:var(--brand)}
.ci-gf{margin-top:2px}
.ci-gf-qr summary{cursor:pointer}
.ci-gf-qr img{width:180px;height:180px;display:block;margin:6px 0;background:#fff;padding:6px;border-radius:8px}
.gf-print h2{margin-top:18px;font-size:1.05rem;border-bottom:1px solid var(--line);padding-bottom:4px}
.gf-tbl{width:100%;border-collapse:collapse;font-size:.88rem}
.gf-tbl th,.gf-tbl td{border:1px solid var(--line);padding:5px 8px;text-align:start;vertical-align:top}
.gf-tbl th{background:var(--bg);font-weight:600;width:22%;text-transform:none;letter-spacing:0;white-space:normal;color:var(--ink);font-size:.85rem}
.gf-ans td.num,.gf-ans td.nowrap{white-space:nowrap;width:1%}
.gf-subrow td{padding-inline-start:22px;font-size:.84rem}
.gf-yes{color:var(--bad)}
.gf-small{font-size:.8rem}
.gf-ticklist{list-style:none;padding:0;font-size:.9rem}
.gf-doc-print{max-height:none;overflow:visible;background:none}
.gf-sign-tbl td{height:34px}
.gf-sign-tbl td.gf-stamp{height:110px}
@media print{.gf-pagebreak{break-after:page}.gf-doc{max-height:none;overflow:visible}.gf-tbl th{background:none}}
@media (max-width:640px){.gf-steps li{min-width:0;padding:6px;font-size:.78rem}.pub-form .gf-yn label{min-width:64px;padding:8px 12px}.gf-staff-row{flex-direction:column}.gf-qs{padding-inline-start:18px}}
/* end v3.20 guest forms */
.cr-calc{grid-template-columns:minmax(0,1fr);min-width:0}.cr-calc>*,.cr-mode>*,.cr-reason>*{min-width:0}.cr-calc select,.cr-calc input{max-width:100%;min-width:0}
/* v3.21 reports: sections on the Reports page, ranked bar lists, comparison tables, month bars (app/views/reports) */
.rep-sec{margin:0 0 22px}.rep-sec>h2{margin:0 0 10px;font-size:1.05rem;color:var(--muted);text-transform:none}
.rank-bars{list-style:none;margin:0;padding:0;display:grid;gap:9px}
.rank-bars .rk{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:3px 10px;color:inherit;text-decoration:none;align-items:baseline}
.rank-bars a.rk:hover .rk-l{text-decoration:underline}
.rank-bars .rk-l{min-width:0;overflow-wrap:anywhere}
.rank-bars .rk-v{font-variant-numeric:tabular-nums;white-space:nowrap;text-align:end;font-weight:600}
.rank-bars .rk-v small{color:var(--muted);font-weight:400;margin-inline-start:4px}
.rank-bars .rk-b{grid-column:1/-1;height:8px;background:var(--mute-bg);border-radius:4px;overflow:hidden}
.rank-bars .rk-b i{display:block;height:100%;background:var(--brand);border-radius:4px;min-width:2px}
.rep-dim h3,#products h3{font-size:.92rem;margin:0 0 8px;color:var(--muted)}
.rep-cmp th[scope=row]{text-align:start;font-weight:500;font-size:.9rem;text-transform:none;letter-spacing:0;color:var(--ink);white-space:normal;min-width:120px}
.rep-cmp th[scope=row] small{font-weight:400}
.rep-cmp td a{color:inherit}.rep-cmp td a:hover{color:var(--brand)}
.rep-cmp .rep-free th,.rep-cmp .rep-free td{border-top:2px solid var(--line)}
.rep-check{display:flex;flex-wrap:wrap;gap:6px 10px;align-items:center;padding:10px 14px}
.mini-bar{display:flex;align-items:center;gap:8px;color:inherit;text-decoration:none;min-width:120px}
.mini-bar>span{flex:1;height:10px;background:var(--mute-bg);border-radius:4px;overflow:hidden;min-width:60px}
.mini-bar>span i{display:block;height:100%;background:var(--brand);border-radius:4px}
.mini-bar.b>span i,.sw.sw-b{background:#e07a2e}
.mini-bar b{font-variant-numeric:tabular-nums;min-width:34px;text-align:end;font-weight:600}
.rep-bvt .sw{display:inline-block;width:10px;height:10px;border-radius:3px;margin-inline-end:6px;vertical-align:middle}.rep-bvt .sw-a{background:var(--brand)}
.rep-head-row{display:flex;flex-wrap:wrap;gap:8px 14px;align-items:center;justify-content:space-between;margin-bottom:8px}.rep-head-row h2{margin:0}
.seg a.seg-btn{text-decoration:none;display:inline-block}
.rep-tabs{margin-top:-4px}
.rep-cmp thead th{white-space:normal}
@media (max-width:640px){.rep-filters label{flex:1 1 140px}.rank-bars .rk{font-size:.9rem}.mini-bar{min-width:90px}
  .rep-cmp th,.rep-cmp td{padding:7px 4px;font-size:.8rem}.rep-cmp th[scope=row]{min-width:84px;font-size:.82rem}.rep-cmp thead th small{font-size:.68rem}}
@media print{.rank-bars .rk-b,.mini-bar>span{print-color-adjust:exact;-webkit-print-color-adjust:exact}}
/* end v3.21 reports */
/* v3.21 whatsapp — AI helpers in the inbox (Translate, Summarize, Suggested reply) and Meta's news on Settings → WhatsApp */
.wa-trform{margin:4px 0 0}
.wa-trbtn{border:0;background:none;padding:2px 0;color:var(--brand);font:inherit;font-size:12px;cursor:pointer;display:inline-flex;align-items:center;gap:4px;min-height:28px}
.wa-trbtn:hover{text-decoration:underline}
.wa-trbtn:disabled{opacity:.6;cursor:progress}
.wa-tr{margin-top:6px;padding-block-start:6px;border-block-start:1px dashed rgba(0,0,0,.18)}
.wa-tr-h{display:flex;align-items:center;gap:4px;color:var(--muted);font-size:11px}
.wa-note-ai{background:#eaf3fb;border-color:#9cc3e6}
.wa-note-ai .wa-note-by{color:var(--info)}
.wa-aibtn:disabled{opacity:.6;cursor:progress}
.wa-aibtn:disabled .wa-ic{animation:wa-pulse 1s ease-in-out infinite}
.wa-aibox{border:1px dashed var(--brand);border-radius:10px;padding:8px 10px;display:flex;flex-direction:column;gap:6px;font-size:13px;background:var(--brand-soft);max-height:40vh;overflow-y:auto}
.wa-aibox[hidden],.wa-composer[data-mode=note] .wa-aibox{display:none}
.wa-aibox p{margin:0}
.wa-aibox .wa-ai-txt{background:var(--panel);border-radius:8px;padding:6px 8px;margin-top:2px;white-space:normal;word-break:break-word}
.wa-aibox ul{margin:2px 0 0;padding-inline-start:18px}
.wa-aibox .btn-row{display:flex;gap:6px;flex-wrap:wrap}
.wa-ai-busy{color:var(--muted)}
.wa-ai-busy::before{content:'';display:inline-block;width:8px;height:8px;border-radius:50%;background:var(--brand);margin-inline-end:6px;animation:wa-pulse 1s ease-in-out infinite}
.wa-pop .wa-mi:disabled{opacity:.55;cursor:progress}
.wa-news{list-style:none;margin:8px 0 0;padding:0;display:flex;flex-direction:column;gap:8px}
.wa-news li{display:flex;gap:8px;align-items:baseline;flex-wrap:wrap;font-size:.92rem}
.wa-news li>span:not(.badge){flex:1 1 260px;min-width:0}
@media (prefers-reduced-motion:reduce){.wa-aibtn:disabled .wa-ic,.wa-ai-busy::before{animation:none}}
@media (max-width:900px){.wa-trbtn{min-height:36px;font-size:13px}.wa-aibox{max-height:34vh}}
/* end v3.21 whatsapp */

/* v3.21.1 alerts — WhatsApp for staff: the live count on the menu item (calm, red after 5 minutes), on the phone menu
   button, notes in the corner, "Waiting now" on the home pages, the "turn on notifications" banner, Settings → WhatsApp */
.nav-count.wab{background:var(--info-bg);color:var(--info)}
.nav-count.wab.late{background:var(--bad);color:#fff}
.wa-rail .nav-count.wab{background:var(--info);color:#fff}
.wa-rail .nav-count.wab.late{background:var(--bad)}
.menu-btn{position:relative}
.wab-dot{position:absolute;top:-1px;inset-inline-end:-4px;min-width:17px;height:17px;padding:0 4px;border-radius:99px;background:var(--info);color:#fff;
  font-size:10px;font-weight:700;line-height:17px;text-align:center;box-shadow:0 0 0 2px var(--panel)}
.wab-dot.late{background:var(--bad)}
.wab-dot[hidden]{display:none}
#wa-toasts{position:fixed;top:calc(var(--top-h) + 10px);inset-inline-end:16px;z-index:80;display:flex;flex-direction:column;gap:8px;width:min(360px,calc(100vw - 32px));pointer-events:none}
.wa-toast{pointer-events:auto;position:relative;background:var(--panel);color:var(--ink);border:1px solid var(--line);border-inline-start:4px solid var(--ok);border-radius:10px;
  box-shadow:0 8px 26px rgba(0,0,0,.18);padding:10px 12px;padding-inline-end:40px;animation:toast-in .18s ease-out}
.wa-toast .wt-h,.wa-toast .wt-t{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden;overflow-wrap:anywhere}
.wa-toast .wt-h{font-weight:600}
.wa-toast .wt-t{color:var(--muted);font-size:.9rem;margin:2px 0 8px}
.wa-toast .wt-x{position:absolute;top:6px;inset-inline-end:6px;width:30px;height:30px;border:0;background:none;font-size:20px;line-height:1;color:var(--muted);cursor:pointer;border-radius:6px}
.wa-toast .wt-x:hover{background:var(--bg);color:var(--ink)}
@media (max-width:560px){#wa-toasts{inset-inline:8px;width:auto;top:calc(var(--top-h) + 6px)}}
.wa-tile{display:flex;align-items:center;gap:14px;color:var(--ink);padding:14px 18px;border-inline-start:5px solid var(--ok)}
.wa-tile:hover{text-decoration:none;box-shadow:0 2px 10px rgba(0,0,0,.06)}
.wa-tile-ic{width:42px;height:42px;border-radius:50%;display:flex;align-items:center;justify-content:center;background:var(--ok-bg);color:var(--ok);flex:none}
.wa-tile-ic svg{width:22px;height:22px}
.wa-tile-main{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}
.wa-tile-h{font-size:.85rem;color:var(--muted);font-weight:600}
.wa-tile-n{font-size:1.45rem;line-height:1.1}
.wa-tile-go{color:var(--brand);font-weight:600;white-space:nowrap}
.wa-tile.some{border-inline-start-color:var(--info)}
.wa-tile.some .wa-tile-ic{background:var(--info-bg);color:var(--info)}
.wa-tile.late{border-inline-start-color:var(--bad);background:var(--bad-bg)}
.wa-tile.late .wa-tile-ic{background:var(--bad);color:#fff}
.wa-tile.late .wa-tile-n,.wa-tile.late .wa-tile-old{color:var(--bad);font-weight:600}
.wa-tile [hidden]{display:none}
@media (max-width:560px){.wa-tile{flex-wrap:wrap;padding:12px 14px}.wa-tile-go{width:100%;text-align:end}}
.wa-push-banner{display:flex;flex-wrap:wrap;align-items:center;gap:8px 12px;background:var(--info-bg);color:var(--ink);border:1px solid #c5d8f2;border-radius:10px;padding:8px 12px;margin-bottom:14px}
.wa-push-banner .wpb-txt{flex:1 1 240px;min-width:0}
.wa-push-banner .wpb-tip{display:block;color:var(--muted);margin-top:2px}
.wa-push-banner .wpb-act{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.wa-push-banner form{margin:0}
body:has(.wa-app) main > .wa-push-banner{margin:8px 16px 0}
.wa-staff-box{border-top:1px solid var(--line);padding-top:12px;margin-top:4px;display:flex;flex-direction:column;gap:8px;min-width:0;max-width:100%}
.wa-staff-box .table-wrap{max-width:100%;overflow-x:auto}
.wa-staff-box h3,.wa-staff-box h4{margin:0}
.wa-staff-box .wsa-what{margin:0;padding-inline-start:20px;display:flex;flex-direction:column;gap:4px}
/* end v3.21.1 alerts */
/* v3.21.1 cmed — Settings → Customer emails (views/admin/customer_emails.php): brand card, list | editor | preview, phone frames */
.ce-brand{display:flex;align-items:center;gap:12px 22px;flex-wrap:wrap}
.ce-logo{height:44px;width:auto;max-width:160px;object-fit:contain}
.ce-logo-name{font-size:1.15rem}
.ce-bi{display:flex;flex-direction:column;min-width:0;max-width:100%}
.ce-bi small{color:var(--muted);overflow-wrap:anywhere}
.ce-miss{color:var(--warn)}
.ce-swatch{display:inline-block;width:12px;height:12px;border-radius:3px;vertical-align:-1px;margin:0 2px;border:1px solid rgba(0,0,0,.12)}
.ce-brand-edit{margin-inline-start:auto;position:relative}
.ce-brand-edit>summary,.ce-vadd>summary{list-style:none;cursor:pointer}
.ce-brand-edit>summary::-webkit-details-marker,.ce-vadd>summary::-webkit-details-marker{display:none}
.ce-brand-menu,.ce-vmenu{position:absolute;z-index:20;top:calc(100% + 6px);background:var(--panel);border:1px solid var(--line);border-radius:10px;box-shadow:0 8px 24px rgba(0,0,0,.1);padding:12px;display:grid;gap:8px}
.ce-brand-menu{inset-inline-end:0;width:min(320px,86vw)}
.ce-color{display:flex;gap:8px;align-items:end;flex-wrap:wrap}
.ce-color input[type=color]{width:60px;height:36px;padding:2px}
.ce-layout{display:grid;grid-template-columns:230px minmax(0,1fr) 370px;gap:16px;align-items:start}
.ce-list{padding:12px;margin:0;min-width:0}
.ce-list h2{margin:4px 6px}
.ce-group{margin:12px 6px 4px;font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--muted)}
[dir=rtl] .ce-group{letter-spacing:0;font-size:.8rem}
.ce-item{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:2px 8px;padding:8px 10px;border-radius:8px;color:var(--ink)}
.ce-item:hover{background:var(--bg);text-decoration:none}
.ce-item.sel{background:var(--brand-soft);outline:1px solid var(--brand)}
.ce-name{font-weight:500}
.ce-item .badge{align-self:start}
.ce-when{grid-column:1/-1;color:var(--muted);font-size:.8rem}
.ce-ed{margin:0;min-width:0;scroll-margin-top:calc(var(--top-h) + 10px)}
.ce-history,#ce-wa{scroll-margin-top:calc(var(--top-h) + 10px)}
.ce-top{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}
.ce-top h2{margin:0}
.ce-sw{display:inline-flex;align-items:center;gap:8px;cursor:pointer;position:relative;font-size:.95rem}
.ce-sw input{position:absolute;opacity:0;inset-inline-start:0;top:50%;transform:translateY(-50%);width:38px;height:22px;margin:0;cursor:pointer}
.ce-track{width:38px;height:22px;border-radius:99px;background:#b9c3ca;position:relative;flex:none;transition:background .15s}
.ce-track:after{content:"";position:absolute;top:3px;inset-inline-start:3px;width:16px;height:16px;border-radius:50%;background:#fff;box-shadow:0 1px 2px rgba(0,0,0,.2)}
.ce-sw input:checked+.ce-track{background:var(--ok)}
.ce-sw input:checked+.ce-track:after{inset-inline-start:19px}
.ce-sw input:focus-visible+.ce-track{outline:2px solid var(--brand);outline-offset:2px}
.ce-sw .t-off,.ce-sw input:not(:checked)~.t-on{display:none}
.ce-sw input:not(:checked)~.t-off{display:inline}
.ce-when-row{display:flex;flex-wrap:wrap;gap:10px 14px;align-items:end;margin:14px 0 4px}
.ce-when-row>label{font-size:.88rem}
.ce-when-row label.ce-chk{display:flex;align-items:center;gap:8px;padding-bottom:9px;font-weight:400}
.ce-days{display:flex;gap:8px;align-items:center;font-weight:400}
.ce-days input{width:84px}
.ce-at{width:130px}
.ce-when-fixed{display:flex;flex-wrap:wrap;gap:4px 8px;align-items:baseline;padding:2px 0}
.ce-versions{display:flex;flex-wrap:wrap;gap:6px;align-items:center;margin-top:14px}
.ce-vlabel{font-size:.85rem;color:var(--muted);margin-inline-end:4px}
.ce-versions .pill.on{background:var(--brand);color:#fff;border-color:var(--brand)}
.ce-vadd{position:relative}
.ce-vadd>summary.pill{border-style:dashed;color:var(--brand)}
.ce-vmenu{inset-inline-start:0;min-width:min(290px,80vw);gap:2px;padding:10px}
.ce-vmenu b{font-size:.82rem;color:var(--muted);font-weight:500;margin-bottom:4px}
.ce-vmenu a{padding:6px 8px;border-radius:6px;color:var(--ink)}
.ce-vmenu a:hover{background:var(--brand-soft);text-decoration:none}
.ce-vhint{font-size:.82rem;color:var(--muted);margin:6px 0 0}
.ce-ed .flash{margin:10px 0 0}
.ce-sec{border-top:1px solid var(--line);margin-top:16px;padding-top:12px;display:grid;gap:12px;min-width:0}
.ce-sech{font-weight:700;display:flex;gap:6px 8px;align-items:center;flex-wrap:wrap}
.ce-sech .badge{font-weight:500}
.ce-langs{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,300px),1fr));gap:14px}
.ce-lang{border:1px solid var(--line);border-radius:10px;padding:12px;background:var(--bg);min-width:0}
.ce-lh{font-weight:600}
.ce-lbl{display:grid;gap:4px;font-size:.85rem;color:var(--muted);font-weight:500;margin:10px 0 0}
.ce-lbl input,.ce-lbl textarea{color:var(--ink);width:100%}
.ce-field{background:var(--panel);border:1px solid var(--line);border-radius:8px;padding:8px 10px;color:var(--ink);font-size:.95rem;font-weight:400;line-height:1.7;white-space:pre-wrap;overflow-wrap:anywhere;min-height:2.5em;outline:none;cursor:text}
.ce-field:focus{border-color:var(--brand);box-shadow:0 0 0 2px var(--brand-soft)}
.ce-field.ce-area{min-height:150px}
.ce-ed .chip{display:inline-block;background:var(--brand-soft);color:var(--brand);border:0;border-radius:6px;padding:0 7px;font:inherit;font-weight:600;font-size:.86rem;line-height:1.55;margin:1px 0;white-space:nowrap;vertical-align:baseline}
.ce-field .chip{cursor:default}
.ce-insert{margin-top:8px}
.ce-menu{margin-top:6px;background:var(--panel);border:1px solid var(--line);border-radius:10px;box-shadow:0 6px 18px rgba(0,0,0,.08);padding:10px}
.ce-menu b{display:block;font-size:.82rem;color:var(--muted);font-weight:500;margin-bottom:6px}
.ce-menu .chip{cursor:pointer;margin:2px 0;margin-inline-end:4px}
.ce-menu .chip:hover,.ce-menu .chip:focus-visible{background:var(--brand);color:#fff}
.ce-warn{font-size:.82rem;color:var(--warn);background:var(--warn-bg);border-radius:6px;padding:5px 9px;margin:6px 0 0}
.ce-warn.bad{color:var(--bad);background:var(--bad-bg)}
.ce-note{font-size:.82rem;color:var(--info);background:var(--info-bg);border-radius:6px;padding:5px 9px;margin:8px 0 0}
.ce-wast{display:flex;flex-wrap:wrap;gap:6px;margin-top:6px}
.ce-wa-act{margin-top:10px}
.ce-wanote,.ce-nowa{font-size:.85rem;color:var(--muted);margin:0}
.ce-lock{margin:16px 0 0;font-size:.88rem;color:var(--muted);background:var(--mute-bg);border-radius:8px;padding:8px 12px}
.ce-err{margin:12px 0 0;color:var(--bad);background:var(--bad-bg);border-radius:8px;padding:8px 12px;font-size:.9rem}
.ce-actions{margin-top:14px}
.ce-del{color:var(--bad)}
.ce-test-msg{margin:10px 0 0;font-size:.9rem;padding:8px 12px;border-radius:8px;background:var(--info-bg);color:var(--info)}
.ce-test-msg.ok{background:var(--ok-bg);color:var(--ok)}
.ce-test-msg.bad{background:var(--bad-bg);color:var(--bad)}
.ce-history{border-top:1px solid var(--line);margin-top:16px;padding-top:10px}
.ce-history h3{margin:0 0 8px}
.ce-hist{list-style:none;margin:0;padding:0;display:grid;gap:8px}
.ce-hist li{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:2px 10px;align-items:center;border:1px solid var(--line);border-radius:8px;padding:8px 10px}
.ce-hist li>div{display:flex;flex-wrap:wrap;gap:2px 10px;align-items:baseline}
.ce-hist .ce-hsub{color:var(--muted);overflow-wrap:anywhere}
.ce-hist li>.badge,.ce-hist li>.btn{grid-column:2;grid-row:1/span 2}
.ce-prev{position:sticky;top:calc(var(--top-h) + 12px);margin:0;max-height:calc(100vh - var(--top-h) - 24px);overflow:auto;min-width:0}
.ce-prev-top{display:flex;flex-wrap:wrap;gap:8px 10px;align-items:center}
.ce-prev-top h2{margin:0;margin-inline-end:auto}
.ce-prev-top small{width:100%}
.ce-bk{width:100%;max-width:100%}
.ce-prev.busy .ce-frame,.ce-prev.busy [data-ce-wa]{opacity:.55;transition:opacity .2s}
.ce-subh{font-weight:600;margin:14px 0 8px}
.ce-phone{width:100%;max-width:360px;margin:0 auto;border:8px solid #1d2329;border-radius:28px;overflow:hidden;background:#fff}
.ce-ph-meta{display:flex;flex-direction:column;padding:10px 14px;background:#f6f7f9;border-bottom:1px solid #e3e6ea;font-size:.85rem;color:#1d2329}
.ce-ph-meta span{overflow-wrap:anywhere}
.ce-frame{display:block;width:100%;height:520px;border:0;background:#eef1f4}
.ce-wx{background:#efe7dd}
.wx-bar{background:#075e54;color:#fff;padding:10px 14px;display:flex;flex-direction:column}
.wx-bar small{color:#cfe9e4}
.wx-chat{padding:14px}
.wx-msg{background:#fff;border-radius:8px;padding:8px 10px;font-size:.86rem;line-height:1.45;max-width:94%;box-shadow:0 1px 1px rgba(0,0,0,.08);color:#111b21;overflow-wrap:anywhere}
.wx-link{color:#027eb5;word-break:break-all}
.wx-v.bad{color:var(--bad);font-weight:600}
.wx-time{display:block;text-align:end;font-size:.68rem;color:#8696a0;margin-top:4px}
@media (max-width:1250px){.ce-layout{grid-template-columns:220px minmax(0,1fr)}.ce-prev{grid-column:1/-1;position:static;max-height:none}}
@media (max-width:900px){.ce-layout{grid-template-columns:minmax(0,1fr)}.ce-prev{grid-column:auto}.ce-item{padding:7px 8px}.ce-brand-edit{margin-inline-start:0}.ce-brand-menu{inset-inline-end:auto;inset-inline-start:0}}
@media (max-width:560px){.ce-lang{padding:10px}.ce-phone{border-width:6px;border-radius:22px}.ce-actions .btn{flex:1 1 auto;justify-content:center}}
/* end v3.21.1 cmed */
/* v3.21.2 learn — Settings → AI: Company answers, AI replies */
.lrn-tabs{margin-top:4px}
.lrn-read .lrn-kpis{margin-bottom:12px}
.lrn-dates{align-items:end;margin-bottom:14px}
.lrn-dates .btn-row{align-items:center}
.lrn-prog{display:flex;flex-wrap:wrap;align-items:center;gap:8px 14px;margin:10px 0}
.lrn-prog .progress{flex:1 1 220px;height:12px}
.lrn-h2{margin:18px 0 10px}
.lrn-h3{margin:16px 0 8px}
.lrn-pills{margin-bottom:12px}
.lrn-topic{padding:0;margin-bottom:10px;overflow:hidden}
.lrn-topic>summary,.lrn-add>summary{list-style:none;cursor:pointer;padding:12px 14px;display:flex;flex-wrap:wrap;gap:4px 10px;align-items:center}
.lrn-topic>summary::-webkit-details-marker,.lrn-add>summary::-webkit-details-marker{display:none}
.lrn-topic>summary::before,.lrn-add>summary::before{content:"▸";color:var(--muted)}
.lrn-topic[open]>summary::before,.lrn-add[open]>summary::before{content:"▾"}
.lrn-topic>summary h3{margin:0;font-size:1rem;flex:1 1 220px;min-width:0;overflow-wrap:anywhere}
.lrn-topic[open]>summary{border-bottom:1px solid var(--line)}
.lrn-rank{color:var(--muted);font-variant-numeric:tabular-nums}
.lrn-meta{color:var(--muted);font-size:.9rem}
.lrn-body{padding:12px 14px;display:grid;gap:12px;min-width:0}
.lrn-add{padding:0;margin-bottom:12px}
.lrn-add .lrn-form{padding:0 14px 14px}
.lrn-ex ul{margin:6px 0 0;padding-inline-start:18px;display:grid;gap:8px}
.lrn-ex li{overflow-wrap:anywhere}
.lrn-conflict{border-inline-start:3px solid var(--warn);background:var(--warn-bg);padding:8px 12px;border-radius:6px}
.lrn-conflict p{margin:4px 0}
.lrn-2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.lrn-2 label{display:flex;flex-direction:column;gap:4px;min-width:0}
.lrn-2 textarea,.lrn-2 input{width:100%}
.lrn-new{background:var(--info-bg);border-radius:8px;padding:10px 12px;margin-bottom:12px;display:grid;gap:8px}
.lrn-txt{background:var(--mute-bg);border-radius:8px;padding:8px 10px;overflow-wrap:anywhere;line-height:1.55}
.lrn-new .lrn-txt{background:var(--panel)}
.lrn-txt del{background:var(--bad-bg);color:var(--bad);text-decoration:line-through;border-radius:3px}
.lrn-txt ins{background:var(--ok-bg);color:var(--ok);text-decoration:none;border-radius:3px;font-weight:600}
.lrn-row{border-top:1px solid var(--line);padding:12px 0;display:grid;gap:8px;min-width:0}
.lrn-row header{display:flex;flex-wrap:wrap;gap:4px 8px;align-items:center;font-size:.9rem}
.lrn-row .btn-row form{margin:0}
.lrn-diff{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.lrn-diff>div{min-width:0;display:grid;gap:4px;align-content:start}
.lrn-bar{display:flex;align-items:center;gap:8px}
.lrn-bar .progress{flex:1 1 80px}
.lrn-runs td{vertical-align:top}
@media (max-width:700px){.lrn-2,.lrn-diff{grid-template-columns:minmax(0,1fr)}.lrn-topic>summary h3{flex-basis:100%}}
/* end v3.21.2 learn */
/* v3.22.0 docs — Accounting documents (/finance/documents) and the "already used" note on the screenshot box */
.doc-checks{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:12px;margin-bottom:16px}
.doc-check{margin:0;min-width:0}
.doc-check h3{margin:0 0 4px;display:flex;align-items:center;gap:8px}
.doc-check.bad{border-color:var(--bad)}
.doc-check details>summary{cursor:pointer;color:var(--brand);font-weight:600;font-size:.88rem}
.doc-list{margin:6px 0 0;padding-inline-start:18px}
.doc-list li{margin-bottom:4px;overflow-wrap:anywhere}
.doc-nums{display:flex;flex-wrap:wrap;gap:4px;margin:6px 0 0}
.doc-nums .pill{font-size:.8rem;padding:2px 8px}
.doc-periods{margin:8px 0 0}
.doc-sums>summary{cursor:pointer}
.doc-sum-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:12px;margin-top:10px}
.doc-table td{vertical-align:top}
.doc-pager{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin:12px 0 0}
.rf-used{display:block;margin-top:4px;color:var(--bad);font-size:.85rem}
.rf-used a{font-weight:600}
.rf-used.same{color:var(--warn)}
.rf-choice.other{border-style:dashed;opacity:.85}
.rf-choice.used{text-decoration:line-through}
@media (max-width:700px){.doc-filters label{min-width:calc(50% - 8px)}.doc-check{padding:12px}}
/* end v3.22.0 docs */
/* v3.22.0 appr — supervisor approvals (QR / link + PIN), charged to a staff account, paid by bank transfer */
.pay-fields[data-pay]:not([data-pay=staff_account]) .pay-staff,
.pay-fields[data-pay]:not([data-pay=transfer]) .pay-transfer,
.pay-fields[data-pay]:not([data-pay=unpaid_ask]) .pay-unask{display:none}
.pay-fields:is([data-pay=staff_account],[data-pay=transfer],[data-pay=unpaid_ask]) :is(.pay-inv,.pay-rcpt,.pay-ota,.pay-agency,.pay-matrix,.pay-credit){display:none}
.apr-box{border-color:#f0dcae}
.apr-box-head{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.apr-line{margin:8px 0 4px;font-size:1.02rem}
.apr-dot{display:inline-block;width:8px;height:8px;border-radius:50%;background:currentColor;animation:apr-pulse 1.4s ease-in-out infinite;vertical-align:middle}
@keyframes apr-pulse{0%,100%{opacity:.25}50%{opacity:1}}
@media (prefers-reduced-motion:reduce){.apr-dot{animation:none}}
.apr-ways{display:flex;flex-wrap:wrap;gap:18px;margin-top:12px;align-items:flex-start}
.apr-qr{display:flex;flex-direction:column;gap:6px;max-width:240px}
.apr-qr svg{width:220px;height:220px;max-width:100%;border:1px solid var(--line);border-radius:8px;background:#fff}
.apr-more{flex:1;min-width:240px}
.apr-copy{display:flex;gap:6px;align-items:center}
.apr-copy input{flex:1;min-width:0;font-size:.85rem}
.apr-said{margin:8px 0 0;font-weight:600}
.apr-page{max-width:560px;margin:0 auto;font-size:1.05rem}
.apr-title{display:flex;flex-wrap:wrap;gap:8px;align-items:center;font-size:1.5rem}
.apr-kind{font-size:1.25rem;font-weight:600;margin-bottom:2px}
.apr-lines{display:grid;grid-template-columns:max-content 1fr;gap:6px 14px;margin:14px 0}
.apr-lines dt{color:var(--muted)}
.apr-lines dd{margin:0;font-weight:600;overflow-wrap:anywhere}
.apr-open{display:inline-block;margin-top:4px}
.apr-form{gap:12px}
.apr-pin-label{font-weight:600}
.apr-pin{font-size:2rem;letter-spacing:.45em;text-align:center;padding:10px 8px;width:100%;max-width:280px;font-variant-numeric:tabular-nums}
.apr-yes{width:100%;font-size:1.15rem;padding:14px 16px}
.apr-refuse>summary{list-style:none;display:inline-block;cursor:pointer}
.apr-refuse>summary::-webkit-details-marker{display:none}
.apr-refuse[open]{display:flex;flex-direction:column;gap:8px}
.apr-ended,.apr-no{font-size:1.05rem}
.apr-result{margin-bottom:12px}
.apr-ways-pay{margin-top:10px;display:flex;flex-direction:column;gap:6px}
.permit-extra-wait{margin-bottom:12px}
.permit-extra-wait .apr-box{margin-top:6px}
.pp-pin{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin:6px 0}
@media (max-width:600px){
  .apr-ways{flex-direction:column}
  .apr-qr{max-width:none;align-items:center}
  .apr-qr svg{width:min(260px,80vw);height:min(260px,80vw)}
  .apr-lines{grid-template-columns:1fr;gap:2px}
  .apr-lines dd{margin-bottom:8px}
  .apr-page{font-size:1.1rem}
}
/* end v3.22.0 appr */
/* v3.22.2 scuba — try scuba (Basic Diver) on the boat: the upgrade page, the badge, the trip's list */
.ts-page{max-width:720px}
.ts-page h2{display:flex;gap:10px;align-items:center;flex-wrap:wrap}
.ts-qr{display:flex;flex-direction:column;align-items:flex-start;gap:4px;margin:8px 0}
.ts-qr img{width:200px;height:200px;background:#fff;padding:6px;border-radius:8px;border:1px solid var(--line)}
.ts-steps li.done .grow{color:var(--ok)}
.badge.kind-try{background:#ece8fb;color:#4b3aa8}
.ts-list li{padding:6px 0;border-block-end:1px solid var(--line)} .ts-list li:last-child{border:0}
.ts-up{margin-inline-start:4px}
.ts-now{margin:10px 0 0}
@media (max-width:640px){.ts-page .btn-row .btn{flex:1 1 100%;justify-content:center}.ts-page .paylink-url{width:100%}.ts-page .btn.big{width:100%}}
/* end v3.22.2 scuba */
/* v3.23.0 money — students registered together: one sales invoice and one receipt voucher for the group (sales/_group_choice.php) */
.grp-who{flex:1 1 100%;min-width:0;margin:2px 0 6px;padding:8px 12px;border:1px dashed var(--line, #e3e3e3);border-radius:8px;background:var(--card, #fff)}
.grp-who legend{font-weight:600;padding:0 4px}
.grp-who .grp-list{margin:2px 0 8px;padding-inline-start:18px}
.grp-who .grp-list li{overflow-wrap:anywhere;padding:1px 0}
.grp-who label.check{display:flex;gap:6px;align-items:flex-start;overflow-wrap:anywhere;margin:4px 0;font-weight:500}
.grp-who label.check input{margin-top:3px;flex:none}
.grp-who .grp-note{display:none;margin-top:4px}
form.is-grp .grp-who .grp-note,form:has(input[name=grp_who][value=group]:checked) .grp-who .grp-note{display:block}
form.is-grp .rc-amount,form:has(input[name=grp_who][value=group]:checked) .rc-amount{display:none}
.rc-row .rc-grp{display:block;margin-top:2px}
.sc-group{margin:8px 0;padding:8px 12px;border-radius:8px;background:#eef6fb;border:1px solid #cfe3ef}
.sc-group ul{margin:4px 0;padding-inline-start:18px}
/* Admin → Notifications → What goes to the phone (admin/push_kinds.php) */
.pk-legend li{padding:3px 0}
.pk-group h2{margin-top:0}
.pk-row{display:flex;gap:12px;align-items:center;justify-content:space-between;padding:10px 0;border-block-end:1px solid var(--line, #e3e3e3)}
.pk-row:last-child{border-block-end:0}
.pk-what{display:flex;flex-direction:column;gap:2px;min-width:0;flex:1 1 auto;overflow-wrap:anywhere}
.pk-modes{display:flex;gap:6px;flex-wrap:wrap;flex:none}
.pk-mode{display:inline-flex;align-items:center;gap:6px;padding:6px 10px;border:1px solid var(--line, #e3e3e3);border-radius:999px;cursor:pointer;white-space:nowrap;background:var(--card, #fff)}
.pk-mode:has(input:checked){border-color:var(--brand);background:var(--brand-soft)}
.pk-mode input{margin:0}
@media (max-width:640px){.pk-row{flex-direction:column;align-items:stretch}.pk-modes{flex-wrap:wrap}.pk-mode{white-space:normal}}
/* end v3.23.0 money */
/* v3.23.0 site-lists: Booking site → Product lists, Settings, Hotel pickups; Reports → Booking site; a trip's meeting point */
.sl-page .stack{display:flex;flex-direction:column;gap:10px}
.sl-page .fields{align-items:start}
.sl-page p{margin:0}
.sl-lead{max-width:760px}
.sl-new{position:relative}
.sl-new > summary{list-style:none;cursor:pointer}
.sl-new > summary::-webkit-details-marker{display:none}
.sl-new[open] > .sl-new-form{position:absolute;inset-inline-end:0;top:calc(100% + 8px);z-index:5;width:min(640px,92vw);box-shadow:0 10px 30px rgba(0,0,0,.12)}
.sl-top{display:flex;gap:18px;flex-wrap:wrap;align-items:stretch;margin-bottom:18px}
.sl-warn{flex:2 1 520px;background:#fff8ec;border:1px solid #f1c98a;border-radius:var(--radius);padding:14px 18px;display:flex;flex-direction:column;gap:8px;color:#8a4b00}
.sl-warn-row{display:flex;gap:10px;align-items:center;flex-wrap:wrap;background:#fff;border-radius:8px;padding:8px 12px;color:var(--ink)}
.sl-warn-row > span{flex:1 1 260px}
.sl-allsum{flex:1 1 340px;margin:0;display:flex;flex-direction:column;gap:8px;font-size:.9rem}
.sl-allsum-h{display:flex;justify-content:space-between;gap:8px;align-items:baseline}
.sl-table-card{padding:0;overflow:hidden}
.sl-table-card .table-wrap{margin:0;padding:0}
.sl-lists{min-width:860px}
.sl-lists td,.sl-lists th{padding:11px 14px;vertical-align:top}
.sl-lists tr.sl-on td{background:var(--brand-soft)}
.sl-editing{font-size:.78rem;color:var(--brand)}
.sl-code{font-size:.75rem;color:var(--muted)}
.sl-nowrap{white-space:nowrap}
.sl-sec-h{display:flex;justify-content:space-between;align-items:flex-end;gap:12px;flex-wrap:wrap;margin-bottom:14px}
.sl-sec-h h2{margin:0}
.sl-sec-h p{margin:2px 0 0;max-width:780px;font-size:.9rem}
.sl-pill{background:var(--brand-soft);color:var(--brand);border-radius:999px;padding:6px 14px;font-weight:700;font-size:.88rem}
.sl-split{display:flex;gap:18px;flex-wrap:wrap;align-items:flex-start}
.sl-main{flex:999 1 600px;min-width:0}
.sl-aside{flex:1 1 300px;min-width:0}
.sl-box{border:1px solid var(--line);border-radius:var(--radius);padding:12px 14px;gap:6px}
.sl-box-h{display:flex;justify-content:space-between;align-items:baseline;gap:8px;flex-wrap:wrap}
.sl-bt-wrap{margin:0;padding:0;border:1px solid var(--line);border-radius:var(--radius)}
.sl-badges{min-width:760px}
.sl-badges td{vertical-align:top}
.sl-badges tr.sl-off td{opacity:.6}
.sl-rule{min-width:300px;line-height:1.8}
.sl-now{min-width:140px}
.sl-num{width:4.4em;padding:2px 6px;display:inline-block;text-align:center}
.sl-n{display:inline-block;min-width:16px}
.sl-arrow{width:34px;height:34px;border-radius:8px;border:1px solid #c7d2da;background:#fff;cursor:pointer;font-size:1rem;line-height:1;color:var(--ink);flex:none}
.sl-arrow:disabled{opacity:.4;cursor:not-allowed}
.sl-x{border-color:#e6c3c1;color:#b4231e}
.sl-chip{display:inline-block;border-radius:6px;padding:2px 8px;font-size:.78rem;font-weight:700;line-height:1.5;white-space:nowrap}
.sl-chip.k-sell{background:#d93732;color:#fff}.sl-chip.k-off{background:#1e7d4f;color:#fff}.sl-chip.k-best{background:#f4b740;color:#10273a}
.sl-chip.k-team{background:#10273a;color:#fff}.sl-chip.k-new{background:#1f6fb2;color:#fff}
.sl-chip-ar{display:block;margin-top:4px;font-size:.8rem;color:var(--muted)}
.sl-chip-ar[lang=ar],.sl-ar{font-family:Cairo,"IBM Plex Sans Arabic",sans-serif}
.sl-switch{display:inline-flex;align-items:center;justify-content:center;cursor:pointer;font-weight:700;border:1.5px solid #c7d2da;border-radius:999px;padding:5px 12px;min-width:56px;background:#fff;color:var(--muted);position:relative}
.sl-switch input{position:absolute;opacity:0;inset:0;width:100%;height:100%;margin:0;cursor:pointer}
.sl-switch .sl-sw-on{display:none}
.sl-switch:has(input:checked){border-color:var(--ok);background:var(--ok-bg);color:var(--ok)}
.sl-switch:has(input:checked) .sl-sw-on{display:inline}.sl-switch:has(input:checked) .sl-sw-off{display:none}
.sl-switch:has(input:focus-visible),.sl-mode:has(input:focus-visible){outline:3px solid #1f6fb2;outline-offset:2px}
.sl-team{padding:3px 0}
.sl-sample{width:270px;max-width:100%;background:#fff;border:1px solid #dde4e9;border-radius:14px;overflow:hidden;color:#10273a}
.sl-sample-ph{height:110px;background:#bfd9e2;padding:10px;display:flex;flex-direction:column;justify-content:space-between;align-items:flex-start}
.sl-len{background:rgba(16,39,58,.85);color:#fff;border-radius:999px;padding:1px 8px;font-size:.75rem}
.sl-sample-b{padding:10px 12px;display:flex;flex-direction:column;gap:2px}
.sl-seats{font-size:.82rem;color:#b42318;font-weight:700}
.sl-modes{display:flex;gap:8px;flex-wrap:wrap}
.sl-mode{flex:1 1 240px;display:flex;flex-direction:column;gap:2px;padding:10px 14px;border:1.5px solid var(--line);border-radius:10px;cursor:pointer;font-weight:400;position:relative}
.sl-mode input{position:absolute;opacity:0}
.sl-mode span{font-size:.85rem;opacity:.85}
.sl-mode:has(input:checked){background:var(--brand);border-color:var(--brand);color:#fff}
.sl-orderbar{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap}
.sl-rows{margin:0;padding:0;list-style:none;display:flex;flex-direction:column;gap:6px}
.sl-row{display:flex;align-items:center;gap:10px;padding:8px 10px;border:1px solid var(--line);border-radius:10px;background:#fff}
.sl-row.sl-hidden{background:var(--bg);opacity:.8}
.sl-row.sl-pc{background:#fafbfc}.sl-row.sl-after{background:var(--bg)}
.sl-dot{flex:0 0 26px;height:26px;border-radius:50%;background:#1c2b36;color:#fff;font-size:.8rem;font-weight:700;display:flex;align-items:center;justify-content:center}
.sl-row-t{flex:1 1 0;min-width:0}
.sl-row-t small{display:block}
.sl-why{color:var(--warn)}
.sl-btns{display:flex;gap:10px;flex-wrap:wrap;justify-content:flex-end}
.sl-stepline{display:flex;align-items:center;gap:8px;font-size:.9rem}
.sl-stepline > span:first-child{flex:1 1 0}
.sl-step{display:inline-flex;align-items:center;gap:8px}
.sl-step button{width:32px;height:32px;border-radius:50%;border:1px solid #c7d2da;background:#fff;cursor:pointer;font-size:1rem;color:var(--ink)}
.sl-step b{min-width:22px;text-align:center}
.sl-tabrow{display:flex;justify-content:space-between;align-items:center;gap:8px;padding:6px 0;border-top:1px solid var(--line);font-size:.9rem}
.sl-layout{display:flex;gap:14px;flex-wrap:wrap}
.sl-fs{flex:1 1 240px;border:1px solid var(--line);border-radius:10px;padding:10px 12px;margin:0;display:flex;flex-direction:column;gap:6px}
.sl-fs legend{font-weight:700;font-size:.9rem;padding:0 4px}
.sl-add{display:flex;gap:8px;flex-wrap:wrap;align-items:flex-end}
.sl-add label{flex:1 1 240px}
.sl-codebox{background:var(--bg);border-radius:10px;padding:10px 12px;display:flex;gap:10px;align-items:center;flex-wrap:wrap;font-size:.9rem}
.sl-codebox > span{flex:1 1 240px}
.sl-codebox code{background:#fff;border:1px solid var(--line);border-radius:6px;padding:6px 10px}
.sl-see{max-width:460px}
.sl-grid{display:grid;gap:6px}
.sl-grid-ph{width:180px}
.sl-grid span{background:#e3ecef;border-radius:6px;padding:6px;font-size:.7rem;line-height:1.25;min-height:44px;overflow:hidden;overflow-wrap:anywhere}
.sl-split-wide > .sl-main{flex-basis:100%}
.sl-under{display:flex;gap:18px;flex-wrap:wrap;align-items:flex-start}
.sl-under > *{flex:1 1 300px}
.sl-under > .sl-sample-wrap{flex:0 1 300px}
.sl-editor-wrap{margin-bottom:18px}
.sl-editor-wrap > .card{margin-bottom:0}
.sl-check{list-style:none;margin:0 0 14px;padding:0;display:flex;flex-direction:column;gap:6px}
.sl-check li{display:flex;gap:10px;align-items:baseline}
.sl-tick{flex:0 0 22px;height:22px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;font-weight:700;border:1.5px solid var(--line);color:var(--muted)}
.sl-check li.ok .sl-tick{background:var(--ok);border-color:var(--ok);color:#fff}
.sl-steps{margin:0;padding-inline-start:20px;display:flex;flex-direction:column;gap:8px}
.sl-kv{display:grid;grid-template-columns:max-content 1fr;gap:6px 12px;align-items:center;margin-top:6px}
.sl-codepill{background:var(--bg);border:1px solid var(--line);border-radius:6px;padding:4px 8px;word-break:break-all}
.sl-codes td{vertical-align:top}
.sl-track{display:flex;flex-direction:column;gap:10px}
.sl-track-row{display:grid;grid-template-columns:2fr 1fr;gap:10px}
@media (max-width:760px){      /* the badges table becomes one card per badge on a phone */
  .sl-badges{min-width:0}.sl-badges thead{display:none}
  .sl-badges tr{display:grid;grid-template-columns:auto 1fr auto;gap:6px 10px;padding:10px;border-block-end:1px solid var(--line)}
  .sl-badges td{display:block;border:0;padding:0;min-width:0}
  .sl-badges td:nth-child(1){grid-row:1}.sl-badges td:nth-child(2){grid-row:1}.sl-badges td:nth-child(6){grid-row:1;grid-column:3}
  .sl-badges td:nth-child(3),.sl-badges td:nth-child(4),.sl-badges td:nth-child(5){grid-column:1/-1}
  .sl-badges td:nth-child(3)::before,.sl-badges td:nth-child(5)::before{content:attr(data-label) " ";color:var(--muted)}
  .sl-rule,.sl-now{min-width:0}}
@media (max-width:640px){      /* Hotel pickups: one block per pickup on a phone */
  .sl-pickups thead{display:none}
  .sl-pickups tr{display:grid;grid-template-columns:auto 1fr;gap:4px 12px;padding:10px 0;border-block-end:1px solid var(--line)}
  .sl-pickups td{display:block;border:0;padding:0;text-align:start}
  .sl-pickups td:nth-child(1){grid-row:1/span 2;font-size:1.15rem}
  .sl-pickups td:nth-child(n+3){grid-column:2}
  .sl-pickups td[data-label]::before{content:attr(data-label) " ";color:var(--muted)}}
@media (max-width:640px){.sl-row{flex-wrap:wrap}.sl-row > .sl-row-t{flex-basis:150px}.sl-row > .sl-chip{order:5;margin-inline-start:36px;white-space:normal}
  .sl-btns .btn{flex:1 1 100%;justify-content:center}.sl-kv{grid-template-columns:1fr}.sl-track-row{grid-template-columns:1fr}.sl-new[open] > .sl-new-form{position:static;width:100%;margin-top:8px}.sl-arrow{width:38px;height:38px}
  .sl-sample{width:100%}}
/* end v3.23.0 site-lists */
/* v3.23.0 ops — #43/#42 on the permit, not booked (one form), #51 save bar + unsaved changes, #53 calendar by boat, #39 platforms, #46 plan language */
.pe-form{gap:14px}
.pe-group{border:1px solid var(--line);border-radius:10px;padding:10px 14px 4px;margin:0;min-width:0}
.pe-group legend{font-weight:600;padding:0 6px;overflow-wrap:anywhere}
.pe-all{display:flex;flex-wrap:wrap;gap:6px 10px;align-items:center;background:var(--bg);border-radius:8px;padding:8px 10px;margin:4px 0 8px;font-weight:500}
.pe-all select{max-width:100%}
.pe-all small{flex-basis:100%}
.pe-row{border-top:1px solid var(--line);padding:10px 0;display:flex;flex-direction:column;gap:8px;min-width:0}
.pe-group .pe-row:first-of-type{border-top:0}
.pe-row.pe-chosen .pe-who b{color:var(--brand)}
.pe-row.pe-bad{background:var(--warn-bg);border-radius:8px;padding:10px;margin:4px -10px}
.pe-who{overflow-wrap:anywhere}
.pe-err{margin:0;color:var(--warn);font-weight:500}
.pe-choices{display:flex;flex-wrap:wrap;gap:6px 14px;align-items:center}
.pe-choices label.check{border:1px solid var(--line);border-radius:18px;padding:4px 10px;background:var(--panel);margin:0}
.pe-choices label.check:has(input:checked){border-color:var(--brand);background:var(--brand-soft)}
.pe-more:not(:has(> label:not([hidden]))){display:none}
.pe-hints small{display:block}
.pe-savebar{position:sticky;bottom:0;z-index:5;display:flex;flex-wrap:wrap;gap:8px 14px;align-items:center;background:var(--panel);border-top:1px solid var(--line);
  padding:10px 0}
@media (max-width:640px){.pe-choices label.check{flex:1 1 100%}.pe-savebar .btn{flex:1 1 100%;justify-content:center}}
.save-bar{position:sticky;top:var(--top-h);z-index:6;display:flex;flex-wrap:wrap;gap:8px 12px;align-items:center;background:var(--panel);
  border-bottom:1px solid var(--line);padding:10px 0;margin:-6px 0 4px}
.save-state{color:var(--muted);font-size:.85rem}
.save-state.dirty{color:var(--warn);font-weight:600}
.guard-dlg{border:1px solid var(--line);border-radius:12px;padding:18px;max-width:440px;width:calc(100% - 32px);color:var(--ink);background:var(--panel)}
.guard-dlg::backdrop{background:rgba(0,0,0,.35)}
.guard-q{font-weight:600;margin:0 0 14px}
.cert-other{margin-top:6px}
.stg-lang{display:flex;flex-wrap:wrap;gap:6px 12px;align-items:center;margin:-4px 0 12px}
.stg-lang form{margin:0}
.cal-same{display:grid;gap:4px;border-top:1px dashed #e8c77a;padding-top:6px;margin-top:2px}
.cal-same .cal-flag.same{background:var(--warn-bg);color:var(--warn);margin:0;border-radius:6px;text-align:start;padding:2px 6px}
.cal-same form{margin:0}
.cal-same .btn{justify-self:start}
.cal-grid.cal-by-boat{grid-template-columns:110px repeat(7,minmax(118px,1fr));min-width:940px}
.cal-by-boat .cal-row-head{overflow-wrap:anywhere}
@media (max-width:900px){.cal-grid.cal-by-boat{grid-template-columns:84px repeat(7,minmax(112px,1fr));min-width:870px}}
/* end v3.23.0 ops */
/* v3.23.0 chat — WhatsApp inbox: the names (#47), "Which customer is this?", the language (#38), the summary card (#40),
   reactions, voice notes and contact cards (#55), the quick booking (#54) */
.wa-namerow{display:flex;align-items:center;gap:4px;min-width:0}
.wa-namerow h2{min-width:0}
.wa-namemenu>summary.wa-namebtn{width:30px;height:30px;color:var(--muted)}
.wa-namemenu>summary.wa-namebtn:hover{color:var(--brand)}
.wa-namemenu .wa-menu-list{inset-inline-end:auto;inset-inline-start:0;min-width:280px;max-width:calc(100vw - 32px);padding:10px}
.wa-nameform{gap:8px}.wa-nameform input{padding:7px 9px;font-size:14px}
.wa-alias{font-size:12px;color:var(--muted);display:flex;flex-wrap:wrap;gap:2px 6px;line-height:1.35}
.wa-alias bdi{color:var(--ink)}
.wa-chathead .wa-who .wa-sub{white-space:normal;line-height:1.35;text-overflow:clip}
@media (min-width:901px){.wa-chathead .wa-who{min-width:190px}}
.wa-dotsep{font-style:normal}
.wa-which{margin:0;padding:10px 16px;background:var(--warn-bg);border-block-end:1px solid #f3e1b5;display:flex;flex-direction:column;gap:8px;font-size:13px}
.wa-which-h{margin:0}.wa-which-h b{color:var(--warn)}
.wa-which-list{display:flex;flex-wrap:wrap;gap:6px}
.wa-which-card{display:flex;align-items:flex-start;gap:6px;background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:6px 10px;font-weight:400;cursor:pointer;min-height:44px}
.wa-which-card:has(input:checked){border-color:var(--brand);box-shadow:0 0 0 1px var(--brand)}
.wa-which-card span{display:flex;flex-direction:column}.wa-which-card small{color:var(--muted);font-size:12px}
.wa-which .btn{align-self:flex-start}
.wa-whichmore{font-size:13px}.wa-whichmore summary{cursor:pointer;color:var(--brand)}
.wa-whichmore form{margin-top:6px}
.wa-popwarn{margin:0;font-size:12px;color:var(--warn);background:var(--warn-bg);border-radius:8px;padding:6px 10px}
/* the summary card */
.wa-sum{width:min(88%,560px)}
.wa-sum-dl{display:grid;grid-template-columns:max-content 1fr;gap:3px 10px;margin:6px 0 2px;font-size:13px}
.wa-sum-dl dt{color:var(--muted);font-weight:600}
.wa-sum-dl dd{margin:0;overflow-wrap:anywhere}
.wa-sum-none{margin:2px 0;font-size:12px;color:var(--muted)}
.wa-sum-facts{margin-top:6px;padding:6px 8px;background:rgba(255,255,255,.6);border-radius:8px;font-size:12px}
.wa-sum-facts b{display:flex;align-items:center;gap:4px}
.wa-sum-facts ul{margin:4px 0 0;padding-inline-start:18px}
.wa-sum-btns{display:flex;gap:6px;flex-wrap:wrap;margin-top:6px}
.wa-sum-btns .btn{display:inline-flex;align-items:center;gap:4px}
/* reactions */
.wa-app .wa-bubble{position:relative}
.wa-reacts:empty{display:none}
.wa-reacts{position:absolute;inset-block-end:-12px;inset-inline-start:8px;display:inline-flex;gap:2px;background:var(--panel);border:1px solid var(--line);border-radius:999px;padding:0 5px;font-size:14px;line-height:1.5;box-shadow:0 1px 2px rgba(0,0,0,.1)}
.wa-msg:has(.wa-reacts:not(:empty)){margin-bottom:12px}
.wa-rxbtn{border:0;background:none;color:var(--muted);padding:0 2px;cursor:pointer;opacity:.55;display:inline-flex;align-items:center;min-width:24px;min-height:24px;justify-content:center}
.wa-rxbtn:hover,.wa-rxbtn:focus-visible{opacity:1;color:var(--brand)}
.wa-rxpop{flex-direction:row;flex-wrap:wrap;align-items:center;width:auto;max-width:calc(100% - 32px);gap:2px}
.wa-rx-for{flex-basis:100%;color:var(--muted);font-size:12px;font-style:italic;padding:0 6px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.wa-rxpop .wa-em.on{background:var(--brand-soft);box-shadow:inset 0 0 0 1px var(--brand)}
.wa-rx-off{border:0;background:none;color:var(--brand);font:inherit;font-size:12px;cursor:pointer;padding:6px}
/* voice notes */
.wa-voice-h{display:flex;align-items:center;gap:4px;font-size:12px;color:var(--muted);margin-bottom:2px}
.wa-rec{display:flex;align-items:center;gap:8px;background:var(--bg);border-radius:10px;padding:6px 8px;flex-wrap:wrap}
.wa-rec-dot{width:10px;height:10px;border-radius:50%;background:var(--bad);animation:wa-pulse 1.2s ease-in-out infinite}
.wa-rec-t{font-variant-numeric:tabular-nums;font-weight:600}
.wa-rec-max{color:var(--muted);font-size:12px}
.wa-rec-play{height:36px;max-width:100%}
.wa-rec .btn{display:inline-flex;align-items:center;gap:4px}
.wa-composer.wa-recording .wa-crow,.wa-composer.wa-recording .wa-tools{display:none}
/* contact cards */
.wa-vcard .wa-vc-row{font-size:13px;display:flex;flex-wrap:wrap;gap:4px}
.wa-vcard bdi{color:var(--muted)}
/* quick booking */
.wa-quick{border-block-start:1px solid #eef2f4;padding-top:12px}
.wa-qbform{gap:8px}
.wa-qb-row{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.wa-qb-row input,.wa-qb-row select{padding:7px 9px;font-size:14px;width:100%}
.wa-qb-deps{border:0;margin:0;padding:0}
.wa-qb-list{display:flex;flex-direction:column;gap:6px}
.wa-qb-dep{display:flex;align-items:flex-start;gap:8px;border:1px solid var(--line);border-radius:10px;padding:8px 10px;font-weight:400;cursor:pointer;min-height:44px}
.wa-qb-dep:has(input:checked){border-color:var(--brand);background:var(--brand-soft)}
.wa-qb-dep.off{opacity:.55;cursor:default}
.wa-qb-dep>span{display:flex;flex-direction:column;min-width:0;font-size:13px}
.wa-qb-dep small{color:var(--muted);font-size:12px}
.wa-qb-total{margin:0;font-weight:600}
.wa-qb-total:empty{display:none}
.wa-qb-err{margin:0;color:var(--bad);background:var(--bad-bg);border-radius:8px;padding:6px 10px;font-size:13px}
.wa-qb-ok{background:var(--ok-bg);border-radius:8px;padding:8px 10px;font-size:13px}
.wa-qb-ok p{margin:0 0 4px}.wa-qb-ok ul{margin:0 0 4px;padding-inline-start:18px}
.wa-qb-book{align-self:flex-start;display:inline-flex;align-items:center;gap:6px}
.wa-qb-more{font-size:13px}
@media (max-width:900px){
  .wa-alias{font-size:11px;display:block}
  .wa-alias span{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .wa-dotsep{display:none}
  .wa-which{padding:8px 12px}
  .wa-which-card{flex:1 1 100%}
  .wa-sum{width:94%}
  .wa-sum-dl{grid-template-columns:1fr;gap:0}
  .wa-sum-dl dd{margin-bottom:4px}
  .wa-rxbtn{min-width:32px;min-height:32px;opacity:.7}
  .wa-qb-book{align-self:stretch;justify-content:center;min-height:44px}
  .wa-rec .btn{min-height:40px}
  .wa-namemenu .wa-menu-list{position:fixed;inset-inline:10px;inset-block-start:66px;min-width:0}
}
/* end v3.23.0 chat */
/* v3.23.0 site-edit — Booking site → Experiences: the list, the guided editor, places, shared texts, boats, offers, import, listing check */
.se-ar,[dir=rtl] .se-ar,.se-bi [dir=rtl]{font-family:"Cairo","IBM Plex Sans Arabic",system-ui,sans-serif}
.se-grow{flex:1}
.se-tabs{margin-top:-4px}
.se-new{position:relative}
.se-new>summary{list-style:none;cursor:pointer}.se-new>summary::-webkit-details-marker{display:none}
.se-new-form{position:absolute;inset-inline-end:0;top:calc(100% + 6px);z-index:15;width:min(380px,92vw);display:grid;gap:10px;box-shadow:0 10px 30px rgba(0,0,0,.12)}
.se-warnbox{background:#fff8ec;border:1px solid #f1c98a;border-radius:var(--radius);padding:12px 16px;margin-bottom:16px;display:flex;flex-direction:column;gap:8px;color:#8a4b00}
.se-warnrow{display:flex;gap:10px;align-items:center;flex-wrap:wrap;background:#fff;border-radius:8px;padding:8px 12px;color:var(--ink)}
.se-warnrow span{flex:1 1 260px}
.se-stats{display:flex;gap:26px;flex-wrap:wrap;align-items:center}
.se-stats b{font-size:1.35rem}
.se-list-card{padding:0 18px}
.se-exp{display:flex;gap:10px;align-items:center;color:inherit}
.se-exp img,.se-noimg{width:56px;height:42px;object-fit:cover;border-radius:6px;background:#dfe9ee;flex:none;display:block}
.se-noimg.big{width:160px;height:107px}
.se-exp small{display:block;color:var(--muted)}
.se-bar{display:inline-block;width:80px;height:8px;border-radius:9px;background:#e3e9ed;overflow:hidden;vertical-align:middle}
.se-bar i{display:block;height:100%;background:var(--ok)}.se-bar.warn i{background:#c98a00}.se-bar.bad i{background:var(--bad)}
.se-hint{margin-top:4px}
.se-sec .hint,.se-hint,.se-form .hint,p.hint{font-size:.85rem;color:#55616b;background:#f3f7f9;border-radius:8px;padding:8px 10px}
/* the editor */
.se-head h1 small{font-weight:500;font-size:1rem;color:var(--muted)}
.se-badges{display:flex;gap:6px;align-items:center;flex-wrap:wrap}
.se-actions{align-items:center}
.se-score{display:flex;gap:8px;align-items:center;font-size:.8rem;line-height:1.3}
.se-ring{--p:0;width:52px;height:52px;border-radius:50%;display:flex;align-items:center;justify-content:center;background:conic-gradient(var(--ok) calc(var(--p)*1%),#e3e9ed 0)}
.se-ring.warn{background:conic-gradient(#c98a00 calc(var(--p)*1%),#e3e9ed 0)}.se-ring.bad{background:conic-gradient(var(--bad) calc(var(--p)*1%),#e3e9ed 0)}
.se-ring b{width:40px;height:40px;border-radius:50%;background:#fff;display:flex;align-items:center;justify-content:center}
.se-pub{display:flex;gap:14px;align-items:center;justify-content:space-between;flex-wrap:wrap;padding:12px 16px}
.se-pub p{margin:0}.se-pub ul{margin:4px 0 0;padding-inline-start:20px}.se-pub form{display:inline}
.se-pub-miss{color:var(--warn);flex:1 1 360px}.se-pub-ok{color:var(--ok)}
.se-del{color:var(--bad)}
.se-import-note ul{margin:6px 0;padding-inline-start:20px}
.se-ed{display:grid;grid-template-columns:220px minmax(0,1fr) 300px;gap:18px;align-items:start}
.se-nav{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:8px;display:flex;flex-direction:column;gap:2px;font-size:.9rem;position:sticky;top:calc(var(--top-h) + 10px)}
.se-nav a{display:flex;align-items:center;gap:8px;padding:7px 10px;border-radius:8px;color:var(--ink)}
.se-nav a:hover{background:var(--bg);text-decoration:none}
.se-nav a.on{background:var(--brand-soft);color:var(--brand);font-weight:600}
.se-st{flex:0 0 14px;height:14px;border-radius:50%;border:2px solid #b9c4cc}
.se-st.st-done{background:var(--ok);border-color:var(--ok)}
.se-st.st-half{border-color:#c98a00;background:linear-gradient(90deg,#c98a00 50%,transparent 50%)}
[dir=rtl] .se-st.st-half{background:linear-gradient(270deg,#c98a00 50%,transparent 50%)}
.se-st.st-off{border-style:dashed;background:#eef1f3}
.se-legend{padding:8px 10px;line-height:1.5}
.se-sec{margin:0;min-width:0;display:flex;flex-direction:column;gap:14px}
.se-form{display:flex;flex-direction:column;gap:14px;min-width:0}
.se-sec-head{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap}
.se-sec-head h2{margin:0;font-size:1.15rem}
.se-ai-btns{margin:0}
.se-ai-msg{margin:0;font-size:.88rem;padding:6px 10px;border-radius:8px;background:var(--info-bg);color:var(--info)}
.se-ai-msg.ok{background:var(--ok-bg);color:var(--ok)}.se-ai-msg.bad{background:var(--bad-bg);color:var(--bad)}
.se-ai-filled{background:#fff4d6 !important;outline:2px solid #e2b23a}
.se-bi{border:0;padding:0;margin:0;display:grid;grid-template-columns:1fr 1fr;gap:6px 14px;min-width:0}
.se-bi>legend{font-size:.88rem;font-weight:600;padding:0;float:left;grid-column:1/-1;width:100%}
.se-bi-f{display:flex;flex-direction:column;gap:3px;min-width:0}
.se-lang{font-size:.72rem;font-weight:600;color:var(--muted);text-transform:uppercase;letter-spacing:.4px}
.se-bi textarea{min-height:0}
.se-cnt{font-size:.75rem;color:var(--muted);text-align:end}.se-cnt.ok{color:var(--ok)}.se-cnt.warn{color:var(--warn)}
.se-hint-line{grid-column:1/-1;color:var(--muted);font-size:.8rem}
.se-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:12px}
.se-grid-4{grid-template-columns:repeat(auto-fit,minmax(160px,1fr))}
.se-wide{grid-column:1/-1}
.se-slug{display:flex;align-items:center;gap:4px;flex-wrap:wrap}
.se-slug small{overflow-wrap:anywhere}.se-slug input{flex:1;min-width:140px}
.se-ticks{display:flex;flex-direction:column;gap:4px}
.se-off{color:var(--muted)}
.se-save{border-top:1px solid var(--line);padding-top:12px}
.se-rows{display:flex;flex-direction:column;gap:12px}
.se-row{border:1px solid var(--line);border-radius:10px;padding:12px;margin:0;display:flex;flex-direction:column;gap:10px;min-width:0;background:#fbfcfd}
.se-row-head{display:flex;gap:6px;align-items:center;flex-wrap:wrap}
.se-rm{font-size:.85rem;color:var(--bad)}
.se-removed{opacity:.55;background:var(--bad-bg)}
.se-pline{display:block;margin-top:2px}
.se-qs{border:1px dashed var(--line);border-radius:8px;padding:8px 10px;margin:0;min-width:0}
.se-qs legend{font-size:.85rem;font-weight:600}
.se-q{display:grid;grid-template-columns:1fr 1fr 1fr 1fr auto;gap:6px;align-items:center;margin-bottom:6px}
.se-xphoto{display:flex;gap:12px;align-items:center;flex-wrap:wrap}
.se-xphoto img{border-radius:6px;object-fit:cover}
.se-meet{background:#fff6f5;border:1px solid #f3d3d1;border-radius:8px;padding:8px 10px;flex-wrap:wrap}
.se-star{color:#d93732;font-weight:700}
.se-times h3{font-size:1rem}.se-when{font-variant-numeric:tabular-nums;white-space:nowrap;font-weight:600}
.se-meetrow td{background:#fff6f5}
.se-copy{margin-top:6px}
.se-block-view{background:#f6f9fb;border:1px solid var(--line);border-radius:8px;padding:10px;font-size:.9rem;display:flex;flex-direction:column;gap:6px}
.se-meetcard p{margin:4px 0}
.se-upload{display:flex;gap:10px;align-items:flex-end;flex-wrap:wrap}
.se-drop{flex:1 1 280px;min-width:0}
.se-drop span{font-weight:600;overflow-wrap:anywhere}
.se-photos{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:12px}
.se-photo{border:1px solid var(--line);border-radius:10px;padding:8px;margin:0;display:flex;flex-direction:column;gap:8px;background:#fff;min-width:0;cursor:grab}
.se-photo.se-dragging{opacity:.4}
.se-photo-img{position:relative}
.se-photo-img img{width:100%;height:auto;aspect-ratio:3/2;object-fit:cover;border-radius:8px;display:block;background:#dfe9ee}
.se-photo-img .se-first{position:absolute;top:6px;inset-inline-start:6px;display:none}
.se-photo:first-child .se-first{display:inline-block}
.se-photo-act{gap:4px}
.se-photo .se-bi{grid-template-columns:1fr}
.se-share-list{display:flex;flex-wrap:wrap;gap:8px}
.se-share-pick{display:flex;flex-direction:column;align-items:center;gap:2px;cursor:pointer}
.se-share-pick img{border-radius:6px;object-fit:cover}
.se-share{border:0;padding:0;margin:0;min-width:0}
.se-side{display:flex;flex-direction:column;gap:14px;min-width:0}
.se-side .card{margin:0;padding:14px}
.se-side h3{font-size:.95rem;margin:0 0 6px}
.se-items{list-style:none;margin:0;padding:0;font-size:.85rem;display:flex;flex-direction:column;gap:5px}
.se-items li{display:flex;gap:6px}.se-items li.ok>span:first-child{color:var(--ok)}.se-items li.no>span:first-child{color:var(--bad)}
.se-items small{display:block;color:var(--muted)}
.se-phone-wrap{display:flex;flex-direction:column;align-items:center;gap:6px}
.se-phone{width:280px;max-width:100%;height:560px;border:9px solid #1d2a33;border-radius:30px;overflow:hidden;background:#fff;box-shadow:0 10px 24px rgba(0,0,0,.12)}
.se-phone iframe{width:100%;height:100%;border:0;display:block}
.se-phone-ph{padding:16px;color:var(--muted);font-size:.88rem}
.se-hist ul{list-style:none;margin:0 0 8px;padding:0;font-size:.85rem;display:flex;flex-direction:column;gap:6px}
.se-crumb{font-size:.85rem}
/* history, shared things */
.se-filter{margin-bottom:12px}
.se-undone td{opacity:.6}
.se-fold>summary{cursor:pointer;display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.se-fold[open]>summary{margin-bottom:12px}
.se-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:14px;margin-bottom:16px}
.se-cards .card{margin:0;min-width:0}
.se-place{display:flex;flex-direction:column;gap:8px}
.se-place-head{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.se-place details>summary{list-style:none;display:inline-flex}.se-place details>summary::-webkit-details-marker{display:none}
.se-place details[open]>summary{margin-bottom:10px}
.se-boat{display:flex;gap:12px;align-items:center;color:inherit}
.se-boat:hover{text-decoration:none;border-color:var(--brand)}
.se-boat img{border-radius:8px;object-fit:cover;flex:none}
.se-kindpick{border:0;padding:0;margin:0;display:flex;gap:16px;align-items:center;flex-wrap:wrap}
.se-kindpick legend{font-weight:600;font-size:.88rem;float:left;margin-inline-end:8px}
.se-diff td{background:#fdecea}
.se-recent{margin:0;padding-inline-start:18px}
@media (max-width:1180px){
  .se-ed{grid-template-columns:200px minmax(0,1fr)}
  .se-side{grid-column:1/-1;flex-direction:row;flex-wrap:wrap;align-items:flex-start}
  .se-side>*{flex:1 1 280px}
}
@media (max-width:820px){
  .se-ed{grid-template-columns:minmax(0,1fr)}
  .se-nav{position:static;flex-direction:row;overflow-x:auto;gap:4px;padding:6px;scrollbar-width:thin}
  .se-nav a{white-space:nowrap;flex:none}
  .se-legend{display:none}
  .se-bi{grid-template-columns:1fr}
  .se-q{grid-template-columns:1fr 1fr}
  .se-pub{flex-direction:column;align-items:stretch}
  .se-pub-miss{flex:none}
  .se-new-form{position:fixed;inset-inline:10px;top:70px;width:auto}
  .se-list thead,.se-hist-table thead,.se-offers thead,.se-listing thead{display:none}
  .se-list tr,.se-hist-table tr,.se-offers tr,.se-listing tr{display:block;border-bottom:1px solid var(--line);padding:8px 0}
  .se-list td,.se-hist-table td,.se-offers td,.se-listing td{display:block;border:0;padding:3px 0}
  .se-list td[data-label]::before,.se-offers td[data-label]::before,.se-listing td[data-label]::before{content:attr(data-label) ": ";color:var(--muted);font-size:.8rem}
  .se-list td:first-child::before{content:none}
  .se-stats{gap:14px}
  .se-photos{grid-template-columns:1fr}
  .se-phone{height:520px}
}
/* end v3.23.0 site-edit */
/* v3.23.1 dedupe — one place per fact: the product's / marina's / boat's facts shown where staff edit the booking site */
.dd-facts{border:1px dashed var(--line);border-radius:8px;padding:10px 12px;margin:8px 0;background:var(--bg)}
.dd-facts.dd-stale{opacity:.55}
.dd-facts-head{margin:0 0 6px;font-size:.9rem}
.dd-name{display:flex;flex-direction:column;gap:2px;min-width:0}
.dd-name b{overflow-wrap:anywhere}
.dd-also{display:block;color:var(--muted);font-size:.82rem;margin:4px 0}
.dd-hint{margin-top:0}
.dd-other{margin:6px 0 0}
.dd-boat-site{margin-top:24px}
.dd-boat-site h2{margin-bottom:4px}
.dd-dl{display:grid;grid-template-columns:max-content 1fr;gap:4px 14px;margin:0}
.dd-dl dt{color:var(--muted)}
.dd-dl dd{margin:0}
.dd-len-table input{min-width:0}
.dd-open{color:var(--accent,#0e6e8a)}
@media (max-width:640px){
  .dd-len-table tr{display:grid;grid-template-columns:1fr 1fr;gap:4px 10px;padding:6px 0;border-block-end:1px solid var(--line)}
  .dd-len-table tr:first-child{display:none}
  .dd-len-table td{border:0;padding:2px 0}
  .dd-len-table td[data-label]::before{content:attr(data-label);display:block;color:var(--muted);font-size:.78rem}
  .dd-len-table input{width:100% !important}
}
/* end v3.23.1 dedupe */
/* v3.23.1 book: cancelled rows, duplicates, follow-ups, paging, open bookings on the customer card, Bókun notes, Change the experience */
tr.row-cancelled td{color:var(--muted);background:var(--mute-bg)}
tr.row-cancelled td a{color:var(--muted)}
.dup-warn,.dup-note{display:flex;flex-wrap:wrap;gap:8px 16px;align-items:flex-start;justify-content:space-between}
.dup-warn>b,.dup-warn>p{flex-basis:100%;margin:0}
.dup-list{margin:6px 0 0;padding:0;list-style:none}
.dup-list li{margin:3px 0}
.fu-pick{border:0;padding:0;margin:0;flex-basis:100%;min-width:0}
.fu-pick legend{font-size:.85rem;font-weight:600;padding:0;margin-bottom:4px}
.fu-opts{display:flex;flex-wrap:wrap;gap:4px 16px}
.fu-opts .check{white-space:nowrap}
.fu-line{display:block;color:var(--info);margin-top:4px}
.fu-line.fu-line-due{color:var(--bad);font-weight:600}
.unpaid-card.fu-due{border-inline-start-color:var(--bad);box-shadow:0 0 0 2px var(--bad-bg)}
.unpaid-card.fu-waiting{opacity:.82}
.fu-title{margin:14px 0 8px;font-size:.95rem;color:var(--muted)}
.fu-title-due{color:var(--bad)}
.unpaid-pager{display:flex;flex-wrap:wrap;gap:8px 16px;align-items:center;justify-content:space-between}
.cust-open .co-list{margin:0;padding:0;list-style:none}
.cust-open .co-item{padding:10px 0;border-bottom:1px solid var(--line)}
.cust-open .co-item:last-child{border-bottom:0}
.cust-open .co-acts{margin-top:8px;align-items:center}
.cust-open .co-why{color:var(--muted)}
.cust-open .co-badges{white-space:nowrap}
.bk-try,.bk-product{display:flex;flex-wrap:wrap;gap:8px 16px;align-items:flex-end;justify-content:space-between}
.bk-try>div,.bk-product>div{flex:1 1 320px}
.bk-try-link label{min-width:220px}
.cx-kinds{border:1px solid var(--line);border-radius:8px;padding:8px 12px;margin:0}
.cx-kinds legend{font-weight:600;padding:0 4px}
.cx-prod{margin:16px 0 8px}
.cx-day{margin-bottom:10px}
@media (max-width:600px){
  .dup-warn .btn-row,.dup-note form{width:100%}
  .unpaid-pager .btn-row{width:100%}
  .cust-open .co-acts .btn{flex:1 1 auto}
  .bk-try-link{width:100%}
  .bk-try-link label{min-width:0;flex:1 1 100%}
}
/* end v3.23.1 book */
/* v3.23.1 wa — WhatsApp: Done in one tap and "No reply needed" (#70), Send from DiveHub on Scheduled messages (#73), offers through Meta (#71) */
.wa-list li{position:relative}
.wa-list li.has-qd>a,.wa-app .wa-list li.has-qd>a{padding-inline-end:52px}
.wa-qd{position:absolute;inset-inline-end:12px;bottom:10px;margin:0}
.wa-qdbtn{display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;border-radius:50%;border:1px solid var(--line);background:var(--panel);color:var(--ok);cursor:pointer;padding:0}
.wa-qdbtn:hover,.wa-qdbtn:focus-visible{background:var(--ok-bg);border-color:var(--ok);outline:none}
.wa-qdbtn svg{width:16px;height:16px}
.wa-noreply{margin-top:4px}
.wa-tchats{list-style:none;margin:0 0 10px;padding:0 0 0 18px;border-inline-start:3px solid var(--bad-bg)}
[dir=rtl] .wa-tchats{padding:0 18px 0 0}
.wa-tline{display:flex;gap:10px;align-items:center;justify-content:space-between;padding:8px 0;border-block-end:1px solid var(--line)}
.wa-tl-main{display:flex;flex-wrap:wrap;gap:4px 8px;align-items:center;min-width:0;flex:1;color:var(--ink);text-decoration:none}
.wa-tl-last{flex-basis:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.wa-tl-acts{display:flex;gap:6px;align-items:center;flex-shrink:0}.wa-tl-acts form{margin:0}
.wa-dh-hint{display:block;margin-top:4px}
.wa-open-link{font-size:13px}
.wt-auto{display:flex;flex-wrap:wrap;gap:6px 10px;align-items:center}.wt-auto small{flex-basis:100%}
.wa-today .wa-tick{white-space:nowrap}
.wo-langs{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:12px;margin:8px 0}
.wo-lang{min-width:0}
.wo-bubble{max-width:none;margin:6px 0}
.wo-img{display:block;max-width:220px;max-height:160px;border-radius:8px;margin-bottom:6px;object-fit:cover}
.wo-foot{display:block;margin-top:6px;color:var(--muted)}
.wo-meta,.wo-ask,.wo-asked,.wo-sending{border-block-start:1px solid var(--line);padding-block-start:10px;margin-block-start:10px}
.wo-photo{display:flex;gap:10px;align-items:flex-end;flex-wrap:wrap}
.wo-refuse{display:flex;gap:6px;flex-wrap:wrap;align-items:center}.wo-refuse input{min-width:200px;flex:1}
.wo-bar{height:10px;border-radius:999px;background:var(--bg);overflow:hidden;margin:6px 0 10px}.wo-bar i{display:block;height:100%;background:var(--ok)}
.wo-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(110px,1fr));gap:8px;margin:6px 0}
.wo-stat{background:var(--bg);border-radius:10px;padding:8px 10px;display:flex;flex-direction:column}.wo-stat b{font-size:1.25rem}.wo-stat small{color:var(--muted)}
@media (max-width:640px){
  .wa-qdbtn{width:40px;height:40px}
  .wa-list li.has-qd>a,.wa-app .wa-list li.has-qd>a{padding-inline-end:60px}
  .wa-tline{flex-wrap:wrap}.wa-tl-acts{width:100%;justify-content:flex-end}
  table.wa-today,table.wa-today tbody,table.wa-today tr,table.wa-today td{display:block;width:100%}
  table.wa-today tr:first-child th{display:none}
  table.wa-today tr{border-block-end:1px solid var(--line);padding:8px 0}
  table.wa-today td{border:0;padding:4px 0}
  .wo-refuse input{min-width:0}
}
/* end v3.23.1 wa */
/* v3.23.1 mkt — prospect "Next step" (#72), competitors' ads (#58), cost of the advice (#69) */
.pw-next{border:1px solid var(--line);border-radius:var(--radius);padding:10px 12px;margin:0;min-width:0}
.pw-next legend{font-weight:600;padding:0 4px}
.pw-modes{display:flex;flex-wrap:wrap;gap:6px 18px;margin-bottom:8px}
.pw-wait select{width:100%;max-width:100%}
.pw-next p.small,.pw-wait p.small{margin:4px 0 0}
.pw-after{display:flex;flex-wrap:wrap;gap:6px 18px;align-items:center}.pw-after [data-pw-date]{flex-basis:100%}
.pw-tag{display:inline-block;font-size:.8rem;padding:1px 8px;border-radius:999px;background:var(--mute-bg);color:var(--mute);white-space:nowrap}
.pw-tag.due{background:var(--warn-bg);color:var(--warn);font-weight:600}
.pw-hits{margin:6px 0 0}.pw-hits li{margin:3px 0}
.pw-change{margin:10px 0}.pw-change>summary{list-style:none;display:inline-block;cursor:pointer}.pw-change>summary::-webkit-details-marker{display:none}
.pw-change[open]>summary{margin-bottom:8px}
.mk-ads{margin-top:4px}.mk-ads summary{cursor:pointer}.mk-ads form{display:flex;flex-wrap:wrap;gap:6px;align-items:flex-end;margin-top:6px}
.mk-ads input[name=ad_library]{min-width:220px;flex:1}
.mk-ours{display:block;margin-top:4px}
.adv-cost{white-space:nowrap}
.adv-est{display:inline-block;margin-inline-start:6px;font-size:.85rem;color:var(--muted)}
@media (max-width:640px){
  .mk-ads input[name=ad_library]{min-width:0;width:100%}
  .pw-dates{grid-template-columns:1fr 1fr}
}
/* end v3.23.1 mkt */
/* v3.23.2 board — on the active permit = on board, the question at Mark returned, the check-in corrected after the trip */
.ci-permit-note{background:var(--ok-bg);color:var(--ok);border:1px solid #bfe3cd;border-radius:8px;padding:8px 12px;margin:8px 0;font-size:.92rem}
.checkin-list .ci-permit{white-space:normal;text-align:start}
.ci-change{display:inline-block;margin-top:2px}
.ci-fix-note{margin:6px 0}
.ci-fix{position:relative}
.ci-fix>summary{list-style:none;cursor:pointer}.ci-fix>summary::-webkit-details-marker{display:none}
.ci-fix[open]>summary{margin-bottom:6px}
.ci-fix form{min-width:240px;gap:6px}
.ci-fix form input[name=note]{width:100%}
.checkin-list .ci-do:has(.ci-fix[open]){align-items:flex-start}
.checkin-list li.is-noshow:has(.ci-fix[open]){opacity:1}
.rt-counts{display:flex;gap:14px;flex-wrap:wrap}
.rt-counts b{font-size:1.05rem}
.rt-card h2{margin:6px 0 0}
.rt-list{list-style:none;margin:0;padding:0}
.rt-row{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:10px 4px;border-block-end:1px solid var(--line);flex-wrap:wrap}
.rt-row:has(input[value=board]:checked){background:var(--ok-bg)}
.rt-row:has(input[value=no_show]:checked){background:var(--mute-bg)}
.rt-choice{display:inline-flex;border:1px solid var(--line);border-radius:10px;overflow:hidden}
.rt-choice label{margin:0;cursor:pointer;position:relative}
.rt-choice input{position:absolute;opacity:0;width:1px;height:1px}
.rt-choice span{display:block;padding:9px 16px;min-width:110px;text-align:center;font-weight:500}
.rt-choice label + label span{border-inline-start:1px solid var(--line)}
.rt-choice input[value=board]:checked + span{background:var(--ok);color:#fff}
.rt-choice input[value=no_show]:checked + span{background:var(--ink);color:var(--panel)}
.rt-choice input:focus-visible + span{outline:2px solid var(--brand);outline-offset:-2px}
.ci-history{margin-top:12px;border-top:1px solid var(--line);padding-top:8px}
.ci-history h3{margin:0 0 4px;font-size:.95rem}
.ci-history ul{margin:0;padding-inline-start:18px}
@media (max-width:640px){
  .rt-choice{width:100%}.rt-choice label{flex:1}.rt-choice span{min-width:0}
  .ci-fix{width:100%}.ci-fix>summary.btn{width:100%}.ci-fix form{min-width:0}
}
/* end v3.23.2 board */
/* v3.23.2 free — a free place on a booking (bookings/_free_place.php) and the Free places report */
.fp-box{margin-top:14px;border-top:1px solid var(--line);padding-top:10px}
.fp-body{display:flex;flex-direction:column;gap:10px}
.fp-guests{display:flex;flex-direction:column;gap:6px}
.fp-guest{align-items:flex-start;padding:6px 8px;border:1px solid var(--line);border-radius:8px;overflow-wrap:anywhere}
.fp-guest input{margin-top:3px;flex:none}
.fp-guest.fp-picked{border-color:var(--brand);background:color-mix(in srgb,var(--brand) 6%,transparent)}
.fp-picked-note{color:var(--brand);font-weight:600}
.fp-why{margin:0}
.fp-undo{margin-top:4px}
.fp-list td,.fp-table td{vertical-align:top}
.fp-filters select{max-width:220px}
@media (max-width:640px){
  .fp-list tr:first-child,.fp-table tr:first-child,.fp-repeat tr:first-child{display:none}
  .fp-list tr,.fp-table tr,.fp-repeat tr{display:block;padding:6px 0;border-bottom:1px solid var(--line)}
  .fp-list td,.fp-table td,.fp-repeat td{display:inline-block;border:0;padding:2px 0;padding-inline-end:10px;text-align:start}
  .fp-list td[data-l]::before,.fp-table td[data-l]::before,.fp-repeat td[data-l]::before{content:attr(data-l) ": ";color:var(--muted);font-size:.85em}
  .fp-undo,.fp-undo label{width:100%}
  .fp-filters label,.fp-filters select{width:100%;max-width:none}
}
/* end v3.23.2 free */
/* v3.24.0 feed — Sales feed (sales/feed.php): filters, labels with counts, one card per sale */
.sf-filters{padding:14px}
.sf-search{display:flex;gap:8px}
.sf-search input{flex:1;min-width:0}
.sf-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:10px;margin-top:10px}
.sf-row label{margin:0}
.sf-row select,.sf-row input{width:100%;max-width:100%}
.sf-more{margin-top:10px}
.sf-more>summary{cursor:pointer;color:var(--brand);font-weight:500}
.sf-go{display:flex;gap:14px;align-items:center;flex-wrap:wrap;margin-top:12px}
.sf-layout{display:grid;grid-template-columns:minmax(0,1fr) 220px;gap:16px;align-items:start}
.sf-main{min-width:0}
.sf-side{order:2;position:sticky;top:calc(var(--top-h) + 12px);display:flex;flex-direction:column;gap:12px}
.sf-labels{display:flex;flex-direction:column;gap:6px}
.sf-label{display:flex;justify-content:space-between;align-items:center;gap:8px;padding:7px 10px;border:1px solid var(--line);border-radius:8px;background:var(--panel);color:var(--ink);font-size:.92rem}
.sf-label:hover{text-decoration:none;border-color:var(--brand)}
.sf-label.on{border-color:var(--brand);background:var(--brand-soft);color:var(--brand);font-weight:600}
.sf-dot{display:inline-block;width:8px;height:8px;border-radius:50%;margin-inline-end:7px;background:var(--mute)}
.sf-dot.bad{background:var(--bad)} .sf-dot.warn{background:#d39a1c} .sf-dot.info{background:var(--info)}
.sf-sum{display:flex;flex-direction:column;gap:2px;padding:10px;border:1px solid var(--line);border-radius:8px;background:var(--panel)}
.sf-sum b{font-size:1.1rem}
.sf-count{margin:0 0 8px}
.sf-card{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:12px 14px;margin-bottom:10px}
.sf-card.sf-cx{opacity:.6}
.sf-top{display:grid;grid-template-columns:130px minmax(0,1.25fr) minmax(0,1fr) 200px;gap:8px 16px;align-items:start}
.sf-sale b{font-size:1.02rem;white-space:nowrap}
.sf-kind,.sf-code,.sf-when{display:block;font-size:.8rem;color:var(--muted)}
.sf-cust{min-width:0;overflow-wrap:anywhere}
.sf-cust>a,.sf-cust>span:first-child{font-weight:600}
.sf-contact{display:flex;flex-wrap:wrap;gap:4px 12px;font-size:.84rem;margin-top:2px}
.sf-chan{min-width:0;overflow-wrap:anywhere}
.sf-chan small{display:block}
.sf-money{text-align:end;display:flex;flex-direction:column;align-items:flex-end;gap:3px}
.sf-money b{font-size:1.05rem;white-space:nowrap}
.sf-money small{font-size:.76rem;max-width:100%;overflow-wrap:anywhere}
.sf-items{list-style:none;margin:10px 0 0;padding:8px 0 0;border-top:1px dashed var(--line);display:flex;flex-direction:column;gap:6px}
.sf-items li{display:flex;flex-wrap:wrap;gap:3px 12px;align-items:center;font-size:.92rem}
.sf-items li>a{font-weight:600}
.sf-at,.sf-who{color:var(--muted)}
.sf-b{display:inline-flex;flex-wrap:wrap;gap:4px}
.sf-pager{display:flex;gap:10px;align-items:center;justify-content:center;margin:14px 0}
@media (max-width:1100px){
  .sf-layout{grid-template-columns:minmax(0,1fr)}
  .sf-side{order:0;position:static;flex-direction:row;flex-wrap:wrap;align-items:stretch}
  .sf-labels{flex-direction:row;flex-wrap:wrap}
  .sf-sum{flex-direction:row;align-items:baseline;gap:8px;flex-wrap:wrap}
}
@media (max-width:760px){
  .sf-search .btn{padding-inline:12px}
  .sf-row{grid-template-columns:1fr 1fr}
  .sf-top{grid-template-columns:minmax(0,1fr) minmax(0,48%)}
  .sf-sale{grid-column:1;grid-row:1}
  .sf-money{grid-column:2;grid-row:1}
  .sf-cust,.sf-chan{grid-column:1/-1}
  .sf-chan{font-size:.9rem}
  .sf-chan small{display:inline;margin-inline-start:6px}
  .sf-label{font-size:.85rem;padding:6px 9px}
  .sf-items li{font-size:.88rem}
}
/* end v3.24.0 feed */
/* v3.24.0 merge — merge two team records of one person, possible duplicates (views/training/merge.php, index.php, show.php) */
.mg-pair{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;padding:8px 0;border-top:1px solid var(--line)}
.mg-dups h2+p+.mg-pair,.mg-dups details .mg-pair:first-of-type{border-top:0}
.mg-and{color:var(--muted);margin:0 4px}
.mg-side.mg-stays{border-color:var(--brand);box-shadow:0 0 0 2px var(--brand-soft)}
.mg-pick{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.mg-list{margin:4px 0;padding-inline-start:20px}
.mg-list li{margin:2px 0}
ul.plain.mg-list{padding:0}
ul.plain.mg-list li{display:flex;flex-wrap:wrap;gap:6px;align-items:center;padding:4px 0}
.mg-check{color:var(--warn)}
.mg-like{border-color:var(--warn);background:var(--warn-bg)}
.mg-like-row{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-top:6px}
.mg-hist{padding:8px 0;border-top:1px solid var(--line)}
.mg-hist:first-of-type{border-top:0}
.mg-compare dl.kv{margin-top:10px}
.mg-confirm .check{font-weight:600}
@media (max-width:640px){
  .mg-compare dl.kv{grid-template-columns:1fr;row-gap:2px}
  .mg-compare dl.kv dt{margin-top:8px;font-size:.85rem}
  .mg-pair .btn-row{width:100%}
}
/* end v3.24.0 merge */
/* v3.24.0 bd — Basic Diver sessions (views/basic_diver/index.php, session.php; the calendar card; the desk line) */
.bds-days{display:grid;gap:6px}
.bds-dayline{display:flex;flex-wrap:wrap;gap:4px 6px;align-items:baseline}
.bds-when{font-weight:600;min-width:84px}
.bds-bar{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin:14px 0 6px}
h2.bds-day{margin:16px 0 8px;font-size:1.02rem}
h2.bds-day.today{color:var(--brand)}
.bds-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:10px}
.bds-card{display:flex;flex-direction:column;align-items:flex-start;gap:3px;border:1px solid var(--line);border-inline-start:4px solid #6c5ce7;border-radius:8px;padding:10px 12px;background:var(--panel);color:var(--ink);min-width:0}
.bds-card:hover{text-decoration:none;border-color:var(--brand)}
.bds-card.boat{border-inline-start-color:var(--info)}
.bds-card.done{opacity:.75}
.bds-time{font-weight:700;font-size:1.05rem}
.bds-place{font-weight:600;overflow-wrap:anywhere}
.bds-page{max-width:900px}
.bds-sub{display:flex;flex-wrap:wrap;gap:4px;align-items:center}
.bds-team li{display:flex;flex-wrap:wrap;gap:6px;align-items:center}
.bds-all{display:flex;flex-wrap:wrap;gap:6px;align-items:center;margin-bottom:10px}
.bds-guests{display:grid;gap:10px}
.bds-guest{border:1px solid var(--line);border-radius:8px;padding:10px 12px;background:var(--panel);min-width:0}
.bds-guest.off{opacity:.65}
.bds-guest.closed{border-color:var(--ok)}
.bds-g-head{display:flex;flex-wrap:wrap;gap:6px;align-items:center}
.bds-g-bk{margin-inline-start:auto;display:flex;flex-wrap:wrap;gap:6px;align-items:center}
.bds-ticks{display:flex;flex-wrap:wrap;gap:6px;margin:8px 0}
.bds-tick{display:inline-flex;align-items:center;gap:6px;border:1px solid var(--line);border-radius:8px;padding:6px 10px;background:var(--panel);color:var(--ink);font:inherit;font-size:.9rem;cursor:pointer;min-height:36px}
.bds-tick i{display:inline-flex;align-items:center;justify-content:center;width:18px;height:18px;border:2px solid var(--muted);border-radius:4px;font-style:normal;font-size:.75rem;line-height:1;flex:none}
.bds-tick.on{border-color:var(--ok);background:var(--ok-bg);color:var(--ok)}
.bds-tick.on i{border-color:var(--ok);background:var(--ok);color:#fff}
.bds-tick.ro{cursor:default;opacity:.85}
details.bds-cert{display:inline-block}
details.bds-cert>summary{list-style:none}
details.bds-cert>summary::-webkit-details-marker{display:none}
details.bds-cert[open]{display:block;width:100%}
details.bds-cert .inline-form{margin-top:6px}
.bds-g-more{display:flex;flex-wrap:wrap;gap:6px 14px;align-items:center}
.bds-g-more form.inline{display:inline-flex;gap:4px;align-items:center}
.bds-mid input{width:130px}
.bds-g-acts{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px;padding-top:8px;border-top:1px dashed var(--line)}
.bds-g-acts form.inline{display:inline-flex;gap:4px;align-items:center;flex-wrap:wrap}
.bds-move select{max-width:240px}
details.inline-details{display:inline}
details.inline-details>summary{display:inline;cursor:pointer;color:var(--brand)}
.bds-desk{display:flex;flex-wrap:wrap;gap:6px 14px;align-items:center;color:var(--ink)}
.bds-desk:hover{text-decoration:none;border-color:var(--brand)}
.cal-bd{display:block;font-size:.72rem;color:#4b3aa8;margin-top:2px}
.cal-bd.short{color:var(--warn);font-weight:600}
@media (max-width:600px){
  .bds-g-bk{margin-inline-start:0;width:100%}
  .bds-tick{flex:1 1 calc(50% - 6px)}
  .bds-cards{grid-template-columns:minmax(0,1fr)}
  .bds-move select{max-width:100%;width:100%}
}
.bds-try label.check{align-items:flex-start}
.bds-try label.check input{flex:none;margin-top:3px}
.bds-try-list li,.bds-try-left li{padding:3px 0;overflow-wrap:anywhere}
/* end v3.24.0 bd */
/* v3.24.0 rebook — Book it again, Merge bookings, the permit card's "One booking for them" */
.pe-one{flex-wrap:wrap;background:var(--bg);border-radius:8px;padding:8px 10px;margin:-4px 0 8px;font-weight:500}
.pe-one small{flex-basis:100%;font-weight:400}
.rb-guests ul.plain{margin:4px 0}
.rb-board{border:1px solid var(--line);border-radius:8px;padding:8px 12px;margin:0}
.rb-history ul.plain li,.mb-what li,.rb-what li{overflow-wrap:anywhere}
.mb-list{display:grid;gap:10px;grid-template-columns:repeat(auto-fill,minmax(280px,1fr))}
.mb-card{margin:0;display:grid;gap:4px;min-width:0}
.mb-card.mb-no{opacity:.75}
.mb-card.was-chosen{outline:2px solid var(--brand)}
.mb-head{display:flex;flex-wrap:wrap;gap:4px 8px;align-items:center}
.mb-pay{margin-inline-start:auto}
.mb-reason{margin:4px 0 0;color:var(--muted)}
.mb-card .small,.mb-reason{overflow-wrap:anywhere}
/* end v3.24.0 rebook */
/* v3.24.0 lead — the order confirmation with the payment information (sales/order_receipt) */
.orc-switch{margin:0 0 12px}
.orc-period{display:flex;flex-wrap:wrap;gap:10px;align-items:flex-end;margin-bottom:12px}
.orc{max-width:820px;margin:0 auto 28px;font-size:.95rem}
.orc-next{border-block-start:1px dashed var(--line);padding-top:20px}
.orc-top{display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;margin-bottom:14px}
.orc-title{font-size:1.4rem;margin:0}
.orc-sub{color:var(--muted);margin-bottom:6px}
.orc-no{font-size:1.15rem;margin-top:6px}.orc-no b{font-size:1.35rem}
.orc-meta{border-collapse:collapse;font-size:.9rem}
.orc-meta th{text-align:start;font-weight:500;color:var(--muted);padding:2px 12px 2px 0;text-transform:none;letter-spacing:0;font-size:inherit}
[dir=rtl] .orc-meta th{padding:2px 0 2px 12px}
.orc-meta td{padding:2px 0}
.orc-st-ok{color:#11753a}.orc-st-warn{color:#a15c00}.orc-st-bad{color:#b3261e}
.orc-parties{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-bottom:14px}
.orc-party{border:1px solid var(--line);border-radius:8px;padding:10px 12px;line-height:1.5}
.orc-party h3,.orc-h{font-size:.8rem;text-transform:uppercase;letter-spacing:.04em;color:var(--muted);margin:0 0 4px}
.orc-h{margin:18px 0 6px}
.orc-items{width:100%;border-collapse:collapse}
.orc-items th{text-align:start;font-size:.8rem;color:var(--muted);border-block-end:2px solid var(--line);padding:6px}
.orc-items td{border-block-end:1px solid var(--line);padding:6px;vertical-align:top}
.orc-items .num{text-align:end;white-space:nowrap}
.orc-incl{margin:4px 0 8px}
.orc-sum{margin-inline-start:auto;border-collapse:collapse;min-width:300px}
.orc-sum th{text-align:start;font-weight:400;padding:4px 16px 4px 0;text-transform:none;letter-spacing:0;font-size:inherit;color:inherit;background:none}
[dir=rtl] .orc-sum th{padding:4px 0 4px 16px}
.orc-sum td{text-align:end;white-space:nowrap;padding:4px 0}
.orc-total th,.orc-total td{font-weight:700;border-block-start:2px solid var(--ink,#222);padding-top:6px}
.orc-pay{border:1px solid var(--line);border-radius:8px;padding:10px 12px;margin-bottom:10px;break-inside:avoid}
.orc-pay dl{display:grid;grid-template-columns:max-content 1fr;gap:3px 16px;margin:0}
.orc-pay dt{color:var(--muted)}.orc-pay dd{margin:0}
.orc-refund{border-block-start:1px dashed var(--line);margin-top:8px!important;padding-top:8px}
.orc-test{color:#b3261e;font-weight:600;margin:6px 0 0}
.orc-policy{font-size:.9rem}.orc-policy p,.orc-policy ul,.orc-policy ol{margin:0 0 6px}.orc-policy h2,.orc-policy h3{font-size:.95rem;margin:6px 0 4px}
.orc-contact{margin-top:18px;border-block-start:1px solid var(--line);padding-top:8px;font-size:.9rem}
@media (max-width:640px){.orc-parties{grid-template-columns:1fr}.orc-sum{min-width:0;width:100%}.orc-pay dl{grid-template-columns:1fr}.orc-pay dd{margin-bottom:4px}}
@media print{.orc{max-width:none;font-size:10.5pt}.orc-next{break-before:page;border:0;padding-top:0}.orc-st-ok,.orc-st-warn,.orc-st-bad{color:inherit}}
/* v3.24.1 links — My links */
.ml-url{font-size:1.05rem;font-weight:600;overflow-wrap:anywhere;margin:6px 0 10px}
.ml-made{background:var(--ok-bg,#eaf7ee)}
.bk-seller-why{display:inline-block;margin-top:2px}
.bds-place .warn-text{display:inline-block;margin-top:4px}
