:root{--primary:#10B981;--primary-light:#059669;--bg:#F8FAFC;--surface:#FFFFFF;--surface2:#F1F5F9;--text:#0F172A;--text-muted:#64748B;--success:#10B981;--warning:#F59E0B;--danger:#EF4444;--border:#E2E8F0;--radius:14px;--safe-bottom:env(safe-area-inset-bottom,0px);--safe-top:env(safe-area-inset-top,0px)}
*{margin:0;padding:0;box-sizing:border-box;-webkit-tap-highlight-color:transparent}
html{-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%}
body{font-family:'Outfit',system-ui,-apple-system,sans-serif;background:var(--bg);color:var(--text);height:100vh;height:100dvh;overflow:hidden;-webkit-user-select:none;user-select:none;-webkit-font-smoothing:antialiased}
.app{display:flex;flex-direction:column;height:100vh;height:100dvh;padding-top:var(--safe-top)}

/* Login */
.login-screen{display:flex;align-items:center;justify-content:center;height:100vh;height:100dvh;background:var(--bg);padding:24px}
.login-card{background:var(--surface);border: 1px solid var(--border);border-radius:20px;padding:32px 24px;width:100%;max-width:380px}
.login-card h1{font-size:28px;font-weight:700;text-align:center;background:var(--primary);background-clip:text}
.login-card p{text-align:center;color:var(--text-muted);font-size:12px;margin:6px 0 24px;text-transform:uppercase;letter-spacing:2px}
.login-card input{width:100%;background:var(--surface2);border: 1px solid var(--border);color:var(--text);border-radius:12px;padding:14px 16px;font-size:16px;margin-bottom:14px;outline:none;transition:.2s;font-family:inherit;-webkit-appearance:none;appearance:none}
.login-card input:focus{border-color:var(--primary);box-shadow:0 0 0 3px rgba(79,70,229,.2)}
.login-error{display:none;background:rgba(239,68,68,.1);border:1px solid rgba(239,68,68,.3);color:#f87171;font-size:13px;padding:10px;border-radius:10px;text-align:center;margin-bottom:14px}
.btn-primary{width:100%;background:var(--primary);color:#ffffff;border:none;border-radius:12px;padding:14px;font-size:15px;font-weight:700;cursor:pointer;letter-spacing:.5px;font-family:inherit;min-height:48px;-webkit-appearance:none;appearance:none;transition:transform .1s,opacity .1s}
.btn-primary:active{transform:scale(.97);opacity:.9}
.btn-primary:disabled{opacity:.5;pointer-events:none}

/* ── Header Bar ─────────────────────── */
.header-bar{display:flex;align-items:center;padding:12px 16px;background:var(--surface);border: 1px solid var(--border);flex-shrink:0;gap:12px}
.hamburger-btn{background:none;border:none;color:var(--text);font-size:22px;padding:6px;cursor:pointer;min-width:40px;min-height:40px;display:flex;align-items:center;justify-content:center;border-radius:10px;transition:background .15s}
.hamburger-btn:active{background:var(--border)}
.header-logo{font-size:20px;font-weight:700;color:var(--text);display:flex;align-items:center;gap:8px;flex:1}
.header-logo i{font-size:18px}

/* ── Sidebar ────────────────────────── */
.sidebar-overlay{position:fixed;inset:0;background:var(--surface2);z-index:300;display:none;opacity:0;transition:opacity .25s}
.sidebar-overlay.open{display:block;opacity:1}
.sidebar{position:fixed;top:0;left:0;bottom:0;width:300px;max-width:85vw;background:var(--bg);z-index:301;transform:translateX(-100%);transition:transform .25s ease-out;display:flex;flex-direction:column;overflow-y:auto;border: 1px solid var(--border)}
.sidebar.open{transform:translateX(0)}
.sidebar-header{padding:24px 20px 16px;border: 1px solid var(--border)}
.sidebar-header h2{font-size:20px;font-weight:700;background:var(--primary);background-clip:text}
.sidebar-header p{font-size:11px;color:var(--text-muted);margin-top:4px;text-transform:uppercase;letter-spacing:1px}
.sidebar-section{padding:16px 20px}
.sidebar-section h3{font-size:13px;font-weight:700;color:var(--text-muted);text-transform:uppercase;letter-spacing:1px;margin-bottom:12px}
.sidebar-stat{display:flex;justify-content:space-between;padding:10px 0;border: 1px solid var(--border);font-size:14px}
.sidebar-stat span:first-child{color:var(--text-muted)}
.sidebar-stat span:last-child{font-weight:700;color:var(--text)}
.sidebar-item{display:flex;align-items:center;gap:12px;padding:12px 0;cursor:pointer;transition:opacity .1s;font-size:14px;color:var(--text)}
.sidebar-item:active{opacity:.6}
.sidebar-item i{width:20px;text-align:center;color:var(--primary-light);font-size:16px}
.plan-card{background:var(--surface);border-radius:12px;padding:14px;margin-bottom:10px;border: 1px solid var(--border)}
.plan-card h4{font-size:14px;font-weight:700;margin-bottom:4px}
.plan-card p{font-size:12px;color:var(--text-muted)}
.plan-card .plan-price{font-size:16px;font-weight:700;color:var(--primary-light);margin-top:6px}
.sidebar-close{position:absolute;top:16px;right:16px;background:none;border:none;color:var(--text-muted);font-size:20px;cursor:pointer;padding:4px}

/* Offline Banner */
.offline-banner{display:none;background:#dc2626;color:var(--text);text-align:center;padding:6px;font-size:12px;font-weight:700;letter-spacing:.5px;flex-shrink:0}
.offline-banner.show{display:block}

/* ── In-App Notification Toast ──────── */
.notif-toast{position:fixed;top:-90px;left:12px;right:12px;z-index:500;display:flex;align-items:center;gap:12px;background:rgba(255,255,255,.96);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border: 1px solid var(--border);border-radius:16px;padding:12px 14px;cursor:pointer;transition:top .35s cubic-bezier(.34,1.56,.64,1),opacity .2s;box-shadow:0 8px 32px rgba(0,0,0,.45)}
.notif-toast.show{top:calc(8px + var(--safe-top))}
.notif-toast:active{opacity:.8;transform:scale(.98)}
.notif-toast-icon{width:38px;height:38px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:16px;flex-shrink:0;background:rgba(99,102,241,.2);color:#818cf8}
.notif-toast-icon.type-new_lead{background:rgba(245,158,11,.2);color:#f59e0b}
.notif-toast-icon.type-message{background:rgba(59,130,246,.2);color:#3b82f6}
.notif-toast-icon.type-booking{background:rgba(99,102,241,.2);color:#818cf8}
.notif-toast-icon.type-confirmed{background:rgba(16,185,129,.2);color:#10b981}
.notif-toast-body{flex:1;min-width:0}
.notif-toast-title{font-size:13px;font-weight:700;color:#f8fafc;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.notif-toast-sub{font-size:11px;color:#94a3b8;margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.notif-toast-close{background:none;border:none;color:#94a3b8;font-size:20px;padding:0 0 0 8px;cursor:pointer;line-height:1;flex-shrink:0}
.notif-toast-close:active{color:#f8fafc}

/* Bottom Nav */
.bottom-nav{display:flex;background:var(--surface);border: 1px solid var(--border);padding:6px 0 calc(6px + var(--safe-bottom));position:relative;z-index:100;flex-shrink:0}
.nav-tab{flex:1;display:flex;flex-direction:column;align-items:center;padding:8px 0 4px;color:var(--text-muted);font-size:10px;font-weight:600;cursor:pointer;transition:color .15s;gap:4px;border:none;background:none;font-family:inherit;min-height:48px;position:relative}
.nav-tab i{font-size:20px;transition:transform .15s}
.nav-tab.active{color:var(--primary-light)}
.nav-tab.active i{transform:scale(1.15)}
.nav-tab:active{opacity:.7}
.nav-badge{position:absolute;top:4px;right:50%;transform:translateX(14px);background:#ef4444;color:var(--text);font-size:9px;font-weight:700;min-width:16px;height:16px;border-radius:8px;display:flex;align-items:center;justify-content:center;padding:0 4px}

/* Views */
.view{display:none;flex:1;flex-direction:column;overflow:hidden;min-height:0}
.view.active{display:flex}

/* Top Bar */
.topbar{padding:14px 20px 10px;flex-shrink:0}
.topbar h2{font-size:20px;font-weight:700}
.topbar-sub{font-size:12px;color:var(--text-muted);margin-top:2px}

/* Search */
.search-box{margin:0 16px 12px;position:relative;flex-shrink:0}
.search-box input{width:100%;background:var(--surface);border: 1px solid var(--border);border-radius:12px;padding:12px 16px 12px 42px;color:var(--text);font-size:16px;outline:none;font-family:inherit;-webkit-appearance:none;appearance:none}
.search-box input:focus{border-color:var(--primary);box-shadow:0 0 0 3px rgba(79,70,229,.15)}
.search-box i{position:absolute;left:16px;top:50%;transform:translateY(-50%);color:var(--text-muted);font-size:14px}

/* Skeleton Loaders */
.skeleton{background:var(--surface);border-radius:var(--radius);padding:16px;margin-bottom:10px;display:flex;align-items:center;gap:14px}
.skeleton-circle{width:44px;height:44px;border-radius:50%;background:linear-gradient(90deg,var(--surface2) 25%,var(--border) 50%,var(--surface2) 75%);background-size:200% 100%;animation:shimmer 1.5s infinite;flex-shrink:0}
.skeleton-line{height:12px;border-radius:6px;background:linear-gradient(90deg,var(--surface2) 25%,var(--border) 50%,var(--surface2) 75%);background-size:200% 100%;animation:shimmer 1.5s infinite}
.skeleton-lines{flex:1;display:flex;flex-direction:column;gap:8px}
@keyframes shimmer{0%{background-position:200% 0}100%{background-position:-200% 0}}

/* Lead Cards */
.card-list{flex:1;overflow-y:auto;padding:0 16px 16px;-webkit-overflow-scrolling:touch;overscroll-behavior-y:contain}
.lead-card{background:var(--surface);border: 1px solid var(--border);border-radius:var(--radius);padding:16px;margin-bottom:10px;cursor:pointer;transition:transform .1s,background .1s;display:flex;align-items:center;gap:14px;-webkit-touch-callout:none}
.lead-card:active{transform:scale(.98);background:var(--surface2)}
.lead-avatar{width:44px;height:44px;border-radius:50%;background:var(--primary);display:flex;align-items:center;justify-content:center;font-size:18px;font-weight:700;flex-shrink:0;color:var(--text)}
.lead-info{flex:1;min-width:0}
.lead-phone{font-size:15px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.lead-meta{display:flex;gap:8px;align-items:center;margin-top:4px;flex-wrap:wrap}
.badge{font-size:10px;font-weight:700;padding:3px 8px;border-radius:6px;text-transform:uppercase;letter-spacing:.5px}
.badge-new{background:rgba(245,158,11,.15);color:#fbbf24}
.badge-progress{background:rgba(59,130,246,.15);color:#60a5fa}
.badge-completed{background:rgba(16,185,129,.15);color:#34d399}
.badge-expired{background:rgba(239,68,68,.15);color:#f87171}
.badge-paused{background:rgba(251,146,60,.15);color:#fb923c}
.lead-time{font-size:11px;color:var(--text-muted);margin-left:auto;flex-shrink:0}
.lead-source{font-size:10px;color:var(--text-muted);margin-top:2px}
.lead-source i{font-size:9px;margin-right:3px}

/* ── Chat Screen ────────────────────── */
.chat-screen{position:fixed;inset:0;background:var(--bg);z-index:200;display:none;flex-direction:column;transform:translateX(100%);transition:transform .2s ease-out}
.chat-screen.open{display:flex;transform:translateX(0)}
.chat-screen.closing{display:flex;transform:translateX(100%)}
.chat-header{display:flex;align-items:center;gap:12px;padding:calc(14px + var(--safe-top)) 16px 14px;background:var(--surface);border: 1px solid var(--border);flex-shrink:0}
.chat-back{background:none;border:none;color:var(--text-muted);font-size:20px;padding:8px;cursor:pointer;min-width:40px;min-height:40px;display:flex;align-items:center;justify-content:center;border-radius:50%;transition:background .15s}
.chat-back:active{background:var(--border)}
.chat-header-info{min-width:0;flex:1}
.chat-header-info h3{font-size:16px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.chat-header-info span{font-size:11px;color:var(--text-muted)}
.chat-messages{flex:1;overflow-y:auto;padding:16px;-webkit-overflow-scrolling:touch;overscroll-behavior-y:contain}
.msg-date{text-align:center;margin:16px 0 8px}
.msg-date span{background:var(--surface2);color:var(--text-muted);font-size:10px;font-weight:600;padding:4px 12px;border-radius:8px;display:inline-block}
.msg-row{display:flex;margin-bottom:12px;animation:fadeInBubble 0.15s ease-out}
@keyframes fadeInBubble{from{opacity:0;transform:translateY(3px)}to{opacity:1;transform:translateY(0)}}
.msg-row.ai,.msg-row.operator{justify-content:flex-end}
.msg-row.customer{justify-content:flex-start}
.msg-bubble{max-width:78%;padding:10px 14px 22px;border-radius:14px;font-size:13.5px;line-height:1.45;position:relative;word-break:break-word;white-space:pre-wrap;box-shadow:0 1px 2px rgba(0,0,0,0.05)}
.msg-row.ai .msg-bubble{background:#E0F2FE;color:#0369A1;border:1px solid #BAE6FD;border-bottom-right-radius:2px}
.msg-row.operator .msg-bubble{background:#ECFDF5;color:#047857;border:1px solid #A7F3D0;border-bottom-right-radius:2px}
.msg-row.customer .msg-bubble{background:#F8FAFC;color:#0F172A;border:1px solid #E2E8F0;border-bottom-left-radius:2px}
.msg-time{position:absolute;bottom:4px;right:10px;font-size:9px;opacity:.7;font-weight:600}
.msg-sender{font-size:9px;font-weight:700;text-transform:uppercase;letter-spacing:.8px;margin-bottom:4px;display:flex;align-items:center;gap:4px}
.msg-row.ai .msg-sender{color:#0284C7}
.msg-row.operator .msg-sender{color:#059669}
.msg-row.customer .msg-sender{color:#64748B}
.msg-bubble img, .msg-bubble video {
  max-width: 280px;
  max-height: 200px;
  width: 100%;
  object-fit: cover;
  border-radius: 10px;
  margin-top: 4px;
  display: block;
}

/* ── Takeover Bar ───────────────────── */
.takeover-bar{display:flex;align-items:center;gap:8px;padding:8px 16px;background:var(--surface);border: 1px solid var(--border);flex-shrink:0}
.takeover-bar .takeover-btn{flex:1;padding:10px;border-radius:10px;border:none;font-size:12px;font-weight:700;cursor:pointer;font-family:inherit;min-height:40px;text-transform:uppercase;letter-spacing:.5px;transition:opacity .1s}
.takeover-btn:active{opacity:.7}
.takeover-btn.pause{background:rgba(251,146,60,.15);color:#fb923c;border:1px solid rgba(251,146,60,.2)}
.takeover-btn.resume{background:rgba(16,185,129,.15);color:#34d399;border:1px solid rgba(16,185,129,.2)}

/* ── Chat Input ─────────────────────── */
.chat-input-bar{display:flex;align-items:flex-end;gap:8px;padding:8px 12px calc(8px + var(--safe-bottom));background:var(--surface);border: 1px solid var(--border);flex-shrink:0}
.chat-input-bar textarea{flex:1;background:var(--surface2);border: 1px solid var(--border);color:var(--text);border-radius:20px;padding:10px 16px;font-size:14px;font-family:inherit;resize:none;outline:none;max-height:100px;min-height:40px;line-height:1.4}
.chat-input-bar textarea:focus{border-color:var(--primary)}
.chat-input-bar .send-btn{width:40px;height:40px;border-radius:50%;background:var(--primary);border:none;color:#ffffff;font-size:16px;cursor:pointer;display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:transform .1s,opacity .1s}
.chat-input-bar .send-btn:active{transform:scale(.9)}
.chat-input-bar .send-btn:disabled{opacity:.4;pointer-events:none}
.chat-input-bar .attach-btn{width:40px;height:40px;border-radius:50%;background:var(--surface2);border:none;color:var(--text-muted);font-size:16px;cursor:pointer;display:flex;align-items:center;justify-content:center;flex-shrink:0}
.chat-input-bar .attach-btn:active{opacity:.7}

/* ── Media Preview ──────────────────── */
.media-preview{display:none;padding:8px 12px;background:var(--surface);border: 1px solid var(--border)}
.media-preview.show{display:flex;align-items:center;gap:10px}
.media-preview img,.media-preview video{width:60px;height:60px;border-radius:10px;object-fit:cover}
.media-preview .file-info{flex:1;min-width:0}
.media-preview .file-name{font-size:12px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.media-preview .file-size{font-size:10px;color:var(--text-muted)}
.media-preview .remove-media{background:none;border:none;color:var(--danger);font-size:18px;cursor:pointer;padding:4px}

/* Bookings */
.booking-card{background:var(--surface);border: 1px solid var(--border);border-radius:var(--radius);padding:16px;margin-bottom:10px;cursor:pointer;transition:transform .1s, border-left .15s;-webkit-touch-callout:none}
.booking-card.booking-confirmed{border-left: 4px solid #10B981}
.booking-card.booking-pending{border-left: 4px solid #F59E0B}
.booking-card.booking-rejected{border-left: 4px solid #EF4444}
.booking-card:active{transform:scale(.98)}
.booking-card h4{font-size:15px;font-weight:600;margin-bottom:8px}
.booking-row{display:flex;justify-content:space-between;font-size:13px;padding:4px 0;color:var(--text-muted)}
.booking-row span:last-child{color:var(--text);font-weight:500}
.booking-status{display:inline-block;font-size:10px;font-weight:700;padding:3px 10px;border-radius:6px;margin-top:8px}
.booking-pending{background:rgba(245,158,11,.1);color:#d97706;border:1px solid rgba(245,158,11,.2)}
.booking-confirmed{background:rgba(16,185,129,.1);color:#059669;border:1px solid rgba(16,185,129,.2)}
.booking-route{font-size:12px;color:var(--primary-light);margin-top:6px;display:flex;align-items:center;gap:6px}

/* Profile */
.profile-card{background:var(--surface);border-radius:var(--radius);padding:20px;margin:0 16px 12px}
.profile-card h3{font-size:16px;font-weight:600;margin-bottom:12px}
.profile-row{display:flex;justify-content:space-between;padding:10px 0;border: 1px solid var(--border);font-size:14px;min-height:40px;align-items:center}
.profile-row:last-child{border:none}
.profile-row span:first-child{color:var(--text-muted)}
.profile-row span:last-child{font-weight:600}
.quota-bar{height:6px;background:var(--border);border-radius:3px;margin-top:8px;overflow:hidden}
.quota-fill{height:100%;background:var(--primary);border-radius:3px;transition:width .3s}
.btn-logout{width:calc(100% - 32px);margin:20px 16px;background:rgba(239,68,68,.1);border:1px solid rgba(239,68,68,.2);color:#f87171;border-radius:12px;padding:14px;font-size:14px;font-weight:700;cursor:pointer;font-family:inherit;min-height:48px;-webkit-appearance:none;appearance:none;transition:opacity .1s}
.btn-logout:active{opacity:.7}

/* Empty state */
.empty{display:flex;flex-direction:column;align-items:center;justify-content:center;flex:1;color:var(--text-muted);gap:12px;padding:40px}
.empty i{font-size:48px;opacity:.3}
.empty p{font-size:14px;text-align:center}
.empty .retry-btn{margin-top:8px;background:var(--surface);border: 1px solid var(--border);color:var(--primary-light);padding:10px 24px;border-radius:10px;font-size:13px;font-weight:600;cursor:pointer;font-family:inherit;min-height:44px}
.empty .retry-btn:active{opacity:.7}

/* Loading */
.spinner{display:inline-block;width:24px;height:24px;border:2.5px solid rgba(255,255,255,.15);border-top-color:var(--primary-light);border-radius:50%;animation:spin .6s linear infinite}
@keyframes spin{to{transform:rotate(360deg)}}
.loading-center{display:flex;align-items:center;justify-content:center;flex:1;flex-direction:column;gap:8px}
.loading-center span{font-size:12px;color:var(--text-muted)}

/* Overscroll prevention */
html,body{overscroll-behavior:none}

/* ── Sidebar Nav Links ──────────────── */
.sidebar-nav{padding:12px 0}
.sidebar-link{display:flex;align-items:center;gap:14px;width:100%;padding:14px 20px;background:none;border:none;color:var(--text);font-size:15px;font-weight:500;cursor:pointer;font-family:inherit;text-align:left;transition:background .1s}
.sidebar-link:active{background:var(--border)}
.sidebar-link i:first-child{width:22px;text-align:center;color:var(--primary-light);font-size:17px}
.sidebar-link span{flex:1}
.sb-arrow{font-size:12px!important;color:var(--text-muted)!important}
.sidebar-link.danger{color:#f87171}
.sidebar-link.danger i{color:#f87171!important}
.sidebar-divider{height:1px;background:var(--border);margin:8px 20px}

/* ── Page Screens (slide-in) ────────── */
.page-screen{position:fixed;inset:0;background:var(--bg);z-index:250;display:none;flex-direction:column;transform:translateX(100%);transition:transform .25s ease-out}
.page-screen.open{display:flex;transform:translateX(0)}
.page-screen.closing{display:flex;transform:translateX(100%)}
.page-header{display:flex;align-items:center;gap:12px;padding:calc(12px + var(--safe-top)) 16px 12px;background:var(--surface);border: 1px solid var(--border);flex-shrink:0}
.page-header h3{font-size:18px;font-weight:700}
.page-body{flex:1;overflow-y:auto;padding:16px;-webkit-overflow-scrolling:touch;overscroll-behavior-y:contain}

/* ── Analytics Dashboard ────────────── */
.a-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:16px}
.a-card{background:var(--surface);border-radius:var(--radius);padding:14px;border: 1px solid var(--border)}
.a-card.wide{grid-column:1/-1}
.a-label{font-size:11px;color:var(--text-muted);text-transform:uppercase;letter-spacing:.5px;margin-bottom:4px}
.a-value{font-size:24px;font-weight:700}
.a-sub{font-size:11px;color:var(--text-muted);margin-top:2px}
.a-card-title{font-size:14px;font-weight:700;margin-bottom:12px}
/* Bar chart */
.bar-chart{display:flex;align-items:flex-end;gap:6px;height:100px;padding-top:8px}
.bar-col{flex:1;display:flex;flex-direction:column;align-items:center;gap:4px}
.bar-fill{width:100%;border-radius:4px 4px 0 0;background:var(--primary);min-height:2px;transition:height .4s}
.bar-label{font-size:9px;color:var(--text-muted);font-weight:600}
/* Donut */
.donut-wrap{display:flex;align-items:center;gap:16px}
.donut{width:80px;height:80px;border-radius:50%;position:relative;flex-shrink:0}
.donut-center{position:absolute;inset:14px;background:var(--surface);border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:16px;font-weight:700}
.donut-legend{display:flex;flex-direction:column;gap:6px;flex:1}
.donut-item{display:flex;align-items:center;gap:8px;font-size:12px}
.donut-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}
/* Quota bar big */
.quota-big{height:10px;background:var(--border);border-radius:5px;overflow:hidden;margin-top:8px}
.quota-big-fill{height:100%;border-radius:5px;background:var(--primary);transition:width .4s}

/* ── Pricing ────────────────────────── */
.pricing-card{background:var(--surface);border-radius:16px;padding:24px 20px;margin-bottom:14px;border: 1px solid var(--border);position:relative}
.pricing-card.featured{border-color:var(--primary);box-shadow:0 0 30px rgba(79,70,229,.15)}
.pricing-popular{position:absolute;top:-10px;left:50%;transform:translateX(-50%);background:var(--primary);color:#ffffff;font-size:10px;font-weight:700;padding:4px 14px;border-radius:20px;white-space:nowrap}
.pricing-badge{font-size:11px;font-weight:700;letter-spacing:1px;margin-bottom:8px}
.pricing-badge.starter{color:var(--warning)}
.pricing-badge.growth{color:var(--primary-light)}
.pricing-badge.custom{color:var(--success)}
.pricing-price{font-size:32px;font-weight:700;margin-bottom:16px}
.pricing-price span{font-size:14px;color:var(--text-muted);font-weight:400}
.pricing-features{list-style:none;margin-bottom:20px}
.pricing-features li{font-size:13px;padding:6px 0;color:var(--text-muted);display:flex;align-items:center;gap:10px}
.pricing-features li i{color:var(--success);font-size:12px;width:16px;text-align:center}
.pricing-cta{width:100%;padding:14px;border: 1px solid var(--border);background:var(--surface2);color:var(--text);border-radius:12px;font-size:14px;font-weight:700;cursor:pointer;font-family:inherit;min-height:48px;transition:all .15s}
.pricing-cta:active{transform:scale(.97)}
.pricing-cta.featured{background:var(--primary);border:none;color:var(--text)}

/* ── Support ────────────────────────── */
.support-hero{text-align:center;padding:24px 0 20px}
.support-hero i{font-size:40px;color:var(--primary-light);margin-bottom:12px}
.support-hero h3{font-size:20px;font-weight:700}
.support-hero p{color:var(--text-muted);font-size:13px;margin-top:4px}
.support-card{display:flex;align-items:center;gap:14px;background:var(--surface);border-radius:var(--radius);padding:16px;margin-bottom:10px;text-decoration:none;color:var(--text);border: 1px solid var(--border);transition:transform .1s}
.support-card:active{transform:scale(.98)}
.support-icon{width:44px;height:44px;border-radius:12px;display:flex;align-items:center;justify-content:center;font-size:20px;flex-shrink:0}
.support-info{flex:1;min-width:0}
.support-info h4{font-size:15px;font-weight:600}
.support-info p{font-size:12px;color:var(--text-muted);margin-top:2px}
.support-hours{text-align:center;color:var(--text-muted);font-size:12px;padding:20px 0;font-weight:500}

/* ── Modal ──────────────────────────── */
.modal-overlay{position:fixed;inset:0;background:var(--surface2);z-index:400;display:none;align-items:center;justify-content:center;padding:24px}
.modal-overlay[style*="flex"]{display:flex}
.modal-card{background:var(--surface);border-radius:20px;padding:24px;width:100%;max-width:340px;border: 1px solid var(--border)}
.modal-card h3{font-size:18px;font-weight:700;margin-bottom:4px}
.modal-card p{font-size:13px;color:var(--text-muted);margin-bottom:16px}
.modal-input-group{display:flex;align-items:center;background:var(--surface2);border: 1px solid var(--border);border-radius:12px;overflow:hidden;margin-bottom:16px}
.modal-prefix{padding:12px 14px;color:var(--text-muted);font-size:18px;font-weight:700;border: 1px solid var(--border)}
.modal-input-group input{flex:1;background:transparent;border:none;color:var(--text);padding:14px;font-size:18px;font-family:inherit;outline:none;-webkit-appearance:none}
.modal-actions{display:flex;gap:10px}
.modal-btn{flex:1;padding:12px;border-radius:12px;font-size:14px;font-weight:700;cursor:pointer;font-family:inherit;min-height:44px;border:none;transition:opacity .1s}
.modal-btn:active{opacity:.7}
.modal-btn.cancel{background:var(--surface2);color:var(--text-muted)}
.modal-btn.save{background:var(--primary);color:var(--text)}
.modal-btn.save:disabled{opacity:.4}

/* Clickable profile row */
.profile-row.clickable{cursor:pointer;transition:background .1s;border-radius:8px;padding:10px 8px;margin:0 -8px}
.profile-row.clickable:active{background:var(--border)}

/* ── Vehicle Carousel ───────────────── */
.v-section{margin-bottom:20px}
.v-section-title{font-size:15px;font-weight:700;margin-bottom:10px;padding:0 4px;display:flex;align-items:center;gap:8px}
/* Horizontal carousel (legacy) */
.v-scroll{display:flex;gap:12px;overflow-x:auto;padding:4px 0 12px;-webkit-overflow-scrolling:touch;scrollbar-width:none;scroll-snap-type:x mandatory}
.v-scroll::-webkit-scrollbar{display:none}
.v-scroll.single .v-card{flex:0 0 calc(100% - 4px)}
.v-scroll .v-card{flex:0 0 280px;scroll-snap-align:start}
/* Vertical stack (fleet management) */
.v-stack{display:flex;flex-direction:column;gap:12px;padding:4px 0}
.v-stack .v-card{width:100%}
.v-card{background:var(--surface);border-radius:16px;overflow:hidden;border: 1px solid var(--border);cursor:pointer;transition:transform .15s,box-shadow .15s;position:relative}
.v-card:active{transform:scale(.97)}
.v-card-img{width:100%;height:170px;object-fit:cover;display:block;background:var(--surface2)}
.v-card-overlay{position:absolute;top:0;left:0;right:0;height:170px;background:linear-gradient(180deg,transparent 50%,rgba(0,0,0,.7));pointer-events:none}
.v-card-price{position:absolute;top:12px;right:12px;background:var(--primary);color:var(--text);font-size:12px;font-weight:700;padding:4px 10px;border-radius:8px}
.v-card-body{padding:14px}
.v-card-name{font-size:16px;font-weight:700;margin-bottom:2px}
.v-card-seats{font-size:12px;color:var(--text-muted);margin-bottom:8px}
.v-card-seats i{margin-right:4px}
.v-card-tagline{font-size:12px;color:var(--primary-light);font-weight:500;line-height:1.4}
.v-card-meta{display:flex;gap:8px;margin-top:10px;flex-wrap:wrap}
.v-chip{font-size:10px;padding:3px 8px;background:var(--border);border-radius:6px;color:var(--text-muted);white-space:nowrap}
.v-chip i{margin-right:4px}
.v-scroll.single .v-card{flex:0 0 calc(100% - 4px)}

/* ── Vehicle Detail Page ────────────── */
.vd-hero{width:100%;height:220px;object-fit:cover;border-radius:14px;margin-bottom:14px}
.vd-price-bar{display:flex;align-items:center;justify-content:space-between;background:var(--surface);border-radius:var(--radius);padding:16px;margin-bottom:14px;border: 1px solid var(--border)}
.vd-price{font-size:28px;font-weight:700;color:var(--primary-light)}
.vd-price span{font-size:14px;color:var(--text-muted);font-weight:400}
.vd-seats{font-size:13px;color:var(--text-muted)}
.vd-seats i{margin-right:4px;color:var(--warning)}
.vd-section{background:var(--surface);border-radius:var(--radius);padding:16px;margin-bottom:12px;border: 1px solid var(--border)}
.vd-section h4{font-size:14px;font-weight:700;margin-bottom:10px}
.vd-feature{display:flex;align-items:center;gap:10px;padding:6px 0;font-size:13px;color:var(--text-muted)}
.vd-feature i{color:var(--success);font-size:12px;width:16px;text-align:center}
.vd-note{display:flex;align-items:center;gap:10px;padding:5px 0;font-size:13px;color:var(--warning)}
.vd-note i{font-size:11px;width:16px;text-align:center}
.vd-gallery{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-bottom:14px}
.vd-gallery img{width:100%;height:120px;object-fit:cover;border-radius:10px;cursor:pointer;transition:transform .15s}
.vd-gallery img:active{transform:scale(.95)}
.vd-video{width:100%;border-radius:12px;margin-bottom:8px;background:#000}
.vd-actions{display:flex;gap:10px;margin-top:16px;margin-bottom:20px}
.vd-actions button{flex:1;padding:14px;border-radius:12px;font-size:14px;font-weight:700;cursor:pointer;font-family:inherit;min-height:48px;border:none;transition:all .15s}
.vd-actions button:active{transform:scale(.97)}
.vd-btn-primary{background:var(--primary);color:var(--text)}
.vd-btn-secondary{background:var(--surface2);color:var(--text);border: 1px solid var(--border)!important}

/* ── Vehicle Status Badge ───────────── */
.v-status{position:absolute;top:12px;left:12px;font-size:10px;font-weight:700;padding:3px 10px;border-radius:6px;text-transform:uppercase;letter-spacing:.5px}
.v-status.available{background:rgba(16,185,129,.2);color:#10b981;border:1px solid rgba(16,185,129,.3)}
.v-status.unavailable{background:rgba(239,68,68,.2);color:#ef4444;border:1px solid rgba(239,68,68,.3)}
.vd-status-bar{display:flex;align-items:center;gap:10px;margin-bottom:14px}
.vd-status-badge{font-size:12px;font-weight:700;padding:5px 14px;border-radius:8px}
.vd-status-badge.available{background:rgba(16,185,129,.15);color:#10b981}
.vd-status-badge.unavailable{background:rgba(239,68,68,.15);color:#ef4444}
.vd-status-toggle{margin-left:auto;font-size:12px;color:var(--primary-light);cursor:pointer;padding:6px 12px;background:rgba(79,70,229,.12);border-radius:8px;border:none;font-weight:600;font-family:inherit}
.vd-status-toggle:active{transform:scale(.95)}

/* ── Operator Action Buttons ────────── */
.vd-actions-grid{display:grid;grid-template-columns:1fr 1fr 1fr;gap:8px;margin-top:16px;margin-bottom:20px}
.vd-actions-grid button{padding:12px 6px;border-radius:12px;font-size:12px;font-weight:600;cursor:pointer;font-family:inherit;border:none;transition:all .15s;display:flex;flex-direction:column;align-items:center;gap:6px}
.vd-actions-grid button i{font-size:18px}
.vd-actions-grid button:active{transform:scale(.95)}
.vd-btn-share{background:rgba(37,211,102,.12);color:#25d366}
.vd-btn-edit{background:rgba(79,70,229,.12);color:var(--primary-light)}
.vd-btn-toggle{background:rgba(251,146,60,.12);color:#fb923c}

/* ── Edit Modal Fields ──────────────── */
.modal-label{display:block;font-size:12px;font-weight:600;color:var(--text-muted);margin-bottom:4px;margin-top:12px}
.modal-input{width:100%;padding:12px;background:var(--surface2);border: 1px solid var(--border);border-radius:10px;color:var(--text);font-size:14px;font-family:inherit;box-sizing:border-box;outline:none;transition:border-color .15s}
.modal-input:focus{border-color:var(--primary)}
textarea.modal-input{resize:vertical;min-height:44px}

/* ── Booking Cards ─────────────────── */
.booking-card{background:var(--surface);border-radius:var(--radius);padding:16px;margin-bottom:12px;border: 1px solid var(--border);position:relative}
.booking-card h4{font-size:15px;font-weight:700;margin-bottom:10px;display:flex;align-items:center}
.booking-row{display:flex;justify-content:space-between;padding:6px 0;border: 1px solid var(--border);font-size:13px}
.booking-row span:first-child{color:var(--text-muted);font-weight:500}
.booking-row span:last-child{font-weight:600}
.booking-route{font-size:13px;color:var(--primary-light);padding:6px 0;font-weight:600}
.booking-route i{margin-right:6px;opacity:.7}

/* Booking status badges */
.booking-status{display:inline-block;font-size:11px;font-weight:700;padding:4px 12px;border-radius:8px;text-transform:uppercase;letter-spacing:.5px;margin-top:10px}
.booking-confirmed{background:rgba(16,185,129,.15);color:#10b981;border:1px solid rgba(16,185,129,.25)}
.booking-pending{background:rgba(245,158,11,.15);color:#f59e0b;border:1px solid rgba(245,158,11,.25)}
.booking-rejected{background:rgba(239,68,68,.15);color:#ef4444;border:1px solid rgba(239,68,68,.25)}

/* Booking action buttons */
.btn-action{padding:8px 14px;border-radius:10px;font-size:12px;font-weight:700;cursor:pointer;border:none;font-family:inherit;transition:all .15s;min-height:36px}
.btn-action:active{transform:scale(.95)}
.btn-action:disabled{opacity:.35;pointer-events:none}
.btn-confirm{background:rgba(16,185,129,.15);color:#10b981}
.btn-reject{background:rgba(239,68,68,.15);color:#ef4444}
.btn-pending{background:rgba(245,158,11,.15);color:#f59e0b}
.btn-note{background:rgba(99,102,241,.14);color:#818cf8}

/* Notification unread highlight */
.notif-unread{border-left:3px solid var(--primary-light);background:rgba(79,70,229,.06)}

/* Notification badge (on tab icon) */
#notif-badge{position:absolute;top:-4px;right:-6px;min-width:18px;height:18px;background:#ef4444;color:var(--text);font-size:10px;font-weight:700;border-radius:9px;display:none;align-items:center;justify-content:center;padding:0 4px}

/* ═══════════════════════════════════════════════ */
/* 🏥 Patient Profile Card (Doctor module)        */
/* ═══════════════════════════════════════════════ */
.patient-profile-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);margin:8px 12px 12px;padding:16px;box-shadow:0 1px 4px rgba(0,0,0,.04)}
.patient-profile-header{font-size:15px;font-weight:700;color:var(--primary-light);margin-bottom:14px;display:flex;align-items:center;gap:8px}
.patient-profile-header i{font-size:16px}
.patient-profile-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.patient-field{background:var(--surface2);border-radius:10px;padding:10px 12px}
.patient-field-label{font-size:11px;font-weight:600;color:var(--text-muted);text-transform:uppercase;letter-spacing:.5px;display:flex;align-items:center;gap:5px;margin-bottom:4px}
.patient-field-label i{font-size:10px;color:var(--primary)}
.patient-field-value{font-size:13px;font-weight:500;color:var(--text);word-break:break-word;line-height:1.4}
.patient-records-header{font-size:13px;font-weight:700;color:var(--text-muted);margin:14px 0 8px;display:flex;align-items:center;gap:6px;padding-top:12px;border-top:1px solid var(--border)}
.patient-records-header i{color:var(--primary)}
.patient-record-row{display:flex;align-items:center;gap:8px;padding:8px 0;border-bottom:1px solid var(--surface2);font-size:13px}
.patient-record-row i{color:var(--primary-light);font-size:14px;flex-shrink:0;width:18px;text-align:center}
.patient-record-text{flex:1;color:var(--text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.patient-record-time{font-size:11px;color:var(--text-muted);flex-shrink:0}

/* ── Team Management & Role Badges ────── */
.role-badge{display:inline-block;padding:2px 10px;border-radius:20px;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.5px}
.role-owner{background:rgba(16,185,129,.15);color:#059669}
.role-admin{background:rgba(139,92,246,.15);color:#8B5CF6}
.role-doctor{background:rgba(59,130,246,.15);color:#3B82F6}
.role-receptionist{background:rgba(245,158,11,.15);color:#D97706}
.team-row{display:flex;align-items:center;justify-content:space-between;padding:10px 0;border-bottom:1px solid var(--surface2)}
.team-row:last-child{border-bottom:none}
.team-info{display:flex;align-items:center;gap:10px;flex:1;min-width:0}
.team-name{font-size:14px;font-weight:600;color:var(--text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.team-remove{background:none;border:none;color:var(--danger);font-size:16px;padding:6px 10px;cursor:pointer;border-radius:8px;transition:background .15s;min-width:36px;min-height:36px;display:flex;align-items:center;justify-content:center}
.team-remove:active{background:rgba(239,68,68,.1)}

/* ── Patient Profile Page ────────────────── */
.pp-vitals-banner{display:grid;grid-template-columns:repeat(auto-fit, minmax(65px, 1fr));gap:8px;margin:12px 0;padding:0}
.pp-vital-item{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:14px 4px;text-align:center;display:flex;flex-direction:column;align-items:center;gap:4px}
.pp-vital-item i{font-size:18px;color:var(--primary-light);margin-bottom:2px}
.pp-vital-val{font-size:13px;font-weight:700;color:var(--text);line-height:1.2;word-break:break-word}
.pp-vital-label{font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.5px;color:var(--text-muted)}
.bmi-normal{color:#059669}
.bmi-under{color:#3B82F6}
.bmi-over{color:#D97706}
.bmi-obese{color:#EF4444}
.pp-section{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:16px;margin-bottom:12px}
.pp-section-title{font-size:14px;font-weight:700;color:var(--primary-light);margin-bottom:14px;display:flex;align-items:center;gap:8px}
.pp-section-title i{font-size:15px}
.pp-detail-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.pp-detail-item{background:var(--surface2);border-radius:10px;padding:10px 12px}
.pp-detail-item.full{grid-column:1/-1}
.pp-detail-label{font-size:11px;font-weight:600;color:var(--text-muted);text-transform:uppercase;letter-spacing:.5px;display:flex;align-items:center;gap:5px;margin-bottom:4px}
.pp-detail-label i{font-size:10px;color:var(--primary)}
.pp-detail-value{font-size:13px;font-weight:500;color:var(--text);word-break:break-word;line-height:1.5}
.pp-socio-row{display:flex;flex-wrap:wrap;gap:6px;margin-top:12px;padding-top:12px;border-top:1px solid var(--border)}
.pp-socio-chip{background:var(--surface2);border-radius:20px;padding:4px 12px;font-size:12px;color:var(--text-muted);font-weight:500}
.pp-appt-timeline{display:flex;flex-direction:column;gap:0}
.pp-appt-card{display:flex;gap:12px;padding:12px 0;border-bottom:1px solid var(--surface2);position:relative}
.pp-appt-card:last-child{border-bottom:none}
.pp-appt-dot{width:12px;height:12px;border-radius:50%;flex-shrink:0;margin-top:4px;background:var(--text-muted);border:2px solid var(--surface)}
.pp-appt-card.completed .pp-appt-dot{background:var(--success)}
.pp-appt-card.confirmed .pp-appt-dot{background:var(--primary-light)}
.pp-appt-card.cancelled .pp-appt-dot{background:var(--danger)}
.pp-appt-card.pending .pp-appt-dot{background:var(--warning)}
.pp-appt-content{flex:1;min-width:0}
.pp-appt-top{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:4px}
.pp-appt-service{font-size:14px;font-weight:600;color:var(--text)}
.pp-appt-status{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.5px;padding:2px 8px;border-radius:12px}
.pp-appt-status.completed{background:rgba(16,185,129,.15);color:#059669}
.pp-appt-status.confirmed{background:rgba(59,130,246,.15);color:#3B82F6}
.pp-appt-status.cancelled{background:rgba(239,68,68,.15);color:#EF4444}
.pp-appt-status.pending{background:rgba(245,158,11,.15);color:#D97706}
.pp-appt-meta{font-size:12px;font-weight:600;color:var(--text);background:var(--surface2);padding:6px 12px;border-radius:20px;display:inline-flex;align-items:center;gap:6px;margin-bottom:6px;margin-top:2px}
.pp-appt-meta i{font-size:11px;color:var(--text-muted)}
.pp-appt-ts{font-size:11px;color:var(--text-muted);display:flex;align-items:center;gap:5px;margin-top:2px}
.pp-appt-ts i{font-size:11px}
.pp-appt-notes{font-size:12px;color:var(--text-muted);margin-top:4px;padding:6px 10px;background:var(--surface2);border-radius:8px;display:flex;align-items:flex-start;gap:6px}
.pp-appt-notes i{color:var(--warning);margin-top:2px;flex-shrink:0}
.pp-actions{display:flex;gap:10px;margin:16px 0 0;padding:0}
.pp-actions .btn-action{flex:1;padding:12px;font-size:14px;font-weight:600;border-radius:12px;display:flex;align-items:center;justify-content:center}

/* ── Alert Notifications ─────────────────── */
.notif-alert{border-left:4px solid #EF4444 !important;background:rgba(239,68,68,.04) !important}
.notif-unread{border-left:4px solid var(--primary) !important;background:rgba(16,185,129,.04)}

/* ── Desktop Layout Constraint ─────────────── */
@media (min-width: 640px) {
  html { background: #0f172a; display: flex; align-items: center; justify-content: center; min-height: 100vh; }
  body { width: 100%; max-width: 420px; height: 90vh; max-height: 900px; min-height: 600px; position: relative; border-radius: 24px; box-shadow: 0 25px 50px -12px rgba(0,0,0,0.5); border: 1px solid var(--border); overflow: hidden; background: var(--bg); }
  .sidebar, .chat-screen, .page-screen, .modal-overlay { position: absolute; }
  .login-screen { height: 100%; }
  .app { height: 100%; }
  /* Optional: Make scrollbars subtle on desktop */
  ::-webkit-scrollbar { width: 6px; }
  ::-webkit-scrollbar-thumb { background: rgba(255,255,255,0.1); border-radius: 3px; }
}

/* Patient Tracker Dashboard Elements */
.pulse-critical {
  animation: border-pulse-red 2s infinite ease-in-out;
  border-color: rgba(239, 68, 68, 0.4) !important;
}
@keyframes border-pulse-red {
  0% { box-shadow: 0 0 0 0 rgba(239, 68, 68, 0.2); }
  50% { box-shadow: 0 0 0 4px rgba(239, 68, 68, 0.4); }
  100% { box-shadow: 0 0 0 0 rgba(239, 68, 68, 0.2); }
}
.doc-card:hover {
  transform: translateY(-2px);
  border-color: rgba(255, 255, 255, 0.2) !important;
  background: rgba(255, 255, 255, 0.06) !important;
}
