/* CarCare Cloud — canonical application foundation.
   Global layout, typography and viewport flow live here only.
   Component-specific premium styling stays in premium.css. */
:root{
  --c-bg:#ffffff;--c-soft:#f7f7f5;--c-line:#e6e6e1;--c-ink:#141414;--c-mute:#475569;
  --c-accent:#2563EB;--c-accent-2:#1D4ED8;--c-ok:#1f7a54;--c-warn:#a8690f;--c-bad:#b83a2e;
  --bg-0:#fff;--bg-1:#f7f7f5;--surface-1:#fff;--surface-2:#f7f7f5;--hairline:#e6e6e1;
  --accent-a:#2563EB;--accent-b:#1D4ED8;--accent-gradient:linear-gradient(135deg,var(--accent-a),var(--accent-b));
  --warm:#a8690f;--ok:var(--c-ok);--warn:var(--c-warn);--bad:var(--c-bad);
  --ok-bg:#eaf5ef;--warn-bg:#fbf1de;--bad-bg:#fbe9e6;--ok-glow:none;--warn-glow:none;--bad-glow:none;
  --radius-10:10px;--radius-14:14px;--radius-20:20px;--radius-28:28px;
  --shadow:0 12px 35px rgba(16,24,40,.07);--shadow-soft:0 12px 35px rgba(16,24,40,.07);
  --shadow-lifted:0 22px 60px rgba(0,0,0,.12);--shadow-glow:none;
  --space-4:4px;--space-8:8px;--space-12:12px;--space-16:16px;--space-24:24px;--space-32:32px;--space-48:48px;
  --ease-out:cubic-bezier(.22,1,.36,1);--ease-spring:cubic-bezier(.34,1.56,.64,1);
  --dur-120:120ms;--dur-200:200ms;--dur-320:320ms;--dur-560:560ms;
  --font-ui:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  --font-digital:"JetBrains Mono","SF Mono","Roboto Mono",ui-monospace,monospace;
  --b:var(--c-accent);--bg:var(--c-bg);--card:#fff;--ink:var(--c-ink);--muted:var(--c-mute);--line:var(--c-line);
  --auto-bg:#fff;--auto-surface:#fff;--auto-surface-2:var(--c-soft);--auto-line:var(--c-line);
  --auto-text:var(--c-ink);--auto-muted:var(--c-mute);--auto-cyan:var(--c-accent);--auto-green:var(--c-ok);
  --auto-blue:var(--c-accent);--auto-red:var(--c-bad);--auto-yellow:var(--c-warn);
  --premium-shadow:0 12px 35px rgba(16,24,40,.07);--premium-panel:#fff;--premium-ink:var(--c-ink);
  --premium-line:var(--c-line);--premium-soft:var(--c-soft);--premium-muted:var(--c-mute);
  --premium-accent:var(--c-accent);--premium-accent-soft:var(--c-soft);--premium-deep:var(--c-accent);
  color-scheme:light;
}
html{min-height:100%;background:var(--c-bg);scroll-behavior:auto}
body{margin:0;width:100%;min-width:0;min-height:100dvh;font-family:var(--font-ui);font-size:14px;line-height:1.5;letter-spacing:0;color:var(--c-ink);background:var(--c-bg);-webkit-font-smoothing:antialiased;overflow-x:hidden}
*,*::before,*::after{box-sizing:border-box}
button,input,select,textarea{font:inherit;min-width:0}button{border:0;cursor:pointer}
img,svg,video,canvas{max-width:100%;height:auto}
h1,h2,h3,h4,h5,h6,p,ul,ol{margin-block-start:0}
h1,h2,h3,h4,h5,h6{color:var(--c-ink);line-height:1.25;font-weight:600;letter-spacing:-.01em}
p,li,small,label,span{line-height:1.5}p{margin:0 0 1em}.hidden{display:none!important}
.top{height:72px;min-height:72px;background:#fff;border-bottom:1px solid var(--c-line);display:flex;justify-content:space-between;align-items:center;padding:0 clamp(18px,3vw,38px);position:sticky;top:0;z-index:9000}
.top .brand,.brand{display:flex;align-items:center;gap:10px;color:var(--c-ink);font-size:16px;font-weight:700;letter-spacing:.02em;text-decoration:none;cursor:pointer;user-select:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;-webkit-user-drag:none}.brand:focus-visible{outline:2px solid var(--c-accent);outline-offset:4px;border-radius:12px}
.brand i{color:var(--c-accent);font-style:normal}
.brand-mark{width:30px;height:30px;flex:0 0 30px;display:block;color:var(--c-accent);user-select:none;-webkit-user-select:none;-webkit-user-drag:none;pointer-events:none}.brand-wordmark{user-select:none;-webkit-user-select:none;-webkit-user-drag:none}
.top-actions{display:flex;align-items:center;gap:16px;min-width:0}.top-actions #userEmail{font-size:12px;max-width:300px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.layout{display:flex;width:100%;min-width:0;min-height:calc(100dvh - 72px)}
.layout>aside{flex:0 0 220px;width:220px;min-width:0;background:#101827;padding:14px}
.layout>aside button{width:100%;display:block;text-align:left;background:transparent;color:#dbe4f4;margin:3px 0;padding:12px 14px;border-radius:13px}.layout>aside button.active,.layout>aside button:hover{background:#263449;color:#fff}
.main{flex:1 1 auto;width:100%;max-width:1540px;min-width:0;margin:0 auto;padding:clamp(24px,3.4vw,48px)}
.view{display:none;width:100%;min-width:0}.view.active{display:block}
.hero,.toolbar{display:flex;justify-content:space-between;gap:12px;align-items:center;margin-bottom:22px;flex-wrap:wrap}
.hero :is(h1, h2.dash-title),.toolbar h2{margin:0;letter-spacing:-.045em;font-weight:600}.hero :is(h1, h2.dash-title){font-size:clamp(27px,3vw,38px)}.toolbar h2{font-size:25px}
.grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}.form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.itemgrid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
.card{width:100%;min-width:0;background:#fff;border:1px solid rgba(17,24,39,.075);border-radius:12px;padding:18px;margin-bottom:14px;box-shadow:var(--premium-shadow)}
.edit-modal-card{width:min(980px,calc(100vw - 28px));max-height:92vh;overflow:auto;background:var(--surface-1);color:var(--c-ink);border:1px solid var(--c-line);border-radius:22px;padding:22px;box-shadow:var(--shadow-lifted)}
.stat b{display:block;font-size:25px;line-height:1.25;margin-top:5px}.muted{color:var(--c-mute)}.toolbar>*,.hero>*{min-width:0}.field{min-width:0}
.field label{display:block;margin-bottom:5px;color:var(--c-mute);font-size:12px;font-weight:600}.field input,.field select,.field textarea{display:block;width:100%;min-width:0;padding:10px;border:1px solid #d9d9d3;border-radius:10px;background:#fff;color:var(--c-ink);box-shadow:none}.field textarea{min-height:80px;resize:vertical}.full{grid-column:1/-1}
input,select,textarea{max-width:100%;min-width:0;background:#fff;color:var(--c-ink);border:1px solid #d9d9d3;border-radius:10px}input:focus,select:focus,textarea:focus{outline:none;border-color:var(--c-accent);box-shadow:0 0 0 3px rgba(20,53,43,.12)}
button.primary,.primary{background:var(--c-accent);color:#fff;border:1px solid var(--c-accent);border-radius:10px;font-weight:600;font-size:13px;box-shadow:none}
button.ghost,.ghost{background:#fff;color:var(--c-accent);border:1px solid var(--c-line);border-radius:10px;box-shadow:none}
button.danger,.danger{background:#fff;color:var(--c-bad);border:1px solid #e8c3be;border-radius:10px;box-shadow:none}
button:focus-visible{outline:2px solid var(--c-accent);outline-offset:3px}
.table{width:100%;border-collapse:collapse}.table th,.table td{padding:9px;border-bottom:1px solid var(--c-line);text-align:left;vertical-align:top}.table th{color:var(--c-mute);background:transparent;font-size:11px;letter-spacing:.08em;text-transform:uppercase}.table td{color:var(--c-ink)}
.status{display:inline-block;padding:5px 9px;border-radius:999px;font-size:12px;font-weight:800;line-height:1.25}.ok{background:#eaf5ef;color:var(--c-ok)}.warn{background:#fbf1de;color:var(--c-warn)}.bad{background:#fbe9e6;color:var(--c-bad)}

/* ===== Global UX feedback / upload / post-login loading ===== */
.toast{
 position:fixed!important;top:18px!important;left:50%!important;right:auto!important;bottom:auto!important;
 transform:translateX(-50%)!important;z-index:2147483647!important;display:none;align-items:center;gap:10px;
 min-width:280px;max-width:min(560px,calc(100vw - 28px));padding:13px 18px;border-radius:14px;color:#fff;
 font-weight:800;box-shadow:0 18px 55px rgba(15,23,42,.28);animation:toastDrop .28s ease both;
}
.toast-success{background:linear-gradient(135deg,#166534,#15803d)}
.toast-error{background:linear-gradient(135deg,#991b1b,#dc2626)}
.toast-icon{width:24px;height:24px;border-radius:50%;display:grid;place-items:center;background:rgba(255,255,255,.18);font-weight:950;flex:none}
@keyframes toastDrop{from{opacity:0;transform:translate(-50%,-16px)!important}to{opacity:1;transform:translate(-50%,0)!important}}
.doc-upload-card{position:relative;z-index:1}
#docUploadModal{z-index:2147483000!important;background:rgba(3,8,20,.62)!important;backdrop-filter:blur(9px)!important;-webkit-backdrop-filter:blur(9px)!important}
#docUploadModal .doc-upload-card{animation:modalIn .25s ease both}
@keyframes modalIn{from{opacity:0;transform:translateY(10px) scale(.98)}to{opacity:1;transform:none}}
#docUploadBtn.is-uploading{cursor:wait;opacity:.86}
#docUploadBtn:disabled{cursor:not-allowed}
.inline-spinner{display:inline-block;width:14px;height:14px;margin-right:7px;border:2px solid rgba(255,255,255,.35);border-top-color:#fff;border-radius:50%;vertical-align:-2px;animation:spin .7s linear infinite}

@keyframes dashboardIn{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
@keyframes spin{to{transform:rotate(360deg)}}
@media(max-width:650px){
 .toast{top:12px!important;min-width:0;width:calc(100% - 24px);justify-content:center;text-align:center}
}

/* ===== Documents + A4 Vehicle Report components ===== */
/* ===== A4 Vehicle Report — canonical screen/PDF layout ===== */
.report-sheet{width:210mm;min-height:297mm;margin:0 auto;padding:15mm;box-sizing:border-box;overflow:hidden;background:#fff;color:#172033;box-shadow:0 18px 60px rgba(15,23,42,.12);border-radius:4px}
.report-head{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:start;gap:20px;padding-bottom:18px;border-bottom:2px solid #172033}
.report-brand{display:flex;align-items:flex-start;gap:10px;min-width:0}
.report-brand-mark{width:30px;height:30px;flex:0 0 30px;display:block;color:#2563EB;user-select:none;-webkit-user-select:none;-webkit-user-drag:none;pointer-events:none}
.report-kicker{font-size:11px;letter-spacing:3px;font-weight:900;color:#2563eb}
.report-head h1{margin:5px 0 3px;font-size:28px;letter-spacing:-.6px}
.report-head p{margin:0;color:#6b7280}
.report-reg{min-width:0;max-width:100%;font-size:22px;font-weight:950;letter-spacing:1px;padding:10px 14px;border:1px solid #dbe3f0;border-radius:12px;background:#f8fafc;overflow-wrap:anywhere}
.report-section{margin-top:20px}
.report-section-title{font-size:10px;letter-spacing:2px;font-weight:900;color: #334155;margin-bottom:10px}
.report-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1px;background:#e7ebf2;border:1px solid #e7ebf2;border-radius:12px;overflow:hidden}
.report-grid>div{min-width:0;background:#fff;padding:12px}
.report-grid span,.report-line span{display:block;font-size:10px;text-transform:uppercase;letter-spacing:.7px;color:#7b8798;margin-bottom:4px}
.report-grid b,.report-line b{font-size:12px;line-height:1.4;overflow-wrap:anywhere}
.report-two{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin-top:20px}
.report-panel{min-width:0;border:1px solid #e7ebf2;border-radius:14px;padding:14px;background:linear-gradient(180deg,#fff,#f9fbff);break-inside:avoid;page-break-inside:avoid}
.report-line{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.4fr);align-items:start;gap:15px;padding:9px 0;border-bottom:1px solid #edf0f5}
.report-line:last-child{border-bottom:0}
.report-line b{text-align:right;overflow-wrap:anywhere;word-break:break-word}
.report-table{width:100%;max-width:100%;table-layout:fixed;border-collapse:separate;border-spacing:0;border:1px solid #e7ebf2;border-radius:12px;overflow:hidden;font-size:10px}
.report-table thead{display:table-header-group}
.report-table tr{break-inside:avoid;page-break-inside:avoid}
.report-table th{background:#172033;color:#fff;text-align:left;padding:9px;overflow-wrap:anywhere}
.report-table th:nth-child(1){width:12%}.report-table th:nth-child(2){width:10%}.report-table th:nth-child(3){width:16%}.report-table th:nth-child(4){width:47%}.report-table th:nth-child(5){width:15%}
.report-table td{padding:8px;border-bottom:1px solid #edf0f5;vertical-align:top;overflow-wrap:anywhere;word-break:break-word}
.report-table tr:last-child td{border-bottom:0}
.report-table small{display:block;color: #334155;margin-top:3px}
.report-total{display:flex;justify-content:flex-end;gap:18px;align-items:center;margin-top:12px;padding:12px 14px;border-radius:12px;background:#f1f5ff;break-inside:avoid;page-break-inside:avoid}
.report-total span{font-size:11px;color: #334155}.report-total b{font-size:18px;color:#1d4ed8}
.report-footer{display:flex;justify-content:space-between;gap:15px;margin-top:25px;padding-top:12px;border-top:1px solid #e7ebf2;color: #475569;font-size:9px;break-inside:avoid;page-break-inside:avoid}
/* Document Cards & Vault */
.doc-toolbar-actions{display:flex;gap:8px;flex-wrap:wrap}.doc-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;min-width:0;width:100%}.doc-col{background:#f8fafc;border:1px solid #e5e7eb;border-radius:18px;padding:12px;min-width:0;max-width:100%;box-sizing:border-box}.doc-col-head{display:flex;justify-content:space-between;align-items:center;padding:6px 4px 12px;min-width:0}.doc-col-head>div{display:flex;align-items:center;gap:9px;min-width:0}.doc-col-head>span{font-size:12px;font-weight:800;background:#e5e7eb;padding:4px 8px;border-radius:999px;flex-shrink:0}.doc-col-icon{font-size:22px;flex-shrink:0}
.doc-row{
  display:flex!important;
  flex-direction:column!important;
  gap:10px!important;
  background:#fff!important;
  border:1px solid #e2e8f0!important;
  border-radius:16px!important;
  padding:14px!important;
  margin-top:10px!important;
  box-sizing:border-box!important;
  box-shadow:0 1px 3px rgba(15,23,42,.05)!important;
  transition:all .18s ease!important;
}
.doc-row:hover{
  border-color:#cbd5e1!important;
  box-shadow:0 4px 12px rgba(15,23,42,.08)!important;
}
.doc-row.active{border-color:#bbf7d0!important;background:#f0fdf4!important}
.doc-row.soon{border-color:#fde68a!important;background:#fffbeb!important;animation:docPulse 1.8s ease-in-out infinite}
.doc-row.expired{border-color:#fecaca!important;background:#fff1f2!important}
.doc-row-body{display:flex!important;align-items:flex-start!important;gap:12px!important;width:100%!important;min-width:0!important}
.doc-icon-wrap{flex:0 0 42px!important;width:42px!important;height:42px!important;display:grid!important;place-items:center!important;border-radius:12px!important;background:rgba(37,99,235,.08)!important;font-size:20px!important}
.doc-icon{width:42px;height:42px;display:grid;place-items:center;border-radius:12px;background:#eef4ff;font-size:21px;flex:none}
.doc-details{flex:1 1 auto!important;min-width:0!important;display:flex!important;flex-direction:column!important;gap:3px!important}
.doc-title-row{display:flex!important;align-items:center!important;justify-content:space-between!important;gap:8px!important;flex-wrap:wrap!important}
.doc-title{margin:0!important;font-size:14px!important;font-weight:700!important;color:#0f172a!important;line-height:1.25!important}
.doc-badge{flex:0 0 auto!important;padding:2px 8px!important;border-radius:999px!important;font-size:10px!important;font-weight:800!important;letter-spacing:.02em!important;text-transform:uppercase!important;width:max-content}
.doc-badge.active{background:#dcfce7!important;color:#166534!important}
.doc-badge.soon{background:#fef3c7!important;color:#92400e!important}
.doc-badge.expired{background:#fee2e2!important;color:#991b1b!important}
.doc-badge.archived{background:#ede9fe!important;color:#6d28d9!important}
.doc-filename{font-size:11px!important;color: #334155!important;white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important;max-width:100%!important;font-family:ui-monospace,SFMono-Regular,Consolas,monospace!important}
.doc-filename-badge{display:inline-flex!important;align-items:center!important;gap:6px!important;max-width:100%!important;background:#f8fafc!important;border:1px solid #e2e8f0!important;border-radius:8px!important;padding:3px 7px!important;box-sizing:border-box!important;margin:2px 0!important}
.doc-ext-tag{display:inline-block!important;font-size:9px!important;font-weight:800!important;letter-spacing:.04em!important;color:#fff!important;background:#0f172a!important;padding:1px 4.5px!important;border-radius:4px!important;flex-shrink:0!important;line-height:1.2!important}
.doc-filename-text{font-size:11px!important;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace!important;color:#334155!important;white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important;flex:1 1 auto!important;min-width:0!important}
.inline-svg-icon{width:15px;height:15px;display:inline-block;vertical-align:middle;flex-shrink:0}
.inline-svg-icon-xs{width:13px;height:13px;display:inline-block;vertical-align:middle;flex-shrink:0}
.doc-svg-icon{width:22px;height:22px;display:block}
.doc-meta-row{display:flex!important;align-items:center!important;gap:8px!important;flex-wrap:wrap!important;font-size:11px!important;color: #334155!important;margin-top:2px!important}
.doc-meta-item{display:inline-flex!important;align-items:center!important;gap:4px!important}
.doc-expiry{font-size:11px;font-weight:800;color:#15803d}.doc-expiry.expired{color:#b91c1c}.doc-archived{opacity:.82}
.doc-meta-archive{font-style:italic!important;color:#7c3aed!important;display:inline-flex!important;align-items:center!important;gap:4px!important}
.doc-actions{display:grid!important;grid-template-columns:repeat(auto-fit,minmax(76px,1fr))!important;gap:6px!important;padding-top:10px!important;border-top:1px solid rgba(226,232,240,.7)!important;width:100%!important;box-sizing:border-box!important}
.doc-actions button{width:100%!important;min-width:0!important;height:32px!important;padding:0 6px!important;font-size:11px!important;font-weight:600!important;display:inline-flex!important;align-items:center!important;justify-content:center!important;gap:4px!important;border-radius:8px!important;cursor:pointer!important;white-space:nowrap!important;transition:all .15s ease!important}
.doc-actions .ghost{background:#f8fafc!important;border:1px solid #cbd5e1!important;color:#334155!important}
.doc-actions .ghost:hover{background:#f1f5f9!important;border-color: #475569!important;color:#0f172a!important}
.doc-actions .danger{background:rgba(239,68,68,.08)!important;border:1px solid rgba(239,68,68,.25)!important;color:#dc2626!important}
.doc-actions .danger:hover:not(:disabled){background:rgba(239,68,68,.16)!important;border-color:rgba(239,68,68,.4)!important}
.doc-actions button:disabled{opacity:.4!important;cursor:not-allowed!important}
.doc-archive{margin-top:16px;border:1px solid #e5e7eb;border-radius:18px;background:#fff;padding:14px}.doc-archive-head{font-weight:900;font-size:15px;margin-bottom:8px;display:flex;align-items:center;gap:6px}.doc-archive details{border-top:1px solid #eef2f7;padding:10px 0}.doc-archive summary{cursor:pointer;font-weight:800;list-style:none}.doc-archive summary span{float:right;background:#eef2ff;padding:3px 8px;border-radius:999px;font-size:11px}.doc-popup,.doc-upload-card{background:#fff;border-radius:22px;padding:24px;width:min(560px,calc(100% - 28px));box-shadow:0 30px 90px rgba(15,23,42,.28);border:1px solid #e5e7eb}.doc-popup{text-align:center}.doc-popup-icon{font-size:44px;display:flex;justify-content:center;margin-bottom:8px}.doc-popup p{color: #334155;line-height:1.55}.doc-popup button{margin:5px}#docExpiryPopup,#docUploadModal{position:fixed;inset:0;z-index:9990;background:rgba(15,23,42,.52);backdrop-filter:blur(7px);display:grid;place-items:center;padding:14px}.doc-upload-card .toolbar{margin-bottom:18px}.doc-empty{padding:14px;color: #334155;text-align:center;border:1px dashed #dbe3ef;border-radius:12px;background:#f8fafc;display:flex;flex-direction:column;align-items:center;gap:6px}.doc-empty p{margin:0;font-size:12px}.doc-empty-add-btn{display:inline-flex!important;align-items:center!important;gap:5px!important;font-size:11px!important;padding:5px 10px!important;border-radius:8px!important}
.doc-security-notice{margin-top:14px;padding:12px 14px;border:1px solid #fde68a;background:#fffbeb;color:#92400e;border-radius:12px;font-weight:700;display:flex;align-items:center;gap:8px}@keyframes docPulse{50%{box-shadow:0 0 0 4px rgba(245,158,11,.08)}}

.help-tabs-bar{display:flex;gap:8px;flex-wrap:wrap;margin:12px 0 20px}
.help-tab-btn{background:#f8fafc;border:1px solid #cbd5e1;border-radius:999px;padding:8px 18px;font-size:13px;font-weight:700;color:#334155;cursor:pointer;transition:all .15s ease}
.help-tab-btn:hover{background:#f1f5f9;color:#0f172a;border-color: #475569}
.help-tab-btn.active{background:#0f172a;color:#fff;border-color:#0f172a}
.faq-list{display:flex;flex-direction:column;gap:12px}
.faq-card{background:#fff;border:1px solid #e2e8f0;border-radius:14px;padding:14px 18px;transition:all .2s ease}
.faq-card summary{cursor:pointer;font-weight:800;font-size:15px;color:#0f172a;list-style:none;display:flex;align-items:center;justify-content:space-between}
.faq-card summary::-webkit-details-marker{display:none}
.faq-card summary::after{content:'+';font-size:18px;font-weight:700;color: #334155}
.faq-card[open] summary::after{content:'−';color:var(--c-accent)}
.faq-card p{margin:10px 0 0;font-size:13.5px;line-height:1.6;color:#475569}
.ticket-past-card{margin-top:20px;border-top:1px solid #e2e8f0;padding-top:16px}
.ticket-row{display:flex;justify-content:space-between;align-items:center;padding:10px 14px;border:1px solid #e2e8f0;border-radius:10px;margin-bottom:8px;background:#f8fafc;font-size:13px;gap:10px;flex-wrap:wrap}
.ticket-badge{padding:3px 8px;border-radius:6px;font-size:11px;font-weight:800;background:#dbeafe;color:#1e40af}
.help-view-footer{margin-top:32px;padding:20px 0 16px;border-top:1px solid #e2e8f0;display:flex;flex-direction:column;align-items:center;gap:10px;text-align:center}
.help-footer-copy{margin:0;font-size:12px;color:var(--c-mute, #334155);font-weight:600}
.help-footer-links{display:flex;align-items:center;gap:8px;flex-wrap:wrap;justify-content:center}
.help-footer-link{background:none;border:none;padding:0;font-size:12px;color:var(--c-accent,#0284c7);text-decoration:underline;cursor:pointer;font-weight:600}
.help-footer-link:hover{color:#0369a1}
.help-footer-sep{color:#cbd5e1;font-size:11px}
.ticket-status-banner{padding:12px 16px;border-radius:10px;margin-bottom:14px;font-size:13.5px;line-height:1.5}
.ticket-status-banner.error{background:#fef2f2;border:1px solid #fecaca;color:#991b1b}
.ticket-status-banner.success{background:#f0fdf4;border:1px solid #bbf7d0;color:#166534}



/* ===== History section presentation ===== */
#history .toolbar{align-items:flex-end}
#history .toolbar>div{display:flex;align-items:center;gap:8px}
#history .toolbar select{min-width:110px;height:40px;padding:0 11px}
#history .card{padding:0;overflow:hidden}
#historyTable{background:#fff}
#historyTable .table-scroll{overflow-x:auto}
#historyTable .table{min-width:760px}
#historyTable .table th{padding:13px 14px;background:#f7f8fa;border-bottom:1px solid #e7e9ed}
#historyTable .table td{padding:13px 14px;border-bottom:1px solid #edf0f3}
#historyTable .table tr:hover td{background:#fafbfc}
#historyTable>p{margin:0;padding:14px 16px;border-top:1px solid #edf0f3;background:#f8fafc;color:#273142}

/* ===== Automotive Dashboard Experience ===== */
.garage-hero{
 position:relative;overflow:hidden;display:grid;grid-template-columns:1.15fr 1fr .75fr;gap:20px;align-items:center;
 min-height:245px;padding:28px;border-radius:28px;color:#f8fafc;
 background:radial-gradient(circle at 72% 30%,rgba(0,229,255,.16),transparent 25%),linear-gradient(135deg,#0d141f,#111c2c 55%,#081018);
 border:1px solid rgba(0,229,255,.12);box-shadow:0 28px 70px rgba(2,8,23,.24);
}
.garage-hero:after{content:"";position:absolute;inset:auto -10% -70px;height:130px;background:rgba(0,229,255,.08);filter:blur(45px);pointer-events:none}
.eyebrow,.panel-kicker{font-size:10px;letter-spacing:1.7px;font-weight:900;color:#6ee7f9}.garage-hero-info h2{font-size:clamp(28px,4vw,44px);margin:5px 0 3px;letter-spacing:-1.5px}.garage-hero-info p{margin:0 0 16px;color:#9aa9bc}.garage-hero-info small{display:block;color:#9aa9bc;margin-top:8px}
.health-badge{display:inline-flex;align-items:center;gap:8px;padding:8px 12px;border-radius:999px;font-size:11px;font-weight:950;letter-spacing:.5px;background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.1)}
.health-badge i{width:8px;height:8px;border-radius:50%;display:block}.health-badge.ok i{background:#00ff87;box-shadow:0 0 14px #00ff87}.health-badge.warn i{background:#ffd166;box-shadow:0 0 14px #ffd166}.health-badge.danger i{background:#ff4d67;box-shadow:0 0 14px #ff4d67}
.garage-avatar{text-align:center;position:relative;z-index:1}.garage-avatar .avatar-car{font-size:92px;line-height:1;filter:drop-shadow(0 18px 20px rgba(0,0,0,.35));animation:avatarFloat 3s ease-in-out infinite}.garage-avatar span{display:block;margin-top:7px;color:#8fa0b5;font-size:10px;letter-spacing:1.4px;font-weight:900}.avatar-glow{position:absolute;width:150px;height:55px;left:50%;bottom:23px;transform:translateX(-50%);background:#00e5ff;opacity:.13;filter:blur(28px);border-radius:50%}
.digital-cluster{justify-self:end;text-align:right;border:1px solid rgba(0,229,255,.16);background:rgba(0,0,0,.22);padding:17px 20px;border-radius:18px;box-shadow:inset 0 0 28px rgba(0,229,255,.05)}.digital-cluster span{display:block;font-size:9px;letter-spacing:1.6px;color:#7890a7;font-weight:900}.digital-cluster strong{display:block;margin-top:6px;font-family:"Courier New",monospace;font-size:34px;letter-spacing:2px;color:#00ff87;text-shadow:0 0 16px rgba(0,255,135,.35)}.digital-cluster em{font-style:normal;font-size:10px;color:#6b7e94}
.dashboard-grid{display:grid;gap:15px;margin-top:15px}.dashboard-stats{grid-template-columns:repeat(3,1fr)}.dashboard-analytics{grid-template-columns:1fr 1.25fr}.glass-stat,.glass-panel{background:rgba(255,255,255,.76);border:1px solid rgba(255,255,255,.65);box-shadow:0 15px 45px rgba(15,23,42,.08);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border-radius:22px;padding:20px}.glass-stat span,.glass-panel .panel-kicker{display:block;color: #334155;font-size:9px;letter-spacing:1.4px;font-weight:950}.glass-stat b{display:block;font-size:24px;margin:7px 0 3px}.glass-stat small{color: #475569}.glass-stat b.bad{background:none;color:#dc2626}.glass-stat b.warn{background:none;color:#d97706}.panel-heading{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:10px}.panel-heading h3{margin:3px 0 0;font-size:18px}.gauge-value{font-size:18px;color:#0f172a}.gauge-value small{font-size:10px;color: #334155}.radial-gauge{width:145px;height:145px;margin:10px auto 14px;border-radius:50%;display:grid;place-items:center;background:conic-gradient(#00e5ff var(--gauge),#e2e8f0 0);position:relative;box-shadow:0 0 28px rgba(0,229,255,.1)}.radial-gauge:before{content:"";position:absolute;inset:12px;background:#fff;border-radius:50%}.radial-gauge>div{position:relative;text-align:center}.radial-gauge b{display:block;font-size:27px}.radial-gauge span{font-size:10px;color: #334155}.glass-panel>.muted{font-size:11px;text-align:center}.spend-bars{display:grid;gap:16px;margin:20px 0}.spend-bars>div{position:relative}.spend-bars span{font-size:11px;color: #334155}.spend-bars b{float:right;font-size:12px}.spend-bars i{display:block;height:8px;border-radius:99px;margin-top:7px;background:linear-gradient(90deg,#00e5ff,#00ff87);min-width:3px;box-shadow:0 0 12px rgba(0,229,255,.18)}
.timeline-panel,.glovebox-panel{margin-top:15px}.maintenance-timeline{position:relative;padding:7px 0 4px}.maintenance-timeline:before{content:"";position:absolute;left:12px;top:10px;bottom:10px;width:2px;background:linear-gradient(#00ff87,#00e5ff,#ff4d67);opacity:.5}.timeline-event{position:relative;width:100%;display:grid;grid-template-columns:26px 90px 1fr auto 22px;align-items:center;gap:10px;text-align:left;background:transparent;color:inherit;padding:12px 5px;border-radius:14px;margin:2px 0}.timeline-event:hover{background:rgba(37,99,235,.05);transform:none}.timeline-node{width:13px;height:13px;border-radius:50%;background:#64748b;border:3px solid #fff;box-shadow:0 0 0 2px #cbd5e1;z-index:1}.timeline-event.regular .timeline-node{background:#16a34a;box-shadow:0 0 0 2px #bbf7d0}.timeline-event.brake .timeline-node{background:#2563eb;box-shadow:0 0 0 2px #bfdbfe}.timeline-event.accident .timeline-node{background:#dc2626;box-shadow:0 0 0 2px #fecaca}.timeline-date{font-size:11px;color: #334155}.timeline-main b{display:block;font-size:13px}.timeline-main small{display:block;color: #475569;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.timeline-cost{font-size:12px;font-weight:900}.timeline-chevron{color: #475569}.timeline-detail{grid-column:3/6;display:none;background:#f8fafc;border:1px solid #e2e8f0;border-radius:13px;padding:12px;font-size:11px;line-height:1.7;color: #334155}.timeline-detail.open,.timeline-event:focus .timeline-detail{display:block}.timeline-event:focus{outline:none}.timeline-empty{padding:25px;text-align:center;color: #475569;border:1px dashed #dbe3ef;border-radius:15px}
.dashboard-doc-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.flip-card{perspective:1100px;min-height:165px;cursor:pointer}.flip-inner{position:relative;width:100%;height:100%;min-height:165px;transition:transform .65s cubic-bezier(.2,.7,.2,1);transform-style:preserve-3d}.flip-card:hover .flip-inner,.flip-card:focus .flip-inner,.flip-card.flipped .flip-inner{transform:rotateY(180deg)}.flip-front,.flip-back{position:absolute;inset:0;backface-visibility:hidden;border-radius:18px;padding:16px;border:1px solid #dbe4ef;box-shadow:0 10px 28px rgba(15,23,42,.08)}.flip-front{background:linear-gradient(145deg,#fff,#f1f5f9);display:flex;flex-direction:column}.flip-back{transform:rotateY(180deg);background:linear-gradient(145deg,#0d1726,#17243a);color:#fff;display:flex;flex-direction:column;justify-content:center}.doc-card-top{display:flex;justify-content:space-between;align-items:start}.doc-card-icon{font-size:30px}.flip-front>b{font-size:15px;margin-top:14px}.flip-front small,.flip-front em{color: #334155;font-style:normal;font-size:10px;margin-top:5px}.flip-front .doc-badge{margin-top:auto}.flip-back small{color:#aeb9cc;margin:8px 0 15px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.doc-flip-actions{display:flex;gap:6px;flex-wrap:wrap}.doc-flip-actions .ghost{background:rgba(255,255,255,.09);color:#fff;border:1px solid rgba(255,255,255,.1);padding:7px 9px}.dashboard-bottom-grid{display:grid;grid-template-columns:1fr 1fr;gap:15px;margin-top:15px}
.doc-flip-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
#dashboardFab{position:fixed;right:24px;bottom:24px;z-index:5000}.fab-main{width:58px;height:58px;padding:0;border-radius:50%;font-size:30px;line-height:1;background:linear-gradient(135deg,#00e5ff,#2563eb);color:#fff;box-shadow:0 15px 38px rgba(37,99,235,.35);transition:transform .25s}.fab-menu{position:absolute;right:0;bottom:70px;width:215px;display:grid;gap:8px;opacity:0;visibility:hidden;transform:translateY(12px) scale(.96);transition:.25s}.fab-menu button{display:flex;align-items:center;gap:10px;background:rgba(10,18,31,.92);backdrop-filter:blur(12px);color:#fff;border:1px solid rgba(255,255,255,.1);box-shadow:0 12px 30px rgba(0,0,0,.2);text-align:left}.fab-menu button span{font-size:12px}.fab-main:active{transform:scale(.94)}#dashboardFab.open .fab-menu{opacity:1;visibility:visible;transform:none}#dashboardFab.open .fab-main{transform:rotate(45deg)}
@keyframes avatarFloat{50%{transform:translateY(-6px)}}
@media(max-width:900px){.garage-hero{grid-template-columns:1fr 1fr}.digital-cluster{justify-self:start}.dashboard-stats{grid-template-columns:1fr 1fr}.dashboard-analytics{grid-template-columns:1fr}.dashboard-doc-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:650px){.garage-hero{grid-template-columns:1fr;min-height:0;padding:22px}.garage-hero-info{text-align:center}.garage-hero-info small{margin-top:7px}.garage-avatar{order:2}.digital-cluster{order:3;justify-self:stretch;text-align:center}.dashboard-stats,.dashboard-doc-grid,.dashboard-bottom-grid,.doc-flip-grid{grid-template-columns:1fr}.timeline-event{grid-template-columns:24px 75px 1fr auto}.timeline-chevron{display:none}.timeline-detail{grid-column:2/5}.glass-stat,.glass-panel{padding:16px}#dashboardFab{right:16px;bottom:78px}.fab-menu{width:195px}.main{padding-bottom:110px}}

.rc-auto-box{padding:11px 13px;border:1px solid rgba(37,99,235,.18);border-radius:12px;background:rgba(37,99,235,.06);color:#475569;font-size:12px}.rc-auto-box b{color:#1d4ed8}
/* Secure document preview */
#documentPreviewModal{
 position:fixed;inset:0;z-index:2147483645;display:grid;place-items:center;
 padding:18px;background:rgba(2,8,23,.72);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px)
}
.document-preview-card{
 width:min(1000px,96vw);height:min(88vh,850px);display:flex;flex-direction:column;
 background:rgba(12,20,34,.96);color:#fff;border:1px solid rgba(255,255,255,.12);
 border-radius:20px;overflow:hidden;box-shadow:0 35px 100px rgba(0,0,0,.5)
}
.document-preview-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 16px;border-bottom:1px solid rgba(255,255,255,.1)}
.document-preview-head b{display:block;font-size:14px;max-width:70vw;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.document-preview-head small{display:block;color: #475569;margin-top:3px;font-size:10px}
.document-preview-body{flex:1;min-height:0;display:grid;place-items:center;padding:12px;overflow:auto;background:#070d17}
.document-preview-frame{width:100%;height:100%;min-height:500px;border:0;background:#fff;border-radius:8px}
.document-preview-image{display:block;max-width:100%;max-height:100%;object-fit:contain;border-radius:8px;box-shadow:0 15px 45px rgba(0,0,0,.3)}
.document-preview-foot{display:flex;justify-content:flex-end;gap:8px;padding:12px 16px;border-top:1px solid rgba(255,255,255,.1)}


/* Clickable insurance selection cards */
.choice-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px;margin-top:8px}
.choice-card{position:relative;display:flex;align-items:center;gap:9px;padding:11px 12px;border:1px solid #dbe3ef;border-radius:12px;background:#fff;cursor:pointer;transition:.18s;user-select:none;font-size:12px;font-weight:700}
.choice-card:hover{border-color:#60a5fa;background:#f8fbff;transform:translateY(-1px)}
.choice-card input{position:absolute;opacity:0;pointer-events:none}
.choice-check{width:19px;height:19px;display:grid;place-items:center;border:1.5px solid #cbd5e1;border-radius:6px;color:transparent;background:#fff;flex:none;font-size:12px;font-weight:950}
.choice-card:has(input:checked){border-color:#00c98a;background:rgba(0,255,135,.07);box-shadow:0 0 0 2px rgba(0,201,138,.08)}
.choice-card:has(input:checked) .choice-check{background:#00b878;border-color:#00b878;color:#fff}
@media(max-width:600px){.choice-grid{grid-template-columns:1fr}}

/* ===== iPhone / small-screen UX hardening ===== */
html,body{max-width:100%;overflow-x:hidden}
button,input,select,textarea{max-width:100%}
@media(max-width:760px){
  body{padding-bottom:calc(82px + env(safe-area-inset-bottom));overflow-x:hidden}
  .top{height:60px;padding:0 12px;gap:8px}
  .top .brand{font-size:17px;white-space:nowrap}
  .top>div:last-child{display:flex;align-items:center;gap:5px}
  .top #logout{padding:8px 9px;font-size:11px}
  .layout{display:block}
  .main{width:100%;max-width:100%;padding:12px 10px calc(28px + env(safe-area-inset-bottom));overflow:visible}
  .hero,.toolbar{align-items:stretch;gap:9px}
  .hero>div,.toolbar>div{min-width:0}
  .hero :is(h1, h2.dash-title){font-size:24px;line-height:1.1}
  .hero .primary,.toolbar .primary{width:100%}
  .toolbar h2{font-size:21px;margin:0}
  .card,.glass-panel,.glass-stat{max-width:100%;overflow:visible;border-radius:16px}
  .garage-hero{width:100%;grid-template-columns:1fr;gap:14px;padding:18px 14px;border-radius:20px}
  .garage-hero-info h2{font-size:30px;overflow-wrap:anywhere}
  .garage-hero-info p{font-size:12px;overflow-wrap:anywhere}
  .garage-avatar .avatar-car{font-size:70px}
  .digital-cluster{width:100%;justify-self:stretch;text-align:center;padding:13px 10px}
  .digital-cluster strong{font-size:27px;letter-spacing:1px}
  .dashboard-stats,.dashboard-analytics,.dashboard-bottom-grid{grid-template-columns:1fr!important}
  .dashboard-doc-grid,.doc-flip-grid{grid-template-columns:1fr!important}
  .dashboard-grid{gap:10px;margin-top:10px}
  .glass-stat,.glass-panel{padding:14px}
  .panel-heading{align-items:flex-start;flex-wrap:wrap}
  .panel-heading h3{font-size:16px}
  .panel-heading .ghost{padding:8px 10px;font-size:11px}
  .timeline-event{grid-template-columns:20px 68px minmax(0,1fr) auto;gap:6px;padding:10px 2px}
  .timeline-main{min-width:0}
  .timeline-main b,.timeline-main small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .timeline-date{font-size:9px}
  .timeline-cost{font-size:10px;white-space:nowrap}
  .timeline-detail{grid-column:2/5;overflow-wrap:anywhere}
  .form{grid-template-columns:1fr!important;gap:10px}
  .field.full{grid-column:1}
  .itemgrid{grid-template-columns:1fr!important}
  .choice-grid{grid-template-columns:1fr!important}
  .choice-card{min-height:44px}
  .doc-security-notice{margin-top:14px;padding:12px 14px;border:1px solid #fde68a;background:#fffbeb;color:#92400e;border-radius:12px;font-weight:700}
  .doc-toolbar-actions{display:grid;grid-template-columns:1fr 1fr;gap:7px;width:100%}
  .doc-toolbar-actions .primary{grid-column:1/-1}
  .doc-grid{display:grid!important;grid-template-columns:minmax(0,1fr)!important;gap:12px!important;width:100%!important;max-width:100%!important;box-sizing:border-box!important}
  .doc-col{width:100%!important;max-width:100%!important;min-width:0!important;box-sizing:border-box!important}
  .doc-col-head{width:100%!important;max-width:100%!important;min-width:0!important;box-sizing:border-box!important}
  .doc-col-head>div{min-width:0!important;overflow:hidden!important}
  .doc-col-head>div b{overflow:hidden!important;text-overflow:ellipsis!important;white-space:nowrap!important;font-size:13px!important}
  .doc-col-list{width:100%!important;max-width:100%!important;min-width:0!important;box-sizing:border-box!important}
  .doc-row{width:100%!important;max-width:100%!important;min-width:0!important;padding:12px!important;box-sizing:border-box!important}
  .doc-row-body{width:100%!important;max-width:100%!important;min-width:0!important}
  .doc-details{width:100%!important;max-width:100%!important;min-width:0!important}
  .doc-actions{width:100%!important;max-width:100%!important;display:grid!important;grid-template-columns:repeat(auto-fit,minmax(72px,1fr))!important;gap:6px!important;box-sizing:border-box!important}
  .doc-actions button{width:100%!important;min-width:0!important;padding:6px 4px!important;font-size:11px!important}
  .table-wrap,.table,.table-wrap table{max-width:100%}
  .table-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch}
  .mobile-nav{
    left:8px;right:8px;bottom:calc(7px + env(safe-area-inset-bottom));
    height:66px;min-height:66px;padding:5px;
    grid-template-columns:repeat(5,minmax(0,1fr));
    border-radius:18px;overflow:hidden
  }
  .mobile-nav .mobile-car-tab{display:none}
  .mobile-nav button{min-width:0;width:100%;font-size:10px;line-height:1.15;padding:5px 1px;white-space:nowrap;overflow:hidden}
  .mobile-nav button:first-of-type{font-size:10px}
  #dashboardFab{right:14px;bottom:calc(86px + env(safe-area-inset-bottom))}
  .fab-main{width:54px;height:54px}
  .fab-menu{right:0;width:min(210px,calc(100vw - 28px))}
  #docUploadModal{padding:8px}
  .doc-upload-card{width:100%;max-height:calc(100dvh - 16px);overflow-y:auto;padding:16px;border-radius:18px}
  #documentPreviewModal{padding:6px}
  .document-preview-card{width:100%;height:calc(100dvh - 12px);max-height:none;border-radius:14px}
  .document-preview-body{padding:6px}
  .document-preview-frame{min-height:0;height:100%}
  .document-preview-foot{padding:9px}
  .document-preview-foot button{flex:1}
  .toast{left:10px;right:10px;top:calc(10px + env(safe-area-inset-top));bottom:auto;justify-content:center;text-align:center;z-index:2147483647}
}
@media(max-width:380px){
  .top .brand{font-size:15px}
  .top #logout{font-size:10px;padding:7px}
  .main{padding-left:8px;padding-right:8px}
  .garage-hero{padding:16px 12px}
  .garage-hero-info h2{font-size:27px}
  .digital-cluster strong{font-size:24px}
  .glass-stat b{font-size:20px}
  .mobile-nav{left:5px;right:5px}
  .mobile-nav button{font-size:9px}
}

/* ===== iPhone / Mobile UX hardening ===== */
html,body{max-width:100%;overflow-x:hidden}
body{min-width:0;-webkit-text-size-adjust:100%;padding-bottom:0}
img,svg,video,iframe{max-width:100%}
button,input,select,textarea{min-width:0;max-width:100%}
@media(max-width:760px){
 body{padding-bottom:calc(86px + env(safe-area-inset-bottom));overflow-x:hidden}
 .top{height:58px;padding:0 13px;position:sticky;top:0}
 .top .brand{font-size:18px}
 .top>div:last-child{display:flex;align-items:center;gap:6px}
 .top #logout{padding:7px 9px;font-size:11px}
 .layout{display:block}
 .main{width:100%;max-width:100%;padding:12px 11px 30px;overflow:visible}
 .toolbar,.hero{width:100%;align-items:stretch;gap:10px}
 .toolbar>div,.hero>div{min-width:0}
 .toolbar h2,.hero :is(h1, h2.dash-title){font-size:21px;line-height:1.15}
 .toolbar .primary,.toolbar .ghost,.hero .primary{width:auto;white-space:nowrap;padding:9px 11px;font-size:11px}
 .hero{padding-bottom:4px}
 .form{width:100%;grid-template-columns:1fr!important;gap:10px}
 .field.full{grid-column:auto}
 .field input,.field select,.field textarea{font-size:16px;padding:11px;min-height:44px}
 .card{width:100%;padding:13px;margin-bottom:11px;overflow:visible}
 .table-wrap,.table,.report-table{max-width:100%}
 .table-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch}
 .table{min-width:650px}
 .itemgrid{grid-template-columns:1fr!important}
 .choice-grid{grid-template-columns:1fr!important}
 .choice-card{min-height:45px;padding:11px}
 .doc-toolbar-actions{width:100%;display:grid;grid-template-columns:1fr 1fr;gap:7px}
 .doc-toolbar-actions .primary{grid-column:1/-1;width:100%}
 .doc-toolbar-actions button{width:100%;font-size:11px;padding:9px}
 .doc-grid,.doc-flip-grid{grid-template-columns:1fr!important}
 .dashboard-stats{grid-template-columns:1fr!important}
 .dashboard-analytics{grid-template-columns:1fr!important}
 .dashboard-doc-grid{grid-template-columns:1fr!important}
 .dashboard-bottom-grid{grid-template-columns:1fr!important}
 .garage-hero{width:100%;grid-template-columns:1fr!important;padding:17px 14px;gap:12px;border-radius:20px}
 .garage-hero-info h2{font-size:30px;overflow-wrap:anywhere}
 .garage-hero-info p{font-size:12px;overflow-wrap:anywhere}
 .garage-avatar .avatar-car{font-size:70px}
 .digital-cluster{width:100%;justify-self:stretch;padding:12px}
 .digital-cluster strong{font-size:28px}
 .glass-stat,.glass-panel{padding:14px;border-radius:17px}
 .panel-heading{align-items:flex-start}
 .panel-heading h3{font-size:16px}
 .panel-heading .ghost{padding:7px 9px;font-size:10px}
 .timeline-event{grid-template-columns:22px 68px minmax(0,1fr) auto!important;gap:6px;padding:10px 2px}
 .timeline-main{min-width:0}
 .timeline-main b,.timeline-main small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
 .timeline-cost{font-size:10px}
 .timeline-detail{grid-column:2/-1!important;font-size:10px;overflow-wrap:anywhere}
 .spend-bars{gap:13px}
 .spend-bars span{font-size:10px}
 .flip-card{min-height:145px}
 .flip-inner{min-height:145px}
 .flip-front,.flip-back{padding:13px}
 #dashboardFab{right:14px;bottom:calc(82px + env(safe-area-inset-bottom));z-index:5000}
 .fab-main{width:54px;height:54px}
 .fab-menu{right:0;bottom:64px;width:min(210px,calc(100vw - 28px))}
 .mobile-nav{
   left:8px;right:8px;bottom:calc(7px + env(safe-area-inset-bottom));
   width:auto;height:68px;min-height:68px;
   grid-template-columns:repeat(5,minmax(0,1fr));
   padding:5px;gap:3px;border-radius:18px;
   z-index:10000
 }
 .mobile-car-tab{display:none}
 .mobile-nav button{min-width:0;width:100%;height:56px;padding:4px 1px;font-size:10px;line-height:1.15;overflow:hidden}
 .mobile-nav button br{display:block}
 #toast{left:12px;right:12px;top:calc(10px + env(safe-area-inset-top));bottom:auto;width:auto;max-width:none;z-index:2147483646}
 #operationOverlay,#documentPreviewModal{z-index:2147483645}
 .document-preview-card{width:100%;height:calc(100dvh - 16px - env(safe-area-inset-top) - env(safe-area-inset-bottom));max-height:none}
 .document-preview-head{padding:11px 12px}
 .document-preview-body{padding:7px}
 .document-preview-frame{min-height:0;height:100%}
 .document-preview-foot{padding:9px 12px}
 .edit-modal-card{width:calc(100vw - 16px);max-width:none;max-height:calc(100dvh - 24px);padding:15px;border-radius:18px;overflow-y:auto}
 .report-sheet{width:100%;padding:14px;overflow:visible}
 .report-head{grid-template-columns:1fr;gap:12px}
 .report-brand{min-width:0}
 .report-grid{grid-template-columns:1fr!important}
 .report-two{grid-template-columns:1fr!important}
 .report-head h1{font-size:23px}
 .report-reg{justify-self:start;font-size:17px;max-width:100%;overflow-wrap:anywhere}
}
@media(max-width:390px){
 .main{padding-left:9px;padding-right:9px}
 .top{padding-left:10px;padding-right:10px}
 .top .brand{font-size:16px}
 .top #logout{font-size:10px;padding:6px 8px}
 .toolbar h2,.hero :is(h1, h2.dash-title){font-size:19px}
 .garage-hero-info h2{font-size:27px}
 .digital-cluster strong{font-size:24px}
 .health-badge{font-size:9px;padding:7px 9px}
 .mobile-nav{left:5px;right:5px}
 .mobile-nav button{font-size:9px}
}

/* ===== FINAL iPHONE BOTTOM NAV REBUILD ===== */
@media(max-width:760px){
 html,body{width:100%;max-width:100%;overflow-x:hidden}
 body{padding-bottom:0!important}
 .main{padding-bottom:105px!important}
 .mobile-nav{
   position:fixed!important;
   left:12px!important;
   right:12px!important;
   bottom:max(8px,env(safe-area-inset-bottom))!important;
   width:auto!important;
   height:64px!important;
   min-height:64px!important;
   max-height:64px!important;
   display:grid!important;
   grid-template-columns:repeat(5,minmax(0,1fr))!important;
   align-items:stretch!important;
   gap:3px!important;
   padding:4px!important;
   margin:0!important;
   box-sizing:border-box!important;
   overflow:hidden!important;
   border-radius:20px!important;
   background:rgba(15,23,42,.97)!important;
   border:1px solid rgba(255,255,255,.12)!important;
   box-shadow:0 12px 35px rgba(15,23,42,.30),0 0 0 1px rgba(255,255,255,.04)!important;
   backdrop-filter:blur(20px)!important;
   -webkit-backdrop-filter:blur(20px)!important;
 }
 .mobile-nav .mobile-car-tab{display:none!important}
 .mobile-nav button{
   width:100%!important;
   min-width:0!important;
   height:54px!important;
   min-height:54px!important;
   max-height:54px!important;
   margin:0!important;
   padding:5px 2px!important;
   display:flex!important;
   flex-direction:column!important;
   align-items:center!important;
   justify-content:center!important;
   gap:1px!important;
   border:0!important;
   border-radius:15px!important;
   background:transparent!important;
   color:#aeb9cc!important;
   font-size:10px!important;
   line-height:1.05!important;
   font-weight:800!important;
   white-space:nowrap!important;
   transform:none!important;
 }
 .mobile-nav button br{display:none!important}
 .mobile-nav button::first-line{font-size:15px}
 .mobile-nav button.active{
   background:linear-gradient(135deg,#2563eb,#315ee8)!important;
   color:#fff!important;
   box-shadow:0 5px 14px rgba(37,99,235,.32)!important;
 }
 #dashboardFab{
   right:15px!important;
   bottom:calc(82px + env(safe-area-inset-bottom))!important;
   z-index:9999!important;
 }
}
@media(max-width:390px){
 .mobile-nav{left:9px!important;right:9px!important;height:62px!important;min-height:62px!important;max-height:62px!important}
 .mobile-nav button{height:52px!important;min-height:52px!important;max-height:52px!important;font-size:9px!important}
 .main{padding-bottom:100px!important}
}

/* ===== Form 29 / Form 30 & Ownership Transfer ===== */
#saleFormsModal,#saleGeneratedModal{position:fixed;inset:0;z-index:2147483644;background:rgba(2,8,23,.78);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);display:grid;place-items:center;padding:16px}
.sale-modal-card,.sale-generated-card{width:min(940px,96vw);max-height:92vh;overflow-y:auto;background:#fff;border:1px solid rgba(226,232,240,.9);border-radius:20px;padding:22px;box-shadow:0 30px 90px rgba(0,0,0,.35)}
.sale-modal-card .transfer-type-selector{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:14px 0 18px;background:var(--c-soft,#f1f5f9);padding:5px;border-radius:12px;border:1px solid var(--c-line,#e2e8f0)}
.transfer-type-pill{display:flex;align-items:center;justify-content:center;gap:8px;padding:10px 14px;border:none;background:transparent;border-radius:9px;font-size:13px;font-weight:600;color:var(--c-mute, #334155);cursor:pointer;transition:all .15s ease}
.transfer-type-pill.active{background:#fff;color:var(--c-primary,#1d4ed8);box-shadow:0 2px 8px rgba(0,0,0,.06)}
.transfer-form-section{border:1px solid var(--c-line,#e2e8f0);border-radius:14px;padding:16px;margin-bottom:16px;background:#fafbfc}
.transfer-form-section h4{margin:0 0 12px;font-size:14px;font-weight:700;color:var(--c-ink,#0f172a);display:flex;align-items:center;gap:8px}
.transfer-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.transfer-grid .full{grid-column:1/-1}
.transfer-checklist-box{background:#f8fafc;border:1px dashed #cbd5e1;border-radius:12px;padding:14px;margin-top:10px}
.transfer-checklist-box ul{margin:8px 0 0;padding-left:20px;font-size:12px;color:#475569;line-height:1.6}
.sale-vehicle-summary{padding:12px 14px;border-radius:12px;background:#f1f5f9;border:1px solid #dbe3ef;line-height:1.6;font-size:13px}
.sale-generated-card{height:min(94vh,900px);display:flex;flex-direction:column}
.sale-generated-card iframe{width:100%;flex:1;min-height:0;border:1px solid #dbe3ef;border-radius:12px;background:#f8fafc}
.sale-generated-actions{display:flex;justify-content:flex-end;gap:10px;padding-top:14px}

/* ===== Official Statutory PDF Styles (CMVR 1989 Form 29 & 30) ===== */
.sale-pdf-sheet{width:210mm;background:#fff;color:#111827;font-family:"Times New Roman",Times,Georgia,serif;line-height:1.45}
.official-form-page{width:210mm;height:290mm;max-height:290mm;min-height:0;box-sizing:border-box;padding:12mm 16mm;page-break-after:always;break-after:page;position:relative;background:#fff;overflow:hidden}
.official-form-page:last-child{page-break-after:auto}
.form-header-box{text-align:center;border-bottom:2px solid #000;padding-bottom:5mm;margin-bottom:5mm}
.form-title-main{font-size:20px;font-weight:bold;letter-spacing:1px}
.form-rule-ref{font-size:12px;margin:2px 0 4px}
.form-subject{font-size:14px;font-weight:bold;line-height:1.3;margin:4px 0}
.form-sub-instructions{font-size:10px;line-height:1.35;font-style:italic;max-width:180mm;margin:0 auto;color:#222}
.form-to-block{margin-bottom:5mm;font-size:12px;line-height:1.4}
.to-authority{font-size:13px;font-weight:bold}
.to-jurisdiction{font-size:11px;font-style:italic}
.form-section-head{font-size:12px;font-weight:bold;border-bottom:1px solid #000;padding-bottom:2px;margin:5mm 0 3mm;text-transform:uppercase}
.particulars-list{font-size:11.5px;line-height:1.6;margin-bottom:4mm}
.particular-row{display:flex;gap:4px;margin-bottom:2px}
.particular-row .lbl{color:#333;white-space:nowrap}
.particular-row .val{flex:1}
.form-body-paragraphs .form-p,.official-form-page .form-p{font-size:12px;line-height:1.65;margin:0 0 4mm;text-align:justify}
.form-signatures-row{display:grid;grid-template-columns:1fr 1fr;gap:12mm;margin:7mm 0 4mm;font-size:11px;line-height:1.5}
.form-signatures-row.single-right{grid-template-columns:1fr}
.form-signatures-row.single-right .sig-col{justify-self:end;text-align:right}
.sig-col{display:flex;flex-direction:column;gap:3px}
.sig-line{letter-spacing:-1px;color:#555}
.sig-caption{font-weight:600;font-size:10.5px}
.transferee-ack-row{font-size:11px;margin:4mm 0 3mm}
.copy-to-block{font-size:11px;line-height:1.4;margin:4mm 0}
.copy-note{font-size:9.5px;font-style:italic;color:#444}
.office-endorsement-box{border:1.5px solid #000;padding:4mm 5mm;margin-top:6mm;font-size:10.5px;line-height:1.45}
.endorsement-title{font-weight:bold;text-align:center;font-size:11.5px;letter-spacing:1px;margin-bottom:3mm;text-decoration:underline}
.endorsement-ref-row{display:flex;justify-content:space-between;margin-bottom:3mm;font-size:10px}
.endorsement-sign-row{display:flex;justify-content:space-between;align-items:flex-end;margin-top:4mm}
.endorsement-to{margin-top:3mm;font-size:10px;border-top:1px dashed #999;padding-top:2mm}
.specimen-signatures-box{border:1px solid #444;padding:4mm;margin-top:6mm;font-size:10.5px}
.specimen-instructions{font-size:9.5px;line-height:1.35;margin-bottom:3mm;font-style:italic}
.specimen-grid{display:grid;grid-template-columns:1fr 1fr;gap:8mm;font-size:10.5px}
.specimen-head{font-weight:bold;margin-bottom:2mm}
.specimen-item{margin-bottom:2mm}
.letter-meta-row{display:flex;justify-content:space-between;margin-bottom:6mm;font-size:12px;line-height:1.5}
.letter-to{margin-bottom:5mm;font-size:12px;line-height:1.5}
.letter-sub{font-size:12.5px;margin-bottom:5mm;text-decoration:underline}
.letter-body p{font-size:12px;line-height:1.7;margin:0 0 4mm;text-align:justify}
.letter-sign-block{margin-top:10mm;text-align:right;font-size:11.5px;line-height:1.5}
.not-hypo-note{font-style:italic;color:#555;font-size:11px}
.duplicate-badge{position:absolute;top:10mm;right:16mm;border:1.5px solid #777;color:#555;padding:2px 8px;font-size:10px;font-weight:bold;letter-spacing:1px;border-radius:4px;text-transform:uppercase}

@media(max-width:760px){
 .sale-modal-card{width:100%;max-height:94dvh;padding:14px;border-radius:18px}
 .sale-modal-card .transfer-grid{grid-template-columns:1fr!important}
 .sale-modal-card .transfer-type-selector{grid-template-columns:1fr}
 .sale-modal-card input,.sale-modal-card select,.sale-modal-card textarea{font-size:16px}
 .sale-generated-card{width:100%;height:94dvh;padding:10px;border-radius:16px}
 .sale-generated-card iframe{min-height:0}
}

/* ===== Form 29/30 PDF Rendering Stage: Render visible in real DOM with positive coordinates ===== */
#salePdfRenderHolder{
 position:fixed!important;
 top:0!important;
 left:0!important;
 width:1px!important;
 height:1px!important;
 overflow:hidden!important;
 opacity:0.01!important;
 pointer-events:none!important;
 z-index:-1!important;
}
#salePdfRenderSheet{
 display:block!important;
 visibility:visible!important;
 width:210mm!important;
 background:#fff!important;
 color:#111827!important;
 box-sizing:border-box!important;
}
#salePdfRenderSheet .sale-pdf-sheet{display:block!important;visibility:visible!important;width:210mm!important}

@media print{
 body>*:not(#saleGeneratedModal):not(#salePdfRenderHolder):not(#salePdfPreview){display:none!important}
 #salePdfRenderSheet,#salePdfPreview{
   position:static!important;
   left:auto!important;
   top:auto!important;
   visibility:visible!important;
   opacity:1!important;
   z-index:auto!important;
   width:210mm!important;
   overflow:visible!important;
   display:block!important;
 }
 .sale-pdf-sheet{width:210mm}
 .official-form-page{break-after:page;page-break-after:always}
 #saleGeneratedModal{display:none!important}
}

/* ===== STEP 4 service record details ===== */
.service-item-row{border:1px solid #e5e7eb;border-radius:14px;padding:10px;background:#fff;margin-bottom:8px}
.service-item-row>.item{display:flex;align-items:center;gap:8px;font-weight:750;cursor:pointer}
.service-item-detail{display:none;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin-top:9px;padding-top:9px;border-top:1px dashed #dbe3ef}
.service-item-detail.show{display:grid}
.service-item-detail input{width:100%;min-width:0;padding:9px 10px;border:1px solid #dbe3ef;border-radius:9px;font:inherit}
.service-item-detail input:focus{outline:none;border-color:#7aa2ff;box-shadow:0 0 0 3px #dbeafe}
.is-saving{opacity:.7;cursor:wait}
.glass-stat .danger{color:#b91c1c}.glass-stat .warn{color:#b45309}.glass-stat .ok{color:#15803d}.glass-stat .neutral{color: #334155}
.table-scroll{overflow-x:auto}
.table-scroll .table{min-width:760px}
#editServiceRecordModal{position:fixed;inset:0;z-index:9995;background:rgba(15,23,42,.52);backdrop-filter:blur(7px);display:grid;place-items:center;padding:14px;overflow:auto}
#editServiceRecordModal .edit-modal-card{width:min(900px,calc(100vw - 28px));max-height:92vh;overflow:auto;background:#fff;border-radius:22px;padding:22px;box-shadow:0 30px 90px rgba(15,23,42,.28)}
@media(max-width:760px){.service-item-detail.show{grid-template-columns:1fr 1fr}.table-scroll .table{min-width:700px}}
@media(max-width:480px){.service-item-detail.show{grid-template-columns:1fr}}


/* ===== STEP 5 profile / compliance history / sold lifecycle ===== */
.step5-toolbar{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:14px 16px;margin-bottom:12px;border:1px solid rgba(148,163,184,.22);border-radius:16px;background:rgba(255,255,255,.72)}
.step5-toolbar>div{display:flex;flex-direction:column;gap:3px}
.step5-modal-card{width:min(980px,calc(100vw - 28px));max-height:92vh;overflow:auto;background:#fff;border-radius:22px;padding:22px;box-shadow:0 30px 90px rgba(15,23,42,.28)}
#ownerProfileModal,#vehicleHistoryModal{position:fixed;inset:0;z-index:10020;background:rgba(15,23,42,.55);backdrop-filter:blur(8px);display:grid;place-items:center;padding:14px}
.history-modal{width:min(1100px,calc(100vw - 24px))}
.history-section{margin-top:16px;padding:14px;border:1px solid #e5e7eb;border-radius:16px;background:#f8fafc}
.history-section h4{margin:0 0 10px}
.history-section .table{min-width:700px}
.sold-badge{display:inline-flex;align-items:center;padding:4px 8px;border-radius:999px;background:#fee2e2;color:#991b1b;font-size:10px;font-weight:900;letter-spacing:.5px;vertical-align:middle}
.vehicle-sold-card{border-color:#fecaca!important;background:linear-gradient(180deg,#fff,#fff7f7)}
@media(max-width:760px){
 .step5-toolbar{align-items:stretch;flex-direction:column}
 .step5-toolbar button{width:100%}
 .step5-modal-card{width:100%;max-height:94dvh;padding:14px;border-radius:18px}
 .history-section{padding:10px}
}


/* =========================================================
   CARCARE CLOUD — PREMIUM INTERFACE SYSTEM
   Quiet luxury / automotive executive aesthetic
   ========================================================= */
:root{
  --premium-ink:#111827;
  --premium-deep:#0b1018;
  --premium-panel:#ffffff;
  --premium-soft:#f6f7f8;
  --premium-line:#e7e9ed;
  --premium-muted:#707782;
  --premium-accent:#315ee8;
  --premium-accent-soft:#edf2ff;
  --premium-shadow:0 18px 55px rgba(15,23,42,.075);
  --premium-shadow-lg:0 28px 90px rgba(15,23,42,.14);
}
html{background:#f4f5f6}
body{
  background:
    radial-gradient(circle at 92% 0%,rgba(49,94,232,.055),transparent 24%),
    #f4f5f6;
  color:var(--premium-ink);
  letter-spacing:-.01em;
}
body.menu-open{overflow:hidden}
.top{
  height:72px!important;
  padding:0 clamp(18px,3vw,38px)!important;
  background:rgba(250,250,249,.88)!important;
  border-bottom:1px solid rgba(17,24,39,.07)!important;
  box-shadow:0 1px 0 rgba(255,255,255,.8);
  z-index:9000!important;
}
.top .brand{
  display:flex;align-items:center;gap:10px;
  font-size:19px!important;letter-spacing:-.045em;
}
.brand-mark{
  width:30px;height:30px;flex:0 0 30px;display:block;
  background:transparent;color:var(--c-accent);border-radius:0;
  box-shadow:none;font-size:inherit;font-weight:inherit;letter-spacing:normal;
  user-select:none;-webkit-user-select:none;-webkit-user-drag:none;pointer-events:none;
}
.top-actions{display:flex!important;align-items:center;gap:16px}
.top-actions #userEmail{font-size:12px;max-width:300px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
#top .brand i,.top .brand i{color:#315ee8}
.menu-toggle{
  width:43px;height:43px!important;padding:0!important;border-radius:13px!important;
  background:#111827!important;color:#fff!important;
  display:grid!important;place-content:center!important;gap:4px!important;
  box-shadow:0 8px 22px rgba(15,23,42,.17)!important;
}
.menu-toggle span{display:block;width:16px;height:1.5px;background:#fff;border-radius:2px;transition:.2s}
.menu-toggle:hover{transform:translateY(-1px);box-shadow:0 11px 28px rgba(15,23,42,.22)!important}
.menu-toggle[aria-expanded=true] span:nth-child(1){transform:translateY(5.5px) rotate(45deg)}
.menu-toggle[aria-expanded=true] span:nth-child(2){opacity:0}
.menu-toggle[aria-expanded=true] span:nth-child(3){transform:translateY(-5.5px) rotate(-45deg)}

.layout{display:block}
.layout>aside{display:none!important}
.main{
  width:min(1540px,100%)!important;
  padding:clamp(24px,3.4vw,48px)!important;
}
.view.active{animation:none}
@keyframes premiumView{from{opacity:0;transform:translateY(4px)}to{opacity:1;transform:none}}

.hero,.toolbar{
  margin-bottom:22px!important;
}
.hero :is(h1, h2.dash-title),.toolbar h2{
  letter-spacing:-.045em!important;
  font-weight:780!important;
}
.hero :is(h1, h2.dash-title){font-size:clamp(27px,3vw,38px)!important}
.toolbar h2{font-size:25px!important}
.muted{color:#747b85!important}

.card{
  background:rgba(255,255,255,.94)!important;
  border:1px solid rgba(17,24,39,.075)!important;
  border-radius:22px!important;
  box-shadow:var(--premium-shadow)!important;
}
.card:hover{transform:none!important;box-shadow:0 22px 65px rgba(15,23,42,.095)!important}

.primary{
  background:#111827!important;
  color:#fff!important;
  border:1px solid #111827!important;
  box-shadow:0 8px 22px rgba(17,24,39,.13)!important;
}
.primary:hover{background:#1f2937!important}
.ghost{
  background:#fff!important;
  color:#273142!important;
  border:1px solid #dfe3e8!important;
  box-shadow:0 2px 7px rgba(15,23,42,.035)!important;
}
.ghost:hover{background:#f8f9fa!important;border-color:#cfd5dc!important;color:#111827!important}

button{border-radius:11px!important}
.field label{font-size:11px;text-transform:uppercase;letter-spacing:.07em;color:#59616d}
.field input,.field select,.field textarea{
  border:1px solid #dfe3e8!important;
  background:#fff!important;
  border-radius:12px!important;
  box-shadow:0 1px 1px rgba(15,23,42,.02)!important;
}
.field input:focus,.field select:focus,.field textarea:focus{
  border-color:#9aaeea!important;
  box-shadow:0 0 0 3px rgba(49,94,232,.09)!important;
}

#dashboard .hero>div:first-child:after{
  content:"PRIVATE • VEHICLE MANAGEMENT";
  display:block;margin-top:8px;font-size:9px;font-weight:850;letter-spacing:.18em;color:#9aa0a9;
}
.dashboard-grid{gap:14px!important}
.glass-stat,.glass-panel{
  border:1px solid rgba(17,24,39,.075)!important;
  box-shadow:var(--premium-shadow)!important;
  background:rgba(255,255,255,.95)!important;
  border-radius:20px!important;
}
.garage-hero{
  border-radius:26px!important;
  border:1px solid rgba(17,24,39,.08)!important;
  background:
    linear-gradient(115deg,#111827 0%,#161e2b 58%,#202b3a 100%)!important;
  box-shadow:0 25px 75px rgba(15,23,42,.17)!important;
  color:#fff;
}
.garage-hero .muted,.garage-hero small{color:#aeb7c3!important}
.garage-hero-info .eyebrow{color:#8f9bad!important;letter-spacing:.18em!important}
.health-badge{border:1px solid rgba(255,255,255,.12)!important;box-shadow:none!important}
.digital-cluster{
  background:rgba(255,255,255,.055)!important;
  border:1px solid rgba(255,255,255,.1)!important;
  box-shadow:none!important;
  border-radius:18px!important;
}
.garage-avatar{filter:saturate(.78)}
.panel-heading{border-bottom:1px solid #edf0f3;padding-bottom:13px}

.table th{
  background:#f7f8fa!important;
  color:#68707c!important;
  font-size:10px!important;
  text-transform:uppercase;letter-spacing:.08em;
}
.table td{border-color:#edf0f3!important}
.table tr:hover td{background:#fafbfc}

.side-menu-shell{
  position:fixed;inset:0;z-index:10050!important;pointer-events:none;visibility:hidden;overflow:hidden!important;
}
.side-menu-shell[aria-hidden="true"]{display:none!important}
.side-menu-shell[aria-hidden="false"]{display:block!important;pointer-events:auto;visibility:visible}
.side-menu-backdrop{
  position:absolute;inset:0;background:rgba(3,7,18,.68);
  backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);
  opacity:0;transition:opacity .25s ease;
}
.side-drawer{
  position:absolute;top:0;right:0;width:min(390px,88vw);
  height:100vh;height:100dvh;max-height:100dvh;
  box-sizing:border-box!important;
  padding:max(16px,calc(10px + env(safe-area-inset-top,0px))) clamp(14px,3.8vw,20px) max(16px,calc(12px + env(safe-area-inset-bottom,0px)));
  background:linear-gradient(180deg,#102b4e 0%,#0b1f3a 100%)!important;
  color:#fff!important;
  border-left:1px solid rgba(255,255,255,.14);
  box-shadow:-25px 0 70px rgba(0,0,0,.45);
  transform:translateX(102%);
  transition:transform .32s cubic-bezier(.22,.8,.2,1);
  display:flex!important;flex-direction:column!important;
  overflow:hidden!important;
  z-index:2;
}
.side-menu-shell[aria-hidden="false"] .side-menu-backdrop{opacity:1}
.side-menu-shell[aria-hidden="false"] .side-drawer{transform:translateX(0)}

.drawer-head{
  flex:0 0 auto!important;
  display:flex!important;justify-content:space-between!important;align-items:flex-start!important;gap:12px!important;
  padding:0 0 12px!important;border-bottom:1px solid rgba(255,255,255,.12)!important;
}
.drawer-brand{
  display:flex!important;align-items:center!important;gap:10px!important;
  background:transparent!important;border:none!important;padding:0!important;text-align:left!important;color:inherit!important;
}
.drawer-brand-mark{width:32px;height:32px;flex:0 0 32px}
.drawer-kicker{font-size:9px;letter-spacing:.2em;font-weight:900;color:#78c8ff}
.drawer-head h3{margin:3px 0 1px;font-size:20px;letter-spacing:-.04em;color:#fff}
.drawer-head small{color: #475569;font-size:11px}
.drawer-close{
  flex:0 0 36px!important;width:36px;height:36px;padding:0!important;border-radius:10px!important;
  background:rgba(255,255,255,.08)!important;color:#fff!important;border:1px solid rgba(255,255,255,.12)!important;
  font-size:22px!important;line-height:1!important;display:grid!important;place-content:center!important;
  cursor:pointer!important;transition:background .15s ease!important;
}
.drawer-close:hover{background:rgba(255,255,255,.16)!important}

.drawer-car{
  flex:0 0 auto!important;
  display:flex!important;align-items:center!important;gap:12px!important;
  margin:12px 0 10px!important;padding:10px 12px!important;
  border-radius:14px!important;background:rgba(255,255,255,.07)!important;
  border:1px solid rgba(255,255,255,.14)!important;color:#fff!important;
}
.drawer-car-icon{
  width:36px;height:36px;flex:0 0 36px!important;display:grid!important;place-items:center!important;
  border-radius:10px!important;background:rgba(255,255,255,.12)!important;color:#38bdf8!important;font-size:16px!important;
}
.drawer-car div{min-width:0;flex:1 1 auto;display:grid;gap:2px}
.drawer-car b{font-size:13px;color:#fff;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.drawer-car small{font-size:10px;color: #475569;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}

.drawer-nav{
  flex:1 1 auto!important;min-height:0!important;
  display:flex!important;flex-direction:column!important;gap:3px!important;
  overflow-y:auto!important;overflow-x:hidden!important;-webkit-overflow-scrolling:touch!important;
  padding:4px 0!important;margin:0!important;
}
.drawer-link{
  display:flex!important;align-items:center!important;gap:12px!important;
  width:100%!important;padding:9px 12px!important;min-height:48px!important;
  border-radius:12px!important;background:transparent!important;
  border:1px solid transparent!important;color:#e2e8f0!important;
  text-align:left!important;box-shadow:none!important;box-sizing:border-box!important;
  cursor:pointer!important;transition:all .15s ease!important;
}
.drawer-link svg.nav-icon{
  width:20px!important;height:20px!important;min-width:20px!important;flex:0 0 20px!important;
  stroke:currentColor!important;display:block!important;
}
.drawer-link .drawer-link-text,.drawer-link > div{
  display:flex!important;flex-direction:column!important;justify-content:center!important;
  gap:2px!important;min-width:0!important;flex:1 1 auto!important;
}
.drawer-link b{
  display:block!important;font-size:13px!important;font-weight:700!important;
  line-height:1.25!important;color:#fff!important;
  white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important;
}
.drawer-link em,.drawer-link small,.drawer-link span{
  display:block!important;font-style:normal!important;font-size:11px!important;
  line-height:1.3!important;color: #475569!important;
  white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important;
}
.drawer-link:hover{
  background:rgba(255,255,255,.08)!important;color:#fff!important;
}
.drawer-link.active{
  background:rgba(37,99,235,.24)!important;border-color:rgba(59,130,246,.45)!important;
  color:#fff!important;box-shadow:inset 3px 0 0 #38bdf8!important;
}
.drawer-link.active em,.drawer-link.active span{color:#93c5fd!important}

.drawer-footer{
  flex:0 0 auto!important;margin-top:auto!important;
  padding-top:12px!important;border-top:1px solid rgba(255,255,255,.12)!important;
  display:grid!important;grid-template-columns:1fr 1fr!important;gap:8px!important;
}
.drawer-utility{
  width:100%!important;height:42px!important;padding:0 8px!important;
  display:flex!important;align-items:center!important;justify-content:center!important;
  background:rgba(255,255,255,.09)!important;border:1px solid rgba(255,255,255,.16)!important;
  color:#fff!important;border-radius:12px!important;font-size:12px!important;font-weight:600!important;
  cursor:pointer!important;box-sizing:border-box!important;transition:all .15s ease!important;
}
.drawer-utility:hover{background:rgba(255,255,255,.16)!important}
.logout-drawer{
  background:rgba(239,68,68,.14)!important;border-color:rgba(239,68,68,.28)!important;
  color:#fca5a5!important;
}
.logout-drawer:hover{background:rgba(239,68,68,.24)!important}
.drawer-secure{
  grid-column:1/-1!important;text-align:center!important;font-size:10px!important;
  letter-spacing:.08em!important;color: #475569!important;padding-top:6px!important;margin:0!important;
}
.drawer-secure span{color:#34d399!important;font-size:8px!important;margin-left:3px}

body.menu-open{overflow:hidden!important}
body.menu-open .mobile-nav{display:none!important}

@media(min-width: 769px){
  .mobile-nav{display:none!important}
}
#dashboardFab{z-index:8000!important}
.fab-main{
  background:#111827!important;border:1px solid rgba(255,255,255,.12)!important;
  box-shadow:0 15px 35px rgba(15,23,42,.2)!important;
}
.fab-menu{
  border:1px solid #e2e5e9!important;
  background:rgba(250,250,249,.97)!important;
  box-shadow:0 20px 60px rgba(15,23,42,.15)!important;
  border-radius:17px!important;
}
.fab-menu button{color:#273142!important;background:transparent!important}
.fab-menu button:hover{background:#f0f2f4!important}

.login{
  background:
    radial-gradient(circle at 10% 15%,rgba(49,94,232,.08),transparent 28%),
    radial-gradient(circle at 90% 90%,rgba(17,24,39,.06),transparent 28%),
    #f3f4f5!important;
}
.loginbox{
  width:min(430px,100%)!important;padding:36px!important;
  border-radius:26px!important;background:rgba(255,255,255,.94)!important;
  border:1px solid rgba(17,24,39,.08)!important;
  box-shadow:0 35px 100px rgba(15,23,42,.13)!important;
}
.loginbox .brand{font-size:24px!important;letter-spacing:-.05em}
.loginbox h1{letter-spacing:-.045em}

@media(min-width:1101px){
  .main{padding-left:clamp(34px,5vw,76px)!important;padding-right:clamp(34px,5vw,76px)!important}
}
@media(max-width:1100px) and (min-width:761px){
  .main{padding:24px!important}
  .grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}
  .dashboard-stats{grid-template-columns:repeat(2,minmax(0,1fr))!important}
  .garage-hero{grid-template-columns:1.2fr .8fr!important}
  .form{grid-template-columns:repeat(2,minmax(0,1fr))!important}
  .side-drawer{width:min(400px,78vw)}
}
@media(max-width:760px){
  .top{height:62px!important;padding:0 13px!important}
  .top .brand{font-size:17px!important}
  .brand-mark{width:27px;height:27px}
  .top-actions{gap:9px!important}
  .top-actions #userEmail{display:none}
  .menu-toggle{width:40px;height:40px!important}
  .main{padding:16px 12px 34px!important}
  .hero,.toolbar{margin-bottom:17px!important}
  .hero :is(h1, h2.dash-title){font-size:27px!important}
  .toolbar h2{font-size:22px!important}
  .card{border-radius:18px!important;padding:15px!important}
  .garage-hero{border-radius:21px!important;padding:18px 15px!important}
  .drawer-head h3{font-size:20px}
  .doc-toolbar-actions{grid-template-columns:1fr 1fr!important}
  .doc-toolbar-actions .primary{grid-column:1/-1}
  .table-scroll{border-radius:12px}
}
@media(max-width:390px){
  .main{padding-left:9px!important;padding-right:9px!important}
  .side-drawer{width:94vw}
  .drawer-head h3{font-size:20px}
  .drawer-link b{font-size:12px}
}

/* Touch-friendly flip cards: tap, not only hover */
.flip-card{outline:none}
.flip-card:focus-visible{outline:2px solid var(--auto-cyan);outline-offset:3px}

/* Phase 2 mobile */
@media(max-width:760px){
 #dashboard.active .hero{padding:2px 2px 8px}
 #dashboard.active .hero :is(h1, h2.dash-title){font-size:22px}
 #dashboard.active .dashboard-grid{gap:11px!important}
 #dashboard.active .glass-stat,#dashboard.active .glass-panel{border-radius:18px!important}
 #dashboard.active .garage-hero{border-radius:23px!important}
 #dashboard.active .digital-cluster strong{color:var(--auto-green);text-shadow:0 0 22px rgba(0,255,135,.16)}
 #dashboard.active .timeline-event{
   grid-template-columns:22px 72px minmax(0,1fr) auto 16px!important;
   gap:5px!important;
   padding:11px 2px!important;
 }
 #dashboard.active .timeline-detail{grid-column:2/-1!important}
 #dashboard.active .dashboard-doc-grid{grid-template-columns:1fr!important}
 #dashboard.active .flip-card{min-height:154px}
 #dashboard.active .flip-inner{min-height:154px}
}

/* =========================================================
   A4 VEHICLE REPORT — PRINT
   ========================================================= */
@media print{
 html,body{width:100%!important;min-height:0!important;margin:0!important;padding:0!important;background:#fff!important;color:#172033!important}
 body>*{display:none!important}
 #app{display:block!important;visibility:visible!important}
 #app *{visibility:hidden!important}
 #report,#report *{visibility:visible!important}
 #report{display:block!important;position:static!important;width:100%!important;height:auto!important;min-height:0!important;margin:0!important;padding:0!important;overflow:visible!important;background:#fff!important;color:#172033!important}
 #reportArea{display:block!important;position:static!important;width:100%!important;height:auto!important;min-height:0!important;margin:0!important;padding:0!important;overflow:visible!important;background:#fff!important}
 #report .toolbar,#report .no-print{display:none!important}
 #report .report-sheet{display:block!important;visibility:visible!important;width:100%!important;max-width:none!important;min-height:277mm!important;height:auto!important;margin:0!important;padding:0!important;overflow:visible!important;background:#fff!important;color:#172033!important;box-shadow:none!important;border:0!important;border-radius:0!important;transform:none!important;animation:none!important}
 #report .report-head,#report .report-brand,#report .report-section,#report .report-grid,#report .report-two,#report .report-panel,#report .report-table,#report .report-total,#report .report-footer{visibility:visible!important}
 @page{size:A4 portrait;margin:10mm}
}

/* =========================================================
   AUTOMOTIVE SAAS REDESIGN & POLISH
   ========================================================= */

/* Suppress native Windows/Edge password reveal icons */
input[type="password"]::-ms-reveal,
input[type="password"]::-ms-clear {
  display: none !important;
}

/* Desktop Sidebar (<aside>) with Vector SVGs */
@media (min-width: 769px) {
  .layout {
    display: flex !important;
    min-height: calc(100vh - 72px);
  }
  .layout > aside {
    display: flex !important;
    flex-direction: column !important;
    flex: 0 0 240px !important;
    width: 240px !important;
    min-width: 240px !important;
    background: #0f172a !important;
    padding: 20px 12px !important;
    border-right: 1px solid rgba(255,255,255,.08) !important;
  }
  .layout > .main {
    flex: 1 1 0% !important;
    min-width: 0 !important;
    width: auto !important;
  }
  .menu-toggle {
    display: none !important;
  }
}
@media (max-width: 768px) {
  .layout > aside {
    display: none !important;
  }
}
.layout>aside button {
  width: 100% !important;
  display: flex !important;
  align-items: center !important;
  gap: 12px !important;
  text-align: left !important;
  background: transparent !important;
  color: #475569 !important;
  margin: 4px 0 !important;
  padding: 11px 14px !important;
  border-radius: 12px !important;
  font-size: 13px !important;
  font-weight: 500 !important;
  border: 1px solid transparent !important;
  transition: all .15s ease !important;
}
.layout>aside button svg.nav-icon {
  width: 18px !important;
  height: 18px !important;
  flex: 0 0 18px !important;
  stroke: currentColor !important;
}
.layout>aside button:hover {
  background: rgba(255,255,255,.06) !important;
  color: #f1f5f9 !important;
}
.layout>aside button.active {
  background: var(--c-accent) !important;
  color: #fff !important;
  box-shadow: 0 6px 18px rgba(37,99,235,.35) !important;
}

/* Side Drawer Links */
.drawer-link {
  display: flex !important;
  align-items: center !important;
  gap: 14px !important;
  padding: 12px 14px !important;
}
.drawer-link svg.nav-icon {
  width: 20px !important;
  height: 20px !important;
  flex: 0 0 20px !important;
  stroke: currentColor !important;
}

/* Indian High Security Registration Plate (HSRP) Typography */
.hsrp-plate {
  display: inline-flex !important;
  align-items: center !important;
  background: #ffffff !important;
  border: 2px solid #0f172a !important;
  border-radius: 6px !important;
  box-shadow: 0 2px 8px rgba(0,0,0,.08), inset 0 0 0 1px rgba(0,0,0,.05) !important;
  overflow: hidden !important;
  font-family: var(--font-ui) !important;
  font-weight: 800 !important;
  letter-spacing: .07em !important;
  height: 38px !important;
  flex-shrink: 0 !important;
}
.hsrp-ind {
  background: #1d4ed8 !important;
  color: #fff !important;
  display: flex !important;
  flex-direction: column !important;
  align-items: center !important;
  justify-content: center !important;
  padding: 0 7px !important;
  height: 100% !important;
  font-size: 8px !important;
  font-weight: 800 !important;
  line-height: 1 !important;
  border-right: 1.5px solid #0f172a !important;
}
.hsrp-chakra {
  font-size: 8px !important;
  color: #93c5fd !important;
  margin-bottom: 2px !important;
}
.hsrp-number {
  padding: 0 12px !important;
  font-size: 16px !important;
  color: #0f172a !important;
  white-space: nowrap !important;
  text-transform: uppercase !important;
}

/* Modern Automotive Dashboard Hero & Overview */
.minimal-hero {
  display: flex !important;
  justify-content: space-between !important;
  align-items: center !important;
  flex-wrap: wrap !important;
  gap: 16px !important;
  padding: 20px 24px !important;
  background: #fff !important;
  border: 1px solid var(--c-line) !important;
  border-radius: 16px !important;
  margin-bottom: 18px !important;
  box-shadow: 0 4px 18px rgba(16,24,40,.04) !important;
}
.minimal-hero-left {
  display: flex !important;
  align-items: center !important;
  gap: 16px !important;
  flex-wrap: wrap !important;
}
.minimal-hero-meta h2 {
  font-size: 20px !important;
  margin: 0 0 4px !important;
  font-weight: 700 !important;
  display: flex !important;
  align-items: center !important;
  gap: 8px !important;
}
.minimal-hero-meta p {
  margin: 0 !important;
  font-size: 13px !important;
}
.minimal-hero-actions {
  display: flex !important;
  align-items: center !important;
  gap: 8px !important;
  flex-wrap: wrap !important;
}

/* KPI Metrics Grid */
.minimal-grid {
  display: grid !important;
  grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)) !important;
  gap: 14px !important;
  margin-bottom: 18px !important;
}
.minimal-card {
  background: #fff !important;
  border: 1px solid var(--c-line) !important;
  border-radius: 14px !important;
  padding: 16px 18px !important;
  display: flex !important;
  flex-direction: column !important;
  box-shadow: 0 4px 14px rgba(16,24,40,.03) !important;
  position: relative !important;
}
.kpi-kicker {
  font-size: 11px !important;
  font-weight: 600 !important;
  letter-spacing: .06em !important;
  color: var(--c-mute) !important;
  margin-bottom: 6px !important;
}
.minimal-card b {
  font-size: 20px !important;
  font-weight: 700 !important;
  line-height: 1.25 !important;
  margin-bottom: 4px !important;
}
.minimal-card small {
  font-size: 12px !important;
  color: var(--c-mute) !important;
}
.minimal-card .link-btn {
  background: none !important;
  border: none !important;
  color: var(--c-accent) !important;
  font-size: 11px !important;
  font-weight: 600 !important;
  padding: 0 !important;
  cursor: pointer !important;
}

/* Two-Column Dashboard Content Layout */
.dashboard-two-col {
  display: grid !important;
  grid-template-columns: 1.15fr 0.85fr !important;
  gap: 16px !important;
  margin-top: 18px !important;
}
@media(max-width: 900px){
  .dashboard-two-col {
    grid-template-columns: 1fr !important;
  }
}
.dashboard-col-card {
  margin-bottom: 0 !important;
  display: flex !important;
  flex-direction: column !important;
}
.card-head-row {
  display: flex !important;
  justify-content: space-between !important;
  align-items: center !important;
  margin-bottom: 14px !important;
}
.card-head-row h3 {
  font-size: 16px !important;
  margin: 0 !important;
}
.btn-sm {
  font-size: 12px !important;
  padding: 6px 12px !important;
  border-radius: 8px !important;
}

/* Recent Records Timeline */
.recent-records-list {
  display: flex !important;
  flex-direction: column !important;
  gap: 10px !important;
}
.recent-record-item {
  display: flex !important;
  justify-content: space-between !important;
  align-items: center !important;
  padding: 10px 12px !important;
  background: var(--c-soft) !important;
  border-radius: 10px !important;
  border: 1px solid var(--c-line) !important;
}
.rr-left {
  display: flex !important;
  flex-direction: column !important;
  gap: 2px !important;
}
.rr-date {
  font-size: 11px !important;
  color: var(--c-mute) !important;
}
.rr-right b {
  font-size: 15px !important;
  font-weight: 700 !important;
}
.empty-col-state {
  text-align: center !important;
  padding: 30px 16px !important;
}

/* Empty Garage Onboarding Screen */
.empty-garage-card {
  text-align: center !important;
  padding: 56px 24px !important;
  border: 2px dashed #cbd5e1 !important;
  border-radius: 20px !important;
  background: #f8fafc !important;
}
.empty-garage-icon {
  width: 80px !important;
  height: 80px !important;
  margin: 0 auto 20px !important;
  display: grid !important;
  place-items: center !important;
  background: #eff6ff !important;
  border-radius: 50% !important;
  border: 1px solid #bfdbfe !important;
}
.empty-garage-card h2 {
  font-size: 26px !important;
  margin-bottom: 10px !important;
}
.empty-garage-lead {
  max-width: 580px !important;
  margin: 0 auto 24px !important;
  font-size: 14px !important;
  line-height: 1.6 !important;
}
.empty-garage-actions {
  display: flex !important;
  gap: 12px !important;
  justify-content: center !important;
  flex-wrap: wrap !important;
  margin-bottom: 36px !important;
}
.btn-large {
  padding: 13px 26px !important;
  font-size: 14px !important;
  font-weight: 600 !important;
}
.empty-garage-features {
  display: grid !important;
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)) !important;
  gap: 16px !important;
  max-width: 880px !important;
  margin: 0 auto !important;
  text-align: left !important;
}
.feat-box {
  background: #fff !important;
  border: 1px solid var(--c-line) !important;
  border-radius: 12px !important;
  padding: 16px !important;
  box-shadow: 0 2px 8px rgba(0,0,0,.03) !important;
}
.feat-icon {
  margin-bottom: 8px !important;
  color: var(--c-accent) !important;
}
.feat-box b {
  display: block !important;
  margin-bottom: 4px !important;
  font-size: 13px !important;
}
.feat-box p {
  margin: 0 !important;
  font-size: 12px !important;
  color: var(--c-mute) !important;
  line-height: 1.45 !important;
}

/* Vehicle Fleet Cards */
.vehicle-card {
  padding: 16px 20px !important;
  margin-bottom: 12px !important;
  border: 1px solid var(--c-line) !important;
  border-radius: 14px !important;
  background: #fff !important;
  transition: all .15s ease !important;
}
.vehicle-card-active {
  border-color: var(--c-accent) !important;
  box-shadow: 0 4px 18px rgba(37,99,235,.12) !important;
}
.vehicle-card-inner {
  display: flex !important;
  justify-content: space-between !important;
  align-items: center !important;
  flex-wrap: wrap !important;
  gap: 16px !important;
}
.vehicle-card-left {
  display: flex !important;
  align-items: center !important;
  gap: 16px !important;
}
.vehicle-meta h3 {
  margin: 0 0 3px !important;
  font-size: 17px !important;
}
.vehicle-meta p {
  margin: 0 !important;
  font-size: 12px !important;
}
.vehicle-pills {
  display: flex !important;
  gap: 8px !important;
  flex-wrap: wrap !important;
  align-items: center !important;
}
.vehicle-card-actions {
  display: flex !important;
  gap: 8px !important;
  flex-wrap: wrap !important;
}

/* Service & Maintenance Spend Summary Bar */
.spend-summary-bar {
  display: grid !important;
  grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)) !important;
  gap: 12px !important;
  margin-bottom: 16px !important;
}
.spend-metric-card {
  background: #fff !important;
  border: 1px solid var(--c-line) !important;
  border-radius: 12px !important;
  padding: 14px 16px !important;
  box-shadow: 0 2px 8px rgba(0,0,0,.03) !important;
}
.spend-metric-card span {
  display: block !important;
  font-size: 11px !important;
  font-weight: 600 !important;
  color: var(--c-mute) !important;
  margin-bottom: 4px !important;
  letter-spacing: .05em !important;
}
.spend-metric-card b {
  display: block !important;
  font-size: 18px !important;
  font-weight: 700 !important;
  color: var(--c-ink) !important;
}
.spend-metric-total {
  background: #f0fdf4 !important;
  border-color: #bbf7d0 !important;
}
.spend-metric-total b {
  color: #15803d !important;
}

/* History Toolbar Actions */
.history-toolbar-actions {
  display: flex !important;
  align-items: center !important;
  gap: 8px !important;
  flex-wrap: wrap !important;
}
.history-toolbar-actions select {
  padding: 8px 12px !important;
  font-size: 13px !important;
  border-radius: 10px !important;
}

/* Account & Security Card */
.security-status-card {
  padding: 22px !important;
  border-radius: 16px !important;
  margin-bottom: 18px !important;
}
.security-card-head {
  display: flex !important;
  align-items: center !important;
  gap: 14px !important;
  margin-bottom: 16px !important;
}
.security-card-head h3 {
  margin: 0 !important;
  font-size: 18px !important;
}
.security-badges-grid {
  display: grid !important;
  grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)) !important;
  gap: 14px !important;
}
.sec-item {
  background: var(--c-soft) !important;
  border: 1px solid var(--c-line) !important;
  border-radius: 12px !important;
  padding: 14px 16px !important;
}
.sec-tag {
  display: inline-block !important;
  padding: 2px 7px !important;
  border-radius: 999px !important;
  font-size: 10px !important;
  font-weight: 700 !important;
  margin-bottom: 8px !important;
}
.sec-tag.ok {
  background: #dcfce7 !important;
  color: #15803d !important;
}
.sec-item b {
  display: block !important;
  font-size: 14px !important;
  margin-bottom: 4px !important;
}
.sec-item p {
  margin: 0 !important;
  font-size: 12px !important;
  line-height: 1.45 !important;
}

/* Owner Profile Summary Display */
.owner-profile-summary {
  margin-bottom: 4px;
}
.profile-summary-grid {
  display: grid !important;
  grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  gap: 12px !important;
  background: var(--c-soft) !important;
  border: 1px solid var(--c-line) !important;
  border-radius: 12px !important;
  padding: 14px 16px !important;
}
.profile-summary-item {
  display: flex !important;
  flex-direction: column !important;
  gap: 3px !important;
  min-width: 0 !important;
}
.profile-summary-item.full {
  grid-column: 1 / -1 !important;
}
.profile-summary-label {
  font-size: 11px !important;
  font-weight: 600 !important;
  letter-spacing: 0.04em !important;
  color: var(--c-mute) !important;
  text-transform: uppercase !important;
}
.profile-summary-val {
  font-size: 14px !important;
  font-weight: 600 !important;
  color: var(--c-ink) !important;
  overflow-wrap: anywhere !important;
}
@media (max-width: 600px) {
  .profile-summary-grid {
    grid-template-columns: 1fr !important;
    gap: 10px !important;
    padding: 12px !important;
  }
}

/* Mobile Bottom Navigation (Strictly < 768px and when authenticated) */
@media(max-width: 768px){
  #app:not(.hidden) ~ .mobile-nav,
  body:not(.td-auth-open) .mobile-nav:not(.auth-hidden) {
    display: grid !important;
    grid-template-columns: repeat(5, 1fr) !important;
    position: fixed !important;
    left: 10px !important;
    right: 10px !important;
    bottom: calc(8px + env(safe-area-inset-bottom)) !important;
    height: 64px !important;
    background: rgba(15, 23, 42, 0.96) !important;
    backdrop-filter: blur(20px) !important;
    -webkit-backdrop-filter: blur(20px) !important;
    border: 1px solid rgba(255, 255, 255, 0.14) !important;
    border-radius: 20px !important;
    box-shadow: 0 14px 38px rgba(0, 0, 0, 0.35) !important;
    z-index: 10000 !important;
    padding: 4px !important;
    align-items: center !important;
  }
  .mobile-nav button {
    display: flex !important;
    flex-direction: column !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 3px !important;
    background: transparent !important;
    color: #475569 !important;
    border-radius: 14px !important;
    height: 54px !important;
    padding: 0 !important;
    font-size: 10px !important;
    font-weight: 500 !important;
    border: none !important;
  }
  .mobile-nav button svg.mobile-nav-icon {
    width: 20px !important;
    height: 20px !important;
    stroke: currentColor !important;
    flex: 0 0 20px !important;
  }
  .mobile-nav button.active {
    background: var(--c-accent) !important;
    color: #fff !important;
  }
  body.menu-open .mobile-nav,
  body.menu-open #dashboardFab,
  body.td-auth-open .mobile-nav,
  #app.hidden ~ .mobile-nav,
  .mobile-nav.auth-hidden {
    display: none !important;
    visibility: hidden !important;
    pointer-events: none !important;
  }
}

/* ===== Super Admin Console ===== */
.admin-view-shell {
  display: flex;
  flex-direction: column;
  gap: 18px;
}
.admin-toolbar {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  flex-wrap: wrap;
  gap: 12px;
}
.admin-header-badge {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  background: rgba(37, 99, 235, 0.1);
  color: #2563eb;
  border: 1px solid rgba(37, 99, 235, 0.25);
  padding: 4px 10px;
  border-radius: 999px;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}
.admin-stats-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
  gap: 14px;
}
.admin-stat-card {
  background: var(--c-soft, #f8fafc);
  border: 1px solid var(--c-line, #e2e8f0);
  border-radius: 14px;
  padding: 16px;
  display: flex;
  flex-direction: column;
  gap: 6px;
}
.admin-stat-card .admin-stat-val {
  font-size: 28px;
  font-weight: 800;
  color: var(--c-ink, #0f172a);
  line-height: 1.1;
}
.admin-stat-card .admin-stat-label {
  font-size: 11.5px;
  font-weight: 600;
  color: var(--c-mute, #334155);
  text-transform: uppercase;
  letter-spacing: 0.04em;
}
.admin-controls-card {
  background: #fff;
  border: 1px solid var(--c-line, #e2e8f0);
  border-radius: 16px;
  padding: 16px;
  display: flex;
  flex-direction: column;
  gap: 14px;
}
.admin-controls-row {
  display: flex;
  justify-content: space-between;
  align-items: center;
  flex-wrap: wrap;
  gap: 12px;
}
.admin-filter-group {
  display: flex;
  align-items: center;
  gap: 8px;
  flex-wrap: wrap;
}
.admin-filter-btn {
  padding: 6px 14px;
  border-radius: 8px;
  border: 1px solid var(--c-line, #e2e8f0);
  background: #fff;
  color: var(--c-ink, #0f172a);
  font-size: 12.5px;
  font-weight: 600;
  cursor: pointer;
  transition: all 0.15s ease;
}
.admin-filter-btn:hover {
  background: var(--c-soft, #f8fafc);
}
.admin-filter-btn.active {
  background: var(--c-accent, #2563eb);
  color: #fff;
  border-color: var(--c-accent, #2563eb);
}
.admin-search-input {
  max-width: 260px;
  min-width: 180px;
  height: 36px;
  padding: 0 12px;
  font-size: 13px;
  border: 1px solid var(--c-line, #e2e8f0);
  border-radius: 8px;
  background: #fff;
}
.admin-table-wrap {
  overflow-x: auto;
  border: 1px solid var(--c-line, #e2e8f0);
  border-radius: 12px;
  background: #fff;
}
.admin-tickets-table {
  width: 100%;
  border-collapse: collapse;
  font-size: 13px;
  text-align: left;
}
.admin-tickets-table th {
  background: var(--c-soft, #f8fafc);
  padding: 12px 14px;
  font-weight: 700;
  color: var(--c-mute, #334155);
  border-bottom: 1px solid var(--c-line, #e2e8f0);
  font-size: 11.5px;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  white-space: nowrap;
}
.admin-tickets-table td {
  padding: 12px 14px;
  border-bottom: 1px solid var(--c-line, #e2e8f0);
  vertical-align: middle;
}
.admin-tickets-table tr:hover td {
  background: #f8fafc;
}
.admin-badge {
  display: inline-block;
  padding: 2px 8px;
  border-radius: 6px;
  font-size: 11px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.03em;
  white-space: nowrap;
}
.admin-badge.status-open {
  background: #dbeafe;
  color: #1e40af;
}
.admin-badge.status-in-progress {
  background: #fef3c7;
  color: #92400e;
}
.admin-badge.status-resolved {
  background: #dcfce7;
  color: #166534;
}
.admin-badge.status-closed {
  background: #f1f5f9;
  color: #475569;
}
.admin-badge.prio-urgent {
  background: #fee2e2;
  color: #b91c1c;
  border: 1px solid #fca5a5;
}
.admin-badge.prio-normal {
  background: #f1f5f9;
  color: #475569;
}
.admin-state-card {
  padding: 42px 20px;
  text-align: center;
  background: #fff;
  border: 1px solid var(--c-line, #e2e8f0);
  border-radius: 16px;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 12px;
}
.admin-state-card .admin-state-icon {
  font-size: 36px;
  line-height: 1;
}
.admin-state-card h3 {
  margin: 0;
  font-size: 17px;
  font-weight: 700;
  color: var(--c-ink, #0f172a);
}
.admin-state-card p {
  margin: 0;
  font-size: 13.5px;
  color: var(--c-mute, #334155);
  max-width: 480px;
}
.admin-ticket-detail-modal {
  position: fixed;
  inset: 0;
  background: rgba(15, 23, 42, 0.65);
  backdrop-filter: blur(4px);
  z-index: 99999;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 16px;
}
.admin-ticket-detail-box {
  background: #fff;
  border-radius: 20px;
  width: 100%;
  max-width: 640px;
  max-height: 90vh;
  overflow-y: auto;
  box-shadow: 0 20px 45px rgba(0, 0, 0, 0.25);
  padding: 24px;
  display: flex;
  flex-direction: column;
  gap: 16px;
}



/* ===== Super Admin Dedicated Workspace & Isolated Shell ===== */

body.td-admin-mode .top,
body.td-admin-mode .layout > aside,
body.td-admin-mode #sideMenu,
body.td-admin-mode #mobileNav,
body.td-admin-mode .md-site-footer {
  display: none !important;
  visibility: hidden !important;
  pointer-events: none !important;
}

body.td-admin-mode .layout {
  display: block !important;
  width: 100% !important;
  min-height: 100vh !important;
}

body.td-admin-mode .layout > .main {
  width: 100% !important;
  max-width: 100% !important;
  margin: 0 !important;
  padding: 0 !important;
}

body.td-admin-mode #admin.view.active {
  display: block !important;
  min-height: 100vh !important;
  width: 100% !important;
  background: #fafaf9;
}

/* Dedicated Admin Shell Wrapper */
.admin-workspace-shell {
  display: flex;
  flex-direction: column;
  min-height: 100vh;
  width: 100%;
  background: #fafaf9;
  color: var(--c-ink, #0f172a);
}

/* Dedicated Admin Top Bar */
.admin-topbar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  height: 68px;
  min-height: 68px;
  padding: 0 clamp(16px, 2.5vw, 32px);
  background: #ffffff;
  border-bottom: 1px solid var(--c-line, #e2e8f0);
  position: sticky;
  top: 0;
  z-index: 9000;
  gap: 16px;
}

.admin-topbar-brand {
  display: flex;
  align-items: center;
  gap: 12px;
  text-decoration: none;
  color: inherit;
  cursor: pointer;
}

.admin-topbar-brand-mark {
  width: 32px;
  height: 32px;
  display: grid;
  place-items: center;
  background: #2563eb;
  color: #fff;
  border-radius: 9px;
  font-weight: 800;
  font-size: 14px;
}

.admin-brand-titles {
  display: flex;
  flex-direction: column;
  line-height: 1.2;
}

.admin-brand-title {
  font-size: 15px;
  font-weight: 700;
  color: #0f172a;
  letter-spacing: -0.01em;
}

.admin-brand-badge {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  font-size: 10px;
  font-weight: 700;
  color: #2563eb;
  text-transform: uppercase;
  letter-spacing: 0.05em;
}

.admin-topbar-center {
  flex: 1;
  max-width: 480px;
  display: flex;
  align-items: center;
}

.admin-global-search-wrap {
  display: flex;
  align-items: center;
  width: 100%;
  background: #f8fafc;
  border: 1px solid var(--c-line, #e2e8f0);
  border-radius: 10px;
  padding: 0 12px;
  height: 38px;
  gap: 8px;
  transition: all 0.2s ease;
}

.admin-global-search-wrap:focus-within {
  border-color: #2563eb;
  background: #fff;
  box-shadow: 0 0 0 3px rgba(37,99,235,0.12);
}

.admin-global-search-wrap input {
  border: 0;
  background: transparent;
  outline: none;
  font-size: 13px;
  width: 100%;
  color: #0f172a;
}

.admin-topbar-actions {
  display: flex;
  align-items: center;
  gap: 12px;
}

.admin-security-pill {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-size: 11.5px;
  font-weight: 600;
  color: #166534;
  background: #f0fdf4;
  border: 1px solid #bbf7d0;
  padding: 4px 10px;
  border-radius: 999px;
  white-space: nowrap;
}

.admin-profile-pill {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 4px 12px;
  background: #f8fafc;
  border: 1px solid var(--c-line, #e2e8f0);
  border-radius: 999px;
  font-size: 12.5px;
  font-weight: 600;
  color: #0f172a;
}

.admin-profile-avatar {
  width: 22px;
  height: 22px;
  background: #2563eb;
  color: #fff;
  border-radius: 50%;
  display: grid;
  place-items: center;
  font-size: 11px;
  font-weight: 700;
}

.admin-signout-btn {
  padding: 6px 14px;
  border-radius: 8px;
  font-size: 12.5px;
  font-weight: 600;
  color: #b91c1c;
  background: #fef2f2;
  border: 1px solid #fecaca;
  cursor: pointer;
  transition: all 0.15s ease;
}

.admin-signout-btn:hover {
  background: #fee2e2;
}

/* Dedicated Admin Layout & Sidebar */
.admin-layout-body {
  display: flex;
  flex: 1 1 auto;
  width: 100%;
  min-height: calc(100vh - 68px);
}

.admin-sidebar-shell {
  width: 250px;
  flex: 0 0 250px;
  background: #ffffff;
  border-right: 1px solid var(--c-line, #e2e8f0);
  position: sticky;
  top: 68px;
  height: calc(100vh - 68px);
  overflow-y: auto;
  padding: 16px 10px;
  display: flex;
  flex-direction: column;
  gap: 2px;
}

.admin-sidebar-kicker {
  font-size: 10.5px;
  font-weight: 700;
  color: #334155;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  padding: 10px 12px 4px;
  margin-top: 6px;
}

.admin-sidebar-kicker:first-child {
  margin-top: 0;
}

.admin-sidebar-item {
  display: flex;
  align-items: center;
  justify-content: space-between;
  width: 100%;
  padding: 9px 12px;
  border-radius: 10px;
  border: 0;
  background: transparent;
  color: #475569;
  font-size: 13px;
  font-weight: 600;
  text-align: left;
  cursor: pointer;
  transition: all 0.15s ease;
  text-decoration: none;
}

.admin-sidebar-item:hover {
  background: #f1f5f9;
  color: #0f172a;
}

.admin-sidebar-item.active {
  background: #eff6ff;
  color: #2563eb;
  font-weight: 700;
}

.admin-sidebar-item-content {
  display: flex;
  align-items: center;
  gap: 10px;
}

.admin-sidebar-item svg {
  width: 16px;
  height: 16px;
  flex: 0 0 16px;
}

.admin-sidebar-badge {
  font-size: 10.5px;
  font-weight: 700;
  padding: 1px 7px;
  border-radius: 999px;
  background: #e2e8f0;
  color: #334155;
}

.admin-sidebar-badge.open-badge {
  background: #dbeafe;
  color: #1d4ed8;
}

/* Dedicated Admin Main Content Container */
.admin-main-container {
  flex: 1 1 auto;
  min-width: 0;
  background: #fafaf9;
  padding: clamp(20px, 3vw, 36px);
}

.admin-screen-shell {
  display: flex;
  flex-direction: column;
  gap: 22px;
  max-width: 1480px;
  margin: 0 auto;
}

.admin-screen-header {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  flex-wrap: wrap;
  gap: 14px;
}

.admin-screen-header h2 {
  margin: 0 0 4px;
  font-size: 24px;
  font-weight: 700;
  color: #0f172a;
  letter-spacing: -0.02em;
}

.admin-screen-header p {
  margin: 0;
  font-size: 13.5px;
  color: #334155;
}

/* Admin KPI Grid & Cards */
.admin-kpi-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 14px;
}

.admin-kpi-card {
  background: #ffffff;
  border: 1px solid var(--c-line, #e2e8f0);
  border-radius: 14px;
  padding: 18px;
  display: flex;
  flex-direction: column;
  gap: 8px;
  box-shadow: 0 1px 4px rgba(0,0,0,0.02);
}

.admin-kpi-card .kpi-label {
  font-size: 11.5px;
  font-weight: 700;
  color: #334155;
  text-transform: uppercase;
  letter-spacing: 0.04em;
}

.admin-kpi-card .kpi-val {
  font-size: 30px;
  font-weight: 800;
  line-height: 1.1;
  color: #0f172a;
}

.admin-kpi-card .kpi-sub {
  font-size: 12px;
  color: #334155;
}

/* Cards & Content Surfaces */
.admin-card {
  background: #ffffff;
  border: 1px solid var(--c-line, #e2e8f0);
  border-radius: 16px;
  padding: 20px;
  box-shadow: 0 1px 4px rgba(0,0,0,0.02);
  display: flex;
  flex-direction: column;
  gap: 16px;
}

.admin-card-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  flex-wrap: wrap;
  gap: 12px;
  padding-bottom: 12px;
  border-bottom: 1px solid var(--c-line, #e2e8f0);
}

.admin-card-header h3 {
  margin: 0;
  font-size: 16px;
  font-weight: 700;
  color: #0f172a;
}

.admin-card-header p {
  margin: 2px 0 0;
  font-size: 12.5px;
  color: #334155;
}

/* Control Bars & Filter Bars */
.admin-controls-bar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 12px;
  background: #ffffff;
  border: 1px solid var(--c-line, #e2e8f0);
  border-radius: 12px;
  padding: 12px 16px;
}

.admin-filter-tabs {
  display: flex;
  align-items: center;
  gap: 6px;
  flex-wrap: wrap;
}

.admin-filter-pill {
  padding: 6px 12px;
  border-radius: 8px;
  border: 1px solid var(--c-line, #e2e8f0);
  background: #ffffff;
  color: #334155;
  font-size: 12.5px;
  font-weight: 600;
  cursor: pointer;
  transition: all 0.15s;
}

.admin-filter-pill:hover {
  background: #f8fafc;
}

.admin-filter-pill.active {
  background: #2563eb;
  color: #ffffff;
  border-color: #2563eb;
}

.admin-filter-select {
  height: 36px;
  padding: 0 10px;
  border-radius: 8px;
  border: 1px solid var(--c-line, #e2e8f0);
  font-size: 12.5px;
  background: #fff;
  color: #0f172a;
}

/* Data Tables */
.admin-table-container {
  overflow-x: auto;
  border: 1px solid var(--c-line, #e2e8f0);
  border-radius: 12px;
  background: #ffffff;
}

.admin-data-table {
  width: 100%;
  border-collapse: collapse;
  font-size: 13px;
  text-align: left;
}

.admin-data-table th {
  background: #f8fafc;
  padding: 12px 14px;
  font-weight: 700;
  color: #334155;
  border-bottom: 1px solid var(--c-line, #e2e8f0);
  font-size: 11px;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  white-space: nowrap;
}

.admin-data-table td {
  padding: 12px 14px;
  border-bottom: 1px solid var(--c-line, #e2e8f0);
  vertical-align: middle;
  color: #0f172a;
}

.admin-data-table tr:hover td {
  background: #f8fafc;
}

/* Badges */
.admin-badge {
  display: inline-block;
  padding: 3px 8px;
  border-radius: 6px;
  font-size: 11px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.03em;
  white-space: nowrap;
}

.admin-badge.status-open { background: #dbeafe; color: #1e40af; }
.admin-badge.status-in-progress { background: #fef3c7; color: #92400e; }
.admin-badge.status-resolved { background: #dcfce7; color: #166534; }
.admin-badge.status-closed { background: #f1f5f9; color: #475569; }
.admin-badge.status-active { background: #dcfce7; color: #166534; }
.admin-badge.status-trial { background: #e0e7ff; color: #3730a3; }
.admin-badge.status-grace { background: #ffedd5; color: #c2410c; }
.admin-badge.status-suspended { background: #fee2e2; color: #991b1b; }
.admin-badge.prio-urgent { background: #fee2e2; color: #b91c1c; border: 1px solid #fca5a5; }
.admin-badge.prio-high { background: #ffedd5; color: #c2410c; border: 1px solid #fed7aa; }
.admin-badge.prio-normal { background: #f1f5f9; color: #475569; }
.admin-badge.prio-low { background: #f8fafc; color: #334155; }
.admin-badge.plan-free { background: #f1f5f9; color: #475569; }
.admin-badge.plan-plus { background: #dbeafe; color: #1e40af; border: 1px solid #bfdbfe; }
.admin-badge.plan-ultra { background: #fef3c7; color: #92400e; border: 1px solid #fde68a; }

/* Diagnostic Error Card */
.admin-diag-card {
  padding: 36px 20px;
  text-align: center;
  background: #ffffff;
  border: 1px solid #fca5a5;
  border-radius: 16px;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 14px;
}

.admin-diag-icon {
  font-size: 38px;
  line-height: 1;
}

.admin-diag-card h3 {
  margin: 0;
  font-size: 18px;
  font-weight: 700;
  color: #0f172a;
}

.admin-diag-card p {
  margin: 0;
  font-size: 13.5px;
  color: #334155;
  max-width: 520px;
  line-height: 1.55;
}

.admin-diag-meta {
  font-size: 12px;
  font-family: var(--font-digital);
  color: #dc2626;
  background: #fef2f2;
  border: 1px solid #fee2e2;
  padding: 6px 14px;
  border-radius: 8px;
}

/* Modals */
.admin-modal-overlay {
  position: fixed;
  inset: 0;
  background: rgba(15, 23, 42, 0.65);
  backdrop-filter: blur(4px);
  z-index: 99999;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 16px;
}

.admin-modal-box {
  background: #ffffff;
  border-radius: 18px;
  width: 100%;
  max-width: 640px;
  max-height: 90vh;
  overflow-y: auto;
  box-shadow: 0 20px 45px rgba(0, 0, 0, 0.25);
  padding: 24px;
  display: flex;
  flex-direction: column;
  gap: 16px;
}

.admin-modal-head {
  display: flex;
  justify-content: space-between;
  align-items: center;
  border-bottom: 1px solid var(--c-line, #e2e8f0);
  padding-bottom: 12px;
}

.admin-modal-head h3 {
  margin: 0;
  font-size: 17px;
  font-weight: 700;
}

/* Mobile Bottom Navigation (Exactly 5 Tabs) */
.admin-mobile-nav {
  display: none;
}

.admin-more-sheet {
  display: none;
}

/* Responsive Rules for Mobile (<= 768px & 360px viewport) */
@media (max-width: 768px) {
  .admin-sidebar-shell {
    display: none !important;
  }

  .admin-topbar-center,
  .admin-security-pill {
    display: none !important;
  }

  .admin-topbar {
    height: 58px;
    min-height: 58px;
    padding: 0 14px;
  }

  .admin-brand-title {
    font-size: 14px;
  }

  .admin-main-container {
    padding: 14px 12px 84px !important;
  }

  .admin-kpi-grid {
    grid-template-columns: repeat(2, 1fr) !important;
    gap: 10px !important;
  }

  .admin-kpi-card {
    padding: 14px;
  }

  .admin-kpi-card .kpi-val {
    font-size: 24px;
  }

  .admin-mobile-nav {
    display: flex !important;
    position: fixed;
    bottom: 0;
    left: 0;
    right: 0;
    height: 60px;
    background: #ffffff;
    border-top: 1px solid var(--c-line, #e2e8f0);
    z-index: 9500;
    align-items: center;
    justify-content: space-around;
    padding-bottom: env(safe-area-inset-bottom);
    box-shadow: 0 -2px 10px rgba(0,0,0,0.04);
  }

  .admin-mobile-tab {
    flex: 1;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    height: 100%;
    border: 0;
    background: transparent;
    color: #334155;
    font-size: 10.5px;
    font-weight: 600;
    gap: 3px;
    cursor: pointer;
    position: relative;
    padding: 4px 0;
  }

  .admin-mobile-tab.active {
    color: #2563eb;
    font-weight: 700;
  }

  .admin-mobile-tab svg {
    width: 20px;
    height: 20px;
  }

  .admin-mobile-tab .tab-badge {
    position: absolute;
    top: 6px;
    right: calc(50% - 16px);
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background: #2563eb;
    border: 2px solid #fff;
  }

  .admin-more-sheet {
    display: flex;
    position: fixed;
    inset: 0;
    z-index: 99999;
    background: rgba(15, 23, 42, 0.6);
    backdrop-filter: blur(4px);
    flex-direction: column;
    justify-content: flex-end;
  }

  .admin-more-sheet[hidden] {
    display: none !important;
  }

  .admin-more-panel {
    background: #ffffff;
    border-radius: 24px 24px 0 0;
    padding: 20px 16px calc(24px + env(safe-area-inset-bottom));
    max-height: 85vh;
    overflow-y: auto;
    box-shadow: 0 -10px 40px rgba(0,0,0,0.2);
  }

  .admin-more-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 10px;
    margin-top: 16px;
  }

  .admin-more-btn {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 8px;
    padding: 14px 6px;
    background: #f8fafc;
    border: 1px solid var(--c-line, #e2e8f0);
    border-radius: 12px;
    color: #0f172a;
    font-size: 11.5px;
    font-weight: 600;
    text-align: center;
    border: 0;
    cursor: pointer;
  }

  .admin-more-btn svg {
    width: 20px;
    height: 20px;
    color: #2563eb;
  }

  .admin-modal-box {
    max-width: 100% !important;
    height: 100% !important;
    max-height: 100% !important;
    border-radius: 0 !important;
    padding: 16px !important;
  }
}

/* ==========================================================================
   TORQ DESK — GARAGE WORKSPACE & ONBOARDING REDESIGN (garage-*)
   Cache-bust: ?v=2026.10.18-v15-garage-redesign
   Style: Minimal white, single-font (Inter), clean borders, zero horizontal scroll.
   ========================================================================== */

/* Signup Wizard */
.garage-wizard-container {
  max-width: 820px;
  margin: 0 auto;
  padding: 32px 20px 64px;
  box-sizing: border-box;
}

.garage-wizard-card {
  background: #ffffff;
  border: 1px solid #e2e8f0;
  border-radius: 16px;
  padding: 32px;
  box-shadow: 0 4px 20px rgba(15, 23, 42, 0.04);
  box-sizing: border-box;
}

.garage-step-indicator {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  margin-bottom: 28px;
  padding-bottom: 20px;
  border-bottom: 1px solid #f1f5f9;
  flex-wrap: wrap;
}

.garage-step-pill {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-size: 13px;
  font-weight: 600;
  color: #475569;
  padding: 6px 12px;
  border-radius: 999px;
  background: #f8fafc;
  border: 1px solid #e2e8f0;
  transition: all 0.2s ease;
}

.garage-step-pill.garage-step-active {
  background: #0f172a;
  color: #ffffff;
  border-color: #0f172a;
}

.garage-step-pill.garage-step-done {
  background: #f0fdf4;
  color: #166534;
  border-color: #bbf7d0;
}

.garage-step-num {
  width: 20px;
  height: 20px;
  border-radius: 50%;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 11px;
  font-weight: 700;
}

.garage-step-active .garage-step-num {
  background: #ffffff;
  color: #0f172a;
}

.garage-step-done .garage-step-num {
  background: #166534;
  color: #ffffff;
}

.garage-form-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 16px;
  margin: 20px 0;
  box-sizing: border-box;
}

.garage-form-grid .garage-full-col {
  grid-column: 1 / -1;
}

.garage-field-label {
  display: block;
  font-size: 12.5px;
  font-weight: 650;
  color: #334155;
  margin-bottom: 6px;
}

.garage-input,
.garage-select,
.garage-textarea {
  width: 100%;
  box-sizing: border-box;
  min-height: 44px;
  padding: 10px 14px;
  font-size: 14px;
  font-family: inherit;
  color: #0f172a;
  background: #ffffff;
  border: 1px solid #cbd5e1;
  border-radius: 10px;
  outline: none;
  transition: border-color 0.15s ease, box-shadow 0.15s ease;
}

.garage-input:focus,
.garage-select:focus,
.garage-textarea:focus {
  border-color: #2563eb;
  box-shadow: 0 0 0 3px rgba(37, 99, 235, 0.1);
}

.garage-wizard-nav {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 12px;
  margin-top: 28px;
  padding-top: 20px;
  border-top: 1px solid #f1f5f9;
}

/* Notice / Error banners */
.garage-error-banner {
  background: #fef2f2;
  border: 1px solid #fecaca;
  color: #991b1b;
  padding: 12px 16px;
  border-radius: 10px;
  font-size: 13.5px;
  line-height: 1.5;
  margin-bottom: 18px;
}

.garage-status-banner {
  background: #eff6ff;
  border: 1px solid #bfdbfe;
  color: #1e40af;
  padding: 12px 16px;
  border-radius: 10px;
  font-size: 13.5px;
  line-height: 1.5;
  margin-bottom: 18px;
}

.garage-blocked-badge {
  display: inline-block;
  background: #fef3c7;
  color: #92400e;
  border: 1px solid #fde68a;
  padding: 2px 8px;
  border-radius: 6px;
  font-size: 11px;
  font-weight: 700;
  text-transform: uppercase;
  margin-bottom: 6px;
}

.garage-pending-tag {
  display: inline-block;
  background: #f1f5f9;
  color: #475569;
  border: 1px solid #cbd5e1;
  padding: 1px 6px;
  border-radius: 4px;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.03em;
}

/* Plans Grid & Cards */
.garage-plans-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 18px;
  margin: 20px 0;
  box-sizing: border-box;
}

.garage-plan-card {
  background: #ffffff;
  border: 1px solid #e2e8f0;
  border-radius: 14px;
  padding: 24px 20px;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  position: relative;
  box-sizing: border-box;
  transition: border-color 0.2s, box-shadow 0.2s;
}

.garage-plan-card.garage-plan-current {
  border: 2px solid #0f172a;
  background: #fafafa;
}

.garage-plan-current-tag {
  display: inline-flex;
  align-items: center;
  background: #0f172a;
  color: #ffffff;
  padding: 4px 10px;
  border-radius: 6px;
  font-size: 11px;
  font-weight: 800;
  letter-spacing: 0.05em;
  text-transform: uppercase;
  margin-bottom: 8px;
}

.garage-plan-title {
  font-size: 20px;
  font-weight: 700;
  color: #0f172a;
  margin: 0 0 4px;
}

.garage-plan-price {
  font-size: 24px;
  font-weight: 800;
  color: #0f172a;
  margin: 8px 0 2px;
}

.garage-plan-period {
  font-size: 12px;
  color: #334155;
  margin-bottom: 12px;
}

.garage-trial-pill {
  display: inline-block;
  background: #ecfdf5;
  color: #047857;
  border: 1px solid #a7f3d0;
  padding: 4px 10px;
  border-radius: 999px;
  font-size: 12px;
  font-weight: 700;
  margin-bottom: 14px;
}

.garage-plan-features {
  list-style: none;
  padding: 0;
  margin: 16px 0;
  font-size: 13px;
  color: #334155;
  display: grid;
  gap: 10px;
  line-height: 1.45;
}

.garage-plan-features li {
  display: flex;
  align-items: flex-start;
  gap: 8px;
}

.garage-plan-features li.garage-feature-dim {
  color: #475569;
}

.garage-plan-footer-note {
  font-size: 12.5px;
  color: #334155;
  text-align: center;
  margin-top: 18px;
  padding: 12px;
  background: #f8fafc;
  border: 1px solid #e2e8f0;
  border-radius: 10px;
}

/* Locked Card for Plans */
.garage-locked-card {
  background: #ffffff;
  border: 1px dashed #cbd5e1;
  border-radius: 14px;
  padding: 28px 22px;
  text-align: center;
  margin: 18px 0;
  box-sizing: border-box;
}

.garage-locked-badge {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  background: #f1f5f9;
  color: #334155;
  border: 1px solid #cbd5e1;
  font-size: 12px;
  font-weight: 750;
  padding: 5px 12px;
  border-radius: 999px;
  margin-bottom: 10px;
}

.garage-locked-card h3 {
  margin: 4px 0 8px;
  font-size: 18px;
  color: #0f172a;
}

.garage-locked-card p {
  color: #334155;
  font-size: 13.5px;
  max-width: 540px;
  margin: 0 auto 16px;
  line-height: 1.5;
}

/* Limit & Expired Banners */
.garage-limit-banner {
  background: #fffbeb;
  border: 1px solid #fde68a;
  color: #92400e;
  padding: 12px 16px;
  border-radius: 10px;
  font-size: 13.5px;
  font-weight: 600;
  margin-bottom: 16px;
  display: flex;
  align-items: center;
  gap: 10px;
}

.garage-expired-banner {
  background: #fef2f2;
  border: 1px solid #f87171;
  color: #991b1b;
  padding: 14px 18px;
  border-radius: 12px;
  font-size: 14px;
  font-weight: 700;
  margin-bottom: 20px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
  flex-wrap: wrap;
}

.garage-disabled-help {
  font-size: 11.5px;
  color: #dc2626;
  margin-top: 4px;
  display: block;
}

/* Invoices & Billing */
.garage-invoice-badge {
  display: inline-block;
  padding: 2px 7px;
  border-radius: 5px;
  font-size: 11px;
  font-weight: 700;
}

.garage-invoice-gst {
  background: #eff6ff;
  color: #1d4ed8;
  border: 1px solid #bfdbfe;
}

.garage-invoice-nongst {
  background: #f8fafc;
  color: #475569;
  border: 1px solid #cbd5e1;
}

.garage-preview-badge {
  display: inline-block;
  background: #fef3c7;
  color: #92400e;
  border: 1px solid #fde68a;
  padding: 2px 6px;
  border-radius: 4px;
  font-size: 10.5px;
  font-weight: 750;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}

.garage-state-bar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 8px 14px;
  background: #f8fafc;
  border: 1px solid #e2e8f0;
  border-radius: 10px;
  font-size: 12px;
  margin-bottom: 16px;
  flex-wrap: wrap;
}

.garage-review-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 14px;
  margin: 16px 0;
  box-sizing: border-box;
}

.garage-review-item {
  background: #f8fafc;
  border: 1px solid #e2e8f0;
  border-radius: 10px;
  padding: 12px 14px;
  box-sizing: border-box;
}

.garage-review-item small {
  display: block;
  font-size: 11px;
  font-weight: 700;
  color: #334155;
  text-transform: uppercase;
  margin-bottom: 4px;
}

.garage-review-item b {
  display: block;
  font-size: 13.5px;
  color: #0f172a;
  word-break: break-word;
}

/* Printable Invoice Modal */
.garage-printable-modal {
  position: fixed;
  inset: 0;
  z-index: 1500;
  background: rgba(15, 23, 42, 0.6);
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 20px;
  box-sizing: border-box;
}

.garage-printable-modal[hidden],
.garage-error-banner[hidden],
.garage-status-banner[hidden],
.garage-limit-banner[hidden],
.garage-expired-banner[hidden],
.garage-step-content[hidden] {
  display: none !important;
}

.gd-modal-card {
  max-height: 90vh;
  overflow-y: auto;
}

.garage-printable-card {
  background: #ffffff;
  border-radius: 16px;
  max-width: 680px;
  width: 100%;
  max-height: 90vh;
  overflow-y: auto;
  padding: 32px;
  box-shadow: 0 20px 40px rgba(0,0,0,0.2);
  box-sizing: border-box;
}

/* Responsive Overrides (1280px & 360px without horizontal scroll) */
@media (max-width: 900px) {
  .garage-plans-grid {
    grid-template-columns: 1fr;
  }
  .garage-form-grid,
  .garage-review-grid {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 600px) {
  .garage-wizard-card {
    padding: 20px 14px;
  }
  .garage-step-indicator {
    gap: 6px;
  }
  .garage-step-pill {
    font-size: 11.5px;
    padding: 5px 9px;
  }
  .garage-wizard-nav {
    flex-direction: column;
    gap: 8px;
  }
  .garage-wizard-nav button {
    width: 100%;
  }
  .garage-printable-card {
    padding: 18px 14px;
  }
}

/* ==========================================================================
   TORQ DESK — SUPPORT TICKET WORKFLOW (ticket-*)
   ========================================================================== */


/* ===== Support Ticket Workflow Styles (ticket-*) ===== */

.ticket-unread-badge {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 18px;
  height: 18px;
  padding: 0 5px;
  border-radius: 999px;
  background: #dc2626;
  color: #ffffff;
  font-size: 11px;
  font-weight: 700;
  line-height: 1;
  margin-left: 6px;
  vertical-align: middle;
}

.ticket-unread-pill {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 4px 10px;
  background: #eff6ff;
  border: 1px solid #bfdbfe;
  color: #1d4ed8;
  font-size: 12px;
  font-weight: 600;
  border-radius: 6px;
  margin-top: 6px;
}

.ticket-sla-badge {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  padding: 3px 8px;
  border-radius: 6px;
  background: #fef2f2;
  border: 1px solid #fecaca;
  color: #b91c1c;
  font-size: 11px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  white-space: nowrap;
}

.ticket-status-badge {
  display: inline-flex;
  align-items: center;
  padding: 3px 8px;
  border-radius: 6px;
  font-size: 11.5px;
  font-weight: 700;
  white-space: nowrap;
}

.ticket-status-badge.status-pending { background: #fef3c7; color: #92400e; border: 1px solid #fde68a; }
.ticket-status-badge.status-assigned { background: #e0e7ff; color: #3730a3; border: 1px solid #c7d2fe; }
.ticket-status-badge.status-working { background: #dbeafe; color: #1e40af; border: 1px solid #bfdbfe; }
.ticket-status-badge.status-need-info { background: #ffedd5; color: #c2410c; border: 1px solid #fed7aa; }
.ticket-status-badge.status-solved { background: #dcfce7; color: #166534; border: 1px solid #bbf7d0; }
.ticket-status-badge.status-closed { background: #f1f5f9; color: #475569; border: 1px solid #e2e8f0; }

.ticket-priority-badge {
  display: inline-flex;
  align-items: center;
  padding: 2px 7px;
  border-radius: 5px;
  font-size: 11px;
  font-weight: 700;
  text-transform: uppercase;
}

.ticket-priority-badge.priority-urgent { background: #fee2e2; color: #b91c1c; border: 1px solid #fca5a5; }
.ticket-priority-badge.priority-high { background: #ffedd5; color: #c2410c; border: 1px solid #fed7aa; }
.ticket-priority-badge.priority-normal { background: #f1f5f9; color: #334155; }
.ticket-priority-badge.priority-low { background: #f8fafc; color: #334155; }

.ticket-stepper-container {
  margin: 16px 0;
  padding: 16px;
  background: #ffffff;
  border: 1px solid #e2e8f0;
  border-radius: 12px;
}

.ticket-stepper {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  position: relative;
  width: 100%;
}

.ticket-step-item {
  display: flex;
  flex-direction: column;
  align-items: center;
  position: relative;
  z-index: 2;
  flex: 1;
  text-align: center;
}

.ticket-step-circle {
  width: 28px;
  height: 28px;
  border-radius: 50%;
  background: #f1f5f9;
  border: 2px solid #cbd5e1;
  color: #334155;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 12px;
  font-weight: 700;
  margin-bottom: 6px;
  transition: all 0.2s;
}

.ticket-step-item.ticket-step-completed .ticket-step-circle {
  background: #16a34a;
  border-color: #16a34a;
  color: #ffffff;
}

.ticket-step-item.ticket-step-active .ticket-step-circle {
  background: #2563eb;
  border-color: #2563eb;
  color: #ffffff;
  box-shadow: 0 0 0 3px rgba(37,99,235,0.2);
}

.ticket-step-label {
  font-size: 11.5px;
  font-weight: 600;
  color: #334155;
}

.ticket-step-item.ticket-step-active .ticket-step-label {
  color: #0f172a;
  font-weight: 700;
}

.ticket-warning-banner {
  margin: 14px 0;
  padding: 14px 16px;
  background: #fffbeb;
  border: 1px solid #fde68a;
  border-left: 4px solid #f59e0b;
  border-radius: 8px;
  color: #92400e;
}

.ticket-warning-title {
  font-weight: 700;
  font-size: 13.5px;
  margin-bottom: 4px;
}

.ticket-warning-msg {
  font-size: 13px;
  line-height: 1.5;
  white-space: pre-wrap;
  word-break: break-word;
}

.ticket-agent-row {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 13px;
  color: #334155;
  padding: 10px 14px;
  background: #f8fafc;
  border: 1px solid #e2e8f0;
  border-radius: 8px;
  margin: 12px 0;
}

.ticket-thread-container {
  display: flex;
  flex-direction: column;
  gap: 12px;
  margin: 16px 0;
  max-height: 480px;
  overflow-y: auto;
  padding: 8px;
}

.ticket-message-bubble {
  max-width: 85%;
  padding: 12px 14px;
  border-radius: 12px;
  display: flex;
  flex-direction: column;
  gap: 6px;
  box-sizing: border-box;
}

.ticket-message-bubble.ticket-message-user {
  align-self: flex-end;
  background: #eff6ff;
  border: 1px solid #bfdbfe;
  color: #1e3a8a;
}

.ticket-message-bubble.ticket-message-admin {
  align-self: flex-start;
  background: #ffffff;
  border: 1px solid #e2e8f0;
  color: #0f172a;
}

.ticket-message-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 12px;
  font-size: 11px;
}

.ticket-message-sender {
  font-weight: 700;
}

.ticket-message-time {
  color: #334155;
  font-size: 10.5px;
}

.ticket-message-text {
  font-size: 13.5px;
  line-height: 1.55;
  white-space: pre-wrap;
  word-break: break-word;
}

.ticket-reply-box-sticky {
  position: sticky;
  bottom: 0;
  background: #ffffff;
  border-top: 1px solid #e2e8f0;
  padding: 12px;
  padding-bottom: max(12px, env(safe-area-inset-bottom));
  z-index: 10;
  border-radius: 0 0 12px 12px;
}

.ticket-reply-form {
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.ticket-reply-input {
  width: 100%;
  min-height: 70px;
  padding: 10px;
  border-radius: 8px;
  border: 1px solid #cbd5e1;
  font-size: 13.5px;
  font-family: inherit;
  box-sizing: border-box;
  resize: vertical;
}

.ticket-reply-actions {
  display: flex;
  justify-content: flex-end;
}

.ticket-chat-disabled-banner {
  padding: 14px;
  text-align: center;
  background: #f8fafc;
  border: 1px dashed #cbd5e1;
  border-radius: 8px;
  color: #334155;
  font-size: 13px;
  margin-top: 12px;
}

.ticket-back-btn {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 6px 12px;
  font-size: 12.5px;
  font-weight: 600;
  color: #2563eb;
  cursor: pointer;
  margin-bottom: 12px;
  background: transparent;
  border: 0;
}

.ticket-row-accessible {
  display: flex;
  flex-direction: column;
  gap: 8px;
  padding: 14px 16px;
  background: #ffffff;
  border: 1px solid #e2e8f0;
  border-radius: 10px;
  margin-bottom: 10px;
  cursor: pointer;
  transition: all 0.15s ease;
  box-sizing: border-box;
}

.ticket-row-accessible:hover {
  background: #f8fafc;
  border-color: #cbd5e1;
}

.ticket-row-accessible:focus-visible {
  outline: 2px solid #2563eb;
  outline-offset: 2px;
}

.ticket-card-mobile {
  display: none;
}

.ticket-internal-panel {
  background: #fefce8;
  border: 1px solid #fde047;
  border-radius: 10px;
  padding: 14px;
  margin: 14px 0;
}

.ticket-internal-title {
  font-size: 12px;
  font-weight: 700;
  color: #854d0e;
  text-transform: uppercase;
  margin-bottom: 8px;
}

.ticket-internal-note-item {
  padding: 8px 10px;
  background: #ffffff;
  border: 1px solid #fef08a;
  border-radius: 6px;
  font-size: 13px;
  margin-bottom: 6px;
  word-break: break-word;
  white-space: pre-wrap;
}

.ticket-chat-toggle-box {
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 10px;
  padding: 10px 14px;
  background: #f8fafc;
  border: 1px solid #e2e8f0;
  border-radius: 8px;
  margin: 12px 0;
}

.ticket-expiry-countdown {
  font-size: 11.5px;
  font-weight: 600;
  color: #0369a1;
  background: #e0f2fe;
  padding: 2px 8px;
  border-radius: 4px;
}

.ticket-timeline-container {
  display: flex;
  flex-direction: column;
  gap: 8px;
  margin-top: 12px;
  padding-left: 14px;
  border-left: 2px solid #e2e8f0;
}

.ticket-timeline-item {
  position: relative;
  font-size: 12px;
  color: #475569;
}

.ticket-timeline-item::before {
  content: '';
  position: absolute;
  left: -19px;
  top: 4px;
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: #94a3b8;
}

.ticket-timeline-time {
  font-size: 10.5px;
  color: #475569;
  margin-left: 6px;
}

.ticket-contact-action-btn {
  padding: 6px 12px;
  font-size: 12px;
  border-radius: 6px;
  border: 1px solid #cbd5e1;
  background: #f8fafc;
  color: #334155;
  cursor: not-allowed;
  opacity: 0.7;
}

.ticket-contact-masked {
  font-family: monospace;
  letter-spacing: 0.1em;
  color: #334155;
}

.ticket-table-desktop {
  width: 100%;
}

.ticket-filter-bar {
  display: flex;
  align-items: center;
  gap: 8px;
  flex-wrap: wrap;
  margin-bottom: 12px;
}

.ticket-filter-pill {
  padding: 6px 12px;
  border-radius: 8px;
  border: 1px solid var(--c-line, #e2e8f0);
  background: #ffffff;
  color: #334155;
  font-size: 12.5px;
  font-weight: 600;
  cursor: pointer;
  transition: all 0.15s;
}

.ticket-filter-pill:hover {
  background: #f8fafc;
}

.ticket-filter-pill.active {
  background: #2563eb;
  color: #ffffff;
  border-color: #2563eb;
}

.ticket-filter-select {
  height: 36px;
  padding: 0 10px;
  border-radius: 8px;
  border: 1px solid var(--c-line, #e2e8f0);
  font-size: 12.5px;
  background: #fff;
  color: #0f172a;
}

.ticket-subject-cell {
  max-width: 260px;
}

.ticket-subject-title {
  font-weight: 600;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.ticket-subject-desc {
  display: block;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  font-size: 11.5px;
  color: #334155;
}

.ticket-detail-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
  gap: 12px;
  background: #f8fafc;
  padding: 14px;
  border-radius: 12px;
  border: 1px solid #e2e8f0;
  font-size: 13px;
}

.ticket-action-bar {
  display: flex;
  justify-content: space-between;
  align-items: center;
  flex-wrap: wrap;
  gap: 10px;
  border-top: 1px solid var(--c-line, #e2e8f0);
  padding-top: 14px;
}

@media (max-width: 768px) {
  .ticket-table-desktop {
    display: none !important;
  }
  .ticket-card-mobile {
    display: flex !important;
    flex-direction: column;
    gap: 8px;
    padding: 14px;
    background: #ffffff;
    border: 1px solid #e2e8f0;
    border-radius: 12px;
    margin-bottom: 10px;
    box-sizing: border-box;
  }
  .ticket-stepper {
    flex-wrap: wrap;
    gap: 6px;
  }
  .ticket-step-item {
    min-width: 50px;
  }
  .ticket-message-bubble {
    max-width: 95% !important;
  }
}

/* ==========================================================================
   Ticket Workflow v2 Styles (View As User, Roster, Unified Chat)
   ========================================================================== */

.ticket-view-as-user-modal {
  position: fixed;
  inset: 0;
  background: rgba(15, 23, 42, 0.65);
  backdrop-filter: blur(4px);
  -webkit-backdrop-filter: blur(4px);
  display: flex;
  align-items: center;
  justify-content: center;
  z-index: 10000;
  padding: 16px;
  box-sizing: border-box;
}

.ticket-view-as-user-box {
  background: #ffffff;
  border-radius: 14px;
  box-shadow: 0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 10px 10px -5px rgba(0, 0, 0, 0.04);
  width: 100%;
  max-width: 640px;
  max-height: 90vh;
  overflow-y: auto;
  overflow-x: hidden;
  padding: 20px;
  box-sizing: border-box;
  border: 1px solid #e2e8f0;
}

.ticket-view-as-user-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 14px;
  padding-bottom: 12px;
  border-bottom: 1px solid #e2e8f0;
  flex-wrap: wrap;
  gap: 8px;
}

.ticket-readonly-badge {
  display: inline-flex;
  align-items: center;
  padding: 3px 8px;
  border-radius: 9999px;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.04em;
  background: #fef3c7;
  color: #92400e;
  border: 1px solid #fde68a;
}

.ticket-view-as-user-banner {
  background: #fffbeb;
  border: 1px solid #fef3c7;
  border-radius: 8px;
  padding: 10px 12px;
  margin-bottom: 14px;
  font-size: 12.5px;
  color: #78350f;
  word-break: break-word;
}

.ticket-view-as-user-meta {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(130px, 1fr));
  gap: 10px;
  background: #f8fafc;
  padding: 12px;
  border-radius: 8px;
  border: 1px solid #e2e8f0;
  font-size: 12.5px;
  margin-bottom: 14px;
  box-sizing: border-box;
}

.ticket-view-as-user-thread {
  display: flex;
  flex-direction: column;
  gap: 10px;
  max-height: 260px;
  overflow-y: auto;
  overflow-x: hidden;
  padding: 10px;
  background: #f8fafc;
  border: 1px solid #e2e8f0;
  border-radius: 10px;
  box-sizing: border-box;
}

@media (max-width: 480px) {
  .ticket-view-as-user-box {
    padding: 14px;
    max-width: 100%;
    border-radius: 10px;
  }
  .ticket-view-as-user-meta {
    grid-template-columns: 1fr 1fr;
    gap: 8px;
    padding: 10px;
  }
}

/* ===== Phase 1: Admin Shell & Account Security ===== */
.admin-account-shell {
  display: flex;
  flex-direction: column;
  gap: 20px;
}
.admin-account-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(320px, 1fr));
  gap: 16px;
}
.admin-account-card {
  background: var(--c-surface, #ffffff);
  border: 1px solid var(--c-line, #e2e8f0);
  border-radius: 12px;
  padding: 20px;
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.04);
}
.admin-profile-meta {
  display: flex;
  flex-direction: column;
  gap: 12px;
  margin-top: 14px;
}
.admin-profile-meta-row {
  display: flex;
  justify-content: space-between;
  align-items: center;
  font-size: 13px;
  padding-bottom: 8px;
  border-bottom: 1px solid #f1f5f9;
}
.admin-password-meter {
  height: 6px;
  width: 100%;
  background: #e2e8f0;
  border-radius: 3px;
  margin-top: 6px;
  overflow: hidden;
}
.admin-password-meter-fill {
  height: 100%;
  width: 0%;
  transition: width 0.3s ease, background-color 0.3s ease;
}
.admin-password-meter-fill.weak { width: 33%; background-color: #ef4444; }
.admin-password-meter-fill.medium { width: 66%; background-color: #f59e0b; }
.admin-password-meter-fill.strong { width: 100%; background-color: #10b981; }
.admin-password-feedback {
  font-size: 11px;
  font-weight: 600;
  margin-top: 4px;
  color: #334155;
}
.admin-timeout-badge {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  background: #f0fdf4;
  color: #166534;
  font-weight: 600;
  font-size: 12px;
  padding: 4px 10px;
  border-radius: 9999px;
  border: 1px solid #bbf7d0;
}
.admin-blocked-card {
  background: #fff1f2;
  border: 1px solid #fecdd3;
  border-radius: 10px;
  padding: 16px;
  margin: 12px 0;
  color: #9f1239;
}
.admin-blocked-card code {
  background: #ffe4e6;
  padding: 2px 6px;
  border-radius: 4px;
  font-size: 12px;
  font-weight: 700;
}

.admin-phase-card {
  background: #ffffff;
  border: 1px solid #e2e8f0;
  border-left: 4px solid #6366f1;
  border-radius: 12px;
  padding: 24px 20px;
  margin: 12px 0;
}
.admin-empty-state {
  text-align: center;
  padding: 48px 20px;
  background: #f8fafc;
  border: 1px dashed #cbd5e1;
  border-radius: 12px;
  margin: 16px 0;
}
.admin-detail-section {
  display: flex;
  flex-direction: column;
  gap: 12px;
  padding-bottom: 16px;
  border-bottom: 1px solid #f1f5f9;
}
.admin-coupon-badge {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  background: #fdf2f8;
  color: #9d174d;
  font-weight: 700;
  font-size: 11.5px;
  padding: 2px 8px;
  border-radius: 6px;
  border: 1px solid #fbcfe8;
}

/* ===== Phase 3: User Dashboard & Subscription Plans ===== */
.plan-status-card {
  margin-top: 14px;
  background: #ffffff;
  border: 1px solid var(--c-line, #e2e8f0);
  border-radius: 16px;
  padding: 20px;
}
.plan-card-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  flex-wrap: wrap;
  padding-bottom: 14px;
  border-bottom: 1px solid var(--c-line, #f1f5f9);
}
.plan-badge {
  display: inline-flex;
  align-items: center;
  font-size: 12px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  padding: 3px 10px;
  border-radius: 6px;
}
.plan-badge.plan-lite {
  background: #f1f5f9;
  color: #475569;
}
.plan-badge.plan-premium {
  background: #eff6ff;
  color: #1d4ed8;
  border: 1px solid #bfdbfe;
}
.plan-badge.plan-ultra {
  background: #faf5ff;
  color: #7e22ce;
  border: 1px solid #e9d5ff;
}
.plan-metrics-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
  gap: 14px;
  margin: 16px 0;
}
.plan-metric-box {
  background: #f8fafc;
  border: 1px solid #e2e8f0;
  border-radius: 12px;
  padding: 14px;
}
.plan-metric-box b {
  display: block;
  font-size: 16px;
  color: #0f172a;
  margin-top: 4px;
}
.plan-quota-meter {
  height: 6px;
  background: #e2e8f0;
  border-radius: 3px;
  overflow: hidden;
  margin-top: 8px;
}
.plan-quota-fill {
  height: 100%;
  background: #2563eb;
  border-radius: 3px;
  transition: width 0.3s ease;
}
.plan-cycle-toggle {
  display: inline-flex;
  background: #f1f5f9;
  padding: 4px;
  border-radius: 12px;
  gap: 4px;
}
.plan-cycle-btn {
  padding: 8px 16px;
  font-size: 13px;
  font-weight: 600;
  border: 0;
  background: transparent;
  border-radius: 8px;
  cursor: pointer;
  color: #334155;
  display: flex;
  align-items: center;
  gap: 6px;
}
.plan-cycle-btn.active {
  background: #ffffff;
  color: #0f172a;
  box-shadow: 0 1px 3px rgba(0,0,0,0.1);
}
.plan-save-pill {
  background: #dcfce7;
  color: #15803d;
  font-size: 11px;
  padding: 1px 6px;
  border-radius: 4px;
  font-weight: 700;
}
.plan-cards-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(230px, 1fr));
  gap: 16px;
  margin-top: 16px;
}
.plan-tier-card {
  position: relative;
  background: #ffffff;
  border: 1px solid #e2e8f0;
  border-radius: 16px;
  padding: 20px;
  display: flex;
  flex-direction: column;
}
.plan-tier-card.featured {
  border: 2px solid #2563eb;
  box-shadow: 0 4px 20px rgba(37,99,235,0.08);
}
.plan-tier-card.current {
  background: #f8fafc;
}
.plan-ribbon {
  position: absolute;
  top: -10px;
  left: 50%;
  transform: translateX(-50%);
  background: #2563eb;
  color: #ffffff;
  font-size: 10px;
  font-weight: 800;
  letter-spacing: 0.05em;
  padding: 2px 10px;
  border-radius: 10px;
}
.plan-tier-price {
  font-size: 26px;
  font-weight: 800;
  color: #0f172a;
  margin: 8px 0;
}
.plan-tier-price small {
  font-size: 14px;
  color: #334155;
  font-weight: 500;
}
.plan-tier-features {
  list-style: none;
  padding: 0;
  margin: 16px 0;
  font-size: 12.5px;
  line-height: 1.8;
  color: #334155;
  flex-grow: 1;
}
.plan-tier-features li:before {
  content: "✓ ";
  color: #16a34a;
  font-weight: 800;
}
.plan-expired-banner {
  background: #fef2f2;
  border: 1px solid #fecaca;
  border-radius: 12px;
  padding: 12px 16px;
  margin-bottom: 14px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  flex-wrap: wrap;
}
.plan-storage-banner {
  background: #fffbeb;
  border: 1px solid #fef3c7;
  border-radius: 12px;
  padding: 12px 16px;
  margin-bottom: 14px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  flex-wrap: wrap;
}
.plan-limit-badge {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  background: #fee2e2;
  color: #991b1b;
  font-size: 11px;
  font-weight: 700;
  padding: 2px 6px;
  border-radius: 4px;
}

/* Phase 4: Administrative TPIN UI */
.tpin-card {
  background: #ffffff;
  border: 1px solid #e2e8f0;
  border-radius: 12px;
  padding: 16px;
}
.tpin-status-pill {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-size: 12px;
  font-weight: 700;
  padding: 4px 10px;
  border-radius: 999px;
}
.tpin-status-pill.ok {
  background: #dcfce7;
  color: #166534;
}
.tpin-status-pill.warning {
  background: #fef3c7;
  color: #92400e;
}
.tpin-status-pill.danger {
  background: #fee2e2;
  color: #991b1b;
}
.tpin-input-group {
  display: flex;
  align-items: center;
  gap: 8px;
  position: relative;
}
.tpin-digit-box {
  width: 100%;
  font-size: 20px;
  font-family: monospace;
  letter-spacing: 14px;
  text-align: center;
  padding: 10px 14px;
  border: 2px solid #cbd5e1;
  border-radius: 8px;
  background: #f8fafc;
  color: #0f172a;
  outline: none;
  transition: border-color 0.15s ease;
}
.tpin-digit-box:focus {
  border-color: #2563eb;
  background: #ffffff;
  box-shadow: 0 0 0 3px rgba(37, 99, 235, 0.15);
}
.tpin-toggle-btn {
  background: transparent;
  border: none;
  cursor: pointer;
  padding: 6px 10px;
  font-size: 14px;
  color: #334155;
  position: absolute;
  right: 8px;
}
.tpin-toggle-btn:hover {
  color: #0f172a;
}
.tpin-modal-overlay {
  position: fixed;
  inset: 0;
  background: rgba(15, 23, 42, 0.6);
  backdrop-filter: blur(4px);
  z-index: 10050;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 16px;
}
.tpin-modal-box {
  background: #ffffff;
  border-radius: 16px;
  box-shadow: 0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 10px 10px -5px rgba(0, 0, 0, 0.04);
  width: 100%;
  max-width: 440px;
  padding: 24px;
  position: relative;
  display: flex;
  flex-direction: column;
  gap: 16px;
}
.tpin-attempts-badge {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  font-size: 12px;
  font-weight: 600;
  color: #b45309;
  background: #fffbeb;
  border: 1px solid #fef3c7;
  padding: 6px 10px;
  border-radius: 8px;
}
.tpin-lockout-card {
  background: #fef2f2;
  border: 1px solid #fecaca;
  border-radius: 10px;
  padding: 12px 14px;
  color: #991b1b;
  font-size: 13px;
  line-height: 1.4;
}
.tpin-forced-overlay {
  position: fixed;
  inset: 0;
  background: #0f172a;
  z-index: 99999;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 20px;
}
.tpin-forced-box {
  background: #ffffff;
  border-radius: 20px;
  box-shadow: 0 25px 50px -12px rgba(0, 0, 0, 0.25);
  width: 100%;
  max-width: 480px;
  padding: 32px;
  display: flex;
  flex-direction: column;
  gap: 20px;
}

/* Phase 5 — Garage Administration & Badges */
.admin-badge.plan-lite {
  background: #f1f5f9;
  color: #475569;
}
.admin-badge.plan-premium {
  background: #dbeafe;
  color: #1e40af;
  border: 1px solid #bfdbfe;
}
.admin-badge.status-verified {
  background: #dcfce7;
  color: #166534;
}
.admin-badge.status-pending {
  background: #fef3c7;
  color: #92400e;
}
.garage-admin-meta {
  font-size: 12px;
  color: #334155;
  display: flex;
  gap: 6px;
  align-items: center;
}
.garage-admin-gstin {
  font-family: var(--font-digital);
  font-size: 11.5px;
  color: #0f172a;
}

/* Phase 6 — Approved Team Roles (Team Lead, Support Agent, Support Executive) and First-Login Overlays */
.team-role-badge {
  display: inline-flex;
  align-items: center;
  padding: 3px 8px;
  border-radius: 9999px;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.04em;
}
.team-role-badge.role-super-admin,
.team-role-badge.role-owner {
  background: #e0e7ff;
  color: #3730a3;
  border: 1px solid #c7d2fe;
}
.team-role-badge.role-team-lead {
  background: #dcfce7;
  color: #166534;
  border: 1px solid #bbf7d0;
}
.team-role-badge.role-support-agent {
  background: #e0f2fe;
  color: #0369a1;
  border: 1px solid #bae6fd;
}
.team-role-badge.role-support-executive {
  background: #f1f5f9;
  color: #475569;
  border: 1px solid #cbd5e1;
}
.admin-readonly-notice,
.admin-auditor-notice {
  background: #f8fafc;
  border: 1px solid #cbd5e1;
  border-left: 4px solid #64748b;
  border-radius: 8px;
  padding: 12px 14px;
  font-size: 12.5px;
  color: #334155;
  margin-top: 14px;
}
.admin-forced-overlay {
  position: fixed;
  inset: 0;
  background: #0f172a;
  z-index: 99999;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 20px;
}
.admin-forced-box {
  background: #ffffff;
  border-radius: 20px;
  box-shadow: 0 25px 50px -12px rgba(0, 0, 0, 0.25);
  width: 100%;
  max-width: 480px;
  padding: 32px;
  display: flex;
  flex-direction: column;
  gap: 20px;
}

/* ==========================================================================
   BACKEND SWITCH & BLOCKED CARD STYLES (backend-*)
   ========================================================================== */
.backend-blocked-card {
  display: flex;
  flex-direction: column;
  gap: 8px;
  padding: 16px;
  background: #fff1f2;
  border: 1px solid #fecdd3;
  border-left: 4px solid #e11d48;
  border-radius: 12px;
  color: #9f1239;
  font-size: 13px;
  line-height: 1.5;
  box-sizing: border-box;
  max-width: 100%;
  margin: 12px 0;
  overflow-wrap: break-word;
}
.backend-blocked-badge {
  display: inline-flex;
  align-items: center;
  align-self: flex-start;
  padding: 2px 8px;
  background: #e11d48;
  color: #ffffff;
  font-size: 10.5px;
  font-weight: 800;
  letter-spacing: 0.08em;
  border-radius: 6px;
  text-transform: uppercase;
}
.backend-blocked-title {
  font-weight: 700;
  font-size: 14px;
  color: #881337;
}
.backend-blocked-route {
  display: inline-block;
  background: #ffffff;
  border: 1px solid #fecdd3;
  border-radius: 6px;
  padding: 4px 8px;
  font-size: 12px;
  color: #9f1239;
  font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;
}
.backend-blocked-desc {
  margin: 0;
  color: #4c0519;
  font-size: 12.5px;
}

/* ==========================================================================
   MULTI-STEP SIGNUP FLOW STYLES (auth-*, otp-*)
   ========================================================================== */
.auth-step-container {
  display: flex;
  flex-direction: column;
  gap: 16px;
  width: 100%;
  box-sizing: border-box;
  max-width: 100%;
}
.auth-step-bubbles-wrap {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 6px;
  margin-bottom: 8px;
  padding: 0 4px;
}
.auth-step-bubble {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 28px;
  height: 28px;
  border-radius: 50%;
  background: #f1f5f9;
  border: 1px solid #cbd5e1;
  color: #334155;
  font-size: 12px;
  font-weight: 700;
  transition: all 0.2s ease;
}
.auth-step-bubble.is-active {
  background: #2563eb;
  border-color: #2563eb;
  color: #ffffff;
  box-shadow: 0 0 0 3px rgba(37, 99, 235, 0.2);
}
.auth-step-bubble.is-done {
  background: #16a34a;
  border-color: #16a34a;
  color: #ffffff;
}
.auth-step-line {
  flex: 1;
  height: 2px;
  background: #e2e8f0;
}
.auth-step-line.is-done {
  background: #16a34a;
}
.auth-step-head {
  display: flex;
  flex-direction: column;
  gap: 4px;
}
.auth-step-kicker {
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.08em;
  color: #2563eb;
  text-transform: uppercase;
}
.auth-step-title {
  font-size: 18px;
  font-weight: 800;
  color: #0f172a;
  margin: 0;
}
.auth-step-subtitle {
  font-size: 13px;
  color: #334155;
  margin: 0;
  line-height: 1.4;
}
.auth-step-stepper {
  display: flex;
  flex-direction: column;
  width: 100%;
  margin-bottom: 12px;
}
.auth-step-labels {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 4px;
  margin-top: 6px;
  padding: 0 2px;
}
.auth-step-label {
  flex: 1;
  text-align: center;
  font-size: 11px;
  font-weight: 500;
  color: #475569;
  line-height: 1.25;
}
.auth-step-label.is-active,
.auth-step-label.auth-step-active {
  color: #2563eb;
  font-weight: 700;
}
.auth-step-label.is-done {
  color: #16a34a;
}

/* Auth Switch Segmented Tabs */
.auth-segmented-switch {
  display: flex;
  background: #f1f5f9;
  border: 1px solid #e2e8f0;
  border-radius: 11px;
  padding: 3px;
  margin-bottom: 16px;
  gap: 3px;
}
.auth-segmented-btn {
  flex: 1;
  height: 34px;
  border: none;
  border-radius: 8px;
  background: transparent;
  color: #334155;
  font-size: 13px;
  font-weight: 600;
  cursor: pointer;
  transition: all 0.16s ease;
  display: flex;
  align-items: center;
  justify-content: center;
}
.auth-segmented-btn:hover {
  color: #1e293b;
}
.auth-segmented-btn.active {
  background: #ffffff;
  color: #0f172a;
  font-weight: 700;
  box-shadow: 0 2px 6px rgba(15, 23, 42, 0.08);
}
.auth-workshop-cta {
  margin-top: 14px;
  padding-top: 12px;
  border-top: 1px solid #f1f5f9;
  text-align: center;
  font-size: 12.5px;
  color: #334155;
}
.auth-workshop-cta a {
  color: #2563eb;
  font-weight: 600;
  text-decoration: none;
  margin-left: 4px;
}
.auth-workshop-cta a:hover {
  text-decoration: underline;
}

/* Step 1: Account Type Selector */
.auth-type-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 10px;
  margin: 10px 0 14px;
}
@media (max-width: 520px) {
  .auth-type-grid {
    grid-template-columns: 1fr;
  }
}
.auth-type-card {
  display: flex;
  flex-direction: column;
  gap: 6px;
  padding: 14px 12px;
  background: #ffffff;
  border: 1.5px solid #e2e8f0;
  border-radius: 12px;
  cursor: pointer;
  transition: all 0.18s ease;
  text-align: left;
}
.auth-type-card:hover {
  border-color: #93c5fd;
  background: #f8fafc;
}
.auth-type-card.selected,
.auth-type-card.active {
  border-color: #2563eb !important;
  background: #eff6ff !important;
  box-shadow: 0 0 0 3px rgba(37, 99, 235, 0.12) !important;
}
.auth-type-card-title,
.auth-type-name {
  font-weight: 700;
  font-size: 13.5px;
  color: #0f172a;
}
.auth-type-desc {
  font-size: 11.5px;
  color: #334155;
  line-height: 1.4;
}
.auth-garage-select-wrap {
  display: flex;
  flex-direction: column;
  gap: 6px;
  margin-top: 8px;
  padding: 12px;
  background: #f8fafc;
  border: 1px solid #e2e8f0;
  border-radius: 12px;
}
.auth-garage-type-select {
  width: 100%;
  height: 40px;
  padding: 0 12px;
  border: 1px solid #cbd5e1;
  border-radius: 8px;
  font-size: 13.5px;
  background: #ffffff;
  color: #0f172a;
}

/* Mobile Input Wrap */
.auth-mobile-input-wrap {
  display: flex;
  align-items: center;
  border: 1px solid #cbd5e1;
  border-radius: 10px;
  background: #ffffff;
  overflow: hidden;
  transition: border-color 0.15s ease;
}
.auth-mobile-input-wrap:focus-within {
  border-color: #2563eb;
  box-shadow: 0 0 0 3px rgba(37, 99, 235, 0.15);
}
.auth-mobile-prefix {
  display: flex;
  align-items: center;
  gap: 4px;
  padding: 0 12px;
  font-size: 13.5px;
  font-weight: 700;
  color: #475569;
  background: #f1f5f9;
  border-right: 1px solid #cbd5e1;
  height: 42px;
}
.auth-mobile-input {
  flex: 1;
  border: 0 !important;
  outline: none !important;
  height: 42px;
  padding: 0 12px;
  font-size: 14px;
  background: transparent;
  width: 100%;
}

/* OTP Code Input */
.otp-input-wrap {
  display: flex;
  flex-direction: column;
  gap: 12px;
  align-items: center;
  margin: 12px 0;
}
.otp-digit-box {
  width: 100%;
  max-width: 240px;
  height: 48px;
  text-align: center;
  font-size: 24px;
  font-weight: 800;
  letter-spacing: 0.35em;
  padding-left: 0.35em;
  border: 2px solid #cbd5e1;
  border-radius: 12px;
  background: #f8fafc;
  color: #0f172a;
  transition: all 0.15s ease;
}
.otp-digit-box:focus {
  border-color: #2563eb;
  background: #ffffff;
  outline: none;
  box-shadow: 0 0 0 3px rgba(37, 99, 235, 0.15);
}
.otp-resend-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  width: 100%;
  font-size: 12.5px;
  margin-top: 4px;
}
.otp-cooldown-text {
  color: #334155;
  font-size: 12px;
}
.otp-resend-btn {
  background: none;
  border: 0;
  color: #2563eb;
  font-size: 12.5px;
  font-weight: 600;
  padding: 4px 6px;
  cursor: pointer;
  text-decoration: underline;
}
.otp-resend-btn:disabled {
  color: #475569;
  cursor: not-allowed;
  text-decoration: none;
}
.otp-lockout-card {
  padding: 12px 14px;
  background: #fef2f2;
  border: 1px solid #fecaca;
  border-radius: 10px;
  color: #991b1b;
  font-size: 12.5px;
  line-height: 1.4;
  margin-top: 6px;
}

/* Step 5: Profile Compulsory Form */
.profile-form-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 10px;
}
@media (max-width: 520px) {
  .profile-form-grid {
    grid-template-columns: 1fr;
  }
}
.profile-form-grid .full {
  grid-column: 1 / -1;
}

/* ==========================================================================
   PROFILE GATE OVERLAY & EDIT STYLES (profile-*)
   ========================================================================== */
.profile-gate-overlay {
  position: fixed;
  inset: 0;
  background: rgba(15, 23, 42, 0.85);
  backdrop-filter: blur(4px);
  -webkit-backdrop-filter: blur(4px);
  z-index: 99990;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: max(16px, env(safe-area-inset-top)) max(16px, env(safe-area-inset-right)) max(16px, env(safe-area-inset-bottom)) max(16px, env(safe-area-inset-left));
  box-sizing: border-box;
}
.profile-gate-box {
  background: #ffffff;
  border-radius: 20px;
  box-shadow: 0 25px 50px -12px rgba(0, 0, 0, 0.35);
  width: 100%;
  max-width: 480px;
  max-height: 90vh;
  overflow-y: auto;
  padding: 28px 24px;
  display: flex;
  flex-direction: column;
  gap: 16px;
  box-sizing: border-box;
}
.profile-gate-head {
  text-align: center;
  display: flex;
  flex-direction: column;
  gap: 6px;
}
.profile-gate-icon {
  font-size: 32px;
  line-height: 1;
  margin-bottom: 4px;
}
.profile-gate-title {
  margin: 0;
  font-size: 19px;
  font-weight: 800;
  color: #0f172a;
}
.profile-gate-desc {
  margin: 0;
  font-size: 13px;
  color: #334155;
  line-height: 1.45;
}
.profile-gate-missing-list {
  display: flex;
  flex-direction: column;
  gap: 8px;
  padding: 12px;
  background: #f8fafc;
  border: 1px solid #e2e8f0;
  border-radius: 12px;
}
.profile-gate-missing-item {
  display: flex;
  align-items: center;
  gap: 10px;
  font-size: 13px;
  color: #1e293b;
  font-weight: 600;
}
.profile-gate-missing-dot {
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: #e11d48;
}
.profile-gate-actions {
  display: flex;
  flex-direction: column;
  gap: 10px;
  margin-top: 8px;
}
.profile-mobile-otp-wrap {
  display: flex;
  flex-direction: column;
  gap: 10px;
  padding: 12px;
  background: #f8fafc;
  border: 1px solid #e2e8f0;
  border-radius: 12px;
  margin-top: 8px;
}








.admin-readonly-notice { background: rgba(59, 130, 246, 0.08); border: 1px solid rgba(59, 130, 246, 0.25); border-radius: 8px; padding: 10px 14px; font-size: 13px; color: #1e3a8a; margin: 12px 0; }

/* ==========================================================================
   Owner Decisions — Vehicle Claims, Garage Matching, Bill Delivery & E-Bill
   ========================================================================== */

/* Vehicle Claim Badges (Owner Fleet View) */
.vehicle-claim-badge {
  display: inline-flex;
  align-items: center;
  padding: 3px 8px;
  border-radius: 9999px;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.02em;
  line-height: 1.2;
}
.vehicle-claim-badge.verified {
  background: #dcfce7;
  color: #166534;
  border: 1px solid #bbf7d0;
}
.vehicle-claim-badge.pending {
  background: #fef3c7;
  color: #92400e;
  border: 1px solid #fde68a;
}
.vehicle-claim-badge.unclaimed {
  background: #f1f5f9;
  color: #475569;
  border: 1px solid #cbd5e1;
}

/* Pending Confirmation Cards */
.pending-claims-container {
  margin-bottom: 20px;
}
.pending-claim-card {
  border-left: 4px solid #f59e0b;
  background: #fffdf5;
  border: 1px solid #fef3c7;
  border-left: 4px solid #f59e0b;
  padding: 16px;
  border-radius: 8px;
  margin-bottom: 12px;
}
.pending-claim-details {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 12px;
  margin: 10px 0 14px;
}
@media (max-width: 480px) {
  .pending-claim-details {
    grid-template-columns: 1fr;
    gap: 8px;
  }
}
.pending-claim-reg,
.pending-claim-garage {
  font-size: 14px;
  color: #0f172a;
}
.pending-claim-actions {
  display: flex;
  gap: 10px;
  flex-wrap: wrap;
}

/* Locked Garage History Card */
.locked-garage-history-card {
  border: 1px dashed #cbd5e1;
  background: #f8fafc;
  border-radius: 8px;
  text-align: center;
  padding: 36px 16px;
}

/* Garage Vehicle Match Preview */
.garage-vehicle-match-box {
  margin: 10px 0;
  padding: 12px;
  border-radius: 8px;
  background: #f8fafc;
  border: 1px solid #e2e8f0;
}
.garage-match-preview {
  font-size: 13px;
  font-weight: 600;
  display: flex;
  align-items: center;
  gap: 8px;
}
.garage-match-preview.match-found {
  color: #166534;
}
.garage-match-preview.pending-confirm {
  color: #92400e;
}
.garage-match-preview.no-match {
  color: #475569;
}
.garage-marketing-consent-note {
  font-size: 12px;
  color: #334155;
  margin-top: 4px;
}

/* E-Bill Preview (Spec Fancy Invoice) */
.ebill-preview-wrap {
  background: #ffffff;
  border-radius: 12px;
  padding: 24px;
  border: 1px solid #e2e8f0;
  box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.05);
}
.ebill-header {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  padding-bottom: 16px;
  border-bottom: 2px solid #0f172a;
  margin-bottom: 16px;
}
.ebill-preview-badge {
  display: inline-block;
  background: #fef3c7;
  color: #92400e;
  border: 1px solid #fde68a;
  border-radius: 4px;
  padding: 2px 6px;
  font-size: 10px;
  font-weight: 800;
  letter-spacing: 0.05em;
  text-transform: uppercase;
}
.ebill-footer-powered {
  text-align: center;
  font-size: 12px;
  color: #334155;
  margin-top: 24px;
  padding-top: 14px;
  border-top: 1px dashed #cbd5e1;
  font-weight: 500;
}
/* UI-ONLY: Localhost profile gate dev bypass banner */
.backend-dev-bypass-banner {
  background: #fef3c7;
  color: #92400e;
  border-bottom: 2px solid #f59e0b;
  padding: 10px 16px;
  font-size: 13px;
  font-weight: 700;
  text-align: center;
  position: sticky;
  top: 0;
  z-index: 99999;
  box-shadow: 0 2px 4px rgba(0, 0, 0, 0.06);
}
/* Auth Login & Google Integration Enhancements */
.auth-divider {
  display: flex;
  align-items: center;
  text-align: center;
  margin: 14px 0 12px;
  color: #8a8e89;
  font-size: 12px;
}
.auth-divider::before,
.auth-divider::after {
  content: '';
  flex: 1;
  border-bottom: 1px solid #d9d9d3;
}
.auth-divider span {
  padding: 0 12px;
  font-size: 11px;
  text-transform: uppercase;
  letter-spacing: 0.8px;
  font-weight: 600;
  color: #334155;
}
.auth-google-btn {
  display: flex !important;
  align-items: center;
  justify-content: center;
  gap: 10px;
  width: 100% !important;
  height: 44px !important;
  border: 1px solid #d9d9d3 !important;
  border-radius: 12px !important;
  background: #ffffff !important;
  color: #1f2937 !important;
  font-size: 14px !important;
  font-weight: 600 !important;
  cursor: pointer;
  transition: background 0.18s ease, border-color 0.18s ease, box-shadow 0.18s ease;
  margin-bottom: 8px !important;
}
.auth-google-btn:hover {
  background: #f9fafb !important;
  border-color: #9ca3af !important;
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.08) !important;
}
.auth-google-btn svg {
  flex-shrink: 0;
}
.auth-workshop-cta {
  margin-top: 14px;
  padding: 10px 14px;
  background: #f8fafc;
  border: 1px solid #e2e8f0;
  border-radius: 10px;
  font-size: 12px;
  color: #475569;
  text-align: center;
}
.auth-workshop-cta a {
  color: #0369a1;
  font-weight: 600;
  text-decoration: none;
}
.auth-workshop-cta a:hover {
  text-decoration: underline;
}

/* Torq Desk — Sybqa WCAG Contrast & Landmark Elevate */
.td-cta {
  padding: 36px;
  border-radius: 24px;
  background-color: #eef5ff !important;
  background: linear-gradient(135deg, #eef5ff 0%, #e0edff 100%) !important;
  border: 1px solid #c9ddff !important;
  color: #1e293b !important;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
}
.td-cta h2 { margin: 0; color: #0b1f3b !important; }
.td-cta p, .td-cta > div > p { margin: 8px 0 0; color: #334155 !important; font-weight: 500; }
.td-cta .td-btn { background: var(--td-blue, #1d4ed8) !important; color: #ffffff !important; }

.td-callout {
  background-color: #eef5ff !important;
  background: #eef5ff !important;
  color: #1e293b !important;
}
.td-callout h2, .td-callout b { color: #0b1f3b !important; }
.td-callout p { color: #334155 !important; }
.td-callout a { color: #1e40af !important; }

.td-pill {
  background: #dbeafe !important;
  color: #1e40af !important;
}
