:root{--color-bg-primary: #ffffff;--color-bg-secondary: #f5f5f5;--color-bg-tertiary: #e8e8e8;--color-border: #d0d0d0;--color-text-primary: #222222;--color-text-secondary: #444444;--color-text-tertiary: #666666;--color-text-muted: #999999;--color-status-pending: #f59e0b;--color-status-scheduled: #3b82f6;--color-status-in-progress: #f97316;--color-status-completed: #10b981;--color-status-cancelled: #ef4444;--color-status-available: #10b981;--color-status-busy: #f97316;--color-status-offline: #9ca3af;--color-load-normal: #10b981;--color-load-high: #f59e0b;--color-load-over: #ef4444;--font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--font-family-mono: "SF Mono", "Menlo", "Monaco", "Courier New", monospace;--font-size-xs: 11px;--font-size-sm: 12px;--font-size-base: 14px;--font-size-lg: 16px;--font-size-xl: 20px;--font-size-2xl: 24px;--font-size-3xl: 32px;--font-weight-normal: 400;--font-weight-medium: 500;--font-weight-semibold: 600;--font-weight-bold: 700;--line-height-tight: 1.2;--line-height-normal: 1.5;--line-height-relaxed: 1.75;--spacing-xs: 4px;--spacing-sm: 8px;--spacing-md: 12px;--spacing-lg: 16px;--spacing-xl: 24px;--spacing-2xl: 32px;--hit-target: 44px;--border-radius-sm: 4px;--border-radius-md: 6px;--shadow-sm: 0 1px 2px rgba(0, 0, 0, .05);--shadow-md: 0 2px 4px rgba(0, 0, 0, .08);--shadow-lg: 0 4px 8px rgba(0, 0, 0, .12)}body.dark-mode{--color-bg-primary: #1a1a1a;--color-bg-secondary: #222222;--color-bg-tertiary: #2d2d2d;--color-border: #404040;--color-text-primary: #f0f0f0;--color-text-secondary: #d0d0d0;--color-text-tertiary: #a0a0a0;--color-text-muted: #6b7280;--shadow-sm: 0 1px 2px rgba(0, 0, 0, .3);--shadow-md: 0 2px 4px rgba(0, 0, 0, .4);--shadow-lg: 0 4px 8px rgba(0, 0, 0, .5)}*{margin:0;padding:0;box-sizing:border-box}body{font-family:var(--font-family);font-size:var(--font-size-base);line-height:var(--line-height-normal);color:var(--color-text-primary);background-color:var(--color-bg-primary);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}button{font-family:inherit;cursor:pointer;border:none;background:none}.app-container{display:flex;flex-direction:column;min-height:100vh}.nav{display:flex;justify-content:space-between;align-items:center;padding:var(--spacing-md) var(--spacing-lg);border-bottom:1px solid var(--color-border);background-color:var(--color-bg-primary)}.nav-section-left{display:flex;align-items:center;gap:var(--spacing-xl)}.nav-section-right{display:flex;align-items:center;gap:var(--spacing-lg)}.brand{display:flex;align-items:center}.brand-logo{height:28px;width:auto;filter:drop-shadow(0 0 3px rgba(231,76,60,.3))}.brand-logo .logo-path{fill:#e74c3c;fill-opacity:.1;animation:logoFlicker 3s forwards,logoGlow 2s ease-in-out infinite 3s}@keyframes logoFlicker{0%,19%,21%,23%,25%,54%,56%{fill-opacity:.1;filter:drop-shadow(0 0 0 transparent)}20%,24%,55%{fill-opacity:.5;filter:drop-shadow(0 0 3px #e74c3c)}22%{fill-opacity:.3;filter:drop-shadow(0 0 1px #e74c3c)}57%,to{fill-opacity:1;filter:drop-shadow(0 0 5px #e74c3c)}}@keyframes logoGlow{0%,to{filter:drop-shadow(0 0 5px #e74c3c)}50%{filter:drop-shadow(0 0 10px #e74c3c)}}.nav-links{display:flex;gap:var(--spacing-xs)}.nav-btn{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;width:48px;height:44px;padding:4px 0 2px;color:var(--color-text-tertiary);background-color:transparent;border:1px solid transparent;border-radius:var(--border-radius-sm);transition:all .15s ease;cursor:grab;-webkit-user-select:none;user-select:none}.nav-btn svg{width:18px;height:18px;flex-shrink:0}.nav-btn span{font-size:9px;font-weight:var(--font-weight-medium);text-transform:uppercase;letter-spacing:.3px;line-height:1}.nav-btn:hover{background-color:var(--color-bg-secondary);color:var(--color-text-primary)}.nav-btn-active{background-color:var(--color-bg-tertiary);color:var(--color-text-primary);border-color:var(--color-border)}.nav-btn.dragging{opacity:.4;cursor:grabbing}.nav-btn-disabled{opacity:.35;cursor:not-allowed;pointer-events:none}.nav-btn-disabled:hover{background:transparent}.nav-btn-hidden,.permission-hidden{display:none!important}.nav-drop-zone{position:absolute;top:50%;transform:translateY(-50%);width:3px;height:28px;background-color:var(--color-status-scheduled);border-radius:2px;opacity:0;transition:opacity .15s ease;pointer-events:none;z-index:10;box-shadow:0 0 8px var(--color-status-scheduled)}.nav-drop-zone.active{opacity:1;animation:drop-zone-pulse .8s ease-in-out infinite}@keyframes drop-zone-pulse{0%,to{opacity:1;box-shadow:0 0 8px var(--color-status-scheduled)}50%{opacity:.7;box-shadow:0 0 12px var(--color-status-scheduled)}}.nav-links{position:relative}.connection-status{display:flex;flex-direction:row-reverse;align-items:center;gap:0;height:28px;width:28px;padding:0;border-radius:var(--border-radius-sm);background-color:var(--color-bg-secondary);border:1px solid var(--color-border);cursor:default;font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);text-transform:uppercase;letter-spacing:.5px;overflow:hidden;transition:width .2s ease,gap .2s ease,padding .2s ease}.connection-status:hover{width:100px;gap:var(--spacing-xs);padding:0 var(--spacing-sm)}.connection-icon{width:28px;height:28px;flex-shrink:0;display:flex;align-items:center;justify-content:center}.connection-icon svg{width:14px;height:14px;display:none}.connection-text{color:var(--color-text-muted);transition:color .3s ease,opacity .2s ease;white-space:nowrap;opacity:0}.connection-status:hover .connection-text{opacity:1}.connection-status .icon-offline{display:block;stroke:var(--color-text-muted)}.connection-status.disconnected .connection-text{color:var(--color-text-muted)}.connection-status.connecting .icon-offline{display:none}.connection-status.connecting .icon-connecting{display:block;stroke:var(--color-status-pending);animation:spin 1.5s linear infinite}.connection-status.connecting .connection-text{color:var(--color-status-pending)}.connection-status.connected.secure .icon-offline{display:none}.connection-status.connected.secure .icon-secure{display:block;stroke:var(--color-status-available)}.connection-status.connected.secure .connection-text{color:var(--color-status-available)}.connection-status.connected.insecure .icon-offline{display:none}.connection-status.connected.insecure .icon-insecure{display:block;stroke:var(--color-status-pending)}.connection-status.connected.insecure .connection-text{color:var(--color-status-pending)}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.notifications-wrapper{position:relative}.notifications-btn{min-height:var(--hit-target);min-width:var(--hit-target);display:flex;align-items:center;justify-content:center;border-radius:var(--border-radius-md);color:var(--color-text-secondary);transition:all .15s ease;position:relative}.notifications-btn:hover{background-color:var(--color-bg-secondary);color:var(--color-text-primary)}.notifications-btn svg{width:20px;height:20px}.notifications-badge{position:absolute;top:6px;right:6px;min-width:16px;height:16px;padding:0 4px;font-size:10px;font-weight:var(--font-weight-bold);line-height:16px;text-align:center;color:#fff;background-color:var(--color-status-cancelled);border-radius:8px;display:none}.notifications-badge.has-notifications{display:block}.notifications-dropdown{position:absolute;top:calc(100% + 8px);right:0;width:320px;max-height:400px;background-color:var(--color-bg-primary);border:1px solid var(--color-border);border-radius:var(--border-radius-md);box-shadow:var(--shadow-lg);z-index:1000;display:none;flex-direction:column;overflow:hidden}.notifications-dropdown.open{display:flex}.notifications-header{display:flex;justify-content:space-between;align-items:center;padding:var(--spacing-sm) var(--spacing-md);border-bottom:1px solid var(--color-border);background-color:var(--color-bg-secondary)}.notifications-title{font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);color:var(--color-text-primary)}.notifications-clear{font-size:var(--font-size-xs);color:var(--color-text-tertiary);cursor:pointer;transition:color .15s ease}.notifications-clear:hover{color:var(--color-status-cancelled)}.notifications-list{flex:1;overflow-y:auto;max-height:340px}.notifications-empty{padding:var(--spacing-xl);text-align:center;color:var(--color-text-muted);font-size:var(--font-size-sm)}.notification-item{display:flex;gap:var(--spacing-sm);padding:var(--spacing-sm) var(--spacing-md);border-bottom:1px solid var(--color-border);cursor:pointer;transition:background-color .15s ease}.notification-item:last-child{border-bottom:none}.notification-item:hover{background-color:var(--color-bg-secondary)}.notification-item.unread{background-color:color-mix(in srgb,var(--color-status-scheduled) 5%,var(--color-bg-primary))}.notification-item.unread:hover{background-color:color-mix(in srgb,var(--color-status-scheduled) 10%,var(--color-bg-primary))}.notification-icon{flex-shrink:0;width:16px;height:16px;margin-top:2px}.notification-icon.type-info{color:var(--color-status-scheduled)}.notification-icon.type-success{color:var(--color-status-completed)}.notification-icon.type-warning{color:var(--color-status-pending)}.notification-icon.type-error{color:var(--color-status-cancelled)}.notification-content{flex:1;min-width:0}.notification-message{font-size:var(--font-size-sm);color:var(--color-text-primary);line-height:var(--line-height-normal);margin-bottom:2px}.notification-time{font-size:var(--font-size-xs);color:var(--color-text-muted)}.notification-unread-dot{flex-shrink:0;width:8px;height:8px;background-color:var(--color-status-scheduled);border-radius:50%;margin-top:6px;display:none}.notification-item.unread .notification-unread-dot{display:block}.lang-toggle{min-height:var(--hit-target);min-width:var(--hit-target);display:flex;align-items:center;justify-content:center;border-radius:var(--border-radius-md);transition:all .15s ease}.lang-toggle:hover{background-color:var(--color-bg-secondary)}.lang-flag{width:24px;height:12px;border-radius:2px;box-shadow:0 0 0 1px #0000001a}.lang-flag-ro,body.lang-ro .lang-flag-en{display:none}body.lang-ro .lang-flag-ro{display:block}.theme-toggle{min-height:var(--hit-target);min-width:var(--hit-target);display:flex;align-items:center;justify-content:center;border-radius:var(--border-radius-md);color:var(--color-text-secondary);transition:all .15s ease}.theme-toggle:hover{background-color:var(--color-bg-secondary);color:var(--color-text-primary)}.theme-icon{width:20px;height:20px;stroke:var(--color-text-secondary);transition:stroke .15s ease}.theme-toggle:hover .theme-icon{stroke:var(--color-text-primary)}.theme-icon-moon,body.dark-mode .theme-icon-sun{display:none}body.dark-mode .theme-icon-moon{display:block}.account-btn{min-height:var(--hit-target);min-width:var(--hit-target);display:flex;align-items:center;justify-content:center;padding:0;border-radius:var(--border-radius-md);transition:all .15s ease}.account-btn:hover{background-color:var(--color-bg-secondary)}.account-avatar{width:32px;height:32px;display:flex;align-items:center;justify-content:center;font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);color:var(--color-bg-primary);background-color:var(--color-text-primary);border-radius:50%}.main-content{flex:1;display:flex;flex-direction:column}.view{display:none}.view-active{display:flex;flex-direction:column;flex:1;justify-content:flex-start}.view-header{display:flex;justify-content:space-between;align-items:center;padding:var(--spacing-sm) var(--spacing-lg);border-bottom:1px solid var(--color-border);background-color:var(--color-bg-primary);min-height:48px}.view-title-section{display:flex;align-items:center;gap:var(--spacing-lg)}.view-title-section h1{font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold);color:var(--color-text-primary);line-height:1}.view-meta{display:flex;gap:var(--spacing-md);align-items:center}.stat{font-size:var(--font-size-xs);color:var(--color-text-tertiary);font-family:var(--font-family-mono)}.stat:before{content:"";display:inline-block;width:4px;height:4px;background-color:var(--color-text-muted);border-radius:50%;margin-right:var(--spacing-xs)}.view-actions{display:flex;gap:var(--spacing-sm);align-items:center}.view-actions .sub-nav{display:flex;gap:2px;padding:2px;background-color:var(--color-bg-tertiary);border-radius:var(--border-radius-sm)}.view-actions .sub-nav-btn{position:relative;height:28px;padding:0 var(--spacing-sm);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);color:var(--color-text-tertiary);background-color:transparent;border-radius:calc(var(--border-radius-sm) - 2px);transition:all .15s ease}.view-actions .sub-nav-btn:hover{color:var(--color-text-primary)}.view-actions .sub-nav-btn-active{color:var(--color-text-primary);font-weight:var(--font-weight-semibold);background-color:var(--color-bg-primary);box-shadow:0 1px 2px #0000001a}.queue-badge{min-width:16px;height:16px;padding:0 4px;margin-left:4px;font-size:11px;font-weight:var(--font-weight-semibold);line-height:16px;text-align:center;color:var(--color-text-secondary);background-color:var(--color-bg-tertiary);border-radius:8px;display:inline-flex;align-items:center;justify-content:center;display:none}.queue-badge.has-items{display:inline-flex;color:var(--color-text-primary);background-color:var(--color-bg-secondary);border:1px solid var(--color-border)}.queue-badge.has-urgent{color:#b91c1c;background-color:#ef444426;border:1px solid rgba(239,68,68,.3);animation:queue-badge-pulse 1.5s ease-in-out infinite}@keyframes queue-badge-pulse{0%,to{opacity:1;box-shadow:0 0 #ef444466}50%{opacity:.8;box-shadow:0 0 0 4px #ef444400}}.subview{display:none;flex:1;flex-direction:column}.subview-active{display:flex}.btn{min-height:32px;padding:var(--spacing-xs) var(--spacing-md);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);border-radius:var(--border-radius-sm);transition:all .15s ease}.btn-primary{background-color:var(--color-text-primary);color:var(--color-bg-primary)}.btn-primary:hover{background-color:var(--color-text-secondary);box-shadow:var(--shadow-sm)}.btn-icon{min-height:28px;min-width:28px;padding:0;color:var(--color-text-secondary);border-radius:var(--border-radius-sm);font-size:var(--font-size-base)}.btn-icon:hover{background-color:var(--color-bg-tertiary);color:var(--color-text-primary)}.btn-menu{min-height:32px;min-width:32px;padding:0;display:flex;align-items:center;justify-content:center;background-color:var(--color-bg-secondary);border:1px solid var(--color-border);border-radius:var(--border-radius-sm);color:var(--color-text-secondary);transition:all .15s ease}.btn-menu:hover{background-color:var(--color-bg-tertiary);color:var(--color-text-primary);border-color:var(--color-text-tertiary)}.btn-menu svg{width:16px;height:18px}.calendar{display:flex;flex-direction:column;flex:1;padding:var(--spacing-lg);background-color:var(--color-bg-secondary)}.calendar-header{display:flex;justify-content:space-between;align-items:center;padding-bottom:var(--spacing-md);border-bottom:1px solid var(--color-border)}.calendar-header-left,.calendar-header-right{flex:1;display:flex;align-items:center}.calendar-header-right{display:flex;justify-content:flex-end}.date-navigator{display:flex;flex-direction:column;align-items:center;gap:2px}.date-nav-row{display:flex;gap:2px}.date-nav-row-top .date-nav-item{font-size:var(--font-size-xs);padding:2px var(--spacing-sm);color:var(--color-text-tertiary)}.date-nav-row-bottom .date-nav-item{font-size:var(--font-size-sm);padding:var(--spacing-xs) var(--spacing-md);color:var(--color-text-secondary)}.date-nav-item{font-weight:var(--font-weight-medium);border-radius:var(--border-radius-sm);white-space:nowrap;transition:all .1s ease}.date-nav-item:hover{background-color:var(--color-bg-tertiary);color:var(--color-text-primary)}.date-nav-item-active{background-color:var(--color-text-primary);color:var(--color-bg-primary)}.date-nav-item-active:hover{background-color:var(--color-text-secondary);color:var(--color-bg-primary)}.date-nav-item-today{position:relative}.date-nav-item-today:after{content:"";position:absolute;bottom:4px;left:50%;transform:translate(-50%);width:4px;height:4px;background-color:var(--color-status-scheduled);border-radius:50%}.date-nav-item-active.date-nav-item-today:after{background-color:var(--color-bg-primary)}.date-display{font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold);color:var(--color-text-primary)}.view-controls{display:flex;gap:var(--spacing-xs)}.view-control{min-height:32px;padding:var(--spacing-xs) var(--spacing-md);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);color:var(--color-text-secondary);border-radius:var(--border-radius-sm);transition:all .15s ease}.view-control:hover{background-color:var(--color-bg-tertiary);color:var(--color-text-primary)}.view-control-active{background-color:var(--color-bg-tertiary);color:var(--color-text-primary);font-weight:var(--font-weight-semibold)}.calendar-resources-header{display:flex;margin-top:var(--spacing-lg);background-color:var(--color-bg-primary);border:1px solid var(--color-border);border-bottom:none;border-radius:var(--border-radius-md) var(--border-radius-md) 0 0}.calendar-corner{flex-shrink:0;width:70px;border-right:1px solid var(--color-border);background-color:var(--color-bg-secondary)}.calendar-resources-header .resource-header{flex:1;min-width:200px;padding:var(--spacing-sm) var(--spacing-md);font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);color:var(--color-text-primary);background-color:var(--color-bg-primary);border-left:1px solid var(--color-border);text-align:center}.calendar-body{display:flex;background-color:var(--color-bg-primary);border:1px solid var(--color-border);border-radius:0 0 var(--border-radius-md) var(--border-radius-md);overflow:hidden}.time-column{flex-shrink:0;width:70px;border-right:1px solid var(--color-border);background-color:var(--color-bg-secondary)}.time-slot{height:30px;display:flex;align-items:flex-start;justify-content:center;padding-top:var(--spacing-xs);font-size:var(--font-size-xs);font-family:var(--font-family-mono);color:var(--color-text-tertiary)}.resource-row{flex:1;position:relative;min-width:200px;border-left:1px solid var(--color-border);height:660px}.resource-row:after{content:"";position:absolute;inset:0;background-image:repeating-linear-gradient(to bottom,transparent,transparent 29px,var(--color-border) 29px,var(--color-border) 30px);pointer-events:none;opacity:.5}.appointment-slot{position:absolute;left:var(--spacing-sm);right:var(--spacing-sm);padding:var(--spacing-sm);border-radius:var(--border-radius-sm);cursor:pointer;transition:all .15s ease;overflow:hidden}.appointment-slot:hover{transform:scale(1.01);box-shadow:var(--shadow-md)}.appointment-pending{background-color:var(--color-status-pending);color:#fff}.appointment-scheduled{background-color:var(--color-status-scheduled);color:#fff}.appointment-in-progress{background-color:var(--color-status-in-progress);color:#fff}.appointment-completed{background-color:var(--color-status-completed);color:#fff;opacity:.6}.appointment-info{display:flex;flex-direction:column;gap:2px}.appointment-client{font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold)}.appointment-service{font-size:var(--font-size-xs);opacity:.9}.appointment-time{font-size:var(--font-size-xs);opacity:.8}.table-container{flex:1;overflow:auto;background-color:var(--color-bg-primary);border:1px solid var(--color-border);border-radius:var(--border-radius-md)}.data-table{width:100%;border-collapse:collapse;font-size:var(--font-size-base)}.data-table thead{position:sticky;top:0;z-index:5;background-color:var(--color-bg-secondary);border-bottom:1px solid var(--color-border)}.data-table th{padding:var(--spacing-md) var(--spacing-lg);text-align:left;font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);color:var(--color-text-secondary);white-space:nowrap}.data-table tbody tr{border-bottom:1px solid var(--color-border);transition:background-color .1s ease}.data-table tbody tr:hover{background-color:var(--color-bg-secondary)}.data-table td{padding:var(--spacing-md) var(--spacing-lg);color:var(--color-text-primary)}.cell-primary{font-weight:var(--font-weight-medium)}.cell-load{font-family:var(--font-family-mono);font-weight:var(--font-weight-medium)}.cell-load-high{color:var(--color-load-high);font-weight:var(--font-weight-semibold)}.cell-mono{font-family:var(--font-family-mono);font-size:var(--font-size-sm)}.cell-count{display:inline-flex;align-items:center;justify-content:center;min-width:24px;padding:2px 8px;font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);background-color:var(--color-bg-tertiary);border-radius:var(--border-radius-sm)}.cell-plate{font-family:var(--font-family-mono);font-weight:var(--font-weight-semibold);letter-spacing:.05em}.cell-vin{font-size:var(--font-size-xs);color:var(--color-text-tertiary);max-width:180px;overflow:hidden;text-overflow:ellipsis}.cell-link{color:var(--color-status-scheduled);text-decoration:none;font-weight:var(--font-weight-medium)}.cell-link:hover{text-decoration:underline}.badge{display:inline-block;padding:2px 8px;font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);border-radius:var(--border-radius-sm);background-color:var(--color-bg-tertiary);color:var(--color-text-secondary)}.badge-type{white-space:nowrap}.badge-role{font-weight:var(--font-weight-semibold);text-transform:uppercase;letter-spacing:.03em}.badge-admin{background-color:#8b5cf626;color:#7c3aed}.badge-manager{background-color:#3b82f626;color:#2563eb}.badge-mechanic{background-color:#10b98126;color:#059669}.badge-receptionist{background-color:#f59e0b26;color:#d97706}.status{display:inline-block;padding:4px 10px;font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);border-radius:var(--border-radius-sm);text-transform:uppercase;letter-spacing:.05em}.status-available{background-color:#10b9811a;color:var(--color-status-available)}.status-busy{background-color:#f973161a;color:var(--color-status-busy)}.status-offline{background-color:#9ca3af1a;color:var(--color-status-offline)}.status-locked{background-color:#ef44441a;color:var(--color-status-cancelled)}.action-menu-wrapper{position:relative;display:inline-block}.action-menu{position:absolute;top:calc(100% + 4px);right:0;min-width:160px;background-color:var(--color-bg-primary);border:1px solid var(--color-border);border-radius:var(--border-radius-md);box-shadow:var(--shadow-lg);z-index:1000;display:none;flex-direction:column;overflow:hidden;padding:var(--spacing-xs) 0}.action-menu.open{display:flex}.action-menu-item{display:flex;align-items:center;gap:var(--spacing-sm);padding:var(--spacing-sm) var(--spacing-md);font-size:var(--font-size-sm);color:var(--color-text-secondary);cursor:pointer;transition:background-color .15s ease,color .15s ease;border:none;background:none;width:100%;text-align:left}.action-menu-item:hover{background-color:var(--color-bg-secondary);color:var(--color-text-primary)}.action-menu-item svg{width:16px;height:16px;flex-shrink:0}.action-menu-item.danger{color:var(--color-status-cancelled)}.action-menu-item.danger:hover{background-color:#ef44441a;color:var(--color-status-cancelled)}.action-menu-item.success{color:var(--color-status-completed)}.action-menu-item.success:hover{background-color:#10b9811a;color:var(--color-status-completed)}.action-menu-divider{height:1px;background-color:var(--color-border);margin:var(--spacing-xs) 0}.action-menu-item[hidden]{display:none}.queue-container{flex:1;padding:var(--spacing-lg);background-color:var(--color-bg-secondary);overflow-y:auto}.queue-list{display:flex;flex-direction:column;gap:var(--spacing-sm);max-width:900px}.queue-item{display:flex;align-items:flex-start;gap:var(--spacing-md);padding:var(--spacing-md) var(--spacing-lg);background-color:var(--color-bg-primary);border:1px solid var(--color-border);border-radius:var(--border-radius-md);transition:box-shadow .15s ease}.queue-item:hover{box-shadow:var(--shadow-sm)}.queue-item-priority{flex-shrink:0;width:70px}.priority-badge{display:inline-block;padding:3px 8px;font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);text-transform:uppercase;letter-spacing:.03em;border-radius:var(--border-radius-sm)}.priority-urgent{background-color:#ef444426;color:#dc2626}.priority-high{background-color:#f9731626;color:#ea580c}.priority-normal{background-color:#3b82f626;color:#2563eb}.priority-low{background-color:#9ca3af26;color:var(--color-text-tertiary)}.queue-item-content{flex:1;min-width:0}.queue-item-header{display:flex;align-items:baseline;gap:var(--spacing-md);margin-bottom:var(--spacing-xs)}.queue-client{font-size:var(--font-size-base);font-weight:var(--font-weight-semibold);color:var(--color-text-primary)}.queue-vehicle{font-size:var(--font-size-sm);color:var(--color-text-tertiary)}.queue-item-service{font-size:var(--font-size-sm);color:var(--color-text-secondary);margin-bottom:var(--spacing-sm)}.queue-item-meta{display:flex;gap:var(--spacing-lg);font-size:var(--font-size-xs);color:var(--color-text-muted)}.queue-source{font-weight:var(--font-weight-medium)}.queue-item-actions{flex-shrink:0}.btn-small{min-height:32px;padding:var(--spacing-xs) var(--spacing-md);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);background-color:var(--color-bg-tertiary);color:var(--color-text-primary);border-radius:var(--border-radius-sm);transition:background-color .15s ease}.btn-small:hover{background-color:var(--color-text-primary);color:var(--color-bg-primary)}.btn-small:disabled{opacity:.4;cursor:not-allowed}.btn-small:disabled:hover{background-color:var(--color-bg-tertiary);color:var(--color-text-primary)}.dashboards-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:var(--spacing-lg);padding:var(--spacing-lg);background-color:var(--color-bg-secondary)}.dashboard-card{display:flex;flex-direction:column;background-color:var(--color-bg-primary);border:1px solid var(--color-border);border-radius:var(--border-radius-md);overflow:hidden;transition:box-shadow .15s ease}.dashboard-card:hover{box-shadow:var(--shadow-md)}.dashboard-card-header{display:flex;align-items:center;gap:var(--spacing-sm);padding:var(--spacing-md) var(--spacing-lg);border-bottom:1px solid var(--color-border)}.dashboard-status-indicator{width:8px;height:8px;border-radius:50%;flex-shrink:0}.dashboard-online .dashboard-status-indicator{background-color:var(--color-status-available);box-shadow:0 0 6px var(--color-status-available)}.dashboard-offline .dashboard-status-indicator{background-color:var(--color-status-offline)}.dashboard-name{flex:1;font-size:var(--font-size-base);font-weight:var(--font-weight-semibold);color:var(--color-text-primary)}.dashboard-offline .dashboard-name{color:var(--color-text-tertiary)}.dashboard-card-body{padding:var(--spacing-lg);display:flex;flex-direction:column;gap:var(--spacing-md)}.dashboard-preview{display:flex;flex-direction:column;gap:var(--spacing-xs);padding:var(--spacing-md);background-color:var(--color-bg-secondary);border-radius:var(--border-radius-sm)}.dashboard-preview-label{font-size:var(--font-size-xs);color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.05em}.dashboard-preview-view{font-size:var(--font-size-base);font-weight:var(--font-weight-medium);color:var(--color-text-primary)}.dashboard-offline .dashboard-preview-view{color:var(--color-text-tertiary)}.dashboard-info{display:flex;flex-direction:column;gap:var(--spacing-xs)}.dashboard-info-row{display:flex;justify-content:space-between;align-items:center;font-size:var(--font-size-sm)}.dashboard-info-label{color:var(--color-text-tertiary)}.dashboard-info-value{color:var(--color-text-secondary)}.dashboard-info-value.status-offline{color:var(--color-status-cancelled)}.dashboard-card-actions{display:flex;gap:var(--spacing-sm);padding:var(--spacing-md) var(--spacing-lg);border-top:1px solid var(--color-border);background-color:var(--color-bg-secondary)}.command-palette{display:none;position:fixed;inset:0;z-index:1000}.command-palette-active{display:flex;align-items:start;justify-content:center;padding-top:15vh}.command-palette-backdrop{position:absolute;inset:0;background-color:#00000080;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.command-palette-container{position:relative;width:100%;max-width:600px;background-color:var(--color-bg-primary);border:1px solid var(--color-border);border-radius:var(--border-radius-md);box-shadow:var(--shadow-lg);overflow:hidden}.command-input{width:100%;padding:var(--spacing-lg);font-size:var(--font-size-lg);font-weight:var(--font-weight-normal);color:var(--color-text-primary);background-color:var(--color-bg-primary);border:none;outline:none}.command-input::placeholder{color:var(--color-text-muted)}.command-list{max-height:400px;overflow-y:auto;border-top:1px solid var(--color-border)}.command-category{padding:var(--spacing-sm) var(--spacing-lg);font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);color:var(--color-text-tertiary);text-transform:uppercase;letter-spacing:.05em;background-color:var(--color-bg-secondary)}.command-item{display:flex;align-items:center;gap:var(--spacing-md);padding:var(--spacing-md) var(--spacing-lg);font-size:var(--font-size-base);color:var(--color-text-primary);cursor:pointer;transition:background-color .1s ease}.command-item:hover{background-color:var(--color-bg-secondary)}.command-icon{font-size:var(--font-size-lg);width:24px;text-align:center}.command-text{flex:1}.command-shortcut{font-size:var(--font-size-sm);color:var(--color-text-tertiary);font-family:var(--font-family-mono)}.shortcut-hint{position:fixed;bottom:var(--spacing-lg);right:var(--spacing-lg);display:flex;align-items:center;gap:var(--spacing-xs);padding:var(--spacing-sm) var(--spacing-md);background-color:var(--color-bg-secondary);border:1px solid var(--color-border);border-radius:var(--border-radius-sm);font-size:var(--font-size-sm);color:var(--color-text-tertiary);pointer-events:none}.shortcut-key{padding:2px 6px;font-size:var(--font-size-xs);font-family:var(--font-family-mono);font-weight:var(--font-weight-medium);background-color:var(--color-bg-primary);border:1px solid var(--color-border);border-radius:var(--border-radius-sm)}.shortcut-text{color:var(--color-text-secondary)}.debug-panel{display:none;position:fixed;width:500px;background-color:var(--color-bg-primary);border:2px solid var(--color-status-in-progress);border-radius:var(--border-radius-md);box-shadow:var(--shadow-lg);font-size:var(--font-size-sm);z-index:10000;overflow:hidden;transition:top .15s ease,bottom .15s ease,left .15s ease,right .15s ease}.debug-panel.debug-bottom-left{bottom:var(--spacing-lg);left:var(--spacing-lg)}.debug-panel.debug-bottom-right{bottom:var(--spacing-lg);right:var(--spacing-lg)}.debug-panel.debug-top-left{top:var(--spacing-lg);left:var(--spacing-lg)}.debug-panel.debug-top-right{top:var(--spacing-lg);right:var(--spacing-lg)}.debug-panel.debug-active{display:block}.debug-header{display:flex;align-items:center;gap:var(--spacing-sm);padding:var(--spacing-xs) var(--spacing-sm);background-color:var(--color-status-in-progress);color:#fff;font-weight:var(--font-weight-semibold);font-size:var(--font-size-xs);text-transform:uppercase;letter-spacing:.05em}.debug-indicator{width:8px;height:8px;background-color:#fff;border-radius:50%;animation:debug-pulse 1s ease-in-out infinite}@keyframes debug-pulse{0%,to{opacity:1}50%{opacity:.5}}.debug-exit-hint{margin-left:auto;display:flex;flex-direction:column;align-items:center;gap:0;padding:2px 6px;background-color:#ffffff26;border-radius:var(--border-radius-sm);line-height:1}.debug-exit-label{font-size:9px;font-weight:var(--font-weight-semibold);opacity:.9;letter-spacing:.08em;margin-top:-1px}.debug-exit-keys{display:flex;align-items:center;gap:2px}.debug-exit-hint kbd{padding:1px 4px;background-color:#ffffff40;border-radius:2px;font-family:var(--font-family-mono);font-size:9px;font-weight:var(--font-weight-semibold)}.debug-body{display:flex}.debug-content{flex:1;display:flex;flex-direction:column;gap:var(--spacing-xs);padding:var(--spacing-sm) var(--spacing-md);border-right:1px solid var(--color-border)}.debug-row{display:flex;gap:var(--spacing-sm);align-items:flex-start}.debug-hierarchy-panel{width:180px;padding:var(--spacing-sm);display:flex;flex-direction:column;gap:var(--spacing-xs)}.debug-hierarchy-title{font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);color:var(--color-text-tertiary);text-transform:uppercase;letter-spacing:.05em}.debug-label{font-weight:var(--font-weight-semibold);color:var(--color-text-tertiary);font-size:var(--font-size-xs);text-transform:uppercase;white-space:nowrap}.debug-value{font-family:var(--font-family-mono);font-size:var(--font-size-xs);color:var(--color-text-primary);word-break:break-all}.debug-classes,.debug-data{display:flex;flex-wrap:wrap;gap:4px}.debug-class-item,.debug-data-item{padding:2px 6px;background-color:var(--color-bg-tertiary);border-radius:var(--border-radius-sm);font-size:var(--font-size-xs)}.debug-hierarchy-stack{display:flex;flex-direction:column;gap:2px;flex:1;overflow-y:auto}.debug-hierarchy-item{padding:2px 6px;background-color:var(--color-bg-secondary);border-radius:var(--border-radius-sm);font-size:var(--font-size-xs);font-family:var(--font-family-mono);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.toast-container{position:fixed;top:60px;right:var(--spacing-lg);z-index:10000;display:flex;flex-direction:column;gap:var(--spacing-sm);pointer-events:none;max-width:380px;width:100%}.toast{position:relative;display:flex;align-items:flex-start;gap:var(--spacing-sm);padding:var(--spacing-md) var(--spacing-lg);padding-bottom:calc(var(--spacing-md) + 3px);background-color:var(--color-bg-primary);border:1px solid var(--color-border);border-radius:var(--border-radius-md);box-shadow:var(--shadow-lg);pointer-events:auto;overflow:hidden;transform:translate(0);opacity:1;transition:transform .3s ease,opacity .3s ease}.toast.toast-enter{animation:toast-slide-in .3s ease forwards}@keyframes toast-slide-in{0%{transform:translate(100%);opacity:0}to{transform:translate(0);opacity:1}}.toast.toast-exit{animation:toast-slide-out .3s ease forwards}@keyframes toast-slide-out{0%{transform:translate(0);opacity:1}to{transform:translate(100%);opacity:0}}.toast-icon{flex-shrink:0;width:18px;height:18px;margin-top:2px}.toast-content{flex:1;min-width:0}.toast-title{font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);color:var(--color-text-primary);margin-bottom:2px}.toast-message{font-size:var(--font-size-sm);color:var(--color-text-secondary);line-height:var(--line-height-normal)}.toast-tag{display:inline-block;padding:1px 5px;margin-left:4px;font-size:10px;font-weight:var(--font-weight-semibold);text-transform:uppercase;letter-spacing:.5px;border-radius:3px;vertical-align:middle}.toast-tag-warning{background-color:#ef444426;color:#ef4444;border:1px solid rgba(239,68,68,.3)}.toast-tag-info{background-color:#3b82f626;color:#3b82f6;border:1px solid rgba(59,130,246,.3)}.toast-tag-success{background-color:#22c55e26;color:#22c55e;border:1px solid rgba(34,197,94,.3)}.toast-title:empty{display:none}.toast-title:empty+.toast-message{margin-top:0}.toast-dismiss{flex-shrink:0;width:20px;height:20px;display:flex;align-items:center;justify-content:center;border-radius:var(--border-radius-sm);color:var(--color-text-muted);cursor:pointer;transition:background-color .15s ease,color .15s ease;margin-top:1px;margin-right:-4px}.toast-dismiss:hover{background-color:var(--color-bg-tertiary);color:var(--color-text-primary)}.toast-dismiss svg{width:14px;height:14px}.toast-progress{position:absolute;bottom:0;left:0;height:3px;width:100%;background-color:var(--color-text-muted);transform-origin:left;transition:transform linear}.toast-container:hover .toast-progress{animation-play-state:paused!important}.toast-info{border-left:3px solid var(--color-status-scheduled)}.toast-info .toast-icon{color:var(--color-status-scheduled)}.toast-info .toast-progress{background-color:var(--color-status-scheduled)}.toast-success{border-left:3px solid var(--color-status-completed)}.toast-success .toast-icon{color:var(--color-status-completed)}.toast-success .toast-progress{background-color:var(--color-status-completed)}.toast-warning{border-left:3px solid var(--color-status-pending)}.toast-warning .toast-icon{color:var(--color-status-pending)}.toast-warning .toast-progress{background-color:var(--color-status-pending)}.toast-error{border-left:3px solid var(--color-status-cancelled)}.toast-error .toast-icon{color:var(--color-status-cancelled)}.toast-error .toast-progress{background-color:var(--color-status-cancelled)}.toast-critical{background-color:color-mix(in srgb,var(--color-status-cancelled) 10%,var(--color-bg-primary));border-color:var(--color-status-cancelled)}.toast-update{border-left:3px solid #8b5cf6}.toast-update .toast-icon{color:#8b5cf6}.toast-update .toast-progress{background-color:#8b5cf6}.toast-persistent .toast-progress{display:none}.toast-btn{display:inline-block;margin-left:var(--spacing-sm);padding:3px 10px;font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);text-transform:uppercase;letter-spacing:.5px;color:var(--color-bg-primary);background-color:var(--color-status-pending);border:none;border-radius:var(--border-radius-sm);cursor:pointer;transition:background-color .15s ease,transform .1s ease;vertical-align:middle}.toast-btn:hover{background-color:var(--color-status-in-progress);transform:scale(1.02)}.toast-btn:active{transform:scale(.98)}.login-screen{position:fixed;inset:0;display:none;align-items:center;justify-content:center;background:var(--color-bg-secondary);z-index:1000}.login-screen.active{display:flex}.login-container{width:100%;max-width:360px;padding:var(--spacing-2xl);background:var(--color-bg-primary);border:1px solid var(--color-border);border-radius:var(--border-radius-md);box-shadow:var(--shadow-lg)}.login-logo{display:flex;justify-content:center;margin-bottom:var(--spacing-xl)}.login-logo .brand-logo{width:180px;height:auto}.login-title{margin:0 0 var(--spacing-xl);font-size:var(--font-size-xl);font-weight:var(--font-weight-semibold);text-align:center;color:var(--color-text-primary)}.login-form .form-group{margin-bottom:var(--spacing-lg)}.login-form label{display:block;margin-bottom:var(--spacing-xs);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);color:var(--color-text-secondary)}.login-form input{width:100%;padding:var(--spacing-sm) var(--spacing-md);font-size:var(--font-size-base);color:var(--color-text-primary);background:var(--color-bg-primary);border:1px solid var(--color-border);border-radius:var(--border-radius-sm);transition:border-color .15s ease,box-shadow .15s ease}.login-form input:focus{outline:none;border-color:var(--color-status-scheduled);box-shadow:0 0 0 3px #3b82f626}.login-form input::placeholder{color:var(--color-text-muted)}.login-error{padding:var(--spacing-sm) var(--spacing-md);margin-bottom:var(--spacing-lg);font-size:var(--font-size-sm);color:var(--color-status-cancelled);background:color-mix(in srgb,var(--color-status-cancelled) 10%,var(--color-bg-primary));border:1px solid var(--color-status-cancelled);border-radius:var(--border-radius-sm)}.btn-block{width:100%}.btn-primary{padding:var(--spacing-sm) var(--spacing-lg);font-size:var(--font-size-base);font-weight:var(--font-weight-medium);color:#fff;background:var(--color-status-scheduled);border:none;border-radius:var(--border-radius-sm);cursor:pointer;transition:background-color .15s ease}.btn-primary:hover{background:color-mix(in srgb,var(--color-status-scheduled) 85%,black)}.btn-primary:disabled{opacity:.6;cursor:not-allowed}.login-hint{margin-top:var(--spacing-lg);font-size:var(--font-size-xs);color:var(--color-text-muted);text-align:center}.app-container.hidden{display:none}.user-menu{position:relative}.account-btn{display:flex;align-items:center;gap:var(--spacing-sm);padding:var(--spacing-xs) var(--spacing-sm);background:transparent;border:1px solid transparent;border-radius:var(--border-radius-sm);cursor:pointer;transition:background-color .15s ease}.account-btn:hover{background:var(--color-bg-secondary)}.user-info{display:flex;flex-direction:column;align-items:flex-start;text-align:left}.user-name{font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);color:var(--color-text-primary)}.user-role{font-size:var(--font-size-xs);color:var(--color-text-muted)}.user-dropdown{position:absolute;top:100%;right:0;margin-top:var(--spacing-xs);min-width:160px;background:var(--color-bg-primary);border:1px solid var(--color-border);border-radius:var(--border-radius-sm);box-shadow:var(--shadow-lg);opacity:0;visibility:hidden;transform:translateY(-8px);transition:opacity .15s ease,transform .15s ease,visibility .15s;z-index:100}.user-menu:hover .user-dropdown,.user-dropdown:hover{opacity:1;visibility:visible;transform:translateY(0)}.user-dropdown-item{display:flex;align-items:center;gap:var(--spacing-sm);width:100%;padding:var(--spacing-sm) var(--spacing-md);font-size:var(--font-size-sm);color:var(--color-text-primary);background:transparent;border:none;cursor:pointer;transition:background-color .15s ease}.user-dropdown-item:hover{background:var(--color-bg-secondary)}.user-dropdown-item svg{width:16px;height:16px}.cflare-health-bar{display:flex;align-items:center;gap:var(--spacing-xl);padding:var(--spacing-md) var(--spacing-lg);background:var(--color-bg-secondary);border-bottom:1px solid var(--color-border);font-size:var(--font-size-sm)}.health-item{display:flex;align-items:center;gap:var(--spacing-sm)}.health-dot{width:8px;height:8px;border-radius:50%;background:var(--color-text-muted)}.health-dot-ok{background:var(--color-status-available)}.health-dot-error{background:var(--color-status-cancelled)}.health-dot-unknown{background:var(--color-text-muted)}.health-label{color:var(--color-text-tertiary)}.health-value{font-weight:var(--font-weight-medium);color:var(--color-text-primary)}.health-timestamp{margin-left:auto}.cflare-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:var(--spacing-lg);padding:var(--spacing-lg)}.cflare-card{background:var(--color-bg-primary);border:1px solid var(--color-border);border-radius:var(--border-radius-md);overflow:hidden}.cflare-card-wide{grid-column:1 / -1}.cflare-card-header{display:flex;align-items:center;gap:var(--spacing-sm);padding:var(--spacing-md) var(--spacing-lg);background:var(--color-bg-secondary);border-bottom:1px solid var(--color-border);font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);color:var(--color-text-secondary)}.cflare-card-header svg{color:var(--color-text-tertiary)}.cflare-card-body{padding:var(--spacing-lg)}.cflare-stat-large{font-size:var(--font-size-3xl);font-weight:var(--font-weight-bold);color:var(--color-text-primary);line-height:1}.cflare-stat-large.cflare-stat-error{color:var(--color-status-cancelled)}.cflare-stat-label{font-size:var(--font-size-sm);color:var(--color-text-tertiary);margin-top:var(--spacing-xs)}.cflare-list{margin-top:var(--spacing-md);font-size:var(--font-size-sm)}.cflare-list-item{display:flex;align-items:center;gap:var(--spacing-sm);padding:var(--spacing-xs) 0;color:var(--color-text-secondary)}.cflare-detail{margin-top:var(--spacing-md);padding-top:var(--spacing-md);border-top:1px solid var(--color-border);font-size:var(--font-size-sm);color:var(--color-text-tertiary)}.cflare-detail span:last-child{font-weight:var(--font-weight-medium);color:var(--color-text-primary);margin-left:var(--spacing-xs)}.cflare-user-name{font-weight:var(--font-weight-medium);color:var(--color-text-primary)}.cflare-user-session{font-family:var(--font-family-mono);font-size:var(--font-size-xs);color:var(--color-text-muted);margin-left:auto}.cflare-errors-by-category{margin-top:var(--spacing-md)}.cflare-error-cat{display:flex;align-items:center;gap:var(--spacing-sm);padding:var(--spacing-xs) 0;font-size:var(--font-size-sm)}.cflare-error-cat-name{color:var(--color-text-secondary);flex:1}.cflare-error-cat-count{font-weight:var(--font-weight-medium);color:var(--color-status-cancelled);padding:2px 8px;background:#ef44441a;border-radius:var(--border-radius-sm)}.cflare-recent-errors{margin-top:var(--spacing-md);padding-top:var(--spacing-md);border-top:1px solid var(--color-border)}.cflare-section-title{font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);color:var(--color-text-tertiary);text-transform:uppercase;letter-spacing:.5px;margin-bottom:var(--spacing-sm)}.cflare-recent-list{font-size:var(--font-size-sm)}.cflare-recent-item{display:flex;gap:var(--spacing-sm);padding:var(--spacing-xs) 0;border-bottom:1px solid var(--color-bg-tertiary)}.cflare-recent-item:last-child{border-bottom:none}.cflare-recent-time{color:var(--color-text-muted);font-size:var(--font-size-xs);white-space:nowrap;min-width:80px}.cflare-recent-msg{color:var(--color-text-secondary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cflare-table-stats{font-size:var(--font-size-sm)}.cflare-table-row{display:flex;align-items:center;gap:var(--spacing-sm);padding:var(--spacing-xs) 0}.cflare-table-name{width:100px;color:var(--color-text-secondary);font-family:var(--font-family-mono)}.cflare-table-count{width:50px;text-align:right;font-weight:var(--font-weight-medium);color:var(--color-text-primary)}.cflare-table-percent{width:45px;text-align:right;font-size:var(--font-size-xs);color:var(--color-text-tertiary)}.cflare-table-bar-container{flex:1;height:12px;background:var(--color-bg-tertiary);border-radius:2px;overflow:hidden}.cflare-test-bar{height:100%;background:var(--color-status-pending);border-radius:2px}.cflare-table-test{width:16px;height:16px;display:flex;align-items:center;justify-content:center;font-size:var(--font-size-xs);font-weight:var(--font-weight-bold);color:var(--color-status-pending);background:#f59e0b26;border-radius:2px}.cflare-test-summary{display:flex;align-items:baseline;gap:var(--spacing-sm);margin-bottom:var(--spacing-md);padding-bottom:var(--spacing-md);border-bottom:1px solid var(--color-border)}.cflare-test-total{font-size:var(--font-size-2xl);font-weight:var(--font-weight-bold);color:var(--color-status-pending)}.cflare-test-label{font-size:var(--font-size-sm);color:var(--color-text-secondary)}.cflare-cf-section{margin-bottom:var(--spacing-lg)}.cflare-cf-section:last-child{margin-bottom:0}.cflare-cf-title{font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);color:var(--color-text-tertiary);text-transform:uppercase;letter-spacing:.5px;margin-bottom:var(--spacing-sm)}.cflare-cf-stats{font-size:var(--font-size-sm)}.cflare-cf-stat{display:flex;justify-content:space-between;padding:var(--spacing-xs) 0}.cflare-cf-stat span{color:var(--color-text-tertiary)}.cflare-cf-stat strong{color:var(--color-text-primary);font-weight:var(--font-weight-medium)}.cflare-not-configured{color:var(--color-text-muted);font-style:italic;text-align:center;padding:var(--spacing-md)}.cflare-test-warning{display:flex;align-items:center;gap:var(--spacing-sm);padding:var(--spacing-md);margin-bottom:var(--spacing-lg);background:#f59e0b1a;border:1px solid var(--color-status-pending);border-radius:var(--border-radius-md);color:var(--color-status-pending);font-size:var(--font-size-sm)}.cflare-test-warning svg{flex-shrink:0}.cflare-test-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:var(--spacing-sm);font-size:var(--font-size-sm)}.cflare-test-row{display:flex;align-items:center;gap:var(--spacing-sm);padding:var(--spacing-sm);background:var(--color-bg-secondary);border-radius:var(--border-radius-sm)}.cflare-test-row.all-test{background:#f59e0b14}.cflare-test-name{flex:1;font-family:var(--font-family-mono);color:var(--color-text-secondary)}.cflare-test-counts{color:var(--color-text-tertiary)}.cflare-test-percent{font-weight:var(--font-weight-medium);color:var(--color-text-primary);min-width:35px;text-align:right}.cflare-test-percent.has-test{color:var(--color-status-pending)}.cflare-test-actions{margin-top:var(--spacing-lg);padding-top:var(--spacing-lg);border-top:1px solid var(--color-border)}.cflare-error{color:var(--color-status-cancelled);font-size:var(--font-size-sm);padding:var(--spacing-sm);background:#ef44441a;border-radius:var(--border-radius-sm)}.cflare-no-data{color:var(--color-text-muted);font-style:italic;font-size:var(--font-size-sm)}.btn-danger{display:inline-flex;align-items:center;gap:var(--spacing-sm);padding:var(--spacing-sm) var(--spacing-lg);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);color:#fff;background:var(--color-status-cancelled);border:none;border-radius:var(--border-radius-sm);cursor:pointer;transition:background-color .15s ease}.btn-danger:hover{background:#dc2626}.btn-danger:disabled{opacity:.5;cursor:not-allowed}.btn-danger svg{width:16px;height:16px}.btn-secondary{display:inline-flex;align-items:center;gap:var(--spacing-sm);padding:var(--spacing-sm) var(--spacing-md);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);color:var(--color-text-primary);background:var(--color-bg-secondary);border:1px solid var(--color-border);border-radius:var(--border-radius-sm);cursor:pointer;transition:background-color .15s ease}.btn-secondary:hover{background:var(--color-bg-tertiary)}.btn-secondary:disabled{opacity:.5;cursor:not-allowed}.btn-secondary svg{width:16px;height:16px}.dialog-overlay{position:fixed;inset:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000;opacity:0;visibility:hidden;transition:opacity .2s ease,visibility .2s ease}.dialog-overlay.active{opacity:1;visibility:visible}.dialog{background:var(--color-bg-primary);border-radius:var(--border-radius-md);box-shadow:var(--shadow-lg);min-width:400px;max-width:90vw;max-height:90vh;overflow:hidden;transform:scale(.95);transition:transform .2s ease}.dialog-overlay.active .dialog{transform:scale(1)}.dialog-header{display:flex;align-items:center;justify-content:space-between;padding:var(--spacing-lg);border-bottom:1px solid var(--color-border)}.dialog-header h2{margin:0;font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold)}.dialog-close{display:flex;align-items:center;justify-content:center;width:32px;height:32px;padding:0;background:transparent;border:none;border-radius:var(--border-radius-sm);color:var(--color-text-tertiary);cursor:pointer;transition:background-color .15s ease,color .15s ease}.dialog-close:hover{background:var(--color-bg-secondary);color:var(--color-text-primary)}.dialog-body{padding:var(--spacing-lg)}.dialog-user-info{display:flex;align-items:center;gap:var(--spacing-sm);padding:var(--spacing-md);margin-bottom:var(--spacing-lg);background:var(--color-bg-secondary);border-radius:var(--border-radius-sm);font-size:var(--font-size-sm);color:var(--color-text-secondary)}.dialog-user-info strong{color:var(--color-text-primary)}.dialog-footer{display:flex;justify-content:flex-end;gap:var(--spacing-sm);padding:var(--spacing-lg);border-top:1px solid var(--color-border);background:var(--color-bg-secondary)}.dialog-body .form-group{margin-bottom:var(--spacing-lg)}.dialog-body .form-group:last-child{margin-bottom:0}.dialog-body label{display:block;margin-bottom:var(--spacing-xs);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);color:var(--color-text-secondary)}.dialog-body input[type=text],.dialog-body input[type=password]{width:100%;padding:var(--spacing-sm) var(--spacing-md);font-size:var(--font-size-base);color:var(--color-text-primary);background:var(--color-bg-primary);border:1px solid var(--color-border);border-radius:var(--border-radius-sm);transition:border-color .15s ease,box-shadow .15s ease}.dialog-body input:focus{outline:none;border-color:var(--color-status-scheduled);box-shadow:0 0 0 3px #3b82f61a}.input-with-button{display:flex;gap:var(--spacing-xs)}.input-with-button input{flex:1}.input-with-button .btn-icon{flex-shrink:0;width:38px;height:38px;padding:0;display:flex;align-items:center;justify-content:center;background:var(--color-bg-secondary);border:1px solid var(--color-border);border-radius:var(--border-radius-sm);color:var(--color-text-tertiary);cursor:pointer;transition:background-color .15s ease,color .15s ease}.input-with-button .btn-icon:hover{background:var(--color-bg-tertiary);color:var(--color-text-primary)}.form-error{margin-top:var(--spacing-xs);padding:var(--spacing-sm);font-size:var(--font-size-sm);border-radius:var(--border-radius-sm);min-height:calc(var(--font-size-sm) * var(--line-height-normal) + var(--spacing-sm) * 2)}.form-error-error{color:var(--color-status-cancelled);background:#ef44441a}.form-error-success{color:var(--color-status-available);background:#10b9811a}.form-error-hint{color:var(--color-text-tertiary);background:var(--color-bg-secondary)}.dialog-body input.input-error{border-color:var(--color-status-cancelled)}.dialog-body input.input-error:focus{border-color:var(--color-status-cancelled);box-shadow:0 0 0 3px #ef44441a}.dialog-body input.input-success{border-color:var(--color-status-available)}.dialog-body input.input-success:focus{border-color:var(--color-status-available);box-shadow:0 0 0 3px #10b9811a}.dialog-footer .btn-primary:disabled{opacity:.5;cursor:not-allowed}.dialog.dialog-wide{min-width:500px}.dialog-loading{text-align:center;padding:var(--spacing-xl);color:var(--color-text-tertiary)}.dialog-error{text-align:center;padding:var(--spacing-xl);color:var(--color-status-cancelled)}.user-detail-grid{display:flex;flex-direction:column;gap:var(--spacing-sm)}.user-detail-row{display:flex;padding:var(--spacing-sm) 0;border-bottom:1px solid var(--color-bg-tertiary)}.user-detail-row:last-child{border-bottom:none}.user-detail-row.user-detail-warning{background:#ef44440d;margin:0 calc(-1 * var(--spacing-lg));padding:var(--spacing-sm) var(--spacing-lg)}.user-detail-label{width:140px;flex-shrink:0;color:var(--color-text-tertiary);font-size:var(--font-size-sm)}.user-detail-value{flex:1;color:var(--color-text-primary);font-size:var(--font-size-sm)}.user-detail-mono{font-family:var(--font-family-mono)}.roles-container{display:grid;grid-template-columns:280px 1fr;gap:var(--spacing-lg);height:calc(100vh - 160px)}.roles-panel,.permissions-panel{background:var(--color-bg-primary);border:1px solid var(--color-border);border-radius:var(--border-radius-md);display:flex;flex-direction:column;overflow:hidden}.roles-panel-header,.permissions-panel-header{display:flex;align-items:center;justify-content:space-between;padding:var(--spacing-md) var(--spacing-lg);border-bottom:1px solid var(--color-border);background:var(--color-bg-secondary)}.roles-panel-header h3,.permissions-panel-header h3{margin:0;font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);text-transform:uppercase;letter-spacing:.5px;color:var(--color-text-secondary)}.permissions-role-name{font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);color:var(--color-text-primary)}.roles-list{flex:1;overflow-y:auto;padding:var(--spacing-sm)}.role-item{display:flex;align-items:center;gap:var(--spacing-sm);padding:var(--spacing-sm) var(--spacing-md);border-radius:var(--border-radius-sm);cursor:pointer;transition:background-color .15s ease}.role-item:hover{background:var(--color-bg-secondary)}.role-item.role-item-active{background:var(--color-bg-tertiary)}.role-color{width:12px;height:12px;border-radius:50%;flex-shrink:0}.role-info{flex:1;min-width:0}.role-name{font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);color:var(--color-text-primary)}.role-user-count{font-size:var(--font-size-xs);color:var(--color-text-tertiary)}.role-actions{opacity:0;transition:opacity .15s ease}.role-item:hover .role-actions{opacity:1}.permissions-list{flex:1;overflow-y:auto;padding:var(--spacing-md)}.permissions-empty{display:flex;align-items:center;justify-content:center;height:100%;color:var(--color-text-tertiary);font-size:var(--font-size-sm)}.permission-category{margin-bottom:var(--spacing-lg)}.permission-category-header{display:flex;align-items:center;gap:var(--spacing-sm);padding:var(--spacing-xs) 0;margin-bottom:var(--spacing-sm);font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);color:var(--color-text-secondary);border-bottom:1px solid var(--color-border)}.permission-item{display:flex;align-items:center;gap:var(--spacing-sm);padding:var(--spacing-xs) var(--spacing-sm);border-radius:var(--border-radius-sm)}.permission-item:hover{background:var(--color-bg-secondary)}.permission-checkbox{width:16px;height:16px;accent-color:var(--color-status-scheduled)}.permission-name{flex:1;font-size:var(--font-size-sm);color:var(--color-text-primary)}.permission-key{font-size:var(--font-size-xs);font-family:var(--font-family-mono);color:var(--color-text-muted)}.permission-inherited{font-size:var(--font-size-xs);color:var(--color-text-muted);font-style:italic}.roles-loading,.permissions-loading{display:flex;align-items:center;justify-content:center;padding:var(--spacing-xl);color:var(--color-text-tertiary)}.cron-tab-content{padding:var(--spacing-lg) 0}.cron-jobs-list{display:flex;flex-direction:column;gap:var(--spacing-md)}.cron-job-card{background:var(--color-bg-secondary);border:1px solid var(--color-border);border-radius:var(--border-radius-lg);padding:var(--spacing-lg)}.cron-job-header{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--spacing-md);margin-bottom:var(--spacing-md)}.cron-job-info{flex:1}.cron-job-name{font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold);color:var(--color-text-primary);margin-bottom:var(--spacing-xs)}.cron-job-description{font-size:var(--font-size-sm);color:var(--color-text-secondary)}.cron-job-actions{display:flex;gap:var(--spacing-sm)}.cron-job-meta{display:flex;flex-wrap:wrap;gap:var(--spacing-lg);font-size:var(--font-size-sm);color:var(--color-text-tertiary)}.cron-job-meta-item{display:flex;align-items:center;gap:var(--spacing-xs)}.cron-job-meta-item svg{width:16px;height:16px;opacity:.6}.cron-job-schedule{font-family:var(--font-family-mono);background:var(--color-bg-tertiary);padding:2px 8px;border-radius:var(--border-radius-sm)}.cron-job-status{display:inline-flex;align-items:center;gap:var(--spacing-xs);padding:2px 10px;border-radius:var(--border-radius-full);font-size:var(--font-size-xs);font-weight:var(--font-weight-medium)}.cron-job-status.enabled{background:#22c55e26;color:var(--color-status-completed)}.cron-job-status.disabled{background:#6b728026;color:var(--color-text-tertiary)}.cron-job-last-run{color:var(--color-text-muted)}.cron-job-last-run.success{color:var(--color-status-completed)}.cron-job-last-run.error{color:var(--color-status-cancelled)}.cron-runs-filters{display:flex;gap:var(--spacing-md);margin-bottom:var(--spacing-lg)}.cron-runs-filters select{min-width:150px}.cron-runs-list{display:flex;flex-direction:column;gap:var(--spacing-sm)}.cron-run-row{display:flex;align-items:center;gap:var(--spacing-md);padding:var(--spacing-md);background:var(--color-bg-secondary);border:1px solid var(--color-border);border-radius:var(--border-radius-md);cursor:pointer;transition:background .15s}.cron-run-row:hover{background:var(--color-bg-tertiary)}.cron-run-status-icon{width:32px;height:32px;border-radius:var(--border-radius-full);display:flex;align-items:center;justify-content:center}.cron-run-status-icon.success{background:#22c55e26;color:var(--color-status-completed)}.cron-run-status-icon.error{background:#ef444426;color:var(--color-status-cancelled)}.cron-run-status-icon.running{background:#3b82f626;color:var(--color-status-scheduled)}.cron-run-status-icon svg{width:18px;height:18px}.cron-run-info{flex:1}.cron-run-job-name{font-weight:var(--font-weight-medium);color:var(--color-text-primary)}.cron-run-time{font-size:var(--font-size-sm);color:var(--color-text-tertiary)}.cron-run-duration{font-size:var(--font-size-sm);color:var(--color-text-secondary);font-family:var(--font-family-mono)}.cron-run-keep-badge{font-size:var(--font-size-xs);padding:2px 8px;background:#9333ea26;color:#a855f7;border-radius:var(--border-radius-full)}.cron-run-info-row{display:flex;padding:var(--spacing-sm) 0;border-bottom:1px solid var(--color-border)}.cron-run-info-row:last-child{border-bottom:none}.cron-run-label{width:120px;font-size:var(--font-size-sm);color:var(--color-text-tertiary)}.cron-run-value{flex:1;font-size:var(--font-size-sm);color:var(--color-text-primary)}.cron-run-result,.cron-run-error{margin-top:var(--spacing-lg)}.cron-run-result h3,.cron-run-error h3{font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);color:var(--color-text-secondary);margin-bottom:var(--spacing-sm)}.cron-result-json,.cron-error-text{background:var(--color-bg-tertiary);border:1px solid var(--color-border);border-radius:var(--border-radius-md);padding:var(--spacing-md);font-family:var(--font-family-mono);font-size:var(--font-size-sm);overflow-x:auto;white-space:pre-wrap;word-break:break-word;max-height:300px;overflow-y:auto}.cron-error-text{color:var(--color-status-cancelled)}.cron-keep-checkbox{display:flex;align-items:center;gap:var(--spacing-sm);font-size:var(--font-size-sm);color:var(--color-text-secondary);cursor:pointer}.cron-keep-checkbox input{width:16px;height:16px;accent-color:#a855f7}.cron-empty{text-align:center;padding:var(--spacing-2xl);color:var(--color-text-tertiary)}.cron-empty svg{width:48px;height:48px;opacity:.3;margin-bottom:var(--spacing-md)}
