/* ===================================================================
   CrewVoyage brand layer on top of Metronic 9 (KTUI) — dark-blue theme
   =================================================================== */
:root {
  --cv-navy-900: #0A1F3D;
  --cv-navy-800: #0E2A50;
  --cv-navy-700: #12315E;
  --cv-primary: #1D4ED8;
  --cv-primary-hover: #1E40AF;
  --cv-sky: #38BDF8;
  --cv-slate: #0F172A;
  --cv-surface: #F8FAFC;
  --cv-success: #059669;
  --cv-danger: #E11D48;
  --cv-warning: #D97706;
  --cv-muted: #64748B;
  --cv-sidebar-width: 270px;
  --cv-header-height: 60px;
  --primary: var(--cv-primary);
}

html, body { height: 100%; }
body { font-family: Inter, ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, sans-serif; background: var(--cv-surface); color: var(--cv-slate); margin: 0; }

/* ── Shell ─────────────────────────────────────────────────────────── */
.cv-shell { display: flex; min-height: 100vh; }
.cv-sidebar {
  position: fixed; inset: 0 auto 0 0; width: var(--cv-sidebar-width); z-index: 30;
  display: flex; flex-direction: column;
  background: linear-gradient(180deg, var(--cv-navy-900) 0%, var(--cv-navy-700) 100%);
  color: #cbd5e1; border-right: 1px solid rgba(255,255,255,.06);
  transition: transform .2s ease;
}
.cv-main { flex: 1; margin-left: var(--cv-sidebar-width); display: flex; flex-direction: column; min-width: 0; }
@media (max-width: 1023px) {
  .cv-sidebar { transform: translateX(-100%); }
  .cv-sidebar.is-open { transform: translateX(0); box-shadow: 0 0 0 100vw rgba(15,23,42,.45); }
  .cv-main { margin-left: 0; }
}

/* brand block */
.cv-brand { display: flex; align-items: center; gap: .75rem; padding: 0 1rem; height: 70px; border-bottom: 1px solid rgba(255,255,255,.06); }
.cv-brand-logo { width: 40px; height: 40px; border-radius: 10px; display: flex; align-items: center; justify-content: center;
  background: linear-gradient(135deg, rgba(56,189,248,.25), rgba(29,78,216,.35)); box-shadow: 0 0 0 1px rgba(255,255,255,.08); overflow: hidden; }
.cv-brand-logo img { width: 100%; height: 100%; object-fit: contain; }
.cv-brand-logo i { color: var(--cv-sky); font-size: 1.25rem; }
.cv-brand-title { font-size: 1.05rem; font-weight: 700; color: #f1f5f9; letter-spacing: -.01em; line-height: 1.1; }
.cv-brand-sub { font-size: 11px; color: #94a3b8; margin-top: 2px; }

/* nav search */
.cv-nav-search { position: relative; padding: .75rem .75rem 0; flex-shrink: 0; }
.cv-nav-search i { position: absolute; left: 1.4rem; top: 50%; transform: translateY(-50%); font-size: .75rem; color: #64748b; pointer-events: none; }
.cv-nav-search input { width: 100%; background: rgba(255,255,255,.06); border: 1px solid rgba(255,255,255,.08); border-radius: .5rem;
  padding: .4rem .6rem .4rem 2rem; font-size: .75rem; color: #f1f5f9; outline: none; transition: background .15s, border-color .15s; }
.cv-nav-search input::placeholder { color: #64748b; }
.cv-nav-search input:focus { background: rgba(255,255,255,.1); border-color: rgba(56,189,248,.4); }
.cv-nav-search input::-webkit-search-cancel-button { filter: invert(1) opacity(.6); cursor: pointer; }

/* nav */
.cv-nav { flex: 1; overflow-y: auto; padding: .75rem .75rem 1rem; }
.cv-nav-link.cv-nav-hidden, .cv-nav-heading.cv-nav-hidden { display: none; }
.cv-nav-heading { font-size: 10.5px; text-transform: uppercase; letter-spacing: .08em; color: #64748b; font-weight: 600; padding: .9rem .5rem .4rem; }
.cv-nav-link { position: relative; display: flex; align-items: center; gap: .75rem; padding: .5rem .75rem; border-radius: .5rem; color: #cbd5e1; text-decoration: none; font-size: .8125rem; font-weight: 500; transition: background .15s, color .15s; }
.cv-nav-link:hover { background: rgba(255,255,255,.06); color: #f8fafc; }
.cv-nav-link.active { background: linear-gradient(90deg, rgba(56,189,248,.22) 0%, rgba(56,189,248,.04) 100%); color: #fff; font-weight: 600; }
.cv-nav-link.active::before { content: ''; position: absolute; left: -.75rem; top: 50%; transform: translateY(-50%); width: 3px; height: 18px; background: var(--cv-sky); border-radius: 0 4px 4px 0; }
.cv-nav-link .cv-icon { width: 1.25rem; text-align: center; font-size: 1rem; color: #94a3b8; }
.cv-nav-link.active .cv-icon, .cv-nav-link:hover .cv-icon { color: var(--cv-sky); }
.cv-nav-badge { margin-left: auto; background: var(--cv-danger); color: #fff; font-size: 10px; font-weight: 700; border-radius: 999px; min-width: 18px; height: 18px; padding: 0 5px; display: none; align-items: center; justify-content: center; }
.cv-nav-badge.is-shown { display: inline-flex; }
.cv-sidebar-footer { border-top: 1px solid rgba(255,255,255,.06); padding: .75rem 1rem; font-size: 11px; color: #64748b; }

/* toolbar */
.cv-toolbar { position: sticky; top: 0; z-index: 20; background: #fff; border-bottom: 1px solid #e2e8f0; height: var(--cv-header-height); display: flex; align-items: center; justify-content: space-between; padding: 0 1.25rem; gap: 1rem; }
.cv-toolbar h1 { font-size: 1.125rem; font-weight: 600; margin: 0; letter-spacing: -.01em; }
.cv-crumb { display: flex; align-items: center; gap: .375rem; font-size: .75rem; color: var(--cv-muted); }
.cv-crumb a { color: var(--cv-muted); text-decoration: none; }
.cv-crumb a:hover { color: var(--cv-primary); }
.cv-crumb .current { color: var(--cv-slate); font-weight: 500; }
.cv-icon-btn { position: relative; width: 38px; height: 38px; border-radius: .6rem; display: inline-flex; align-items: center; justify-content: center; border: 1px solid transparent; background: transparent; color: #475569; cursor: pointer; transition: background .15s, color .15s; }
.cv-icon-btn:hover { background: #f1f5f9; border-color: #e2e8f0; color: var(--cv-primary); }
.cv-icon-dot { position: absolute; top: 6px; right: 6px; min-width: 16px; height: 16px; padding: 0 4px; border-radius: 999px; background: var(--cv-danger); color: #fff; font-size: 10px; font-weight: 700; display: none; align-items: center; justify-content: center; }
.cv-icon-dot.is-shown { display: inline-flex; }
.cv-avatar { width: 34px; height: 34px; border-radius: 999px; background: linear-gradient(135deg, var(--cv-primary), var(--cv-sky)); color: #fff; display: inline-flex; align-items: center; justify-content: center; font-weight: 700; font-size: .8rem; overflow: hidden; }
.cv-avatar img { width: 100%; height: 100%; object-fit: cover; }

/* client switcher */
.cv-client-switch { display: inline-flex; align-items: center; gap: .5rem; padding: .35rem .75rem; border: 1px solid #e2e8f0; border-radius: .6rem; background: #fff; font-size: .8125rem; font-weight: 600; color: var(--cv-slate); cursor: pointer; max-width: 260px; }
.cv-client-switch:hover { border-color: var(--cv-primary); }
.cv-client-switch .cv-client-code { background: var(--cv-navy-900); color: var(--cv-sky); font-size: 10px; padding: 2px 6px; border-radius: 4px; letter-spacing: .04em; }

/* dropdown panel (generic, JS toggled) */
.cv-panel { position: absolute; right: 0; top: calc(100% + .5rem); width: 320px; background: #fff; border: 1px solid #e2e8f0; border-radius: .75rem; box-shadow: 0 20px 25px -5px rgba(0,0,0,.1), 0 8px 10px -6px rgba(0,0,0,.1); z-index: 50; }
.cv-panel-header { display: flex; align-items: center; justify-content: space-between; padding: .75rem 1rem; border-bottom: 1px solid #e2e8f0; font-size: .85rem; font-weight: 600; }
.cv-panel-body { max-height: 20rem; overflow-y: auto; }
.cv-panel-item { display: flex; gap: .625rem; align-items: flex-start; padding: .625rem 1rem; border-bottom: 1px solid #f1f5f9; text-decoration: none; color: inherit; font-size: .8125rem; }
.cv-panel-item:hover { background: #f8fafc; }
.cv-panel-item.is-active { background: rgba(29,78,216,.06); font-weight: 600; }
.cv-panel-empty { padding: 1.25rem; text-align: center; color: var(--cv-muted); font-size: .8rem; }

/* content */
.cv-content { padding: 1.25rem 1.25rem 2rem; flex: 1; }
.cv-page-actions { display: flex; align-items: center; justify-content: space-between; gap: 1rem; margin-bottom: 1rem; flex-wrap: wrap; }
.cv-card { background: #fff; border: 1px solid #e2e8f0; border-radius: .75rem; }
.cv-card-header { display: flex; align-items: center; justify-content: space-between; padding: .875rem 1.25rem; border-bottom: 1px solid #e2e8f0; }
.cv-card-title { font-size: .9375rem; font-weight: 600; margin: 0; }
.cv-card-body { padding: 1.25rem; }
.cv-filter-bar { display: flex; flex-wrap: wrap; gap: .75rem; align-items: flex-end; padding: 1rem 1.25rem; background: #fff; border: 1px solid #e2e8f0; border-radius: .75rem; margin-bottom: 1rem; }
.cv-filter-bar label { display: block; font-size: 11px; color: var(--cv-muted); margin-bottom: .25rem; font-weight: 500; text-transform: uppercase; letter-spacing: .04em; }

/* stat tiles */
.cv-stats { display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: 1rem; margin-bottom: 1.25rem; }
.cv-stat { background: #fff; border: 1px solid #e2e8f0; border-radius: .75rem; padding: 1rem 1.25rem; display: flex; gap: 1rem; align-items: center; }
.cv-stat-icon { width: 44px; height: 44px; border-radius: .75rem; display: flex; align-items: center; justify-content: center; font-size: 1.1rem; }
.cv-stat-icon.blue { background: rgba(29,78,216,.12); color: var(--cv-primary); }
.cv-stat-icon.sky { background: rgba(56,189,248,.16); color: #0284c7; }
.cv-stat-icon.green { background: rgba(5,150,105,.12); color: var(--cv-success); }
.cv-stat-icon.amber { background: rgba(217,119,6,.12); color: var(--cv-warning); }
.cv-stat-icon.rose { background: rgba(225,29,72,.12); color: var(--cv-danger); }
.cv-stat-value { font-size: 1.5rem; font-weight: 700; line-height: 1; font-variant-numeric: tabular-nums; }
.cv-stat-label { font-size: .75rem; color: var(--cv-muted); margin-top: .25rem; }

/* badges (status colours from the plan) */
.cv-badge { display: inline-flex; align-items: center; gap: .3rem; padding: .125rem .55rem; border-radius: 999px; font-size: .72rem; font-weight: 600; line-height: 1.25rem; white-space: nowrap; }
.cv-badge-primary { background: rgba(29,78,216,.12); color: var(--cv-primary); }
.cv-badge-success { background: rgba(5,150,105,.12); color: var(--cv-success); }
.cv-badge-danger { background: rgba(225,29,72,.12); color: var(--cv-danger); }
.cv-badge-warning { background: rgba(217,119,6,.12); color: var(--cv-warning); }
.cv-badge-muted { background: rgba(100,116,139,.14); color: var(--cv-muted); }
.cv-badge-sky { background: rgba(56,189,248,.18); color: #0369a1; }
.cv-badge-dot::before { content: ''; width: 6px; height: 6px; border-radius: 999px; background: currentColor; }

/* forms */
.cv-form-grid { display: grid; gap: 1rem; grid-template-columns: 1fr; }
@media (min-width: 768px) { .cv-form-grid.cols-2 { grid-template-columns: 1fr 1fr; } .cv-form-grid.cols-3 { grid-template-columns: repeat(3, 1fr); } .cv-form-grid.cols-4 { grid-template-columns: repeat(4, 1fr); } }
.cv-field label { display: block; font-size: .78rem; font-weight: 500; color: #334155; margin-bottom: .3rem; }
.cv-field .req::after { content: ' *'; color: var(--cv-danger); }
.cv-help { font-size: .72rem; color: var(--cv-muted); margin-top: .25rem; }
.cv-error { font-size: .75rem; color: var(--cv-danger); margin-top: .25rem; }
.validation-summary-errors ul { margin: 0; padding-left: 1.1rem; }
.field-validation-error { font-size: .75rem; color: var(--cv-danger); }
.input-validation-error { border-color: var(--cv-danger) !important; }

/* Kendo integration */
.k-grid { border-radius: .75rem; overflow: hidden; border-color: #e2e8f0; font-size: .8125rem; }
.k-grid .k-grid-header { background: #f8fafc; }
.k-grid .k-grid-header th { font-weight: 600; color: #334155; }
.k-grid td { vertical-align: middle; padding: .45rem .75rem; line-height: 1.35; }
.k-grid .k-grid-header th { padding: .55rem .75rem; }
.k-grid .k-button.kt-btn { padding: .2rem .4rem; }
.k-grid tr:hover td { background: #f8fafc; }
.k-button-solid-primary { background: var(--cv-primary); border-color: var(--cv-primary); }
.k-notification { border-radius: .6rem; font-size: .8125rem; }
.k-window { border-radius: .75rem; }
.k-editor { border-radius: .5rem; }

/* auth pages */
.cv-auth { min-height: 100vh; display: grid; grid-template-columns: 1fr; }
@media (min-width: 1024px) { .cv-auth { grid-template-columns: 5fr 4fr; } }
.cv-auth-hero { position: relative; background: linear-gradient(160deg, var(--cv-navy-900) 0%, var(--cv-navy-700) 60%, #1e3a8a 100%); color: #e2e8f0; display: none; flex-direction: column; justify-content: space-between; padding: 3rem; overflow: hidden; }
@media (min-width: 1024px) { .cv-auth-hero { display: flex; } }
.cv-auth-hero::after { content: ''; position: absolute; inset: 0; background: radial-gradient(circle at 20% 20%, rgba(56,189,248,.18), transparent 45%), radial-gradient(circle at 80% 70%, rgba(29,78,216,.25), transparent 50%); }
.cv-auth-hero.has-bg::after { background: url('/assets/branding/login-bg.jpg') center/cover no-repeat; opacity: .18; }
.cv-auth-hero > * { position: relative; z-index: 1; }
.cv-auth-hero h2 { font-size: 2rem; font-weight: 700; color: #fff; letter-spacing: -.02em; margin: 0 0 .75rem; }
.cv-auth-hero p { color: #cbd5e1; max-width: 32rem; font-size: 1rem; line-height: 1.6; }
.cv-auth-hero .wave { position: absolute; right: -80px; bottom: -80px; width: 380px; height: 380px; border-radius: 50%; border: 60px solid rgba(56,189,248,.08); }
.cv-auth-form { display: flex; align-items: center; justify-content: center; padding: 2rem; background: #fff; }
.cv-auth-card { width: 100%; max-width: 400px; }
.cv-auth-card h1 { font-size: 1.5rem; font-weight: 700; margin: 0 0 .25rem; letter-spacing: -.01em; }
.cv-auth-card .sub { color: var(--cv-muted); font-size: .875rem; margin-bottom: 1.75rem; }
.cv-auth-card .cv-field { margin-bottom: 1rem; }
.cv-auth-footer { margin-top: 2rem; font-size: .75rem; color: var(--cv-muted); text-align: center; }

/* misc */
.cv-empty { padding: 3rem 1rem; text-align: center; color: var(--cv-muted); }
.cv-empty i { font-size: 2rem; margin-bottom: .75rem; display: block; color: #cbd5e1; }
.text-muted { color: var(--cv-muted); }
.mono { font-variant-numeric: tabular-nums; font-family: ui-monospace, SFMono-Regular, Menlo, monospace; }

/* tabs */
.cv-tabs { display: flex; gap: .25rem; border-bottom: 1px solid #e2e8f0; margin-bottom: 1.25rem; overflow-x: auto; }
.cv-tab { padding: .6rem 1rem; font-size: .85rem; font-weight: 500; color: var(--cv-muted); border-bottom: 2px solid transparent; cursor: pointer; white-space: nowrap; background: none; border-top: 0; border-left: 0; border-right: 0; }
.cv-tab:hover { color: var(--cv-slate); }
.cv-tab.active { color: var(--cv-primary); border-bottom-color: var(--cv-primary); }
.cv-tab-pane { display: none; }
.cv-tab-pane.active { display: block; }
.cv-section-title { font-size: .8rem; font-weight: 600; text-transform: uppercase; letter-spacing: .05em; color: var(--cv-muted); margin: 0 0 .75rem; }
.cv-check { display: flex; align-items: center; gap: .5rem; font-size: .85rem; padding: .35rem 0; }
.cv-check input { margin: 0; }
.cv-inline-actions { display: flex; gap: .5rem; align-items: center; }

/* utility overrides that must win over component display rules */
.hidden { display: none !important; }
.cv-tabs.cv-tabs-wrap { flex-wrap: wrap; }

/* PNR panel */
.cv-pnr-group td{background:#f1f5f9;font-weight:600;font-size:.75rem;text-transform:uppercase;letter-spacing:.03em;color:var(--cv-navy-700,#12315E);padding:.4rem .6rem}
.cv-pnr-table td,.cv-pnr-table th{padding:.45rem .6rem;vertical-align:top}
.cv-pnr-detail td{background:#fafcff;border-top:0}
.mono{font-family:ui-monospace,Consolas,"Cascadia Mono",monospace}

/* ── Inbox (three panes) ───────────────────────────────────────────────── */
.cv-inbox{display:grid;grid-template-columns:210px 380px 1fr;gap:.75rem;align-items:start;height:calc(100vh - 190px);min-height:520px}
.cv-inbox>.cv-card{height:100%;display:flex;flex-direction:column;overflow:hidden}
.cv-inbox-nav .cv-card-body{overflow-y:auto}
.cv-inbox-list .cv-card-body{overflow-y:auto;flex:1}
.cv-inbox-reading .cv-card-body{overflow-y:auto;flex:1}
.cv-inbox-link{display:flex;align-items:center;gap:.5rem;padding:.35rem .5rem;border-radius:.35rem;color:var(--cv-text);font-size:.8rem;text-decoration:none}
.cv-inbox-link:hover{background:#eef2ff}
.cv-inbox-link.active{background:var(--cv-navy-900);color:#fff}
.cv-inbox-link i{width:15px;text-align:center;opacity:.8}
.cv-inbox-link span{margin-left:auto;font-size:.7rem;background:rgba(148,163,184,.25);border-radius:10px;padding:0 .4rem}
.cv-inbox-link.active span{background:rgba(255,255,255,.2)}
.cv-inbox-pager{display:flex;align-items:center;justify-content:space-between;gap:.5rem;padding:.35rem .6rem;border-top:1px solid #e2e8f0}
.cv-mail-row{display:flex;gap:.5rem;padding:.55rem .7rem;border-bottom:1px solid #eef2f7;cursor:pointer}
.cv-mail-row:hover{background:#f8fafc}
.cv-mail-row.active{background:#eef2ff;box-shadow:inset 3px 0 0 var(--cv-primary)}
.cv-mail-row.unread .cv-mail-subject,.cv-mail-row.unread .cv-mail-sender{font-weight:700}
.cv-mail-row.unread{background:#fdfdff}
.cv-mail-check{margin-top:.2rem}
.cv-mail-main{min-width:0;flex:1}
.cv-mail-top{display:flex;justify-content:space-between;gap:.5rem;font-size:.78rem}
.cv-mail-sender{color:var(--cv-navy-900);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.cv-mail-date{color:var(--cv-muted);font-size:.7rem;white-space:nowrap}
.cv-mail-subject{font-size:.82rem;margin:.1rem 0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.cv-mail-preview{font-size:.73rem;color:var(--cv-muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.cv-mail-badges{display:flex;gap:.3rem;flex-wrap:wrap;margin-top:.25rem;align-items:center}
.cv-mail-head{border-bottom:1px solid #e2e8f0;padding-bottom:.75rem;margin-bottom:.75rem}
.cv-mail-order{display:flex;justify-content:space-between;align-items:center;gap:1rem;flex-wrap:wrap;margin-top:.6rem;padding:.5rem .7rem;background:#f1f5f9;border-radius:.4rem;font-size:.8rem}
.cv-mail-attachments{display:flex;gap:.4rem;flex-wrap:wrap;margin-bottom:.6rem}
.cv-attachment{display:inline-flex;align-items:center;gap:.35rem;font-size:.75rem;padding:.25rem .5rem;border:1px solid #e2e8f0;border-radius:.35rem;text-decoration:none;color:var(--cv-text);background:#fff}
.cv-attachment:hover{border-color:var(--cv-primary);color:var(--cv-primary)}
.cv-mail-body{border:1px solid #eef2f7;border-radius:.4rem;padding:.25rem}
.cv-mail-notes{margin-top:1rem;border-top:1px solid #e2e8f0;padding-top:.75rem}
.cv-note-item{padding:.4rem .55rem;background:#f8fafc;border-radius:.35rem;margin-bottom:.35rem;font-size:.8rem}
.cv-mail-timeline{display:grid;gap:.5rem}
.cv-mail-item{display:flex;gap:.6rem;padding:.55rem .7rem;border:1px solid #e2e8f0;border-radius:.4rem;background:#fff}
.cv-mail-item.out{border-left:3px solid var(--cv-primary)}
.cv-mail-item.in{border-left:3px solid var(--cv-success)}
@media (max-width:1400px){.cv-inbox{grid-template-columns:190px 330px 1fr}}

/* ── Pop-out windows (second-monitor views) ────────────────────────────── */
.cv-popout-body{background:var(--cv-surface);margin:0}
.cv-popout-bar{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.4rem .8rem;background:var(--cv-navy-900);color:#fff;position:sticky;top:0;z-index:20}
.cv-popout-brand{display:flex;align-items:center;gap:.5rem;font-weight:600;font-size:.85rem}
.cv-popout-brand i{color:var(--cv-sky)}
.cv-popout-main{padding:.9rem}
.cv-popout-main .cv-inbox{height:calc(100vh - 110px)}

/* Compose side panel pick lists */
.cv-pick-list{max-height:260px;overflow-y:auto}
.cv-pick-list label{display:flex!important;align-items:flex-start;gap:.45rem;font-size:.78rem;padding:.2rem .15rem;line-height:1.35}
.cv-pick-list label input{margin-top:.15rem;flex:0 0 auto}
.cv-pick-list label span{min-width:0;overflow-wrap:anywhere}

/* ── Jarvis assistant ──────────────────────────────────────────────────── */
.cv-jarvis{position:fixed;right:1.25rem;bottom:1.25rem;z-index:60}
.cv-jarvis-fab{width:52px;height:52px;border-radius:50%;border:0;cursor:pointer;color:#fff;font-size:1.15rem;box-shadow:0 10px 24px rgba(10,31,61,.35);background:linear-gradient(135deg,var(--cv-primary),var(--cv-navy-900))}
.cv-jarvis-fab:hover{transform:translateY(-1px)}
.cv-jarvis.open .cv-jarvis-fab{transform:scale(.92);opacity:.9}
.cv-jarvis-panel{position:absolute;right:0;bottom:66px;width:390px;max-width:calc(100vw - 2.5rem);height:540px;max-height:calc(100vh - 8rem);display:flex;flex-direction:column;background:#fff;border:1px solid #e2e8f0;border-radius:.7rem;box-shadow:0 24px 60px rgba(10,31,61,.28);overflow:hidden}
.cv-jarvis-head{display:flex;align-items:center;justify-content:space-between;gap:.5rem;padding:.6rem .8rem;background:var(--cv-navy-900);color:#fff}
.cv-jarvis-title{font-weight:700;font-size:.9rem;display:flex;align-items:center;gap:.4rem}
.cv-jarvis-title i{color:var(--cv-sky)}
.cv-jarvis-sub{font-size:.68rem;opacity:.75}
.cv-jarvis-icon{background:transparent;border:0;color:#fff;opacity:.75;cursor:pointer;padding:.2rem .35rem;font-size:.85rem}
.cv-jarvis-icon:hover{opacity:1}
.cv-jarvis-messages{flex:1;overflow-y:auto;padding:.75rem;display:flex;flex-direction:column;gap:.5rem;background:var(--cv-surface)}
.cv-jarvis-msg{max-width:88%;padding:.5rem .7rem;border-radius:.6rem;font-size:.82rem;line-height:1.45;white-space:pre-wrap;overflow-wrap:anywhere}
.cv-jarvis-msg.user{align-self:flex-end;background:var(--cv-primary);color:#fff;border-bottom-right-radius:.2rem}
.cv-jarvis-msg.assistant{align-self:flex-start;background:#fff;border:1px solid #e2e8f0;border-bottom-left-radius:.2rem}
.cv-jarvis-suggestions{display:flex;flex-wrap:wrap;gap:.3rem;padding:0 .75rem .5rem;background:var(--cv-surface)}
.cv-jarvis-suggestions button{font-size:.72rem;padding:.25rem .55rem;border:1px solid #cbd5e1;background:#fff;border-radius:999px;cursor:pointer;color:var(--cv-navy-700,#12315E)}
.cv-jarvis-suggestions button:hover{border-color:var(--cv-primary);color:var(--cv-primary)}
.cv-jarvis-form{display:flex;gap:.4rem;padding:.55rem .75rem;border-top:1px solid #e2e8f0}
.cv-jarvis-form input{flex:1;border:1px solid #cbd5e1;border-radius:.4rem;padding:.4rem .6rem;font-size:.82rem}
.cv-jarvis-form input:focus{outline:0;border-color:var(--cv-primary)}
.cv-jarvis-foot{font-size:.66rem;color:var(--cv-muted);padding:0 .75rem .5rem;text-align:center}

/* ── User guide ────────────────────────────────────────────────────────── */
.cv-guide{display:grid;grid-template-columns:250px 1fr;gap:1rem;align-items:start}
.cv-guide-toc{position:sticky;top:5rem}
.cv-guide-toc a{display:flex;align-items:center;gap:.5rem;padding:.35rem .6rem;border-radius:.4rem;font-size:.8rem;color:var(--cv-text);text-decoration:none}
.cv-guide-toc a:hover{background:#eef2ff;color:var(--cv-primary)}
.cv-guide-toc a i{width:15px;text-align:center;opacity:.75}
.cv-guide-body{display:flex;flex-direction:column;gap:1rem}
.cv-guide-sec{scroll-margin-top:5.5rem}
.cv-guide-sec h2{display:flex;align-items:center;gap:.6rem;font-size:1rem;font-weight:700;margin:0 0 .6rem;color:var(--cv-navy-900)}
.cv-guide-sec .gi{width:28px;height:28px;border-radius:.45rem;display:inline-flex;align-items:center;justify-content:center;background:#eef2ff;color:var(--cv-primary);font-size:.8rem}
.cv-guide-sec p,.cv-guide-sec li{font-size:.84rem;line-height:1.6}
.cv-guide-sec ul{padding-left:1.1rem;margin:.4rem 0}
.cv-guide-note{background:#fffbeb;border-left:3px solid var(--cv-warning);padding:.5rem .7rem;border-radius:.3rem;margin-top:.6rem}
.cv-guide-step{counter-reset:step;list-style:none;padding-left:0;margin:.5rem 0}
.cv-guide-step>li{counter-increment:step;position:relative;padding-left:2rem;margin-bottom:.45rem}
.cv-guide-step>li::before{content:counter(step);position:absolute;left:0;top:.05rem;width:1.35rem;height:1.35rem;border-radius:50%;background:var(--cv-primary);color:#fff;font-size:.7rem;font-weight:700;display:flex;align-items:center;justify-content:center}
.cv-guide-sec kbd{background:#0f172a;color:#fff;border-radius:.25rem;padding:.05rem .35rem;font-size:.7rem}
@media print{.cv-sidebar,.cv-toolbar,.cv-page-actions,.cv-guide-toc,.cv-jarvis{display:none!important}.cv-guide{grid-template-columns:1fr}.cv-main{margin:0}}
@media (max-width:1100px){.cv-guide{grid-template-columns:1fr}.cv-guide-toc{position:static}}

/* ── Executive dashboard ───────────────────────────────────────────────── */
.cv-kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:.75rem;margin-bottom:1rem}
.cv-kpi{display:flex;align-items:center;gap:.75rem;padding:.8rem .9rem;background:#fff;border:1px solid #e2e8f0;border-radius:.6rem;text-decoration:none;color:var(--cv-text);transition:.15s;position:relative;overflow:hidden}
.cv-kpi::after{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;background:var(--cv-primary)}
.cv-kpi.good::after{background:var(--cv-success)}
.cv-kpi.warn::after{background:var(--cv-warning)}
.cv-kpi.bad::after{background:var(--cv-danger)}
.cv-kpi:hover{border-color:var(--cv-primary);box-shadow:0 6px 18px rgba(29,78,216,.10);transform:translateY(-1px)}
.cv-kpi-icon{width:38px;height:38px;border-radius:.5rem;display:flex;align-items:center;justify-content:center;background:#eef2ff;color:var(--cv-primary);font-size:1rem;flex:0 0 auto}
.cv-kpi.good .cv-kpi-icon{background:#ecfdf5;color:var(--cv-success)}
.cv-kpi.warn .cv-kpi-icon{background:#fffbeb;color:var(--cv-warning)}
.cv-kpi.bad .cv-kpi-icon{background:#fff1f2;color:var(--cv-danger)}
.cv-kpi-main{min-width:0}
.cv-kpi-value{font-size:1.5rem;font-weight:800;line-height:1.1;color:var(--cv-navy-900)}
.cv-kpi-label{font-size:.74rem;font-weight:600;color:var(--cv-text)}
.cv-kpi-hint{font-size:.68rem;color:var(--cv-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.cv-dash-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:.9rem;align-items:start}
.cv-dash-wide{grid-column:span 2}
.cv-dash-tall{grid-row:span 2}
.cv-note-chip{border-left:3px solid #94a3b8;background:#f8fafc;border-radius:.35rem;padding:.45rem .6rem;margin-bottom:.45rem}
@media (max-width:1500px){.cv-kpis{grid-template-columns:repeat(4,1fr)}}
@media (max-width:1200px){.cv-kpis{grid-template-columns:repeat(2,1fr)}.cv-dash-grid{grid-template-columns:1fr 1fr}.cv-dash-wide{grid-column:span 2}.cv-dash-tall{grid-row:auto}}
@media (max-width:800px){.cv-kpis,.cv-dash-grid{grid-template-columns:1fr}.cv-dash-wide{grid-column:auto}}

/* ── Internal chat ─────────────────────────────────────────────────────── */
.cv-chat{display:grid;grid-template-columns:290px 1fr 240px;gap:.75rem;align-items:start;height:calc(100vh - 190px);min-height:520px}
.cv-chat>.cv-card{height:100%;display:flex;flex-direction:column;overflow:hidden}
.cv-chat-list .cv-card-body,.cv-chat-people .cv-card-body{overflow-y:auto;flex:1}
.cv-chat-main{min-width:0}
.cv-chat-messages{flex:1;overflow-y:auto;display:flex;flex-direction:column;gap:.4rem;background:var(--cv-surface)}
.cv-conv,.cv-person{display:flex;gap:.55rem;align-items:center;padding:.45rem .5rem;border-radius:.45rem;text-decoration:none;color:var(--cv-text)}
.cv-conv:hover,.cv-person:hover{background:#eef2ff}
.cv-conv.active{background:var(--cv-navy-900);color:#fff}
.cv-conv.active .cv-conv-preview,.cv-conv.active .cv-conv-time{color:rgba(255,255,255,.7)}
.cv-avatar{position:relative;width:34px;height:34px;border-radius:50%;background:#e0e7ff;color:var(--cv-primary);display:flex;align-items:center;justify-content:center;font-size:.72rem;font-weight:700;flex:0 0 auto}
.cv-presence{position:absolute;right:-1px;bottom:-1px;width:10px;height:10px;border-radius:50%;background:#94a3b8;border:2px solid #fff}
.cv-presence.on{background:var(--cv-success)}
.cv-conv-top{display:flex;justify-content:space-between;gap:.4rem;align-items:center}
.cv-conv-name{font-size:.82rem;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.cv-conv-time{font-size:.68rem;color:var(--cv-muted)}
.cv-conv-preview{font-size:.72rem;color:var(--cv-muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.cv-person-name{font-size:.8rem;font-weight:600}
.cv-person-role{font-size:.68rem;color:var(--cv-muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.cv-chat-msg{max-width:70%;padding:.45rem .65rem;border-radius:.6rem;font-size:.82rem;line-height:1.45}
.cv-chat-msg.mine{align-self:flex-end;background:var(--cv-primary);color:#fff;border-bottom-right-radius:.2rem}
.cv-chat-msg.theirs{align-self:flex-start;background:#fff;border:1px solid #e2e8f0;border-bottom-left-radius:.2rem}
.cv-chat-sender{font-size:.68rem;font-weight:700;color:var(--cv-primary);margin-bottom:.1rem}
.cv-chat-text{white-space:pre-wrap;overflow-wrap:anywhere}
.cv-chat-time{font-size:.62rem;opacity:.7;margin-top:.15rem;text-align:right}
.cv-chat-system{align-self:center;font-size:.7rem;color:var(--cv-muted);background:#eef2f7;border-radius:999px;padding:.15rem .6rem}
.cv-chat-typing{font-size:.72rem;padding:0 .75rem;height:1.1rem}
.cv-chat-form{display:flex;gap:.4rem;padding:.5rem .75rem;border-top:1px solid #e2e8f0}
.cv-chat-form input{flex:1}
.cv-person-picker{max-height:320px;overflow-y:auto;border:1px solid #e2e8f0;border-radius:.4rem;padding:.4rem}
/* .kt-checkbox/.kt-radio are Metronic input styles (appearance:none + border/background) meant
   for the <input> itself; applying them to the wrapping <label> instead, as this used to do,
   made every row's label collapse into a checkbox-sized box and its text overlap the next row's. */
.cv-picker-row{display:flex;align-items:center;gap:.5rem;padding:.35rem .25rem;cursor:pointer;border-radius:.3rem}
.cv-picker-row:hover{background:#f1f5f9}
.cv-call-overlay{position:fixed;inset:0;background:rgba(10,31,61,.92);z-index:80;display:flex;align-items:center;justify-content:center}
.cv-call-box{width:min(760px,92vw);color:#fff;text-align:center}
.cv-call-title{font-size:1.1rem;font-weight:700;margin-bottom:.75rem}
.cv-call-video{position:relative;background:#000;border-radius:.6rem;overflow:hidden;aspect-ratio:16/9;margin-bottom:1rem}
.cv-call-video video{width:100%;height:100%;object-fit:cover}
.cv-call-video #localVideo{position:absolute;right:12px;bottom:12px;width:22%;height:auto;border:2px solid rgba(255,255,255,.4);border-radius:.35rem}
.cv-call-actions{display:flex;gap:.5rem;justify-content:center}
@media (max-width:1300px){.cv-chat{grid-template-columns:250px 1fr}.cv-chat-people{display:none}}
