/* IndiTour CRM — styles */
:root{
  --bg:#f5f6fa; --panel:#ffffff; --ink:#111827; --ink2:#374151; --muted:#6b7280; --line:#e5e7eb; --line2:#f0f1f5;
  --brand:#5b4ee6; --brand-d:#4338ca; --brand-l:#eeecfd; --brand-ll:#f6f5ff;
  --green:#059669; --green-l:#e7f7f0; --blue:#2563eb; --blue-l:#e8f0fe; --amber:#b45309; --amber-l:#fef5e4;
  --red:#dc2626; --red-l:#fdecec; --gray-l:#f1f2f5; --teal:#0d9488; --teal-l:#e6f6f4;
  --r:10px; --r-sm:7px; --sh:0 1px 2px rgba(16,24,40,.05),0 1px 3px rgba(16,24,40,.06); --sh-lg:0 20px 50px rgba(16,24,40,.18);
  --sb:248px;
  font-family: Inter, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
}
*{box-sizing:border-box}
html,body{margin:0;height:100%}
body{background:var(--bg);color:var(--ink);font-size:14px;line-height:1.45;-webkit-font-smoothing:antialiased}
a{color:var(--brand);text-decoration:none}
h1,h2,h3,h4{margin:0;font-weight:650;letter-spacing:-.01em}
h1{font-size:22px} h2{font-size:17px} h3{font-size:15px} h4{font-size:13px}
.muted{color:var(--muted)} .small{font-size:12px} .tr{text-align:right} .tc{text-align:center} .nowrap{white-space:nowrap}
.b{font-weight:600} .mono{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12.5px}
.ic{width:17px;height:17px;flex:none;vertical-align:-3px}
.ic.lg{width:20px;height:20px}
.sp{flex:1}
.row{display:flex;gap:10px;align-items:center;flex-wrap:wrap}
.stack{display:flex;flex-direction:column;gap:14px}
.hide{display:none!important}

/* layout */
.app{display:flex;min-height:100vh}
.sidebar{width:var(--sb);background:#fff;border-right:1px solid var(--line);position:fixed;inset:0 auto 0 0;display:flex;flex-direction:column;z-index:30;transition:transform .2s}
.brand{display:flex;gap:10px;align-items:center;padding:16px 16px 14px;border-bottom:1px solid var(--line2)}
.brand .logo{width:36px;height:36px;border-radius:9px;background:linear-gradient(135deg,var(--brand),var(--brand-d));color:#fff;display:grid;place-items:center;font-weight:700;font-size:13px;overflow:hidden;flex:none}
.brand .logo img{width:100%;height:100%;object-fit:contain;background:#fff}
.brand-name{font-weight:700;font-size:13.5px;line-height:1.2}
.brand-sub{font-size:11px;color:var(--muted)}
.nav{padding:8px 10px 20px;overflow-y:auto;flex:1}
.nav .sec{font-size:10.5px;text-transform:uppercase;letter-spacing:.08em;color:#9ca3af;font-weight:600;padding:14px 10px 5px}
.nav a{display:flex;align-items:center;gap:10px;padding:7px 10px;border-radius:8px;color:var(--ink2);font-weight:500;font-size:13.5px;margin:1px 0}
.nav a:hover{background:var(--gray-l)}
.nav a.on{background:var(--brand-l);color:var(--brand-d)}
.nav a .cnt{margin-left:auto;background:var(--red);color:#fff;font-size:10.5px;border-radius:10px;padding:0 6px;font-weight:600;line-height:17px}
.nav a .cnt.soft{background:var(--gray-l);color:var(--muted)}
.main{flex:1;margin-left:var(--sb);min-width:0;display:flex;flex-direction:column}
.topbar{height:58px;background:rgba(255,255,255,.9);backdrop-filter:blur(8px);border-bottom:1px solid var(--line);display:flex;align-items:center;gap:14px;padding:0 24px;position:sticky;top:0;z-index:20}
.search{position:relative;flex:1;max-width:520px}
.search input{width:100%;height:36px;border:1px solid var(--line);background:var(--bg);border-radius:9px;padding:0 12px 0 34px;font:inherit;outline:none}
.search input:focus{border-color:var(--brand);background:#fff;box-shadow:0 0 0 3px var(--brand-l)}
.search .ic{position:absolute;left:10px;top:9px;color:var(--muted)}
.search-results{position:absolute;top:42px;left:0;right:0;background:#fff;border:1px solid var(--line);border-radius:10px;box-shadow:var(--sh-lg);max-height:420px;overflow:auto;display:none}
.search-results.open{display:block}
.search-results a{display:flex;gap:10px;padding:9px 12px;color:var(--ink);border-bottom:1px solid var(--line2)}
.search-results a:hover{background:var(--brand-ll)}
.search-results .k{font-size:11px;color:var(--muted);min-width:78px}
.top-actions{display:flex;gap:10px;align-items:center;margin-left:auto}
.avatar{width:32px;height:32px;border-radius:50%;background:var(--brand-l);color:var(--brand-d);display:grid;place-items:center;font-weight:700;font-size:12px;flex:none}
.view{padding:22px 24px 60px;max-width:1440px;width:100%}
.mobile-only{display:none}

/* page head */
.page-head{display:flex;justify-content:space-between;align-items:flex-end;gap:16px;margin-bottom:18px;flex-wrap:wrap}
.page-head p{margin:4px 0 0}
.page-head .actions{display:flex;gap:8px;flex-wrap:wrap}
.crumb{font-size:12px;color:var(--muted);margin-bottom:4px}
.crumb a{color:var(--muted)} .crumb a:hover{color:var(--brand)}

/* buttons */
.btn{display:inline-flex;align-items:center;gap:6px;height:34px;padding:0 13px;border-radius:8px;border:1px solid var(--line);background:#fff;color:var(--ink2);font:inherit;font-weight:550;font-size:13px;cursor:pointer;white-space:nowrap;transition:background .12s,border-color .12s}
.btn:hover{background:var(--gray-l)}
.btn.primary{background:var(--brand);border-color:var(--brand);color:#fff}
.btn.primary:hover{background:var(--brand-d)}
.btn.green{background:var(--green);border-color:var(--green);color:#fff}
.btn.danger{color:var(--red)} .btn.danger:hover{background:var(--red-l);border-color:#f5c2c2}
.btn.ghost{border-color:transparent;background:transparent}
.btn.ghost:hover{background:var(--gray-l)}
.btn.sm{height:28px;padding:0 9px;font-size:12px;border-radius:7px}
.btn.xs{height:24px;padding:0 7px;font-size:11.5px;border-radius:6px}
.btn:disabled{opacity:.5;cursor:not-allowed}
.icon-btn{width:30px;height:30px;display:inline-grid;place-items:center;border-radius:7px;border:0;background:transparent;color:var(--muted);cursor:pointer}
.icon-btn:hover{background:var(--gray-l);color:var(--ink)}
.icon-btn.del:hover{background:var(--red-l);color:var(--red)}
.dd{position:relative;display:inline-block}
.dd-menu{position:absolute;right:0;top:40px;background:#fff;border:1px solid var(--line);border-radius:10px;box-shadow:var(--sh-lg);min-width:200px;padding:6px;display:none;z-index:40}
.dd.open .dd-menu{display:block}
.dd-menu button,.dd-menu a{display:flex;gap:9px;align-items:center;width:100%;text-align:left;border:0;background:none;padding:8px 10px;border-radius:7px;font:inherit;color:var(--ink2);cursor:pointer}
.dd-menu button:hover,.dd-menu a:hover{background:var(--brand-ll);color:var(--brand-d)}

/* cards */
.card{background:var(--panel);border:1px solid var(--line);border-radius:var(--r);box-shadow:var(--sh)}
.card-h{display:flex;align-items:center;gap:10px;padding:13px 16px;border-bottom:1px solid var(--line2)}
.card-h h3{flex:1}
.card-b{padding:16px}
.card-b.tight{padding:0}
.grid{display:grid;gap:16px}
.g2{grid-template-columns:repeat(2,minmax(0,1fr))} .g3{grid-template-columns:repeat(3,minmax(0,1fr))} .g4{grid-template-columns:repeat(4,minmax(0,1fr))}
.g6{grid-template-columns:repeat(6,minmax(0,1fr))}
.split{display:grid;grid-template-columns:minmax(0,1fr) 330px;gap:16px;align-items:start}
.sticky{position:sticky;top:76px}

/* kpi */
.kpi{padding:15px 16px;display:flex;flex-direction:column;gap:4px;cursor:default}
.kpi[data-go]{cursor:pointer} .kpi[data-go]:hover{border-color:#cdc8f8}
.kpi .l{font-size:12px;color:var(--muted);font-weight:550;display:flex;align-items:center;gap:6px}
.kpi .v{font-size:22px;font-weight:700;letter-spacing:-.02em}
.kpi .s{font-size:11.5px;color:var(--muted)}
.kpi .dot{width:26px;height:26px;border-radius:7px;display:grid;place-items:center}
.t-brand{background:var(--brand-l);color:var(--brand)} .t-green{background:var(--green-l);color:var(--green)} .t-blue{background:var(--blue-l);color:var(--blue)}
.t-amber{background:var(--amber-l);color:var(--amber)} .t-red{background:var(--red-l);color:var(--red)} .t-teal{background:var(--teal-l);color:var(--teal)}

/* tables */
.tbl-wrap{overflow-x:auto}
table.tbl{width:100%;border-collapse:collapse;font-size:13px}
.tbl th{text-align:left;font-weight:600;color:var(--muted);font-size:11.5px;text-transform:uppercase;letter-spacing:.04em;padding:9px 12px;border-bottom:1px solid var(--line);background:#fafbfc;white-space:nowrap;position:sticky;top:0}
.tbl td{padding:10px 12px;border-bottom:1px solid var(--line2);vertical-align:middle}
.tbl tr:last-child td{border-bottom:0}
.tbl tbody tr.click{cursor:pointer}
.tbl tbody tr.click:hover td{background:var(--brand-ll)}
.tbl td.act{white-space:nowrap;text-align:right;width:1%}
.tbl tfoot td{font-weight:650;background:#fafbfc;border-top:1px solid var(--line)}
.tbl .sub{font-size:11.5px;color:var(--muted)}
.tbl.compact td{padding:7px 10px} .tbl.compact th{padding:7px 10px}
.tbl input,.tbl select{height:30px;font-size:13px}
.tbl.edit td{padding:5px 6px}

/* badges */
.badge{display:inline-flex;align-items:center;gap:4px;padding:2px 8px;border-radius:20px;font-size:11.5px;font-weight:600;background:var(--gray-l);color:var(--ink2);white-space:nowrap}
.badge.green{background:var(--green-l);color:var(--green)} .badge.blue{background:var(--blue-l);color:var(--blue)}
.badge.amber{background:var(--amber-l);color:var(--amber)} .badge.red{background:var(--red-l);color:var(--red)}
.badge.brand{background:var(--brand-l);color:var(--brand-d)} .badge.teal{background:var(--teal-l);color:var(--teal)}

/* toolbar + tabs */
.toolbar{display:flex;gap:10px;align-items:center;padding:12px 14px;border-bottom:1px solid var(--line2);flex-wrap:wrap}
.toolbar .search-in{position:relative;flex:1;min-width:200px;max-width:340px}
.toolbar .search-in input{padding-left:32px}
.toolbar .search-in .ic{position:absolute;left:10px;top:9px;color:var(--muted)}
.tabs{display:flex;gap:2px;border-bottom:1px solid var(--line);margin-bottom:16px;overflow-x:auto}
@media (min-width:900px){.tabs{flex-wrap:wrap;overflow-x:visible}}  /* laptop and desktop: every tab visible (a second row if needed); phones scroll sideways */
.tabs button{border:0;background:none;padding:9px 14px;font:inherit;font-weight:550;color:var(--muted);cursor:pointer;border-bottom:2px solid transparent;margin-bottom:-1px;white-space:nowrap;display:flex;gap:6px;align-items:center}
.tabs button:hover{color:var(--ink)}
.tabs button.on{color:var(--brand-d);border-bottom-color:var(--brand)}
.tabs button .n{background:var(--gray-l);border-radius:10px;padding:0 6px;font-size:11px}
.pills{display:flex;gap:6px;flex-wrap:wrap}
.pills button{border:1px solid var(--line);background:#fff;border-radius:20px;padding:4px 12px;font:inherit;font-size:12.5px;font-weight:550;color:var(--ink2);cursor:pointer}
.pills button.on{background:var(--ink);border-color:var(--ink);color:#fff}
.pills button .n{opacity:.6;margin-left:3px}

/* forms */
input,select,textarea{font:inherit;color:var(--ink);border:1px solid #d9dce3;border-radius:var(--r-sm);background:#fff;height:36px;padding:0 10px;width:100%;outline:none;transition:border-color .12s,box-shadow .12s}
textarea{height:auto;min-height:72px;padding:8px 10px;resize:vertical;line-height:1.45}
input:focus,select:focus,textarea:focus{border-color:var(--brand);box-shadow:0 0 0 3px var(--brand-l)}
input[type=checkbox]{width:16px;height:16px;accent-color:var(--brand);vertical-align:-3px}
input[type=file]{padding:6px;height:auto}
/* 12 columns: w1 = 1/6, q = 1/4, w2 = 1/3, w3 = 1/2 (default), w4 = 2/3, q3 = 3/4, w5 = 5/6, w6 = full */
.form-grid{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:12px 16px}
.field{grid-column:span 6;display:flex;flex-direction:column;gap:5px;min-width:0}
.field.w1{grid-column:span 2} .field.q{grid-column:span 3} .field.w2{grid-column:span 4} .field.w3{grid-column:span 6} .field.w4{grid-column:span 8} .field.q3{grid-column:span 9} .field.w5{grid-column:span 10} .field.w6,.field.full{grid-column:1/-1}
.field label{font-size:12px;font-weight:600;color:var(--ink2)}
.field label .req{color:var(--red)}
.field .hint{font-size:11.5px;color:var(--muted)}
.field.check{flex-direction:row;align-items:center;gap:8px;padding-top:22px}
/* a tick box drawn as a box, in line with the other boxes of its row */
.field.box-check .flab{font-size:12px;line-height:1.45;visibility:hidden}
.field.box-check .cbox{display:flex;align-items:center;gap:9px;height:36px;padding:0 10px;border:1px solid #d9dce3;border-radius:var(--r-sm);background:#fafbff;font-size:13.5px;font-weight:500;color:var(--ink);cursor:pointer;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.field.box-check .cbox:has(input:focus-visible){border-color:var(--brand);box-shadow:0 0 0 3px var(--brand-l)}
.form-sec{grid-column:1/-1;display:flex;align-items:center;gap:10px;font-size:12.5px;font-weight:650;color:var(--brand-d);margin-top:6px}
.form-sec::after{content:"";flex:1;height:1px;background:var(--line)}
.form-sec:first-child{margin-top:0}
.inline-add{display:flex;gap:6px}
.inline-add select{flex:1}
/* the "+" joins the right edge of its box, so boxes with and without "+" are equally wide */
.field .inline-add{gap:0;min-width:0}
.field .inline-add>select,.field .inline-add>input{flex:1;min-width:0;border-top-right-radius:0;border-bottom-right-radius:0}
.field .inline-add>.btn{height:36px;width:36px;padding:0;justify-content:center;border:1px solid #d9dce3;border-left:0;border-radius:0 var(--r-sm) var(--r-sm) 0;background:var(--brand-ll);color:var(--brand-d);flex:none}
.field .inline-add>.btn:hover{background:var(--brand-l)}
.field .inline-add>.btn.primary{background:var(--brand);border-color:var(--brand);color:#fff}
.modal-f .btn{height:36px}

/* modal */
.modal-bg{position:fixed;inset:0;background:rgba(17,24,39,.45);display:flex;align-items:flex-start;justify-content:center;padding:5vh 16px;z-index:100;overflow-y:auto;animation:fade .15s}
.modal{background:#fff;border-radius:14px;box-shadow:var(--sh-lg);width:100%;max-width:640px;display:flex;flex-direction:column;animation:pop .16s}
.modal.lg{max-width:900px} .modal.xl{max-width:1150px} .modal.sm{max-width:440px}
.modal-h{display:flex;align-items:center;padding:16px 20px;border-bottom:1px solid var(--line2)}
.modal-h h2{flex:1}
.modal-b{padding:18px 20px;max-height:72vh;overflow-y:auto}
.modal-f{display:flex;gap:8px;padding:14px 20px;border-top:1px solid var(--line2);align-items:center;background:#fafbfc;border-radius:0 0 14px 14px}
@keyframes fade{from{opacity:0}} @keyframes pop{from{transform:translateY(8px) scale(.98);opacity:0}}

/* toast */
#toasts{position:fixed;bottom:20px;right:20px;display:flex;flex-direction:column;gap:8px;z-index:200}
.toast{background:var(--ink);color:#fff;padding:10px 16px;border-radius:9px;box-shadow:var(--sh-lg);font-size:13px;animation:pop .2s;max-width:380px}
.toast.err{background:var(--red)}

/* misc */
.empty{text-align:center;padding:42px 20px;color:var(--muted)}
.empty .ic{width:34px;height:34px;color:#c7cad3;margin-bottom:8px}
.empty h3{color:var(--ink2);margin-bottom:4px}
.progress{height:6px;background:var(--gray-l);border-radius:4px;overflow:hidden;min-width:70px}
.progress i{display:block;height:100%;background:var(--green);border-radius:4px}
.progress.amber i{background:#f59e0b} .progress.red i{background:var(--red)}
.kv{display:grid;grid-template-columns:140px 1fr;gap:7px 12px;font-size:13px}
.kv dt{color:var(--muted)} .kv dd{margin:0;font-weight:500}
.sum-row{display:flex;justify-content:space-between;align-items:center;padding:7px 0;font-size:13px;gap:10px}
.sum-row.total{border-top:1px solid var(--line);margin-top:6px;padding-top:12px;font-size:16px;font-weight:700}
.sum-row input,.sum-row select{width:110px;height:30px;text-align:right}
.sum-row select{text-align:left;width:150px}
.list-item{display:flex;gap:12px;align-items:center;padding:10px 16px;border-bottom:1px solid var(--line2)}
.list-item:last-child{border-bottom:0}
.list-item.click{cursor:pointer} .list-item.click:hover{background:var(--brand-ll)}
.list-item .grow{flex:1;min-width:0}
.list-item .t{font-weight:550;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.date-chip{width:44px;text-align:center;border:1px solid var(--line);border-radius:8px;padding:3px 0;flex:none;background:#fff}
.date-chip .m{font-size:10px;text-transform:uppercase;color:var(--red);font-weight:700}
.date-chip .d{font-size:16px;font-weight:700;line-height:1.1}
.banner{background:linear-gradient(90deg,var(--brand-l),#fdf2ff);border:1px solid #ddd8fb;border-radius:var(--r);padding:12px 16px;display:flex;gap:12px;align-items:center;margin-bottom:16px;font-size:13px}
.chart{display:flex;align-items:flex-end;gap:10px;height:170px;padding:10px 4px 0}
.chart .col{flex:1;display:flex;flex-direction:column;align-items:center;gap:6px;height:100%;justify-content:flex-end}
.chart .bars{display:flex;gap:3px;align-items:flex-end;height:100%;width:100%;justify-content:center}
.chart .bar{width:42%;max-width:22px;background:var(--brand);border-radius:4px 4px 0 0;min-height:2px;position:relative}
.chart .bar.out{background:#f59e0b}
.chart .lbl{font-size:11px;color:var(--muted)}
.legend{display:flex;gap:14px;font-size:12px;color:var(--muted)}
.legend i{display:inline-block;width:10px;height:10px;border-radius:3px;margin-right:5px;vertical-align:-1px}

/* itinerary days */
.day{border:1px solid var(--line);border-radius:10px;padding:12px;display:grid;grid-template-columns:70px 1fr;gap:12px;background:#fff}
.day + .day{margin-top:10px}
.day .num{background:var(--brand-l);color:var(--brand-d);border-radius:8px;text-align:center;padding:8px 4px;align-self:start}
.day .num b{display:block;font-size:18px}
.day .num small{font-size:10.5px;display:block}
.day .fields{display:grid;grid-template-columns:2fr 1fr 1.4fr auto;gap:8px}
.day .fields textarea{grid-column:1/-1;min-height:60px}
.meals{display:flex;gap:8px;align-items:center;font-size:12px;color:var(--ink2);white-space:nowrap}
.meals label{display:flex;gap:3px;align-items:center}

/* kanban */
.kanban{display:grid;grid-template-columns:repeat(3,minmax(260px,1fr));gap:14px;align-items:start}
.kcol{background:#eef0f4;border-radius:12px;padding:10px;min-height:200px}
.kcol.over{background:var(--brand-l)}
.kcol-h{display:flex;align-items:center;gap:8px;padding:4px 6px 10px;font-weight:650;font-size:13px}
.kcard{background:#fff;border-radius:9px;padding:11px 12px;box-shadow:var(--sh);margin-bottom:8px;cursor:grab;border-left:3px solid transparent}
.kcard.p-High{border-left-color:var(--red)} .kcard.p-Medium{border-left-color:#f59e0b} .kcard.p-Low{border-left-color:#9ca3af}
.kcard .t{font-weight:600;font-size:13px;margin-bottom:6px}
.kcard .m{display:flex;gap:6px;flex-wrap:wrap;align-items:center;font-size:11.5px;color:var(--muted)}
.kcard.dragging{opacity:.5}

/* email */
.mail{display:grid;grid-template-columns:200px 360px minmax(0,1fr);min-height:calc(100vh - 170px)}
.mail .folders{border-right:1px solid var(--line2);padding:10px}
.mail .folders button{display:flex;width:100%;gap:9px;align-items:center;border:0;background:none;padding:8px 10px;border-radius:8px;font:inherit;font-weight:550;color:var(--ink2);cursor:pointer}
.mail .folders button.on{background:var(--brand-l);color:var(--brand-d)}
.mail .folders button .n{margin-left:auto;font-size:11px;color:var(--muted)}
.mail .mlist{border-right:1px solid var(--line2);overflow-y:auto;max-height:calc(100vh - 170px)}
.mitem{padding:11px 14px;border-bottom:1px solid var(--line2);cursor:pointer}
.mitem:hover{background:var(--gray-l)} .mitem.on{background:var(--brand-ll)}
.mitem.unread .s{font-weight:700} .mitem.unread .f::before{content:"";display:inline-block;width:7px;height:7px;background:var(--brand);border-radius:50%;margin-right:6px}
.mitem .f{font-size:13px;font-weight:600;display:flex;justify-content:space-between;gap:8px}
.mitem .f span:first-child{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.mitem .s{font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.mitem .p{font-size:12px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.mread{padding:18px 22px;overflow-y:auto;max-height:calc(100vh - 170px)}
.mread iframe{width:100%;border:0;min-height:520px;background:#fff}
.mread pre{white-space:pre-wrap;font-family:inherit;margin:0}

/* print / document view */
.print-bar{display:flex;gap:8px;align-items:center;margin-bottom:16px;flex-wrap:wrap}
.paper{background:#fff;max-width:860px;margin:0 auto;padding:40px 46px;box-shadow:var(--sh-lg);border-radius:6px}
body.print-mode .paper{min-height:1000px}

/* status line for services */
.svc-status{height:28px;font-size:12px;padding:0 6px;width:auto}

/* responsive */
@media (max-width:1180px){ .split{grid-template-columns:1fr} .sticky{position:static} .g6{grid-template-columns:repeat(3,1fr)} .mail{grid-template-columns:170px 300px minmax(0,1fr)} }
@media (max-width:960px){ .g4{grid-template-columns:repeat(2,1fr)} .g3{grid-template-columns:1fr 1fr} .kanban{grid-template-columns:1fr} .mail{grid-template-columns:1fr} .mail .folders{display:flex;overflow-x:auto} .day .fields{grid-template-columns:1fr 1fr} }
@media (max-width:820px){
  .sidebar{transform:translateX(-100%)} body.nav-open .sidebar{transform:none}
  .main{margin-left:0} .mobile-only{display:inline-grid}
  .view{padding:16px} .topbar{padding:0 16px}
  .g2,.g3{grid-template-columns:1fr} .form-grid{grid-template-columns:repeat(2,minmax(0,1fr))} .form-grid>.field,.form-grid>.form-sec{grid-column:1/-1} .form-grid>.field.w1,.form-grid>.field.q,.form-grid>.field.small{grid-column:span 1}
  .paper{padding:20px}
  .kv{grid-template-columns:110px 1fr}
}

@media print{
  @page{margin:12mm}
  body{background:#fff}
  .sidebar,.topbar,.print-bar,#toasts{display:none!important}
  .main{margin:0} .view{padding:0;max-width:none}
  .paper{box-shadow:none;padding:0;max-width:none;border-radius:0}
}

/* ---------- boot & sign-in */
.boot,.auth{position:fixed;inset:0;display:grid;place-items:center;background:linear-gradient(135deg,var(--brand-ll),var(--brand-l) 45%,#f8fafc);z-index:300;padding:16px}
.boot-card{text-align:center;max-width:460px}
.boot-card h2{margin:10px 0 6px}
.logo-lg{width:56px;height:56px;border-radius:14px;background:linear-gradient(135deg,var(--brand),var(--brand-d));color:#fff;display:grid;place-items:center;font-weight:800;font-size:19px;margin:0 auto 12px;box-shadow:0 10px 30px rgba(91,78,230,.35)}
.auth-card{background:#fff;border-radius:16px;box-shadow:var(--sh-lg);padding:30px;width:100%;max-width:400px;display:flex;flex-direction:column;gap:12px}
.auth-card h1{font-size:20px;text-align:center}
.auth-card p{text-align:center;margin:0 0 4px}
.auth-err{background:var(--red-l);color:var(--red);border-radius:8px;padding:8px 12px;font-size:13px}
.save-state{font-size:12px;color:var(--muted);white-space:nowrap}
.save-state.busy{color:var(--amber)}
.save-state::before{content:"●";margin-right:5px;color:var(--green)}
.save-state.busy::before{color:#f59e0b}

/* ---------- form extras */
.multi{display:flex;flex-wrap:wrap;gap:6px 14px}
.multi label{display:flex;gap:6px;align-items:center;font-size:13px;font-weight:500;color:var(--ink2);cursor:pointer}
.files-box{display:flex;flex-direction:column;gap:6px}
.file-chip{display:flex;gap:6px;align-items:center;font-size:12.5px}
.fx-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:8px}
.fx-grid label{display:flex;align-items:center;gap:6px;font-size:12px;font-weight:600}
.fx-grid input{height:30px}
.brand-prev{width:180px;height:90px;border:1px dashed var(--line);border-radius:10px;display:grid;place-items:center;margin-bottom:8px;background:#fafbfc;overflow:hidden}
.brand-prev img{max-width:100%;max-height:100%;object-fit:contain}
.steps{padding-left:20px;line-height:1.7;color:var(--ink2)}
.implog{margin-top:14px;max-height:220px;overflow:auto;font-size:12.5px;background:#0f172a;color:#cbd5e1;border-radius:9px;padding:10px 12px;font-family:ui-monospace,Menlo,monospace}
.implog:empty{display:none}
.attach-doc{display:flex;gap:10px;align-items:center;border:1px solid var(--line);border-radius:10px;padding:10px 12px;margin-top:12px;background:var(--brand-ll)}
.click-row{cursor:pointer;padding:4px 0}
.ck{width:20px;height:20px;border-radius:6px;border:2px solid #cfd3dc;display:inline-grid;place-items:center;flex:none;cursor:pointer;color:#fff}
.ck .ic{width:13px;height:13px}
.ck.on{background:var(--green);border-color:var(--green)}

/* ---------- photos */
.pgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:12px}
.pcard{position:relative;border-radius:10px;overflow:hidden;background:#f1f2f5;cursor:pointer;border:2px solid transparent;aspect-ratio:4/3}
.pcard img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .2s}
.pcard:hover img{transform:scale(1.04)}
.pcap{position:absolute;inset:auto 0 0 0;padding:18px 9px 7px;background:linear-gradient(transparent,rgba(0,0,0,.7));color:#fff;font-size:12px;font-weight:600;line-height:1.25}
.pcap small{display:block;font-weight:400;opacity:.85}
.pgrid.sel .pcard.on{border-color:var(--brand)}
.ptick{position:absolute;top:7px;right:7px;width:22px;height:22px;border-radius:50%;background:rgba(255,255,255,.85);display:grid;place-items:center;color:transparent}
.pcard.on .ptick{background:var(--brand);color:#fff}
.ptick .ic{width:13px;height:13px}
.pstrip,.day-photos{display:flex;flex-wrap:wrap;gap:8px}
.pthumb{position:relative;width:92px;height:70px;border-radius:8px;overflow:hidden;background:#f1f2f5;flex:none}
.pthumb.sm{width:74px;height:54px}
.pthumb img{width:100%;height:100%;object-fit:cover}
.pdel{position:absolute;top:3px;right:3px;width:20px;height:20px;border-radius:50%;border:0;background:rgba(0,0,0,.6);color:#fff;cursor:pointer;font-size:13px;line-height:1;display:none}
.pthumb:hover .pdel{display:block}
.padd{border:1.5px dashed #cfd3dc;background:#fafbfc;display:flex!important;flex-direction:column;align-items:center;justify-content:center;gap:2px;font-size:11px;color:var(--muted);cursor:pointer;font-family:inherit}
.padd:hover{border-color:var(--brand);color:var(--brand)}
.mini-ph{width:46px;height:36px;border-radius:6px;overflow:hidden;background:#f1f2f5;display:grid;place-items:center;color:#c7cad3}
.mini-ph img{width:100%;height:100%;object-fit:cover}
.ph-big{margin-bottom:16px;border-radius:10px;overflow:hidden;background:#111;max-height:50vh;display:grid;place-items:center}
.ph-big img{max-width:100%;max-height:50vh;object-fit:contain}
.drop{position:relative}
.drop .drop-hint{display:none}
.drop.over{outline:3px dashed var(--brand);outline-offset:-6px}
.drop.over .drop-hint{display:grid;place-items:center;position:absolute;inset:0;background:rgba(238,236,253,.85);font-weight:700;color:var(--brand-d);font-size:18px;border-radius:var(--r)}

/* ---------- itinerary builder */
.day-route{display:flex;gap:6px;align-items:center;flex-wrap:wrap}
.day-route input{width:150px;height:32px}
.day-route input.via{width:150px}
.day-route select.mode{width:90px;height:32px}
.day-route .arrow{color:var(--muted);font-weight:700}
.day-title{font-weight:600}
.day-tools{display:flex;gap:2px}
.day-meta{display:flex;gap:14px;align-items:center;flex-wrap:wrap}
.dm{display:flex;gap:6px;align-items:center;color:var(--muted)}
.dm select{height:32px;min-width:220px;max-width:340px}
.chips{display:flex;flex-wrap:wrap;gap:6px;align-items:center}
.chip{display:inline-flex;align-items:center;gap:5px;background:var(--brand-ll);border:1px solid #dcd8fb;border-radius:20px;padding:3px 6px 3px 9px;font-size:12px;font-weight:600;color:var(--brand-d)}
.chip small{font-weight:500;color:var(--muted)}
.chip b{color:var(--red);font-size:11px}
.chip.warn{background:var(--red-l);border-color:#f8c9c9;color:#991b1b}
.chip button{border:0;background:none;color:var(--muted);cursor:pointer;font-size:15px;line-height:1;padding:0 2px}
.chip .ic{width:13px;height:13px}
.chip-add{width:auto;height:28px;font-size:12px;border-radius:20px;border-style:dashed;max-width:220px}
.cost-tbl tr.auto td{background:#fcfcff}
.cost-tbl .sub{font-size:11px;color:var(--muted)}

/* ---------- charts */
.chart-wrap{overflow-x:auto}
.svgc{width:100%;height:auto;display:block}
.svgc .grid{stroke:#eef0f4;stroke-width:1}
.svgc .zero{stroke:#cfd3dc;stroke-width:1}
.svgc .ax{font-size:11px;fill:#6b7280;font-family:inherit}
.svgc rect:hover{opacity:.8}
.donut{display:flex;gap:18px;align-items:center;flex-wrap:wrap;margin-bottom:12px}
.donut .dl{font-size:11px;fill:#6b7280}
.donut .dv{font-size:17px;font-weight:700;fill:#111827}
.dleg{flex:1;min-width:180px;display:flex;flex-direction:column;gap:5px;font-size:12.5px}
.dleg div{display:grid;grid-template-columns:12px 1fr auto auto;gap:8px;align-items:center}
.dleg i{width:10px;height:10px;border-radius:3px}
.dleg small{color:var(--muted);min-width:70px;text-align:right}
.pbar{display:inline-block;width:80px;height:6px;background:var(--gray-l);border-radius:4px;overflow:hidden;vertical-align:middle;margin-right:6px}
.pbar i{display:block;height:100%;background:var(--green)}
.pbar i.neg{background:var(--red)}
.acc-card{cursor:pointer}
.acc-card.on{border-color:var(--brand);box-shadow:0 0 0 3px var(--brand-l)}

@media print{ .tabs,.toolbar .pills,.page-head .actions{display:none!important} .card{box-shadow:none;break-inside:avoid} }
/* HTML charts */
.hchart{display:flex;flex-direction:column;padding:12px 0 0 46px}
.hplot{position:relative;flex:1}
.hline{position:absolute;left:0;right:0;border-top:1px solid #eef0f4}
.hline.zero{border-top-color:#cfd3dc}
.hline span{position:absolute;left:-46px;width:40px;text-align:right;top:-8px;font-size:11px;color:var(--muted)}
.hcols{position:absolute;inset:0;display:flex}
.hcol{flex:1;display:flex;justify-content:center;gap:3px;padding:0 4px}
.hbw{position:relative;flex:0 1 22px;height:100%}
.hbar{position:absolute;left:0;right:0;border-radius:3px}
.hbar:hover{filter:brightness(1.1)}
.hlabels{display:flex;height:22px;align-items:flex-end}
.hlabels div{flex:1;text-align:center;font-size:11px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;padding:0 2px}
.hsvg{position:absolute;inset:0;width:100%;height:100%;overflow:visible}
.hdot{position:absolute;width:9px;height:9px;border-radius:50%;background:#fff;border:2px solid;transform:translate(-50%,-50%)}
.hdot b{position:absolute;bottom:10px;left:50%;transform:translateX(-50%);font-size:10.5px;color:var(--ink2);white-space:nowrap}

/* ===================== v2.1 additions ===================== */
/* itinerary day table + popup */
.daytbl td{vertical-align:top}
.daytbl tr.click:hover td{background:var(--brand-ll)}
.ml{color:#c7cad3;font-weight:700}.ml.on{color:var(--green)}
.day-pop .day{border:0;padding:0;grid-template-columns:76px 1fr}
.day-pop textarea{min-height:200px;font-size:14px;line-height:1.6}
.mealbox{display:inline-flex;align-items:center;gap:4px;border:1px solid var(--line);border-radius:8px;padding:2px 6px;background:#fff}
.mealt{height:26px;width:auto;font-size:12px;padding:0 4px}
.meals{display:flex;flex-wrap:wrap;gap:6px}.mealbox select.mealt,.mealbox select.mealx{height:26px;width:auto!important;min-width:0;max-width:128px;font-size:12px;padding:0 18px 0 4px}.mealbox input.mealamt{height:26px;width:86px!important;font-size:12px;padding:0 6px}
.meal-sum{flex-basis:100%;margin-top:4px}
/* mistake checker */
.health{margin-bottom:10px}
.hl-head{display:flex;gap:7px;align-items:center;font-weight:700;font-size:13px;padding:2px 0 6px}
.hl-head.ok{color:var(--green)}.hl-head.bad{color:var(--red)}
.hl{display:block;font-size:12.5px;padding:6px 9px;border-radius:7px;margin-top:4px;border-left:3px solid;color:var(--ink2);text-decoration:none}
.hl.high{background:var(--red-l);border-color:var(--red)}.hl.medium{background:var(--amber-l);border-color:#f59e0b}.hl.low{background:var(--gray-l);border-color:#c7cad3}
a.hl:hover{filter:brightness(.97)}
.health-card{padding:12px 16px;margin-bottom:14px}
/* AI */
.ai-btn{background:linear-gradient(135deg,var(--brand-ll),var(--brand-l));border-color:var(--brand-l);color:var(--brand-d)}
.ai-btn:hover{background:linear-gradient(135deg,#ede9fe,#e0e7ff)}
.ai-busy{position:fixed;left:50%;bottom:26px;transform:translateX(-50%);background:var(--ink);color:#fff;padding:10px 18px;border-radius:30px;display:flex;gap:10px;align-items:center;z-index:300;box-shadow:var(--sh-lg);font-size:13px}
.spin{width:16px;height:16px;border:2px solid rgba(255,255,255,.3);border-top-color:#fff;border-radius:50%;animation:sp .8s linear infinite}
@keyframes sp{to{transform:rotate(360deg)}}
/* quoted vs actual */
.vpill{display:inline-block;padding:1px 8px;border-radius:12px;font-size:11.5px;font-weight:700}
.vpill.green{background:var(--green-l);color:var(--green)}.vpill.amber{background:var(--amber-l);color:var(--amber)}.vpill.red{background:var(--red-l);color:var(--red)}
tr.var-red td{background:#fff7f7}tr.var-amber td{background:#fffbf2}
/* mobile quick expense */
.mx{max-width:520px;margin:0 auto}
.mx h1{font-size:21px}
.mx-tour{display:flex;flex-direction:column;align-items:flex-start;gap:2px;width:100%;text-align:left;border:1px solid var(--line);background:#fff;border-radius:12px;padding:14px 16px;margin-top:10px;font:inherit;cursor:pointer;box-shadow:var(--sh)}
.mx-tour b{font-size:15px}.mx-tour span{font-size:12.5px;color:var(--muted)}
.mx-lbl{font-size:12px;font-weight:700;color:var(--muted);text-transform:uppercase;letter-spacing:.05em;margin:16px 0 7px}
.mx-heads{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}
.mx-heads button{border:1px solid var(--line);background:#fff;border-radius:10px;padding:12px 6px;font:inherit;font-weight:600;font-size:13px;cursor:pointer}
.mx-heads button.on{background:var(--brand);border-color:var(--brand);color:#fff}
.mx-amt{font-size:26px;font-weight:700;height:54px}
.mx-photo{display:flex;gap:10px;align-items:center;justify-content:center;border:2px dashed #cfd3dc;border-radius:12px;padding:16px;color:var(--muted);cursor:pointer;font-weight:600}
.mx-save{width:100%;justify-content:center;height:50px;font-size:16px;margin-top:18px;border-radius:12px}
/* bottom navigation (phones) */
.bottom-nav{display:none}
@media (max-width:820px){
  .bottom-nav{display:flex;position:fixed;left:0;right:0;bottom:0;height:62px;background:rgba(255,255,255,.97);backdrop-filter:blur(8px);border-top:1px solid var(--line);z-index:40;padding-bottom:env(safe-area-inset-bottom)}
  .bottom-nav a{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;color:var(--muted);font-size:10.5px;font-weight:600}
  .bottom-nav a.on{color:var(--brand)}
  .bottom-nav a.fab{position:relative;top:-14px}
  .bottom-nav a.fab .ic{width:46px;height:46px;padding:11px;border-radius:50%;background:var(--brand);color:#fff;box-shadow:0 8px 20px rgba(91,78,230,.4)}
  .view{padding-bottom:90px}
  .save-state{display:none}
  .search input{font-size:16px}
  input,select,textarea{font-size:16px}
  .btn{height:38px}.btn.sm{height:32px}
  .split .sticky{position:static}
  .day .num{padding:6px 2px}
  .day{grid-template-columns:52px 1fr;padding:10px;gap:8px}
  .day-route input{width:44%}
  .day-route input.via{width:100%}
  .mx-heads{grid-template-columns:repeat(2,1fr)}
  .page-head .actions{width:100%}
  .modal-bg{padding:0}
  .modal{border-radius:0;min-height:100vh;max-width:none!important}
  .modal-b{max-height:none}
  .tabs{-webkit-overflow-scrolling:touch}
  #toasts{bottom:80px}
}
@media (min-width:821px) and (max-width:1180px){ .sidebar{width:210px} .main{margin-left:210px} }
/* smart layer */
.daycost{border:1px solid var(--line);border-radius:10px;background:#fcfcfe;padding:0 12px}
.daycost summary{display:flex;gap:8px;align-items:center;padding:9px 0;cursor:pointer;list-style:none}
.daycost summary::-webkit-details-marker{display:none}
.dc-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:8px 10px;margin-bottom:8px}
.dc-grid label{display:flex;flex-direction:column;gap:3px;font-size:12px;font-weight:600;color:var(--ink2)}
.dc-grid .sub{font-weight:400;color:var(--muted);font-size:11px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.dc-grid input{height:32px}
.dc-auto{display:flex;flex-wrap:wrap;gap:6px 14px;font-size:12px;color:var(--ink2);margin-bottom:8px}
.dc-ex{display:flex;flex-direction:column;gap:6px;margin-bottom:6px}
.dc-ex input,.dc-ex select{height:32px}
.daycost .hint{padding-bottom:10px}
.smart{border:1px dashed #cfc8fb;background:linear-gradient(135deg,#faf9ff,#f5f7ff);border-radius:10px;padding:10px 12px}
.smart-h{font-weight:700;color:var(--brand-d);margin-bottom:8px;font-size:13px;display:flex;align-items:center;gap:6px}
.smart-h .sp{flex:1}.sf-x{border:0;background:transparent;color:var(--muted);font-size:15px;line-height:1;width:26px;height:26px;border-radius:6px;cursor:pointer}.sf-x:hover{background:#ece9ff;color:var(--brand-d)}
.via-sug{display:flex;flex-wrap:wrap;align-items:center;gap:6px;padding:6px 10px;border:1px dashed #b7c3ea;border-radius:9px;background:#f6f8ff}
.sf-card{display:flex;gap:10px;align-items:center;background:#fff;border:1px solid var(--line);border-radius:9px;padding:8px 10px;margin-top:6px}
.sf-card .grow{flex:1;min-width:0}
.lib-list{display:grid;grid-template-columns:1fr 1fr;gap:6px 14px;max-height:50vh;overflow:auto}
.lib-item{display:flex;gap:8px;align-items:flex-start;font-size:13px;padding:5px 6px;border-radius:7px;cursor:pointer}
.lib-item:hover{background:var(--brand-ll)}
.themes{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.theme{display:flex;gap:10px;align-items:center;border:1px solid var(--line);background:#fff;border-radius:10px;padding:10px;font:inherit;font-weight:600;cursor:pointer}
.theme i{width:26px;height:26px;border-radius:8px}
.theme.on{border-color:var(--brand);box-shadow:0 0 0 3px var(--brand-l)}
@media (max-width:820px){ .lib-list{grid-template-columns:1fr} }
/* guide availability board */
.gboard{border-collapse:collapse;font-size:11px}
.gboard th{font-weight:600;color:var(--muted);padding:4px 0;min-width:22px;text-align:center;border-bottom:1px solid var(--line)}
.gboard th.we{color:var(--red)}
.gboard td{height:30px;border:1px solid var(--line2);min-width:22px}
.gboard td.gn{min-width:150px;padding:4px 10px;font-weight:600;font-size:12.5px;position:sticky;left:0;background:#fff}
.gboard td.gb{cursor:pointer}.gboard td.on{background:var(--green)}.gboard td.req{background:#f59e0b}.gboard td.clash{background:var(--red)}
/* documents on phones: keep the letterhead readable (printing is unaffected) */
@media screen and (max-width:820px){
  .paper .d2 .bh{grid-template-columns:84px 1fr}
  .paper .d2 .bh .lg img{width:84px}
  .paper .d2 .bh .ch{display:none}
  .paper .d2 .bh .nm{font-size:19px}
  .paper .d2 .badges img{max-height:36px;max-width:80px}
  .paper{padding:14px}
  .paper .d2{font-size:11.5px}
  .paper .d2 table{display:block;overflow-x:auto}
}
.dc-acts{border-top:1px dashed var(--line);padding:8px 0;display:flex;flex-direction:column;gap:6px}
.dc-sub{font-size:12.5px;font-weight:700;color:var(--ink2)}
.dc-act input,.dc-act select{height:32px}
.dc-act .grow{flex:1;min-width:0}

/* ---------- customer page (client 360) */
.c360-kpis{display:grid;grid-template-columns:repeat(6,1fr);gap:8px;margin:0 0 14px}
.c360-kpis>div{background:var(--card,#fff);border:1px solid var(--line);border-radius:12px;padding:10px 12px;font-size:11.5px;color:var(--muted);text-transform:uppercase;letter-spacing:.03em}
.c360-kpis span{display:block;font-size:17px;font-weight:700;color:var(--ink,#111827);text-transform:none;letter-spacing:0;margin-bottom:2px}
.c360-kpis .due span{color:var(--red)}
.c360{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:14px;align-items:start}
.c360-side{display:flex;flex-direction:column;gap:14px}
.tgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:12px;padding:12px}
.tcard{border:1px solid var(--line);border-radius:12px;overflow:hidden;cursor:pointer;background:#fff;transition:box-shadow .15s,transform .15s;display:flex;flex-direction:column}
.tcard:hover{box-shadow:0 6px 18px rgba(17,24,39,.10);transform:translateY(-1px)}
.tc-h{padding:10px 12px;color:#fff;background:linear-gradient(135deg,#4f46e5,#6366f1)}
.k-enq .tc-h{background:linear-gradient(135deg,#0e7490,#0891b2)}
.k-tour .tc-h{background:linear-gradient(135deg,#047857,#059669)}
.tc-kind{font-size:10.5px;text-transform:uppercase;letter-spacing:.06em;opacity:.85}
.tc-name{font-weight:700;font-size:14.5px;line-height:1.25;margin-top:2px}
.tc-sec{font-size:11.5px;opacity:.9;margin-top:3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.tc-b{padding:9px 12px;display:flex;flex-direction:column;gap:8px;flex:1}
.tc-chips{display:flex;flex-wrap:wrap;gap:4px}
.tc-chips span{font-size:11px;background:var(--bg2,#f3f4f6);border-radius:6px;padding:2px 6px;white-space:nowrap}
.tc-chips span.bad{background:var(--red-l);color:var(--red)}
.tc-f{display:flex;align-items:center;gap:4px;margin-top:auto;font-size:13px}
.acc3{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-bottom:10px}
.acc3 .l{font-size:11px;color:var(--muted);text-transform:uppercase;letter-spacing:.03em}
.acc3 b{font-size:14.5px}
.mini-row{display:flex;align-items:center;gap:8px;padding:7px 14px;border-top:1px solid var(--line2,#f1f1f4);font-size:13px}
.card-b .mini-row{padding:6px 0}
.mini-row .grow{flex:1;min-width:0}
.note-new{display:flex;flex-direction:column;gap:6px;margin-bottom:10px}
.note-new textarea{width:100%}
.note{border-left:3px solid var(--brand,#4f46e5);padding:4px 0 4px 10px;margin:8px 0;font-size:13px}
.tl{padding:6px 0}
.tl-i{display:flex;gap:10px;align-items:flex-start;padding:10px 14px;border-top:1px solid var(--line2,#f1f1f4)}
.tl-i.click:hover{background:var(--bg2,#f9fafb)}
.tl-ic{width:30px;height:30px;border-radius:50%;background:var(--bg2,#f3f4f6);display:grid;place-items:center;flex:none}
.tl-i .t{font-weight:600}
.dlist>div{padding:6px 0;border-top:1px solid var(--line2,#f1f1f4);font-size:13px}
.nowrap{white-space:nowrap}
@media (max-width:1000px){.c360{grid-template-columns:1fr}.c360-kpis{grid-template-columns:repeat(3,1fr)}}
@media (max-width:520px){.tgrid{grid-template-columns:1fr;padding:10px}.c360-kpis span{font-size:15px}}

.incl-opts{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:8px}
.incl-opts label{display:flex;flex-direction:column;gap:3px;font-size:12px;color:var(--muted)}

/* ---------- accounts upgrade */
tr.avoid td{background:#fff1f1}
.rm-stage{border:1px solid var(--line);border-radius:10px;padding:10px}
.rm-stage textarea{width:100%}
/* ---------- IndiChat */
.chat{display:grid;grid-template-columns:300px minmax(0,1fr);height:calc(100vh - 120px);min-height:460px;border:1px solid var(--line);border-radius:14px;overflow:hidden;background:#fff}
.ch-side{border-right:1px solid var(--line);display:flex;flex-direction:column;min-height:0;background:#fafbfc}
.ch-sh{display:flex;align-items:center;padding:12px 12px 8px;gap:6px}
.ch-find{margin:0 12px 8px;width:calc(100% - 24px)}
#chRooms{overflow:auto;flex:1}
.ch-room{display:flex;gap:8px;align-items:center;padding:10px 12px;border-top:1px solid var(--line2,#f1f1f4);color:inherit;text-decoration:none}
.ch-room:hover{background:#f3f4f8}.ch-room.on{background:#ecebfd}
.ch-room .t{font-weight:600;font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ch-room .sub{font-size:11.5px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:220px}
.ch-room .cnt,.ch-room .cnt{background:var(--brand,#5b4ee6);color:#fff;border-radius:10px;font-size:11px;padding:1px 7px}
.ch-main{display:flex;flex-direction:column;min-height:0}
.ch-head{display:flex;align-items:center;gap:8px;padding:10px 14px;border-bottom:1px solid var(--line)}
.ch-back{display:none}
.ch-list{flex:1;overflow:auto;padding:14px;display:flex;flex-direction:column;gap:2px;background:#f7f7fb}
.ch-day{align-self:center;font-size:11px;color:var(--muted);background:#ececf3;border-radius:10px;padding:2px 10px;margin:10px 0 6px}
.ch-m{max-width:75%;align-self:flex-start;margin-top:8px}.ch-m.cont{margin-top:2px}
.ch-m.me{align-self:flex-end}
.ch-who{font-size:11.5px;color:var(--muted);margin:0 4px 2px;font-weight:600}
.ch-m.me .ch-who{text-align:right}
.ch-b{background:#fff;border:1px solid var(--line);border-radius:12px;padding:7px 10px;font-size:13.5px;line-height:1.45;word-wrap:break-word}
.ch-m.me .ch-b{background:#ecebfd;border-color:#d9d6fb}
.ch-m.ment .ch-b{border-color:#f59e0b;box-shadow:0 0 0 2px #fde68a}
.ch-t{font-size:10.5px;color:var(--muted);text-align:right;margin-top:2px}
.ch-img{max-width:240px;max-height:220px;border-radius:8px;display:block;margin-top:4px}
.ch-rem{margin-top:4px;font-size:12px;background:#fff7e6;border-radius:6px;padding:3px 6px}
.mention{color:var(--brand,#5b4ee6)}
.ch-comp{border-top:1px solid var(--line);padding:10px;position:relative}
.ch-comp textarea{flex:1;resize:none;min-height:38px;max-height:160px}
.ch-at{position:absolute;bottom:58px;left:100px;background:#fff;border:1px solid var(--line);border-radius:10px;box-shadow:0 8px 20px rgba(0,0,0,.08);display:flex;flex-direction:column;z-index:5}
.ch-at button{border:0;background:none;padding:7px 12px;text-align:left;cursor:pointer}.ch-at button:hover{background:#f3f4f8}
.ch-hit{display:block;background:#fff;border:1px solid var(--line);border-radius:10px;padding:8px 10px;margin-bottom:8px;color:inherit;text-decoration:none}
@media (max-width:760px){.chat{grid-template-columns:1fr;height:calc(100vh - 150px)}.chat-in-room .ch-side{display:none}body:not(.chat-in-room) .ch-main{display:none}.ch-back{display:inline-flex}.ch-m{max-width:88%}}

.ch-wa{background:#e9f9ee;border-bottom:1px solid #c9eed5;padding:7px 14px;font-size:12.5px}
.wa-bad{color:var(--red);font-weight:600}

/* ---------- phone fixes (QA) */
@media (max-width:1180px){ .split{grid-template-columns:minmax(0,1fr)} }
@media (max-width:600px){ .g6{grid-template-columns:repeat(2,minmax(0,1fr))} .kpi{min-width:0} .kpi .v{font-size:19px;word-break:break-word} }
@media (max-width:760px){ #view .grid[style*="grid-template-columns"]{grid-template-columns:minmax(0,1fr)!important} .donut{flex-wrap:wrap} .dleg{min-width:0;max-width:100%} }
.ch-main{min-width:0}.ch-head{flex-wrap:wrap;min-width:0}.ch-head b{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:60vw}
@media (max-width:760px){ .donut{flex-direction:column;align-items:stretch} .dleg{width:100%} .card-h{flex-wrap:wrap;row-gap:6px} .card-h .badge{white-space:normal} .g2{grid-template-columns:minmax(0,1fr)} .grid>*{min-width:0} }
@media (max-width:760px){ .paper{overflow-x:auto;max-width:100%} .print-bar{flex-wrap:wrap} }
/* phone: text boxes full width, small numbers and dates two per row; the top bar fits the screen */
@media (max-width:600px){ .search{min-width:0} .topbar{gap:8px;padding:0 10px} .top-actions{gap:6px} #quickAdd{display:none} .save-state .ss-x{display:none} }

/* ---------- Accounts portal */
.accgate{display:grid;place-items:center;min-height:70vh;padding:20px}
.accgate-card{width:100%;max-width:420px;background:linear-gradient(160deg,#0f3d2e,#14532d);color:#ecfdf5;border-radius:18px;padding:28px 26px;box-shadow:0 20px 50px rgba(0,0,0,.18)}
.accgate-card h1{margin:4px 0 6px;font-size:24px;color:#fff}.accgate-card .muted,.accgate-card .hint,.accgate-card a{color:#a7f3d0}
.accgate-card label{color:#d1fae5}.accgate-card input{background:#fff;color:#111}.accgate-card .banner{background:rgba(255,255,255,.1);color:#ecfdf5}
.accgate-ic{font-size:38px}.accgate-card .btn.big{height:44px;justify-content:center;width:100%}
.curgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:12px;padding:12px}
.curbox{border:1px solid var(--line);border-radius:12px;padding:10px 12px}.curbox .cur{font-size:11px;color:var(--muted);letter-spacing:.06em;font-weight:700}
.curbox .amt{font-size:20px;font-weight:800;margin:2px 0 6px}.curbox .mini-row{padding:5px 0;color:inherit;text-decoration:none}
a.mini-row{color:inherit;text-decoration:none}a.mini-row:hover{background:#f7f7fb}
.adot{width:9px;height:9px;border-radius:50%;flex:none;background:#9ca3af}.adot.high{background:#ef4444}.adot.med{background:#f59e0b}.adot.low{background:#60a5fa}
.ai-an{border:1px solid #ddd6fe;background:#faf8ff;border-radius:12px;padding:12px 14px}.ai-h{font-weight:800;font-size:15px;color:#4c1d95;margin-bottom:4px}
.ai-an ul{padding-left:18px;margin:6px 0;font-size:13px}.ai-an li{margin:4px 0}
.report-prev{overflow-x:auto}
@media (max-width:760px){.acc-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}}

.ch-ref{display:inline-flex;align-items:center;gap:4px;background:#eef2ff;border:1px solid #c7d2fe;border-radius:8px;padding:1px 7px;margin:1px 2px;font-size:12.5px;text-decoration:none;color:#3730a3}
.ch-ref.sm{padding:1px 5px}.ch-m.bot .ch-b{background:#f0fdf4;border-color:#bbf7d0}.ch-wa.kk{background:#fef9c3;border-color:#fde68a}

/* ---------- live chat window (bottom of every page) */
#cwFab{position:fixed;right:22px;bottom:22px;z-index:60;width:56px;height:56px;border-radius:50%;border:0;background:var(--brand,#5b4ee6);color:#fff;box-shadow:0 10px 26px rgba(91,78,230,.35);cursor:pointer;display:grid;place-items:center}
#cwFab .ic{width:26px;height:26px}#cwFab.hide{display:none}
#cwCnt{position:absolute;top:-4px;right:-4px;background:#ef4444;color:#fff;border-radius:10px;font-size:11px;font-weight:700;padding:2px 6px;border:2px solid #fff}
#cw{position:fixed;right:22px;bottom:90px;z-index:61;width:380px;height:min(600px,calc(100vh - 120px));background:#fff;border:1px solid var(--line);border-radius:16px;box-shadow:0 18px 50px rgba(17,24,39,.22);display:flex;flex-direction:column;overflow:hidden}
#cw.hide{display:none}
.cw-h{display:flex;align-items:center;gap:6px;padding:10px 12px;background:var(--brand,#5b4ee6);color:#fff}.cw-h b{font-size:14px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.cw-ic,.cw-back{background:rgba(255,255,255,.18);border:0;color:#fff;border-radius:8px;width:28px;height:28px;display:grid;place-items:center;cursor:pointer;text-decoration:none;font-size:14px}.cw-back.hide{display:none}
#cwBody{flex:1;display:flex;flex-direction:column;min-height:0}
.cw-f{display:flex;gap:4px;overflow-x:auto;padding:8px 10px;border-bottom:1px solid var(--line);flex:none}
.cw-f button{border:1px solid var(--line);background:#fff;border-radius:14px;padding:3px 9px;font-size:12px;white-space:nowrap;cursor:pointer}.cw-f button.on{background:#111827;color:#fff;border-color:#111827}
.cw-list{flex:1;overflow:auto}
.cw-item{display:flex;gap:10px;align-items:center;width:100%;text-align:left;border:0;border-bottom:1px solid var(--line2,#f1f1f4);background:#fff;padding:9px 12px;cursor:pointer}
.cw-item:hover{background:#f7f7fb}.cw-item .t{display:block;font-weight:600;font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:230px}
.cw-item .sub{display:block;font-size:11.5px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:230px}
.cw-item .cnt{background:var(--brand,#5b4ee6);color:#fff;border-radius:10px;font-size:11px;padding:1px 7px}
.cw-av{width:34px;height:34px;border-radius:50%;background:#f3f4f8;display:grid;place-items:center;font-size:16px;flex:none}
.cw-foot{display:flex;gap:6px;padding:8px 10px;border-top:1px solid var(--line);flex:none}
.cw-msgs{flex:1;overflow:auto;padding:10px;background:#f7f7fb;display:flex;flex-direction:column;gap:2px}.cw-msgs .ch-m{max-width:85%}
.cw-comp{border-top:1px solid var(--line);padding:8px;display:flex;flex-direction:column;gap:6px;flex:none}.cw-comp textarea{flex:1;resize:none;min-height:36px}
@media (max-width:820px){#cwFab{bottom:76px;right:14px;width:50px;height:50px}#cw{right:0;left:0;bottom:0;top:0;width:auto;height:auto;border-radius:0;z-index:70}.cw-item .t,.cw-item .sub{max-width:none}}
@media print{#cwFab,#cw{display:none!important}}

#cwFab{width:auto;height:52px;border-radius:26px;padding:0 16px 0 8px;display:flex;align-items:center;gap:8px;font-weight:800;font-size:14px;letter-spacing:.02em}
#cwFab img{width:38px;height:38px;filter:drop-shadow(0 1px 1px rgba(0,0,0,.15));background:#fff;border-radius:50%;padding:3px}
.cw-logo{width:26px;height:26px;background:#fff;border-radius:50%;padding:2px}
@media (max-width:820px){#cwFab{height:48px;padding:0 6px}#cwFab .cw-lbl{display:none}#cwFab img{width:36px;height:36px}}
.cw-item .grow{flex:1;min-width:0;display:block}

.ch-wa.gc{background:#eff6ff;border-color:#bfdbfe}
.gc-row{display:grid;grid-template-columns:1fr 2fr auto auto;gap:6px;align-items:center;margin-top:6px}
@media (max-width:760px){.gc-row{grid-template-columns:1fr}}

/* colour theme picker (Company Settings) */
.th-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:12px}
.th-card{border:2px solid var(--line);border-radius:12px;padding:8px;cursor:pointer;background:#fff;text-align:left;font:inherit;color:var(--ink)}
.th-card:hover{border-color:var(--brand-l)}
.th-card.on{border-color:var(--brand);box-shadow:0 0 0 3px var(--brand-l)}
.th-pv{display:flex;flex-direction:column;gap:6px;border-radius:8px;padding:10px;border:1px solid rgba(0,0,0,.06);margin-bottom:6px}
.th-pv i{display:block;height:8px;border-radius:4px}
.th-pv span{display:inline-block;color:#fff;font-size:11px;font-weight:600;border-radius:6px;padding:4px 8px;width:max-content}
.th-card b{display:block;font-size:13px}.th-card small{color:var(--muted);font-size:11.5px}

/* ---------- tour sheet */
.ts-strip{display:flex;flex-wrap:wrap;gap:8px 16px;align-items:center;font-size:12.5px;color:var(--muted);margin:-6px 0 12px}
.ts-day{background:#fff;border:1px solid var(--line);border-left:4px solid #f59e0b;border-radius:12px;padding:10px 12px;margin-bottom:10px}
.ts-day.ok{border-left-color:#10b981}
.ts-dh{display:flex;gap:10px;align-items:center;margin-bottom:6px}.ts-dh span{color:var(--muted);font-size:12.5px}
.ts-ck{font-size:12.5px;font-weight:600;display:flex;gap:5px;align-items:center}
.ts-warn{background:#fef2f2;color:#991b1b;border-radius:8px;padding:5px 8px;font-size:12.5px;margin-bottom:6px;font-weight:600}
.ts-grid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:8px 10px}
.ts-grid label{display:block;font-size:11px;color:var(--muted);font-weight:600;margin-bottom:2px}
.ts-grid input,.ts-grid select{width:100%;height:32px;font-size:13px}.ts-grid select+input,.ts-grid select+select{margin-top:4px}
.ts-grid .f2{grid-column:span 2}.ts-grid .f3{grid-column:span 3}
.banner.warn{background:#fffbeb;border-color:#fde68a}
.vpaper{max-width:none!important;padding:16px!important;background:#f3f4f6!important;box-shadow:none!important}
@media (max-width:900px){.ts-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.ts-grid .f3{grid-column:span 2}}

.vs-chip{border:1px solid var(--line);border-radius:14px;padding:2px 8px;background:#fff}

/* ---------- SEO assistant */
.seo-k{display:inline-flex;align-items:center;gap:5px;border:1px solid var(--line);border-radius:14px;padding:2px 9px;margin:3px;font-size:12.5px;background:#fff}
.seo-k i{font-style:normal;font-size:10.5px;background:#eef0fa;color:#3d4db7;border-radius:8px;padding:0 6px}.seo-k small{color:var(--muted)}
.seo-ul{margin:4px 0;padding-left:18px}.seo-ul li{margin:3px 0}.seo-row{margin:8px 0}.seo-row .btn{float:right}
.seo-gp{border:1px solid var(--line);border-radius:10px;padding:10px 12px}.seo-gp .t{color:#1a0dab;font-size:16px}.seo-gp .u{color:#006621;font-size:12.5px}.seo-gp .d{color:#4d5156;font-size:13px}
.seng-card h2{margin:0 0 4px;font-size:15px}.seng-note{color:var(--muted);font-size:12.5px;margin:0 0 8px}.seng-row input{width:100%;max-width:520px}
.seng-links{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px}.seng{border:1px solid #c7cdee;border-radius:16px;padding:4px 12px;font-size:12.5px;text-decoration:none;color:#3d4db7;background:#fff}.seng.trend{border-color:#bbf7d0;color:#15803d}
/* hotel row in a day: hotel / typed name, ＋ Hotel, meal plan, No hotel needed — wraps on small screens */
.day-meta .dm{display:flex;flex-wrap:wrap;align-items:center;gap:6px}
.day-meta .dm select[data-f$=".hotelId"]{flex:1 1 200px;min-width:160px;width:auto}
.day-meta .dm select[data-f$=".mealPlan"]{width:74px!important;min-width:74px!important;flex:0 0 74px}
.day-meta .dm select[data-f$=".noHotelWhy"]{min-width:180px}
.day-meta .dm .hotel-typed{flex:1 1 220px}
.day-meta .dm label.small{display:inline-flex;align-items:center;gap:4px}

/* search box in long dropdowns (selsearch.js) */
.ss-pop{position:fixed;z-index:150;background:#fff;border:1px solid var(--line);border-radius:10px;box-shadow:var(--sh-lg);display:flex;flex-direction:column;overflow:hidden;min-height:120px}
.ss-q{position:relative;border-bottom:1px solid var(--line);flex:none}.ss-q .ic{position:absolute;left:12px;top:12px;color:var(--muted)}
.ss-q input{width:100%;border:0;height:42px;padding:0 12px 0 38px;font:inherit;font-size:14px;outline:none;background:#fff}
.ss-n{flex:none;font-size:11.5px;font-weight:600;color:var(--muted);background:#f9fafb;padding:0 14px}.ss-n:not(:empty){padding:6px 14px;border-bottom:1px solid var(--line2)}
.ss-list{flex:1;min-height:0;overflow-y:auto;overscroll-behavior:contain}
.ss-o{padding:9px 14px;cursor:pointer;border-bottom:1px solid var(--line2);font-size:14px;line-height:1.35}
.ss-o.on{background:var(--brand-ll)}.ss-o.cur{font-weight:600}.ss-o.dis{color:var(--muted);cursor:default}.ss-o:hover:not(.dis){background:var(--brand-ll)}
.ss-g{padding:6px 14px 4px;font-size:11px;font-weight:700;color:var(--muted);text-transform:uppercase;letter-spacing:.04em;background:#fafafa}
.ss-hl{background:#fef3c7;font-weight:700;color:inherit}
.ss-none{padding:14px;color:var(--muted);font-size:13px}
.ss-foot{flex:none;display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;padding:9px 14px;border-top:1px solid var(--line);font-size:13px;color:var(--muted)}
.ss-foot .ss-add{background:var(--brand-l);border-color:#c7c2f8;color:var(--brand-d);font-weight:600}
/* rich customer line */
.cp-row{display:flex;align-items:center;gap:12px}.cp-av{width:34px;height:34px;border-radius:17px;display:grid;place-items:center;font-weight:700;font-size:12.5px;flex:none;background:var(--brand-l);color:var(--brand-d)}
.cp-av.org{border-radius:8px;background:var(--amber-l);color:#92400e}.cp-m{flex:1;min-width:0}.cp-m .s{font-size:12.5px;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cp-m .n{font-weight:600}.cp-m .n i{font-style:normal;font-weight:400;color:var(--muted)}
.cp-chip{display:inline-flex;align-items:center;height:22px;padding:0 8px;border-radius:11px;font-size:11.5px;font-weight:600;white-space:nowrap;flex:none}
.cp-c0{background:var(--brand-l);color:var(--brand-d)}.cp-c1{background:var(--teal-l);color:#0f766e}.cp-c2{background:var(--amber-l);color:#92400e}.cp-c3{background:var(--blue-l);color:#1d4ed8}.cp-c4{background:var(--gray-l);color:var(--ink2)}
/* customer details in the enquiry */
.cinfo{border:1px solid #c7c2f8;background:var(--brand-ll);border-radius:10px;padding:12px 14px;display:grid;gap:10px}
.cinfo-h{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;font-weight:600;color:#312e81}.cinfo-h span{display:inline-flex;align-items:center;gap:6px}
.cinfo-g{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:8px}.cinfo-g div{background:#fff;border:1px solid var(--line);border-radius:8px;padding:7px 10px;min-width:0}
.cinfo-g small{display:block;font-size:11.5px;color:var(--muted)}.cinfo-g b{font-weight:600;overflow-wrap:anywhere}
.fsteps{display:flex;align-items:center;gap:6px;flex-wrap:wrap;font-size:12.5px;color:var(--muted)}.fsteps span{display:inline-flex;align-items:center;height:28px;padding:0 11px;border-radius:14px;background:#fff;border:1px solid var(--line);color:var(--ink2);font-weight:600}
.fsteps span.on{background:var(--brand);border-color:var(--brand);color:#fff}.fsteps span.done{background:var(--green-l);border-color:var(--green-l);color:#065f46}
/* "+" beside a combo, and segmented choice */
.combo-add{margin-top:8px;border:1px solid #c7c2f8;background:var(--brand-ll);border-radius:10px;padding:10px;display:grid;gap:6px}.combo-add input{flex:1;min-width:0}.combo-add label{margin:0}
.seg{display:flex;gap:8px;flex-wrap:wrap}.seg label{display:inline-flex;margin:0;cursor:pointer}.seg input{position:absolute;opacity:0;pointer-events:none}
.seg span{display:inline-flex;align-items:center;height:36px;padding:0 16px;border-radius:18px;border:1px solid #d1d5db;background:#fff;color:var(--ink2);font-weight:600;font-size:13.5px}
.seg input:checked+span{border-color:var(--brand);background:var(--brand-l);color:var(--brand-d)}.seg input:focus-visible+span{outline:2px solid var(--brand);outline-offset:2px}

/* ---- 28 Oct: rate chart by pax slab, costing day by day, confirm with final rooms ---- */
.rc2-top{display:flex;gap:14px;flex-wrap:wrap;align-items:flex-start;justify-content:space-between;padding:12px 14px;border-bottom:1px solid var(--line2);background:var(--brand-ll)}
.rc2-info{font-size:13px;line-height:1.5;min-width:220px;flex:1}
.rc2-try label{display:block;font-size:11px;font-weight:600;color:var(--muted);text-transform:uppercase;letter-spacing:.03em;margin-bottom:4px}
.rc2-try input{width:78px}
.rc2-tryout{min-width:180px;font-size:13px}
.rc2-warn{margin:10px 14px 0;padding:8px 12px;border-radius:8px;background:var(--amber-l);color:var(--amber);font-size:12.5px}
.rc2 td{vertical-align:top}
.rc2 tr.hit td{background:var(--brand-ll)}
.rc2 tr.hit td:first-child{box-shadow:inset 3px 0 0 var(--brand)}
.rc2-pax{display:flex;align-items:center;gap:4px}
.rc2-pax input{width:56px}
.rc2-pax span{color:var(--muted);font-weight:600}
.rc2-foc{margin-top:4px;font-size:11.5px;color:var(--muted)}
.rc2-foc select{height:26px;font-size:12px;margin-top:2px;width:100%}
.rc2 .badge.brand{margin-top:5px}
.rc2-veh{display:flex;gap:4px}
.rc2-veh select{flex:1;min-width:0}
.rc2-veh input{width:48px}
.rc2-vc{display:flex;gap:6px;align-items:center;margin-top:4px}
.rc2-vc input{width:120px;height:26px;font-size:12px}
.rc2-brk{display:flex;flex-direction:column;gap:1px;margin-top:3px;font-size:11px;color:var(--muted)}
.rc2-price{position:relative;padding:4px 8px;border-radius:7px;overflow:hidden;background:var(--line2)}
.rc2-price b{position:relative;z-index:1;font-size:15px;color:var(--ink)}
.rc2-price i{position:absolute;left:0;top:0;bottom:0;background:var(--brand-l);border-radius:7px}
.cost-view{width:auto;max-width:210px;margin-left:auto;height:30px}
.cost-tbl tr.cgrp td{background:var(--gray-l);font-size:12.5px;color:var(--ink2);padding:7px 8px;border-top:1px solid var(--line)}
.cost-tbl tr.cgrp td:first-child>*{margin-right:10px}
.cost-tbl tr.cgrp .cg-day{display:inline-block;background:var(--brand);color:#fff;border-radius:6px;padding:1px 7px;font-weight:700;font-size:11.5px}
.cost-tbl tr.cgrp.tot td{background:var(--brand-ll);font-weight:700}
.day-sec-l{display:flex;align-items:center;gap:6px;font-size:11.5px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--muted);margin-top:2px}
.day-sec-l svg{width:14px;height:14px}
.cf-rooms{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}
.cf-rooms label{font-size:12px;color:var(--muted);display:flex;flex-direction:column;gap:3px}
.cf-box{border:1px solid var(--line);border-radius:10px;padding:10px 12px;margin-top:10px;background:var(--brand-ll)}
.cf-box .sum-row{display:flex;justify-content:space-between;gap:8px;font-size:13px;padding:2px 0}
.cf-chk{font-size:12px;margin-top:6px}
.cf-chk.bad{color:var(--red)} .cf-chk.ok{color:var(--green)}
@media (max-width:700px){.cf-rooms{grid-template-columns:repeat(2,minmax(0,1fr))}.rc2-top{flex-direction:column}}
.rc2-vc-strip{margin:10px 14px 0;border:1px solid var(--line);border-radius:10px;padding:10px 12px}
.rc2-vc-h{display:flex;gap:8px;align-items:center;flex-wrap:wrap;font-size:13px;margin-bottom:8px}
.rc2-vc-row{display:flex;gap:8px;flex-wrap:wrap}
.rc2-vc-box{display:flex;flex-direction:column;gap:3px;border:1px solid var(--line);border-radius:9px;padding:7px 9px;min-width:150px;flex:1;max-width:220px;background:var(--panel)}
.rc2-vc-box span{font-weight:600;font-size:12.5px;display:flex;justify-content:space-between;gap:6px}
.rc2-vc-box span small,.rc2-vc-box>small{color:var(--muted);font-weight:500;font-size:11px}
.rc2-vc-box input{height:30px}
.rc2-vc-box.miss{border-color:#f5c26b;background:var(--amber-l)}
.rc2-vc-box.miss>small{color:var(--amber)}
.rc2-pax input{width:48px;padding-left:6px;padding-right:4px}
.rc2-veh select{min-width:150px}
.rc2-vc input{width:100%;max-width:160px}
.rc2-card .card-h{flex-wrap:wrap;row-gap:8px}
.rc2-card .card-h h3{flex:1 1 280px}
.rc2 td:nth-child(6) input{min-width:90px}
.sum-slab:empty{display:none}
.sum-slab{font-size:12px;line-height:1.45;color:var(--ink2);background:var(--brand-ll);border:1px solid var(--brand-l);border-radius:8px;padding:7px 9px;margin:4px 0 6px}
.presence-bar{position:fixed;left:50%;transform:translateX(-50%);top:62px;z-index:60;max-width:min(680px,calc(100vw - 32px));background:#fff8eb;border:1px solid #f5c26b;color:#7a4a05;border-radius:10px;padding:7px 14px;font-size:12.5px;box-shadow:0 4px 14px rgba(0,0,0,.08);display:flex;gap:8px;align-items:center}
.presence-bar[hidden]{display:none}
.presence-bar .pb-dot{width:8px;height:8px;border-radius:50%;background:#f59e0b;flex:none;animation:pbp 1.6s infinite}
@keyframes pbp{50%{opacity:.35}}

/* ---- 28 Oct: full-page calculation sheet ---- */
.cs-ov{position:fixed;inset:0;z-index:90;background:var(--bg);overflow:auto}
.cs-ov[hidden]{display:none}
body.cs-open{overflow:hidden}
.cs-wrap{max-width:1500px;margin:0 auto;padding:0 20px}
.cs-top{position:sticky;top:0;z-index:2;background:rgba(255,255,255,.97);border-bottom:1px solid var(--line)}
.cs-top .cs-wrap{display:flex;align-items:center;gap:8px;padding-top:10px;padding-bottom:10px}
.cs-top h2{margin:0;font-size:17px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.cs-body h3{margin:22px 0 8px;font-size:15px}
.cs-facts{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px;margin-top:16px}
.cs-facts div{background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:8px 11px}
.cs-facts span{display:block;font-size:11px;color:var(--muted);text-transform:uppercase;letter-spacing:.04em}
.cs-facts b{font-size:13.5px}
.cs-t{background:var(--panel)}
.cs-t th{white-space:nowrap;font-size:11px}
.cs-t td{font-size:13px}
.cs-t tr.cs-g td{background:var(--gray-l);font-size:12.5px;border-top:1px solid var(--line)}
.cs-day{display:inline-block;background:var(--brand);color:#fff;border-radius:6px;padding:1px 7px;font-weight:700;font-size:11.5px}
.cs-t tr.cs-tot td{background:var(--brand-ll);font-weight:700}
.cs-t tr.cs-ss td{background:var(--amber-l)}
.cs-t tr.cs-low td{background:#fff8eb}
.cs-t td.cs-p{color:var(--brand-d)}
.cs-cats{max-width:640px}
@media (max-width:900px){.cs-facts{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media print{body.cs-open>*:not(#calcSheet){display:none!important}.cs-ov{position:static;overflow:visible;background:#fff}.cs-top{display:none}.cs-wrap{max-width:none;padding:0}.cs-t td,.cs-t th{font-size:10px;padding:3px 5px}.cs-ov{page:calcl}}
@page calcl{size:A4 landscape;margin:10mm}

/* ---- 28 Oct (late): workspace comfort — menu hide, quotation view bar, focus, fold, A− / A+ ---- */
@media (min-width:821px){
  .topbar [data-act="toggleNav"]{display:inline-grid}
  body.nav-hidden .sidebar{transform:translateX(-100%)}
  body.nav-hidden .main{margin-left:0}
}
.zoom-box{display:inline-flex;align-items:center;border:1px solid var(--line);border-radius:8px;overflow:hidden;background:#fff;flex:none}
.zoom-box button{border:0;background:none;padding:5px 8px;font-weight:700;font-size:12.5px;cursor:pointer;color:var(--ink2);min-width:30px}
.zoom-box button:hover{background:var(--brand-ll);color:var(--brand-d)}
.zoom-box #zoomVal{font-weight:500;color:var(--muted);font-size:11.5px;border-left:1px solid var(--line2);border-right:1px solid var(--line2)}
.qv-bar{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin:0 0 12px}
.split.nosum{grid-template-columns:minmax(0,1fr)}
.split.nosum>.sum-col{display:none}
.qv-mini{position:fixed;left:50%;bottom:16px;transform:translateX(-50%);z-index:55;display:flex;gap:14px;align-items:center;background:#111827;color:#fff;border-radius:999px;padding:9px 16px;font-size:13px;box-shadow:0 8px 24px rgba(0,0,0,.2);cursor:pointer;max-width:calc(100vw - 32px);flex-wrap:wrap;justify-content:center}
.qv-mini b{color:#fff}
.qv-mini .qv-open{background:rgba(255,255,255,.15);border-radius:999px;padding:2px 10px}
.split>.stack>.card>.card-h h3{cursor:pointer;user-select:none}
.fold-ch{display:inline-block;width:16px;color:var(--muted);transition:transform .15s;font-size:12px}
.card.folded>.card-h{border-bottom:0}
.card.folded>.card-h .fold-ch{transform:rotate(-90deg)}
.card.folded>:not(.card-h){display:none!important}
.hl-sum{display:flex;gap:6px;flex-wrap:wrap;margin:0 0 6px}
.hl-hint{font-size:11.5px;color:var(--muted);margin-top:2px}
@media (max-width:820px){
  .qv-bar .btn{padding:6px 9px;font-size:12px}
  .qv-mini{gap:8px;font-size:12px;bottom:74px}
  .zoom-box button{padding:5px 6px;min-width:26px}
}
@media (max-width:600px){
  .rc2-info{min-width:0;flex-basis:100%}
  .rc2-try{min-width:0;flex-basis:100%}
  .rc2-try .row{flex-wrap:wrap!important}
  .rc2-tryout{min-width:0}
}

/* rooms by type in Trip details (28 Oct night) */
.rm-plan{display:grid;grid-template-columns:repeat(4,minmax(70px,1fr)) minmax(150px,2fr) repeat(2,minmax(90px,1fr));gap:8px;align-items:end}
.rm-plan .rmb{display:flex;flex-direction:column;gap:3px;margin:0;font-size:12px;color:var(--muted);font-weight:500}
.rm-plan .rmb input{width:100%}
.rm-state{margin-top:8px;display:flex;flex-wrap:wrap;gap:6px;align-items:center}
.sum-rooms{margin:4px 0}
@media (max-width:820px){.rm-plan{grid-template-columns:repeat(4,1fr)}.rm-plan .rmb-w{grid-column:span 2}}
.rm-line{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-top:4px;font-size:11.5px;color:var(--muted)}
.rm-line label{display:flex;gap:4px;align-items:center;margin:0;font-weight:500}
.rm-line input{width:86px;height:26px;padding:2px 6px}
.lh-prev{border:1px solid var(--line);border-radius:10px;padding:8px;background:#fff;max-width:900px}
.lh-prev img{width:100%;height:auto;display:block}
/* printing / PDF: none of the screen's floating bars (phone menu, save bar, mini price bar, chat button, presence) */
@media print{.bottom-nav,#bottomNav,.qv-mini,.qv-bar,.savebar,.presence-bar,.zoom-box,#cwFab,#cw,.fab{display:none!important}body{padding-bottom:0!important}}
.rc2-foc label{display:block;font-size:11.5px;color:var(--muted);font-weight:600;margin:4px 0 0;cursor:help}
.rc2-pct{display:inline-flex;align-items:center;gap:3px;margin-top:2px}
.rc2-pct input{width:64px;height:28px;padding:2px 6px}
.rc2-focx{font-size:11px;color:var(--brand);margin-top:2px}
/* the problem shown at its place (29 Oct) */
.chk-hi{outline:2px solid #dc2626!important;outline-offset:1px;background-color:#fef2f2!important}
.chk-md{outline:2px solid #f59e0b!important;outline-offset:1px;background-color:#fffbeb!important}
.chk-lo{box-shadow:inset 3px 0 0 #94a3b8}
tr.chk-hi>td,tr.chk-md>td{background-color:inherit}
@keyframes chkFlash{0%,100%{box-shadow:0 0 0 0 rgba(220,38,38,0)}30%{box-shadow:0 0 0 6px rgba(220,38,38,.35)}}
.chk-flash{animation:chkFlash 1.2s ease 2}
.hl[data-chk]:not([data-chk=""]){cursor:pointer}.hl[data-chk]:not([data-chk=""]):hover{filter:brightness(.97)}
.cg-mode{margin-left:8px;font-size:11px;font-weight:700;color:var(--brand);background:var(--brand-l);border-radius:999px;padding:1px 8px}
.cg-fare{margin-left:6px;font-size:11.5px;color:var(--muted)}
@media print{.chk-hi,.chk-md,.chk-lo{outline:0!important;background-color:transparent!important}}
.desc-pick{display:flex;gap:10px;align-items:flex-start;padding:10px;border:1px solid var(--line);border-radius:10px;margin-bottom:8px;line-height:1.5}
.desc-pick input{margin-top:4px}
.rc2-leg{margin-top:10px;padding-top:10px;border-top:1px dashed var(--line)}
.rc2-leg-h{display:flex;gap:8px;align-items:center;margin-bottom:6px;flex-wrap:wrap}
.rc2-leg-h input{flex:1;min-width:180px;height:32px}
/* net costing first, margin later (29 Oct) */
.cost-tbl.net .mkc{display:none}
.rc2-mg{display:flex;flex-wrap:wrap;gap:10px 18px;align-items:center;padding:10px 14px;margin:10px 14px 0;border:1px solid var(--line);border-radius:12px;background:#fbfbff}
.rc2-mg .seg{display:inline-flex;border:1px solid var(--line);border-radius:999px;overflow:hidden}
.rc2-mg .seg button{border:0;background:#fff;padding:5px 12px;font-size:12.5px;cursor:pointer}
.rc2-mg .seg button.on{background:var(--brand);color:#fff}
.rc2-mg label{display:flex;align-items:center;gap:6px;margin:0}
.rc2-mk{display:inline-flex;align-items:center;gap:2px;margin-bottom:4px}.rc2-mk input{width:58px;height:26px;padding:2px 5px}
.rc2-off{display:inline-block;margin-top:4px}.rc2-off.on{background:#fff4e5;border-color:#f5c26b;color:#9a5b00}
/* 31 Oct: compact costing rows (one line = one row) */
.cost-tbl td{vertical-align:middle}
.cost-tbl .svc{display:flex;gap:6px;align-items:center;flex-wrap:wrap}
.cost-tbl .svc>input{flex:1 1 200px;min-width:160px}
.cost-tbl .svc-x{display:inline-flex;align-items:center;gap:4px;margin:0;font-size:11.5px;color:var(--muted);font-weight:500;white-space:nowrap}
.cost-tbl .svc-x input,.cost-tbl .svc-x select{width:80px;height:28px;padding:2px 6px;font-size:12.5px}
.cost-tbl .svc-x select{width:120px}
.cost-tbl td>input,.cost-tbl td>select{height:32px}
.cost-tbl .unit-sel{width:100%;height:32px;font-size:12.5px;margin:0}
.cost-tbl .only-b{width:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin:0}
.cost-tbl .sub{font-size:11px;margin-top:2px}
.cost-tbl .cat-xf{margin:0}
/* other expenses / alarms / transport / margin cards */
.ex-form{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.ex-form>*{height:36px;margin:0}
.ex-form #exCat{flex:0 1 140px}.ex-form #exDesc{flex:1 1 220px;min-width:160px}.ex-form #exDay{flex:0 1 150px}
.ex-form #exRate{flex:0 1 100px}.ex-form #exUnit{flex:0 1 130px}.ex-form #exMin{flex:0 1 90px}.ex-form .btn{flex:0 0 auto}
.ex-list{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px}
.ex-chip{display:inline-flex;align-items:center;gap:6px;background:var(--brand-ll,#f4f3ff);border:1px solid var(--line);border-radius:999px;padding:3px 6px 3px 10px;font-size:12.5px}
.ex-chip button{border:0;background:transparent;cursor:pointer;padding:0 3px;color:var(--muted)}
.ex-chip button:hover{color:var(--red,#dc2626)}
.al-card.ok .card-b{color:var(--green);font-weight:600}
.al-card .cc-alarms{margin:0}
.tr-card .rc2-vc-strip,.mg-card .rc2-mg{margin:10px 14px 0}
.so-rule label{margin:4px 0}
.cost-tbl{table-layout:fixed;width:100%}
.cost-tbl th:first-child{width:96px}
.cost-tbl td>input[type=number]{padding:4px 6px;text-align:right}
.cost-tbl td:nth-child(6)>input,.cost-tbl td:nth-child(7)>input{text-align:center;padding:4px 2px}
.cost-tbl .svc>input{flex:1 1 140px;min-width:120px}
.cost-tbl .svc-r small{font-size:10.5px}
.cost-tbl .svc-r input{width:64px}
.cost-tbl td:first-child select{font-size:12.5px;padding:4px 6px}
.tr-card .rc2-vc-h>b{display:none}
.mg-card .rc2-mg>div:first-child>b{display:none}
/* 31 Oct: other expenses form with labels + live working */
.ex-form{align-items:flex-end}
.ex-f{display:flex;flex-direction:column;gap:2px;margin:0;font-size:11px;color:var(--muted);font-weight:600}
.ex-f>span{padding-left:2px}
.ex-f select,.ex-f input{height:36px;margin:0}
.ex-form .ex-f{flex:0 1 140px}.ex-form .ex-w{flex:1 1 220px}.ex-form .ex-n{flex:0 1 90px}
.ex-form>.btn{height:36px}
.ex-calc{margin-top:8px;font-size:13px;background:#f6f7fb;border-radius:8px;padding:7px 10px}
/* 31 Oct (c): locked costing / rate charts, empty category tiles, transport types, other-expense edit */
.lk-b{margin-left:auto;border:1px solid #f0c36d;background:#fff8e6;color:#8a5a00;border-radius:999px;padding:3px 10px;font-size:12px;font-weight:600;cursor:pointer;white-space:nowrap}
.lk-b:hover{background:#ffefc2}
.card.lk input:not(#slabTry),.card.lk select:not(#costView),.card.lk textarea{background:var(--gray-l,#f6f7f9);cursor:pointer}
.cc-tile.cc-empty{opacity:.6;border-style:dashed}
.cc-tile[title],.rc2-vc-box[title]{cursor:help}
.vt-b{display:inline-block;background:var(--brand-l,#eef0ff);color:var(--brand,#4f46e5);border-radius:6px;padding:0 6px;margin-right:4px;font-size:12px}
.ex-chip.on{outline:2px solid var(--brand,#4f46e5)}
.ex-card.ex-editing .ex-form{background:#fff8e6;border-radius:10px;padding:6px}
.ex-why{font-style:normal;color:#b45309;font-weight:700}
.ex-dup{background:var(--gray-l,#f6f7f9);border-radius:8px;padding:8px 10px;font-size:13px;display:grid;gap:4px}
[data-hint-auto]{cursor:help}
.xls-b{color:#1d6f42;border-color:#9fd3b4;background:#f0faf4}
.xls-b:hover{background:#dff3e7}
.xls-ch{max-height:50vh;overflow:auto;display:grid;gap:4px;font-size:13px;background:var(--gray-l,#f6f7f9);border-radius:8px;padding:8px 10px}

/* 31 Oct: pick monuments, activities and hotels from a pop-up with tick boxes */
.chip-pick{cursor:pointer;font:inherit;color:var(--brand);background:transparent}
.pk-sec{border:1px solid var(--line);border-radius:10px;padding:10px 12px;margin-bottom:10px}
.pk-sec.pk-this{border-color:var(--brand);background:var(--brand-ll)}
.pk-h{font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:var(--muted);margin-bottom:6px}
.pk-h b{color:var(--ink);text-transform:none;letter-spacing:0}
.pk-city{font-weight:600;font-size:13px;margin:8px 0 4px}
.pk-sec .lib-list{max-height:none;overflow:visible}
.pk-warn{color:var(--red,#c0392b);font-weight:600;font-size:12px}
.pk-none{padding:4px 0}
.pk-hotel{align-items:center}
.pk-hotel .pk-main{display:flex;gap:4px;align-items:center;font-size:12px;color:var(--muted);white-space:nowrap;padding-right:8px;border-right:1px solid var(--line)}
.pk-hotel label.grow{display:flex;gap:6px;align-items:center;cursor:pointer}
.pk-meal{display:grid;grid-template-columns:120px 120px 140px 100px minmax(0,1fr);gap:8px;align-items:end;padding:8px 0;border-top:1px solid var(--line)}
.pk-meal:first-of-type{border-top:0}
.pk-meal label{display:flex;flex-direction:column;gap:3px;font-size:11px;color:var(--muted);min-width:0}
.pk-meal label.pk-mname{flex-direction:row;align-items:center;gap:6px;font-size:14px;color:var(--ink);padding-bottom:6px}
.pk-meal select,.pk-meal input[type=number]{width:100%}
@media (max-width:820px){ .pk-meal{grid-template-columns:1fr 1fr} .pk-meal .pk-mname,.pk-meal .pk-rest{grid-column:1/-1} }
/* 31 Oct: phones — the hotel row and the B / L / D boxes stay inside the screen */
@media (max-width:600px){
  .day-meta{min-width:0;width:100%}
  .day-meta .dm{max-width:100%;min-width:0}
  .day-meta .dm select[data-f$=".hotelId"],.dm select{min-width:0!important;max-width:100%;flex:1 1 100%}
  .meals{white-space:normal;max-width:100%}
  .mealbox{flex-wrap:wrap;max-width:100%}
  .mealbox .mealamt{width:96px}
}
@media (max-width:600px){ .day-meta .badge,.day .sf-card .badge{white-space:normal;max-width:100%;overflow-wrap:anywhere} .day .sf-card .grow{min-width:0} }
/* 31 Oct (h): fare for Flight / Train / Boat days; monuments & activities highlighted next to the meals */
.mode-fare{display:inline-flex;gap:4px;align-items:center}
.mode-fare input{width:110px}
.mode-fare select{width:auto}
.mode-fare.ask select{border-color:var(--amber,#d97706);box-shadow:0 0 0 2px rgba(217,119,6,.18)}
.day-sights{border:1px solid var(--brand);background:var(--brand-ll);border-radius:10px;padding:8px 10px}
.day-sights .day-sec-l{color:var(--brand);margin-top:0}
@media (max-width:600px){ .mode-fare{flex-wrap:wrap;max-width:100%} .mode-fare select{max-width:100%;min-width:0} }
/* 31 Oct (i): entry fee in the monuments pop-up, correct it there */
.pk-fee{display:inline-flex;align-items:center;gap:3px;margin-left:6px;font-size:12px;color:var(--ink);background:#fff;border:1px solid var(--line);border-radius:999px;padding:1px 4px 1px 8px;white-space:nowrap}
.pk-fee small{color:var(--muted)}
.pk-feefix{border:0;background:transparent;cursor:pointer;color:var(--brand);font-size:12px;padding:0 4px;line-height:1}
.pk-feefix:hover{color:var(--brand-d)}
.pk-feeform{grid-column:1/-1;display:flex;flex-wrap:wrap;gap:8px;align-items:flex-end;background:#fff;border:1px dashed var(--brand);border-radius:8px;padding:8px 10px;font-size:12px}
.pk-feeform label{display:flex;flex-direction:column;gap:2px;color:var(--muted)}
.pk-feeform input{width:90px;height:30px}
.pk-fee{flex-wrap:wrap;white-space:normal;gap:2px 4px}
.pk-feeon{color:var(--brand)}
.pk-dot{font-style:normal;color:var(--muted);padding:0 2px}
/* 31 Oct (k): master rate tables (hotel room rates, vehicle rates) — every box wide enough to read and type a rate */
.tbl.rate-edit{width:auto;min-width:100%}
.tbl.rate-edit th{white-space:normal;line-height:1.2;vertical-align:bottom}
.tbl.rate-edit input[type=number]{width:78px;min-width:78px;max-width:78px;text-align:right}
.tbl.rate-edit input[type=date]{width:134px;min-width:134px;max-width:134px}
.tbl.rate-edit input[type=text]{width:108px;min-width:108px}
.tbl.rate-edit select{width:200px;min-width:170px}
.tbl.rate-edit input[type=number]::-webkit-inner-spin-button,.tbl.rate-edit input[type=number]::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}
.tbl.rate-edit input[type=number]{-moz-appearance:textfield}
.tbl.rate-edit td,.tbl.rate-edit th{padding-left:4px;padding-right:4px}
/* 31 Oct (k): small number boxes in tables stay readable on laptops — no spinner arrows eating the space */
.tbl input[type=number]::-webkit-inner-spin-button,.tbl input[type=number]::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}
.tbl input[type=number]{-moz-appearance:textfield}
input[data-f$=".qty"],input[data-f$=".nights"]{min-width:52px}
input[data-f^="slabs."][type=number]{min-width:60px}
#gcName,[data-f="gcName"],input[name="gcName"]{min-width:160px}
.gc-row{flex-wrap:wrap}.gc-row input{min-width:160px;flex:1 1 160px}
/* 31 Oct (l): hotel room rates as boxes — every field labelled, wraps on any screen */
.rcards{display:flex;flex-direction:column;gap:10px}
.rcard{border:1px solid var(--line);border-radius:10px;padding:8px 12px 12px;background:var(--bg2,#fafbfd)}
.rcard-h{display:flex;align-items:center;gap:6px;font-size:13px;margin-bottom:6px}
.rcard-g{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px 12px}
.rcard-g .rf{display:flex;flex-direction:column;gap:3px;font-size:12px;font-weight:600;color:var(--muted);min-width:0}
.rcard-g .rf input,.rcard-g .rf select{width:100%;min-width:0;font-weight:400;color:var(--ink)}
.rcard-g .rf-number input{text-align:right}
.rcard-g .rf-number input::-webkit-inner-spin-button,.rcard-g .rf-number input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}
.rcard-g .rf-number input{-moz-appearance:textfield}
@media (min-width:1100px){ .modal.lg .rcard-g{grid-template-columns:1.3fr 1fr 1.25fr 1.25fr} }
@media (max-width:520px){ .rcard-g{grid-template-columns:1fr 1fr} }
/* 31 Oct (l): Quick Quotations — card style like a pricing page; colour bar = how far it is checked */
:root{--qq-ok:#0f3d2e;--qq-rate:#d9f99d;--qq-itin:#fdc9a8;--qq-todo:#c9c4f5}
.qq-tools{display:flex;flex-wrap:wrap;gap:10px 14px;align-items:center;padding:12px 14px;margin-bottom:10px}
.qq-search{flex:1 1 320px;display:flex;align-items:center;gap:8px;border:1px solid var(--line);border-radius:10px;padding:0 10px;background:#fff}
.qq-search input{border:0;box-shadow:none;outline:0;height:40px;flex:1;min-width:0;font-size:15px}
.qq-pills{display:flex;gap:6px;flex-wrap:wrap}
.qq-pills .btn.on{background:var(--qq-ok);color:#fff;border-color:var(--qq-ok)}
.qq-l{display:flex;align-items:center;gap:6px;font-size:12px;color:var(--muted);white-space:nowrap}
.qq-l select{width:auto}
.qq-pax input{width:64px;text-align:center}
.qq-legend{display:flex;flex-wrap:wrap;gap:6px 16px;color:var(--muted);margin:2px 2px 14px}
.qq-legend span{display:inline-flex;align-items:center;gap:6px}
.qq-dot{width:14px;height:6px;border-radius:3px;display:inline-block}
.qq-dot.ok{background:var(--qq-ok)}.qq-dot.rate{background:var(--qq-rate)}.qq-dot.itin{background:var(--qq-itin)}.qq-dot.todo{background:var(--qq-todo)}
.qq-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(270px,1fr));gap:18px;align-items:start}
.qq-card{background:#fff;border:1px solid var(--line);border-radius:12px;overflow:hidden;display:flex;flex-direction:column;transition:box-shadow .15s,transform .15s}
.qq-card:hover{box-shadow:0 8px 24px rgba(20,30,60,.10);transform:translateY(-2px)}
.qq-bar{height:12px}
.qq-ok .qq-bar{background:var(--qq-ok)}.qq-rate .qq-bar{background:var(--qq-rate)}.qq-itin .qq-bar{background:var(--qq-itin)}.qq-todo .qq-bar{background:var(--qq-todo)}
.qq-body{padding:14px 16px 16px;display:flex;flex-direction:column;gap:8px}
.qq-top{display:flex;align-items:center;gap:8px}
.qq-status{font-size:11px;font-weight:600;padding:2px 8px;border-radius:999px;background:var(--bg2,#f4f5f8);color:var(--ink2,#444)}
.qq-s-ok{background:#e3f1ea;color:var(--qq-ok)}
.qq-star{margin-left:auto;border:0;background:transparent;font-size:20px;line-height:1;color:#d0d3db;cursor:pointer;padding:0 2px}
.qq-star.on{color:#f5b301}
.qq-title{margin:0;font-size:19px;line-height:1.25;font-weight:600}
.qq-title a{color:var(--ink);text-decoration:none}
.qq-title a:hover{text-decoration:underline}
.qq-route{font-size:13px;color:var(--ink2,#555)}
.qq-meta{font-size:12px;color:var(--muted)}
.qq-hot{color:#d9480f}
.qq-price{display:flex;flex-direction:column;margin:6px 0 2px}
.qq-price small{font-size:11px;color:var(--muted)}
.qq-price b{font-size:28px;line-height:1.1;letter-spacing:-.02em;color:var(--ink)}
.qq-price span{font-size:12px;color:var(--muted)}
.qq-main{justify-content:center;background:var(--qq-ok);border-color:var(--qq-ok);height:42px;font-weight:600}
.qq-main:hover{filter:brightness(1.15)}
.qq-docs{display:grid;grid-template-columns:1fr 1fr;gap:6px}
.qq-docs .btn{justify-content:center;font-size:12px}
.qq-checks{list-style:none;margin:6px 0 0;padding:10px 0 0;border-top:1px solid var(--line);display:flex;flex-direction:column;gap:6px;font-size:13px}
.qq-checks li{display:flex;gap:8px;align-items:flex-start;color:var(--muted)}
.qq-checks li i{font-style:normal;width:16px;text-align:center;flex:none}
.qq-checks li.on{color:var(--ink)}
.qq-checks li.on i{color:#1a7f4b;font-weight:700}
.qq-checks li.tap{cursor:pointer;border-radius:6px;padding:2px 4px;margin:0 -4px}
.qq-checks li.tap:hover{background:var(--brand-ll)}
.qq-checks li small{display:block;font-size:11px;color:var(--muted)}
.qq-empty{grid-column:1/-1;text-align:center;padding:40px 10px;color:var(--muted)}
@media (max-width:600px){ .qq-grid{grid-template-columns:1fr} .qq-price b{font-size:24px} }
.qq-grid{align-items:stretch}
.qq-body{flex:1}
.qq-title{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;min-height:2.5em}
.qq-route{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;min-height:2.9em;line-height:1.45}
.qq-card .btn.qq-main{background:var(--qq-ok);border-color:var(--qq-ok);color:#fff}
.qq-card .btn.qq-main:hover{background:#185a44;border-color:#185a44;filter:none}
.qq-noprice b{font-size:20px;color:var(--muted)}
.rcard.rc-sgl{background:#fff8f0;border-color:#f3d9bf}
.rcard-h .muted{margin-left:6px}
/* 31 Oct (m): rename the menu */
.nav-rename{opacity:.65;font-size:12px;margin-top:10px}
.nav-rename:hover{opacity:1}
.nr-list{display:grid;grid-template-columns:1fr 1fr;gap:6px 18px}
.nr-row{display:flex;align-items:center;gap:8px;min-width:0}
.nr-row .nr-def{flex:0 0 46%;font-size:13px;color:var(--ink2,#555);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.nr-row input{flex:1;min-width:0;height:32px}
.nr-head{grid-column:1/-1;margin-top:10px;padding-top:8px;border-top:1px solid var(--line)}
.nr-head .nr-def{font-weight:700;text-transform:uppercase;letter-spacing:.05em;font-size:11px;color:var(--muted)}
@media (max-width:640px){ .nr-list{grid-template-columns:1fr} }
.newver{position:fixed;left:50%;bottom:22px;transform:translateX(-50%);z-index:9999;display:flex;align-items:center;gap:10px;background:#0f3d2e;color:#fff;padding:10px 12px 10px 16px;border-radius:12px;box-shadow:0 10px 30px rgba(0,0,0,.25);font-size:14px;max-width:calc(100vw - 24px)}
.newver .btn.ghost{color:#fff;border-color:transparent}
/* 1 Nov: fee on each monument / activity chip; hotel & meal rates box right under the hotel; activity rate form in the pop-up */
.chip .chip-fee{margin-left:6px;font-size:12px;font-weight:600;color:#0f3d2e;background:#e3f1ea;border-radius:999px;padding:1px 7px;white-space:nowrap}
.chip .chip-fee.none{color:var(--muted);background:var(--bg2,#f1f2f5);font-weight:500}
.dc-hotel{border:1px solid var(--line);border-radius:10px;padding:8px 12px 10px;background:var(--bg2,#fafbfd)}
.dc-hotel-h{display:flex;align-items:center;gap:8px;font-size:13px;margin-bottom:6px}
.dc-hotel-h .muted{font-weight:400}
.pk-feeform select{height:30px}
.pk-feeform .pk-same{justify-content:flex-end}
.pk-feeform .pk-same span{display:flex;align-items:center;gap:5px;color:var(--ink);height:30px}
.pk-feeform .pk-same input[type=checkbox]{width:16px;height:16px;min-width:0;margin:0}

/* 1 Nov: ✎ Edit route rates pop-up + ⇅ dropdown order */
.er-top{display:flex;gap:10px;flex-wrap:wrap}
.er-top label{display:flex;flex-direction:column;font-size:12px;color:var(--muted);gap:3px}
.er-top label:first-child{flex:1;min-width:220px}
.er-top input[type=number]{width:110px}
.er-tbl td{vertical-align:middle}
.er-tbl tr.er-miss td{background:#fff7e6}
.er-tbl tr.er-miss input[data-k=rate]{border-color:#e0a030}
.rc2-route .btn.xs{margin-left:6px;vertical-align:middle}
.oo-list{list-style:none;margin:0;padding:0;max-height:60vh;overflow:auto;border:1px solid var(--line);border-radius:10px}
.oo-r{display:flex;align-items:center;gap:8px;padding:7px 10px;border-bottom:1px solid var(--line);background:var(--card,#fff);cursor:grab}
.oo-r:last-child{border-bottom:0}
.oo-h{color:var(--muted);letter-spacing:-2px}
.oo-n{min-width:22px;font-weight:600;color:var(--muted);font-size:12px}
.oo-l{flex:1}
.oo-r.oo-drag{opacity:.5}
.oo-r.oo-moved{background:#eef6ff}
.ss-foot .ss-arr{margin-left:auto}
@media (max-width:640px){.er-tbl input[data-k=rate]{width:100px!important}.er-tbl select{width:120px!important}}
.es-tbl td.er-miss input{border-color:#e0a030;background:#fff7e6}
.dc-hotel-h .btn.xs{margin-left:6px}
/* 1 Nov: the transport rule's vehicle that was changed by hand — still shown, dashed, with a way back */
.rc2-vc-box.rc2-skip{border:1.5px dashed #e0a030;background:#fffaf0;display:flex;flex-direction:column;gap:6px}
.rc2-skip .rc2-skip-r{font-weight:600}
.rc2-skip .btn{align-self:flex-start}
/* 1 Nov: transport box ⇄ rate chart by pax anchors */
.anc-use{display:flex;flex-wrap:wrap;gap:4px;align-items:center;margin-top:6px;font-size:12px;color:var(--muted)}
.anc-chip{border:1px solid var(--line);background:var(--card,#fff);border-radius:999px;padding:1px 8px;font-size:12px;cursor:pointer;color:var(--brand,#4f46e5);line-height:1.6}
.anc-chip:hover{background:var(--brand-soft,#eef2ff)}
.anc-go{font-weight:600}
.anc-up{display:inline-block;margin:4px 0 2px}
.anc-head{margin-left:10px}
@keyframes ancHit{0%{box-shadow:0 0 0 3px #f59e0b;background:#fff7e6}100%{box-shadow:0 0 0 0 transparent}}
.anc-hit,.anc-hit>td{animation:ancHit 1.8s ease-out}
@media (max-width:640px){.anc-head{margin:6px 0 0;white-space:normal}}

/* ================= 1 Nov: quotation control bar (qsteps.js) — step bar, All open / Work / Step by step ================= */
.qs-bar{position:sticky;z-index:15;display:flex;align-items:center;gap:12px;margin:0 0 14px;padding:8px 10px;background:rgba(245,246,250,.94);backdrop-filter:blur(8px);border:1px solid var(--line);border-radius:12px;box-shadow:var(--sh)}
.qs-steps{list-style:none;margin:0;padding:2px 2px 2px 0;display:flex;gap:2px;flex:1;min-width:0;overflow-x:auto;scrollbar-width:thin}
.qs-steps li{flex:1 1 auto;min-width:0}
.qs-st{--c:#9ca3af;--bgc:var(--gray-l);width:100%;min-width:0;height:40px;display:flex;align-items:center;justify-content:center;gap:6px;padding:0 14px 0 20px;border:0;background:var(--bgc);color:var(--ink);font:inherit;font-size:13px;cursor:pointer;clip-path:polygon(0 0,calc(100% - 10px) 0,100% 50%,calc(100% - 10px) 100%,0 100%,10px 50%);transition:filter .15s,transform .15s;white-space:nowrap}
.qs-steps li:first-child .qs-st{clip-path:polygon(0 0,calc(100% - 10px) 0,100% 50%,calc(100% - 10px) 100%,0 100%);border-radius:8px 0 0 8px;padding-left:12px}
.qs-st:hover{filter:brightness(.96)}
.qs-st:focus-visible{outline:none;filter:brightness(.92)}
.qs-st.green{--c:#16a34a;--bgc:#dcfce7}.qs-st.amber{--c:#d97706;--bgc:#fef3c7}.qs-st.red{--c:#dc2626;--bgc:#fee2e2}.qs-st.grey{--c:#9ca3af;--bgc:#eef0f4}
.qs-st.on{font-weight:650;box-shadow:inset 0 0 0 2px var(--brand)}
.qs-st.on .qs-l{color:var(--brand-d)}
.qs-n{flex:none;width:20px;height:20px;border-radius:50%;display:grid;place-items:center;font-size:11px;font-weight:700;background:var(--c);color:#fff}
.qs-st.on .qs-n{outline:2px solid #fff}
.qs-l{overflow:hidden;text-overflow:ellipsis}
.qs-c{flex:none;min-width:18px;height:18px;padding:0 5px;border-radius:5px;background:#fff;color:var(--c);box-shadow:inset 0 0 0 1.5px var(--c);font-size:11px;font-weight:700;display:inline-grid;place-items:center}

.qs-modes{flex:none;display:flex;background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:3px;gap:2px}
.qs-modes button{border:0;background:none;font:inherit;font-size:13px;padding:7px 11px;border-radius:7px;cursor:pointer;color:var(--ink2);white-space:nowrap}
.qs-modes button.on{background:var(--brand-l);color:var(--brand-d);font-weight:600}
.qs-modes .qs-ms{display:none}
#view .card.qs-hide{display:none!important}
.qs-row{display:flex;align-items:center;gap:12px;width:100%;min-height:52px;padding:10px 16px;margin:0;text-align:left;background:var(--panel);border:1px solid var(--line);border-radius:var(--r);box-shadow:var(--sh);font:inherit;color:var(--ink);cursor:pointer;transition:border-color .15s,box-shadow .15s}
.qs-row:hover{border-color:var(--brand);box-shadow:0 0 0 3px var(--brand-ll)}
.qs-dot{flex:none;width:10px;height:10px;border-radius:50%;background:#c4c8d2}
.qs-row.green .qs-dot{background:#16a34a}.qs-row.amber .qs-dot{background:#d97706}.qs-row.red .qs-dot{background:#dc2626}
.qs-rn{flex:none;font-weight:600;min-width:170px}
.qs-rs{flex:1;min-width:0;color:var(--muted);font-size:13px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.qs-row .qs-c{--c:#d97706}.qs-row.red .qs-c{--c:#dc2626}
.qs-row .qs-c{width:auto}
.qs-go{flex:none;color:var(--brand);font-size:13px;font-weight:600}
#view .card.qs-cur{border-color:var(--brand);box-shadow:0 0 0 3px var(--brand-ll),var(--sh)}
.qs-nav{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:12px 14px;background:var(--panel);border:1px solid var(--line);border-radius:var(--r);box-shadow:var(--sh)}
.qs-pos{color:var(--muted);font-size:13px}
body.qs-work .qv-bar [data-act="qvFold"],body.qs-step .qv-bar [data-act="qvFold"]{display:none}
/* tablet */
@media (max-width:1100px){.qs-bar{flex-wrap:wrap}.qs-steps{flex-basis:100%;order:2}.qs-modes{margin-left:auto}.qs-rn{min-width:140px}}
/* phone */
@media (max-width:640px){
  .qs-bar{padding:6px;gap:6px;border-radius:10px;margin-bottom:10px}
  .qs-modes{width:100%;margin:0}.qs-modes button{flex:1;padding:8px 4px}.qs-modes .qs-ml{display:none}.qs-modes .qs-ms{display:inline}
  .qs-st{min-width:auto;height:38px;padding:0 12px 0 18px;font-size:12px}
  .qs-steps li{flex:none}
  .qs-st:not(.on) .qs-l{display:none}
  .qs-row{flex-wrap:wrap;gap:4px 10px;padding:10px 12px}
  .qs-rn{min-width:0;flex:1}
  .qs-rs{flex-basis:100%;order:3;white-space:normal;padding-left:22px}
  .qs-go{display:none}
  .qs-nav{flex-wrap:wrap}.qs-nav .btn{flex:1 1 45%}.qs-pos{order:-1;flex-basis:100%;text-align:center}
}
@media print{.qs-bar,.qs-row,.qs-nav{display:none!important}#view .card.qs-hide{display:block!important}}

/* ================= 1 Nov: clean, calm look for the whole CRM (owner approved the mock-up: white cards, thin grey lines,
   soft status colours, one accent outline). Screen only — printouts and PDFs keep their own styles. "Classic look" in the menu turns it off. ================= */
@media screen{
body:not(.ui-classic){--line:#e1e4ea;--line2:#eef0f4;--sh:0 1px 2px rgba(16,24,40,.04);--r:12px;--r-sm:8px}
body:not(.ui-classic) .card{box-shadow:var(--sh)}
body:not(.ui-classic) .card-h{padding:14px 18px}
body:not(.ui-classic) .card-b{padding:18px}
body:not(.ui-classic) .page-head h1{font-size:23px;letter-spacing:-.015em}
body:not(.ui-classic) .btn{border-color:#d9dce3}
body:not(.ui-classic) .btn:hover{border-color:#c6cad3;background:#f6f7f9}
body:not(.ui-classic) .btn.primary,body:not(.ui-classic) .btn.green{border-color:transparent}
body:not(.ui-classic) .btn.primary:hover{background:var(--brand-d)}
body:not(.ui-classic) .pills button.on{background:var(--brand-l);border-color:var(--brand);color:var(--brand-d)}
body:not(.ui-classic) .tbl th{background:#f8f9fb;color:#6b7280}
body:not(.ui-classic) .tbl tbody tr:hover td{background:#fafbfc}
body:not(.ui-classic) .tbl tbody tr.click:hover td{background:var(--brand-ll)}
body:not(.ui-classic) .badge{font-weight:600;letter-spacing:.01em}
body:not(.ui-classic) .badge.green{background:#dcfce7;color:#166534}
body:not(.ui-classic) .badge.amber{background:#fef3c7;color:#92400e}
body:not(.ui-classic) .badge.red{background:#fee2e2;color:#991b1b}
body:not(.ui-classic) .modal{border-radius:14px}
body:not(.ui-classic) .topbar{background:rgba(255,255,255,.92)}
/* menu */
body:not(.ui-classic) .sidebar{border-right-color:#e6e8ee}
body:not(.ui-classic) .nav a{padding:7px 10px;color:#3f4654}
body:not(.ui-classic) .nav a:hover{background:#f3f4f7}
body:not(.ui-classic) .nav a.on{background:var(--brand-l);color:var(--brand-d);box-shadow:inset 3px 0 0 var(--brand)}
}
/* menu: find a page, folding groups, pins (works in both looks) */
.nav-find{position:sticky;top:-8px;z-index:2;background:inherit;padding:6px 0 6px;background:#fff}
.nav-find input{height:34px;font-size:13px;border-radius:9px;background:#f6f7f9;border-color:#e3e6ec}
.nav-find input:focus{background:#fff}
.nav .nav-grp{display:flex;align-items:center;gap:6px;cursor:pointer;user-select:none;border-radius:6px;margin-top:6px}
.nav .nav-grp:hover{color:#6b7280;background:#f6f7f9}
.nav .nav-grp::after{content:'▾';margin-left:auto;font-size:11px;transition:transform .15s}
.nav .nav-grp.shut::after{transform:rotate(-90deg)}
.nav .nav-grp[data-n]::before{content:attr(data-n);order:2;background:var(--red);color:#fff;border-radius:9px;padding:0 6px;font-size:10px;line-height:16px;letter-spacing:0}
.nav .pin-sec{cursor:default}.nav .pin-sec::after{content:''}
.nav a.nav-hid,.nav a.nav-miss,.nav .nav-miss{display:none}
.nav.finding a.nav-hid:not(.nav-miss){display:flex}
.nav.finding .nav-grp::after{content:''}
.nav .pin-b{margin-left:6px;border:0;background:none;padding:0 2px;font-size:13px;line-height:1;color:#c3c7d0;cursor:pointer;opacity:0;transition:opacity .12s}
.nav a:hover .pin-b,.nav .pin-b.on,.nav .pin-b:focus-visible{opacity:1}
.nav .pin-b.on{color:#f59e0b}
.nav a .cnt+.pin-b{margin-left:6px}
.nav a > span:first-of-type{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.nav a .cnt{margin-left:0}
.nav-look{display:block;margin:10px 10px 0;font-size:12px;color:var(--muted);background:none;border:0;cursor:pointer;padding:4px 0;text-align:left}
.nav-look:hover{color:var(--brand)}
@media (hover:none){.nav .pin-b{opacity:.55}}
/* quotation: the price summary sticks below the step bar */
body.qs-all .split .sum-col .sticky,body.qs-work .split .sum-col .sticky,body.qs-step .split .sum-col .sticky{top:calc(70px + var(--qs-h,56px))}
/* touch screens: bigger targets */
@media (pointer:coarse){.btn{min-height:38px}.btn.sm{min-height:34px}.nav a{padding:10px 10px}}
@media (max-width:640px){body:not(.ui-classic) .card-h{padding:12px 14px}body:not(.ui-classic) .card-b{padding:14px}}
/* 1 Nov re-check fixes: top search keeps room on laptops; task board fits; small date boxes on phones */
@media (min-width:601px) and (max-width:1279px){.search{min-width:190px}.xi-sw .xi-sw-l,.fx-sw .fx-l{display:none}.save-state{max-width:96px;overflow:hidden;text-overflow:ellipsis}}
.kanban{grid-template-columns:repeat(3,minmax(0,1fr))}
@media (max-width:960px){.kanban{grid-template-columns:1fr}}
@media (max-width:640px){#olFrom,#olTo{min-width:128px;width:auto;flex:1}}
/* 1 Nov: day strip inside Costing, Day-wise itinerary and Rate chart by pax (qsteps.js) */
.ds-strip{position:sticky;top:calc(66px + var(--qs-h,0px));z-index:6;display:flex;align-items:center;gap:6px;padding:8px 12px;background:rgba(255,255,255,.96);backdrop-filter:blur(6px);border-bottom:1px solid var(--line2)}
.ds-chips{display:flex;gap:6px;overflow-x:auto;flex:1;min-width:0;scrollbar-width:thin;padding:2px}
.ds-c{--c:#9ca3af;--bgc:#f1f3f6;flex:none;display:flex;flex-direction:column;align-items:flex-start;gap:0;min-width:64px;padding:5px 10px;border:1px solid transparent;border-radius:8px;background:var(--bgc);font:inherit;font-size:12px;line-height:1.25;color:var(--ink);cursor:pointer;box-shadow:inset 3px 0 0 var(--c)}
.ds-c b{font-weight:650;white-space:nowrap}
.ds-c span{color:var(--muted);font-size:11px;white-space:nowrap;max-width:110px;overflow:hidden;text-overflow:ellipsis}
.ds-c.all{justify-content:center;align-items:center;box-shadow:none;font-weight:600}
.ds-c.green{--c:#16a34a;--bgc:#f0fdf4}.ds-c.amber{--c:#d97706;--bgc:#fffbeb}.ds-c.red{--c:#dc2626;--bgc:#fef2f2}
.ds-c:hover{border-color:#d6d9e0}
.ds-c.on{border-color:var(--brand);background:var(--brand-l);box-shadow:inset 3px 0 0 var(--c),0 0 0 2px var(--brand-ll)}
.ds-arrow{flex:none;width:30px;height:30px;border-radius:8px;border:1px solid var(--line);background:#fff;font-size:18px;line-height:1;cursor:pointer;color:var(--ink2)}
.ds-arrow:disabled{opacity:.35;cursor:default}
.ds-hide{display:none!important}
body:not(.qs-all):not(.qs-work):not(.qs-step) .ds-strip{top:66px}
@media (max-width:640px){.ds-strip{padding:6px 8px;top:calc(60px + var(--qs-h,0px))}.ds-c{min-width:56px;padding:4px 8px}}
@media print{.ds-strip{display:none!important}.ds-hide{display:revert!important}}
#costCard > .card-h,#rateChart > .card-h,#catChart > .card-h{flex-wrap:wrap}
/* 1 Nov: Reports & insights (insights.js) */
.ix-f{display:flex;flex-wrap:wrap;gap:10px 16px;align-items:end;margin:0 0 12px}
.ix-f label{display:flex;flex-direction:column;gap:3px;font-size:12px;color:var(--muted)}.ix-f select,.ix-f input{width:auto;min-width:150px}
.ix-body{display:flex;flex-direction:column;gap:14px}
.ix-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}
.ix-k{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:12px 14px;box-shadow:var(--sh);border-left:4px solid var(--brand)}
.ix-k .l{font-size:12px;color:var(--muted)}.ix-k .v{font-size:21px;font-weight:700;letter-spacing:-.02em;margin-top:2px}.ix-k .s{font-size:11.5px;color:var(--muted)}
.ix-k.g{border-left-color:#22a06b}.ix-k.a{border-left-color:#f59e0b}.ix-k.r{border-left-color:#e5484d}
.ix-g2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.ix-chart{margin:0}.ix-chart svg{width:100%;height:auto;display:block}
.ix-chart figcaption{display:flex;gap:14px;justify-content:center;font-size:12px;color:var(--muted);margin-top:4px}.ix-chart figcaption i{display:inline-block;width:10px;height:10px;border-radius:3px;margin-right:5px;vertical-align:-1px}
.ix-hb{display:flex;flex-direction:column;gap:7px}
.ix-hr{display:grid;grid-template-columns:minmax(90px,38%) 1fr auto;gap:10px;align-items:center;font-size:13px}
.ix-hr .l{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ix-hr .b{background:#f1f3f7;border-radius:6px;height:12px;overflow:hidden}.ix-hr .b i{display:block;height:100%;border-radius:6px}
.ix-hr .v{font-weight:650;min-width:40px;text-align:right}
.ix-fun{display:flex;flex-direction:column;gap:10px}.ix-fs{display:grid;grid-template-columns:90px 1fr 90px;gap:10px;align-items:center}
.ix-fs .b{background:#f1f3f7;border-radius:8px;height:26px;overflow:hidden}.ix-fs .b i{display:block;height:100%;border-radius:8px}.ix-fs .v{font-weight:700;text-align:right}.ix-fs small{color:var(--muted);font-weight:500}
.ix-ai{margin-top:14px;border-top:1px solid var(--line2);padding-top:12px}.ix-ai-h{font-size:17px;font-weight:700;margin-bottom:4px}
.ix-ai-l{border:1px solid var(--line);border-radius:10px;padding:10px 12px}.ix-ai-l h4{margin:0 0 4px}.ix-ai-l ul{margin:0;padding-left:18px}.ix-ai-l.g{background:#f0fdf4}.ix-ai-l.a{background:#fffbeb}
.ix-sg{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.ix-s{border:1px solid var(--line);border-radius:10px;padding:10px 12px;border-left:4px solid #f59e0b}
.ix-s.high{border-left-color:#e5484d}.ix-s.low{border-left-color:#9ca3af}.ix-s .im{font-size:10px;font-weight:700;letter-spacing:.06em;color:var(--muted);display:block}
#view .tbl tr[data-go]{cursor:pointer}
@media (max-width:900px){.ix-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}.ix-g2,.ix-sg{grid-template-columns:1fr}}
@media print{.ix-f,.tabs{display:none!important}.ix-c{break-inside:avoid}}
.ix-c,.ix-g2>*,.ix-body>*{min-width:0}
.ix-chart svg{max-height:250px}

/* ===== 2 Nov 2026 — price chart: arrow menu of group sizes + full and final price strip; transport part of tour; new city chip */
.cc-arrow{margin:10px 14px 0}
.cc-arrow .qs-steps{gap:2px}
.cc-arrow .qs-st{height:46px;flex-direction:column;gap:0;line-height:1.15;padding:0 12px 0 18px}
.cc-arrow .qs-l{font-size:12px;color:var(--muted)}
.cc-arrow .cc-ap{font-size:13px;font-weight:650;color:var(--ink)}
.cc-arrow .qs-st.on .qs-l{color:var(--brand-d)}
.cc-final{margin:8px 14px 12px;border:1px solid var(--line);border-radius:12px;background:#fbfcfe;padding:10px 12px}
.cc-fs-h{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:8px}
.cc-fs-h b{font-size:15px}
.cc-fs{display:grid;grid-template-columns:repeat(auto-fill,minmax(112px,1fr));gap:6px}
.cc-fs-c{display:flex;flex-direction:column;gap:2px;padding:7px 9px;border-radius:9px;background:#fff;border:1px solid var(--line);min-width:0}
.cc-fs-c small{color:var(--muted);font-size:11px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.cc-fs-c b{font-size:14px;font-variant-numeric:tabular-nums}
.cc-fs-c b small{display:block;font-weight:500;color:var(--muted)}
.cc-fs-t{background:var(--gray-l)}
.cc-fs-f{background:#dcfce7;border-color:#86d1ae;grid-column:span 2}
.cc-fs-f b{font-size:18px;color:#067647}
.cc-fs-n{margin-top:8px;display:flex;gap:6px;flex-wrap:wrap;align-items:center;font-size:13px}
.leg-box{display:flex;flex-direction:column;gap:6px;min-width:230px}
.leg-use{display:flex;align-items:center;gap:6px;flex-wrap:wrap}
.leg-use select{max-width:170px;height:32px}
.leg-use input,.leg-rate input{height:32px}
.leg-rate{display:flex;flex-direction:column;gap:2px}
.so-note{margin-top:12px;padding-top:10px;border-top:1px dashed var(--line)}
.city-new{display:flex;align-items:center;gap:6px;flex-wrap:wrap;margin:4px 0 0;padding:4px 8px;border-radius:8px;background:#fff8eb;border:1px solid #f5c26b;font-size:12px;color:#8a5a00;width:max-content;max-width:100%}
.city-new .btn{height:24px;padding:0 8px;font-size:12px}
@media (max-width:640px){.cc-arrow{margin:8px 8px 0}.cc-final{margin:8px}.cc-fs-f{grid-column:span 1}.cc-arrow .qs-st:not(.on) .qs-l{display:block}}
.cc-arrow .qs-steps li{flex:1 0 auto}
.cc-arrow .qs-st{min-width:96px;padding:0 14px 0 20px}
.cc-arrow .qs-steps li:first-child .qs-st{padding-left:12px}
/* 2 Nov (b): price chart space — tiles fill the rows, final strip in two columns, services to tick */
.cc-tiles{grid-auto-flow:row dense}
#catChart .cc-tr{grid-column:span 3}
@media (max-width:700px){#catChart .cc-tr{grid-column:1/-1}}
.cc-fs{display:grid;grid-template-columns:minmax(0,1fr) 230px;gap:10px;align-items:start}
.cc-fs-cats{display:grid;grid-template-columns:repeat(auto-fill,minmax(118px,1fr));gap:6px}
.cc-fs-sum{display:grid;grid-template-columns:1fr 1fr;gap:6px}
.cc-fs-sum .cc-fs-f{grid-column:1/-1}
.cc-svc-h{display:flex;gap:6px;align-items:baseline;flex-wrap:wrap;margin:12px 0 6px;padding-top:10px;border-top:1px dashed var(--line)}
.cc-svcs{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:6px}
.cc-svc{display:flex;align-items:center;gap:8px;padding:7px 10px;border:1px solid var(--line);border-radius:9px;background:#fff;font:inherit;font-size:13px;text-align:left;cursor:pointer;min-width:0}
.cc-svc:hover{border-color:var(--brand)}
.cc-cb{flex:none;width:18px;height:18px;border-radius:5px;border:1.5px solid #16a34a;background:#dcfce7;color:#067647;display:grid;place-items:center;font-size:12px;font-weight:700}
.cc-sn{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.cc-sn small{display:block;color:var(--muted);font-size:11px}
.cc-sa{flex:none;font-variant-numeric:tabular-nums;font-weight:600;text-align:right}
.cc-sa small{display:block;font-weight:400;color:var(--muted);font-size:10px}
.cc-svc.out{background:#fafafa;border-style:dashed}
.cc-svc.out .cc-cb{border-color:#9ca3af;background:#fff}
.cc-svc.out .cc-sn{color:var(--muted);text-decoration:line-through}
.cc-svc.out .cc-sa{color:#b45309;font-weight:500}
.cc-note{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-top:8px;font-size:13px}
.cc-note input{flex:1;min-width:220px;height:32px}
@media (max-width:820px){.cc-fs{grid-template-columns:1fr}}
/* 2 Nov (c): information on hover everywhere */
.cc-tipbox{white-space:pre-line!important}
.chk-tipd{cursor:help}
tr.chk-tipd{cursor:pointer}
/* 2 Nov (d): slim final price, tiles in one line (transport last), step 9 Include / not include table, 10-step bar in one line */
.cc-fpill{display:inline-flex;align-items:baseline;gap:6px;padding:4px 12px;border-radius:999px;background:#dcfce7;border:1px solid #86d1ae;color:#067647;white-space:nowrap}
.cc-fpill b{font-size:16px;font-variant-numeric:tabular-nums}
.cc-fpill small{font-size:11px;color:#2f7a52}
.cc-fs{grid-template-columns:minmax(0,1fr) auto}
.cc-fs-sum{grid-template-columns:repeat(2,minmax(110px,1fr))}
#catChart .cc-tiles{display:flex;flex-wrap:nowrap;overflow-x:auto;gap:8px;padding-bottom:4px;scrollbar-width:thin}
#catChart .cc-tiles .cc-tile{flex:1 0 132px}
#catChart .cc-tiles .cc-tr{flex:2 0 300px}
.inc-wrap{margin:0 14px;overflow-x:auto}
.inc-t{width:100%;border-collapse:separate;border-spacing:0;font-size:13px}
.inc-t th,.inc-t td{padding:6px 8px;border-bottom:1px solid var(--line);text-align:center;white-space:nowrap}
.inc-t thead th{position:sticky;top:0;background:var(--gray-l);font-weight:500}
.inc-t thead th b{font-size:14px}
.inc-t thead th.inc-ch{background:#fef3c7}
.inc-t tbody th,.inc-t tfoot th{text-align:left;font-weight:500;position:sticky;left:0;background:#fff;min-width:200px;max-width:280px;white-space:normal;z-index:1}
.inc-t tbody th small{display:block;color:var(--muted);font-weight:400;font-size:11px}
.inc-n{display:block;overflow:hidden;text-overflow:ellipsis}
.inc-cat th{background:var(--brand-ll,#eef0ff)!important;color:var(--brand-d,#3b2fb5);font-size:12px;font-weight:650!important;text-transform:uppercase;letter-spacing:.03em;padding:4px 8px}
.inc-b{display:inline-flex;flex-direction:column;align-items:center;gap:1px;min-width:70px;padding:4px 6px;border-radius:8px;border:1px solid #86d1ae;background:#effaf4;font:inherit;cursor:pointer}
.inc-b:hover{filter:brightness(.97)}
.inc-b .inc-k{font-weight:700;color:#067647;font-size:13px}
.inc-b small{font-size:11px;color:#2f7a52;font-variant-numeric:tabular-nums}
.inc-b.off{border:1px dashed #f5a3a3;background:#fff5f5}
.inc-b.off .inc-k{color:#b42318}
.inc-b.off small{color:#b42318}
.inc-c.na{color:var(--muted)}
.inc-note input{width:100%;min-width:76px;height:28px;font-size:12px}
.inc-fin td{font-variant-numeric:tabular-nums;color:#067647}
.inc-fin td b{font-size:13px}
.inc-fin td small{display:block;color:var(--muted)}
.inc-fin th{color:#067647;font-weight:650!important}
/* 10 steps on one line: each step as wide as its name, nothing cut */
.qs-bar .qs-steps li{flex:1 1 auto;min-width:max-content}
.qs-bar .qs-st{padding:0 10px 0 17px;gap:5px;font-size:12.5px}
.qs-bar .qs-st .qs-l{overflow:visible;text-overflow:clip}
.qs-bar .qs-steps li:first-child .qs-st{padding-left:10px}
@media (max-width:1500px){.qs-bar .qs-st{font-size:12px;padding:0 8px 0 15px}.qs-bar .qs-modes button{padding:0 9px}}
@media (max-width:1380px){.qs-bar .qs-st:not(.on) .qs-l{display:none}.qs-bar .qs-steps li{min-width:0}}
/* 10 steps still on one line on laptop screens: the "to check" count moves into the colour + hover box, view buttons get short names */
@media (max-width:1700px){.qs-bar .qs-st .qs-c{display:none}.qs-bar .qs-modes .qs-ml{display:none}.qs-bar .qs-modes .qs-ms{display:inline}}
/* 2 Nov (e): the pax row stays on top while scrolling — a pinned copy of the table head under the step bar (js/cityadd.js) */
.sticky-head{position:fixed;z-index:14;overflow:hidden;background:var(--gray-l);border:1px solid var(--line);border-top:0;border-radius:0 0 10px 10px;box-shadow:0 6px 14px rgba(16,24,40,.10)}
.sticky-head table{margin:0;border-collapse:separate;border-spacing:0;table-layout:fixed}
.sticky-head thead th{position:static!important;box-sizing:border-box}
/* v171 (owner 2 Nov) transport "club both": parts of the tour + one card per vehicle group */
.tp-parts{display:flex;flex-wrap:wrap;gap:8px 14px;align-items:center;padding:10px 14px;margin:6px 0 10px;border:1px solid var(--line);border-radius:10px;background:var(--brand-ll)}
.tp-parts>b{font-size:13px}
.tp-part{display:flex;gap:6px;align-items:center}
.tp-part input{height:30px;width:190px}
.tp-part input.tp-days{width:120px}
.tp-part .tp-type{height:30px;max-width:110px}
.tp-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(330px,1fr));gap:10px}
.tp-card{border:1px solid var(--line);border-radius:12px;background:var(--panel);padding:10px 12px;display:flex;flex-direction:column;gap:6px}
.tp-card.miss{border-color:#f5c26b}
.tp-h{display:flex;align-items:baseline;gap:8px;flex-wrap:wrap}
.tp-h>small{color:var(--muted)}
.tp-line{display:grid;grid-template-columns:96px 1fr;gap:4px 8px;align-items:center;padding:7px 8px;border-radius:9px;background:var(--gray-l)}
.tp-line.miss{background:var(--amber-l)}
.tp-pn{grid-row:span 2;display:flex;flex-direction:column;line-height:1.25;font-size:12px;align-self:start}
.tp-pn b{color:var(--brand);font-size:12px}
.tp-pn span{color:var(--ink);font-weight:600;overflow-wrap:anywhere}
.tp-pn small{color:var(--muted)}
.tp-veh{display:flex;gap:6px;align-items:center;font-weight:600;font-size:13px;min-width:0}
.tp-veh select{height:30px;min-width:0;flex:1}
.tp-veh .tp-n{width:54px;height:30px}
.tp-rate{display:flex;gap:6px;align-items:center;grid-column:2}
.tp-rate input{height:30px;width:120px}
.tp-rate small{color:var(--muted);font-size:11px}
.tp-msg{grid-column:2;font-size:11.5px}
.tp-msg .vr{display:inline}
.tp-same{color:var(--muted)}
.tp-tot{display:flex;flex-wrap:wrap;align-items:center;gap:6px 10px;border-top:1px dashed var(--line);padding-top:7px;font-size:13px}
.tp-tot>b{font-size:15px}
.tp-per{display:flex;flex-wrap:wrap;gap:4px;width:100%}
@media (max-width:560px){.tp-grid{grid-template-columns:1fr}.tp-part input{width:140px}}
.tp-parts.tp-off{background:transparent;border-style:dashed;padding:6px 12px}
.tp-line.tp-one{grid-template-columns:1fr}
.tp-line.tp-one .tp-rate,.tp-line.tp-one .tp-msg{grid-column:1}
.tp-x{border:0;background:transparent;color:var(--muted);font-size:18px;line-height:1;padding:0 4px;cursor:pointer;border-radius:6px}
.tp-x:hover{background:var(--gray-l);color:var(--ink)}
.tp-hid{display:flex;flex-wrap:wrap;gap:6px;align-items:center;margin-top:8px}
.tp-hid small{color:var(--muted)}
/* v172 slim parts line */
.tp-parts{gap:6px 10px;padding:6px 10px;margin:4px 0 8px}
.tp-part{gap:4px;padding:2px 4px 2px 2px;border:1px solid var(--line);border-radius:999px;background:var(--panel)}
.tp-part i{font-style:normal;font-weight:700;font-size:11.5px;color:#fff;background:var(--brand);border-radius:999px;min-width:20px;height:20px;display:inline-flex;align-items:center;justify-content:center}
.tp-part input{height:26px;width:170px;border:0;background:transparent;padding:0 4px;font-size:13px}
.tp-part input.tp-days{width:58px;border-left:1px solid var(--line);border-radius:0}
.tp-part input:focus{outline:2px solid var(--brand-l);border-radius:6px}
.tp-part .tp-x{font-size:16px}
/* ===== v173 (owner 2 Nov): one theme everywhere — arrows like the sample, one "engaged" colour (royal blue), room under tables */
:root{--engage:#1d4ed8;--engage-d:#1e3a8a;--engage-l:#e3eaff}
/* step arrows: real chevrons with a border, colour = status (green done · amber needs a look · red problem · grey not started), engaged = royal-blue border */
.qs-steps{gap:3px}
.qs-st{position:relative;isolation:isolate;--c:#c4c8cf;--bgc:#f4f5f7;background:var(--c)!important;color:var(--ink)}
.qs-st::before{content:"";position:absolute;inset:1.5px;z-index:-1;background:var(--bgc);clip-path:inherit}
.qs-st.green{--c:#5cb85c;--bgc:#e7f6e2}.qs-st.amber{--c:#e0a526;--bgc:#fdf1cc}.qs-st.red{--c:#e06060;--bgc:#fde4e4}.qs-st.grey{--c:#c4c8cf;--bgc:#f4f5f7}
.qs-st.on{--c:var(--engage)!important;box-shadow:none;font-weight:700}
.qs-st.on::before{inset:2.5px}
.qs-n{width:auto;height:auto;border-radius:0;background:none!important;color:var(--ink);font-size:inherit;font-weight:600;display:inline}
.qs-st.on .qs-n{outline:none}
.qs-st .qs-l,.qs-st.on .qs-l,.cc-arrow .qs-st.on .qs-l{color:var(--ink)}
.qs-st.on .qs-l,.qs-st.on .qs-n{color:var(--engage-d)}
/* engaged (selected) buttons — the same royal blue everywhere */
.qs-modes button.on,.rc2-mg .seg button.on,.pills button.on,body:not(.ui-classic) .pills button.on,.mail .folders button.on,.mx-heads button.on,.cw-f button.on,.qq-pills .btn.on,.ex-chip.on{background:var(--engage)!important;border-color:var(--engage)!important;color:#fff!important;font-weight:600}
.seg input:checked+span{border-color:var(--engage);background:var(--engage);color:#fff}
.tabs button.on{color:var(--engage);border-bottom-color:var(--engage)}
.nav a.on,body:not(.ui-classic) .nav a.on{background:var(--engage-l)!important;color:var(--engage-d)!important;box-shadow:inset 3px 0 0 var(--engage)}
.ds-c.on{border-color:var(--engage);background:var(--engage);box-shadow:inset 4px 0 0 var(--c),0 0 0 2px var(--engage-l)}
.ds-c.on b{color:#fff}.ds-c.on span{color:#dbe4ff}
.ds-c.all.on{box-shadow:0 0 0 2px var(--engage-l)}
/* room under every scrolling table, so the scroll bar never sits on the last row */
.tbl-wrap,.cc-wrap,.inc-wrap{padding-bottom:12px}
.ds-c.on{color:#fff}
/* v174 invoice / proforma: extra services of the tour */
.ix-c{white-space:nowrap;vertical-align:top}
.ix-t{display:inline-flex;gap:5px;align-items:center;font-size:12.5px;cursor:pointer;margin:6px 0 0}
tr.ix-on>td{background:var(--engage-l)}
.ix-box{display:flex;flex-wrap:wrap;gap:6px;align-items:center;margin-top:6px}
.ix-box select{height:30px;max-width:190px}
.ix-box label{display:inline-flex;gap:5px;align-items:center;font-size:12px;margin:0;color:var(--muted)}
.ix-box input{width:110px;height:30px}
.ix-pf{color:var(--green);font-weight:600}
/* v174 work-flow arrow bar on every main page + tour steps (wf.js) */
.wf-bar,.wf-tour{display:flex;align-items:center;gap:10px;margin:0 0 14px;padding:7px 10px;background:var(--panel);border:1px solid var(--line);border-radius:12px;box-shadow:var(--sh)}
.wf-tour{margin:0;padding:0;border:0;box-shadow:none;background:none}
.wf-t{flex:none;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);writing-mode:horizontal-tb}
.wf-bar .qs-steps,.wf-tour .qs-steps{flex:1}
.wf-bar .qs-steps li,.wf-tour .qs-steps li{flex:1 1 auto;min-width:max-content}
.wf-bar .qs-st,.wf-tour .qs-st{height:38px;font-size:12.5px;padding:0 10px 0 17px;gap:5px}
.wf-tour .qs-st{height:44px;flex-direction:column;gap:0;line-height:1.15}
.wf-tour .qs-st .qs-n{display:none}
.wf-tour .wf-d{font-size:10.5px;color:var(--muted);font-weight:500;max-width:150px;overflow:hidden;text-overflow:ellipsis}
.wf-bar .qs-steps li:first-child .qs-st,.wf-tour .qs-steps li:first-child .qs-st{padding-left:10px}
.wf-pop{display:grid;gap:14px}
.wf-how ol{margin:6px 0 0;padding-left:20px;display:grid;gap:4px}
.wf-miss ul{margin:6px 0 0;padding:0;list-style:none;display:grid;gap:4px;max-height:46vh;overflow:auto}
.wf-miss li a{display:block;padding:6px 9px;border:1px solid var(--line);border-radius:8px;color:var(--ink);background:#fbfcfe}
.wf-miss li a:hover{border-color:var(--engage);background:var(--engage-l)}
.wf-miss li.late a{border-color:#f3b4b4;background:#fff5f5}
@media (max-width:1300px){.wf-bar .qs-st:not(.on) .qs-l{display:none}.wf-bar .qs-steps li{min-width:0}.wf-t{display:none}}
@media (max-width:900px){.wf-tour .qs-st:not(.on) .qs-l,.wf-tour .qs-st:not(.on) .wf-d{display:none}.wf-tour .qs-st:not(.on) .qs-n{display:inline}.wf-tour .qs-steps li{min-width:0}}
@media print{.wf-bar,.wf-tour{display:none!important}}
/* v175 transport Part 1 editable + mixed transport note in the rate chart */
.tp-veh select[data-p1veh]{height:30px;min-width:0;flex:1;max-width:220px}
.tp-cnt{display:inline-flex;align-items:center;border:1px solid var(--line);border-radius:8px;background:var(--panel);overflow:hidden;flex:none}
.tp-cnt input{width:40px;height:28px;border:0;text-align:center;padding:0;-moz-appearance:textfield}
.tp-cnt input::-webkit-inner-spin-button,.tp-cnt input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}
.tp-pm{border:0;background:var(--gray-l);width:26px;height:28px;cursor:pointer;font-size:15px;line-height:1;color:var(--ink2)}
.tp-pm:hover{background:var(--engage-l);color:var(--engage)}
.rc2-mix{font-size:11.5px;color:var(--ink2);background:var(--engage-l);border-radius:7px;padding:4px 7px;margin-top:4px;line-height:1.35}
.tp-veh{flex-wrap:wrap}
.tp-veh select[data-p1veh]{min-width:140px;flex:1 1 140px}
.tp-veh .vt-b{flex:none}
/* ---- tour page (v176): booking page = one page per tour, 12 tabs, Work view (folded rows) or Tabs view, money panel in view ---- */
.tpg{display:grid;grid-template-columns:minmax(0,1fr) 290px;gap:16px;align-items:start;margin-top:4px}
.tpg-main{display:flex;flex-direction:column;gap:8px;min-width:0}
.tpg-top{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:2px}
.tpg-tt{font-weight:700;font-size:15px}
.tpg-modes{margin-left:auto}
.tpg a.qs-row{text-decoration:none;color:var(--ink);min-height:46px;padding:8px 16px}
.tpg-open{background:var(--panel);border:2px solid var(--engage);border-radius:var(--r);box-shadow:0 0 0 3px var(--engage-l);padding:12px 14px 16px;min-width:0}
.tpg-oh{display:flex;align-items:center;gap:12px;margin:2px 2px 12px}
.tpg-oh .qs-rn{font-size:15px}
.tpg-open.green .tpg-oh .qs-dot{background:#16a34a}.tpg-open.amber .tpg-oh .qs-dot{background:#d97706}.tpg-open.red .tpg-oh .qs-dot{background:#dc2626}
.tpg-ob{min-width:0}
.tpg-ob>.grid:first-child,.tpg-ob>.card:first-child{margin-top:0}
.tpg-side{position:sticky;top:72px;min-width:0}
.tpg-panel .card-b{padding:16px}
.tpg-ph{font-weight:700;font-size:15px}
.tpg-ms{border-top:1px solid var(--line2);margin-top:10px;padding-top:8px}
.tpg-m{display:flex;justify-content:space-between;gap:10px;padding:4px 0;font-size:14px}
.tpg-chk{margin-top:12px;border:1px solid #f0b4b4;background:#fdf1f1;border-radius:10px;padding:10px 12px}
.tpg-ct{font-weight:700;margin-bottom:4px}
.tpg-chk a{display:block;color:var(--ink);font-size:13px;line-height:1.35;padding:4px 0;text-decoration:none;border-top:1px dashed #f3cccc}
.tpg-chk a:first-of-type{border-top:0}
.tpg-chk a.hi{color:#b42318;font-weight:600}
.tpg-chk a.more{color:var(--muted)}
.tpg-chk a:hover{color:var(--engage)}
.tpg-ok{margin-top:12px;border:1px solid #b7e1c1;background:#effaf2;border-radius:10px;padding:10px 12px;font-weight:600;color:#166534}
.tpg-next{margin-top:12px}
.tpg-next:empty{display:none}
.tpg-next .btn{width:100%;justify-content:center}
.tpg-rep{display:block;margin-top:12px;font-size:13px;text-align:center}
.tpg-tabs{flex:1;min-width:0;overflow-x:auto;flex-wrap:nowrap;margin:0}
.tpg-tabs button{white-space:nowrap;display:inline-flex;align-items:center;gap:6px}
.tpg-d{width:8px;height:8px;border-radius:50%;background:#c4c8d2;display:inline-block}
.tpg-tabs button.green .tpg-d{background:#16a34a}.tpg-tabs button.amber .tpg-d{background:#d97706}.tpg-tabs button.red .tpg-d{background:#dc2626}
.tpg-tabs+.tpg-modes{margin-left:0}
.tpg-tabs ~ .tpg-slot,.tpg-tabs-slot{margin-top:4px}
@media (max-width:1180px){.tpg{grid-template-columns:1fr}.tpg-side{position:static;order:-1}}
@media (max-width:640px){.tpg-top .muted{display:none}.tpg-open{padding:10px 10px 14px}.tpg a.qs-row .qs-go{display:none}}
@media print{.tpg-side,.tpg-top,.tpg a.qs-row{display:none!important}.tpg{display:block}.tpg-open{border:0;box-shadow:none;padding:0}}
.tpg-fold{margin-top:16px}
.tpg-fold>summary{display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding:12px 16px;cursor:pointer;list-style:none}
.tpg-fold>summary::-webkit-details-marker{display:none}
.tpg-fold>summary::after{content:'▸';color:var(--muted);margin-left:4px}
.tpg-fold[open]>summary::after{content:'▾'}
.tpg-fold>summary .sp{flex:1}
.tpg-fold[open]>summary{border-bottom:1px solid var(--line2)}
.tpg-gs #gsCard>.card-b{padding:12px 16px}
/* owner's sample colours: open section light-blue tint, next-step button light blue with a blue border */
.tpg-open{background:#f2f7fd;border-color:#3b74c4;box-shadow:none}
.tpg-open .tpg-ob>.card,.tpg-open .tpg-ob>.grid>.card,.tpg-open .tpg-ob .card{background:var(--panel)}
.tpg-next .btn.primary{background:#e3eefb;color:var(--ink);border:2px solid #3b74c4;font-weight:600}
.tpg-next .btn.primary:hover{background:#d4e5fa}
.tpg-next .btn.primary svg{color:#3b74c4}
.tpg-ob .card-h{flex-wrap:wrap;row-gap:6px}.tpg-ob .form-grid>*{min-width:0}.tpg-ob .form-grid input{max-width:100%}
@media (max-width:640px){.tpg-oh{flex-wrap:wrap;gap:4px 10px}.tpg-oh .qs-rn{min-width:0;flex:1}.tpg-oh .qs-rs{flex-basis:100%;order:3;white-space:normal;padding-left:22px}}
/* guest adjustment (v177) */
.rc2-mg.gadj{border-top:1px dashed var(--line);margin-top:6px;padding-top:10px;flex-direction:column;align-items:stretch;gap:8px}
.gadj-one summary{cursor:pointer;color:var(--engage)}
.gadj-one .tbl-wrap{margin-top:6px}
.mg-card .rc2-mg.gadj>div:first-child>b{display:inline;font-size:14px}
/* sharing + follow-ups (v178) */
.sh2-sec{font-weight:700;font-size:13px;color:var(--engage-d);margin:12px 0 6px;padding-top:10px;border-top:1px solid var(--line2)}
.sh2-sec:first-child{border-top:0;margin-top:0;padding-top:0}
.sh2-new{background:#f2f7fd;border:1px solid #c9dbf3;border-radius:10px;padding:10px 12px;margin-top:8px}
.sh2-docs{display:flex;flex-wrap:wrap;gap:8px 18px}.sh2-docs label{display:flex;align-items:center;gap:6px;font-size:13px}
.sh2-info{margin-top:8px;background:var(--engage-l);border-radius:8px;padding:7px 10px}
.sh2-later{margin-top:10px;display:flex;flex-wrap:wrap;gap:8px 14px;align-items:center;background:#fff8eb;border:1px solid #f5d79e;border-radius:10px;padding:8px 12px}
.fu-item{border-left:3px solid #3b74c4;padding:4px 0 4px 10px;margin:0 0 10px;font-size:13px}.fu-item .fu-h{color:var(--muted);font-size:12px;margin-bottom:2px}.fu-item .fu-h b{color:var(--ink)}
/* proforma terms + revisions (v179) */
.pr2-note{background:#fff8eb;border:1px solid #f5d79e;border-radius:10px;padding:8px 12px;margin-bottom:10px;font-size:13px}
.pr2-terms{background:#f2f7fd;border:1px solid #c9dbf3;border-radius:10px;padding:0 12px 10px;margin-top:12px}
/* booking task cards (v180) */
.bk-top{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-bottom:10px}
.bk-card{margin-bottom:10px}
.bk-card>summary{display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding:12px 16px;cursor:pointer;list-style:none}
.bk-card>summary::-webkit-details-marker{display:none}
.bk-card>summary::after{content:'▸';color:var(--muted);margin-left:auto}
.bk-card[open]>summary::after{content:'▾'}
.bk-card[open]>summary{border-bottom:1px solid var(--line2)}
.bk-card.green>summary .qs-dot{background:#16a34a}.bk-card.amber>summary .qs-dot{background:#d97706}.bk-card.red>summary .qs-dot{background:#dc2626}
.bk-card>summary .sp{flex:1}
.bk-tbl select{height:30px;width:auto;max-width:170px}.bk-in{height:30px;width:110px}
.bk-late{color:#b42318;font-weight:600}
.bk-tbl td:first-child{min-width:190px}.bk-tbl select.bk-stage{max-width:150px}.bk-tbl select.bk-act{max-width:96px}.bk-in{width:96px}
/* rules, signatures, mail linking (v181) */
.qs-st.passed{opacity:.75}.qs-st.passed .qs-l::after{content:' ✓';color:#16a34a}
.sg-grid{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(0,1fr);gap:18px}@media (max-width:900px){.sg-grid{grid-template-columns:1fr}}
.sg-prev{white-space:pre-wrap;background:#f2f7fd;border:1px solid #c9dbf3;border-radius:10px;padding:10px 12px;font-family:inherit;font-size:13px;line-height:1.5;min-height:40px;margin:0}
.ml-bar{display:flex;flex-wrap:wrap;gap:8px;align-items:center;background:#f2f7fd;border:1px solid #c9dbf3;border-radius:10px;padding:8px 12px;margin:0 0 12px;font-size:13px}.ml-bar select{width:auto;max-width:360px;height:30px}
/* Part 7 (v182): change group, cancel, close, Today */
.c7-bar{display:flex;flex-wrap:wrap;gap:8px;align-items:center;background:var(--panel);border:1px solid var(--line);border-radius:var(--r);padding:10px 14px;margin-bottom:12px}
.c7-bar .sp{flex:1}
.today-list{display:flex;flex-direction:column}
.today-i{display:flex;gap:12px;align-items:center;padding:8px 16px;border-top:1px solid var(--line2);color:var(--ink);text-decoration:none;font-size:13px}
.today-i:hover{background:#f2f7fd}
.today-w{flex:none;min-width:150px;font-weight:600}
.today-i.red .today-w{color:#b42318}.today-i.amber .today-w{color:#9a5b00}.today-i.blue .today-w{color:#1d4ed8}
@media (max-width:640px){.today-i{flex-direction:column;align-items:flex-start;gap:2px}.today-w{min-width:0}}
/* AI tools on the email message (v182) */
.ai-lab{display:flex!important;align-items:center;gap:10px;flex-wrap:wrap}.ai-tools{display:inline-flex;gap:6px;align-items:center;margin-left:auto}
.ai-tools .ai-btn{position:static!important;background:#e3eefb;border:1px solid #3b74c4;color:var(--ink)}
.ai-tools select{font-weight:500}
/* v183 quotation "What now?" box (flow.js whatNow) */
.wn-card{margin-bottom:14px;border:1.5px solid var(--engage);background:var(--engage-l)}
.wn-top{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.wn-k{font-weight:700;font-size:15px;color:var(--engage-d)}
.wn-steps{flex:1;min-width:0;display:flex;gap:3px;list-style:none;margin:0;padding:0}
.wn-steps li{flex:1 1 auto;min-width:max-content}
.wn-steps .qs-st{height:32px;font-size:12px;padding:0 10px 0 16px;cursor:default}
.wn-steps li:first-child .qs-st{padding-left:10px}
.wn-msg{margin:10px 0 0;font-size:14px;line-height:1.5}
.wn-btns{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-top:10px}
.wn-btns .btn.primary{font-size:14px;padding:0 16px;height:38px}
.wn-why{margin-left:auto}
@media (max-width:900px){.wn-steps .qs-st:not(.on) .qs-l{display:none}.wn-steps li{min-width:0}}
/* v184 invoice editor: Rate × Unit = Total */
#il td input[data-l$=".rate"],#il td input[data-l$=".qty"]{height:32px}
/* v185 proforma: final group box (pi3.js) */
.pi3-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px 12px}
.pi3-grid label{display:flex;flex-direction:column;gap:3px;font-size:12.5px;color:var(--muted);margin:0}
.pi3-grid input{height:34px}
.pi3-box{margin-top:12px;display:grid;gap:8px}
.pi3-ok{color:var(--green);font-weight:600}.pi3-warn{color:var(--red);font-weight:600}
.pi3-lines{border:1px solid var(--line);border-radius:10px;overflow:hidden}
.pi3-lines>div{display:grid;grid-template-columns:1fr auto 110px;gap:10px;padding:6px 10px;border-top:1px solid var(--line2);font-size:13px}
.pi3-lines>div:first-child{border-top:0}.pi3-lines>div span:nth-child(2){color:var(--muted);white-space:nowrap}.pi3-lines>div b{text-align:right}
.pi3-lines .pi3-t{background:var(--engage-l)}
.pi3-ch{background:var(--amber-l);border:1px solid #f5c26b;border-radius:10px;padding:8px 10px;font-size:13px}
@media (max-width:560px){.pi3-grid{grid-template-columns:repeat(2,1fr)}}
/* v186 simpler pages (simple.js): More ▾ menu, Today grouped */
.simple-hide{display:none!important}
.more-wrap{position:relative;display:inline-flex}
.more-pop{display:none;position:absolute;right:0;top:calc(100% + 6px);z-index:60;min-width:230px;background:var(--panel);border:1px solid var(--line);border-radius:12px;box-shadow:var(--sh-lg);padding:6px;flex-direction:column;gap:2px}
.more-wrap.open .more-pop{display:flex}
.more-pop>*{width:100%;justify-content:flex-start;border:0!important;background:none!important;box-shadow:none!important;color:var(--ink)!important;height:36px;border-radius:8px;text-align:left}
.more-pop>*:hover{background:var(--engage-l)!important}
.more-pop select{border:1px solid var(--line)!important}
.today-g{display:grid;gap:6px;padding:4px 14px 12px}
.today-grp{border:1px solid var(--line);border-radius:10px;background:var(--panel)}
.today-grp>summary{display:flex;align-items:center;gap:10px;padding:8px 12px;cursor:pointer;list-style:none}
.today-grp>summary::-webkit-details-marker{display:none}
.today-grp .today-n{min-width:28px;height:24px;border-radius:999px;display:inline-grid;place-items:center;font-weight:700;font-size:12.5px;color:#fff;background:#9ca3af}
.today-grp.red .today-n{background:#dc2626}.today-grp.amber .today-n{background:#d97706}.today-grp.blue .today-n{background:var(--engage)}
.today-grp>summary .muted{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}
.today-grp .today-list{max-height:320px;overflow:auto;border-top:1px solid var(--line2)}
/* v187 simpler round 2 */
.simple-one{grid-template-columns:1fr!important}
.more-wrap.docs{display:flex;width:100%}
.more-wrap.docs>.more-b{width:100%;justify-content:center}
.more-wrap.docs .more-pop{left:0;right:0;min-width:0}
/* v188 long lists + quick quotation cards */
.simple-pg{display:none!important}
.simple-more{display:block;margin:12px auto;min-width:240px}
.qq-more{width:100%}.qq-more>.more-b{width:100%;justify-content:center}.qq-more .more-pop{left:0;right:0;min-width:0}

/* v189 — proforma / invoice parts, other-expenses popup, separate quotation lines */
.tbl tr.ix-sec td{background:#f2f7fd;border-top:1.5px solid #3b74c4;padding-top:8px;padding-bottom:8px}
.tbl tr.ix-sec .ix-addx{margin-left:10px;background:#eaf2fd;border:1px solid #3b74c4;color:#1d4ed8}
.ox-tbl input:not([type=checkbox]),.ox-tbl select{height:30px}
.ox-tbl td:nth-child(2) input{width:100%;min-width:220px}
.ox-tbl tr.ox-g td{background:#f6f8fb;font-weight:600;font-size:12px;color:#475569;padding-top:7px;padding-bottom:7px}
.ox-tbl tr.ox-have td{opacity:.6}
.ox-new{display:grid;grid-template-columns:2fr 1fr 1fr .6fr 1fr 1.4fr;gap:6px}
.ox-new input,.ox-new select{height:32px}
@media (max-width:760px){.ox-new{grid-template-columns:1fr 1fr}}
.cost-tbl .only-b.sep{background:#fff7ed;border-color:#f59e0b;color:#92400e}
.so-sep{border:1px solid #d6e2f3;background:#f2f7fd;border-radius:8px;padding:8px 10px;margin-bottom:10px;display:grid;gap:6px}
.so-sep label{display:flex;align-items:baseline;gap:8px;flex-wrap:wrap;margin:0}
.so-sep input[type=radio]{width:16px;height:16px;flex:0 0 auto;margin:0;accent-color:#1d4ed8}
.so-sep label .muted{flex-basis:100%;padding-left:24px}
/* v190 — HSN/SAC list */
.hsn-tbl input,.hsn-tbl select{width:100%;height:32px}
/* v191 — chart adjustment strip, final rows, cost chart popup */
.cc-t tr.cc-adj th,.cc-t tr.cc-adj td{background:#f2f7fd;border-top:1.5px solid #3b74c4;border-bottom:1.5px solid #3b74c4}
.cc-t tr.cc-adj .cc-adj-all{display:flex;gap:4px;margin-top:4px}
.cc-t tr.cc-adj .cc-adj-all select{width:auto;height:28px;padding:0 4px;font-size:12px}
.cc-t tr.cc-adj .cc-adj-all input{width:64px;height:28px}
.cc-t tr.cc-adj .cc-adj-in{width:100%;max-width:90px;height:28px;text-align:right;border-color:#3b74c4}
.cc-t tr.cc-finr td,.cc-t tr.cc-finr th{background:#eaf2fd}
.cc-t tr.cc-finr td b{color:#1d4ed8}
.cc-ro td{white-space:nowrap}
.c9-tabs{display:flex;gap:6px;margin-bottom:12px;border-bottom:1px solid var(--line);padding-bottom:8px;flex-wrap:wrap}
.c9-tabs button{border:1px solid var(--line);background:#fff;border-radius:8px;padding:6px 12px;cursor:pointer;font-weight:600}
.c9-tabs button.on{background:#eaf2fd;border-color:#1d4ed8;color:#1d4ed8}
.c9-tabs [data-c9full]{margin-left:auto}
.c9-sum{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}
.c9-sum>div{border:1px solid var(--line);border-radius:10px;padding:8px 10px;background:#fff;display:flex;flex-direction:column;gap:2px}
.c9-sum small{color:var(--muted);font-size:11.5px}
.c9-sum b{font-size:15px}
@media (max-width:760px){.c9-sum{grid-template-columns:1fr 1fr}}
.c9-cmp{margin-top:14px;border:1px solid var(--line);border-radius:10px;padding:8px 12px;background:#fff}
.c9-cmp summary{cursor:pointer}
.c9-cmp table{margin-top:8px}
.c9-paper{max-height:70vh;overflow:auto;border:1px solid var(--line);border-radius:10px}
.tpg-ccb{background:none;border:0;padding:0;cursor:pointer;font:inherit;font-size:13px;width:100%;color:var(--engage,#1d4ed8)}
.cc-ro td small{display:block;color:var(--muted);font-size:11px}

/* v192 — ONE step bar (the 7 steps of a tour). Arrows only for the steps; quotation parts and group sizes are plain tabs */
.jn-card{margin-bottom:14px}.jn-card .card-b{padding:10px 14px}
.jn-bar .wf-t{min-width:max-content}
.wn-top .jn-bar{flex:1;min-width:0}
/* quotation parts (Trip … Send): tabs with a coloured dot, no arrows, no numbers */
.qs-bar .qs-steps{gap:4px}
.qs-bar::before{content:"Parts";font-size:11px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);flex:none}
.qs-bar .qs-st,.qs-bar .qs-steps li:first-child .qs-st{clip-path:none!important;border-radius:8px!important;background:#fff!important;border:1px solid var(--line)!important;padding:0 10px!important;height:34px;gap:6px}
.qs-bar .qs-st::before{display:none}
.qs-bar .qs-st .qs-n{width:9px;height:9px;min-width:9px;font-size:0;border-radius:50%!important;outline:none!important;background:var(--c)!important}
.qs-bar .qs-st.grey .qs-n{background:#c4c8cf!important}
.qs-bar .qs-st.on{background:#eaf2fd!important;border-color:var(--engage,#1d4ed8)!important}
.qs-bar .qs-st:not(.on) .qs-l{display:inline!important}
/* group sizes in the price chart: plain pills */
.cc-arrow .qs-st,.cc-arrow .qs-steps li:first-child .qs-st{clip-path:none!important;border-radius:8px!important;background:#fff!important;border:1px solid var(--line)!important;padding:0 10px!important}
.cc-arrow .qs-st::before{display:none}
.cc-arrow .qs-st.on{background:#eaf2fd!important;border-color:var(--engage,#1d4ed8)!important}
.cc-arrow .qs-st.red{border-color:#e06060!important}

/* v193 — Trip details in groups; children; extra-bed ask; room rules */
.td-card{display:grid;gap:12px}
.td-sec{border:1px solid var(--line);border-radius:10px;padding:10px 12px 12px;background:#fff}
.td-h{font-size:11.5px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:#1d4ed8;margin-bottom:6px;display:flex;align-items:center;gap:10px}
.td-rule{font-size:12px;font-weight:600;text-transform:none;letter-spacing:0;margin-left:auto}
.ch-rows{display:grid;gap:6px;border:1px solid #d6e2f3;background:#f7faff;border-radius:8px;padding:8px 10px}
.ch-row{display:flex;gap:12px;align-items:center;flex-wrap:wrap}
.ch-row label{display:flex;gap:6px;align-items:center;font-size:12.5px;margin:0}
.ch-row select{width:auto;max-width:300px;height:30px}
.ch-row input{height:30px}
.xb-ask{border:1px solid #f1b2b2;background:#fdecec;border-radius:8px;padding:8px 10px;font-size:13px;display:grid;gap:6px}
.xb-ask.xb-ok{border-color:#b7e1b0;background:#eef9ea}
.xb-ask.xb-info{border-color:#d6e2f3;background:#f2f7fd}
.xb-row{display:flex;gap:10px;align-items:center;flex-wrap:wrap}
.xb-row>span{flex:1;min-width:180px;font-weight:600}
.xb-row label{display:flex;gap:6px;align-items:center;margin:0;font-size:12.5px}
.xb-row input{height:30px}
.rr-ages{display:flex;gap:16px;flex-wrap:wrap}
.rr-ages label{display:flex;gap:6px;align-items:center;font-size:13px}
.rr-ages input{width:64px;height:30px}
.dc-sub{font-size:11.5px;font-weight:700;color:#1d4ed8;margin:6px 0 4px;text-transform:uppercase;letter-spacing:.04em}
.dc-sub .muted{text-transform:none;letter-spacing:0;font-weight:500}
.dc-hotel .dc-grid select{height:36px;width:100%}
/* v194 — day block order: hotel + plan → also offer → hotel rates by room type → meals + meal rates → others */
.day-meta>.dm,.day-meta>.dc-rates,.day-meta>.meals,.day-meta>.meal-sum,.day-meta>.dc-meals{flex-basis:100%}
.dc-rates{margin:2px 0}
.dc-rates .dc-hotel-h .muted{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:520px}
.dc-meals{display:flex;gap:12px;align-items:flex-end;flex-wrap:wrap;border:1px solid var(--line);border-radius:10px;padding:8px 12px;background:var(--bg2,#fafbfd)}
.dc-meals .dc-ml{font-size:12.5px;font-weight:700;min-width:170px;display:flex;flex-direction:column}
.dc-meals .dc-ml small{font-weight:400;color:var(--muted)}
.dc-meals label{display:flex;flex-direction:column;gap:2px;font-size:12px;margin:0}
.dc-meals label small{color:var(--muted);font-size:11px}
.dc-meals input{width:110px;height:32px}
/* v195 — route strip in the quotation's top bar */
.qs-bar.has-rt{flex-wrap:wrap}
.qs-bar .rt-strip{flex-basis:100%;order:9;display:flex;gap:8px;align-items:stretch;border-top:1px solid var(--line);padding-top:7px;min-width:0}
.rt-n{display:flex;flex-direction:column;justify-content:center;min-width:72px;padding:0 4px}
.rt-n b{font-size:13px;color:#1d4ed8}.rt-n small{font-size:11px;color:var(--muted);max-width:110px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.rt-days{display:flex;gap:4px;overflow-x:auto;min-width:0;flex:1;scrollbar-width:thin;padding-bottom:2px}
.rt-d{flex:none;display:flex;flex-direction:column;align-items:flex-start;gap:0;padding:3px 10px;border:1px solid var(--line);border-radius:8px;background:#fff;cursor:pointer;font:inherit;line-height:1.25;max-width:230px;text-align:left}
.rt-d:hover,.rt-d:focus-visible{border-color:#1d4ed8;background:#f2f7fd;outline:none}
.rt-d small{font-size:10.5px;font-weight:700;color:#1d4ed8;letter-spacing:.03em}
.rt-d span{font-size:12.5px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:210px}
.rt-d i{font-style:normal;font-size:11px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:210px}
.rt-d.warn{border-color:#e0a526;background:#fffbeb}
@media print{.rt-strip{display:none}}
/* v196 — other expenses: Per person / Per group, Goes to tour price or invoice */
.ex-more{display:flex;gap:8px;align-items:flex-end}
.ex-more>summary{cursor:pointer;color:#1d4ed8;font-weight:600;align-self:center;list-style:none;padding:0 6px}
.ex-more[open]{display:flex;flex-wrap:wrap;gap:8px}
.ex-sepb{color:#92400e}
/* v197 — other expenses in one row: Category · Particulars · Rate · Unit · Calculation by · Part of · Total */
.ex-form2{display:flex;flex-wrap:wrap;gap:8px;align-items:flex-end}
.ex-form2 .ex-w{flex:1 1 220px}
.ex-form2 .ex-r input{width:110px}
.ex-form2 .ex-n input{width:72px}
.ex-form2 .ex-t b{display:block;min-width:90px;padding:3px 10px;line-height:1.4;border:1px solid #d6e2f3;border-radius:8px;background:#f2f7fd;color:#1d4ed8;text-align:right}
.ex-form2 .ex-more{flex-basis:100%;display:flex;gap:8px;flex-wrap:wrap;align-items:flex-end}
.ex-form2 .ex-more>summary{align-self:center}
/* v198 — other expenses: tidy two-row form + table (owner: "beautiful space management") */
.ex-form3{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:10px 12px;align-items:end;padding:12px 14px;border:1px solid #3b74c4;background:#f2f7fd;border-radius:10px}
.ex-form3 .ex-c1{grid-column:span 2}.ex-form3 .ex-c2{grid-column:span 4}
.ex-form3 .ex-f{display:flex;flex-direction:column;gap:4px;margin:0;min-width:0}
.ex-form3 .ex-f>span{font-size:11px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:#64748b}
.ex-form3 input,.ex-form3 select{height:36px!important;min-height:36px;width:100%;min-width:0;background:#fff;font-size:13.5px!important;padding:0 10px}
.ex-form3 input[type=number]{text-align:right}
.ex-form3 .ex-t b{display:flex;align-items:center;justify-content:flex-end;height:36px;padding:0 12px;border:1px solid #d6e2f3;border-radius:8px;background:#fff;color:#1d4ed8;font-size:15px}
.ex-form3 .ex-btns{display:flex;gap:6px;justify-content:stretch}.ex-form3 .ex-btns .btn{flex:1}
.ex-form3 .ex-add{background:#eaf2fd;border:1px solid #1d4ed8;color:#1d4ed8;font-weight:700;height:36px;padding:0 18px}
.ex-form3 .ex-add:hover{background:#dbe8fb}
.ex-form3 .ex-more{grid-column:1/-1;display:flex;flex-wrap:wrap;gap:10px 12px;align-items:end;border-top:1px dashed #c9d8ee;padding-top:8px}
.ex-form3 .ex-more:not([open]){padding-top:4px}
.ex-form3 .ex-more .ex-f{width:150px}
.ex-form3 .ex-more>summary{font-size:12px;color:#1d4ed8;font-weight:600;cursor:pointer;width:100%}
@media (max-width:900px){.ex-form3{grid-template-columns:repeat(2,minmax(0,1fr))}.ex-form3 .ex-c1,.ex-form3 .ex-c2{grid-column:1/-1}}
.ex-tblw{margin-top:12px}
.ex-tbl td{vertical-align:middle}.ex-tbl tr.on td{background:#eaf2fd}
.ex-tbl .icon-btn{width:28px;height:28px}
.ex-form.ex-form3>*{height:auto}.ex-form.ex-form3>.ex-btns{align-self:end}
.ex-form.ex-form3{grid-template-columns:1fr .75fr 1.2fr 1.35fr 1fr 1fr}
/* v199 — order: Category · What · Rate · Unit · Total | For · Goes to · Add */
.ex-form.ex-form3{grid-template-columns:1.2fr 2.2fr 1fr .8fr 1.1fr}
.ex-form3 .ex-c1{grid-column:span 1}.ex-form3 .ex-c2{grid-column:span 1}
.ex-form3 .ex-g{grid-column:span 1}
.ex-form3 .ex-btns{grid-column:span 3}
.ex-form3 .ex-btns .btn{flex:0 0 auto;min-width:140px}
@media (max-width:900px){.ex-form.ex-form3{grid-template-columns:1fr 1fr}.ex-form3 .ex-c1,.ex-form3 .ex-c2,.ex-form3 .ex-btns{grid-column:1/-1}}
/* v200 (owner 3 Nov 22:20) — read left to right: Category › What, then Rate × Unit = Total › For › Goes to › Add ("More" below).
   Laid out by the card's own width (container query), so it never runs off the card next to the price summary. */
.ex-card .card-b{container-type:inline-size}
.ex-form.ex-form3{grid-template-columns:minmax(66px,.9fr) minmax(50px,.55fr) minmax(76px,1fr) minmax(118px,1.15fr) minmax(118px,1.2fr) auto;gap:10px 18px}
.ex-form3 select[data-ex=per],.ex-form3 select[data-ex=sep]{padding:0 20px 0 8px}
.ex-form3 .ex-c1{grid-column:1 / 3}
.ex-form3 .ex-c2{grid-column:3 / -1}
.ex-form3 .ex-g,.ex-form3 .ex-btns{grid-column:auto}
.ex-form3 .ex-btns .btn{min-width:80px;padding:0 12px}
.ex-form3 .ex-f{position:relative}
.ex-form3 .ex-f:has([data-ex=rate])::after,.ex-form3 .ex-f:has([data-ex=units])::after{position:absolute;right:-14px;bottom:8px;font-size:15px;font-weight:700;color:#64748b}
.ex-form3 .ex-f:has([data-ex=rate])::after{content:'×'}
.ex-form3 .ex-f:has([data-ex=units])::after{content:'='}
@container (max-width:700px){
  .ex-form.ex-form3{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px 22px}
  .ex-form3 .ex-c1{grid-column:1 / 2}.ex-form3 .ex-c2{grid-column:2 / -1}
}
@container (max-width:460px){
  .ex-form.ex-form3{grid-template-columns:1fr 1fr;gap:10px 14px}
  .ex-form3 .ex-c1,.ex-form3 .ex-c2,.ex-form3 .ex-btns{grid-column:1 / -1}
  .ex-form3 .ex-f::after{display:none}
}
/* v201 — saved Other expenses in two parts: tour fee · invoice (extra) */
.ex-tbl tr.ex-part th{background:#f2f7fd;color:#1e3a8a;font-size:12.5px;text-align:left;border-top:2px solid #3b74c4;padding:7px 10px}
.ex-tbl tr.ex-part.inv th{background:#fff7e6;color:#92400e;border-top-color:#d97706}
.ex-tbl tr.ex-sub td{background:#f8fafc;font-size:12.5px;color:#334155;border-bottom:2px solid #e2e8f0}
.ex-tbl tr.ex-sub.inv td{background:#fffbf2}
.ex-tbl tr.ex-part th{text-transform:none;letter-spacing:0}.ex-tbl tr.ex-part th .muted{text-transform:none}
/* v202 (3 Nov 23:49): rate chart — vehicle cost block under the vehicle, cost cell with its parts */
.rc2-vt{margin-top:6px;border:1px solid #f3d5bf;background:#fff8f2;border-radius:8px;padding:5px 8px;font-size:11.5px;line-height:1.35;max-width:300px}
.rc2-vl{display:flex;justify-content:space-between;gap:10px;align-items:baseline;padding:1px 0}
.rc2-vl span{color:var(--text,#1f2937)}.rc2-vl small{color:var(--muted);font-size:10.5px}
.rc2-vl b{white-space:nowrap;font-weight:600}
.rc2-vl .badge{font-size:10px;padding:0 5px}
.rc2-vl.tot{border-top:1px dashed #f0c3a3;margin-top:3px;padding-top:3px}
.rc2-vl.tot b{color:#c2410c}
.rc2-vl.pp span,.rc2-vl.pp b{color:var(--muted);font-weight:500}
.rc2-vt .anc-chip{margin-top:4px}
.rc2-bad{color:var(--red,#dc2626)}
.rc2-cl{font-size:10.5px;color:var(--muted);text-transform:none;margin-bottom:1px}
.rc2-brk span{white-space:nowrap}.rc2-cg{border-top:1px dashed var(--line);margin-top:2px;padding-top:2px}
/* v202 (4 Nov): rate chart by pax = transport only; moved parts in the price chart; margin by group size */
.rc3-info{padding:8px 14px;font-size:13px;border-bottom:1px solid var(--line)}
.rc3t td{vertical-align:middle}
.rc3-veh{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.rc3-veh select{min-width:170px;max-width:240px}
.rc3-mix{font-size:11.5px;color:var(--muted);margin-top:4px}
.rc3t input.rc3-n{width:64px;text-align:right}.rc3t input.rc3-c{width:120px;text-align:right}
.rc3-bad{color:var(--red,#dc2626);font-size:11.5px;font-weight:600;margin-top:2px}
.rc3-tot{font-weight:700;font-size:14px}.rc3-pp{font-weight:700;font-size:15px;color:#c2410c}
.rc3-foc{font-size:11.5px;color:var(--muted);margin-top:4px}.rc3-foc input{width:56px;height:24px;padding:0 4px}
.rc3-note{padding:9px 14px;font-size:12.5px;color:var(--muted);border-top:1px solid var(--line)}
.cc-adj-ro{display:inline-block;background:#f3f4f6;border-radius:6px;padding:2px 8px;font-weight:600;color:#374151}
.cc-more{display:flex;flex-direction:column;gap:14px;padding:12px 14px;border-top:1px solid var(--line)}
.cc-more .rc2-try{flex-basis:auto}
.cc-supp{display:grid;gap:4px;width:100%;max-width:640px}.cc-supp>div{display:flex;justify-content:space-between;gap:12px;align-items:center;font-size:13px;padding:4px 0;border-bottom:1px dashed var(--line)}
.cc-rem-g{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:6px 12px;margin-top:6px}
.cc-rem-g label{display:flex;gap:6px;align-items:center;font-size:12px}.cc-rem-g label span{min-width:58px;color:var(--muted)}.cc-rem-g input{flex:1;height:28px}
.mk-t input{text-align:right}

.mg-card .rc2-mg.mk-box{display:block}.mk-box .tbl-wrap{margin-top:8px;max-width:640px}
/* v202 (4 Nov 00:22) — owner's design theme (CRM design theme.png): the open section = blue border + very light blue background, white boxes inside */
#view .card.qs-cur{border:2px solid #3b82f6;background:#f5f9ff;box-shadow:0 0 0 3px rgba(59,130,246,.10)}
#view .card.qs-cur>.card-h{background:transparent}
#view .card.qs-cur .tbl-wrap{background:#fff;border-radius:10px}
#view .card.qs-cur .rc2-mg{background:#fff}
.mg-card .rc2-mg.mk-box>div:first-child>b{display:inline;font-size:14px}
/* rate chart (transport only): a group without a vehicle rate = light red row, like "things to check" */
.rc3t tr:has(.rc3-bad) td{background:#fff7f7}
/* v204 (4 Nov): which group sizes go in the quotation — the question before sending */
.sp-quick{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:10px}
.sp-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:8px}
.sp-it{display:flex;align-items:center;gap:10px;border:1px solid var(--line,#e5e7eb);border-radius:10px;padding:9px 12px;background:#fff;cursor:pointer}
.sp-it.on{border:2px solid #3b82f6;background:#f5f9ff;padding:8px 11px}
.sp-it.enq:not(.on){border-style:dashed;border-color:#e0a526}
.sp-it input{width:18px;height:18px;flex:none;margin:0}
.sp-l{display:flex;flex-direction:column;flex:1;min-width:0;line-height:1.25}.sp-l small{color:var(--muted);font-size:11.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.sp-p{font-weight:700;white-space:nowrap}
.sp-n{margin-top:10px;color:var(--muted)}
.sp-row .small b{color:#1d4ed8}
/* v204: correcting a shared quotation under the same number — amber notice, like "needs a look" */
.wn-card.corr-card{border:2px solid #e0a526;background:#fffbeb}
/* v205: 📱 Add from phone — a message copied from someone's phone shows on the left with the app it came from */
.pf-dir{display:inline-flex;border:1px solid var(--line);border-radius:8px;overflow:hidden}.pf-dir button{border:0;background:#fff;padding:6px 12px;font:inherit;font-size:13px;cursor:pointer}
.pf-dir button.on{background:#eff6ff;color:#1d4ed8;font-weight:600;box-shadow:inset 0 0 0 1px #93c5fd}
.pf-note{margin-top:10px;background:#f5f9ff;border:1px solid #bfdbfe;border-radius:8px;padding:7px 10px;color:#1e3a8a}

/* v206 — @01 agent answers bar in IndiTalk */
.ab-bar{border:1px solid #dbe5f5;background:#f5f9ff;border-radius:10px;padding:8px 12px;margin:6px 0;font-size:13px}
.ab-bar:empty{display:none}
.ab-row{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.ab-sw{display:inline-flex;align-items:center;gap:5px;font-size:12.5px;cursor:pointer}
.ab-tours{display:flex;flex-wrap:wrap;gap:5px;margin-top:6px}
.ab-t{font-size:11.5px;background:#fff;border:1px solid #bfdbfe;color:#1d4ed8;border-radius:6px;padding:1px 7px;white-space:nowrap}
.ab-help{color:#64748b;margin-top:6px}
/* v207 — pax slots (FIT / Group) in the rate chart */
.rc3t .rc2-pax input{width:46px}
.rc4-tag{display:flex;gap:6px;align-items:center;margin-top:4px;flex-wrap:wrap}
.rc4-k{display:inline-block;font-size:10.5px;font-weight:800;letter-spacing:.3px;border-radius:5px;padding:1px 6px;border:1px solid}
.rc4-k.fit{color:#0f766e;background:#f0fdfa;border-color:#99f6e4}
.rc4-k.grp{color:#1d4ed8;background:#eff6ff;border-color:#bfdbfe}
.rc4-k.sp{color:#9a3412;background:#fff7ed;border-color:#fed7aa}
.rc4-opt{margin-top:5px;font-size:11.5px;line-height:1.35;color:#475569;display:flex;gap:6px;align-items:center;flex-wrap:wrap}
.ps-t input{width:64px}.ps-t select{min-width:110px}
/* v207 — Adjust row: click a group size to add its adjustment */
.cc-adj-btn{background:none;border:1px dashed transparent;border-radius:6px;padding:2px 6px;cursor:pointer;font:inherit;color:inherit;display:inline-flex;gap:4px;align-items:center}
.cc-adj-btn:hover{border-color:#93c5fd;background:#eff6ff}
.cc-adj-pen{font-size:11px;color:#3b82f6;opacity:.45}
.cc-adj-btn:hover .cc-adj-pen{opacity:1}
.adj-prev{margin:10px 0 2px;padding:8px 10px;background:#f5f9ff;border:1px solid #dbe5f5;border-radius:8px;font-size:13px}
.adj-k button{border:1px solid #cbd5e1;background:#fff;border-radius:6px;padding:5px 10px;font-weight:600;cursor:pointer}
.adj-k button.on{background:#2563eb;color:#fff;border-color:#2563eb}
/* v208: email conversations + Telegram invite in IndiTalk */
.ml-sub{font-weight:600;font-size:12.5px;margin-bottom:3px;opacity:.85}
.ml-txt{max-height:340px;overflow:auto;word-break:break-word}
#mlNote .ch-wa{background:#eff6ff;border-color:#bfdbfe}
#mlSub{width:100%}
.tg-qr svg{display:block;border:1px solid var(--line2);border-radius:8px;padding:6px;background:#fff}
/* v210: Expense list popup (quotation → Other expenses → 📋 Expense list) */
.el-tbl td{vertical-align:middle}.el-tbl input:not([type=checkbox]),.el-tbl select{height:30px;padding:3px 7px;font-size:13px}
.el-tbl td:nth-child(4) input{min-width:220px;width:100%}.el-ord{white-space:nowrap}.el-ord .icon-btn{width:22px;height:22px;font-size:10px;padding:0}.el-n{display:inline-block;min-width:18px;text-align:center;font-weight:700;color:var(--muted);font-size:12px}
.el-have td{background:#f3fbf5}.el-ok{display:block;color:#15803d;font-size:11px;margin-top:2px}
.el-sep.inv{background:#fff7e6;border-color:#f5c26b;color:#8a5300}
.el-new{display:grid;grid-template-columns:130px 1fr 120px 100px 130px auto;gap:8px}.el-new input,.el-new select{height:32px}
@media (max-width:820px){.el-new{grid-template-columns:1fr 1fr}}
.ex-tbl .ex-in{width:92px;height:28px;text-align:right;padding:2px 6px;font-size:13px}.ex-tbl .ex-inu{width:58px}
.ex-tbl tr.ex-need td{background:#fffbea}.ex-tbl tr.ex-need .ex-in[data-exr]{border-color:#f0b54a;background:#fff}.ex-needt{color:#b26a00;font-weight:600;font-size:12px}
