:root{--bg-base: #0a0a0f;--bg-panel: rgba(255,255,255,.04);--bg-panel-hover:rgba(255,255,255,.07);--bg-input: rgba(255,255,255,.06);--border: rgba(255,255,255,.08);--border-bright: rgba(255,255,255,.18);--red: #e8354a;--red-dim: rgba(232,53,74,.15);--green: #22c55e;--green-dim: rgba(34,197,94,.12);--yellow: #f59e0b;--blue: #3b82f6;--blue-dim: rgba(59,130,246,.12);--text-primary: #f0f0f5;--text-secondary: #8888a0;--text-muted: #555568;--bubble-out-bg: rgba(232,53,74,.18);--bubble-out-border: rgba(232,53,74,.35);--bubble-in-bg: rgba(255,255,255,.06);--bubble-in-border: rgba(255,255,255,.1);--radius-sm: 6px;--radius-md: 12px;--radius-lg: 18px;--radius-xl: 24px;--font-sans: "Inter", system-ui, sans-serif;--font-mono: "JetBrains Mono", monospace;--header-h: 56px;--transition: .18s ease}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html,body{height:100%;overflow:hidden;background:var(--bg-base);color:var(--text-primary);font-family:var(--font-sans);font-size:14px;line-height:1.5;-webkit-font-smoothing:antialiased}#app{height:100%;display:flex;flex-direction:column}::-webkit-scrollbar{width:4px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--border-bright);border-radius:4px}.auth-screen{height:100%;display:flex;align-items:center;justify-content:center;background:radial-gradient(ellipse 80% 60% at 50% 0%,rgba(232,53,74,.12) 0%,transparent 70%),var(--bg-base)}.auth-card{width:100%;max-width:380px;padding:40px 36px;background:var(--bg-panel);-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);border:1px solid var(--border-bright);border-radius:var(--radius-xl);box-shadow:0 24px 80px #0009}.auth-logo{text-align:center;margin-bottom:32px}.auth-logo .wordmark{font-size:26px;font-weight:700;letter-spacing:-.5px;color:var(--text-primary)}.auth-logo .wordmark span{color:var(--red)}.auth-logo .subtitle{font-size:12px;color:var(--text-muted);letter-spacing:2px;text-transform:uppercase;margin-top:4px}.auth-card h2{font-size:18px;font-weight:600;margin-bottom:24px;color:var(--text-primary)}.field{margin-bottom:16px}.field label{display:block;font-size:12px;font-weight:500;color:var(--text-secondary);margin-bottom:6px;letter-spacing:.5px;text-transform:uppercase}.field input{width:100%;padding:11px 14px;background:var(--bg-input);border:1px solid var(--border);border-radius:var(--radius-md);color:var(--text-primary);font-family:var(--font-sans);font-size:14px;outline:none;transition:border-color var(--transition),box-shadow var(--transition)}.field input:focus{border-color:var(--red);box-shadow:0 0 0 3px var(--red-dim)}.btn-primary{width:100%;padding:12px;margin-top:8px;background:var(--red);color:#fff;border:none;border-radius:var(--radius-md);font-family:var(--font-sans);font-size:14px;font-weight:600;cursor:pointer;transition:opacity var(--transition),transform var(--transition)}.btn-primary:hover{opacity:.88}.btn-primary:active{transform:scale(.98)}.btn-primary:disabled{opacity:.4;cursor:not-allowed}.auth-error{margin-top:12px;padding:10px 14px;background:var(--red-dim);border:1px solid rgba(232,53,74,.3);border-radius:var(--radius-sm);color:var(--red);font-size:13px}.app-layout{height:100%;display:flex;flex-direction:column}.header{height:var(--header-h);min-height:var(--header-h);display:flex;align-items:center;padding:0 20px;gap:16px;background:#0a0a0fe6;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-bottom:1px solid var(--border);z-index:10}.header-logo{font-size:16px;font-weight:700;letter-spacing:-.3px;color:var(--text-primary);white-space:nowrap}.header-logo span{color:var(--red)}.header-divider{width:1px;height:24px;background:var(--border)}.status-pills{display:flex;gap:8px;flex:1}.pill{display:flex;align-items:center;gap:5px;padding:4px 10px;border-radius:99px;font-size:11px;font-weight:500;font-family:var(--font-mono);letter-spacing:.3px;border:1px solid transparent;transition:all var(--transition)}.pill-dot{width:6px;height:6px;border-radius:50%;flex-shrink:0}.pill.ok{background:var(--green-dim);border-color:#22c55e40;color:var(--green)}.pill.ok .pill-dot{background:var(--green);box-shadow:0 0 6px var(--green);animation:pulse-green 2s infinite}.pill.warn{background:#f59e0b1a;border-color:#f59e0b40;color:var(--yellow)}.pill.warn .pill-dot{background:var(--yellow)}.pill.error{background:var(--red-dim);border-color:#e8354a40;color:var(--red)}.pill.error .pill-dot{background:var(--red)}@keyframes pulse-green{0%,to{opacity:1}50%{opacity:.4}}.header-user{display:flex;align-items:center;gap:10px;margin-left:auto}.header-user-email{font-size:12px;color:var(--text-muted)}.btn-logout{padding:5px 12px;background:transparent;border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text-secondary);font-size:12px;cursor:pointer;transition:all var(--transition)}.btn-logout:hover{border-color:var(--border-bright);color:var(--text-primary)}.main-content{flex:1;display:flex;overflow:hidden;gap:0}.sidebar{width:280px;min-width:280px;border-right:1px solid var(--border);display:flex;flex-direction:column;overflow:hidden}.sidebar-section{padding:16px;border-bottom:1px solid var(--border)}.sidebar-section-title{font-size:10px;font-weight:600;letter-spacing:1.5px;text-transform:uppercase;color:var(--text-muted);margin-bottom:12px}.car-status-grid{display:grid;gap:8px}.car-stat{display:flex;justify-content:space-between;align-items:center;padding:8px 10px;background:var(--bg-panel);border:1px solid var(--border);border-radius:var(--radius-sm)}.car-stat-label{font-size:11px;color:var(--text-muted);text-transform:uppercase;letter-spacing:.5px}.car-stat-value{font-size:13px;font-weight:600;font-family:var(--font-mono);color:var(--text-primary)}.car-stat-value.green{color:var(--green)}.car-stat-value.red{color:var(--red)}.car-stat-value.yellow{color:var(--yellow)}.chat-panel{flex:1;display:flex;flex-direction:column;overflow:hidden;position:relative}.chat-header{padding:14px 20px;border-bottom:1px solid var(--border);display:flex;align-items:center;gap:12px;min-height:52px}.chat-header-title{font-size:14px;font-weight:600;color:var(--text-primary)}.chat-header-sub{font-size:12px;color:var(--text-muted);margin-left:auto;font-family:var(--font-mono)}.chat-messages{flex:1;overflow-y:auto;padding:20px 20px 8px;display:flex;flex-direction:column;gap:6px}.date-divider{display:flex;align-items:center;gap:10px;margin:12px 0}.date-divider:before,.date-divider:after{content:"";flex:1;height:1px;background:var(--border)}.date-divider span{font-size:11px;color:var(--text-muted);white-space:nowrap}.msg-row{display:flex;flex-direction:column;max-width:72%;animation:fadeSlideIn .2s ease}.msg-row.outgoing{align-self:flex-end;align-items:flex-end}.msg-row.incoming{align-self:flex-start;align-items:flex-start}@keyframes fadeSlideIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.msg-bubble{padding:10px 14px;border-radius:var(--radius-lg);position:relative;word-break:break-word;line-height:1.45;font-size:14px}.msg-row.outgoing .msg-bubble{background:var(--bubble-out-bg);border:1px solid var(--bubble-out-border);border-bottom-right-radius:var(--radius-sm);color:var(--text-primary)}.msg-row.incoming .msg-bubble{background:var(--bubble-in-bg);border:1px solid var(--bubble-in-border);border-bottom-left-radius:var(--radius-sm);color:var(--text-primary)}.msg-meta{display:flex;align-items:center;gap:5px;margin-top:3px;padding:0 2px}.msg-time{font-size:10px;color:var(--text-muted);font-family:var(--font-mono)}.msg-sender{font-size:10px;color:var(--text-muted);font-weight:500}.msg-ticks{font-size:12px;line-height:1;margin-left:2px}.msg-ticks.sent{color:var(--text-muted)}.msg-ticks.delivered{color:var(--text-secondary)}.msg-ticks.read{color:var(--green)}.unread-banner{padding:6px 14px;background:var(--green-dim);border:1px solid rgba(34,197,94,.2);border-radius:var(--radius-sm);margin:8px 0;font-size:11px;color:var(--green);text-align:center;align-self:stretch}.chat-input-area{padding:14px 20px 16px;border-top:1px solid var(--border);background:#0a0a0f99;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.chat-input-row{display:flex;gap:10px;align-items:flex-end}.chat-input{flex:1;padding:12px 16px;background:var(--bg-input);border:1px solid var(--border);border-radius:var(--radius-lg);color:var(--text-primary);font-family:var(--font-sans);font-size:14px;outline:none;resize:none;max-height:120px;overflow-y:auto;transition:border-color var(--transition),box-shadow var(--transition);scrollbar-width:none}.chat-input:focus{border-color:var(--red);box-shadow:0 0 0 3px var(--red-dim)}.chat-input::placeholder{color:var(--text-muted)}.btn-send{width:44px;height:44px;background:var(--red);border:none;border-radius:50%;color:#fff;cursor:pointer;display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:opacity var(--transition),transform var(--transition)}.btn-send:hover{opacity:.88}.btn-send:active{transform:scale(.92)}.btn-send:disabled{opacity:.3;cursor:not-allowed}.btn-send svg{width:18px;height:18px}.quick-buttons{display:flex;gap:6px;margin-bottom:10px;flex-wrap:wrap}.btn-quick{padding:5px 12px;background:var(--bg-panel);border:1px solid var(--border);border-radius:99px;color:var(--text-secondary);font-size:12px;font-weight:500;cursor:pointer;transition:all var(--transition);white-space:nowrap}.btn-quick:hover{border-color:var(--red);color:var(--red);background:var(--red-dim)}.chat-empty{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;color:var(--text-muted)}.chat-empty svg{opacity:.2}.chat-empty p{font-size:13px}.toast-container{position:fixed;bottom:24px;right:24px;display:flex;flex-direction:column;gap:8px;z-index:1000;pointer-events:none}.toast{padding:10px 16px;background:#1e1e28f5;border:1px solid var(--border-bright);border-radius:var(--radius-md);font-size:13px;color:var(--text-primary);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);animation:toastIn .2s ease;box-shadow:0 8px 24px #0006}.toast.success{border-color:#22c55e66;color:var(--green)}.toast.error{border-color:#e8354a66;color:var(--red)}@keyframes toastIn{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}
