/* Holand Lease Portal - STAGING. Portal look (Velonic theme + the portal's own inline styles) plus AI accents. */
:root { --ai1:#7c3aed; --ai2:#14b8c4; --ai-soft:#f6f2ff; --ai-border:#e4d9ff; --stg:#f59e0b; }

/* ---------- shell ---------- */
#leftside-menu-container { height: calc(100% - 70px); overflow-y: auto; overflow-x: hidden; }
html[data-sidenav-size=condensed] #leftside-menu-container { overflow: visible; }
.side-nav .side-nav-item .side-nav-link { display:flex; align-items:center; gap:.65rem; border-radius:.65rem; padding:.55rem .9rem; transition:background .18s ease, color .18s ease; cursor:pointer; }
.side-nav .side-nav-item .side-nav-link i { font-size:1.15rem; width:1.35rem; text-align:center; opacity:.9; }
.side-nav .side-nav-item .side-nav-link.active { background:#0d6efd14; color:#5aa2ff; font-weight:600; }
.side-nav .side-nav-item .side-nav-link.active i { color:#5aa2ff; }
.side-nav .side-nav-item .side-nav-link .badge { margin-left:auto; }
.side-nav-title { font-size:.74rem; letter-spacing:.04em; font-weight:700; color:#8b9bb0; margin:14px 14px 6px; text-transform:uppercase; }
.side-nav-title.ai-title { color:#c4b5fd; }
.side-nav-title.ai-title::before { content:'\2726  '; color:#a78bfa; }
html[data-sidenav-size=condensed] .side-nav-title, html[data-sidenav-size=condensed] .custom-dropdown { display:none; }
.custom-dropdown { position:relative; width:83%; font-family:Arial, sans-serif; margin:6px auto 4px; }
.dropdown-selected { padding:10px 15px; background:#fff; border:1px solid #ddd; border-radius:10px; cursor:pointer; display:flex; justify-content:space-between; align-items:center; box-shadow:0 2px 5px rgba(0,0,0,.1); color:#36404c; }
.dropdown-options { display:none; position:absolute; top:100%; left:0; right:0; background:#fff; border:1px solid #ddd; border-radius:10px; margin-top:5px; box-shadow:0 2px 10px rgba(0,0,0,.1); z-index:1000; overflow:hidden; }
.custom-dropdown.active .dropdown-options { display:block; }
.dropdown-option { padding:10px 15px; cursor:pointer; color:#36404c; }
.dropdown-option:hover { background:#101415; color:#cecece; }
.dropdown-option:not(:last-child) { border-bottom:1px solid #eee; }
.dropdown-option small { display:block; color:#94a3b8; font-size:.72rem; }
.logo .logo-lg, .logo .logo-sm { display:flex; align-items:center; justify-content:center; }
.staging-badge { background:linear-gradient(90deg,#f59e0b,#f97316); color:#fff; font-weight:800; letter-spacing:.06em; font-size:.68rem; padding:.3rem .55rem; border-radius:6px; }
.navbar-custom { border-top:3px solid var(--stg); }
.topbar-ai { display:flex; align-items:center; gap:.5rem; }
.autopilot-pill { display:inline-flex; align-items:center; gap:.4rem; border:1px solid var(--ai-border); background:var(--ai-soft); color:#5b21b6; border-radius:999px; padding:.3rem .7rem; font-size:.78rem; font-weight:600; cursor:pointer; }
.autopilot-pill .pulse { width:8px; height:8px; border-radius:50%; background:#22c55e; box-shadow:0 0 0 0 rgba(34,197,94,.6); animation:pulse 1.8s infinite; }
.autopilot-pill.off .pulse { background:#94a3b8; animation:none; }
@keyframes pulse { 0%{box-shadow:0 0 0 0 rgba(34,197,94,.55)} 70%{box-shadow:0 0 0 8px rgba(34,197,94,0)} 100%{box-shadow:0 0 0 0 rgba(34,197,94,0)} }
.ai-feed-menu { width:380px; max-height:440px; overflow-y:auto; }
.ai-feed-item { padding:.5rem .9rem; border-bottom:1px solid #f1f3f5; font-size:.8rem; }
.ai-feed-item small { color:#94a3b8; }
.footer { font-size:.82rem; }

/* ---------- portal widgets (index.php inline styles) ---------- */
.kpi-card { border:0; border-radius:16px; background:linear-gradient(135deg,#f7fbff 0%,#eef5ff 100%); box-shadow:0 8px 24px rgba(13,110,253,.06); overflow:hidden; position:relative; }
.kpi-card .kpi-icon { position:absolute; right:16px; top:14px; font-size:1.6rem; opacity:.25; }
.kpi-card .kpi-title { font-size:.85rem; letter-spacing:.02em; color:#6b7a90; text-transform:uppercase; }
.kpi-card .kpi-value { font-size:1.8rem; font-weight:800; color:#0d1c2e; }
.kpi-card .kpi-sub { font-size:.78rem; color:#6b7a90; }
.kpi-accent-blue { background:linear-gradient(135deg,#e9f3ff,#e6f0ff); }
.kpi-accent-amber { background:linear-gradient(135deg,#fff6e5,#ffefd3); }
.kpi-accent-pink { background:linear-gradient(135deg,#ffe8f1,#ffd9e9); }
.kpi-accent-green { background:linear-gradient(135deg,#e6fff4,#dbffef); }
.kpi-accent-gray { background:linear-gradient(135deg,#f6f7f9,#eef1f5); }
.kpi-accent-ai { background:linear-gradient(135deg,#f3edff,#e9f9fb); }
a.kpi-link { color:inherit; display:block; }
.widget { border:0; border-radius:16px; overflow:hidden; box-shadow:0 8px 24px rgba(16,24,40,.06); }
.widget .card-header { border:0; background:linear-gradient(120deg,#2c3e50,#4a6491); color:#fff; padding:.9rem 1rem; font-weight:700; }
.activity-item + .activity-item { border-top:1px solid #f1f3f5; }
.small-muted { font-size:.82rem; color:#7d8a9a; }
.bar-chart .bar-row { display:flex; align-items:center; gap:.6rem; margin:.35rem 0; font-size:.8rem; }
.bar-chart .bar-label { width:44%; color:#55606e; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.bar-chart .bar-track { flex:1; background:#eef1f5; border-radius:999px; height:10px; overflow:hidden; }
.bar-chart .bar-fill { height:100%; border-radius:999px; background:#3bc0c3; }
.bar-chart .bar-val { width:2.5rem; text-align:right; font-weight:700; color:#2c3e50; }
.col-chart { display:flex; align-items:flex-end; gap:10px; height:150px; padding-top:10px; }
.col-chart .col { flex:1; display:flex; flex-direction:column; align-items:center; justify-content:flex-end; height:100%; font-size:.72rem; color:#6b7a90; }
.col-chart .col .bar { width:70%; background:#4489e4; border-radius:6px 6px 0 0; min-height:2px; }
.col-chart .col b { color:#2c3e50; font-size:.75rem; }

/* ---------- tables & badges ---------- */
.table-sm td, .table-sm th { vertical-align:middle; }
.progress-slim { height:7px; border-radius:999px; }
.dt-toolbar { display:flex; flex-wrap:wrap; gap:.5rem; align-items:center; justify-content:space-between; margin-bottom:.6rem; }
.dt-toolbar .dt-search input { min-width:220px; }
th.sortable { cursor:pointer; user-select:none; white-space:nowrap; }
th.sortable::after { content:' \2195'; opacity:.35; font-size:.75em; }
th.sort-asc::after { content:' \2191'; opacity:.8; }
th.sort-desc::after { content:' \2193'; opacity:.8; }
.dataTables_info { font-size:.82rem; color:#6c757d; }
.row-detail { background:#fbfcfe; }
.row-detail td { padding:1rem 1.25rem !important; }
.badge-soft { padding:.3rem .55rem; border-radius:999px; font-weight:600; font-size:.75rem; }
.chip { display:inline-flex; align-items:center; gap:.25rem; padding:.18rem .5rem; border-radius:999px; font-size:.72rem; font-weight:600; background:#f1f5f9; color:#475569; }
.chip.red { background:#fee2e2; color:#991b1b; } .chip.amber { background:#fef3c7; color:#92400e; } .chip.green { background:#dcfce7; color:#166534; }
.chip.blue { background:#dbeafe; color:#1e40af; } .chip.violet { background:#ede9fe; color:#5b21b6; }
.temp { display:inline-flex; align-items:center; gap:.3rem; font-weight:700; font-size:.75rem; border-radius:999px; padding:.15rem .55rem; }
.temp.hot { background:#fee2e2; color:#b91c1c; } .temp.warm { background:#fef3c7; color:#b45309; } .temp.cold { background:#e0f2fe; color:#0369a1; }

/* ---------- AI ---------- */
.ai-chip { display:inline-flex; align-items:center; gap:.25rem; font-size:.68rem; font-weight:800; letter-spacing:.03em; color:#fff; background:linear-gradient(90deg,var(--ai1),var(--ai2)); border-radius:999px; padding:.14rem .5rem; vertical-align:middle; }
.ai-chip.soft { background:var(--ai-soft); color:#6d28d9; border:1px solid var(--ai-border); }
.btn-ai { color:#fff; background:linear-gradient(90deg,var(--ai1),#5b5cf0); border:0; }
.btn-ai:hover, .btn-ai:focus { color:#fff; background:linear-gradient(90deg,#6d28d9,#4f46e5); }
.btn-outline-ai { color:#6d28d9; border:1px solid #c4b5fd; background:#fff; }
.btn-outline-ai:hover { color:#fff; background:var(--ai1); border-color:var(--ai1); }
.ai-card { border:1px solid var(--ai-border) !important; background:linear-gradient(180deg,#fbf9ff 0%,#ffffff 60%); border-radius:14px; }
.ai-card > .card-header { background:transparent; border-bottom:1px solid var(--ai-border); font-weight:700; color:#4c1d95; }
.ai-strip { border:1px solid var(--ai-border); background:linear-gradient(90deg,#f7f3ff,#effbfc); border-radius:14px; padding:.85rem 1rem; }
.ai-strip .ai-head { font-weight:700; color:#3b1d74; }
.ai-next { background:#fff; border:1px dashed #c4b5fd; border-radius:10px; padding:.5rem .75rem; }
.ai-proposal { border:1px solid #ece8f8; border-radius:12px; padding:.75rem .9rem; background:#fff; }
.ai-proposal + .ai-proposal { margin-top:.6rem; }
.ai-proposal .meta { font-size:.75rem; color:#7c8798; }
.check-row { display:flex; gap:.5rem; align-items:flex-start; padding:.35rem 0; font-size:.83rem; border-bottom:1px dashed #edf0f4; }
.check-row:last-child { border-bottom:0; }
.check-row i { font-size:1rem; margin-top:1px; }
.check-row .ok { color:#16a34a; } .check-row .stop { color:#dc2626; } .check-row .note { color:#d97706; }
.ai-body { white-space:pre-wrap; font-size:.86rem; background:#fcfcff; border:1px solid #eee9fb; border-radius:10px; padding:.7rem .8rem; }
.typing { display:inline-flex; gap:3px; } .typing span { width:6px; height:6px; border-radius:50%; background:#a78bfa; animation:blink 1.2s infinite; }
.typing span:nth-child(2) { animation-delay:.2s } .typing span:nth-child(3) { animation-delay:.4s }
@keyframes blink { 0%,80%,100%{opacity:.25} 40%{opacity:1} }
.ask-fab { position:fixed; right:22px; bottom:22px; z-index:1050; border-radius:999px; padding:.7rem 1.1rem; box-shadow:0 10px 30px rgba(124,58,237,.35); font-weight:700; }
.ask-panel { position:fixed; right:22px; bottom:84px; width:400px; max-width:calc(100vw - 32px); max-height:70vh; z-index:1051; display:none; flex-direction:column; border-radius:16px; overflow:hidden; box-shadow:0 20px 50px rgba(16,24,40,.25); background:#fff; border:1px solid var(--ai-border); }
.ask-panel.open { display:flex; }
.ask-panel .ask-head { background:linear-gradient(90deg,var(--ai1),#5b5cf0); color:#fff; padding:.75rem 1rem; font-weight:700; display:flex; justify-content:space-between; align-items:center; }
.ask-panel .ask-log { padding:.8rem; overflow-y:auto; flex:1; font-size:.85rem; background:#fbfaff; }
.ask-msg { margin-bottom:.6rem; padding:.55rem .75rem; border-radius:12px; white-space:pre-wrap; max-width:92%; }
.ask-msg.me { background:#e9e5ff; margin-left:auto; } .ask-msg.ai { background:#fff; border:1px solid #ece8f8; }
.ask-panel form { display:flex; gap:.4rem; padding:.6rem; border-top:1px solid #eee; }

/* ---------- View Lease ---------- */
.section-title { font-weight:700; color:#36404c; }
.vl-header h3 { font-weight:700; }
.vl-toolbar .btn { margin:0 .2rem .35rem 0; }
.party-card .label { font-size:.72rem; text-transform:uppercase; letter-spacing:.04em; color:#8a96a8; }
.party-card .val { font-weight:600; color:#36404c; }
.vehicle-block { border:1px solid #edf0f4; border-radius:12px; padding:.8rem 1rem; }
.vehicle-block + .vehicle-block { margin-top:.8rem; }
.quote-row.selected { background:#effaf9 !important; }
.quote-row.selected td:first-child { border-left:3px solid #3bc0c3; }
.checklist-card .form-check { margin-bottom:.25rem; }
.chat { max-height:520px; overflow-y:auto; padding-right:.25rem; }
.msg { margin-bottom:.65rem; }
.msg .bubble { border-radius:12px; padding:.55rem .8rem; background:#f4f6f9; font-size:.86rem; white-space:pre-wrap; }
.msg.mine .bubble { background:#e7f6f6; }
.msg.request .bubble { background:#fff8e6; border:1px solid #fde4a8; }
.msg.reply .bubble { background:#eef6ff; border:1px solid #cfe3ff; }
.msg.ai .bubble { background:#f6f2ff; border:1px solid #e4d9ff; }
.msg.log { font-size:.78rem; color:#8a96a8; padding:.15rem .25rem; }
.msg.log i { margin-right:.3rem; }
.msg .who { font-size:.75rem; color:#7c8798; margin-bottom:.15rem; }
.timeline-v { position:relative; padding-left:1.25rem; }
.timeline-v::before { content:''; position:absolute; left:.38rem; top:.2rem; bottom:.2rem; width:2px; background:#e6ebf1; }
.timeline-v .tl { position:relative; margin-bottom:.7rem; font-size:.83rem; }
.timeline-v .tl::before { content:''; position:absolute; left:-1.06rem; top:.25rem; width:10px; height:10px; border-radius:50%; background:#cbd5e1; border:2px solid #fff; }
.timeline-v .tl.done::before { background:#22c55e; } .timeline-v .tl.now::before { background:#f59e0b; }
.stepper { display:flex; gap:.4rem; margin-bottom:1rem; flex-wrap:wrap; }
.stepper .st { flex:1; min-width:110px; text-align:center; padding:.45rem; border-radius:10px; background:#f1f5f9; color:#64748b; font-size:.8rem; font-weight:600; cursor:pointer; }
.stepper .st.done { background:#dcfce7; color:#166534; } .stepper .st.cur { background:#3bc0c3; color:#fff; }
.banner-strip { border-radius:10px; padding:.55rem .8rem; font-size:.85rem; }
.doc-label { font-size:.72rem; }
.collapsed-body { display:none; }

/* ---------- New Application ---------- */
.wizard-steps { display:flex; gap:.5rem; margin-bottom:1rem; }
.wizard-steps .ws { flex:1; padding:.6rem .8rem; border-radius:10px; background:#f1f5f9; color:#64748b; font-weight:600; font-size:.85rem; }
.wizard-steps .ws.cur { background:#3bc0c3; color:#fff; } .wizard-steps .ws.done { background:#dff7f6; color:#0f766e; }
.calc-results td { padding:.35rem .5rem; } .calc-results tr td:last-child { text-align:right; font-weight:600; }
.calc-results tr.total td { font-size:1rem; color:#0d1c2e; border-top:2px solid #3bc0c3; }
.veh-pill { border:1px solid #e3e8ef; border-radius:10px; padding:.5rem .7rem; margin-bottom:.4rem; cursor:pointer; background:#fff; }
.veh-pill.active { border-color:#3bc0c3; background:#effaf9; }
.tpl-list { columns:2; } .tpl-list .form-check { break-inside:avoid; }

/* ---------- login (auth-login_main.php glass card) ---------- */
.auth-stage { min-height:100vh; display:flex; align-items:center; justify-content:center; padding:24px;
  background:radial-gradient(1200px 600px at 100% -10%, rgba(34,193,195,.22), transparent 90%), radial-gradient(1000px 600px at 0% 120%, rgba(139,92,246,.25), transparent 90%), linear-gradient(rgba(7,9,15,.72), rgba(7,9,15,.82)), url(assets/images/auth-bg.jpg) center/cover no-repeat;
  font-family:Inter, system-ui, -apple-system, "Segoe UI", Roboto, Arial; color:#f8fafc; }
.auth-wrap { width:100%; max-width:440px; }
.auth-brand { display:flex; align-items:center; gap:.75rem; margin-bottom:1.25rem; }
.auth-brand img { height:40px; border-radius:6px; background:#f0f8ff; padding:4px 8px; }
.auth-brand h1 { font-size:1.15rem; margin:0; font-weight:700; color:#f8fafc; }
.glass { background:rgba(255,255,255,.06); border:1px solid rgba(255,255,255,.12); border-radius:18px; padding:28px; box-shadow:0 25px 50px rgba(0,0,0,.6), inset 0 1px 0 rgba(255,255,255,.06); backdrop-filter:blur(14px); }
.glass .title { font-size:1.5rem; font-weight:700; margin:0 0 .25rem; color:#f8fafc; }
.glass .sub { color:#94a3b8; font-size:.88rem; margin-bottom:1.2rem; }
.glass label { font-size:.8rem; color:#cbd5e1; margin-bottom:.3rem; }
.glass .form-control, .glass .form-select { background:rgba(15,23,42,.55); border:1px solid rgba(255,255,255,.14); color:#f8fafc; }
.glass .form-select option { color:#0f172a; }
.glass .form-control:focus, .glass .form-select:focus { border-color:#9ca3af; box-shadow:none; background:rgba(15,23,42,.7); color:#fff; }
.btn-login { width:100%; background:linear-gradient(180deg,#2d2d2d,#1a1a1a); color:#fff; border:1px solid rgba(255,255,255,.18); border-radius:12px; padding:.75rem; font-weight:700; }
.btn-login:hover { color:#fff; filter:brightness(1.15); }
.auth-note { font-size:.78rem; color:#94a3b8; margin-top:1rem; }

/* ---------- Sales CRM (funnel/) - separate, modern look ---------- */
.crm { font-family:Inter, system-ui, -apple-system, "Segoe UI", Roboto, Arial, sans-serif; background:#f8fafc; min-height:100vh; color:#0f172a; }
.crm-nav { background:linear-gradient(135deg,#0f172a 0%,#0f172a 100%); color:#e2e8f0; padding:.65rem 1.25rem; display:flex; align-items:center; gap:1.25rem; position:sticky; top:0; z-index:1020; border-top:3px solid var(--stg); }
.crm-nav .brand { font-weight:800; color:#fff; font-size:1.05rem; }
.crm-nav a { color:#cbd5e1; font-weight:500; font-size:.92rem; }
.crm-nav a.active, .crm-nav a:hover { color:#fff; }
.crm-nav .spacer { flex:1; }
.crm-main { padding:1.25rem 1.5rem 4rem; max-width:1500px; margin:0 auto; }
.crm h1.crm-title { font-size:1.45rem; font-weight:800; letter-spacing:-.02em; margin:0; }
.crm .crm-card { background:#fff; border:1px solid #e2e8f0; border-radius:14px; box-shadow:0 1px 2px rgba(15,23,42,.04); }
.crm .crm-card .crm-card-head { padding:.85rem 1rem; border-bottom:1px solid #eef2f7; font-weight:700; display:flex; justify-content:space-between; align-items:center; }
.crm .crm-card .crm-card-body { padding:1rem; }
.crm .kpi-tile { background:#fff; border:1px solid #e2e8f0; border-radius:14px; padding:.9rem 1rem; }
.crm .kpi-tile .n { font-size:1.6rem; font-weight:800; } .crm .kpi-tile .l { font-size:.78rem; color:#64748b; text-transform:uppercase; letter-spacing:.03em; }
.crm .status-card { background:#fff; border:1px solid #e2e8f0; border-radius:12px; padding:.55rem .8rem; cursor:pointer; min-width:120px; }
.crm .status-card.active { border-color:#0f172a; box-shadow:0 0 0 2px #0f172a inset; }
.crm .status-card .n { font-weight:800; font-size:1.15rem; } .crm .status-card .l { font-size:.75rem; color:#64748b; }
.crm .table { font-size:.86rem; } .crm .table thead th { color:#64748b; font-weight:600; font-size:.76rem; text-transform:uppercase; letter-spacing:.03em; background:#f8fafc; }
.crm .btn-dark { background:#0f172a; border-color:#0f172a; }
.journey { border-left:2px solid #e2e8f0; padding-left:1rem; margin-left:.4rem; }
.journey .j { position:relative; margin-bottom:.8rem; }
.journey .j::before { content:''; position:absolute; left:-1.42rem; top:.35rem; width:10px; height:10px; border-radius:50%; background:#94a3b8; }
.journey .j.in::before { background:#0ea5e9; } .journey .j.out::before { background:#22c55e; } .journey .j.ai::before { background:var(--ai1); }
.journey .j .t { font-size:.74rem; color:#64748b; } .journey .j .b { font-size:.86rem; white-space:pre-wrap; }

/* ---------- toasts (jquery.toast look) ---------- */
.toast-stack { position:fixed; top:80px; right:20px; z-index:2000; display:flex; flex-direction:column; gap:8px; }
.jq-like { min-width:280px; max-width:380px; padding:10px 14px; border-radius:6px; color:#fff; font-size:.86rem; box-shadow:0 6px 18px rgba(0,0,0,.18); background:#1f2937; animation:slidein .2s ease; }
.jq-like.success { background:#4489e4; } .jq-like.error { background:#d03f3f; } .jq-like.ai { background:linear-gradient(90deg,var(--ai1),#5b5cf0); } .jq-like.warn { background:#b7791f; }
.jq-like b { display:block; margin-bottom:2px; }
@keyframes slidein { from { transform:translateX(30px); opacity:0 } to { transform:none; opacity:1 } }
.boot { min-height:100vh; display:flex; align-items:center; justify-content:center; color:#64748b; font-family:Arial, sans-serif; }
.cursor-pointer { cursor:pointer; }
.pre { white-space:pre-wrap; }
.min-w-0 { min-width:0; }
@media (max-width: 767.98px) { .ai-feed-menu { width:300px; } .tpl-list { columns:1; } .wizard-steps { flex-direction:column; } }
@media print { .leftside-menu, .navbar-custom, .footer, .ask-fab, .ask-panel, .vl-toolbar, .ai-strip { display:none !important; } .content-page { margin-left:0 !important; } }
