/* ============================================================
   Echoterra Field — Technician PWA
   Field Nation-inspired • Light content, dark chrome
   ============================================================ */
@import url('https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&family=JetBrains+Mono:wght@400;500&display=swap');
@import url('https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.5.1/css/all.min.css');

:root {
    --header-bg: #1e2a35;
    --sidebar-bg: #1a242e;
    --sidebar-text: #c5cdd8;
    --content-bg: #f0f2f5;
    --card-bg: #ffffff;
    --card-border: #e4e7ec;
    --card-hover: #f8f9fb;
    --text: #1a1f36;
    --text-secondary: #5e6b7f;
    --text-muted: #8f9bb3;
    --text-hint: #b0bac9;
    --divider: #e8ecf1;
    --echo-blue: #006FFF;
    --echo-blue-light: #e8f2ff;
    --echo-blue-dim: rgba(0,111,255,.08);
    --echo-teal: #0ea5a0;
    --pay-green: #00b341;
    --pay-green-bg: #eafbf0;
    --success: #22c55e;
    --success-bg: #dcfce7;
    --warning: #f59e0b;
    --warning-bg: #fef9c3;
    --danger: #ef4444;
    --danger-bg: #fee2e2;
    --radius: 10px;
    --radius-sm: 6px;
    --font: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
    --mono: 'JetBrains Mono', monospace;
    --safe-top: env(safe-area-inset-top, 0px);
    --safe-bottom: env(safe-area-inset-bottom, 0px);
    --bottom-h: 56px;
}

* { margin:0; padding:0; box-sizing:border-box; }
html { font-size:16px; -webkit-text-size-adjust:100%; }
body {
    font-family: var(--font);
    background: var(--content-bg);
    color: var(--text);
    min-height: 100dvh;
    -webkit-font-smoothing: antialiased;
    padding-top: var(--safe-top);
    padding-bottom: calc(var(--bottom-h) + var(--safe-bottom));
    overflow-x: hidden;
}

/* ============================================================
   CONNECTIVITY BANNER
   ============================================================ */
#offlineBanner {
    display:none; position:fixed; top:var(--safe-top); left:0; right:0; z-index:9999;
    padding:8px 16px; font-size:13px; font-weight:600; text-align:center;
}
#offlineBanner.offline { display:block; background:#fbbf24; color:#78350f; }
#offlineBanner.online { display:block; background:#22c55e; color:#fff; animation:bannerIn .3s; }
@keyframes bannerIn { from{transform:translateY(-100%)} to{transform:translateY(0)} }

/* ============================================================
   HEADER — Dark bar (Field Nation style)
   ============================================================ */
.header {
    position:sticky; top:var(--safe-top); z-index:100;
    background:var(--header-bg);
    padding:0 16px; height:56px;
    display:flex; align-items:center; justify-content:space-between;
}
.header-left { display:flex; align-items:center; gap:14px; }
.header-right { display:flex; align-items:center; gap:6px; }
.header-title { color:#fff; font-size:17px; font-weight:600; }
.header-btn {
    width:38px; height:38px; border-radius:8px; border:none;
    background:transparent; color:#a0aec0; font-size:18px;
    display:flex; align-items:center; justify-content:center; cursor:pointer;
}
.header-btn:active { background:rgba(255,255,255,.08); }
.header-btn .fa-bars { font-size:16px; }
.header-avatar {
    width:34px; height:34px; border-radius:50%; object-fit:cover;
    border:2px solid rgba(255,255,255,.2); cursor:pointer;
}
.header-notif-dot {
    position:absolute; top:6px; right:6px;
    width:8px; height:8px; border-radius:50%;
    background:var(--danger); border:2px solid var(--header-bg);
}

/* ============================================================
   SIDEBAR — Dark drawer (Field Nation style)
   ============================================================ */
.sidebar-overlay {
    display:none; position:fixed; inset:0; z-index:300;
    background:rgba(0,0,0,.45);
}
.sidebar-overlay.active { display:block; }
.sidebar {
    position:fixed; top:0; left:-300px; bottom:0; width:300px;
    background:var(--sidebar-bg); z-index:301;
    transition:transform .28s cubic-bezier(.4,0,.2,1);
    overflow-y:auto;
    padding-top:calc(16px + var(--safe-top));
    padding-bottom:var(--safe-bottom);
}
.sidebar.open { transform:translateX(300px); }
.sidebar-profile {
    padding:20px 20px 16px; border-bottom:1px solid rgba(255,255,255,.08);
}
.sidebar-profile img {
    width:52px; height:52px; border-radius:50%; object-fit:cover;
    border:2px solid var(--echo-blue);
}
.sidebar-profile .name { color:#fff; font-size:16px; font-weight:600; margin-top:10px; }
.sidebar-profile .sub { color:var(--sidebar-text); font-size:13px; margin-top:2px; }
.sidebar-profile .sub em { color:var(--text-muted); }
.sidebar-nav { padding:8px 0; }
.sidebar-nav a, .sidebar-nav button {
    display:flex; align-items:center; gap:14px;
    width:100%; padding:13px 20px; color:var(--sidebar-text);
    text-decoration:none; font-size:15px; font-weight:500;
    border:none; background:none; cursor:pointer; text-align:left;
    transition:background .15s;
}
.sidebar-nav a:hover, .sidebar-nav button:hover { background:rgba(255,255,255,.04); }
.sidebar-nav a:active, .sidebar-nav button:active { background:rgba(255,255,255,.08); }
.sidebar-nav a .fa, .sidebar-nav button .fa { width:22px; text-align:center; font-size:16px; color:var(--text-muted); }
.sidebar-divider { height:1px; background:rgba(255,255,255,.06); margin:6px 0; }

/* ============================================================
   STATUS DROPDOWN (Field Nation style)
   ============================================================ */
.status-dropdown {
    padding:10px 16px; background:var(--card-bg);
    border-bottom:1px solid var(--divider);
}
.status-dropdown select {
    width:auto; padding:8px 32px 8px 12px; border-radius:var(--radius-sm);
    border:1px solid var(--card-border); background:var(--card-bg);
    color:var(--text); font-size:15px; font-weight:600;
    font-family:var(--font); cursor:pointer;
    -webkit-appearance:none; appearance:none;
    background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%235e6b7f' stroke-width='2' fill='none'/%3E%3C/svg%3E");
    background-repeat:no-repeat; background-position:right 12px center;
}
.filter-row {
    display:flex; gap:8px; padding:8px 16px; overflow-x:auto;
    -webkit-overflow-scrolling:touch; background:var(--card-bg);
    border-bottom:1px solid var(--divider);
}
.filter-row::-webkit-scrollbar { display:none; }
.filter-chip {
    flex-shrink:0; padding:7px 14px; border-radius:20px;
    background:var(--content-bg); color:var(--text-secondary);
    font-size:13px; font-weight:500; border:1px solid var(--card-border);
    cursor:pointer; white-space:nowrap; transition:all .15s;
}
.filter-chip.active { background:var(--echo-blue); color:#fff; border-color:var(--echo-blue); }
.filter-chip i { margin-right:4px; font-size:11px; }

/* ============================================================
   BOTTOM NAV — 3 tabs
   ============================================================ */
.bottom-nav {
    position:fixed; bottom:0; left:0; right:0; z-index:100;
    background:var(--card-bg);
    border-top:1px solid var(--divider);
    height:calc(var(--bottom-h) + var(--safe-bottom));
    padding-bottom:var(--safe-bottom);
    display:flex;
}
.nav-item {
    flex:1; display:flex; flex-direction:column; align-items:center;
    justify-content:center; gap:3px;
    color:var(--text-muted); text-decoration:none; font-size:11px; font-weight:600;
    cursor:pointer; border:none; background:none; transition:color .15s;
}
.nav-item.active { color:var(--echo-blue); }
.nav-item i { font-size:19px; }

/* ============================================================
   PAGES
   ============================================================ */
.page { display:none; }
.page.active { display:block; }
.page-content { padding:12px 16px; }

/* ============================================================
   WORK ORDER CARDS — Field Nation exact style
   ============================================================ */
.wo-card {
    background:var(--card-bg); border-radius:var(--radius);
    border:1px solid var(--card-border);
    margin:0 16px 10px; overflow:hidden;
    box-shadow:0 1px 3px rgba(0,0,0,.04);
}
/* Pay banner (green) */
.wo-pay-bar {
    padding:10px 16px;
    background:var(--pay-green-bg);
    border-left:4px solid var(--pay-green);
    font-family:var(--mono); font-weight:700;
}
.wo-pay-bar .amount { font-size:20px; color:var(--pay-green); }
.wo-pay-bar .detail { font-size:13px; font-weight:400; color:var(--text-secondary); margin-left:4px; }
/* Meta line */
.wo-meta-line {
    padding:10px 16px 0;
    font-size:12px; font-weight:500; color:var(--text-muted);
    letter-spacing:.3px;
}
/* Title */
.wo-title {
    padding:4px 16px 10px;
    font-size:15px; font-weight:600; line-height:1.4; color:var(--text);
}
/* Info rows */
.wo-info-row {
    display:flex; align-items:center; gap:8px;
    padding:3px 16px; font-size:13px; color:var(--text-secondary);
}
.wo-info-row i { width:18px; text-align:center; font-size:13px; color:var(--text-muted); }
.wo-info-row .distance { color:var(--echo-blue); font-size:12px; margin-left:6px; }
.wo-info-spacer { height:10px; }
/* Badges */
.wo-badge {
    display:inline-flex; align-items:center; gap:4px;
    padding:4px 10px; border-radius:4px; font-size:12px; font-weight:600;
    margin:0 16px 10px 16px;
}
.wo-badge.hard-start { background:#e0f2fe; color:#0369a1; }
.wo-badge.urgent { background:#fee2e2; color:#dc2626; }
/* Actions bar */
.wo-actions {
    display:flex; align-items:center; border-top:1px solid var(--divider);
}
.wo-actions-more {
    padding:12px 16px; border:none; background:none;
    color:var(--text-muted); font-size:18px; cursor:pointer;
}
.wo-actions-cta {
    margin-left:auto; padding:10px 20px;
    background:transparent; border:2px solid var(--echo-blue);
    color:var(--echo-blue); font-family:var(--font);
    font-size:13px; font-weight:700; letter-spacing:.5px;
    cursor:pointer; border-radius:var(--radius-sm);
    margin-right:12px; transition:all .15s;
}
.wo-actions-cta.filled {
    background:var(--echo-blue); color:#fff; border-color:var(--echo-blue);
}
.wo-actions-cta.checkout {
    background:var(--danger); color:#fff; border-color:var(--danger);
}

/* Active job bar (bottom persistent) — Field Nation pattern */
.active-job-bar {
    position:fixed; bottom:calc(var(--bottom-h) + var(--safe-bottom));
    left:0; right:0; z-index:99;
    background:var(--card-bg); border-top:1px solid var(--divider);
    padding:10px 16px; display:flex; align-items:center; gap:10px;
    box-shadow:0 -2px 8px rgba(0,0,0,.06);
    cursor:pointer;
}
.active-job-bar .ajb-icon {
    width:36px; height:36px; border-radius:8px;
    background:var(--echo-blue-light); color:var(--echo-blue);
    display:flex; align-items:center; justify-content:center; font-size:15px;
}
.active-job-bar .ajb-text { flex:1; min-width:0; }
.active-job-bar .ajb-text .title { font-size:13px; font-weight:600; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.active-job-bar .ajb-text .sub { font-size:12px; color:var(--text-muted); }
.active-job-bar .ajb-arrow { color:var(--text-muted); font-size:16px; }

/* ============================================================
   SECTION HEADERS (Field Nation style)
   ============================================================ */
.section-label {
    padding:16px 16px 6px;
    font-size:13px; font-weight:700; color:var(--text-muted);
    text-transform:uppercase; letter-spacing:.4px;
}

/* ============================================================
   DETAIL PAGE — Light, clean sections
   ============================================================ */
.detail-actions {
    display:flex; gap:8px; padding:12px 16px;
    background:var(--card-bg); border-bottom:1px solid var(--divider);
    position:sticky; top:56px; z-index:50;
}
.detail-actions .btn-trip {
    flex:1; padding:12px; border:2px solid var(--card-border);
    border-radius:var(--radius-sm); background:var(--card-bg);
    color:var(--text); font-family:var(--font); font-size:14px; font-weight:700;
    cursor:pointer; transition:all .15s;
}
.detail-actions .btn-trip:active { background:var(--content-bg); }
.detail-actions .btn-checkin {
    flex:1; padding:12px; border:none; border-radius:var(--radius-sm);
    background:var(--echo-blue); color:#fff;
    font-family:var(--font); font-size:14px; font-weight:700;
    cursor:pointer; letter-spacing:.3px;
}
.detail-actions .btn-checkout {
    flex:1; padding:12px; border:none; border-radius:var(--radius-sm);
    background:var(--danger); color:#fff;
    font-family:var(--font); font-size:14px; font-weight:700;
    cursor:pointer;
}

.detail-section {
    background:var(--card-bg); border-bottom:1px solid var(--divider);
}
.detail-section-header {
    display:flex; align-items:center; justify-content:space-between;
    padding:14px 16px; cursor:pointer;
}
.detail-section-header h3 { font-size:16px; font-weight:700; }
.detail-section-header .count-badge {
    background:var(--echo-blue); color:#fff; padding:2px 10px;
    border-radius:12px; font-size:12px; font-weight:700;
}
.detail-section-header .chevron { color:var(--text-muted); font-size:14px; }
.detail-section-body { padding:0 16px 14px; }

.detail-label { font-size:12px; font-weight:600; color:var(--text-muted); text-transform:uppercase; letter-spacing:.3px; margin-bottom:4px; }
.detail-value { font-size:14px; color:var(--text); line-height:1.5; }
.detail-row { display:flex; align-items:center; gap:10px; padding:8px 0; }
.detail-row i { width:20px; text-align:center; color:var(--text-muted); font-size:14px; }
.detail-divider { height:1px; background:var(--divider); margin:8px 0; }

/* Schedule badge (Hard Start) */
.badge-hard-start {
    display:inline-flex; align-items:center; gap:4px;
    padding:4px 10px; border-radius:4px;
    background:#e0f2fe; color:#0369a1;
    font-size:12px; font-weight:600;
}
.badge-hard-start i { font-size:11px; }

/* Status badges */
.status-badge {
    display:inline-flex; padding:3px 10px; border-radius:20px;
    font-size:11px; font-weight:700; letter-spacing:.3px; white-space:nowrap;
}
.sb-new,.sb-open { background:#fee2e2; color:#dc2626; }
.sb-in_progress,.sb-on_site { background:#dcfce7; color:#15803d; }
.sb-dispatched,.sb-en_route { background:var(--echo-blue-light); color:var(--echo-blue); }
.sb-on_hold,.sb-waiting_customer,.sb-waiting_parts,.sb-waiting_schedule { background:#fef9c3; color:#a16207; }
.sb-completed,.sb-resolved { background:#dcfce7; color:#15803d; }
.sb-closed,.sb-cancelled { background:#f1f5f9; color:#64748b; }

/* ============================================================
   FORMS
   ============================================================ */
.form-group { margin-bottom:14px; }
.form-group label {
    display:block; font-size:13px; font-weight:600; color:var(--text-secondary);
    margin-bottom:5px;
}
input[type="text"],input[type="number"],input[type="date"],input[type="datetime-local"],
input[type="email"],input[type="tel"],input[type="password"],textarea,select {
    width:100%; padding:11px 14px; border-radius:var(--radius-sm);
    border:1.5px solid var(--card-border); background:var(--card-bg);
    color:var(--text); font-family:var(--font); font-size:15px;
    outline:none; transition:border-color .15s;
}
input:focus,textarea:focus,select:focus { border-color:var(--echo-blue); box-shadow:0 0 0 3px var(--echo-blue-dim); }
textarea { resize:vertical; min-height:80px; }
.form-row { display:grid; grid-template-columns:1fr 1fr; gap:10px; }

/* ============================================================
   BUTTONS
   ============================================================ */
.btn {
    display:inline-flex; align-items:center; justify-content:center; gap:6px;
    padding:11px 18px; border-radius:var(--radius-sm);
    font-family:var(--font); font-size:14px; font-weight:600;
    border:none; cursor:pointer; transition:all .12s;
}
.btn:active { transform:scale(.97); }
.btn-primary { background:var(--echo-blue); color:#fff; }
.btn-success { background:var(--success); color:#fff; }
.btn-danger { background:var(--danger); color:#fff; }
.btn-outline { background:transparent; color:var(--text); border:1.5px solid var(--card-border); }
.btn-ghost { background:transparent; color:var(--text-secondary); }
.btn-block { width:100%; }
.btn-sm { padding:7px 12px; font-size:13px; }

/* ============================================================
   TIMELINE
   ============================================================ */
.timeline-item {
    display:flex; gap:10px; padding:10px 0;
    border-bottom:1px solid var(--divider);
}
.timeline-item:last-child { border-bottom:none; }
.tl-icon {
    width:32px; height:32px; border-radius:50%;
    background:var(--content-bg);
    display:flex; align-items:center; justify-content:center;
    font-size:13px; flex-shrink:0;
}
.tl-body { flex:1; min-width:0; }
.tl-body .who { font-size:13px; font-weight:600; }
.tl-body .what { font-size:14px; color:var(--text-secondary); margin-top:2px; white-space:pre-wrap; }
.tl-body .when { font-size:12px; color:var(--text-muted); margin-top:2px; }

/* ============================================================
   PHOTO GRID
   ============================================================ */
.photo-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:3px; border-radius:var(--radius-sm); overflow:hidden; }
.photo-grid img { width:100%; aspect-ratio:1; object-fit:cover; cursor:pointer; }

/* ============================================================
   MODAL / BOTTOM SHEET
   ============================================================ */
.modal-overlay {
    display:none; position:fixed; inset:0; z-index:500;
    background:rgba(0,0,0,.5); backdrop-filter:blur(3px);
}
.modal-overlay.active { display:flex; align-items:flex-end; }
.modal-sheet {
    width:100%; max-height:88vh; overflow-y:auto;
    background:var(--card-bg); border-radius:14px 14px 0 0;
    padding-bottom:calc(16px + var(--safe-bottom));
    animation:sheetUp .25s cubic-bezier(.4,0,.2,1);
}
@keyframes sheetUp { from{transform:translateY(100%)} to{transform:translateY(0)} }
.modal-handle { width:36px; height:4px; border-radius:2px; background:var(--divider); margin:10px auto; }
.modal-header {
    padding:4px 16px 14px; display:flex; align-items:center; justify-content:space-between;
    border-bottom:1px solid var(--divider);
}
.modal-header h3 { font-size:17px; font-weight:700; }
.modal-close {
    width:28px; height:28px; border-radius:50%; background:var(--content-bg);
    border:none; color:var(--text-muted); font-size:14px; cursor:pointer;
    display:flex; align-items:center; justify-content:center;
}
.modal-body { padding:16px; }
.modal-footer { padding:0 16px; display:flex; gap:8px; }

/* ============================================================
   TOAST
   ============================================================ */
#toastContainer {
    position:fixed; top:calc(12px + var(--safe-top)); left:16px; right:16px;
    z-index:9998; display:flex; flex-direction:column; gap:8px; pointer-events:none;
}
.toast {
    padding:12px 16px; border-radius:var(--radius-sm);
    font-size:14px; font-weight:600; pointer-events:auto;
    box-shadow:0 4px 16px rgba(0,0,0,.15); animation:toastIn .2s;
}
.toast.success { background:#166534; color:#bbf7d0; }
.toast.error { background:#991b1b; color:#fecaca; }
.toast.info { background:#1e3a5f; color:#bfdbfe; }
.toast.warning { background:#78350f; color:#fde68a; }
@keyframes toastIn { from{opacity:0;transform:translateY(-8px)} to{opacity:1;transform:translateY(0)} }

/* ============================================================
   CAMERA
   ============================================================ */
.camera-overlay {
    display:none; position:fixed; inset:0; z-index:600;
    background:#000; flex-direction:column;
}
.camera-overlay.active { display:flex; }
.camera-preview { flex:1; object-fit:cover; }
.camera-controls {
    padding:16px; padding-bottom:calc(16px + var(--safe-bottom));
    display:flex; align-items:center; justify-content:space-around;
    background:rgba(0,0,0,.85);
}
.camera-shutter {
    width:68px; height:68px; border-radius:50%;
    border:4px solid #fff; background:transparent; cursor:pointer; position:relative;
}
.camera-shutter::after {
    content:''; position:absolute; inset:5px; border-radius:50%;
    background:#fff; transition:transform .08s;
}
.camera-shutter:active::after { transform:scale(.82); }
.camera-count { background:var(--echo-blue); color:#fff; padding:4px 14px; border-radius:14px; font-size:14px; font-weight:700; }
.camera-done { background:var(--success); color:#fff; padding:10px 22px; border-radius:var(--radius-sm); border:none; font-family:var(--font); font-size:14px; font-weight:700; cursor:pointer; }
.camera-close { background:transparent; color:#fff; border:none; font-size:26px; cursor:pointer; padding:8px; }

/* ============================================================
   UTILITIES
   ============================================================ */
.text-secondary { color:var(--text-secondary); }
.text-muted { color:var(--text-muted); }
.text-sm { font-size:13px; }
.text-xs { font-size:11px; }
.text-mono { font-family:var(--mono); }
.text-success { color:var(--success); }
.text-danger { color:var(--danger); }
.text-echo { color:var(--echo-blue); }
.text-pay { color:var(--pay-green); }
.fw-600 { font-weight:600; }
.fw-700 { font-weight:700; }
.mt-1 { margin-top:8px; } .mt-2 { margin-top:16px; }
.mb-1 { margin-bottom:8px; } .mb-2 { margin-bottom:16px; }
.p-16 { padding:16px; }
.hidden { display:none !important; }
.spinner { width:22px; height:22px; border:2.5px solid var(--divider); border-top-color:var(--echo-blue); border-radius:50%; animation:spin .6s linear infinite; }
@keyframes spin { to{transform:rotate(360deg)} }
.empty-state { text-align:center; padding:48px 20px; color:var(--text-muted); }
.empty-state i { font-size:42px; margin-bottom:12px; display:block; color:var(--text-hint); }
.empty-state p { font-size:15px; }

/* FAB — Field Nation style */
.fab {
    position:fixed; bottom:calc(var(--bottom-h) + var(--safe-bottom) + 16px);
    right:16px; z-index:98;
    width:52px; height:52px; border-radius:50%;
    background:var(--echo-blue); color:#fff; border:none;
    font-size:22px; cursor:pointer;
    box-shadow:0 4px 16px rgba(0,111,255,.35);
    display:flex; align-items:center; justify-content:center;
}
.fab:active { transform:scale(.92); }

/* Login page */
.login-wrap {
    min-height:100dvh; display:flex; flex-direction:column;
    align-items:center; justify-content:center;
    padding:32px 24px; background:var(--header-bg);
}
.login-card {
    width:100%; max-width:380px; background:var(--card-bg);
    border-radius:var(--radius); padding:32px 24px;
    box-shadow:0 8px 32px rgba(0,0,0,.2);
}
.login-logo { text-align:center; margin-bottom:24px; }
.login-logo img { height:44px; }
.login-logo h1 { font-size:22px; font-weight:700; margin-top:8px; color:var(--text); }
.login-logo p { color:var(--text-muted); font-size:14px; margin-top:4px; }

/* iPhone safe area fix for camera */
.camera-controls {
    padding-bottom: calc(24px + env(safe-area-inset-bottom, 34px)) !important;
}
.camera-overlay {
    padding-bottom: 0 !important;
}

/* iPhone safe area fix for camera */
.camera-controls {
    padding-bottom: calc(24px + env(safe-area-inset-bottom, 34px)) !important;
}

/* iPhone safe area fix for camera */
.camera-controls {
    padding-bottom: calc(24px + env(safe-area-inset-bottom, 34px)) !important;
}

/* iPhone safe area fix for camera */
.camera-controls {
    padding-bottom: calc(24px + env(safe-area-inset-bottom, 34px)) !important;
}

/* iPhone safe area - aggressive fix */
.camera-controls {
    bottom: 0 !important;
    padding-bottom: max(24px, env(safe-area-inset-bottom, 44px)) !important;
    position: fixed !important;
    left: 0 !important;
    right: 0 !important;
    z-index: 10001 !important;
    background: rgba(0,0,0,.85) !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 32px !important;
    min-height: 100px !important;
    padding-top: 16px !important;
}
.camera-overlay.active {
    position: fixed !important;
    inset: 0 !important;
    z-index: 10000 !important;
}
.camera-preview {
    height: calc(100% - 120px) !important;
    object-fit: cover !important;
}
