/* Layout: sticky top bar, one centred 1120px column; each view is a stack of sections. White-first, light yellow = the one action, deep yellow = in motion, muted red only for problems. */
:root {
  --surface: #FAFAF7; --raised: #FFFFFF; --sunken: #F0EFEA;
  --line: #DEDCD5; --line-strong: #85827A;
  --ink: #0E0E0E; --muted: #5C5A55;
  --accent: #FFE566; --accent-strong: #FFD83D; --accent-soft: #FFF7D1; --on-accent: #0E0E0E; --accent-edge: rgba(14,14,14,.14); --danger: #B42318; --danger-soft: #FDECEA;
  --yellow: #FFC20E; --yellow-soft: #FFF3C4; --on-yellow: #0E0E0E;
  --shadow-sm: 0 1px 2px rgba(14,14,14,.06); --shadow-pop: 0 12px 32px rgba(14,14,14,.12);
  --font-sans: "Geist", "Inter", system-ui, -apple-system, "Segoe UI", sans-serif;
  --font-mono: "Geist Mono", ui-monospace, "SF Mono", Menlo, monospace;
  --r-sm: 8px; --r-md: 12px; --r-lg: 20px;
}
@media (prefers-color-scheme: dark) { :root:not([data-theme="light"]) {
  --surface: #0E0E0E; --raised: #1A1A19; --sunken: #070707; --line: #2E2D2B; --line-strong: #85827A;
  --ink: #F7F6F2; --muted: #A9A69E; --accent: #FFE566; --accent-strong: #FFF0A0; --accent-soft: #2E2A10; --on-accent: #0E0E0E; --accent-edge: rgba(255,229,102,0); --danger: #F97066; --danger-soft: #3A1512;
  --yellow: #FFC20E; --yellow-soft: #3A2E05; --on-yellow: #0E0E0E;
  --shadow-sm: 0 1px 2px rgba(0,0,0,.4); --shadow-pop: 0 12px 32px rgba(0,0,0,.5); color-scheme: dark; } }
:root[data-theme="dark"] {
  --surface: #0E0E0E; --raised: #1A1A19; --sunken: #070707; --line: #2E2D2B; --line-strong: #85827A;
  --ink: #F7F6F2; --muted: #A9A69E; --accent: #FFE566; --accent-strong: #FFF0A0; --accent-soft: #2E2A10; --on-accent: #0E0E0E; --accent-edge: rgba(255,229,102,0); --danger: #F97066; --danger-soft: #3A1512;
  --yellow: #FFC20E; --yellow-soft: #3A2E05; --on-yellow: #0E0E0E;
  --shadow-sm: 0 1px 2px rgba(0,0,0,.4); --shadow-pop: 0 12px 32px rgba(0,0,0,.5); color-scheme: dark; }

* { box-sizing: border-box; }
[hidden] { display: none !important; }
body { background: var(--surface); color: var(--ink); font-family: var(--font-sans); font-size: 15px; line-height: 24px; -webkit-font-smoothing: antialiased; }
body::before { content: ""; position: fixed; inset: 0 0 auto; height: env(safe-area-inset-top, 0px); z-index: 10; background: var(--raised); }
h1, h2, h3 { margin: 0; text-wrap: balance; font-weight: 600; }
p { margin: 0; }
a { color: var(--ink); text-underline-offset: 3px; }
button, input, select, textarea { font: inherit; color: inherit; }
.mono { font-family: var(--font-mono); font-variant-numeric: tabular-nums; }
.muted { color: var(--muted); }
.small { font-size: 13px; line-height: 20px; }
:focus-visible { outline: 2px solid var(--ink); outline-offset: 2px; }
@media (prefers-reduced-motion: reduce) { * { transition: none !important; animation: none !important; } }

.wrap { max-width: 1120px; margin: 0 auto; padding-left: max(16px, env(safe-area-inset-left, 0px)); padding-right: max(16px, env(safe-area-inset-right, 0px)); }

/* Top bar */
.top { position: relative; z-index: 9; background: var(--raised); border-bottom: 1px solid var(--line); }
.top .bar { display: grid; grid-template-columns: auto 1fr auto; align-items: center; gap: 24px; min-height: 64px; padding-block: 10px; }
.top-cta { justify-self: end; }
@media (max-width: 720px) {
  .top .bar { grid-template-columns: 1fr auto; gap: 8px 16px; }
  nav.main { grid-column: 1 / -1; grid-row: 2; overflow-x: auto; flex-wrap: nowrap; margin-inline: -4px; scrollbar-width: none; }
  nav.main a { white-space: nowrap; }
}
.brand { display: flex; align-items: center; gap: 10px; font-weight: 600; font-size: 20px; letter-spacing: -.02em; text-decoration: none; color: var(--ink); }
.brand-mark { display: flex; gap: 3px; }
.brand-mark i { display: block; width: 8px; height: 20px; border-radius: 3px; }
.brand-mark i:nth-child(1) { background: var(--accent); box-shadow: inset 0 0 0 1px var(--accent-edge); }
.brand-mark i:nth-child(2) { background: var(--yellow); height: 14px; align-self: flex-end; }
.brand-mark i:nth-child(3) { background: var(--ink); height: 10px; align-self: flex-end; }
nav.main { display: flex; gap: 4px; justify-content: center; min-width: 0; }
nav.main a { text-decoration: none; color: var(--muted); padding: 6px 12px; border-radius: 999px; font-size: 14px; font-weight: 500; }
nav.main a:hover { color: var(--ink); background: var(--sunken); }
nav.main a[aria-current="page"] { color: var(--ink); background: var(--sunken); }

.proto { background: var(--yellow-soft); border-bottom: 1px solid var(--line); font-size: 13px; line-height: 18px; }
.proto .wrap { padding-block: 8px; display: flex; gap: 8px; align-items: center; }
.dot { width: 8px; height: 8px; border-radius: 50%; background: var(--yellow); flex: none; box-shadow: 0 0 0 2px var(--on-yellow) inset; }

main { padding-block: 40px 80px; }
/* Reserve the first screen while the active view loads, rather than showing the footer. */
main:has(> .view:not([hidden]):empty) { min-height: 100svh; }
.is-home main { padding-top: 0; }
.view { display: grid; gap: 32px; }

/* Buttons and fields */
.btn { display: inline-flex; align-items: center; justify-content: center; gap: 8px; border-radius: var(--r-sm); padding: 10px 18px; font-weight: 500; font-size: 15px; border: 1px solid transparent; cursor: pointer; text-decoration: none; line-height: 22px; white-space: nowrap; }
.btn-primary { background: var(--accent); color: var(--on-accent); box-shadow: inset 0 0 0 1px var(--accent-edge); font-weight: 600; }
.btn-primary:hover { background: var(--accent-strong); }
.btn-secondary { background: transparent; color: var(--ink); border-color: var(--line-strong); }
.btn-secondary:hover { background: var(--sunken); }
.btn-text { background: none; border: 0; color: var(--ink); padding: 6px 8px; text-decoration: underline; text-underline-offset: 3px; }
.btn-sm { padding: 6px 12px; font-size: 13px; line-height: 18px; }
.btn[disabled] { opacity: .45; cursor: not-allowed; }
label.f { display: grid; gap: 6px; font-size: 13px; line-height: 18px; font-weight: 500; min-width: 0; }
.f input, .f select, .f textarea { width: 100%; border: 1px solid var(--line-strong); background: var(--raised); border-radius: var(--r-sm); padding: 10px 12px; font-size: 15px; line-height: 22px; font-weight: 400; min-width: 0; }
.f .hint { font-weight: 400; color: var(--muted); }
.seg { justify-self: start; display: inline-flex; background: var(--sunken); border-radius: 999px; padding: 3px; gap: 2px; flex-wrap: wrap; }
.seg button { border: 0; background: none; border-radius: 999px; padding: 6px 14px; font-size: 13px; font-weight: 500; cursor: pointer; color: var(--muted); }
.seg button[aria-pressed="true"] { background: var(--raised); color: var(--ink); box-shadow: var(--shadow-sm); }

.card { background: var(--raised); border: 1px solid var(--line); border-radius: var(--r-md); box-shadow: var(--shadow-sm); }
.pad { padding: 24px; }
@media (max-width: 600px) { .pad { padding: 16px; } }

/* Badges */
.badge { display: inline-flex; align-items: center; gap: 6px; border-radius: 999px; padding: 2px 10px; font-size: 12px; line-height: 20px; font-weight: 500; white-space: nowrap; border: 1px solid transparent; }
.b-quote { border-color: var(--line-strong); color: var(--muted); }
.b-neutral { background: var(--sunken); color: var(--ink); }
.b-transit { background: var(--yellow); color: var(--on-yellow); }
.b-attn { background: var(--yellow-soft); color: var(--ink); }
.b-alert { background: var(--danger-soft); color: var(--danger); }
.b-done { background: var(--ink); color: var(--surface); }
.b-example { border: 1px dashed var(--line-strong); color: var(--muted); }

/* Hero */
.hero { display: grid; grid-template-columns: minmax(0, 1fr); gap: 24px; }
.hero h1 { font-size: 48px; line-height: 52px; letter-spacing: -.03em; max-width: 16ch; }
.hero .lede { font-size: 17px; line-height: 27px; color: var(--muted); max-width: 60ch; }
@media (max-width: 640px) { .hero h1 { font-size: 34px; line-height: 38px; } }
.quote-form { display: grid; gap: 20px; }
.qf-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 16px; }
.qf-grid .span2 { grid-column: span 2; }
@media (max-width: 860px) { .qf-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 520px) { .qf-grid { grid-template-columns: minmax(0, 1fr); } .qf-grid .span2 { grid-column: auto; } }
.qf-foot { display: flex; gap: 16px; align-items: center; justify-content: space-between; flex-wrap: wrap; }

.lanes { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 16px; }
@media (max-width: 900px) { .lanes { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 520px) { .lanes { grid-template-columns: minmax(0, 1fr); } }
.lane { padding: 20px; display: grid; gap: 12px; align-content: start; }
.lane h3 { font-size: 17px; }
.lane dl { display: grid; grid-template-columns: auto 1fr; gap: 4px 12px; margin: 0; font-size: 13px; line-height: 20px; }
.lane dt { color: var(--muted); }
.lane dd { margin: 0; text-align: right; }
.route { display: flex; align-items: center; gap: 8px; font-size: 13px; color: var(--muted); }
.route .ln { flex: 1; height: 1px; background: var(--line-strong); position: relative; }
.route .ln::after { content: ""; position: absolute; left: 55%; top: -4px; width: 9px; height: 9px; border-radius: 50%; background: var(--yellow); box-shadow: 0 0 0 1.5px var(--on-yellow) inset; }
.section-head { display: flex; justify-content: space-between; align-items: end; gap: 16px; flex-wrap: wrap; }
.section-head h2 { font-size: 22px; line-height: 30px; }
.services { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 16px; }
@media (max-width: 900px) { .services { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 520px) { .services { grid-template-columns: minmax(0, 1fr); } }
.svc { display: grid; gap: 8px; align-content: start; }
.svc svg { width: 24px; height: 24px; }
.svc h3 { font-size: 15px; }

/* Results */
.res-layout { display: grid; grid-template-columns: 240px minmax(0, 1fr); gap: 24px; align-items: start; }
@media (max-width: 860px) { .res-layout { grid-template-columns: minmax(0, 1fr); } }
.filters { display: grid; gap: 20px; position: sticky; top: calc(env(safe-area-inset-top, 0px) + 16px); }
@media (max-width: 860px) { .filters { position: static; } }
.filters h3 { font-size: 13px; line-height: 18px; color: var(--muted); font-weight: 500; }
.chk { display: flex; gap: 8px; align-items: center; font-size: 14px; cursor: pointer; }
.chk input { width: 16px; height: 16px; accent-color: var(--ink); }
.summary-bar { display: flex; gap: 12px 24px; flex-wrap: wrap; align-items: center; padding: 16px 20px; }
.summary-bar .sep { width: 1px; align-self: stretch; background: var(--line); }
.opts { display: grid; gap: 12px; }
.opt { display: grid; grid-template-columns: minmax(0, 1.4fr) minmax(0, 1fr) auto; gap: 16px 24px; padding: 20px; align-items: center; }
@media (max-width: 720px) { .opt { grid-template-columns: minmax(0, 1fr); } }
.opt-id { display: flex; gap: 14px; align-items: center; min-width: 0; }
.mode-ic { width: 44px; height: 44px; border-radius: var(--r-sm); background: var(--sunken); display: grid; place-items: center; flex: none; }
.mode-ic svg { width: 22px; height: 22px; }
.opt-name { font-weight: 600; }
.tags { display: flex; gap: 6px; flex-wrap: wrap; }
.opt-facts { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 4px 16px; font-size: 13px; line-height: 20px; }
.opt-facts span:nth-child(odd) { color: var(--muted); }
.opt-price { text-align: right; display: grid; gap: 6px; justify-items: end; }
@media (max-width: 720px) { .opt-price { text-align: left; justify-items: start; } }
.price { font-family: var(--font-mono); font-size: 24px; line-height: 30px; font-weight: 500; letter-spacing: -.01em; }
.opt-actions { display: flex; gap: 8px; align-items: center; flex-wrap: wrap; }
.breakdown { grid-column: 1 / -1; border-top: 1px solid var(--line); padding-top: 16px; }
table.lines { width: 100%; border-collapse: collapse; font-size: 14px; }
table.lines td { padding: 6px 0; border-bottom: 1px solid var(--line); }
table.lines td:last-child { text-align: right; font-family: var(--font-mono); font-variant-numeric: tabular-nums; padding-left: 12px; white-space: nowrap; }
table.lines tr.total td { font-weight: 600; border-bottom: 0; padding-top: 10px; }
table.lines tr.sub td { color: var(--muted); }
.compare-tray { position: sticky; bottom: calc(env(safe-area-inset-bottom, 0px) + 16px); display: flex; justify-content: space-between; align-items: center; gap: 12px; padding: 12px 16px; background: var(--ink); color: var(--surface); border-radius: var(--r-md); box-shadow: var(--shadow-pop); flex-wrap: wrap; }
.compare-tray .btn-primary { background: var(--accent); color: var(--on-accent); }
.tbl-wrap { overflow-x: auto; }
table.cmp { border-collapse: collapse; width: 100%; min-width: 560px; font-size: 14px; }
table.cmp th, table.cmp td { text-align: left; padding: 10px 12px; border-bottom: 1px solid var(--line); vertical-align: top; }
table.cmp th { font-weight: 500; color: var(--muted); width: 160px; }
table.cmp td.best { background: var(--yellow-soft); }
.empty { padding: 40px 24px; text-align: center; display: grid; gap: 12px; justify-items: center; }

/* Booking */
.steps { display: flex; gap: 8px; flex-wrap: wrap; }
.step { display: flex; align-items: center; gap: 8px; font-size: 13px; color: var(--muted); font-weight: 500; }
.step b { width: 24px; height: 24px; border-radius: 50%; display: grid; place-items: center; background: var(--sunken); font-weight: 600; font-size: 12px; }
.step[aria-current="step"] { color: var(--ink); }
.step[aria-current="step"] b { background: var(--accent); color: var(--on-accent); box-shadow: inset 0 0 0 1px var(--accent-edge); }
.step.done b { background: var(--ink); color: var(--surface); }
.step + .step::before { content: ""; width: 24px; height: 1px; background: var(--line-strong); }
.book-layout { display: grid; grid-template-columns: minmax(0, 1fr) 340px; gap: 24px; align-items: start; }
@media (max-width: 900px) { .book-layout { grid-template-columns: minmax(0, 1fr); } }
.form-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
.form-grid .full { grid-column: 1 / -1; }
@media (max-width: 560px) { .form-grid { grid-template-columns: minmax(0, 1fr); } }
.svc-pick { display: grid; gap: 10px; }
.svc-row { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; gap: 12px; align-items: start; padding: 14px 16px; border: 1px solid var(--line); border-radius: var(--r-sm); cursor: pointer; }
.svc-row:has(input:checked) { border-color: var(--ink); }
.svc-row input { width: 18px; height: 18px; margin-top: 3px; accent-color: var(--ink); }
.svc-row .amt { font-family: var(--font-mono); font-size: 14px; }
.fieldset-title { font-size: 15px; font-weight: 600; }
.sticky-sum { position: sticky; top: calc(env(safe-area-inset-top, 0px) + 16px); display: grid; gap: 16px; }
@media (max-width: 900px) { .sticky-sum { position: static; } }
.note { font-size: 13px; line-height: 20px; color: var(--muted); }
.ex-tag { font-size: 12px; color: var(--muted); }

/* Shipment detail */
.ship-head { display: flex; justify-content: space-between; gap: 16px; flex-wrap: wrap; align-items: start; }
.ship-head h1 { font-size: 28px; line-height: 36px; letter-spacing: -.02em; }
.journey { position: relative; padding: 28px 0 8px; }
.journey .track { height: 4px; border-radius: 4px; background: var(--sunken); position: relative; }
.journey .fill { position: absolute; left: 0; top: 0; bottom: 0; background: var(--ink); border-radius: 4px; }
.journey .pos { position: absolute; top: 50%; width: 18px; height: 18px; margin: -9px 0 0 -9px; border-radius: 50%; background: var(--yellow); box-shadow: 0 0 0 3px var(--raised), 0 0 0 4px var(--on-yellow); }
.journey .ends { display: flex; justify-content: space-between; margin-top: 12px; font-size: 13px; gap: 12px; }
.detail-grid { display: grid; grid-template-columns: minmax(0, 1.2fr) minmax(0, 1fr); gap: 24px; align-items: start; }
@media (max-width: 860px) { .detail-grid { grid-template-columns: minmax(0, 1fr); } }
ol.timeline { list-style: none; margin: 0; padding: 0; display: grid; }
ol.timeline li { display: grid; grid-template-columns: 20px minmax(0, 1fr) auto; gap: 12px; padding-bottom: 16px; position: relative; font-size: 14px; }
ol.timeline li::before { content: ""; position: absolute; left: 9px; top: 18px; bottom: 0; width: 2px; background: var(--line); }
ol.timeline li:last-child::before { display: none; }
ol.timeline .m { width: 12px; height: 12px; margin: 6px 0 0 4px; border-radius: 50%; border: 2px solid var(--line-strong); background: var(--raised); position: relative; z-index: 1; }
ol.timeline li.done .m { background: var(--ink); border-color: var(--ink); }
ol.timeline li.now .m { background: var(--yellow); border-color: var(--on-yellow); }
ol.timeline li.todo { color: var(--muted); }
ol.timeline time { font-family: var(--font-mono); font-size: 12px; color: var(--muted); white-space: nowrap; }
.docs { display: grid; gap: 8px; }
.doc-row { display: flex; justify-content: space-between; align-items: center; gap: 12px; padding: 10px 12px; border: 1px solid var(--line); border-radius: var(--r-sm); flex-wrap: wrap; }
.doc-row .nm { font-size: 14px; min-width: 0; }
.doc-row .fl { font-family: var(--font-mono); font-size: 12px; color: var(--muted); word-break: break-all; }
.alert { display: flex; gap: 12px; padding: 14px 16px; border-radius: var(--r-sm); background: var(--danger-soft); color: var(--ink); font-size: 14px; }
.alert svg { width: 20px; height: 20px; flex: none; color: var(--danger); margin-top: 2px; }
.track-form { display: flex; gap: 12px; flex-wrap: wrap; align-items: end; }
.track-form .f { flex: 1 1 260px; }

/* Lists and ops */
.kpis { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 16px; }
@media (max-width: 760px) { .kpis { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.kpi { padding: 16px 20px; display: grid; gap: 4px; }
.kpi .v { font-family: var(--font-mono); font-size: 24px; line-height: 30px; font-weight: 500; }
.kpi .l { font-size: 13px; color: var(--muted); }
table.grid { width: 100%; border-collapse: collapse; font-size: 14px; min-width: 820px; }
table.grid th { text-align: left; font-size: 12px; font-weight: 500; color: var(--muted); padding: 10px 12px; background: var(--sunken); border-bottom: 1px solid var(--line); white-space: nowrap; }
table.grid td { padding: 12px; border-bottom: 1px solid var(--line); vertical-align: middle; }
table.grid tr:last-child td { border-bottom: 0; }
table.grid tbody tr { cursor: pointer; }
table.grid tbody tr:hover td { background: var(--sunken); }
table.grid td.num { text-align: right; font-family: var(--font-mono); font-variant-numeric: tabular-nums; }
table.grid select { border: 1px solid var(--line-strong); border-radius: var(--r-sm); background: var(--raised); padding: 4px 8px; font-size: 13px; max-width: 170px; }
.ops-layout { display: grid; grid-template-columns: minmax(0, 1fr); gap: 24px; }
.panel-actions { display: flex; gap: 8px; flex-wrap: wrap; align-items: center; }
.toast { position: fixed; left: 50%; bottom: calc(env(safe-area-inset-bottom, 0px) + 24px); transform: translateX(-50%); background: var(--ink); color: var(--surface); padding: 10px 18px; border-radius: 999px; font-size: 14px; box-shadow: var(--shadow-pop); z-index: 20; max-width: calc(100% - 32px); }
footer { border-top: 1px solid var(--line); }
footer .wrap { font-size: 13px; color: var(--muted); }
.ok-hero { display: grid; gap: 16px; justify-items: start; }
.ok-hero .ref { font-family: var(--font-mono); font-size: 28px; line-height: 34px; }

/* Hero band (dark in both themes) */
:root { --hero: #0E0E0E; --hero-2: #1C1C1B; --hero-fg: #F7F6F2; --hero-muted: #A9A69E; --hero-line: rgba(247,246,242,.14); }
@media (prefers-color-scheme: dark) { :root:not([data-theme="light"]) { --hero: #151514; --hero-2: #222220; } }
:root[data-theme="dark"] { --hero: #151514; --hero-2: #222220; }
.hero-band { background: var(--hero); color: var(--hero-fg); overflow: hidden; }
.hero-band .wrap { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 32px; align-items: center; padding-block: 64px 120px; }
@media (max-width: 900px) { .hero-band .wrap { grid-template-columns: minmax(0, 1fr); padding-block: 40px 104px; } }
.eyebrow { display: inline-flex; align-items: center; gap: 8px; font-size: 13px; font-weight: 500; color: var(--hero-muted); letter-spacing: .02em; }
.eyebrow .dot { width: 8px; height: 8px; border-radius: 50%; background: var(--accent); box-shadow: none; }
.hero-band h1 { font-size: 56px; line-height: 58px; letter-spacing: -.035em; font-weight: 600; margin-top: 16px; max-width: 14ch; }
.hero-band h1 em { font-style: normal; color: var(--accent); }
.hero-band .lede { margin-top: 20px; font-size: 17px; line-height: 27px; color: var(--hero-muted); max-width: 46ch; }
@media (max-width: 640px) { .hero-band h1 { font-size: 38px; line-height: 42px; } }
.hero-map { width: 100%; height: auto; display: block; max-width: 100%; }
.hero-map .lbl { fill: var(--hero-fg); font: 500 12px var(--font-sans); }
.hero-map .sub { fill: var(--hero-muted); font: 400 11px var(--font-mono); }
.hero-map .arc { fill: none; stroke: var(--hero-fg); stroke-opacity: .35; stroke-width: 1.25; stroke-dasharray: 3 5; animation: dash 2.4s linear infinite; }
@keyframes dash { to { stroke-dashoffset: -32; } }
.hero-map .grid { fill: var(--hero-fg); fill-opacity: .08; }
.hero-map .node { fill: var(--hero); stroke: var(--hero-fg); stroke-width: 1.5; }
.hero-map .cn { fill: var(--accent); }
.hero-map .cn-ring { fill: none; stroke: var(--accent); stroke-opacity: .4; stroke-width: 1.5; }
.hero-map .rd { fill: var(--accent); }

/* Search panel overlapping the hero */
.search-wrap { margin-top: -80px; position: relative; z-index: 2; }
.search { background: var(--raised); border: 1px solid var(--line); border-radius: var(--r-lg); box-shadow: var(--shadow-pop); padding: 20px; display: grid; gap: 16px; }
.search-top { display: flex; justify-content: space-between; align-items: center; gap: 12px; flex-wrap: wrap; }
.fields { display: grid; gap: 1px; background: var(--line); border: 1px solid var(--line); border-radius: var(--r-md); overflow: hidden; }
.fields.r4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
@media (max-width: 860px) { .fields.r4 { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 480px) { .fields.r4 { grid-template-columns: minmax(0, 1fr); } }
.sf { background: var(--raised); display: grid; gap: 2px; padding: 10px 14px; min-width: 0; cursor: text; }
.sf:focus-within { box-shadow: inset 0 0 0 2px var(--ink); position: relative; z-index: 1; }
.sf .k { font-size: 12px; line-height: 16px; color: var(--muted); font-weight: 500; }
.sf input, .sf select { border: 0; background: transparent; padding: 0; font-size: 15px; line-height: 24px; font-weight: 500; width: 100%; min-width: 0; outline: none; }
.sf .unit { color: var(--muted); font-weight: 400; }
.sf-in { display: flex; align-items: baseline; gap: 6px; min-width: 0; }
.search-foot { display: flex; justify-content: space-between; align-items: center; gap: 16px; flex-wrap: wrap; }
.search-foot .btn { padding: 12px 28px; }

/* Home sections */
.facts { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); border-block: 1px solid var(--line); }
.facts > div { padding: 20px 16px 20px 0; display: grid; gap: 2px; }
.facts > div + div { padding-left: 20px; border-left: 1px solid var(--line); }
.facts .v { font-family: var(--font-mono); font-size: 28px; line-height: 34px; font-weight: 500; letter-spacing: -.02em; }
.facts .l { font-size: 13px; color: var(--muted); }
@media (max-width: 760px) { .facts { grid-template-columns: repeat(2, minmax(0, 1fr)); } .facts > div:nth-child(3) { padding-left: 0; border-left: 0; } .facts > div:nth-child(n+3) { border-top: 1px solid var(--line); } }
.how { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; }
@media (max-width: 760px) { .how { grid-template-columns: minmax(0, 1fr); } }
.how-step { padding: 24px; display: grid; gap: 10px; align-content: start; }
.how-step .n { font-family: var(--font-mono); font-size: 13px; color: var(--muted); }
.how-step h3 { font-size: 17px; line-height: 24px; }
.lane-bars { display: grid; gap: 8px; }
.lb { display: grid; grid-template-columns: 64px minmax(0, 1fr) 72px; gap: 10px; align-items: center; font-size: 13px; line-height: 18px; }
.lb .t { height: 6px; border-radius: 6px; background: var(--sunken); position: relative; }
.lb .t i { position: absolute; top: 0; bottom: 0; border-radius: 6px; background: var(--ink); }
.lb .t i.rng { background: var(--line-strong); opacity: .55; }
.lb .d { text-align: right; font-family: var(--font-mono); font-variant-numeric: tabular-nums; }
.svc-ic { width: 40px; height: 40px; border-radius: var(--r-sm); background: var(--sunken); display: grid; place-items: center; }
.svc-ic svg { width: 22px; height: 22px; }
.cta-band { background: var(--hero); color: var(--hero-fg); border-radius: var(--r-lg); padding: 40px; display: flex; justify-content: space-between; align-items: center; gap: 24px; flex-wrap: wrap; }
.cta-band h2 { font-size: 28px; line-height: 34px; letter-spacing: -.02em; max-width: 22ch; }
.cta-band p { color: var(--hero-muted); margin-top: 8px; }
@media (max-width: 600px) { .cta-band { padding: 24px; } }

/* Results: transit to scale */
.tbar { display: grid; gap: 4px; }
.tbar .t { height: 6px; border-radius: 6px; background: var(--sunken); position: relative; }
.tbar .t i { position: absolute; top: 0; bottom: 0; border-radius: 6px; background: var(--ink); }
.tbar .t i.rng { background: var(--line-strong); opacity: .55; }
.opt { transition: border-color .15s; }
.opt:hover { border-color: var(--line-strong); }
.foot { display: grid; grid-template-columns: 1.4fr repeat(3, minmax(0, 1fr)); gap: 24px; padding-block: 40px !important; }
@media (max-width: 760px) { .foot { grid-template-columns: minmax(0, 1fr); } }
.foot-brand { display: grid; gap: 10px; align-content: start; }
.foot-brand .brand { font-size: 17px; }
.foot-col { display: grid; gap: 6px; align-content: start; font-size: 13px; line-height: 20px; }
.foot-col strong { color: var(--ink); font-weight: 500; }
.foot-col a { color: var(--muted); text-decoration: none; }
.foot-col a:hover { color: var(--ink); }

/* Results v2 */
.opt { grid-template-columns: minmax(0, 1fr) minmax(0, 1.25fr) 168px; position: relative; padding: 24px; }
@media (max-width: 860px) { .opt { grid-template-columns: minmax(0, 1fr); } }
.opt-best { border-color: var(--ink); box-shadow: 0 0 0 1px var(--ink), var(--shadow-sm); }
.rec { position: absolute; top: -11px; left: 20px; background: var(--ink); color: var(--surface); font-size: 11px; line-height: 20px; font-weight: 500; padding: 1px 10px; border-radius: 999px; }
.opt-mid { display: grid; gap: 10px; min-width: 0; }
.eta-row { display: flex; justify-content: space-between; gap: 12px; font-size: 13px; line-height: 18px; flex-wrap: wrap; }
.meta { display: flex; gap: 6px 16px; flex-wrap: wrap; font-size: 13px; line-height: 18px; color: var(--muted); }
.meta .mono { color: var(--ink); }
.faint { opacity: .4; }
.comp { display: flex; gap: 2px; height: 8px; border-radius: 8px; overflow: hidden; margin-top: 4px; }
.comp span { display: block; height: 100%; min-width: 2px; }
.c1 { background: var(--ink); } .c2 { background: var(--line-strong); } .c3 { background: var(--yellow); }
.legend { display: flex; gap: 4px 14px; flex-wrap: wrap; font-size: 12px; line-height: 16px; color: var(--muted); }
.legend span { display: inline-flex; align-items: center; gap: 6px; }
.legend .mono { color: var(--ink); }
.legend i { width: 8px; height: 8px; border-radius: 2px; display: inline-block; }
.opt-price { text-align: right; display: grid; gap: 8px; justify-items: stretch; align-content: center; }
.opt-price .note, .opt-price .price { text-align: right; }
.opt-price .opt-actions { justify-content: space-between; }
@media (max-width: 860px) { .opt-price { justify-items: start; } .opt-price .note, .opt-price .price { text-align: left; } .opt-price .btn-primary { justify-self: stretch; } }
.mode-chips { display: grid; gap: 8px; }
.mchip { display: grid; grid-template-columns: auto auto minmax(0, 1fr); gap: 10px; align-items: center; padding: 10px 12px; border: 1px solid var(--line); border-radius: var(--r-sm); cursor: pointer; font-size: 14px; line-height: 18px; }
.mchip:has(input:checked) { border-color: var(--ink); background: var(--sunken); }
.mchip input { width: 16px; height: 16px; accent-color: var(--ink); margin: 0; }
.mchip-ic svg { width: 18px; height: 18px; display: block; }
.mchip-t { display: grid; gap: 2px; min-width: 0; }
.mchip-t .note { font-size: 12px; line-height: 16px; }
/* Booking v2 */
.sum-total { display: flex; justify-content: space-between; align-items: baseline; padding: 12px 0; border-block: 1px solid var(--line); }
.svc-line { display: flex; gap: 12px; align-items: flex-start; min-width: 0; }
.svc-ic.sm { width: 32px; height: 32px; flex: none; }
.svc-ic.sm svg { width: 18px; height: 18px; }
/* Tracking v2 */
.kfacts { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 16px; padding-block: 16px; border-block: 1px solid var(--line); }
.kfacts > div { display: grid; gap: 2px; min-width: 0; }
.kfacts .kv { font-size: 17px; line-height: 24px; font-weight: 500; }
@media (max-width: 640px) { .kfacts { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.journey { padding-top: 20px; }
.journey .tick { position: absolute; top: 50%; width: 8px; height: 8px; margin: -4px 0 0 -4px; border-radius: 50%; background: var(--raised); border: 2px solid var(--line-strong); }
.journey .tick.on { border-color: var(--ink); background: var(--ink); }
.pos-lbl { position: relative; transform: translateX(-50%); width: max-content; margin-top: 14px; font-size: 12px; font-weight: 500; background: var(--yellow); color: var(--on-yellow); padding: 1px 10px; border-radius: 999px; }
.journey .ends { margin-top: 8px; color: var(--muted); }
.track-form.compact { max-width: 520px; }
/* Ops v2 */
.ops-bar { display: flex; justify-content: space-between; gap: 12px; flex-wrap: wrap; }
.ops-bar .seg .mono { color: var(--muted); margin-left: 4px; }
td.nw, .nw { white-space: nowrap; }
.mi svg { width: 16px; height: 16px; vertical-align: -3px; }
.rdot { display: inline-block; width: 8px; height: 8px; border-radius: 50%; background: var(--danger); margin-right: 8px; vertical-align: 1px; }
table.grid tbody tr.sel td { background: var(--sunken); }

/* Dropdowns */
.dd { display: flex; align-items: center; gap: 8px; width: 100%; min-width: 0; text-align: left; background: var(--raised); color: var(--ink); border: 1px solid var(--line-strong); border-radius: var(--r-sm); padding: 10px 12px; font-size: 15px; line-height: 22px; font-weight: 400; cursor: pointer; transition: border-color .12s, box-shadow .12s; }
.dd:hover { border-color: var(--ink); }
.dd[aria-expanded="true"] { border-color: var(--ink); box-shadow: 0 0 0 1px var(--ink); }
.dd-val { flex: 1; min-width: 0; display: flex; align-items: center; gap: 8px; }
.dd-lbl { min-width: 0; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.dd-soft { color: var(--muted); font-weight: 400; }
.dd-tag { flex: none; font-size: 11px; line-height: 18px; color: var(--muted); background: var(--sunken); border-radius: 4px; padding: 0 6px; font-weight: 400; }
.dd-chev { width: 16px; height: 16px; flex: none; color: var(--muted); transition: transform .15s; }
.dd[aria-expanded="true"] .dd-chev { transform: rotate(180deg); color: var(--ink); }
.dd-bare { border: 0; padding: 0; background: transparent; font-weight: 500; box-shadow: none !important; }
.dd-bare .dd-tag { display: none; }
.sf:has(.dd[aria-expanded="true"]) { box-shadow: inset 0 0 0 2px var(--ink); position: relative; z-index: 1; }
.sf:has(.dd) { cursor: pointer; }
.dd-sm { width: auto; min-width: 168px; padding: 5px 10px 5px 12px; font-size: 13px; line-height: 18px; border-radius: 999px; border-color: var(--line); background: var(--raised); }
.dd-sm:hover { border-color: var(--line-strong); }
.dd-menu { position: fixed; z-index: 40; background: var(--raised); border: 1px solid var(--line); border-radius: var(--r-md); box-shadow: var(--shadow-pop); display: flex; flex-direction: column; overflow: hidden; animation: ddIn .14s ease-out; }
.dd-menu.up { animation-name: ddUp; }
@keyframes ddIn { from { opacity: 0; transform: translateY(-4px); } }
@keyframes ddUp { from { opacity: 0; transform: translateY(4px); } }
.dd-search { display: flex; align-items: center; gap: 10px; padding: 12px 14px; border-bottom: 1px solid var(--line); flex: none; }
.dd-search svg { width: 16px; height: 16px; color: var(--muted); flex: none; }
.dd-search input { border: 0; background: transparent; outline: none; flex: 1; min-width: 0; font-size: 14px; line-height: 20px; }
.dd-title { padding: 12px 16px 4px; font-size: 12px; line-height: 16px; color: var(--muted); font-weight: 500; flex: none; }
.dd-list { list-style: none; margin: 0; padding: 6px; overflow-y: auto; outline: none; overscroll-behavior: contain; }
.dd-group { padding: 12px 10px 4px; font-size: 11px; line-height: 16px; font-weight: 500; letter-spacing: .06em; text-transform: uppercase; color: var(--muted); }
.dd-group:first-child { padding-top: 6px; }
.dd-opt { display: grid; grid-template-columns: auto minmax(0, 1fr) auto 16px; align-items: center; gap: 10px; padding: 9px 10px; border-radius: var(--r-sm); cursor: pointer; }
.dd-opt.active { background: var(--sunken); }
.dd-opt > span:first-child:empty { display: none; }
.dd-opt:has(> span:first-child:empty) { grid-template-columns: minmax(0, 1fr) auto 16px; }
.dd-o { display: grid; min-width: 0; }
.dd-o-l { font-size: 14px; line-height: 20px; }
.dd-opt[aria-selected="true"] .dd-o-l { font-weight: 600; }
.dd-o-s { font-size: 12px; line-height: 16px; color: var(--muted); }
.dd-check { width: 16px; height: 16px; color: var(--ink); }
.dd-check svg { width: 16px; height: 16px; display: block; }
.dd-empty { padding: 16px 10px; font-size: 14px; color: var(--muted); }
.sdot { display: inline-block; width: 8px; height: 8px; border-radius: 50%; flex: none; }
.s-neutral { background: var(--line-strong); } .s-done { background: var(--ink); } .s-alert { background: var(--danger); }
.s-transit { background: var(--yellow); box-shadow: inset 0 0 0 1.5px var(--on-yellow); }

/* Search panel v3 */
.search { padding: 24px; gap: 20px; }
@media (max-width: 600px) { .search { padding: 16px; } }
.qgrid { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); gap: 12px; }
.qgrid > * { grid-column: span 3; min-width: 0; }
.qgrid > .route { grid-column: span 9; }
.qgrid > .fx-wide, .qgrid > .cargo-hint { grid-column: 1 / -1; }
@media (max-width: 960px) {
  .qgrid > * { grid-column: span 6; }
  .qgrid > .route { grid-column: 1 / -1; }
  .qgrid > .fx-wide { grid-column: span 6; }
}
@media (max-width: 560px) { .qgrid > .fx-wide { grid-column: 1 / -1; } }
@media (max-width: 560px) { .qgrid > *, .qgrid > .route { grid-column: 1 / -1; } }
.route { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 12px; position: relative; }
.route-link { position: absolute; left: 50%; top: 50%; transform: translate(-50%, -50%); width: 34px; height: 34px; border-radius: 50%; background: var(--raised); border: 1px solid var(--line); display: grid; place-items: center; z-index: 3; color: var(--ink); box-shadow: var(--shadow-sm); pointer-events: none; }
.route-link svg { width: 16px; height: 16px; }
@media (max-width: 560px) { .route { grid-template-columns: minmax(0, 1fr); } .route-link { transform: translate(-50%, -50%) rotate(90deg); left: auto; right: 24px; } }
.fx { position: relative; display: grid; grid-template-columns: auto minmax(0, 1fr) auto; grid-template-rows: auto auto; column-gap: 12px; row-gap: 2px; align-items: center; background: var(--sunken); border: 1px solid transparent; border-radius: var(--r-md); padding: 11px 16px; min-height: 66px; cursor: text; transition: background .12s, border-color .12s, box-shadow .12s; }
.fx:hover { border-color: var(--line-strong); }
.fx:focus-within, .fx:has(.dd[aria-expanded="true"]) { background: var(--raised); border-color: var(--ink); box-shadow: 0 0 0 1px var(--ink); z-index: 2; }
.fx-dd { cursor: pointer; }
.fx-ic { grid-row: 1 / 3; display: grid; place-items: center; width: 22px; color: var(--muted); }
.fx-ic svg { width: 20px; height: 20px; }
.fx .k { grid-column: 2; font-size: 12px; line-height: 16px; color: var(--muted); font-weight: 500; }
.fx .k .fx-opt { font-weight: 400; }
.fx .ctl { grid-column: 2; min-width: 0; display: block; }
.fx .unit { grid-column: 3; grid-row: 1 / 3; font-size: 14px; color: var(--muted); }
.fx input { border: 0; background: transparent; outline: none; padding: 0; width: 100%; min-width: 0; font-size: 16px; line-height: 24px; font-weight: 500; color: var(--ink); font-variant-numeric: tabular-nums; }
.fx input::placeholder { color: var(--muted); font-weight: 400; opacity: .8; }
.fx .dd-bare { font-size: 16px; line-height: 24px; }
.fx-date input::-webkit-calendar-picker-indicator { position: absolute; inset: 0; width: 100%; height: 100%; opacity: 0; cursor: pointer; }
.fx-date { cursor: pointer; }
.pin { width: 12px; height: 12px; border-radius: 50%; display: block; }
.pin-o { background: var(--ink); box-shadow: 0 0 0 4px var(--accent); }
.pin-d { background: var(--yellow); box-shadow: 0 0 0 4px var(--yellow-soft), inset 0 0 0 1.5px var(--on-yellow); }
.stepper { display: flex !important; align-items: center; gap: 8px; }
.stepper input { text-align: center; width: 48px; flex: none; }
.stepper button { width: 28px; height: 28px; border-radius: 50%; border: 1px solid var(--line-strong); background: var(--raised); cursor: pointer; font-size: 16px; line-height: 1; display: grid; place-items: center; color: var(--ink); }
.stepper button:hover { border-color: var(--ink); }
.fx-step { cursor: default; }
.cargo-hint { font-size: 13px; line-height: 20px; color: var(--muted); padding: 2px 4px 0; }
.cargo-hint b { color: var(--ink); font-weight: 500; }
.sep-dot { margin: 0 8px; color: var(--muted); }
.foot-note { display: flex; gap: 8px; align-items: center; }
.foot-note svg { width: 16px; height: 16px; display: block; }
.foot-note.bad { color: var(--danger); }
.btn-go { padding: 14px 24px 14px 28px !important; font-size: 16px; gap: 10px; }
.btn-go svg { width: 16px; height: 16px; transition: transform .15s; }
.btn-go:hover svg { transform: translateX(3px); }
@media (max-width: 560px) { .search-foot .btn-go { width: 100%; } }

/* Nav additions */
.nav-ai { display: inline-flex; align-items: center; gap: 6px; }
.ai-dot { width: 7px; height: 7px; border-radius: 50%; background: var(--yellow); box-shadow: 0 0 0 1.5px var(--on-yellow) inset; }
@media (max-width: 1100px) { .top .bar { grid-template-columns: 1fr auto; } nav.main { grid-column: 1 / -1; grid-row: 2; overflow-x: auto; justify-content: flex-start; flex-wrap: nowrap; scrollbar-width: none; } nav.main a { white-space: nowrap; } }
/* Page heads and service pages */
.page-head { display: grid; gap: 12px; max-width: 720px; }
.page-head h1 { font-size: 40px; line-height: 44px; letter-spacing: -.03em; }
@media (max-width: 640px) { .page-head h1 { font-size: 30px; line-height: 36px; } }
.eyebrow-l { display: inline-flex; align-items: center; gap: 8px; font-size: 13px; font-weight: 500; color: var(--muted); }
.dot-y { width: 8px; height: 8px; border-radius: 50%; background: var(--yellow); box-shadow: inset 0 0 0 1.5px var(--on-yellow); }
.lede-l { font-size: 17px; line-height: 27px; color: var(--muted); }
.svc-cards { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 16px; }
@media (max-width: 900px) { .svc-cards { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 520px) { .svc-cards { grid-template-columns: minmax(0, 1fr); } }
.svc-card { padding: 24px; display: grid; gap: 10px; align-content: start; }
.svc-card h3 { font-size: 16px; line-height: 22px; }
.svc-link { color: var(--ink); text-decoration: none; }
.svc-link:hover { text-decoration: underline; }
.two-col { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 24px; align-items: start; }
@media (max-width: 900px) { .two-col { grid-template-columns: minmax(0, 1fr); } }
.calc { display: grid; gap: 16px; }
.calc h2, .two-col h2 { font-size: 20px; line-height: 28px; }
.qgrid.q2 > * { grid-column: span 6; }
@media (max-width: 560px) { .qgrid.q2 > * { grid-column: 1 / -1; } }
.chips { display: flex; gap: 6px; flex-wrap: wrap; }
.pin.inline { display: inline-block; vertical-align: 1px; margin-right: 10px; width: 10px; height: 10px; }
table.hubs { min-width: 720px; }
table.hubs tbody tr { cursor: default; }
.h3 { font-size: 16px; line-height: 22px; font-weight: 600; }
ul.ticks { list-style: none; margin: 0; padding: 0; display: grid; gap: 10px; font-size: 14px; line-height: 21px; }
ul.ticks li { position: relative; padding-left: 22px; }
ul.ticks li::before { content: ""; position: absolute; left: 2px; top: 7px; width: 8px; height: 8px; border-radius: 50%; background: var(--yellow); box-shadow: inset 0 0 0 1.5px var(--on-yellow); }
.cu-sum { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; padding: 16px 0; border-block: 1px solid var(--line); }
.cu-sum > div { display: grid; gap: 2px; }
.cu-sum .kv { font-size: 20px; line-height: 26px; font-weight: 500; }
.f textarea { width: 100%; border: 1px solid var(--line-strong); background: var(--raised); border-radius: var(--r-sm); padding: 10px 12px; font-size: 15px; line-height: 22px; resize: vertical; }
/* AI advisor */
.adv { display: grid; grid-template-columns: 340px minmax(0, 1fr); gap: 32px; align-items: start; }
@media (max-width: 960px) { .adv { grid-template-columns: minmax(0, 1fr); } }
.adv-side { display: grid; gap: 24px; position: sticky; top: calc(env(safe-area-inset-top, 0px) + 16px); }
@media (max-width: 960px) { .adv-side { position: static; } }
.adv-side .page-head h1 { font-size: 32px; line-height: 38px; }
.adv-can { display: grid; gap: 12px; }
.adv-chat { display: flex; flex-direction: column; min-height: 600px; height: calc(100vh - 160px); max-height: 820px; overflow: hidden; }
@media (max-width: 960px) { .adv-chat { height: 70vh; min-height: 480px; } }
.adv-log { flex: 1; overflow-y: auto; padding: 24px; display: flex; flex-direction: column; gap: 16px; }
.adv-empty { margin: auto; display: grid; gap: 12px; justify-items: center; text-align: center; max-width: 520px; }
.adv-empty h2 { font-size: 22px; line-height: 30px; }
.adv-mark, .ai-av { display: inline-flex; gap: 3px; align-items: flex-end; }
.adv-mark span, .ai-av span { display: block; width: 7px; border-radius: 3px; }
.adv-mark span:nth-child(1), .ai-av span:nth-child(1) { height: 22px; background: var(--accent); box-shadow: inset 0 0 0 1px var(--accent-edge); }
.adv-mark span:nth-child(2), .ai-av span:nth-child(2) { height: 15px; background: var(--yellow); }
.adv-mark span:nth-child(3), .ai-av span:nth-child(3) { height: 10px; background: var(--ink); }
.ai-av { width: 32px; height: 32px; border-radius: 50%; background: var(--sunken); justify-content: center; align-items: center; flex: none; }
.ai-av span { width: 4px; }
.ai-av span:nth-child(1) { height: 13px; } .ai-av span:nth-child(2) { height: 9px; align-self: center; } .ai-av span:nth-child(3) { height: 6px; }
.adv-sugs { display: grid; gap: 8px; width: 100%; margin-top: 8px; }
.adv-sug { text-align: left; border: 1px solid var(--line); background: var(--raised); border-radius: var(--r-md); padding: 12px 16px; font-size: 14px; line-height: 20px; cursor: pointer; color: var(--ink); }
.adv-sug:hover { border-color: var(--ink); background: var(--sunken); }
.msg { display: flex; gap: 10px; align-items: flex-start; max-width: 100%; }
.msg.me { justify-content: flex-end; }
.msg .b { max-width: min(640px, 85%); font-size: 15px; line-height: 23px; min-width: 0; overflow-wrap: anywhere; }
.msg.me .b { background: var(--ink); color: var(--surface); padding: 10px 16px; border-radius: 18px 18px 4px 18px; }
.msg.ai .b { padding-top: 4px; }
.msg.ai .b p + p, .msg.ai .b p + ul, .msg.ai .b ul + p { margin-top: 10px; }
.msg.ai .b ul { margin: 0; padding-left: 20px; display: grid; gap: 4px; }
.msg.ai .b.err { color: var(--muted); }
.typing { display: inline-flex; gap: 4px; vertical-align: middle; }
.typing i { width: 6px; height: 6px; border-radius: 50%; background: var(--line-strong); animation: blink 1.2s infinite; }
.typing i:nth-child(2) { animation-delay: .2s; } .typing i:nth-child(3) { animation-delay: .4s; }
@keyframes blink { 0%, 80%, 100% { opacity: .3; } 40% { opacity: 1; } }
.adv-form { display: flex; gap: 10px; align-items: flex-end; padding: 16px; border-top: 1px solid var(--line); background: var(--raised); }
.adv-form textarea { flex: 1; min-width: 0; resize: none; border: 1px solid var(--line-strong); border-radius: var(--r-md); padding: 12px 14px; font-size: 15px; line-height: 22px; background: var(--surface); max-height: 160px; }
.adv-form textarea:focus { outline: none; border-color: var(--ink); box-shadow: 0 0 0 1px var(--ink); }
.adv-send { width: 48px; height: 48px; padding: 0; border-radius: 50%; }
.adv-send svg { width: 18px; height: 18px; }
.adv-off { padding: 20px 24px; border-top: 1px solid var(--line); display: grid; gap: 4px; }
.sr { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }

/* Top right: sign in / me */
.top-right { display: flex; align-items: center; gap: 8px; justify-self: end; }
.signin { text-decoration: none; font-weight: 500; }
.me-chip { display: inline-flex; align-items: center; gap: 8px; border: 1px solid var(--line); background: var(--raised); border-radius: 999px; padding: 3px 10px 3px 3px; cursor: pointer; color: var(--ink); font-size: 14px; font-weight: 500; }
.me-chip:hover { border-color: var(--line-strong); }
.av { border-radius: 50%; display: block; flex: none; object-fit: cover; background: var(--sunken); }
.av-x { display: inline-block; background: var(--sunken); }
.me-menu { padding: 6px; display: grid; gap: 2px; }
.me-head { display: flex; gap: 10px; align-items: center; padding: 10px; border-bottom: 1px solid var(--line); margin-bottom: 4px; }
.me-full { font-weight: 600; font-size: 14px; }
.me-menu button { text-align: left; border: 0; background: none; padding: 9px 10px; border-radius: var(--r-sm); cursor: pointer; font-size: 14px; color: var(--ink); }
.me-menu button:hover, .me-menu button:focus-visible { background: var(--sunken); }
/* Login */
.login { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); border-radius: var(--r-lg); overflow: hidden; border: 1px solid var(--line); background: var(--raised); box-shadow: var(--shadow-sm); min-height: 480px; max-width: 980px; margin: 8px auto 0; width: 100%; }
@media (max-width: 780px) { .login { grid-template-columns: minmax(0, 1fr); } .login-art { min-height: 220px; } }
.login-art { background: var(--hero); color: var(--hero-fg); padding: 32px; display: flex; flex-direction: column; justify-content: space-between; gap: 16px; }
.brand.light { color: var(--hero-fg); font-size: 20px; }
.login-map { width: 100%; height: auto; max-width: 100%; }
.login-map .g { fill: var(--hero-fg); fill-opacity: .1; } .login-map .arc { fill: none; stroke: var(--hero-fg); stroke-opacity: .35; stroke-dasharray: 3 5; stroke-width: 1.25; }
.login-map .rd, .login-map .cn { fill: var(--accent); } .login-map .nd { fill: var(--hero); stroke: var(--hero-fg); stroke-width: 1.5; }
.login-q { font-size: 20px; line-height: 28px; letter-spacing: -.01em; max-width: 22ch; }
.login-card { padding: 48px 40px; display: grid; gap: 16px; align-content: center; }
@media (max-width: 600px) { .login-card { padding: 28px 20px; } }
.login-card h1 { font-size: 28px; line-height: 34px; letter-spacing: -.02em; }
.who { display: flex; gap: 12px; align-items: center; padding: 14px 16px; border: 1px solid var(--line); border-radius: var(--r-md); background: var(--surface); }
.who-n { font-weight: 600; }
.btn-lg { padding: 14px 24px; font-size: 16px; }
.alert.soft { background: var(--accent-soft); }
.alert.soft svg { color: var(--ink); }
/* Console */
.in-console main { max-width: 1320px; }
.console { display: grid; grid-template-columns: 240px minmax(0, 1fr); gap: 32px; align-items: start; }
@media (max-width: 900px) { .console { grid-template-columns: minmax(0, 1fr); gap: 20px; } }
.con-side { position: sticky; top: calc(env(safe-area-inset-top, 0px) + 16px); display: grid; gap: 16px; }
@media (max-width: 900px) { .con-side { position: static; } }
.con-me { display: flex; gap: 12px; align-items: center; padding: 14px; border: 1px solid var(--line); border-radius: var(--r-md); background: var(--raised); }
.con-n { font-weight: 600; font-size: 14px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; margin-bottom: 4px; }
.con-nav { display: grid; gap: 2px; }
@media (max-width: 900px) { .con-nav { display: flex; overflow-x: auto; gap: 4px; scrollbar-width: none; } .con-out { display: none; } }
.con-nav button { display: flex; align-items: center; gap: 10px; border: 0; background: none; padding: 9px 12px; border-radius: var(--r-sm); font-size: 14px; font-weight: 500; color: var(--muted); cursor: pointer; text-align: left; white-space: nowrap; }
.con-nav button:hover { background: var(--sunken); color: var(--ink); }
.con-nav button[aria-current="page"] { background: var(--accent); color: var(--on-accent); box-shadow: inset 0 0 0 1px var(--accent-edge); }
.con-nav .ci svg { width: 18px; height: 18px; display: block; }
.con-nav .cn { margin-left: auto; font-size: 12px; color: var(--muted); }
.con-out { justify-self: start; }
.con-main { display: grid; gap: 24px; min-width: 0; }
.con-head { display: flex; justify-content: space-between; gap: 16px; align-items: end; flex-wrap: wrap; }
.con-head h1 { font-size: 28px; line-height: 36px; letter-spacing: -.02em; }
.queue { display: grid; gap: 8px; }
.q-item { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; gap: 14px; align-items: center; padding: 14px 16px; text-align: left; cursor: pointer; font: inherit; color: inherit; width: 100%; }
.q-item:hover { border-color: var(--line-strong); }
.q-item.static { cursor: default; }
.q-main { display: grid; gap: 2px; min-width: 0; }
.q-ref { font-size: 14px; }
.q-side { display: grid; justify-items: end; gap: 4px; }
@media (max-width: 560px) { .q-item { grid-template-columns: auto minmax(0, 1fr); } .q-side { grid-column: 2; justify-items: start; } }
.who-s { display: inline-flex; align-items: center; gap: 8px; white-space: nowrap; }
.compact table.grid td { padding-block: 7px; }
.compact .q-item { padding-block: 10px; }
.add-member { display: grid; gap: 14px; }
.am-row { display: grid; grid-template-columns: minmax(0, 1.4fr) minmax(0, 1fr); gap: 12px; }
@media (max-width: 640px) { .am-row { grid-template-columns: minmax(0, 1fr); } }
.am-hits { display: grid; gap: 8px; }
.hit { display: flex; justify-content: space-between; align-items: center; gap: 12px; padding: 10px 12px; border: 1px solid var(--line); border-radius: var(--r-sm); flex-wrap: wrap; }
table.team { min-width: 640px; }
.danger-t { color: var(--danger) !important; }
.dd-person { min-width: 150px; }
.brand.light .brand-mark i:nth-child(3) { background: var(--hero-fg); }
.con-main table.grid td:nth-child(2) { min-width: 180px; }

/* Sourcing */
.so-opts { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; }
@media (max-width: 900px) { .so-opts { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 560px) { .so-opts { grid-template-columns: minmax(0, 1fr); } }
.so-opt { display: grid; gap: 8px; align-content: start; text-align: left; padding: 20px; cursor: pointer; font: inherit; color: inherit; border: 1px solid var(--line); transition: border-color .12s, background .12s, box-shadow .12s; }
.so-opt:hover { border-color: var(--line-strong); }
.so-opt[aria-pressed="true"] { border-color: var(--ink); box-shadow: 0 0 0 1px var(--ink); background: var(--accent-soft); }
.so-top { display: flex; justify-content: space-between; align-items: center; }
.so-tick { width: 24px; height: 24px; border-radius: 50%; border: 1.5px solid var(--line-strong); display: grid; place-items: center; color: transparent; }
.so-tick svg { width: 14px; height: 14px; }
.so-opt[aria-pressed="true"] .so-tick { background: var(--ink); border-color: var(--ink); color: var(--surface); }
.so-opt[aria-pressed="true"] .svc-ic { background: var(--accent); }
.so-t { font-size: 16px; line-height: 22px; font-weight: 600; }
.so-p { margin-top: 4px; font-size: 15px; }
.so-steps { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 0; position: relative; }
.so-steps li { display: grid; gap: 6px; align-content: start; padding: 0 16px 0 0; position: relative; }
.so-steps li::before { content: ""; position: absolute; left: 32px; right: 0; top: 15px; height: 1px; background: var(--line-strong); }
.so-steps li:last-child::before { display: none; }
.so-n { width: 32px; height: 32px; border-radius: 50%; display: grid; place-items: center; background: var(--accent); color: var(--on-accent); box-shadow: inset 0 0 0 1px var(--accent-edge); font-size: 13px; position: relative; z-index: 1; margin-bottom: 6px; }
@media (max-width: 860px) { .so-steps { grid-template-columns: minmax(0, 1fr); gap: 16px; } .so-steps li { grid-template-columns: 32px minmax(0, 1fr); column-gap: 14px; padding: 0; } .so-steps li > :not(.so-n) { grid-column: 2; } .so-steps li .so-n { grid-row: 1 / 3; } .so-steps li::before { left: 15px; right: auto; top: 36px; bottom: -16px; width: 1px; height: auto; } }
.so-build { display: grid; grid-template-columns: minmax(0, 1fr) 360px; gap: 24px; align-items: start; }
@media (max-width: 960px) { .so-build { grid-template-columns: minmax(0, 1fr); } }
.so-sum { display: grid; gap: 14px; position: sticky; top: calc(env(safe-area-inset-top, 0px) + 16px); }
@media (max-width: 960px) { .so-sum { position: static; } }
.so-val { display: flex; justify-content: space-between; gap: 12px; font-size: 14px; padding-top: 4px; }
.form-grid.one { grid-template-columns: minmax(0, 1fr); }
.qgrid.q2 > .fx-wide2 { grid-column: 1 / -1; }
.certs { display: grid; gap: 10px; padding: 16px; border-radius: var(--r-md); background: var(--surface); border: 1px dashed var(--line-strong); }
.so-hubs { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; }
@media (max-width: 860px) { .so-hubs { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 520px) { .so-hubs { grid-template-columns: minmax(0, 1fr); } }
.so-hub { padding: 18px 20px; display: flex; gap: 4px; align-items: flex-start; }
.so-hub .pin { margin-top: 6px; }
table.insp { min-width: 680px; }

/* Header v2 */
.top { background: var(--raised); }
.top .bar { display: flex !important; align-items: center; gap: 32px; min-height: 64px; padding-block: 0; }
.brand { display: inline-flex; align-items: baseline; gap: 0 !important; font-size: 21px; font-weight: 600; letter-spacing: -.035em; color: var(--ink); text-decoration: none; flex: none; }
.brand-dot { display: inline-block; width: 7px; height: 7px; border-radius: 50%; background: var(--yellow); margin-left: 1px; flex: none; }
.brand.light { color: var(--hero-fg); }
.foot-brand .brand { font-size: 19px; }
nav.main { display: flex !important; flex: 1; justify-content: center; gap: 28px; overflow: visible; margin: 0; grid-column: auto; grid-row: auto; }
nav.main a { position: relative; padding: 21px 0; border-radius: 0; background: none !important; font-size: 14px; font-weight: 500; color: var(--muted); white-space: nowrap; }
nav.main a:hover { color: var(--ink); }
nav.main a[aria-current="page"] { color: var(--ink); }
nav.main a[aria-current="page"]::after { content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 2px; border-radius: 2px; background: var(--ink); }
.top-right { display: flex; align-items: center; gap: 8px; flex: none; margin-left: auto; }
nav.main + .top-right { margin-left: 0; }
.hbtn { display: inline-flex; align-items: center; gap: 8px; height: 38px; padding: 0 16px; border-radius: 999px; font-size: 14px; font-weight: 500; line-height: 1; text-decoration: none; white-space: nowrap; transition: background .12s, border-color .12s, opacity .12s; }
.hbtn svg { width: 16px; height: 16px; }
.hbtn.ghost { color: var(--ink); border: 1px solid var(--line); background: var(--raised); }
.hbtn.ghost:hover { border-color: var(--line-strong); background: var(--sunken); }
.hbtn.solid { color: var(--surface); background: var(--ink); border: 1px solid var(--ink); }
.hbtn.solid:hover { opacity: .86; }
.me-chip { height: 38px; padding: 3px 12px 3px 4px; }
.menu-btn { display: none; width: 38px; height: 38px; border-radius: 999px; border: 1px solid var(--line); background: var(--raised); color: var(--ink); place-items: center; cursor: pointer; flex: none; }
.menu-btn svg { width: 18px; height: 18px; }
.m-nav { border-top: 1px solid var(--line); background: var(--raised); }
.m-inner { display: grid; padding-block: 8px 16px; }
.m-inner a { padding: 12px 0; font-size: 16px; font-weight: 500; color: var(--ink); text-decoration: none; border-bottom: 1px solid var(--line); }
.m-inner a:last-child { border-bottom: 0; }
.m-inner a[aria-current="page"] { font-weight: 600; }
.m-sep { height: 8px; }
@media (max-width: 1100px) {
  nav.main { display: none !important; }
  .menu-btn { display: grid; }
  .top-right, nav.main + .top-right { margin-left: auto; }
  .top .bar { gap: 12px; }
}
@media (max-width: 560px) {
  .top .bar { gap: 12px; }
  .hide-s { display: none !important; }
  .me-chip .me-n { display: none; }
}

/* Stats panel */
.stats { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); background: var(--raised); border: 1px solid var(--line); border-radius: var(--r-lg); box-shadow: var(--shadow-sm); overflow: hidden; }
.stat { display: grid; gap: 14px; align-content: start; padding: 28px 28px 26px; position: relative; min-width: 0; }
.stat + .stat::before { content: ""; position: absolute; left: 0; top: 24px; bottom: 24px; width: 1px; background: var(--line); }
.stat-top { display: flex; align-items: center; gap: 10px; }
.stat-ic { width: 36px; height: 36px; border-radius: 10px; background: var(--accent-soft); display: grid; place-items: center; color: var(--ink); flex: none; box-shadow: inset 0 0 0 1px var(--accent-edge); }
.stat-ic svg { width: 19px; height: 19px; }
.stat-ic .pin { width: 10px; height: 10px; box-shadow: inset 0 0 0 1.5px var(--on-yellow); }
.stat-l { font-size: 13px; line-height: 18px; color: var(--muted); font-weight: 500; }
.stat-v { font-size: 52px; line-height: 52px; font-weight: 600; letter-spacing: -.045em; font-variant-numeric: tabular-nums; }
.stat-d { min-height: 26px; }
.stat-d.chips { display: flex; flex-wrap: wrap; gap: 6px; }
.pill { display: inline-flex; align-items: center; height: 24px; padding: 0 9px; border-radius: 999px; background: var(--sunken); font-size: 12px; line-height: 1; color: var(--ink); white-space: nowrap; }
.pill.mono { font-size: 11px; letter-spacing: .02em; }
.pill.more { background: var(--ink); color: var(--surface); }
.cities { font-size: 13px; line-height: 21px; color: var(--muted); }
.cities i { font-style: normal; margin: 0 6px; opacity: .6; }
.stat-d.modes { display: flex; gap: 6px; flex-wrap: wrap; }
.mode-dot { width: 32px; height: 32px; border-radius: 50%; border: 1px solid var(--line); display: grid; place-items: center; color: var(--ink); background: var(--raised); }
.mode-dot svg { width: 16px; height: 16px; display: block; }
@media (max-width: 960px) {
  .stats { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .stat:nth-child(3)::before { display: none; }
  .stat:nth-child(n+3) { border-top: 1px solid var(--line); }
}
@media (max-width: 520px) {
  .stats { grid-template-columns: minmax(0, 1fr); }
  .stat::before { display: none; }
  .stat + .stat { border-top: 1px solid var(--line); }
  .stat { padding: 22px 20px; }
  .stat-v { font-size: 44px; line-height: 44px; }
}

/* Network band */
.netband { position: relative; overflow: hidden; background: var(--hero); color: var(--hero-fg); border-radius: 24px; padding: 40px 44px 44px; display: grid; gap: 36px; isolation: isolate; }
.netband::before { content: ""; position: absolute; inset: 0; z-index: -1; background-image: radial-gradient(circle, rgba(247,246,242,.09) 1.1px, transparent 1.3px); background-size: 16px 16px; -webkit-mask-image: linear-gradient(115deg, transparent 10%, #000 70%); mask-image: linear-gradient(115deg, transparent 10%, #000 70%); }
.nb-head { display: flex; justify-content: space-between; align-items: baseline; gap: 12px 24px; flex-wrap: wrap; }
.nb-sub { color: var(--hero-muted); font-size: 14px; }
.nb-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 0 32px; position: relative; }
.nb-grid::before { content: ""; position: absolute; left: 6px; right: 0; top: 6px; border-top: 1.5px dashed rgba(247,246,242,.28); }
.nb-item { position: relative; display: grid; gap: 6px; align-content: start; padding-top: 34px; min-width: 0; }
.nb-stop { position: absolute; left: 0; top: 0; width: 13px; height: 13px; border-radius: 50%; background: var(--accent); box-shadow: 0 0 0 5px rgba(255,229,102,.16); }
.nb-num { font-size: 64px; line-height: 60px; font-weight: 600; letter-spacing: -.05em; font-variant-numeric: tabular-nums; }
.nb-l { font-size: 15px; font-weight: 500; color: var(--accent); }
.nb-d { font-size: 14px; line-height: 21px; color: var(--hero-muted); max-width: 30ch; margin-top: 4px; }
@media (max-width: 960px) {
  .nb-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 36px 32px; }
  .nb-grid::before { display: none; }
  .nb-item::before { content: ""; position: absolute; left: 6px; right: 0; top: 6px; border-top: 1.5px dashed rgba(247,246,242,.28); }
}
@media (max-width: 560px) {
  .netband { padding: 22px 18px 24px; border-radius: 20px; gap: 16px; }
  .netband .nb-head { gap: 4px; }
  .netband .nb-sub { font-size: 13px; }
  .netband .nb-grid { grid-template-columns: minmax(0, 1fr); gap: 12px; }
  .netband .nb-grid::before { display: none; }
  .netband .nb-item { padding: 0 0 0 30px; grid-template-columns: auto minmax(0, 1fr); grid-template-areas: "num l" "d d"; column-gap: 12px; row-gap: 2px; align-items: baseline; }
  .netband .nb-item::before { left: 6px; right: auto; top: 6px; bottom: -12px; border-top: 0; border-left: 1.5px dashed rgba(247,246,242,.28); }
  .netband .nb-item:last-child { padding-bottom: 0; }
  .netband .nb-item:last-child::before { display: none; }
  .netband .nb-num { grid-area: num; font-size: 30px; line-height: 28px; }
  .netband .nb-l { grid-area: l; font-size: 14px; }
  .netband .nb-d { grid-area: d; font-size: 13.5px; line-height: 19px; max-width: none; }
}

/* Density pass: less empty space */
main { padding-block: 28px 56px; }
.view { gap: 24px; }
.view > .section-head { margin-bottom: -8px; }
.section-head h2 { font-size: 21px; line-height: 28px; }
.hero-band .wrap { padding-block: 36px 92px; gap: 24px; }
.hero-band h1 { margin-top: 12px; }
.hero-band .lede { margin-top: 14px; }
.hero-map { max-height: 300px; }
@media (max-width: 900px) { .hero-band .wrap { padding-block: 28px 88px; } .hero-map { max-height: 240px; } }
.search-wrap { margin-top: -72px; }
.search { padding: 20px; gap: 16px; }
.netband { padding: 26px 32px 30px; gap: 22px; border-radius: 20px; }
.nb-item { padding-top: 26px; gap: 4px; }
.nb-num { font-size: 52px; line-height: 50px; }
.nb-d { margin-top: 2px; }
.how { gap: 12px; }
.how-step { padding: 18px 20px; gap: 6px; }
.lanes { gap: 12px; }
.lane { padding: 16px 18px; gap: 10px; }
.services { gap: 12px 20px; }
.cta-band { padding: 26px 32px; }
.cta-band h2 { font-size: 24px; line-height: 30px; }
.foot { padding-block: 28px !important; gap: 20px; }
.pad { padding: 20px; }
.svc-cards, .so-opts, .so-hubs { gap: 12px; }
.svc-card { padding: 18px 20px; gap: 8px; }
.so-opt { padding: 16px 18px; gap: 6px; }
.two-col, .so-build, .detail-grid, .book-layout { gap: 20px; }
.page-head { gap: 8px; }
.page-head h1 { font-size: 36px; line-height: 40px; }
.lede-l { font-size: 16px; line-height: 25px; }
.con-main { gap: 20px; }
.kpis { gap: 12px; }
.kpi { padding: 14px 18px; }
.opts { gap: 10px; }
.opt { padding: 20px; }
.login-card { padding: 36px 36px; }
@media (max-width: 600px) { .pad { padding: 16px; } .netband { padding: 22px 18px 24px; } .cta-band { padding: 22px 20px; } .page-head h1 { font-size: 28px; line-height: 34px; } }

/* Journey services */
.jrny { list-style: none; margin: 0; padding: 22px 0 0; display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 12px; position: relative; }
.jrny::before { content: ""; position: absolute; left: 22px; right: 22px; top: 6px; border-top: 1.5px dashed var(--line-strong); opacity: .7; }
.j-card { position: relative; display: flex; min-width: 0; }
.j-stop { position: absolute; top: -22px; left: 16px; width: 13px; height: 13px; border-radius: 50%; background: var(--yellow); box-shadow: 0 0 0 4px var(--surface), inset 0 0 0 1.5px var(--on-yellow); z-index: 1; }
.j-in { display: flex; flex-direction: column; gap: 8px; padding: 18px; width: 100%; text-decoration: none; color: var(--ink); border-radius: 16px; transition: transform .15s ease, border-color .15s, box-shadow .15s; }
.j-in:hover { transform: translateY(-3px); border-color: var(--ink); box-shadow: var(--shadow-pop); }
.j-in:hover .j-ic { background: var(--accent); }
.j-in:hover .j-cta svg { transform: translateX(3px); }
.j-stage { font-size: 12px; line-height: 16px; color: var(--muted); font-weight: 500; }
.j-stage .mono { color: var(--ink); margin-right: 4px; }
.j-ic { width: 40px; height: 40px; border-radius: 12px; display: grid; place-items: center; background: var(--accent-soft); box-shadow: inset 0 0 0 1px var(--accent-edge); margin-top: 4px; transition: background .15s; }
.j-ic svg { width: 20px; height: 20px; }
.j-t { font-size: 17px; line-height: 22px; font-weight: 600; letter-spacing: -.01em; margin-top: 4px; }
.j-d { font-size: 13px; line-height: 20px; color: var(--muted); flex: 1; }
.j-chips { display: flex; flex-wrap: wrap; gap: 4px; }
.j-chips .pill { height: 22px; font-size: 11px; padding: 0 8px; }
.j-cta { display: inline-flex; align-items: center; gap: 6px; font-size: 13px; font-weight: 600; margin-top: 6px; padding-top: 12px; border-top: 1px solid var(--line); }
.j-cta svg { width: 14px; height: 14px; transition: transform .15s; }
@media (max-width: 1000px) {
  .jrny { display: flex; overflow-x: auto; scroll-snap-type: x mandatory; padding-bottom: 8px; margin-inline: calc(-1 * max(16px, env(safe-area-inset-left, 0px))); padding-inline: max(16px, env(safe-area-inset-left, 0px)); scrollbar-width: thin; }
  .jrny::before { left: 38px; right: auto; width: calc(5 * 248px); }
  .j-card { flex: 0 0 236px; scroll-snap-align: start; }
}
@media (max-width: 560px) {
  .jrny { display: grid; grid-template-columns: minmax(0, 1fr); overflow: visible; margin: 0; padding: 0 0 0 30px; gap: 12px; }
  .jrny::before { left: 6px; right: auto; top: 10px; bottom: 30px; width: 0; border-top: 0; border-left: 1.5px dashed var(--line-strong); }
  .j-card { flex: none; }
  .j-stop { top: 20px; left: -30px; }
}
@media (prefers-reduced-motion: reduce) { .j-in:hover { transform: none; } }

/* Buttons v3 */
.btn { border-radius: 999px; transition: background .15s, box-shadow .15s, border-color .15s, transform .12s; }
.btn-primary { background: var(--accent); color: var(--on-accent); font-weight: 600; letter-spacing: -.005em;
  box-shadow: inset 0 0 0 1px rgba(150, 110, 0, .22), inset 0 1px 0 rgba(255, 255, 255, .55), 0 1px 1px rgba(14, 14, 14, .06), 0 8px 18px -10px rgba(190, 140, 0, .6); }
.btn-primary:hover { background: var(--accent-strong); box-shadow: inset 0 0 0 1px rgba(150, 110, 0, .3), inset 0 1px 0 rgba(255, 255, 255, .5), 0 1px 1px rgba(14, 14, 14, .08), 0 12px 24px -10px rgba(190, 140, 0, .75); }
.btn-primary:active { transform: translateY(1px); }
.btn-primary:focus-visible { outline: 2px solid var(--ink); outline-offset: 3px; }
.btn-primary[disabled] { box-shadow: none; }
.btn-secondary { border-color: var(--line-strong); background: var(--raised); }
.btn-secondary:hover { border-color: var(--ink); background: var(--raised); }
.btn-cta { justify-content: space-between; gap: 16px; padding: 6px 6px 6px 24px !important; min-height: 48px; }
.btn-cta::after { content: ""; flex: none; width: 36px; height: 36px; border-radius: 50%; background: var(--on-accent) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M3 8h10M9 4l4 4-4 4' fill='none' stroke='white' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center / 15px no-repeat; transition: transform .18s ease; }
.btn-cta:hover::after { transform: translateX(3px); }
.btn-cta.btn-sm, .opt-price .btn-cta { min-height: 44px; padding: 5px 5px 5px 20px !important; font-size: 15px; }
.opt-price .btn-cta::after, .btn-cta.btn-sm::after { width: 34px; height: 34px; }
.btn-cta.btn-lg { min-height: 54px; padding: 7px 7px 7px 28px !important; font-size: 16px; }
.btn-cta.btn-lg::after { width: 40px; height: 40px; background-size: 16px; }
.btn-go { font-size: 16px; }
@media (max-width: 560px) { .search-foot .btn-go, .qf-foot .btn-cta { width: 100%; } }
@media (prefers-reduced-motion: reduce) { .btn-cta:hover::after { transform: none; } .btn-primary:active { transform: none; } }

/* Roles */
.b-lemon { background: var(--accent); color: var(--on-accent); box-shadow: inset 0 0 0 1px var(--accent-edge); }
.role-sum { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; }
@media (max-width: 760px) { .role-sum { grid-template-columns: minmax(0, 1fr); } }
.rs { padding: 16px 18px; display: grid; gap: 8px; justify-items: start; }
.rs-n { font-size: 32px; line-height: 34px; font-weight: 600; letter-spacing: -.03em; font-variant-numeric: tabular-nums; }
table.perms { min-width: 640px; }
table.perms th:not(:first-child), table.perms td:not(:first-child) { text-align: center; width: 170px; }
.pm { display: inline-grid; place-items: center; }
.pm.yes { width: 22px; height: 22px; border-radius: 50%; background: var(--ink); color: var(--surface); }
.pm.yes svg { width: 13px; height: 13px; }
.pm.no { color: var(--muted); }
.pm.part { font-size: 12px; font-weight: 500; background: var(--yellow-soft); padding: 2px 8px; border-radius: 999px; }

/* Site settings */
.brand-img { display: block; width: auto; max-width: 220px; object-fit: contain; }
.cf-tabs { justify-self: start; }
.cf-sec { display: grid; gap: 14px; }
.site-prev { overflow: hidden; padding: 0; }
.sp-bar { display: flex; align-items: center; gap: 24px; padding: 14px 20px; border-bottom: 1px solid var(--line); background: var(--raised); }
.sp-brand { font-size: 19px; }
.sp-links { display: flex; gap: 14px; flex: 1; } .sp-links i { display: block; width: 52px; height: 8px; border-radius: 4px; background: var(--sunken); }
.sp-btn { height: 30px; padding: 0 14px; border-radius: 999px; background: var(--ink); color: var(--surface); font-size: 12px; font-weight: 500; display: inline-flex; align-items: center; }
.sp-hero { background: var(--hero); color: var(--hero-fg); padding: 22px 24px; display: flex; align-items: center; justify-content: space-between; gap: 16px; flex-wrap: wrap; }
.sp-hero.big { display: grid; justify-content: start; gap: 10px; padding: 28px; }
.sp-h { font-size: 24px; line-height: 28px; font-weight: 600; letter-spacing: -.03em; }
.sp-hero.big .sp-h { font-size: 32px; line-height: 36px; }
.sp-h em { font-style: normal; color: var(--accent); }
.sp-eb { font-size: 12px; color: var(--hero-muted); }
.sp-l { font-size: 14px; line-height: 21px; color: var(--hero-muted); max-width: 60ch; }
.sp-cta { pointer-events: none; }
.swatches { display: flex; flex-wrap: wrap; gap: 8px; }
.sw { display: inline-flex; align-items: center; gap: 8px; padding: 6px 12px 6px 6px; border-radius: 999px; border: 1px solid var(--line); background: var(--raised); cursor: pointer; font-size: 13px; color: var(--ink); }
.sw span { width: 22px; height: 22px; border-radius: 50%; box-shadow: inset 0 0 0 1px rgba(14,14,14,.15); }
.sw[aria-pressed="true"] { border-color: var(--ink); box-shadow: 0 0 0 1px var(--ink); }
.cf-color { display: flex; gap: 12px; align-items: end; flex-wrap: wrap; }
.cf-color input[type=color] { width: 48px; height: 44px; border: 1px solid var(--line-strong); border-radius: var(--r-sm); padding: 2px; background: var(--raised); cursor: pointer; }
.cf-color .f { width: 180px; }
.up-row { display: flex; gap: 12px; align-items: center; flex-wrap: wrap; }
.logo-thumb { height: 44px; padding: 6px 12px; border: 1px solid var(--line); border-radius: var(--r-sm); background: var(--raised); display: inline-flex; align-items: center; }
.logo-thumb img { height: 30px; width: auto; }
input[type=range] { accent-color: var(--ink); width: 100%; }
.type-prev { border: 1px dashed var(--line-strong); border-radius: var(--r-md); padding: 18px 20px; display: grid; gap: 8px; }
.tp-h { font-size: 28px; line-height: 32px; font-weight: 600; letter-spacing: -.03em; }
.tp-n { font-size: 15px; }
.adj-row { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 10px; }
@media (max-width: 760px) { .adj-row { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.adj { display: grid; gap: 6px; font-size: 13px; font-weight: 500; }
.adj-in { display: flex; align-items: center; gap: 6px; }
.adj-in .unit { color: var(--muted); font-size: 13px; }
.num-in { width: 100%; min-width: 72px; border: 1px solid var(--line-strong); border-radius: var(--r-sm); background: var(--raised); padding: 7px 10px; font-family: var(--font-mono); font-size: 14px; text-align: right; }
.num-in:focus { outline: none; border-color: var(--ink); box-shadow: 0 0 0 1px var(--ink); }
.num-in.bad, input.bad { border-color: var(--danger) !important; box-shadow: 0 0 0 1px var(--danger) !important; }
table.rates { min-width: 900px; }
table.rates td { padding: 8px 10px; }
table.rates .num-in { width: 104px; min-width: 0; }
.adj .num-in { min-width: 0; }
.th-u { font-weight: 400; font-size: 11px; margin-top: 2px; }
.savebar { position: sticky; bottom: calc(env(safe-area-inset-bottom, 0px) + 16px); display: flex; justify-content: space-between; align-items: center; gap: 12px; padding: 10px 10px 10px 20px; background: var(--raised); border: 1px solid var(--ink); border-radius: 999px; box-shadow: var(--shadow-pop); flex-wrap: wrap; z-index: 5; }
@media (max-width: 560px) { .savebar { border-radius: 16px; padding: 10px 12px; } .savebar > span:first-child .note { display: none; } .savebar .panel-actions { margin-left: auto; } }

/* Language picker */
.lang-dd { display: inline-flex; align-items: center; gap: 6px; height: 38px; padding: 0 12px; border-radius: 999px; border: 1px solid var(--line); background: transparent; color: var(--ink); font: 500 13px/1 var(--font-sans); letter-spacing: .02em; cursor: pointer; min-width: 0; width: auto; box-shadow: none; }
.lang-dd:hover { border-color: var(--line-strong); background: var(--raised); }
.lang-dd svg { width: 16px; height: 16px; flex: none; }
.lang-dd[aria-expanded="true"] { border-color: var(--ink); }
#cf-lang svg, .fx-ic svg { max-width: 18px; }

.top.nav-snug nav.main { gap: 18px; }
.top.nav-tight nav.main { display: none !important; }
.top.nav-tight .menu-btn { display: grid; }
.top.nav-tight .top-right { margin-left: auto; }
.top.nav-nocta .hbtn.solid { display: none; }

.est-note { display: flex; gap: 12px; align-items: flex-start; padding: 14px 16px; border-radius: var(--r-md); background: var(--yellow-soft, var(--accent-soft)); border: 1px solid var(--accent-edge); }
.est-note p { margin: 2px 0 0; font-size: 13px; line-height: 19px; color: var(--ink-muted, var(--muted)); max-width: 75ch; }
.est-note strong { font-size: 14px; }
.est-ic { flex: none; width: 20px; height: 20px; margin-top: 1px; } .est-ic svg { width: 20px; height: 20px; }

/* Full process sheet */
body.no-scroll { overflow: hidden; }
.sheet-back { position: fixed; inset: 0; z-index: 60; background: rgba(14,14,14,.42); display: flex; justify-content: flex-end; }
.sheet { width: min(720px, 100%); height: 100%; background: var(--surface); box-shadow: var(--shadow-pop); display: flex; flex-direction: column; animation: sheetIn .18s ease-out; }
@keyframes sheetIn { from { transform: translateX(24px); opacity: 0; } to { transform: none; opacity: 1; } }
.sheet-head { display: flex; justify-content: space-between; gap: 16px; align-items: flex-start; padding: calc(env(safe-area-inset-top, 0px) + 20px) max(20px, env(safe-area-inset-right, 0px)) 16px 24px; border-bottom: 1px solid var(--line); }
.sheet-head h2 { font-size: 24px; line-height: 30px; letter-spacing: -.02em; margin: 2px 0 4px; }
.icon-x { flex: none; width: 38px; height: 38px; border-radius: 50%; border: 1px solid var(--line); background: var(--raised); color: var(--ink); font-size: 22px; line-height: 1; cursor: pointer; }
.icon-x:hover { border-color: var(--ink); }
.sheet-body { overflow-y: auto; padding: 20px max(20px, env(safe-area-inset-right, 0px)) calc(env(safe-area-inset-bottom, 0px) + 24px) 24px; display: grid; gap: 20px; align-content: start; }
.ps { list-style: none; margin: 0; padding: 0; display: grid; }
.ps-step { display: grid; grid-template-columns: 32px 1fr; gap: 14px; position: relative; padding-bottom: 20px; }
.ps-step:not(:last-child)::before { content: ""; position: absolute; left: 15px; top: 32px; bottom: 0; width: 2px; background: var(--line); }
.ps-step.ps-k-main::before { background: var(--yellow); }
.ps-dot { width: 32px; height: 32px; border-radius: 50%; display: grid; place-items: center; background: var(--sunken); color: var(--ink); font: 600 13px/1 var(--font-mono); border: 1px solid var(--line-strong); }
.ps-step.ps-k-main > .ps-dot, .ps-step.ps-k-importC > .ps-dot { background: var(--accent); color: var(--on-accent); border-color: var(--accent-edge); }
.ps-main { display: grid; gap: 6px; min-width: 0; }
.ps-top { display: flex; justify-content: space-between; gap: 6px 12px; flex-wrap: wrap; align-items: baseline; }
.ps-top strong { font-size: 15px; }
.ps-meta { font-size: 13px; color: var(--muted); }
.ps-main p { margin: 0; font-size: 14px; line-height: 21px; color: var(--ink); }
.ps-who { display: flex; flex-wrap: wrap; gap: 6px; }
.ps-docs { display: flex; flex-wrap: wrap; gap: 6px; align-items: center; }
.ps-doc { font-size: 12px; padding: 3px 8px; border-radius: 6px; border: 1px dashed var(--line-strong); color: var(--ink); }
.ps-tax { font-size: 12px; }
.ps-foot { display: flex; gap: 10px; flex-wrap: wrap; }
.linkbtn { background: none; border: 0; padding: 0; font: inherit; color: var(--ink); text-decoration: underline; text-underline-offset: 2px; cursor: pointer; }
/* Import checks */
.ichk { display: grid; gap: 14px; }
.ichk-h { display: flex; justify-content: space-between; gap: 8px 16px; flex-wrap: wrap; align-items: flex-end; }
.ichk-h .small { max-width: 34ch; }
.ichk-list { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px 20px; }
.sheet .ichk-list { grid-template-columns: 1fr; }
@media (max-width: 760px) { .ichk-list { grid-template-columns: 1fr; } }
.ichk-list li { display: grid; grid-template-columns: 26px 1fr; gap: 10px; min-width: 0; }
.ichk-n { width: 26px; height: 26px; border-radius: 50%; display: grid; place-items: center; background: var(--ink); color: var(--surface); font-size: 12px; }
.ichk-list strong { font-size: 14px; }
.ichk-list p { margin: 3px 0 0; font-size: 13px; line-height: 19px; color: var(--muted); }
.ichk-case { display: flex; gap: 8px; margin-top: 8px; padding: 10px 12px; border-radius: var(--r-sm); background: var(--danger-soft); }
.ichk-case svg { width: 16px; height: 16px; color: var(--danger); flex: none; margin-top: 2px; }
.ichk-case p { margin: 0; color: var(--ink); font-size: 13px; }

.ichk-cta { display: flex; gap: 12px 20px; align-items: center; justify-content: space-between; flex-wrap: wrap; padding: 14px 16px; border-radius: var(--r-md); background: var(--sunken); border: 1px solid var(--line); }
.ichk-cta-t { flex: 1 1 320px; min-width: 0; }
.ichk-cta-t strong { font-size: 14px; }
.ichk-cta-t p { margin: 3px 0 0; font-size: 13px; line-height: 19px; color: var(--muted); }
.cta-fee { font-weight: 500; opacity: .8; margin-left: 2px; }
.cs-offer { display: grid; gap: 10px; }
.cs-price { display: flex; align-items: baseline; gap: 8px; } .cs-price .mono { font-size: 28px; font-weight: 600; letter-spacing: -.02em; }
.cs-list { margin: 0; padding-left: 18px; display: grid; gap: 6px; font-size: 14px; line-height: 20px; }
.cs-err:not(:empty) { color: var(--danger); }
.cs-done { display: grid; gap: 10px; justify-items: start; }
.cs-ok-ic { width: 40px; height: 40px; border-radius: 50%; display: grid; place-items: center; background: var(--accent); color: var(--on-accent); }
.cs-ok-ic svg { width: 20px; height: 20px; }

/* Consultation scheduler */
.sched { display: grid; gap: 12px; }
.sched-h { display: flex; justify-content: space-between; align-items: baseline; gap: 6px 12px; flex-wrap: wrap; }
.sched-days { display: flex; gap: 8px; overflow-x: auto; padding-bottom: 4px; scrollbar-width: thin; }
.sday { flex: none; display: grid; gap: 2px; justify-items: start; padding: 8px 12px; border-radius: var(--r-sm); border: 1px solid var(--line); background: var(--raised); color: var(--ink); font: 500 13px/1.2 var(--font-sans); cursor: pointer; }
.sday-n { font-size: 11px; color: var(--muted); font-weight: 400; }
.sday[aria-pressed="true"] { border-color: var(--ink); box-shadow: 0 0 0 1px var(--ink); }
.sday:disabled { opacity: .45; cursor: default; }
.sched-times { display: grid; grid-template-columns: repeat(auto-fill, minmax(72px, 1fr)); gap: 8px; }
.stime { white-space: nowrap; }
.stime { height: 38px; border-radius: var(--r-sm); border: 1px solid var(--line-strong); background: var(--raised); color: var(--ink); font-size: 14px; cursor: pointer; }
.stime:hover:not(:disabled) { border-color: var(--ink); }
.stime[aria-pressed="true"] { background: var(--accent); color: var(--on-accent); border-color: var(--accent-edge); font-weight: 600; }
.stime:disabled { text-decoration: line-through; opacity: .4; cursor: default; }
.sched-plat { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
.sched-plat .seg button { display: inline-flex; align-items: center; gap: 6px; }
.sched-plat .seg svg { width: 16px; height: 16px; }
.sched-sel { margin: 0; font-size: 14px; }
.cs-when { display: grid; gap: 2px; } .cs-when strong { font-size: 16px; }
.cs-link { display: grid; gap: 2px; } .cs-link a { color: var(--ink); word-break: break-all; }
.cf-consult { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 10px; }
@media (max-width: 760px) { .cf-consult { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.req-call { margin-bottom: 4px; }

/* Consultation calls admin */
.av-row { display: flex; gap: 8px 16px; align-items: center; flex-wrap: wrap; }
.av-k { font-size: 14px; font-weight: 500; min-width: 140px; }
.av-days { display: flex; gap: 6px; flex-wrap: wrap; }
.av-day { min-width: 52px; height: 38px; padding: 0 10px; border-radius: var(--r-sm); border: 1px solid var(--line-strong); background: var(--raised); color: var(--ink); font: 500 13px/1 var(--font-sans); cursor: pointer; text-transform: capitalize; }
.av-day[aria-pressed="true"] { background: var(--ink); color: var(--surface); border-color: var(--ink); }
.av-day:disabled, .seg button:disabled { cursor: default; opacity: .6; }
.av-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; }
@media (max-width: 760px) { .av-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.av-tz { display: flex; align-items: center; gap: 8px 14px; flex-wrap: wrap; min-width: 0; }
.av-tz .dd { min-width: 260px; max-width: 100%; }
.av-off { display: flex; gap: 8px; flex-wrap: wrap; align-items: center; }
.chip-off { display: inline-flex; align-items: center; gap: 6px; padding: 5px 6px 5px 10px; border-radius: 999px; background: var(--sunken); font-size: 13px; }
.chip-off button { width: 22px; height: 22px; border-radius: 50%; border: 0; background: var(--raised); color: var(--ink); cursor: pointer; line-height: 1; }
.av-add { display: inline-flex; gap: 8px; align-items: center; }
.av-add input { height: 34px; border: 1px solid var(--line-strong); border-radius: var(--r-sm); padding: 0 8px; background: var(--raised); color: var(--ink); font: inherit; }
.av-prev { display: flex; gap: 8px; flex-wrap: wrap; }
.av-p { display: inline-flex; align-items: center; padding: 0 12px; width: auto; cursor: default; }
table.calls td { vertical-align: top; }

.of-list { margin: 0; padding: 0; list-style: none; display: grid; gap: 8px; counter-reset: of; }
.of-list li { display: flex; gap: 8px; align-items: center; }
.of-list li::before { counter-increment: of; content: counter(of); flex: none; width: 24px; height: 24px; border-radius: 50%; background: var(--sunken); display: grid; place-items: center; font: 500 12px/1 var(--font-mono); }
.of-list input { flex: 1; min-width: 0; height: 40px; border: 1px solid var(--line-strong); border-radius: var(--r-sm); padding: 0 12px; background: var(--raised); color: var(--ink); font: inherit; font-size: 14px; }
.of-act { display: inline-flex; gap: 4px; }
.icon-sm { width: 32px; height: 32px; border-radius: 50%; border: 1px solid var(--line); background: var(--raised); color: var(--ink); cursor: pointer; }
.icon-sm:disabled { opacity: .35; cursor: default; }

.ichk-btns { display: flex; gap: 10px; align-items: center; flex-wrap: wrap; }
.ask-ai { display: inline-flex; align-items: center; gap: 8px; }
.ask-ai .spark, .cs-ai .spark { width: 16px; height: 16px; color: var(--ink); }
.ask-free { font-size: 12px; }
.cs-ai { display: flex; align-items: center; gap: 10px; padding: 12px 14px; border-radius: var(--r-md); border: 1px dashed var(--line-strong); flex-wrap: wrap; }
.cs-ai > span:nth-child(2) { flex: 1 1 220px; font-size: 14px; }
.back-link { display: inline-flex; gap: 6px; font-size: 14px; color: var(--ink); text-decoration: none; margin-bottom: 4px; }
.back-link:hover { text-decoration: underline; }
.msg.me .b { white-space: pre-line; }

/* Billing */
.pay-card { display: grid; gap: 14px; }
.pay-h { display: flex; justify-content: space-between; gap: 12px; align-items: flex-start; flex-wrap: wrap; }
.pay-amt { display: grid; justify-items: end; } .pay-amt .mono { font-size: 26px; font-weight: 600; letter-spacing: -.02em; }
.pay-btns { display: flex; gap: 10px; flex-wrap: wrap; align-items: center; }
.pay-btns .btn { display: inline-flex; align-items: center; gap: 8px; }
.pay-err:not(:empty) { color: var(--danger); }
.pay-done { display: grid; grid-template-columns: 40px 1fr; gap: 14px; align-items: start; }
.pay-done p { margin: 4px 0 0; }
.pay-status { display: flex; gap: 8px 12px; align-items: center; flex-wrap: wrap; padding: 12px 14px; border-radius: var(--r-md); background: var(--sunken); }
.pay-status .btn { display: inline-flex; align-items: center; gap: 6px; margin-left: auto; }
table.bills td { vertical-align: top; }

.bank-card { display: grid; gap: 10px; padding: 14px; border: 1px solid var(--line); border-radius: var(--r-md); background: var(--raised); }
.bank-h { display: flex; justify-content: space-between; align-items: center; gap: 8px; }
.bank-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; }
@media (max-width: 760px) { .bank-grid { grid-template-columns: 1fr; } }
.alert.soft .btn { margin-left: auto; align-self: center; }
.compare-tray .tray-ghost { background: transparent; color: var(--surface); border: 1px solid color-mix(in srgb, var(--surface) 55%, transparent); box-shadow: none; }
.compare-tray .tray-ghost:hover { background: color-mix(in srgb, var(--surface) 12%, transparent); border-color: var(--surface); }
.con-nav button[aria-current="page"] .cn { color: inherit; }

/* Header v3 (desktop refinements) */
.top { transition: box-shadow .2s, background-color .2s; }
.top .bar { min-height: 68px; transition: min-height .2s; }
.top.scrolled { box-shadow: 0 1px 0 var(--line), 0 8px 24px -16px rgba(14,14,14,.18); border-bottom-color: transparent; }
@supports (backdrop-filter: blur(8px)) { .top.scrolled { background: color-mix(in srgb, var(--raised) 86%, transparent); backdrop-filter: saturate(1.4) blur(12px); -webkit-backdrop-filter: saturate(1.4) blur(12px); } }
.top.scrolled .bar { min-height: 58px; }
nav.main { gap: 6px; align-items: center; }
nav.main > a, .nav-dd-btn { position: relative; display: inline-flex; align-items: center; gap: 6px; height: 36px; padding: 0 14px; border-radius: 999px; font: 500 14px/1 var(--font-sans); color: var(--muted); background: none; border: 0; cursor: pointer; text-decoration: none; transition: color .12s, background-color .12s; }
nav.main > a:hover, .nav-dd-btn:hover, .nav-dd-btn[aria-expanded="true"] { color: var(--ink); background: var(--sunken) !important; }
nav.main > a[aria-current="page"], .nav-dd-btn[aria-current="page"] { color: var(--ink); }
nav.main > a[aria-current="page"]::after, .nav-dd-btn[aria-current="page"]::after { content: ""; position: absolute; left: 50%; right: auto; bottom: -3px; width: 6px; height: 6px; margin-left: -3px; border-radius: 50%; background: var(--yellow); box-shadow: 0 0 0 2px var(--raised); }
.top.scrolled nav.main > a[aria-current="page"]::after, .top.scrolled .nav-dd-btn[aria-current="page"]::after { bottom: -1px; }
.nav-dd { position: relative; }
.nav-dd-btn svg { width: 12px; height: 12px; transition: transform .15s; }
.nav-dd-btn[aria-expanded="true"] svg { transform: rotate(180deg); }
.svc-panel { position: absolute; top: calc(100% + 10px); left: 50%; transform: translateX(-50%); width: 420px; padding: 8px; display: grid; gap: 2px; background: var(--raised); border: 1px solid var(--line); border-radius: 16px; box-shadow: var(--shadow-pop); z-index: 20; animation: svcIn .14s ease-out; }
.svc-panel::before { content: ""; position: absolute; left: 0; right: 0; top: -12px; height: 12px; }
@keyframes svcIn { from { opacity: 0; transform: translate(-50%, -4px); } to { opacity: 1; transform: translate(-50%, 0); } }
.svc-item { display: grid; grid-template-columns: 40px 1fr; gap: 12px; align-items: center; padding: 10px 12px; border-radius: 12px; color: var(--ink); text-decoration: none; }
.svc-item:hover, .svc-item:focus-visible, .svc-item[aria-current] { background: var(--sunken); outline: none; }
.svc-item strong { display: block; font-size: 14px; font-weight: 600; }
.svc-item .note { display: block; font-size: 13px; line-height: 18px; margin-top: 2px; }
.svc-ic { width: 40px; height: 40px; border-radius: 10px; display: grid; place-items: center; background: var(--accent-soft); color: var(--ink); box-shadow: inset 0 0 0 1px var(--accent-edge); }
.svc-ic svg { width: 20px; height: 20px; }
.svc-foot { display: flex; align-items: center; gap: 8px; margin-top: 4px; padding: 12px; border-top: 1px solid var(--line); font-size: 13px; font-weight: 500; color: var(--ink); text-decoration: none; border-radius: 0 0 10px 10px; }
.svc-foot:hover { background: var(--sunken); }
.svc-foot span:nth-child(2) { flex: 1; }
.svc-foot .spark-ic svg { width: 16px; height: 16px; display: block; }
.top-right { gap: 4px; }
.hdiv { width: 1px; height: 20px; background: var(--line); margin: 0 6px; }
.lang-dd { border-color: transparent; background: transparent; padding: 0 10px; }
.lang-dd:hover, .lang-dd[aria-expanded="true"] { background: var(--sunken); border-color: transparent; }
.hbtn.ghost { border-color: transparent; background: transparent; }
.hbtn.ghost:hover { background: var(--sunken); border-color: transparent; }
.hbtn.solid { margin-left: 6px; padding: 0 14px 0 18px; gap: 8px; }
.hbtn.solid .hb-arrow { width: 14px; height: 14px; transition: transform .15s; }
.hbtn.solid:hover { opacity: 1; background: color-mix(in srgb, var(--ink) 86%, var(--surface)); }
.hbtn.solid:hover .hb-arrow { transform: translateX(2px); }
.me-chip { border: 1px solid var(--line); }
@media (max-width: 1100px) { .hdiv { display: none; } .svc-panel { display: none !important; } }

nav.main .svc-panel a { padding: 10px 12px; color: var(--ink); background: none; font-size: 14px; white-space: normal; }
nav.main .svc-panel .svc-foot { padding: 12px; font-size: 13px; }
nav.main .svc-panel a:hover, nav.main .svc-panel a:focus-visible, nav.main .svc-panel a[aria-current] { background: var(--sunken) !important; }
nav.main .svc-panel a::after { content: none !important; }
.top.nav-snug nav.main { gap: 2px; }
.top.nav-snug nav.main > a, .top.nav-snug .nav-dd-btn { padding: 0 9px; }
nav.main .svc-panel a { border-radius: 12px; }
nav.main .svc-panel .svc-foot { border-radius: 0 0 12px 12px; }
.svc-panel { width: 452px; }

/* Sourcing v2 */
.so-hero { display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(0, .9fr); gap: 32px; align-items: center; padding: 40px; border-radius: 24px; background: var(--hero); color: var(--hero-fg); position: relative; overflow: hidden; }
.so-hero::before { content: ""; position: absolute; inset: 0; background-image: radial-gradient(circle, color-mix(in srgb, var(--hero-fg) 14%, transparent) 1px, transparent 1.4px); background-size: 14px 14px; mask-image: linear-gradient(110deg, transparent 35%, #000 85%); -webkit-mask-image: linear-gradient(110deg, transparent 35%, #000 85%); pointer-events: none; }
.so-hero > * { position: relative; }
.so-hero-t { display: grid; gap: 18px; justify-items: start; }
.so-hero h1 { font-size: 44px; line-height: 48px; letter-spacing: -.035em; font-weight: 600; text-wrap: balance; margin: 0; }
.so-hero h1 em { font-style: normal; color: var(--accent); }
.so-hero .lede { margin: 0; color: var(--hero-muted); font-size: 16px; line-height: 25px; max-width: 56ch; }
.so-hero .eyebrow { color: var(--hero-muted); }
.so-hero-cta { display: flex; gap: 10px; flex-wrap: wrap; }
.so-ghost { color: var(--hero-fg); border: 1px solid color-mix(in srgb, var(--hero-fg) 30%, transparent); background: transparent; }
.so-ghost:hover { border-color: var(--hero-fg); background: color-mix(in srgb, var(--hero-fg) 8%, transparent); }
.so-facts { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 16px; margin: 8px 0 0; padding-top: 18px; border-top: 1px solid color-mix(in srgb, var(--hero-fg) 14%, transparent); width: 100%; }
.so-facts div { display: grid; gap: 4px; }
.so-facts dt { font-size: 22px; font-weight: 600; color: var(--accent); }
.so-facts dd { margin: 0; font-size: 12px; line-height: 16px; color: var(--hero-muted); }
.so-sample { background: var(--raised); color: var(--ink); border-radius: 18px; padding: 18px; display: grid; gap: 4px; box-shadow: 0 30px 60px -30px rgba(0,0,0,.6); transform: rotate(-1deg); }
.ss-h { display: flex; justify-content: space-between; align-items: flex-start; gap: 10px; padding-bottom: 10px; }
.ss-h > div { display: grid; gap: 2px; } .ss-k { font-size: 12px; color: var(--muted); } .ss-h strong { font-size: 15px; }
.ss-cols, .ss-row { display: grid; grid-template-columns: minmax(0, 1.5fr) 64px 56px 92px; gap: 8px; align-items: center; }
.ss-cols { font-size: 11px; padding: 6px 10px; border-bottom: 1px solid var(--line); }
.ss-row { padding: 10px; border-radius: 10px; position: relative; font-size: 13px; }
.ss-row > span:first-child { display: grid; gap: 2px; min-width: 0; }
.ss-row .note { font-size: 12px; }
.ss-row.top { background: var(--accent-soft); box-shadow: inset 0 0 0 1px var(--accent-edge); }
.ss-score { display: flex; align-items: center; gap: 6px; }
.ss-bar { flex: 1; height: 6px; border-radius: 3px; background: var(--sunken); overflow: hidden; } .ss-bar i { display: block; height: 100%; background: var(--ink); border-radius: 3px; }
.ss-tag { grid-column: 1 / -1; justify-self: start; font-size: 11px; font-weight: 500; padding: 2px 8px; border-radius: 999px; background: var(--ink); color: var(--surface); margin-top: -2px; }
.ss-tag.muted { background: var(--sunken); color: var(--muted); }
.ss-foot { padding: 10px 10px 2px; border-top: 1px solid var(--line); margin-top: 6px; font-size: 12px; }
.so-sh { align-items: flex-end; } .so-sh > div { display: grid; gap: 4px; }
.so-phases { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; align-items: start; }
.so-phase { display: grid; gap: 12px; padding: 18px; border-radius: 18px; background: var(--sunken); }
.so-phase header { display: grid; grid-template-columns: 32px 1fr; gap: 12px; align-items: start; }
.so-phase h3 { margin: 4px 0 2px; font-size: 18px; letter-spacing: -.01em; }
.so-phase header .note { margin: 0; font-size: 13px; line-height: 18px; }
.ph-n { width: 32px; height: 32px; border-radius: 50%; display: grid; place-items: center; background: var(--ink); color: var(--surface); font-size: 14px; font-weight: 600; }
.ph-list { display: grid; gap: 8px; }
.so-row { display: grid; grid-template-columns: 36px minmax(0, 1fr) auto; grid-template-areas: "ic t tick" "ic p p"; gap: 4px 12px; text-align: left; padding: 14px; border-radius: 14px; border: 1px solid var(--line); background: var(--raised); color: var(--ink); cursor: pointer; transition: border-color .12s, box-shadow .12s, background-color .12s; font: inherit; }
.so-row:hover { border-color: var(--line-strong); }
.so-row:focus-visible { outline: none; box-shadow: 0 0 0 2px var(--surface), 0 0 0 4px var(--ink); }
.so-ric { grid-area: ic; width: 36px; height: 36px; border-radius: 10px; display: grid; place-items: center; background: var(--sunken); }
.so-ric svg { width: 18px; height: 18px; }
.so-rt { grid-area: t; display: grid; gap: 3px; min-width: 0; } .so-rt strong { font-size: 14px; } .so-rt .note { font-size: 13px; line-height: 18px; }
.so-rp { grid-area: p; display: flex; align-items: baseline; gap: 6px; margin-top: 4px; } .so-rp .mono { font-size: 14px; font-weight: 600; } .so-rp .note { font-size: 12px; }
.so-row .so-tick { grid-area: tick; width: 22px; height: 22px; border-radius: 50%; border: 1.5px solid var(--line-strong); display: grid; place-items: center; color: transparent; background: var(--raised); }
.so-row .so-tick svg { width: 12px; height: 12px; }
.so-row[aria-pressed="true"] { border-color: var(--ink); box-shadow: inset 0 0 0 1px var(--ink); background: color-mix(in srgb, var(--accent-soft) 55%, var(--raised)); }
.so-row[aria-pressed="true"] .so-tick { background: var(--ink); border-color: var(--ink); color: var(--surface); }
.so-row[aria-pressed="true"] .so-ric { background: var(--accent); color: var(--on-accent); }
.so-sum { position: sticky; top: calc(env(safe-area-inset-top, 0px) + 16px); align-self: start; }
.so-where { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 0; overflow: hidden; padding: 0; }
.so-map-wrap { background: var(--sunken); display: grid; place-items: center; padding: 16px; border-right: 1px solid var(--line); }
.so-map { width: 100%; max-width: 440px; height: auto; display: block; }
.sm-sea { fill: transparent; } .sm-land { fill: var(--raised); } .sm-dot { fill: var(--line-strong); } .sm-coast { fill: none; stroke: var(--line-strong); stroke-width: 1.2; }
.sm-region { font: 600 13px var(--font-sans); letter-spacing: .4em; fill: var(--muted); } .sm-sea-l { font: italic 11px var(--font-sans); fill: var(--muted); }
.sm-halo { fill: var(--accent); opacity: .35; transition: r .15s, opacity .15s; } .sm-core { fill: var(--ink); stroke: var(--accent); stroke-width: 2; }
.sm-label { font: 600 12px var(--font-sans); fill: var(--ink); paint-order: stroke; stroke: var(--sunken); stroke-width: 4px; stroke-linejoin: round; }
.sm-pin.on .sm-halo { opacity: .8; r: 16; }
.so-hubs2 { list-style: none; margin: 0; padding: 8px; display: grid; align-content: center; }
.so-hubs2 li { display: grid; grid-template-columns: 14px 1fr; gap: 12px; padding: 12px 14px; border-radius: 12px; transition: background-color .12s; }
.so-hubs2 li + li { border-top: 1px solid var(--line); }
.so-hubs2 li.on { background: var(--sunken); }
.hub-dot { width: 10px; height: 10px; margin-top: 5px; border-radius: 50%; background: var(--ink); box-shadow: 0 0 0 3px var(--accent); }
.hub-t { display: flex; gap: 8px; align-items: baseline; flex-wrap: wrap; } .hub-t strong { font-size: 15px; } .hub-t .note { font-size: 13px; }
.hub-chips { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 6px; }
.chip-s { font-size: 12px; padding: 3px 9px; border-radius: 999px; background: var(--raised); border: 1px solid var(--line); }
.so-insp { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; }
.insp-row { padding: 18px; display: grid; gap: 10px; align-content: start; }
.ir-h { display: flex; justify-content: space-between; gap: 8px; } .ir-h strong { font-size: 15px; } .ir-h .mono { font-weight: 600; }
.ir-track { position: relative; height: 22px; }
.ir-line { position: absolute; left: 0; right: 0; top: 10px; height: 2px; border-radius: 2px; background: var(--line-strong); }
.ir-span { position: absolute; top: 6px; height: 10px; border-radius: 5px; background: var(--accent); box-shadow: inset 0 0 0 1px var(--accent-edge); min-width: 10px; }
.ir-truck { position: absolute; top: -1px; transform: translateX(-100%); width: 22px; height: 22px; } .ir-truck svg { width: 22px; height: 22px; }
.ir-scale { display: flex; justify-content: space-between; font-size: 11px; margin-top: -6px; }
.ir-when { font-size: 13px; font-weight: 500; } .insp-row p { margin: 0; font-size: 13px; line-height: 18px; }
@media (max-width: 1100px) { .so-phases { grid-template-columns: 1fr; } .so-insp { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 960px) { .so-hero { grid-template-columns: 1fr; padding: 28px 22px; } .so-sample { transform: none; } .so-where { grid-template-columns: 1fr; } .so-map-wrap { border-right: 0; border-bottom: 1px solid var(--line); } .so-sum { position: static; } }
@media (max-width: 640px) { .so-hero h1 { font-size: 32px; line-height: 36px; } .so-facts { grid-template-columns: repeat(2, minmax(0, 1fr)); } .so-insp { grid-template-columns: 1fr; } .ss-cols, .ss-row { grid-template-columns: minmax(0, 1fr) 56px 46px 64px; gap: 6px; } }
@media (max-width: 640px) { .ss-cols, .ss-row { grid-template-columns: minmax(0, 1fr) 58px 76px; } .ss-cols > :nth-child(3), .ss-row > :nth-child(3) { display: none; } }
@media (prefers-color-scheme: dark) { :root:not([data-theme="light"]) .so-hero { box-shadow: inset 0 0 0 1px var(--line); } }
:root[data-theme="dark"] .so-hero { box-shadow: inset 0 0 0 1px var(--line); }

/* Warehousing v2 */
.wh-flow-card { background: color-mix(in srgb, var(--hero-fg) 6%, transparent); border: 1px solid color-mix(in srgb, var(--hero-fg) 12%, transparent); border-radius: 18px; padding: 14px; }
.wh-flow { width: 100%; height: auto; display: block; }
.wf-in, .wf-out { fill: none; stroke: color-mix(in srgb, var(--hero-fg) 35%, transparent); stroke-width: 1.5; stroke-dasharray: 4 5; }
.wf-out { stroke: var(--accent); stroke-dasharray: none; opacity: .8; }
.wf-last { stroke: color-mix(in srgb, var(--hero-fg) 30%, transparent); stroke-width: 1.5; stroke-dasharray: 2 4; }
.wf-sup { fill: var(--hero); stroke: var(--hero-fg); stroke-width: 1.5; }
.wf-halo { fill: var(--accent); opacity: .18; } .wf-hub { fill: var(--accent); stroke: var(--hero); stroke-width: 3; }
.wf-dst { fill: var(--hero); stroke: var(--accent); stroke-width: 2.5; }
.wf-lab { font: 600 13px var(--font-sans); fill: var(--hero-fg); } .wf-lab.sm { font-size: 11px; }
.wf-cap { font: 500 11px var(--font-sans); fill: var(--hero-muted); }
.wf-cust rect { fill: none; stroke: var(--hero-muted); stroke-width: 1.3; } .wf-cust path { stroke: var(--hero-muted); stroke-width: 1.3; stroke-linecap: round; }
.wh-groups { display: grid; grid-template-columns: minmax(0, 1fr) 40px minmax(0, 1fr); gap: 12px; align-items: stretch; }
.wh-group { padding: 18px; border-radius: 18px; background: var(--sunken); display: grid; gap: 12px; align-content: start; }
.wh-gt { margin: 0; font-size: 15px; display: flex; align-items: center; gap: 10px; }
.wh-gi { display: grid; gap: 10px; }
.wh-svc { display: grid; grid-template-columns: 40px 1fr; gap: 12px; padding: 14px; border-radius: 14px; background: var(--raised); border: 1px solid var(--line); }
.wh-svc strong { font-size: 15px; } .wh-svc p { margin: 4px 0 0; font-size: 13px; line-height: 19px; }
.wh-arrow { display: grid; place-items: center; color: var(--muted); } .wh-arrow svg { width: 24px; height: 24px; }
.wh-hubs { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 12px; }
.wh-hub { padding: 16px; display: grid; gap: 10px; align-content: start; grid-template-rows: auto auto auto auto 1fr auto; }
.wh-hub.origin { background: var(--hero); color: var(--hero-fg); border-color: var(--hero); }
.wh-hub.origin .note, .wh-hub.origin dt, .wh-hub.origin .wh-role { color: var(--hero-muted); }
.wh-hub.origin .chip-s { background: transparent; border-color: color-mix(in srgb, var(--hero-fg) 25%, transparent); color: var(--hero-fg); }
.wh-hub.origin .btn-secondary { background: transparent; color: var(--hero-fg); border-color: color-mix(in srgb, var(--hero-fg) 40%, transparent); }
.wh-hub.sel:not(.origin) { box-shadow: inset 0 0 0 2px var(--ink); }
.wh-hh { display: grid; grid-template-columns: 14px 1fr; gap: 10px; align-items: start; } .wh-hh strong { font-size: 15px; } .wh-hh .pin { margin-top: 4px; }
.wh-role { font-size: 13px; color: var(--muted); min-height: 36px; }
.wh-price { display: grid; gap: 2px; padding: 10px 0; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.wh-hub.origin .wh-price { border-color: color-mix(in srgb, var(--hero-fg) 15%, transparent); }
.wh-price .mono { font-size: 22px; font-weight: 600; letter-spacing: -.02em; } .wh-price .note { font-size: 12px; }
.wh-rates { margin: 0; display: grid; gap: 4px; } .wh-rates div { display: flex; justify-content: space-between; gap: 8px; font-size: 12px; } .wh-rates dt { color: var(--muted); } .wh-rates dd { margin: 0; }
.wh-use { justify-self: start; }
.wh-total { display: flex; justify-content: space-between; align-items: baseline; gap: 12px; padding: 4px 0 10px; }
.wh-total .mono { font-size: 30px; font-weight: 600; letter-spacing: -.02em; }
.wh-comp { margin-bottom: 8px; }
.lines td .lg { display: inline-block; width: 8px; height: 8px; border-radius: 2px; margin-right: 8px; vertical-align: 1px; }
.lg.c1, .wh-comp .c1 { background: var(--ink); } .lg.c2, .wh-comp .c2 { background: var(--muted); } .lg.c3, .wh-comp .c3 { background: var(--yellow); }
.wh-two { align-items: start; }
@media (max-width: 1180px) { .wh-hubs { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (max-width: 960px) { .wh-groups { grid-template-columns: 1fr; } .wh-arrow { transform: rotate(90deg); height: 24px; } .wh-hubs { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 560px) { .wh-hubs { grid-template-columns: 1fr; } .wh-role { min-height: 0; } }
.wh-hub .hub-chips { align-content: flex-start; align-items: flex-start; }

/* Page editor */
.cu-entry { background: var(--raised); color: var(--ink); border: 1px solid color-mix(in srgb, var(--hero-fg) 14%, transparent); border-radius: 18px; padding: 18px; display: grid; gap: 14px; box-shadow: 0 20px 50px rgba(0,0,0,.35); }
.ce-h { display: flex; justify-content: space-between; align-items: start; gap: 12px; padding-bottom: 12px; border-bottom: 1px dashed var(--line-strong); }
.ce-h > div { display: grid; gap: 2px; }
.ce-k { font-size: 11px; text-transform: uppercase; letter-spacing: .08em; color: var(--muted); font-weight: 600; }
.ce-h strong { font-size: 15px; }
.ce-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px 16px; margin: 0; }
.ce-grid div { display: grid; gap: 2px; min-width: 0; }
.ce-grid dt { font-size: 12px; color: var(--muted); }
.ce-grid dd { margin: 0; font-size: 14px; font-weight: 500; overflow-wrap: anywhere; }
.ce-steps { list-style: none; margin: 0; padding: 12px 0 0; border-top: 1px solid var(--line); display: grid; gap: 8px; }
.ce-steps li { display: flex; gap: 10px; align-items: center; font-size: 13px; }
.ce-dot { width: 20px; height: 20px; border-radius: 50%; display: grid; place-items: center; flex: none; background: var(--accent); color: var(--on-accent); }
.ce-dot svg { width: 12px; height: 12px; }
.ce-steps li.now .ce-dot { background: transparent; border: 2px solid var(--accent-strong); box-shadow: 0 0 0 4px color-mix(in srgb, var(--accent) 30%, transparent); }
.ce-steps li.now { font-weight: 600; }
.cu-flow { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 16px; }
.cf-step { display: grid; gap: 8px; align-content: start; }
.cf-top { display: flex; align-items: center; gap: 10px; }
.cf-n { width: 34px; height: 34px; border-radius: 50%; display: grid; place-items: center; font-size: 13px; font-weight: 600; background: var(--ink); color: var(--surface); flex: none; }
.cf-step.dst .cf-n { background: var(--accent); color: var(--on-accent); }
.cf-line { flex: 1; height: 2px; background: repeating-linear-gradient(90deg, var(--line-strong) 0 6px, transparent 6px 12px); }
.cf-step:last-child .cf-line { visibility: hidden; }
.cf-when { display: inline-flex; align-items: center; gap: 6px; font-size: 12px; text-transform: uppercase; letter-spacing: .06em; color: var(--muted); font-weight: 600; margin-top: 4px; }
.cf-step h3 { font-size: 17px; line-height: 24px; margin: 0; }
.cf-step > .note { margin: 0; font-size: 14px; line-height: 21px; }
.cf-meta { display: grid; gap: 6px; justify-items: start; padding-top: 6px; }
.cf-you { font-size: 12px; }
.cu-calc { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.05fr); padding: 0; overflow: hidden; }
.cu-in { padding: 24px; display: grid; gap: 14px; align-content: start; }
.cu-in .qgrid { grid-template-columns: 1fr; }
.cu-two { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
.cu-hs { margin: 0; font-size: 13px; }
.cu-res { padding: 24px; background: var(--sunken); border-left: 1px solid var(--line); display: grid; gap: 14px; align-content: start; }
.cu-total { display: grid; gap: 2px; }
.cu-total .price { font-size: 40px; line-height: 44px; letter-spacing: -.03em; font-weight: 600; font-family: var(--font-mono); }
.cu-bar { display: flex; height: 12px; border-radius: 999px; overflow: hidden; background: var(--line); gap: 2px; }
.cu-bar i { display: block; height: 100%; }
.cb-goods { background: var(--line-strong); } .cb-frt { background: color-mix(in srgb, var(--line-strong) 45%, var(--raised)); } .cb-duty { background: var(--ink); } .cb-vat { background: var(--accent-strong); }
.cu-legend { list-style: none; margin: 0; padding: 0; display: grid; gap: 6px; font-size: 14px; }
.cu-legend li { display: grid; grid-template-columns: 12px 1fr auto; gap: 10px; align-items: center; }
.cu-legend .lg { width: 10px; height: 10px; border-radius: 3px; }
.cu-landed { padding-top: 6px; border-top: 1px solid var(--line); font-weight: 600; }
.cu-res .lines { background: transparent; }
.cu-res > .note { margin: 0; font-size: 13px; }
.cu-rules { padding: 0; overflow: hidden; }
.cr-stats { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); margin: 0; border-bottom: 1px solid var(--line); background: var(--sunken); }
.cr-stats div { padding: 16px 24px; display: grid; gap: 2px; min-width: 0; }
.cr-stats div + div { border-left: 1px solid var(--line); }
.cr-stats dd { margin: 0; font-size: 16px; font-weight: 600; }
.cr-cols { display: grid; grid-template-columns: minmax(0, 1.3fr) minmax(0, 1fr); }
.cr-cols > section { padding: 24px; display: grid; gap: 14px; align-content: start; }
.cr-cols > section + section { border-left: 1px solid var(--line); }
.cr-points { list-style: none; margin: 0; padding: 0; display: grid; gap: 14px; }
.cr-points li { display: grid; grid-template-columns: 26px 1fr; gap: 12px; align-items: start; font-size: 15px; line-height: 22px; }
.cr-points li > span:last-child { display: grid; gap: 2px; }
.cr-docs { list-style: none; margin: 0; padding: 0; display: grid; gap: 8px; }
.cr-docs li { display: flex; gap: 10px; align-items: center; padding: 10px 12px; border-radius: 10px; background: var(--sunken); font-size: 14px; }
.cr-doc-ic { display: grid; color: var(--muted); } .cr-doc-ic svg { width: 16px; height: 16px; }
.cu-req { display: grid; grid-template-columns: minmax(0, .8fr) minmax(0, 1.2fr); gap: 24px; align-items: start; }
.cu-next { display: grid; gap: 16px; padding: 24px; border-radius: 16px; background: var(--accent-soft); border: 1px solid var(--accent-edge); }
.cu-form { display: grid; gap: 16px; }
@media (max-width: 960px) { .cu-flow { grid-template-columns: repeat(2, minmax(0, 1fr)); row-gap: 28px; } .cf-step:nth-child(2) .cf-line { visibility: hidden; } .cu-calc, .cr-cols, .cu-req { grid-template-columns: 1fr; } .cu-res { border-left: 0; border-top: 1px solid var(--line); } .cr-cols > section + section { border-left: 0; border-top: 1px solid var(--line); } }
@media (max-width: 560px) { .cu-flow { grid-template-columns: 1fr; } .cf-line { visibility: hidden; } .cr-stats { grid-template-columns: 1fr; } .cr-stats div + div { border-left: 0; border-top: 1px solid var(--line); } .cu-two { grid-template-columns: 1fr; } .cu-total .price { font-size: 32px; line-height: 38px; } .cu-in, .cu-res, .cr-cols > section { padding: 18px; } .ce-grid { grid-template-columns: 1fr 1fr; } }
.cu-mkts { display: grid; gap: 8px; padding-top: 14px; border-top: 1px solid var(--line); }
.cu-mk-h { font-size: 13px; font-weight: 600; }
.cu-mk { display: grid; grid-template-columns: 120px 1fr 48px; gap: 10px; align-items: center; font-size: 13px; color: var(--muted); }
.cu-mk .mono { text-align: right; color: var(--ink); }
.cu-mk-bar { height: 6px; border-radius: 999px; background: var(--sunken); overflow: hidden; }
.cu-mk-bar i { display: block; height: 100%; background: var(--line-strong); border-radius: 999px; }
.cu-mk.on { color: var(--ink); font-weight: 600; }
.cu-mk.on .cu-mk-bar i { background: var(--ink); }
.cu-mkts > .note { font-size: 12px; }
#v-track { grid-template-columns: minmax(0, 1fr); }
.tk-hero { align-items: center; }
.tk-form { display: grid; grid-template-columns: minmax(0, 1fr); gap: 8px; width: 100%; max-width: 560px; }
.tk-lbl { font-size: 13px; color: var(--hero-muted); }
.tk-inrow { display: flex; align-items: center; gap: 8px; padding: 6px 6px 6px 16px; border-radius: 16px; background: var(--raised); color: var(--ink); box-shadow: 0 0 0 1px color-mix(in srgb, var(--hero-fg) 14%, transparent); }
.tk-inrow:focus-within { box-shadow: 0 0 0 3px color-mix(in srgb, var(--accent) 70%, transparent); }
.tk-in-ic { display: grid; color: var(--muted); } .tk-in-ic svg { width: 18px; height: 18px; }
.tk-inrow input { flex: 1; min-width: 0; width: 0; border: 0; background: transparent; color: var(--ink); font-size: 18px; padding: 10px 4px; outline: none; letter-spacing: .02em; }
.tk-msg { margin: 0; min-height: 0; font-size: 14px; color: var(--accent); }
.tk-msg:empty { display: none; }
.tk-exs { display: grid; gap: 8px; padding: 16px; border-radius: 18px; background: color-mix(in srgb, var(--hero-fg) 6%, transparent); border: 1px solid color-mix(in srgb, var(--hero-fg) 12%, transparent); }
.tk-exs-h { display: flex; justify-content: space-between; align-items: center; padding: 2px 4px 6px; }
.tk-ex { display: grid; grid-template-columns: 36px minmax(0, 1fr) auto; gap: 12px; align-items: center; padding: 12px; border-radius: 12px; border: 0; background: var(--raised); color: var(--ink); text-align: left; cursor: pointer; font: inherit; transition: transform .12s, box-shadow .12s; }
.tk-ex:hover { transform: translateY(-1px); box-shadow: 0 0 0 2px var(--accent); }
.tk-ex-t { display: grid; gap: 2px; min-width: 0; } .tk-ex-t .note { font-size: 13px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.tk-mic { width: 36px; height: 36px; border-radius: 10px; display: grid; place-items: center; background: var(--sunken); color: var(--ink); flex: none; }
.tk-mic svg { width: 18px; height: 18px; }
.tk-feats { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; }
.tk-feat { display: flex; gap: 14px; align-items: start; padding: 4px 0; }
.tk-feat strong { display: block; margin-bottom: 4px; }
.tk-feat .note { margin: 0; font-size: 14px; line-height: 21px; }
.tk-bar { display: flex; justify-content: space-between; align-items: center; gap: 12px 20px; flex-wrap: wrap; }
.tk-form.compact { max-width: 440px; flex: 1 1 320px; }
.tk-form.compact .tk-lbl { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
.tk-form.compact .tk-inrow { box-shadow: 0 0 0 1px var(--line); padding: 4px 4px 4px 14px; border-radius: 14px; }
.tk-form.compact .tk-inrow input { font-size: 15px; padding: 8px 4px; }
.tk-form.compact .tk-msg { color: var(--danger); }
.tk-out { display: grid; gap: 20px; min-width: 0; grid-template-columns: minmax(0, 1fr); }
.tk-status { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 24px 32px; padding: 28px; }
.tk-status.is-hold { box-shadow: inset 4px 0 0 var(--danger); }
.tk-main { display: grid; gap: 8px; align-content: start; min-width: 0; }
.tk-mode { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; font-size: 13px; }
.tk-mode .tk-mic { width: 28px; height: 28px; border-radius: 8px; } .tk-mode .tk-mic svg { width: 15px; height: 15px; }
.tk-ref { font-size: 14px; color: var(--muted); letter-spacing: .02em; }
.tk-h { font-size: 32px; line-height: 38px; letter-spacing: -.03em; font-weight: 600; margin: 0; text-wrap: balance; }
.tk-sub { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
.tk-late { color: var(--danger); font-weight: 500; }
.tk-eta { display: grid; justify-items: center; align-content: center; gap: 0; min-width: 150px; padding: 16px 20px; border-radius: 16px; background: var(--accent-soft); border: 1px solid var(--accent-edge); text-align: center; }
.tk-day { font-size: 48px; line-height: 52px; font-weight: 600; letter-spacing: -.03em; }
.tk-mon { font-weight: 600; }
.tk-eta .note { font-size: 12px; }
.tk-alert { grid-column: 1 / -1; display: flex; gap: 12px; align-items: center; padding: 14px 16px; border-radius: 12px; background: color-mix(in srgb, var(--danger) 10%, var(--raised)); border: 1px solid color-mix(in srgb, var(--danger) 30%, transparent); color: var(--ink); }
.tk-alert > svg { width: 20px; height: 20px; color: var(--danger); flex: none; }
.tk-alert > div { flex: 1; min-width: 0; } .tk-alert p { margin: 2px 0 0; font-size: 14px; }
.tk-route { grid-column: 1 / -1; display: grid; gap: 10px; padding: 8px 4px 4px; }
.tk-ends { display: flex; justify-content: space-between; gap: 12px; font-size: 14px; }
.tk-ends > span { display: inline-flex; align-items: center; gap: 8px; }
.tk-rail { position: relative; height: 4px; border-radius: 999px; background: var(--line); margin: 18px 18px 0; }
.tk-fill { position: absolute; left: 0; top: 0; bottom: 0; border-radius: 999px; background: var(--ink); }
.tk-tick { position: absolute; top: 50%; width: 10px; height: 10px; border-radius: 50%; transform: translate(-50%, -50%); background: var(--raised); border: 2px solid var(--line-strong); }
.tk-tick.done { background: var(--ink); border-color: var(--ink); }
.tk-veh { position: absolute; top: 50%; width: 40px; height: 40px; border-radius: 50%; transform: translate(-50%, -50%); display: grid; place-items: center; background: var(--accent); color: var(--on-accent); box-shadow: 0 0 0 5px color-mix(in srgb, var(--accent) 30%, transparent); z-index: 1; }
.tk-veh svg { width: 20px; height: 20px; }
.tk-veh.hold { background: var(--danger); color: #fff; box-shadow: 0 0 0 5px color-mix(in srgb, var(--danger) 25%, transparent); }
.tk-steps { list-style: none; margin: 14px 18px 0; padding: 0; position: relative; height: 38px; }
.tk-steps li { position: absolute; transform: translateX(-50%); display: grid; justify-items: center; gap: 1px; font-size: 12px; color: var(--muted); white-space: nowrap; text-align: center; }
.tk-steps li:first-child { transform: none; justify-items: start; } .tk-steps li:last-child { transform: translateX(-100%); justify-items: end; }
.tk-steps li.done { color: var(--ink); } .tk-steps li.now { color: var(--ink); font-weight: 600; }
.tk-steps .mono { font-size: 11px; color: var(--muted); font-weight: 400; }
.tk-phases { position: relative; height: 26px; margin: 4px 18px 0; }
.tk-phases > span { position: absolute; top: 0; height: 26px; white-space: nowrap; display: grid; align-items: end; justify-items: center; border-top: 2px solid var(--line); font-size: 11px; text-transform: uppercase; letter-spacing: .07em; color: var(--muted); font-weight: 600; }
.tk-phases > span.done { border-color: var(--ink); } .tk-phases > span.now { border-color: var(--accent-strong); color: var(--ink); }
.tk-status .pay-status { grid-column: 1 / -1; }
.tk-facts { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); margin: 0; border: 1px solid var(--line); border-radius: 16px; background: var(--raised); overflow: hidden; }
.tk-facts div { padding: 14px 18px; display: grid; gap: 2px; min-width: 0; }
.tk-facts div + div { border-left: 1px solid var(--line); }
.tk-facts dt { font-size: 12px; color: var(--muted); }
.tk-facts dd { margin: 0; font-weight: 500; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.tk-grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 20px; align-items: start; }
.tk-grid h2 { font-size: 17px; line-height: 24px; margin: 0; }
.tk-journey { display: grid; gap: 18px; }
.tk-tl { list-style: none; margin: 0; padding: 0; display: grid; }
.tk-tl li { display: grid; grid-template-columns: 24px minmax(0, 1fr); gap: 14px; position: relative; padding-bottom: 18px; }
.tk-tl li:last-child { padding-bottom: 0; }
.tk-tl li::before { content: ""; position: absolute; left: 11px; top: 24px; bottom: 0; width: 2px; background: var(--line); }
.tk-tl li.done::before { background: var(--ink); }
.tk-tl li:last-child::before { display: none; }
.tk-m { width: 24px; height: 24px; border-radius: 50%; display: grid; place-items: center; background: var(--raised); border: 2px solid var(--line-strong); position: relative; z-index: 1; }
.tk-m svg { width: 13px; height: 13px; }
.tk-tl li.done .tk-m { background: var(--ink); border-color: var(--ink); color: var(--surface); }
.tk-tl li.now .tk-m { background: var(--accent); border-color: var(--accent-strong); box-shadow: 0 0 0 4px color-mix(in srgb, var(--accent) 35%, transparent); }
.tk-tl li.hold .tk-m { background: var(--danger); border-color: var(--danger); box-shadow: 0 0 0 4px color-mix(in srgb, var(--danger) 20%, transparent); }
.tk-tl li.todo strong { color: var(--muted); font-weight: 500; }
.tk-tc { display: grid; gap: 4px; padding-top: 2px; min-width: 0; }
.tk-tt { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.tk-tt time { margin-left: auto; font-size: 12px; }
.tk-tc > p { margin: 0; font-size: 14px; line-height: 20px; }
.tk-tl-hold { color: var(--danger); font-size: 14px; font-weight: 500; }
.tk-now { font-size: 11px; text-transform: uppercase; letter-spacing: .06em; font-weight: 700; padding: 2px 8px; border-radius: 999px; background: var(--accent); color: var(--on-accent); }
.tk-side { display: grid; gap: 20px; min-width: 0; }
.tk-sh { display: flex; justify-content: space-between; align-items: center; gap: 12px; }
.tk-docs, .tk-charges, .tk-parties { display: grid; gap: 12px; }
.tk-docs.has-need { box-shadow: inset 0 3px 0 var(--accent-strong); }
.tk-docs > .note { margin: 0; font-size: 14px; }
.tk-dl { display: grid; gap: 8px; }
.tk-doc { display: grid; grid-template-columns: 20px minmax(0, 1fr) auto; gap: 12px; align-items: center; padding: 10px 12px; border-radius: 12px; border: 1px solid var(--line); }
.tk-doc.need { background: var(--accent-soft); border-color: var(--accent-edge); }
.tk-dic { display: grid; color: var(--muted); } .tk-dic svg { width: 18px; height: 18px; }
.tk-doc .nm { display: grid; gap: 1px; min-width: 0; font-size: 14px; font-weight: 500; }
.tk-doc .fl { font-size: 12px; color: var(--muted); font-weight: 400; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.tk-charges .price { font-size: 22px; font-weight: 600; }
.tk-charges details summary { cursor: pointer; font-size: 14px; font-weight: 500; padding: 4px 0; }
.tk-charges details[open] summary { margin-bottom: 6px; }
.tk-charges > .note { margin: 0; font-size: 13px; }
.tk-parties dl { margin: 0; display: grid; gap: 10px; }
.tk-parties dl div { display: grid; grid-template-columns: 96px minmax(0, 1fr); gap: 12px; font-size: 14px; }
.tk-parties dt { color: var(--muted); } .tk-parties dd { margin: 0; overflow-wrap: anywhere; }
.tk-help { display: grid; grid-template-columns: 36px minmax(0, 1fr) auto; gap: 14px; align-items: center; padding: 16px; color: var(--ink); text-decoration: none; transition: box-shadow .12s; }
.tk-help:hover { box-shadow: 0 0 0 2px var(--accent); }
.tk-help > span:nth-child(2) { display: grid; gap: 2px; } .tk-help .note { font-size: 13px; }
.tk-help .tk-mic { background: var(--accent); color: var(--on-accent); }
@media (max-width: 960px) { .tk-grid { grid-template-columns: minmax(0, 1fr); } .tk-facts { grid-template-columns: repeat(3, minmax(0, 1fr)); } .tk-facts div:nth-child(4) { border-left: 0; } .tk-facts div:nth-child(n+4) { border-top: 1px solid var(--line); } .tk-feats { grid-template-columns: 1fr; } }
@media (max-width: 640px) {
  .tk-status { grid-template-columns: minmax(0, 1fr); padding: 20px; }
  .tk-eta { grid-auto-flow: column; justify-content: start; align-items: baseline; gap: 8px; min-width: 0; padding: 10px 14px; }
  .tk-day { font-size: 28px; line-height: 32px; }
  .tk-h { font-size: 24px; line-height: 30px; }
  .tk-steps li:not(.now) .tk-sn, .tk-steps li:not(.now) .mono { display: none; }
  .tk-steps li.now { transform: translateX(-50%); }
  .tk-steps li.now:first-child { transform: none; } .tk-steps li.now:last-child { transform: translateX(-100%); }
  .tk-phases > span { font-size: 10px; letter-spacing: .04em; }
  .tk-facts { grid-template-columns: repeat(2, minmax(0, 1fr)); } .tk-facts div { border-left: 0 !important; border-top: 1px solid var(--line); } .tk-facts div:nth-child(-n+2) { border-top: 0; } .tk-facts div:nth-child(even) { border-left: 1px solid var(--line) !important; }
  .tk-ex { grid-template-columns: 36px minmax(0, 1fr); } .tk-ex .badge { grid-column: 2; justify-self: start; }
  .tk-inrow input { font-size: 16px; }
  .tk-alert { flex-wrap: wrap; align-items: start; } .tk-alert > div { flex: 1 1 200px; } .tk-alert .btn { margin-left: 32px; }
  .tk-facts div:last-child:nth-child(odd) { grid-column: 1 / -1; }
}

.adv { display: grid; grid-template-columns: 380px minmax(0, 1fr); gap: 24px; align-items: start; }
.adv-side { display: grid; gap: 18px; align-content: start; position: relative; padding: 28px; border-radius: 24px; background: var(--hero); color: var(--hero-fg); overflow: hidden; isolation: isolate; }
.adv-side::before { content: ""; position: absolute; inset: 0; z-index: -1; background-image: radial-gradient(circle, color-mix(in srgb, var(--hero-fg) 14%, transparent) 1px, transparent 1.4px); background-size: 14px 14px; mask-image: linear-gradient(160deg, transparent 40%, #000 95%); -webkit-mask-image: linear-gradient(160deg, transparent 40%, #000 95%); }
.adv-back { color: var(--hero-fg); }
.adv-intro { display: grid; gap: 12px; }
.adv-intro h1 { font-size: 34px; line-height: 38px; letter-spacing: -.03em; font-weight: 600; margin: 0; text-wrap: balance; }
.adv-intro h1 em { font-style: normal; color: var(--accent); }
.adv-intro .lede { margin: 0; color: var(--hero-muted); font-size: 15px; line-height: 23px; }
.adv-caps { display: grid; gap: 8px; }
.adv-k { font-size: 12px; text-transform: uppercase; letter-spacing: .08em; color: var(--hero-muted); font-weight: 600; margin-bottom: 2px; }
.adv-cap { display: grid; grid-template-columns: 36px minmax(0, 1fr); gap: 12px; align-items: center; text-align: left; padding: 10px 12px; border-radius: 14px; border: 1px solid color-mix(in srgb, var(--hero-fg) 12%, transparent); background: color-mix(in srgb, var(--hero-fg) 5%, transparent); color: var(--hero-fg); font: inherit; cursor: pointer; transition: background .12s, border-color .12s; }
.adv-cap:hover:not(:disabled) { background: color-mix(in srgb, var(--hero-fg) 10%, transparent); border-color: var(--accent); }
.adv-cap:disabled { cursor: default; }
.adv-cap > span:last-child { display: grid; gap: 1px; } .adv-cap strong { font-size: 14px; } .adv-cap .note { font-size: 12px; line-height: 17px; color: var(--hero-muted); }
.adv-cic { width: 36px; height: 36px; border-radius: 10px; display: grid; place-items: center; background: var(--accent); color: var(--on-accent); }
.adv-cic svg { width: 18px; height: 18px; }
.adv-human { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 12px; align-items: center; padding: 14px; border-radius: 14px; background: var(--raised); color: var(--ink); }
.adv-human > div { display: grid; gap: 2px; } .adv-human strong { font-size: 14px; } .adv-human .note { font-size: 12px; line-height: 17px; }
.adv-fine { margin: 0; font-size: 12px; line-height: 17px; color: var(--hero-muted); }
.adv-chat { display: flex; flex-direction: column; min-height: 620px; height: calc(100vh - 140px); max-height: 860px; overflow: hidden; padding: 0; }
.adv-top { display: flex; align-items: center; gap: 12px; padding: 14px 20px; border-bottom: 1px solid var(--line); }
.adv-top > div { display: grid; gap: 1px; flex: 1; min-width: 0; } .adv-top strong { font-size: 15px; } .adv-top .note { font-size: 12px; display: inline-flex; align-items: center; gap: 6px; }
.adv-dot { width: 7px; height: 7px; border-radius: 50%; background: var(--ok, #2E9E5B); box-shadow: 0 0 0 3px color-mix(in srgb, var(--ok, #2E9E5B) 20%, transparent); }
.adv-dot.off { background: var(--line-strong); box-shadow: none; }
.ai-av.lg { width: 36px; height: 36px; border-radius: 10px; background: var(--sunken); justify-content: center; align-items: center; padding-top: 6px; }
.adv-log { flex: 1; overflow-y: auto; padding: 24px; display: flex; flex-direction: column; gap: 18px; background: linear-gradient(var(--raised), var(--surface)); }
.adv-empty { margin: auto; display: grid; gap: 10px; justify-items: center; text-align: center; max-width: 640px; width: 100%; }
.adv-empty .adv-mark { transform: scale(1.4); margin-bottom: 8px; }
.adv-empty h2 { font-size: 24px; line-height: 30px; letter-spacing: -.02em; }
.adv-sugs { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; width: 100%; margin-top: 10px; }
.adv-sug { display: grid; gap: 10px; align-content: start; text-align: left; border: 1px solid var(--line); background: var(--raised); border-radius: 14px; padding: 14px 16px; font-size: 14px; line-height: 20px; cursor: pointer; color: var(--ink); transition: border-color .12s, transform .12s, box-shadow .12s; }
.adv-sug:hover:not(:disabled) { border-color: var(--ink); transform: translateY(-1px); box-shadow: var(--shadow-sm); }
.adv-tag { display: inline-flex; align-items: center; gap: 6px; justify-self: start; font-size: 11px; text-transform: uppercase; letter-spacing: .07em; font-weight: 600; color: var(--muted); }
.adv-tag svg { width: 14px; height: 14px; }
.msg.ai .b { background: var(--raised); border: 1px solid var(--line); padding: 12px 16px; border-radius: 4px 18px 18px 18px; }
.msg.ai .b.err { background: var(--sunken); }
.adv-form { display: grid; gap: 6px; padding: 14px 16px 10px; border-top: 1px solid var(--line); background: var(--raised); }
.adv-box { display: flex; gap: 8px; align-items: flex-end; padding: 6px 6px 6px 14px; border: 1px solid var(--line-strong); border-radius: 18px; background: var(--surface); transition: border-color .12s, box-shadow .12s; }
.adv-box:focus-within { border-color: var(--ink); box-shadow: 0 0 0 3px color-mix(in srgb, var(--accent) 45%, transparent); }
.adv-form .adv-box textarea { flex: 1; min-width: 0; resize: none; border: 0; background: transparent; padding: 9px 0; font-size: 15px; line-height: 22px; max-height: 160px; color: var(--ink); box-shadow: none; }
.adv-form .adv-box textarea:focus { outline: none; box-shadow: none; }
.adv-box .adv-send { width: 40px; height: 40px; flex: none; }
.adv-hint { margin: 0; font-size: 12px; text-align: center; }
.adv-box textarea::placeholder { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
@media (max-width: 900px) { .adv { grid-template-columns: minmax(0, 1fr); } .adv-side { position: static; padding: 22px; } .adv-caps { grid-template-columns: repeat(2, minmax(0, 1fr)); } .adv-k { grid-column: 1 / -1; } .adv-chat { height: auto; min-height: 0; max-height: none; } .adv-log { min-height: 360px; max-height: 70vh; } .adv-log:has(.adv-empty) { max-height: none; } .adv-empty { margin: 8px auto; } }
@media (max-width: 560px) { .adv-caps { grid-template-columns: repeat(2, minmax(0, 1fr)); } .adv-cap { grid-template-columns: minmax(0, 1fr); gap: 8px; padding: 12px; } .adv-cap .note { display: none; } .adv-cic { width: 32px; height: 32px; } .adv-sugs { grid-template-columns: minmax(0, 1fr); } .adv-intro h1 { font-size: 28px; line-height: 33px; } .adv-log { padding: 16px; } .adv-hint { display: none; } .adv-human { grid-template-columns: minmax(0, 1fr); } .adv-human .btn { justify-self: start; } }
.tl-wrap { display: grid; gap: 14px; }
.tl-hd { display: grid; gap: 4px; }
.tl-act { display: flex; align-items: center; gap: 12px; }
.tl-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
.tl-item { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: 4px; padding: 4px 8px 4px 4px; border: 1px solid var(--line); border-radius: 14px; background: var(--raised); transition: border-color .12s; }
.tl-item:hover { border-color: var(--line-strong); }
.tl-item.gone { grid-template-columns: 36px minmax(0, 1fr) auto auto; gap: 12px; padding: 10px 8px 10px 12px; opacity: .75; }
.tl-open { display: grid; grid-template-columns: 36px minmax(0, 1fr) auto; gap: 12px; align-items: center; padding: 10px 8px; border: 0; background: none; color: var(--ink); font: inherit; text-align: left; cursor: pointer; border-radius: 10px; min-width: 0; }
.tl-open:hover .mono { text-decoration: underline; }
.tl-t { display: grid; gap: 2px; min-width: 0; } .tl-t .note { font-size: 13px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.tl-s { display: grid; gap: 4px; justify-items: end; } .tl-s .note { font-size: 12px; white-space: nowrap; }
.tl-del { color: var(--muted); font-size: 18px; }
.tl-del:hover { color: var(--danger); }
.tl-empty { display: flex; gap: 14px; align-items: center; padding: 18px 20px; }
.tl-empty .note { margin: 2px 0 0; font-size: 14px; }
.tl-chips { display: flex; gap: 8px; overflow-x: auto; padding-bottom: 2px; scrollbar-width: thin; }
.tl-chip { display: inline-flex; align-items: center; gap: 8px; flex: none; height: 36px; padding: 0 14px; border-radius: 999px; border: 1px solid var(--line); background: var(--raised); color: var(--ink); font: inherit; font-size: 13px; cursor: pointer; }
.tl-chip:hover { border-color: var(--line-strong); }
.tl-chip.on { background: var(--ink); color: var(--surface); border-color: var(--ink); }
.tl-chip.on .note { color: color-mix(in srgb, var(--surface) 75%, transparent); }
.tl-dot { width: 8px; height: 8px; border-radius: 50%; background: var(--accent-strong); }
.tl-dot.done { background: var(--ok, #2E9E5B); } .tl-dot.hold { background: var(--danger); }
@media (max-width: 760px) { .tl-grid { grid-template-columns: minmax(0, 1fr); } .tk-hero.has-tracked .tk-exs { display: none; } }
@media (max-width: 460px) { .tl-open { grid-template-columns: 36px minmax(0, 1fr); } .tl-s { grid-column: 2; justify-items: start; grid-auto-flow: column; align-items: center; justify-content: start; gap: 8px; } }
.ct-bar { display: flex; gap: 12px 20px; align-items: end; justify-content: space-between; flex-wrap: wrap; }
.ct-pages button { display: inline-flex; align-items: center; gap: 6px; }
.ct-cnt { font-size: 11px; min-width: 18px; height: 18px; padding: 0 5px; border-radius: 999px; background: var(--accent); color: var(--on-accent); display: inline-grid; place-items: center; }
.ct-lang { display: grid; gap: 4px; min-width: 220px; }
.ct-note { font-size: 14px; padding: 10px 14px; border-radius: 10px; background: var(--accent-soft); color: var(--ink); border: 1px solid var(--accent-edge); }
.ct-list { display: grid; gap: 0; }
.ct-sec { display: grid; padding: 0; overflow: hidden; }
.ct-sec.is-hidden .ct-t strong, .ct-sec.is-hidden .ct-n { opacity: .55; }
.ct-sec.is-blk { border-style: dashed; }
.ct-sec.is-fixed { margin-bottom: 14px; }
.ct-head { display: flex; align-items: center; gap: 8px 12px; padding: 10px 12px 10px 4px; flex-wrap: wrap; }
.ct-tog { flex: 1 1 260px; min-width: 0; display: flex; align-items: center; gap: 12px; padding: 6px 10px; border: 0; background: none; color: var(--ink); text-align: left; cursor: pointer; border-radius: 10px; font: inherit; }
.ct-tog:hover:not(:disabled) { background: var(--sunken); }
.ct-tog:disabled { cursor: default; }
.ct-n { font-size: 12px; color: var(--muted); width: 22px; flex: none; }
.ct-t { display: grid; gap: 2px; min-width: 0; }
.ct-t strong { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.ct-t .note { font-size: 13px; }
.ct-hid { color: var(--danger); font-weight: 500; }
.ct-chev { margin-left: auto; color: var(--muted); transition: transform .15s; }
.ct-tog[aria-expanded="true"] .ct-chev { transform: rotate(180deg); }
.ct-acts { display: flex; gap: 6px; align-items: center; margin-left: auto; }
.ct-del { color: var(--danger); }
.ct-body { border-top: 1px solid var(--line); padding: 16px 20px 20px; background: var(--surface); }
.ct-lockn { padding: 0 20px 14px 50px; margin: -4px 0 0; font-size: 13px; }
.ct-fields { display: grid; gap: 14px; }
.ct-row { display: grid; gap: 6px; }
.ct-orig { display: flex; gap: 8px; align-items: baseline; font-size: 13px; color: var(--muted); min-width: 0; }
.ct-orig span:last-child { overflow-wrap: anywhere; }
.ct-tag { flex: none; font-size: 11px; text-transform: uppercase; letter-spacing: .06em; font-weight: 600; padding: 1px 7px; border-radius: 999px; background: var(--sunken); color: var(--muted); }
.ct-row.is-changed .ct-tag { background: var(--accent); color: var(--on-accent); }
.ct-in { display: flex; gap: 8px; align-items: start; }
.ct-in input, .ct-in textarea { flex: 1; min-width: 0; width: 100%; font: inherit; font-size: 15px; padding: 9px 12px; border: 1px solid var(--line); border-radius: 10px; background: var(--raised); color: var(--ink); resize: vertical; }
.ct-in input:focus, .ct-in textarea:focus { outline: none; border-color: var(--ink); box-shadow: 0 0 0 3px color-mix(in srgb, var(--accent) 45%, transparent); }
.ct-row.is-changed input, .ct-row.is-changed textarea { border-color: var(--accent-strong); }
.ct-add { display: grid; place-items: center; height: 22px; }
.ct-add button { height: 24px; padding: 0 12px; border-radius: 999px; border: 1px dashed var(--line-strong); background: var(--raised); color: var(--ink); font: 500 12px var(--font-sans); cursor: pointer; opacity: 0; transition: opacity .12s; }
.ct-add:hover button, .ct-add button:focus-visible { opacity: 1; }
@media (hover: none) { .ct-add button { opacity: .7; } }
.ct-foot { display: flex; justify-content: flex-end; }
@media (max-width: 640px) { .ct-acts { margin-left: 46px; } .ct-body { padding: 14px; } .ct-lang { min-width: 0; width: 100%; } .ct-in { flex-wrap: wrap; } }
.cms-sec { display: contents; }
body.cms-on .cms-sec { display: grid; gap: 16px; position: relative; outline: 1px dashed var(--line-strong); outline-offset: 8px; border-radius: 4px; }
body.cms-on .cms-sec:hover { outline: 2px solid var(--ink); }
body.cms-on .cms-sec.cms-hidden > :not(.cms-tools) { opacity: .35; filter: grayscale(1); }
body.cms-on .cms-sec[data-locked] { outline-style: dotted; }
.cms-tools { position: absolute; top: -20px; right: 0; z-index: 6; display: flex; gap: 4px; align-items: center; padding: 4px; border-radius: 10px; background: var(--ink); color: var(--surface); box-shadow: var(--shadow-pop); font-size: 12px; }
.cms-tools button { height: 26px; min-width: 26px; padding: 0 8px; border-radius: 7px; border: 0; background: transparent; color: var(--surface); font: 500 12px var(--font-sans); cursor: pointer; }
.cms-tools button:hover:not(:disabled) { background: color-mix(in srgb, var(--surface) 18%, transparent); }
.cms-tools button:disabled { opacity: .35; cursor: default; }
.cms-lock { padding: 0 8px; opacity: .75; }
.cms-add { display: grid; place-items: center; margin: -8px 0; }
.cms-add button { height: 28px; padding: 0 12px; border-radius: 999px; border: 1px dashed var(--line-strong); background: var(--raised); color: var(--ink); font: 500 12px var(--font-sans); cursor: pointer; opacity: .55; transition: opacity .12s; }
.cms-add button:hover { opacity: 1; border-style: solid; border-color: var(--ink); }
.cms-t { outline: none; border-radius: 3px; cursor: text; transition: background-color .1s; }
.cms-t:hover { background: color-mix(in srgb, var(--accent) 35%, transparent); }
.cms-t:focus { background: color-mix(in srgb, var(--accent) 55%, transparent); box-shadow: 0 0 0 2px var(--accent-strong); color: var(--on-accent); }
.cms-fab { position: fixed; left: max(16px, env(safe-area-inset-left, 0px)); bottom: calc(env(safe-area-inset-bottom, 0px) + 16px); z-index: 30; display: inline-flex; align-items: center; gap: 8px; height: 42px; padding: 0 16px; border-radius: 999px; border: 0; background: var(--ink); color: var(--surface); font: 500 14px var(--font-sans); box-shadow: var(--shadow-pop); cursor: pointer; }
.cms-fab svg { width: 16px; height: 16px; }
.cms-bar { position: fixed; left: 50%; transform: translateX(-50%); bottom: calc(env(safe-area-inset-bottom, 0px) + 16px); z-index: 40; width: min(980px, calc(100% - 32px)); display: flex; gap: 12px 20px; align-items: center; justify-content: space-between; flex-wrap: wrap; padding: 12px 12px 12px 20px; border-radius: 18px; background: var(--raised); border: 1px solid var(--ink); box-shadow: var(--shadow-pop); }
.cms-bar-t { display: grid; gap: 2px; min-width: 0; flex: 1 1 320px; } .cms-bar-t .note { font-size: 13px; } .cms-warn { color: var(--danger) !important; }
.cms-bar-a { display: flex; gap: 8px; align-items: center; flex-wrap: wrap; }
body.cms-on main.wrap { padding-bottom: 120px; }
.cms-blk h2 { font-size: 24px; letter-spacing: -.02em; margin: 0 0 8px; }
.blk-text p { margin: 0; max-width: 70ch; font-size: 16px; line-height: 25px; color: var(--ink); }
.blk-cards { display: grid; gap: 12px; } .blk-cards > p { margin: 0; }
.blk-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 12px; } .blk-grid .card { display: grid; gap: 6px; } .blk-grid p { margin: 0; }
.blk-faq .card { padding: 4px 18px; } .blk-faq details { border-bottom: 1px solid var(--line); padding: 14px 0; } .blk-faq details:last-child { border-bottom: 0; }
.blk-faq summary { cursor: pointer; font-weight: 600; } .blk-faq details p { margin: 8px 0 0; color: var(--muted); }
.blk-cta { display: flex; justify-content: space-between; align-items: center; gap: 16px; flex-wrap: wrap; padding: 28px 32px; border-radius: 20px; background: var(--hero); color: var(--hero-fg); } .blk-cta h2 { color: var(--hero-fg); } .blk-cta p { margin: 0; color: var(--hero-muted); }
.blk-img { margin: 0; display: grid; gap: 8px; } .blk-img img { width: 100%; max-height: 520px; object-fit: cover; border-radius: 18px; } .blk-noimg { padding: 48px; text-align: center; border: 1px dashed var(--line-strong); border-radius: 18px; }
.bk-types { display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: 8px; }
.bk-type { display: grid; gap: 2px; text-align: left; padding: 12px; border-radius: 12px; border: 1px solid var(--line); background: var(--raised); color: var(--ink); cursor: pointer; font: inherit; }
.bk-type[aria-pressed="true"] { border-color: var(--ink); box-shadow: inset 0 0 0 1px var(--ink); background: var(--accent-soft); }
.bk-type .note { font-size: 12px; }
.bk-items { display: grid; gap: 10px; }
.bk-item { display: grid; grid-template-columns: 26px 1fr auto; gap: 10px; align-items: start; }
.bk-iflds { display: grid; gap: 6px; } .bk-iflds input, .bk-iflds textarea { width: 100%; border: 1px solid var(--line-strong); border-radius: var(--r-sm); padding: 8px 10px; background: var(--raised); color: var(--ink); font: 14px/1.4 var(--font-sans); }
.sheet-back.settled .sheet { animation: none; }

/* Mobile readability */
@media (max-width: 560px) {
  .hero-map { max-height: none; overflow: visible; padding-left: 10px; box-sizing: border-box; }
  .hero-map .lbl { font-size: 17px; font-weight: 600; }
  .hero-map .sub { font-size: 15px; fill: var(--hero-fg); fill-opacity: .8; }
  .hero-map .arc { stroke-opacity: .55; stroke-width: 1.75; }
  .note { font-size: 14px; line-height: 21px; }
  .pill.mono, .dd-tag, .dd-group, .th-u, .sday-n, .ss-cols, .ss-tag, .ir-scale,
  .tk-steps .mono, .tk-now, .adv-tag, .ct-tag, .ce-k { font-size: 12px; }
}
/* Freight-quote FAQ: only on the home (quote) view */
.sev-faq { margin-top: 48px; } .sev-faq h2 { margin: 0 0 14px; }
main:has(> #v-quote[hidden]) > .sev-faq { display: none; }
