@import "https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&display=swap";*,:before,:after{box-sizing:border-box;margin:0;padding:0}:root{--bg:#f8f9fb;--bg-card:#fff;--bg-sidebar:#0f172a;--bg-sidebar-hover:#1e293b;--bg-sidebar-active:#3b82f6;--text:#334155;--text-light:#64748b;--text-dark:#0f172a;--text-sidebar:#94a3b8;--text-sidebar-active:#fff;--border:#e2e8f0;--border-light:#f1f5f9;--primary:#3b82f6;--primary-light:#dbeafe;--primary-dark:#1d4ed8;--success:#10b981;--success-light:#d1fae5;--warning:#f59e0b;--warning-light:#fef3c7;--danger:#ef4444;--danger-light:#fee2e2;--purple:#8b5cf6;--purple-light:#ede9fe;--orange:#f97316;--radius:8px;--radius-lg:12px;--shadow-sm:0 1px 2px #0000000d;--shadow:0 1px 3px #0000001a, 0 1px 2px #0000000f;--shadow-md:0 4px 6px #00000012, 0 2px 4px #0000000f;--transition:.15s ease}body{color:var(--text);background:var(--bg);font-family:Inter,system-ui,-apple-system,sans-serif;font-size:14px;line-height:1.5}#root{height:100vh}.app-layout{height:100vh;display:flex;overflow:hidden}.sidebar{background:var(--bg-sidebar);width:240px;transition:width var(--transition);flex-direction:column;flex-shrink:0;display:flex}.sidebar.collapsed{width:64px}.sidebar.collapsed .sidebar-brand,.sidebar.collapsed .sidebar-link span,.sidebar.collapsed .sidebar-version{display:none}.sidebar-header{cursor:pointer;border-bottom:1px solid #ffffff0f;align-items:center;gap:10px;padding:16px;display:flex}.sidebar-logo-icon{color:var(--primary);flex-shrink:0;width:28px;height:28px}.sidebar-brand{color:#fff;white-space:nowrap;font-size:16px;font-weight:700}.sidebar-nav{flex-direction:column;flex:1;gap:2px;padding:8px;display:flex;overflow-y:auto}.sidebar-link{color:var(--text-sidebar);transition:all var(--transition);border-radius:6px;align-items:center;gap:10px;padding:8px 12px;font-size:13px;font-weight:500;text-decoration:none;display:flex}.sidebar-link:hover{background:var(--bg-sidebar-hover);color:#e2e8f0}.sidebar-link.active{background:var(--bg-sidebar-active);color:var(--text-sidebar-active)}.sidebar-footer{border-top:1px solid #ffffff0f;padding:12px 16px}.sidebar-version{color:var(--text-sidebar);font-size:11px}.main-area{flex-direction:column;flex:1;min-width:0;display:flex;overflow:hidden}.topbar{background:var(--bg-card);border-bottom:1px solid var(--border);flex-shrink:0;align-items:center;gap:16px;height:56px;padding:0 24px;display:flex}.topbar-menu-btn{cursor:pointer;color:var(--text);background:0 0;border:none;border-radius:4px;padding:4px;display:flex}.topbar-menu-btn:hover{background:var(--border-light)}.topbar-search{flex:1;max-width:480px;position:relative}.topbar-search input{border:1px solid var(--border);background:var(--bg);border-radius:6px;outline:none;width:100%;padding:8px 12px 8px 36px;font-size:13px}.topbar-search input:focus{border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-light)}.search-icon{color:var(--text-light);position:absolute;top:50%;left:10px;transform:translateY(-50%)}.topbar-actions{align-items:center;gap:12px;margin-left:auto;display:flex}.topbar-btn{cursor:pointer;color:var(--text-light);background:0 0;border:none;border-radius:6px;padding:6px;display:flex;position:relative}.topbar-btn:hover{background:var(--border-light);color:var(--text)}.notification-badge{background:var(--danger);color:#fff;border-radius:50%;justify-content:center;align-items:center;width:16px;height:16px;font-size:10px;font-weight:700;display:flex;position:absolute;top:0;right:0}.topbar-user{align-items:center;gap:8px;display:flex}.user-avatar{background:var(--primary);color:#fff;border-radius:50%;justify-content:center;align-items:center;width:32px;height:32px;font-size:12px;font-weight:600;display:flex}.user-name{color:var(--text-dark);font-size:13px;font-weight:500}.main-content{flex:1;padding:24px;overflow-y:auto}.page-header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-bottom:24px;display:flex}.page-header h1{color:var(--text-dark);margin:0;font-size:24px;font-weight:700}.page-date,.subtitle{color:var(--text-light);font-size:13px}.header-actions{align-items:center;gap:12px;display:flex}.btn{border:1px solid var(--border);cursor:pointer;background:var(--bg-card);color:var(--text);transition:all var(--transition);border-radius:6px;align-items:center;gap:6px;padding:8px 16px;font-size:13px;font-weight:500;display:inline-flex}.btn:hover{background:var(--border-light)}.btn-sm{padding:4px 10px;font-size:12px}.btn-lg{padding:12px 24px;font-size:15px}.btn-primary{background:var(--primary);color:#fff;border-color:var(--primary)}.btn-primary:hover{background:var(--primary-dark)}.btn-primary:disabled{opacity:.5;cursor:not-allowed}.btn-success{background:var(--success);color:#fff;border-color:var(--success)}.btn-success:hover{background:#059669}.btn-warning{background:var(--warning);color:#fff;border-color:var(--warning)}.btn-danger{background:var(--danger);color:#fff;border-color:var(--danger)}.btn-danger:hover{background:#dc2626}.btn-secondary{background:var(--bg);color:var(--text)}.card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);padding:20px}.card h3{color:var(--text-dark);margin-bottom:16px;font-size:15px;font-weight:600}.chart-card{min-height:320px}.chart-container{width:100%}.kpi-grid{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:16px;margin-bottom:24px;display:grid}.kpi-grid.four{grid-template-columns:repeat(4,1fr)}.kpi-card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);align-items:center;gap:14px;padding:16px 20px;display:flex}.kpi-icon{border-radius:10px;flex-shrink:0;justify-content:center;align-items:center;width:44px;height:44px;display:flex}.kpi-icon.blue{background:var(--primary-light);color:var(--primary)}.kpi-icon.green{background:var(--success-light);color:var(--success)}.kpi-icon.purple{background:var(--purple-light);color:var(--purple)}.kpi-icon.orange{background:var(--warning-light);color:var(--orange)}.kpi-content{flex-direction:column;display:flex}.kpi-value{color:var(--text-dark);font-size:22px;font-weight:700;line-height:1.2}.kpi-label{color:var(--text-light);font-size:12px}.kpi-trend{align-items:center;gap:2px;margin-left:auto;font-size:12px;font-weight:600;display:flex}.kpi-trend.up{color:var(--success)}.kpi-trend.down{color:var(--danger)}.kpi-badge{background:var(--primary-light);color:var(--primary);border-radius:99px;margin-left:auto;padding:2px 8px;font-size:11px;font-weight:600}.dashboard-grid{grid-template-columns:repeat(2,1fr);gap:16px;display:grid}.schedule-list{flex-direction:column;gap:8px;display:flex}.schedule-item{border-radius:var(--radius);border-left:3px solid var(--border);transition:background var(--transition);align-items:center;gap:12px;padding:10px 12px;display:flex}.schedule-item:hover{background:var(--border-light)}.schedule-item.priority-high{border-left-color:var(--danger)}.schedule-item.priority-urgent{border-left-color:var(--danger);border-left-width:4px}.schedule-item.priority-medium{border-left-color:var(--warning)}.schedule-item.priority-low{border-left-color:var(--success)}.schedule-time{color:var(--text-dark);min-width:48px;font-size:13px;font-weight:600}.schedule-info{flex:1}.schedule-info strong{color:var(--text-dark);font-size:13px;display:block}.schedule-info span{color:var(--text-light);font-size:12px}.schedule-crew{gap:4px;display:flex}.crew-badge{color:#fff;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:28px;height:28px;font-size:10px;font-weight:700;display:inline-flex}.crew-badge.large{width:40px;height:40px;font-size:13px}.crew-badge.xlarge{width:56px;height:56px;font-size:18px}.crew-dot{border-radius:50%;width:8px;height:8px;display:inline-block}.status-badge{text-transform:capitalize;white-space:nowrap;border-radius:99px;padding:2px 8px;font-size:11px;font-weight:600}.status-badge.status-scheduled{background:var(--primary-light);color:var(--primary)}.status-badge.status-in_progress,.status-badge.status-in-progress{background:var(--warning-light);color:#b45309}.status-badge.status-completed,.status-badge.status-paid{background:var(--success-light);color:#047857}.status-badge.status-cancelled,.status-badge.status-overdue,.status-badge.status-declined{background:var(--danger-light);color:var(--danger)}.status-badge.status-on_hold,.status-badge.status-draft,.status-badge.status-expired{color:var(--text-light);background:#f1f5f9}.status-badge.status-sent,.status-badge.status-viewed{background:var(--purple-light);color:var(--purple)}.status-badge.status-partial{color:#92400e;background:#fef3c7}.status-badge.status-approved{background:var(--success-light);color:#047857}.status-badge.status-available{background:var(--success-light);color:var(--success)}.status-badge.status-on_job{background:var(--warning-light);color:#b45309}.status-badge.status-break{color:var(--text-light);background:#f1f5f9}.status-badge.status-off_duty{background:var(--danger-light);color:var(--danger)}.status-dot{border-radius:50%;flex-shrink:0;width:8px;height:8px;display:inline-block}.status-dot.status-available{background:var(--success)}.status-dot.status-on_job,.status-dot.status-in_progress{background:var(--warning)}.status-dot.status-break,.status-dot.status-on_hold{background:var(--text-light)}.status-dot.status-off_duty,.status-dot.status-cancelled{background:var(--danger)}.status-dot.status-completed{background:var(--success)}.status-dot.status-scheduled{background:var(--primary)}.action-items{flex-direction:column;gap:8px;display:flex}.action-item{border-radius:var(--radius);background:var(--border-light);align-items:center;gap:10px;padding:10px 12px;font-size:13px;display:flex}.action-item.warning{background:var(--warning-light);color:#92400e}.action-item.info{background:var(--primary-light);color:var(--primary-dark)}.action-item.success{background:var(--success-light);color:#047857}.pipeline{flex-direction:column;gap:12px;display:flex}.pipeline-item{align-items:center;gap:12px;display:flex}.pipeline-bar{border-radius:4px;min-width:4px;height:24px;transition:width .3s}.pipeline-label{color:var(--text);min-width:90px;font-size:13px}.pipeline-count{color:var(--text-dark);font-size:13px;font-weight:600}.team-status-list{flex-direction:column;gap:8px;display:flex}.team-status-item{border-radius:var(--radius);align-items:center;gap:10px;padding:8px;display:flex}.team-status-item:hover{background:var(--border-light)}.team-status-info{flex:1}.team-status-info strong{color:var(--text-dark);font-size:13px;display:block}.team-status-info span{color:var(--text-light);font-size:12px}.schedule-page{flex-direction:column;gap:16px;display:flex}.schedule-page .page-header{flex-wrap:wrap}.view-toggle{border:1px solid var(--border);border-radius:6px;display:flex;overflow:hidden}.view-toggle button{background:var(--bg-card);color:var(--text);cursor:pointer;border:none;padding:6px 14px;font-size:13px;font-weight:500}.view-toggle button.active{background:var(--primary);color:#fff}.date-nav{align-items:center;gap:8px;display:flex}.date-nav button{border:1px solid var(--border);cursor:pointer;color:var(--text);background:0 0;border-radius:6px;padding:6px;display:flex}.date-nav button:hover{background:var(--border-light)}.date-label{color:var(--text-dark);text-align:center;min-width:200px;font-size:14px;font-weight:600}.schedule-page{position:relative}.calendar-grid{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-lg);flex:1;overflow:hidden}.calendar-header{border-bottom:1px solid var(--border);display:flex}.time-gutter{width:64px;color:var(--text-light);text-align:center;border-right:1px solid var(--border);flex-shrink:0;padding:8px;font-size:11px}.day-header{text-align:center;border-right:1px solid var(--border-light);flex:1;padding:8px}.day-header:last-child{border-right:none}.day-name{color:var(--text-light);text-transform:uppercase;font-size:11px;font-weight:600;display:block}.day-number{color:var(--text-dark);font-size:18px;font-weight:700;display:block}.today-circle{background:var(--primary);color:#fff;border-radius:50%;justify-content:center;align-items:center;width:32px;height:32px;display:inline-flex}.day-header.today{background:var(--primary-light)}.day-job-count{color:var(--text-light);font-size:10px}.calendar-body{max-height:500px;overflow-y:auto}.calendar-row{border-bottom:1px solid var(--border-light);min-height:64px;display:flex}.time-label{width:64px;color:var(--text-light);text-align:right;border-right:1px solid var(--border);flex-shrink:0;padding:4px 8px;font-size:11px}.calendar-cell{border-right:1px solid var(--border-light);flex:1;min-height:64px;padding:2px;position:relative}.calendar-cell:last-child{border-right:none}.calendar-cell:hover{background:var(--border-light)}.calendar-cell.drag-over{background:var(--primary-light);outline:2px dashed var(--primary);outline-offset:-2px}.calendar-event{cursor:grab;border-left:3px solid;border-radius:4px;margin:1px;padding:4px 6px;font-size:11px;position:relative;overflow:hidden}.calendar-event.priority-low{border-left-color:var(--success);color:#065f46;background:#d1fae5}.calendar-event.priority-medium{border-left-color:var(--warning);color:#92400e;background:#fef3c7}.calendar-event.priority-high{border-left-color:var(--danger);color:#991b1b;background:#fee2e2}.calendar-event.priority-urgent{color:#7f1d1d;background:#fee2e2;border-left-color:#7f1d1d}.calendar-event.status-completed{opacity:.6}.event-header{align-items:center;gap:2px;display:flex}.event-header strong{text-overflow:ellipsis;white-space:nowrap;font-size:11px;overflow:hidden}.event-customer,.event-time{opacity:.8;font-size:10px;display:block}.event-crew{gap:2px;margin-top:2px;display:flex}.drag-handle{opacity:.4;cursor:grab}.schedule-sidebar{background:var(--bg-card);border-left:1px solid var(--border);width:260px;height:calc(100vh - 56px);padding:16px;position:fixed;top:56px;right:0;overflow-y:auto}.schedule-sidebar h3{color:var(--text-dark);margin:16px 0 8px;font-size:14px;font-weight:600}.schedule-sidebar h3:first-child{margin-top:0}.feature-description{color:var(--text-light);margin-bottom:8px;font-size:12px}.unscheduled-list,.smart-slots{flex-direction:column;gap:6px;display:flex}.unscheduled-item{border-radius:var(--radius);border:1px dashed var(--border);cursor:grab;align-items:center;gap:8px;padding:8px;font-size:12px;display:flex}.unscheduled-item strong{color:var(--text-dark);font-size:12px;display:block}.unscheduled-item span{color:var(--text-light);font-size:11px}.unscheduled-item.dragging{opacity:.4;border-style:solid;border-color:var(--primary)}.unscheduled-item.priority-high{border-left:3px solid var(--danger)}.unscheduled-item.priority-urgent{border-left:3px solid #7f1d1d}.unscheduled-item.priority-medium{border-left:3px solid var(--warning)}.unscheduled-item.priority-low{border-left:3px solid var(--success)}.unscheduled-info{flex-direction:column;flex:1;gap:1px;display:flex}.unscheduled-info span{align-items:center;gap:3px;display:flex}.unscheduled-meta{flex-direction:column;align-items:flex-end;gap:4px;display:flex}.priority-dot{border-radius:50%;width:8px;height:8px}.priority-dot.priority-low{background:var(--success)}.priority-dot.priority-medium{background:var(--warning)}.priority-dot.priority-high{background:var(--danger)}.priority-dot.priority-urgent{background:#7f1d1d}.smart-slot{background:var(--primary-light);border-radius:var(--radius);justify-content:space-between;align-items:center;padding:8px 10px;font-size:12px;display:flex}.slot-time strong{color:var(--text-dark);font-size:13px;display:block}.slot-time span{color:var(--text-light);font-size:11px}.slot-info span{text-align:right;display:block}.drive-time{color:var(--success);font-weight:600}.crm-layout{gap:20px;height:calc(100vh - 140px);display:flex}.customer-list-panel{flex-direction:column;flex-shrink:0;gap:12px;width:380px;display:flex;overflow:hidden}.list-toolbar{flex-direction:column;gap:8px;display:flex}.toolbar-actions{gap:8px;display:flex}.search-box{flex:1;position:relative}.search-box input{border:1px solid var(--border);background:var(--bg-card);border-radius:6px;outline:none;width:100%;padding:8px 12px 8px 34px;font-size:13px}.search-box input:focus{border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-light)}.search-box svg{color:var(--text-light);position:absolute;top:50%;left:10px;transform:translateY(-50%)}.customer-list,.team-list{flex-direction:column;flex:1;gap:4px;display:flex;overflow-y:auto}.customer-card{border-radius:var(--radius);cursor:pointer;transition:all var(--transition);border:1px solid #0000;align-items:center;gap:10px;padding:10px 12px;display:flex}.customer-card:hover{background:var(--border-light)}.customer-card.selected{background:var(--primary-light);border-color:var(--primary)}.customer-avatar{color:#fff;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:36px;height:36px;font-size:12px;font-weight:700;display:flex}.customer-card-info{flex:1;min-width:0}.customer-card-info strong{color:var(--text-dark);font-size:13px;display:block}.customer-card-info>span{color:var(--text-light);font-size:12px}.customer-tags{flex-wrap:wrap;gap:4px;margin-top:2px;display:flex}.tag{background:var(--border-light);color:var(--text-light);border-radius:99px;padding:1px 6px;font-size:10px;font-weight:500}.customer-card-meta{text-align:right;flex-shrink:0}.customer-spent{color:var(--text-dark);font-size:13px;font-weight:600;display:block}.customer-jobs{color:var(--text-light);font-size:11px}.chevron{color:var(--text-light);flex-shrink:0}.customer-detail-panel{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-lg);flex:1;padding:24px;overflow-y:auto}.detail-header{border-bottom:1px solid var(--border);align-items:center;gap:16px;margin-bottom:24px;padding-bottom:16px;display:flex}.detail-avatar{color:#fff;border-radius:50%;justify-content:center;align-items:center;width:48px;height:48px;font-size:16px;font-weight:700;display:flex}.detail-header h2{margin:0;font-size:20px;font-weight:700}.customer-source{color:var(--text-light);text-transform:capitalize;font-size:12px}.customer-rating{gap:2px;margin-left:auto;display:flex}.star-filled{color:#f59e0b;fill:#f59e0b}.star-empty{color:#d1d5db}.detail-grid{flex-direction:column;gap:20px;display:flex}.detail-section h4{color:var(--text-light);text-transform:uppercase;letter-spacing:.5px;margin-bottom:8px;font-size:12px;font-weight:600}.contact-info .info-row{color:var(--text);align-items:center;gap:8px;padding:4px 0;font-size:13px;display:flex}.contact-info .info-row svg{color:var(--text-light);flex-shrink:0}.stat-grid{grid-template-columns:repeat(auto-fit,minmax(100px,1fr));gap:12px;display:grid}.stat-item{text-align:center;background:var(--bg);border-radius:var(--radius);padding:12px}.stat-value{color:var(--text-dark);font-size:18px;font-weight:700;display:block}.stat-label{color:var(--text-light);font-size:11px}.customer-notes{color:var(--text);background:var(--bg);border-radius:var(--radius);padding:12px;font-size:13px}.history-list{flex-direction:column;gap:6px;display:flex}.history-item{border-radius:var(--radius);align-items:center;gap:10px;padding:8px;font-size:13px;display:flex}.history-item:hover{background:var(--bg)}.history-item strong{color:var(--text-dark);display:block}.history-item span{color:var(--text-light);font-size:12px}.empty-text{color:var(--text-light);text-align:center;padding:16px;font-size:13px}.message-list-mini{flex-direction:column;gap:4px;display:flex}.message-mini{border-radius:var(--radius);align-items:flex-start;gap:6px;padding:6px 8px;font-size:12px;display:flex}.message-mini.inbound{background:var(--border-light)}.message-mini.outbound{background:var(--primary-light)}.message-dir{color:var(--text-light);font-weight:700}.message-text{color:var(--text);flex:1}.message-time{color:var(--text-light);white-space:nowrap;font-size:10px}.status-filters,.filter-dropdown{flex-wrap:wrap;gap:6px;display:flex}.status-filters.compact{padding:8px 0}.filter-chip{border:1px solid var(--border);background:var(--bg-card);color:var(--text);cursor:pointer;transition:all var(--transition);border-radius:99px;align-items:center;gap:4px;padding:4px 12px;font-size:12px;font-weight:500;display:inline-flex}.filter-chip:hover{border-color:var(--primary)}.filter-chip.active{background:var(--primary);color:#fff;border-color:var(--primary)}.filter-chip.sm{padding:2px 8px;font-size:11px}.chip-count{background:#fff3;border-radius:99px;padding:0 5px;font-size:10px}.filter-dropdown{position:relative}.dropdown-menu{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-md);z-index:10;min-width:140px;padding:4px;display:none;position:absolute;top:100%;left:0}.filter-dropdown:hover .dropdown-menu{display:block}.dropdown-menu button{text-align:left;cursor:pointer;width:100%;color:var(--text);background:0 0;border:none;border-radius:4px;padding:6px 10px;font-size:12px;display:block}.dropdown-menu button:hover{background:var(--border-light)}.jobs-page .toolbar{flex-wrap:wrap;align-items:center;gap:16px;margin-bottom:16px;display:flex}.jobs-list{flex-direction:column;gap:8px;display:flex}.job-card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-lg);transition:box-shadow var(--transition);overflow:hidden}.job-card:hover{box-shadow:var(--shadow)}.job-card.expanded{box-shadow:var(--shadow-md)}.job-card-header{cursor:pointer;align-items:center;gap:12px;padding:14px 16px;display:flex}.priority-indicator{border-radius:2px;flex-shrink:0;width:4px;height:36px}.priority-indicator.priority-low{background:var(--success)}.priority-indicator.priority-medium{background:var(--warning)}.priority-indicator.priority-high{background:var(--danger)}.priority-indicator.priority-urgent{background:#7f1d1d}.job-main-info{flex:1;min-width:0}.job-main-info h3{color:var(--text-dark);margin:0;font-size:14px;font-weight:600}.job-meta{flex-wrap:wrap;gap:14px;margin-top:4px;display:flex}.job-meta span{color:var(--text-light);align-items:center;gap:4px;font-size:12px;display:flex}.job-card-right{align-items:center;gap:10px;display:flex}.crew-badges{gap:-4px;display:flex}.job-card-body{border-top:1px solid var(--border-light);padding:16px}.job-detail-grid{flex-direction:column;gap:16px;display:flex}.job-detail-section h4{color:var(--text-light);text-transform:uppercase;letter-spacing:.5px;margin-bottom:6px;font-size:12px;font-weight:600}.job-detail-section p{color:var(--text);font-size:13px}.job-actions{border-top:1px solid var(--border-light);gap:8px;margin-top:16px;padding-top:12px;display:flex}.line-items-table{border-collapse:collapse;width:100%;font-size:13px}.line-items-table th{text-align:left;color:var(--text-light);text-transform:uppercase;border-bottom:2px solid var(--border);padding:8px 12px;font-size:11px;font-weight:600}.line-items-table td{border-bottom:1px solid var(--border-light);color:var(--text);padding:8px 12px}.line-items-table tr.optional{opacity:.7}.optional-badge{background:var(--warning-light);color:#92400e;border-radius:99px;margin-left:4px;padding:1px 5px;font-size:9px;font-weight:600}.line-items-table tfoot td{border-top:2px solid var(--border);border-bottom:none;font-size:14px}.split-layout{gap:20px;height:calc(100vh - 200px);display:flex}.list-panel{flex-direction:column;flex-shrink:0;gap:12px;width:340px;display:flex;overflow:hidden}.detail-panel{flex:1;overflow-y:auto}.document-list{flex-direction:column;flex:1;gap:4px;display:flex;overflow-y:auto}.document-card{border-radius:var(--radius);cursor:pointer;transition:all var(--transition);border:1px solid #0000;align-items:center;gap:10px;padding:10px 12px;display:flex}.document-card:hover{background:var(--border-light)}.document-card.selected{background:var(--primary-light);border-color:var(--primary)}.doc-status-icon{border-radius:8px;flex-shrink:0;justify-content:center;align-items:center;width:32px;height:32px;display:flex}.doc-status-icon.status-draft{color:var(--text-light);background:#f1f5f9}.doc-status-icon.status-sent,.doc-status-icon.status-viewed{background:var(--purple-light);color:var(--purple)}.doc-status-icon.status-approved,.doc-status-icon.status-paid{background:var(--success-light);color:var(--success)}.doc-status-icon.status-declined,.doc-status-icon.status-overdue{background:var(--danger-light);color:var(--danger)}.doc-status-icon.status-expired,.doc-status-icon.status-partial{background:var(--warning-light);color:var(--warning)}.doc-info{flex:1}.doc-info strong{color:var(--text-dark);font-size:13px;display:block}.doc-info span{color:var(--text-light);font-size:12px}.doc-meta{text-align:right}.doc-amount{color:var(--text-dark);font-size:14px;font-weight:600;display:block}.document-detail{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-lg);padding:24px}.document-header{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;margin-bottom:24px;padding-bottom:16px;display:flex}.document-header h2{margin:0 8px 0 0;font-size:20px;font-weight:700;display:inline}.document-actions{gap:8px;display:flex}.document-body{flex-direction:column;gap:20px;display:flex}.doc-parties{justify-content:space-between;display:flex}.doc-parties h4{color:var(--text-light);text-transform:uppercase;margin-bottom:4px;font-size:11px}.doc-parties strong{color:var(--text-dark);font-size:14px}.doc-parties p{color:var(--text);margin:2px 0;font-size:13px}.doc-dates{gap:24px;font-size:13px;display:flex}.doc-dates span{color:var(--text-light)}.doc-totals{flex-direction:column;align-items:flex-end;gap:4px;font-size:14px;display:flex}.doc-totals>div{justify-content:space-between;gap:32px;min-width:240px;padding:4px 0;display:flex}.doc-totals .total-row{color:var(--text-dark);border-top:2px solid var(--border);padding-top:8px;font-size:16px;font-weight:700}.doc-totals .paid-row{color:var(--success)}.doc-totals .balance-row{color:var(--danger);font-weight:700}.doc-notes{background:var(--bg);border-radius:var(--radius);padding:12px;font-size:13px}.doc-notes h4{color:var(--text-light);text-transform:uppercase;margin-bottom:4px;font-size:11px}.text-red{color:var(--danger)}.invoice-summary-bar{gap:16px;margin-bottom:20px;display:flex}.summary-card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);flex:1;align-items:center;gap:10px;padding:12px 16px;display:flex}.summary-card.warning{border-color:var(--warning)}.summary-card.success{border-color:var(--success)}.summary-value{color:var(--text-dark);font-size:18px;font-weight:700;display:block}.summary-label{color:var(--text-light);font-size:12px}.text-blue{color:var(--primary)}.text-orange{color:var(--warning)}.text-green{color:var(--success)}.payment-options h4{color:var(--text-light);text-transform:uppercase;margin-bottom:8px;font-size:12px;font-weight:600}.payment-method-grid{gap:12px;display:flex}.payment-method{border:1px solid var(--border);border-radius:var(--radius);text-align:center;color:var(--text);flex-direction:column;flex:1;align-items:center;gap:4px;padding:16px 20px;font-size:13px;display:flex}.payment-method .rate{color:var(--text-light);font-size:12px}.payment-method.highlight{border-color:var(--success);background:var(--success-light)}.payment-method.highlight .rate{color:var(--success);font-weight:600}.dispatch-layout{gap:20px;height:calc(100vh - 140px);display:flex}.dispatch-sidebar{flex-direction:column;flex-shrink:0;gap:8px;width:400px;display:flex;overflow-y:auto}.dispatch-sidebar h3{color:var(--text-dark);margin-bottom:8px;font-size:14px;font-weight:600}.route-filter{flex-wrap:wrap;gap:6px;margin-bottom:12px;display:flex}.route-card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-lg);overflow:hidden}.route-header{border-left:4px solid;align-items:center;gap:10px;padding:12px 14px;display:flex}.route-header strong{color:var(--text-dark);font-size:13px;display:block}.route-job-count{color:var(--text-light);margin-left:auto;font-size:12px}.route-stops{padding:0 12px}.route-stop{border-bottom:1px solid var(--border-light);align-items:flex-start;gap:10px;padding:10px 0;display:flex}.route-stop:last-child{border-bottom:none}.stop-number{background:var(--primary);color:#fff;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:24px;height:24px;font-size:11px;font-weight:700;display:flex}.stop-info{flex:1}.stop-info strong{color:var(--text-dark);font-size:13px;display:block}.stop-info span{color:var(--text-light);align-items:center;gap:4px;font-size:11px;display:flex}.route-summary{background:var(--bg);color:var(--text-light);justify-content:space-between;padding:8px 14px;font-size:12px;display:flex}.dispatch-map{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-lg);flex:1;position:relative;overflow:hidden}.map-placeholder{background:linear-gradient(135deg,#e8f0fe 0%,#f3e8ff 50%,#e8fff0 100%);width:100%;height:100%;position:relative}.map-grid{width:100%;height:100%;position:relative}.map-pin{color:#fff;width:32px;height:32px;box-shadow:var(--shadow);z-index:2;border-radius:50%;justify-content:center;align-items:center;font-size:12px;font-weight:700;display:flex;position:absolute;transform:translate(-50%,-50%)}.map-legend{border-radius:var(--radius);color:var(--text-light);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#ffffffe6;align-items:center;gap:8px;padding:8px 14px;font-size:12px;display:flex;position:absolute;bottom:16px;left:16px}.team-page .customer-list-panel{width:320px}.role-badge{color:var(--text-light);text-transform:capitalize;font-size:11px}.skills-list{flex-wrap:wrap;gap:6px;display:flex}.skill-badge{background:var(--bg);border:1px solid var(--border);color:var(--text);border-radius:99px;align-items:center;gap:4px;padding:4px 10px;font-size:12px;display:inline-flex}.availability-grid{flex-direction:column;gap:4px;display:flex}.avail-day{border-radius:var(--radius);justify-content:space-between;align-items:center;padding:6px 10px;font-size:13px;display:flex}.avail-day.available{background:var(--success-light)}.avail-day.off{background:var(--border-light)}.day-label{text-transform:capitalize;color:var(--text-dark);min-width:40px;font-weight:600}.avail-time{color:#047857;align-items:center;gap:4px;font-size:12px;display:flex}.avail-off{color:var(--text-light);font-size:12px}.messages-layout{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-lg);gap:0;height:calc(100vh - 140px);display:flex;overflow:hidden}.conversation-list-panel{border-right:1px solid var(--border);flex-direction:column;flex-shrink:0;width:340px;display:flex}.conversation-list-panel .search-box{padding:12px}.conversation-list{flex:1;overflow-y:auto}.conversation-item{cursor:pointer;border-bottom:1px solid var(--border-light);transition:background var(--transition);align-items:center;gap:10px;padding:12px;display:flex}.conversation-item:hover{background:var(--border-light)}.conversation-item.selected{background:var(--primary-light)}.conversation-item.unread{font-weight:600}.conv-avatar{color:#fff;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:40px;height:40px;font-size:13px;font-weight:700;display:flex}.conv-info{flex:1;min-width:0}.conv-header-row{justify-content:space-between;align-items:center;display:flex}.conv-header-row strong{color:var(--text-dark);font-size:13px}.conv-time{color:var(--text-light);font-size:11px}.conv-preview{color:var(--text-light);text-overflow:ellipsis;white-space:nowrap;align-items:center;gap:4px;font-size:12px;display:flex;overflow:hidden}.unread-badge{background:var(--primary);color:#fff;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:18px;height:18px;font-size:10px;font-weight:700;display:flex}.chat-panel{flex-direction:column;flex:1;display:flex}.chat-header{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;padding:12px 16px;display:flex}.chat-customer-info{align-items:center;gap:10px;display:flex}.chat-customer-info strong{color:var(--text-dark);font-size:14px;display:block}.chat-customer-info span{color:var(--text-light);font-size:12px}.channel-filter{gap:4px;display:flex}.chat-messages{flex-direction:column;flex:1;gap:8px;padding:16px;display:flex;overflow-y:auto}.chat-bubble{max-width:70%;display:flex}.chat-bubble.inbound{align-self:flex-start}.chat-bubble.outbound{align-self:flex-end}.bubble-content{border-radius:16px;padding:10px 14px;font-size:13px}.chat-bubble.inbound .bubble-content{background:var(--border-light);border-bottom-left-radius:4px}.chat-bubble.outbound .bubble-content{background:var(--primary);color:#fff;border-bottom-right-radius:4px}.bubble-meta{opacity:.7;align-items:center;gap:4px;margin-top:4px;font-size:10px;display:flex}.chat-input{border-top:1px solid var(--border);padding:12px 16px}.tone-selector{align-items:center;gap:6px;margin-bottom:8px;display:flex}.tone-label{color:var(--text-light);font-size:11px}.tone-chip{border:1px solid var(--border);background:var(--bg-card);color:var(--text);cursor:pointer;border-radius:99px;padding:2px 8px;font-size:11px}.tone-chip:hover{border-color:var(--primary)}.input-row{gap:8px;display:flex}.input-row input{border:1px solid var(--border);border-radius:20px;outline:none;flex:1;padding:10px 14px;font-size:13px}.input-row input:focus{border-color:var(--primary)}.send-btn{border-radius:50%;padding:10px}.chat-empty{color:var(--text-light);flex-direction:column;flex:1;justify-content:center;align-items:center;gap:8px;display:flex}.ai-receptionist-badge{background:var(--success-light);color:#047857;border-radius:99px;align-items:center;gap:6px;padding:4px 12px;font-size:12px;font-weight:600;display:flex}.booking-preview{justify-content:center;padding:20px 0;display:flex}.booking-widget{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-lg);width:640px;max-width:100%;box-shadow:var(--shadow-md);padding:32px}.booking-header{text-align:center;margin-bottom:24px}.booking-header h2{color:var(--text-dark);margin-bottom:4px;font-size:22px;font-weight:700}.booking-header p{color:var(--text-light);font-size:14px}.booking-steps{justify-content:center;gap:8px;margin-bottom:32px;display:flex}.booking-step{color:var(--text-light);border-radius:99px;align-items:center;gap:6px;padding:6px 12px;font-size:12px;display:flex}.booking-step.active{background:var(--primary);color:#fff;font-weight:600}.booking-step.complete{color:var(--success)}.step-number{border:2px solid var(--border);border-radius:50%;justify-content:center;align-items:center;width:24px;height:24px;font-size:12px;font-weight:700;display:flex}.booking-step.active .step-number{color:#fff;background:#fff3;border-color:#ffffff80}.booking-step.complete .step-number{border-color:var(--success);background:var(--success);color:#fff}.service-grid{grid-template-columns:repeat(3,1fr);gap:12px;margin-bottom:24px;display:grid}.service-card{border:2px solid var(--border);border-radius:var(--radius);cursor:pointer;text-align:center;transition:all var(--transition);flex-direction:column;align-items:center;gap:6px;padding:16px;display:flex}.service-card:hover{border-color:var(--primary)}.service-card.selected{border-color:var(--primary);background:var(--primary-light)}.service-icon{font-size:28px}.service-card strong{color:var(--text-dark);font-size:13px}.service-duration{color:var(--text-light);align-items:center;gap:4px;font-size:11px;display:flex}.service-price{color:var(--primary);font-size:13px;font-weight:600}.date-picker{margin-bottom:20px}.date-picker .date-nav{justify-content:center;align-items:center;gap:16px;margin-bottom:12px;display:flex}.date-picker .date-nav button{border:1px solid var(--border);cursor:pointer;background:0 0;border-radius:6px;padding:4px;display:flex}.date-picker .date-nav span{color:var(--text-dark);font-weight:600}.date-grid{grid-template-columns:repeat(7,1fr);gap:6px;display:grid}.date-cell{border:1px solid var(--border);border-radius:var(--radius);cursor:pointer;text-align:center;transition:all var(--transition);background:var(--bg-card);padding:10px 4px}.date-cell:hover:not(.disabled){border-color:var(--primary)}.date-cell.selected{background:var(--primary);color:#fff;border-color:var(--primary)}.date-cell.selected .date-day{color:#fffc}.date-cell.disabled{opacity:.4;cursor:not-allowed}.date-day{color:var(--text-light);font-size:10px;display:block}.date-num{color:var(--text-dark);font-size:16px;font-weight:700;display:block}.date-cell.selected .date-num{color:#fff}.time-picker h4{color:var(--text-dark);margin-bottom:8px;font-size:13px;font-weight:600}.time-grid{grid-template-columns:repeat(4,1fr);gap:6px;display:grid}.time-slot{border:1px solid var(--border);border-radius:var(--radius);cursor:pointer;text-align:center;background:var(--bg-card);transition:all var(--transition);padding:10px;font-size:13px;font-weight:500}.time-slot:hover:not(.unavailable){border-color:var(--primary)}.time-slot.selected{background:var(--primary);color:#fff;border-color:var(--primary)}.time-slot.unavailable{opacity:.3;cursor:not-allowed;text-decoration:line-through}.drive-hint{color:var(--text-light);margin-top:2px;font-size:10px;display:block}.time-slot.selected .drive-hint{color:#ffffffb3}.booking-nav{justify-content:space-between;margin-top:24px;display:flex}.form-grid{grid-template-columns:repeat(2,1fr);gap:12px;display:grid}.form-group{flex-direction:column;gap:4px;display:flex}.form-group.full-width{grid-column:span 2}.form-group label{color:var(--text-dark);align-items:center;gap:4px;font-size:12px;font-weight:600;display:flex}.form-group input,.form-group textarea{border:1px solid var(--border);border-radius:6px;outline:none;padding:10px 12px;font-family:inherit;font-size:13px}.form-group input:focus,.form-group textarea:focus{border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-light)}.booking-confirm{text-align:center}.confirm-icon{color:var(--success);margin-bottom:8px}.confirm-summary{text-align:left;background:var(--bg);border-radius:var(--radius);margin:16px 0;padding:16px}.confirm-row{color:var(--text);align-items:center;gap:10px;padding:6px 0;font-size:13px;display:flex}.confirm-row svg{color:var(--text-light)}.confirm-price{color:var(--text-dark);text-align:center;border-top:1px solid var(--border);margin-top:12px;padding-top:12px;font-size:18px;font-weight:700}.confirm-note{color:var(--text-light);margin:12px 0;font-size:12px}.report-tabs{border-bottom:2px solid var(--border);gap:4px;margin-bottom:20px;display:flex}.report-tab{color:var(--text-light);cursor:pointer;background:0 0;border:none;border-bottom:2px solid #0000;margin-bottom:-2px;padding:8px 16px;font-size:13px;font-weight:500}.report-tab:hover{color:var(--text)}.report-tab.active{color:var(--primary);border-bottom-color:var(--primary);font-weight:600}.reports-grid{grid-template-columns:repeat(2,1fr);gap:16px;display:grid}.reports-grid .span-2{grid-column:span 2}@media (width<=1024px){.sidebar{z-index:100;height:100vh;position:fixed;transform:translate(0)}.sidebar.collapsed{transform:translate(-100%)}.dashboard-grid{grid-template-columns:1fr}.crm-layout{flex-direction:column;height:auto}.customer-list-panel{width:100%}.split-layout{flex-direction:column;height:auto}.list-panel{width:100%}.dispatch-layout{flex-direction:column;height:auto}.dispatch-sidebar{width:100%}.messages-layout{flex-direction:column;height:80vh}.conversation-list-panel{border-right:none;border-bottom:1px solid var(--border);width:100%;height:200px}.kpi-grid.four{grid-template-columns:repeat(2,1fr)}.reports-grid{grid-template-columns:1fr}.reports-grid .span-2{grid-column:span 1}.service-grid{grid-template-columns:repeat(2,1fr)}.schedule-sidebar{display:none}}.modal-overlay{z-index:200;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:#0006;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.modal-container{background:var(--bg-card);border-radius:var(--radius-lg);flex-direction:column;width:90vw;max-width:560px;max-height:85vh;display:flex;box-shadow:0 20px 60px #0003}.modal-header{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;padding:16px 20px;display:flex}.modal-header h2{margin:0;font-size:16px;font-weight:700}.modal-close{cursor:pointer;color:var(--text-light);background:0 0;border:none;border-radius:4px;padding:4px;display:flex}.modal-close:hover{background:var(--border-light);color:var(--text)}.modal-body{flex:1;padding:20px;overflow-y:auto}.modal-footer{border-top:1px solid var(--border);justify-content:flex-end;gap:8px;padding:12px 20px;display:flex}.toast-container{z-index:300;flex-direction:column;gap:8px;display:flex;position:fixed;bottom:20px;right:20px}.toast{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-md);align-items:center;gap:10px;min-width:280px;padding:12px 16px;font-size:13px;animation:.3s slideIn;display:flex}.toast button{cursor:pointer;color:var(--text-light);background:0 0;border:none;margin-left:auto;padding:2px}.toast-success{border-left:3px solid var(--success)}.toast-success svg{color:var(--success)}.toast-warning{border-left:3px solid var(--warning)}.toast-warning svg{color:var(--warning)}.toast-info{border-left:3px solid var(--primary)}.toast-info svg{color:var(--primary)}.toast-error{border-left:3px solid var(--danger)}.toast-error svg{color:var(--danger)}@keyframes slideIn{0%{opacity:0;transform:translate(100%)}to{opacity:1;transform:translate(0)}}.form-group select{border:1px solid var(--border);background:var(--bg-card);border-radius:6px;outline:none;width:100%;padding:8px 12px;font-size:13px}.form-group select:focus{border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-light)}.form-group textarea{resize:vertical}.tag-input-row{gap:6px;display:flex}.tag-input-row input{flex:1}.tag.removable{cursor:pointer}.tag.removable:hover{background:var(--danger-light);color:var(--danger)}.tech-picker{flex-wrap:wrap;gap:6px;display:flex}.tech-chip{border:1px solid var(--border);background:var(--bg-card);color:var(--text);cursor:pointer;transition:all var(--transition);border-radius:99px;padding:4px 12px;font-size:12px;font-weight:500}.tech-chip:hover{border-color:var(--primary)}.tech-chip.active{background:var(--primary);color:#fff;border-color:var(--primary)}.line-items-table.editable input{border:1px solid var(--border);background:var(--bg-card);border-radius:4px;width:100%;padding:6px 8px;font-size:12px}.line-items-table.editable input:focus{border-color:var(--primary);outline:none}.line-items-table.editable input[type=number]{width:100%}.line-items-table.editable input[type=checkbox]{width:auto}.btn-icon{cursor:pointer;color:var(--text-light);background:0 0;border:none;border-radius:4px;padding:4px;display:flex}.btn-icon:hover{color:var(--danger);background:var(--danger-light)}.detail-actions{gap:6px;margin-left:auto;display:flex}.color-picker{gap:6px;display:flex}.color-swatch{cursor:pointer;border:3px solid #0000;border-radius:50%;width:28px;height:28px}.color-swatch.active{border-color:var(--text-dark);box-shadow:inset 0 0 0 2px #fff}.color-swatch:hover{transform:scale(1.1)}.availability-editor{flex-direction:column;gap:6px;display:flex}.avail-edit-row{align-items:center;gap:8px;font-size:13px;display:flex}.avail-toggle{cursor:pointer;text-transform:capitalize;align-items:center;gap:6px;min-width:70px;font-size:12px;font-weight:600;display:flex}.avail-toggle input[type=checkbox]{cursor:pointer}.avail-edit-row input[type=time]{border:1px solid var(--border);border-radius:4px;padding:4px 8px;font-size:12px}.reassign-row{margin-top:4px}.reassign-select{border:1px solid var(--border);background:var(--bg-card);cursor:pointer;border-radius:4px;width:100%;padding:2px 6px;font-size:11px}.topbar-search{position:relative}.search-clear{cursor:pointer;color:var(--text-light);background:0 0;border:none;padding:2px;display:flex;position:absolute;top:50%;right:8px;transform:translateY(-50%)}.search-results{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-md);z-index:50;max-height:320px;margin-top:4px;position:absolute;top:100%;left:0;right:0;overflow-y:auto}.search-result-item{cursor:pointer;text-align:left;background:0 0;border:none;align-items:center;gap:10px;width:100%;padding:10px 12px;font-size:13px;display:flex}.search-result-item:hover{background:var(--border-light)}.search-result-item svg{color:var(--text-light);flex-shrink:0}.search-result-item div{flex:1}.search-result-item strong{color:var(--text-dark);display:block}.search-result-item span{color:var(--text-light);font-size:11px}.result-type{text-transform:uppercase;color:var(--text-light);background:var(--border-light);border-radius:99px;padding:1px 6px;font-size:10px}.search-empty{text-align:center;color:var(--text-light);padding:16px;font-size:13px}.notification-wrapper{position:relative}.notification-dropdown{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-md);z-index:50;min-width:300px;margin-top:8px;position:absolute;top:100%;right:0}.notif-header{border-bottom:1px solid var(--border);padding:10px 14px}.notif-header strong{color:var(--text-dark);font-size:13px}.notif-item{cursor:pointer;text-align:left;width:100%;color:var(--text);background:0 0;border:none;align-items:center;gap:10px;padding:10px 14px;font-size:13px;display:flex}.notif-item:hover{background:var(--border-light)}.notif-item svg{flex-shrink:0}.tone-chip.active{background:var(--primary);color:#fff;border-color:var(--primary)}.ai-receptionist-badge.inactive{background:var(--border-light);color:var(--text-light)}.auth-page{background:linear-gradient(135deg,#0f172a 0%,#1e293b 50%,#0f172a 100%);justify-content:center;align-items:center;min-height:100vh;padding:20px;display:flex}.auth-card{background:var(--bg-card);border-radius:var(--radius-lg);width:420px;max-width:100%;padding:40px;box-shadow:0 20px 60px #0000004d}.auth-logo{justify-content:center;align-items:center;gap:10px;margin-bottom:24px;display:flex}.auth-logo svg{color:var(--primary)}.auth-logo h1{color:var(--text-dark);margin:0;font-size:24px;font-weight:700}.auth-card h2{color:var(--text-dark);text-align:center;margin:0 0 4px;font-size:20px;font-weight:700}.auth-subtitle{text-align:center;color:var(--text-light);margin-bottom:24px;font-size:14px}.auth-form{flex-direction:column;gap:14px;display:flex}.auth-field{border:1px solid var(--border);transition:all var(--transition);border-radius:8px;align-items:center;gap:10px;padding:10px 14px;display:flex}.auth-field:focus-within{border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-light)}.auth-field svg{color:var(--text-light);flex-shrink:0}.auth-field input{background:0 0;border:none;outline:none;flex:1;font-size:14px}.auth-options{justify-content:flex-end;display:flex}.auth-link{color:var(--primary);font-size:13px;font-weight:500;text-decoration:none}.auth-link:hover{text-decoration:underline}.auth-submit{justify-content:center;width:100%;margin-top:8px}.auth-footer{text-align:center;color:var(--text-light);margin-top:20px;font-size:13px}.auth-error{background:var(--danger-light);color:var(--danger);border-radius:var(--radius);text-align:center;padding:10px 14px;font-size:13px}.auth-loading{height:100vh;color:var(--text-light);flex-direction:column;justify-content:center;align-items:center;gap:12px;display:flex}.spinner{animation:1s linear infinite spin}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.admin-sidebar{background:#1a1025}.admin-sidebar .sidebar-link.active{background:var(--purple)}.admin-badge-bar{text-transform:uppercase;letter-spacing:1px;color:var(--purple);background:#8b5cf61a;border-radius:4px;align-items:center;gap:6px;margin:0 8px 8px;padding:6px 16px;font-size:10px;font-weight:700;display:flex}.admin-page .toolbar{flex-wrap:wrap;align-items:center;gap:16px;margin-bottom:16px;display:flex}.admin-table{border-collapse:collapse;width:100%;font-size:13px}.admin-table th{text-align:left;color:var(--text-light);text-transform:uppercase;border-bottom:2px solid var(--border);padding:10px 14px;font-size:11px;font-weight:600}.admin-table td{border-bottom:1px solid var(--border-light);color:var(--text);padding:10px 14px}.admin-table tr:hover td{background:var(--border-light)}.admin-table strong{color:var(--text-dark)}.tenant-name{color:var(--text-dark);background:var(--border-light);white-space:nowrap;border-radius:6px;padding:4px 10px;font-size:13px;font-weight:600}.user-menu-wrapper{position:relative}.topbar-user{cursor:pointer;background:0 0;border:none;border-radius:6px;align-items:center;gap:8px;padding:4px;display:flex}.topbar-user:hover{background:var(--border-light)}.user-dropdown{min-width:220px;right:0}
