:root{--brand-primary: #3b82f6;--brand-primary-hover: #2563eb;--brand-primary-light: #eff6ff;--brand-accent: #f59e0b;--brand-accent-light: #fef3c7;--brand-success: #10b981;--brand-success-light: #d1fae5;--brand-warning: #f59e0b;--brand-warning-light: #fef3c7;--brand-danger: #ef4444;--brand-danger-light: #fee2e2;--brand-info: #8b5cf6;--brand-info-light: #ede9fe;--neutral-50: #fafafa;--neutral-100: #f4f4f5;--neutral-200: #e4e4e7;--neutral-300: #d4d4d8;--neutral-400: #a1a1aa;--neutral-500: #71717a;--neutral-600: #52525b;--neutral-700: #3f3f46;--neutral-800: #27272a;--neutral-900: #18181b;--bg-body: var(--neutral-50);--bg-surface: #ffffff;--bg-sidebar: var(--neutral-900);--bg-header: #ffffff;--text-primary: var(--neutral-900);--text-secondary: var(--neutral-600);--text-muted: var(--neutral-400);--border-color: var(--neutral-200);--border-subtle: var(--neutral-100);--font-display: "Poppins", sans-serif;--font-body: "DM Sans", sans-serif;--sidebar-width: 260px;--header-height: 75px;--radius-sm: .375rem;--radius-md: .5rem;--radius-lg: .75rem;--radius-xl: 1rem;--shadow-sm: 0 1px 2px 0 rgb(0 0 0 / .05);--shadow-md: 0 4px 6px -1px rgb(0 0 0 / .1), 0 2px 4px -2px rgb(0 0 0 / .1);--shadow-lg: 0 10px 15px -3px rgb(0 0 0 / .1), 0 4px 6px -4px rgb(0 0 0 / .1);--shadow-card: 0 1px 3px 0 rgb(0 0 0 / .04), 0 1px 2px -1px rgb(0 0 0 / .04);--z-sidebar: 1000;--z-header: 900;--z-overlay: 990;--z-dropdown: 1100}*,*:before,*:after{box-sizing:border-box}body{margin:0;background-color:var(--bg-body);color:var(--text-primary);font-family:var(--font-body);font-size:14px;font-weight:400;line-height:1.6;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}h1,h2,h3,h4,h5,h6{font-family:var(--font-display);font-weight:600;color:var(--text-primary);margin:0 0 .5rem;line-height:1.3}h1{font-size:1.875rem}h2{font-size:1.5rem}h3{font-size:1.25rem}h4{font-size:1.125rem}h5{font-size:1rem}h6{font-size:.875rem}a{color:var(--brand-primary);text-decoration:none;transition:color .15s ease}a:hover{color:var(--brand-primary-hover)}.media-item{transition:transform .2s}.media-item:hover{transform:scale(1.02)}.cursor-zoom-in{cursor:zoom-in}.occurrence-media-item{width:96px}.occurrence-media-thumb,.occurrence-media-video{width:96px;height:72px}.vue-select-custom .control{min-height:38px;border-color:var(--border-color)}.border-dashed{border-style:dashed!important}.card{background:var(--bg-surface);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);box-shadow:var(--shadow-card);margin-bottom:1.5rem;transition:box-shadow .2s ease}.card:hover{box-shadow:var(--shadow-md)}.card-header{display:flex;align-items:center;justify-content:space-between;padding:1.25rem 1.5rem;border-bottom:1px solid var(--border-color);background:transparent}.card-header.border-0{border-bottom:none}.card-title{display:flex;flex-direction:column;gap:.25rem;margin:0}.card-title h3,.card-title .card-label{font-family:var(--font-display);font-size:1rem;font-weight:600;color:var(--text-primary);margin:0}.card-title .text-muted{font-size:.8125rem;color:var(--text-muted)}.card-toolbar{display:flex;align-items:center;gap:.5rem}.card-body{padding:1.5rem}.btn{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;padding:.625rem 1.25rem;font-family:var(--font-body);font-size:.875rem;font-weight:500;line-height:1.5;border:none;border-radius:var(--radius-md);cursor:pointer;transition:all .15s ease}.btn:focus{outline:2px solid var(--brand-primary);outline-offset:2px}.btn-sm{padding:.375rem .75rem;font-size:.8125rem}.btn-lg{padding:.75rem 1.5rem;font-size:1rem}.btn-icon{padding:0;width:2.25rem;height:2.25rem}.btn-primary{background:var(--brand-primary);color:#fff}.btn-primary:hover{background:var(--brand-primary-hover);transform:translateY(-1px);box-shadow:var(--shadow-md)}.btn-light{background:var(--neutral-100);color:var(--text-secondary)}.btn-light:hover{background:var(--neutral-200);color:var(--text-primary)}.btn-light-primary{background:var(--brand-primary-light);color:var(--brand-primary)}.btn-light-primary:hover{background:var(--brand-primary);color:#fff}.form-control:focus,.form-select:focus{background:#fff;border-color:var(--brand-primary);box-shadow:none;outline:none}.form-control:focus.is-invalid{background:#fff;border-color:var(--brand-danger);box-shadow:none;outline:none}.form-control::placeholder{color:var(--text-muted)}.form-switch.form-switch-lg .form-check-input{height:1.4rem;width:2.8rem;border-radius:2rem;cursor:pointer}.form-switch.form-switch-lg .form-check-label{padding-top:.1rem;margin-left:.5rem;font-size:.95rem}.dynamic-select .vue-select .control{min-height:36px;padding:0;font-family:var(--font-body);font-size:.875rem;font-weight:400;color:var(--text-primary);background:var(--neutral-50);border:1px solid var(--border-color);border-radius:var(--radius-md);transition:all .15s ease}.dynamic-select .vue-select.open .control,.dynamic-select .vue-select .control:focus-within{background:#fff;border-color:var(--brand-primary);box-shadow:none;outline:none}.dynamic-select .vue-select.is-invalid .control{border-color:var(--brand-danger)}.dynamic-select .vue-select.is-valid .control{border-color:var(--brand-success)}.dynamic-select .vue-select .placeholder{color:var(--text-muted)}.dynamic-select .vue-select .single-value,.dynamic-select .vue-select .search-input{color:var(--text-primary);font-family:var(--font-body);font-size:.875rem}.dynamic-select .vue-select .input-container,.dynamic-select .vue-select .single-value{padding:.2rem 0rem}.dynamic-select .vue-select .search-input{padding:0}.form-label{display:block;margin-bottom:.375rem;font-size:.875rem;font-weight:500;color:var(--text-secondary)}.table{width:100%;margin-bottom:0;border-collapse:collapse}.table th{padding:.75rem 1rem;font-family:var(--font-body);font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted);background:var(--neutral-50);border-bottom:1px solid var(--border-color);text-align:left}.table td{padding:1rem;font-size:.875rem;color:var(--text-secondary);border-bottom:1px solid var(--border-subtle);vertical-align:middle}.table tbody tr{transition:background-color .15s ease}.table tbody tr:hover{background-color:var(--neutral-50)}.table tbody tr:last-child td{border-bottom:none}.badge{display:inline-flex;align-items:center;padding:.25rem .625rem;font-size:.75rem;font-weight:600;line-height:1;border-radius:var(--radius-sm)}.badge-light-primary{background:var(--brand-primary-light);color:var(--brand-primary)}.badge-light-success{background:var(--brand-success-light);color:var(--brand-success)}.badge-light-warning{background:var(--brand-warning-light);color:var(--brand-warning)}.badge-light-danger{background:var(--brand-danger-light);color:var(--brand-danger)}.badge-light-info{background:var(--brand-info-light);color:var(--brand-info)}.symbol{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0}.symbol-label{display:flex;align-items:center;justify-content:center;font-family:var(--font-display);font-weight:600;border-radius:var(--radius-md)}.symbol-40px .symbol-label{width:40px;height:40px;font-size:1rem}.symbol-45px .symbol-label{width:45px;height:45px;font-size:1.125rem}.symbol-50px .symbol-label{width:50px;height:50px;font-size:1.25rem}.bg-light-primary{background:var(--brand-primary-light)}.bg-light-success{background:var(--brand-success-light)}.bg-light-warning{background:var(--brand-warning-light)}.bg-light-danger{background:var(--brand-danger-light)}.bg-light-info{background:var(--brand-info-light)}.text-primary{color:var(--brand-primary)!important}.text-success{color:var(--brand-success)!important}.text-warning{color:var(--brand-warning)!important}.text-danger{color:var(--brand-danger)!important}.text-info{color:var(--brand-info)!important}.pagination{display:flex;list-style:none;padding:0;margin:0;gap:.25rem}.page-link{display:flex;align-items:center;justify-content:center;min-width:2rem;height:2rem;padding:0 .5rem;font-size:.875rem;font-weight:500;color:var(--text-secondary);background:transparent;border:none;border-radius:var(--radius-sm);text-decoration:none;transition:all .15s ease}.page-link:hover{background:var(--neutral-100);color:var(--text-primary)}.page-item.active .page-link{background:var(--brand-primary);color:#fff}.page-item.disabled .page-link{color:var(--text-muted);cursor:not-allowed}.text-dark{color:var(--text-primary)!important}.text-muted{color:var(--text-muted)!important}.text-gray-600{color:var(--text-secondary)!important}.text-gray-400{color:var(--text-muted)!important}.fw-bold{font-weight:500!important}.fw-bolder{font-weight:600!important}.fw-boldest{font-weight:700!important}.text-hover-primary:hover{color:var(--brand-primary)!important}.fade-in-up{animation:fadeInUp .4s ease-out forwards}@keyframes fadeInUp{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--neutral-300);border-radius:3px}::-webkit-scrollbar-thumb:hover{background:var(--neutral-400)}@media(max-width:991.98px){.card-header,.card-body{padding:1rem}}@media(max-width:575.98px){h1{font-size:1.5rem}h2{font-size:1.25rem}h3{font-size:1.125rem}.btn{padding:.5rem 1rem;font-size:.8125rem}.table th,.table td{padding:.75rem .5rem;font-size:.8125rem}}.dashboard-layout{min-height:100vh;background:var(--bg-body)}.main-wrapper{margin-left:var(--sidebar-width);min-height:100vh;display:flex;flex-direction:column;transition:margin-left .3s ease}.main-content{flex:1;padding:1.5rem}.content-container{flex:1}@media(max-width:991.98px){.main-wrapper{margin-left:0}.main-content{padding:1rem}}.auth-wrapper{background:linear-gradient(135deg,var(--neutral-100) 0%,var(--neutral-200) 100%)}.auth-card{background:var(--bg-surface);border-radius:var(--radius-xl);box-shadow:var(--shadow-lg);padding:2.5rem}.sidebar{width:var(--sidebar-width);height:100vh;position:fixed;top:0;left:0;z-index:var(--z-sidebar);background:var(--bg-sidebar);display:flex;flex-direction:column;transition:transform .3s cubic-bezier(.4,0,.2,1)}.sidebar-header{display:flex;align-items:center;justify-content:space-between;padding:0 1.5rem;height:var(--header-height);border-bottom:1px solid rgba(255,255,255,.08)}.sidebar-brand{display:flex;align-items:center;gap:.75rem}.brand-icon{width:32px;height:32px;background:var(--brand-primary);border-radius:var(--radius-md);display:flex;align-items:center;justify-content:center;color:#fff;font-family:var(--font-display);font-weight:700;font-size:.875rem}.brand-text{font-family:var(--font-display);font-weight:700;font-size:1rem;color:#fff;letter-spacing:.05em}.sidebar-nav{flex:1;padding:1rem .75rem;overflow-y:auto}.nav-section{margin-bottom:1.5rem}.nav-section-title{display:block;font-size:.6875rem;font-weight:600;text-transform:uppercase;letter-spacing:.1em;color:#fff6;padding:0 1rem;margin-bottom:.5rem}.nav-item{display:flex;align-items:center;gap:.75rem;padding:.75rem 1rem;border-radius:var(--radius-md);color:#fff9;text-decoration:none;font-size:.875rem;font-weight:500;transition:all .15s ease;margin-bottom:.25rem;cursor:pointer}.nav-item i{font-size:1.125rem}.nav-item:hover{background:#ffffff14;color:#fff}.nav-item.active{background:#ffffff1a;color:#fff}.nav-item.active i{color:var(--brand-primary)}.sidebar-footer{padding:.75rem;border-top:1px solid rgba(255,255,255,.08)}.nav-item.logout:hover{background:#ef44441a;color:#fca5a5}@media(max-width:991.98px){.sidebar{transform:translate(-100%)}.sidebar.mobile-open{transform:translate(0);box-shadow:var(--shadow-lg)}}.top-header{height:var(--header-height);background:var(--bg-header);border-bottom:1px solid var(--border-color);display:flex;align-items:center;justify-content:space-between;padding:0 1.5rem;position:sticky;top:0;z-index:var(--z-header)}.menu-toggle{width:40px;height:40px;background:var(--neutral-100);color:var(--neutral-500)}.menu-toggle:hover{background:var(--neutral-200);color:var(--text-primary)}.user-avatar{width:40px;height:40px;background:var(--brand-primary-light);color:var(--brand-primary);font-size:1rem}.agenda-view .fc{font-family:var(--font-body)}.agenda-view .fc-toolbar-title{font-family:var(--font-display);font-size:1.25rem;font-weight:600}.agenda-view .fc-button{background:var(--neutral-100);border:none;color:var(--text-secondary);font-weight:500}.agenda-view .fc-button:hover{background:var(--neutral-200);color:var(--text-primary)}.agenda-view .fc-button-active{background:var(--brand-primary)!important;color:#fff!important}.agenda-view .fc-day-today{background:var(--brand-primary-light)!important}.appointments-view{min-height:calc(100vh - 200px)}.appointments-view .list-group-item{transition:all .2s ease}.appointments-view .list-group-item:hover{background-color:var(--neutral-100);transform:translate(4px)}.appointments-view .fc{min-height:calc(100vh - 250px)}.color-circle{width:36px;height:36px;border-radius:50%;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s ease;border:4px solid transparent}.color-option:hover .color-circle{transform:scale(1.1)}.color-circle.active{border-color:#0000001a;box-shadow:0 0 0 3px #fff inset!important;transform:scale(1.1)}@media print{.d-print-none{display:none!important}.invoice-container{box-shadow:none!important}}.auth-header .brand-icon{width:40px;height:40px;background:var(--brand-primary);font-size:1.125rem}.auth-header .brand-name{color:var(--text-primary);letter-spacing:.05em}.stepper-wrapper{width:100%;padding:1rem 0;overflow-x:auto}.stepper-container{display:flex;justify-content:space-between;position:relative;padding:0 1rem}.step-item{flex:1;display:flex;flex-direction:column;align-items:center;position:relative}.step-circle-wrapper{background:#fff;padding:0 8px;z-index:2;position:relative}.step-circle{width:36px;height:36px;border-radius:50%;border:2px solid #e2e8f0;background:#fff;display:flex;align-items:center;justify-content:center;font-weight:600;color:#94a3b8;position:relative;z-index:3;transition:all .3s ease}.step-line{position:absolute;top:18px;left:-50%;right:50%;height:2px;background:#e2e8f0;z-index:1;transition:background .3s ease}.step-item.active .step-circle{border-color:#3b82f6;background:#3b82f6;color:#fff;box-shadow:0 0 0 4px #3b82f626}.step-item.completed .step-circle{border-color:#3b82f6;background:#fff;color:#3b82f6}.step-item.completed .step-line{background:#3b82f6}.step-content{margin-top:.75rem;text-align:center}.step-label{font-size:.875rem;font-weight:600;color:#475569}.step-date{font-size:.75rem;color:#94a3b8;margin-top:2px}.step-placeholder{font-size:.75rem;color:#cbd5e1;font-style:italic;margin-top:2px}.step-item.active .step-label{color:#3b82f6}.step-item:first-child .step-line{display:none}.vehicle-card-clickable{cursor:pointer;transition:all .2s cubic-bezier(.4,0,.2,1);border:1px solid var(--border-subtle)!important}.vehicle-card-clickable:hover{transform:translateY(-3px);border-color:var(--brand-primary)!important;box-shadow:var(--shadow-md)!important;background-color:#fff!important}.vehicle-card-clickable:active{transform:translateY(-1px)}.vehicle-card-clickable .bi-chevron-right{transition:transform .2s ease}.vehicle-card-clickable:hover .bi-chevron-right{transform:translate(3px);color:var(--brand-primary)!important;opacity:1!important}.system-date-picker{height:38px!important;border-radius:var(--radius-md)!important;border:1px solid var(--border-color)!important;font-family:var(--font-body)!important;font-size:.875rem!important;background-color:var(--neutral-50)!important;padding:.375rem .75rem!important;transition:all .15s ease-in-out!important;color:var(--text-primary)!important}.system-date-picker:focus,.dp__input_focus,.dp__input_reg:focus{background-color:#fff!important;border-color:var(--brand-primary)!important;box-shadow:none!important;outline:none!important}.system-date-picker.is-invalid{border-color:var(--brand-danger)!important}.system-date-picker.is-invalid:focus{border-color:var(--brand-danger)!important;box-shadow:none!important;background-color:#fff!important}.color-option{cursor:pointer}.color-circle{width:32px;height:32px;border-radius:50%;display:flex;align-items:center;justify-content:center;border:2px solid transparent;transition:all .2s ease}.color-circle:hover{transform:scale(1.1)}.color-circle.active{border-color:#fff;box-shadow:0 0 0 2px var(--brand-primary)!important}.fc{--fc-button-bg-color: transparent;--fc-button-border-color: var(--border-color);--fc-button-hover-bg-color: var(--neutral-100);--fc-button-hover-border-color: var(--neutral-300);--fc-button-active-bg-color: var(--brand-primary);--fc-button-active-border-color: var(--brand-primary);--fc-button-text-color: var(--text-primary);--fc-event-bg-color: var(--brand-primary);--fc-event-border-color: var(--brand-primary);--fc-today-bg-color: var(--brand-primary-light);--fc-border-color: var(--border-color)}.fc .fc-toolbar-title{font-family:var(--font-display);font-size:1.05rem!important;font-weight:700!important;color:var(--text-secondary);text-transform:lowercase}.fc .fc-toolbar-title:first-letter{text-transform:uppercase}.fc .fc-button{padding:.35rem .8rem!important;font-size:.75rem!important;font-weight:600!important;text-transform:capitalize!important;border-radius:var(--radius-md)!important;transition:all .15s ease!important;box-shadow:none!important}.fc .fc-button-group{gap:6px;display:flex!important}.fc .fc-button-group>.fc-button{flex:none!important;margin:0!important;border-radius:var(--radius-md)!important}.fc .fc-toolbar>*>:not(:first-child){margin-left:8px!important}.fc .fc-toolbar-chunk{display:flex!important;align-items:center!important}@media(max-width:768px){.fc .fc-toolbar{display:flex!important;flex-direction:column!important;gap:.75rem!important;align-items:center!important}.fc .fc-toolbar-title{font-size:.95rem!important;text-align:center;order:-1;margin-bottom:.25rem}.fc .fc-toolbar-chunk{justify-content:center!important;width:100%!important}.fc .fc-button-group{justify-content:center;gap:4px!important}.fc .fc-button{padding:.3rem .6rem!important;font-size:.7rem!important;min-width:unset!important}.fc .fc-toolbar>*>:not(:first-child){margin-left:4px!important}}.fc .fc-button-primary:not(:disabled).fc-button-active,.fc .fc-button-primary:not(:disabled):active{background-color:var(--brand-primary)!important;border-color:var(--brand-primary)!important;color:#fff!important}.fc .fc-button:focus{box-shadow:0 0 0 2px var(--brand-primary-light)!important}.fc .fc-col-header-cell{background:var(--neutral-50);padding:.65rem 0!important}.fc .fc-scrollgrid{border:1px solid var(--border-color)!important;border-radius:var(--radius-md)!important;overflow:hidden}.fc .fc-daygrid-day{padding:2px!important}.fc .fc-daygrid-day-frame{margin:2px;border-radius:4px;background:#fff;transition:background .2s ease}.fc .fc-daygrid-day:hover .fc-daygrid-day-frame{background:var(--neutral-50)}.fc .fc-col-header-cell-cushion{font-size:.75rem!important;font-weight:600!important;text-transform:uppercase!important;letter-spacing:.05em!important;color:var(--text-muted)!important;text-decoration:none!important}.offcanvas-open{overflow:hidden}.fc .fc-daygrid-day-number{font-size:.875rem!important;font-weight:600!important;color:var(--text-secondary)!important;padding:8px!important}.fc .fc-day-today{background:var(--brand-primary-light)!important}.fc-event{border-radius:4px!important;padding:1px 4px!important;font-size:.75rem!important;font-weight:600!important;border:none!important;box-shadow:none!important;cursor:pointer}.fc-v-event{background-color:var(--brand-primary)}.fc-list-event{cursor:pointer;transition:background .2s ease}.fc-list-event:hover td{background-color:var(--neutral-50)!important}.fc-list-event-dot{border-width:5px!important}.fc .fc-list-event-title{font-weight:600!important;color:var(--text-primary)!important;font-size:.875rem!important}.fc .fc-list-day-cushion{background:var(--neutral-50)!important;padding:.5rem 1rem!important}.fc .fc-list-day-text,.fc .fc-list-day-side-text{font-weight:700!important;font-size:.8rem!important;text-transform:uppercase;color:var(--text-muted)!important;text-decoration:none!important}
