:root{--bg-page: #f8fafc;--bg-surface: #ffffff;--bg-subtle: #f1f5f9;--border-color: #e2e8f0;--text-primary: #0f172a;--text-secondary: #475569;--text-muted: #94a3b8;--color-primary: #3b82f6;--color-primary-hover: #2563eb;--color-primary-text: #ffffff;--color-success: #10b981;--color-warning: #f59e0b;--color-danger: #ef4444;--color-info: #06b6d4;--radius-sm: .25rem;--radius-md: .375rem;--radius-lg: .5rem;--radius-xl: .75rem;--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)}.dark{--bg-page: #0b1120;--bg-surface: #1e293b;--bg-subtle: #0f172a;--border-color: #334155;--text-primary: #f8fafc;--text-secondary: #94a3b8;--text-muted: #64748b;--color-primary: #3b82f6;--color-primary-hover: #60a5fa;--color-primary-text: #ffffff;--shadow-sm: 0 1px 2px 0 rgb(0 0 0 / .4);--shadow-md: 0 4px 6px -1px rgb(0 0 0 / .5), 0 2px 4px -2px rgb(0 0 0 / .5);--shadow-lg: 0 10px 15px -3px rgb(0 0 0 / .6), 0 4px 6px -4px rgb(0 0 0 / .6)}.app-container{max-width:80rem;margin-left:auto;margin-right:auto;padding-left:1rem;padding-right:1rem}.page-header{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:1rem;margin-bottom:1.5rem}.page-title{font-size:1.5rem;font-weight:700;color:var(--text-primary);line-height:2rem}.card{background-color:var(--bg-surface);border:1px solid var(--border-color);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);overflow:hidden;transition:box-shadow .2s ease,border-color .2s ease}.card-header{padding:1rem 1.25rem;border-bottom:1px solid var(--border-color);display:flex;align-items:center;justify-content:space-between}.card-body{padding:1.25rem}.card-footer{padding:.875rem 1.25rem;border-top:1px solid var(--border-color);background-color:var(--bg-subtle);display:flex;align-items:center;justify-content:flex-end;gap:.75rem}.btn{display:inline-flex;align-items:center;justify-content:center;font-weight:500;font-size:.875rem;line-height:1.25rem;padding:.5rem 1rem;border-radius:var(--radius-md);border:1px solid transparent;cursor:pointer;transition:background-color .15s ease,border-color .15s ease,color .15s ease;text-decoration:none;gap:.5rem}.btn:disabled,.btn[disabled]{opacity:.6;cursor:not-allowed}.btn-primary{background-color:var(--color-primary);color:var(--color-primary-text)}.btn-primary:hover:not(:disabled){background-color:var(--color-primary-hover)}.btn-secondary{background-color:var(--bg-surface);border-color:var(--border-color);color:var(--text-primary)}.btn-secondary:hover:not(:disabled){background-color:var(--bg-subtle)}.btn-danger{background-color:var(--color-danger);color:#fff}.btn-danger:hover:not(:disabled){background-color:#dc2626}.btn-sm{padding:.25rem .625rem;font-size:.75rem}.btn-lg{padding:.75rem 1.25rem;font-size:1rem}.tbl-action{display:inline-flex;align-items:center;gap:.25rem;padding:.25rem .5rem;font-size:.6875rem;font-weight:600;line-height:1rem;border-radius:var(--radius-sm);border:none;cursor:pointer;text-decoration:none;white-space:nowrap;transition:background-color .15s ease,color .15s ease}.tbl-action:disabled,.tbl-action[disabled]{opacity:.5;cursor:not-allowed}.tbl-action-view{background-color:#eff6ff;color:#1d4ed8}.tbl-action-view:hover:not(:disabled){background-color:#dbeafe}.dark .tbl-action-view{background-color:#1e40af40;color:#93c5fd}.dark .tbl-action-view:hover:not(:disabled){background-color:#1e40af66}.tbl-action-edit,.tbl-action-secondary{background-color:#f1f5f9;color:#334155}.tbl-action-edit:hover:not(:disabled),.tbl-action-secondary:hover:not(:disabled){background-color:#e2e8f0}.dark .tbl-action-edit,.dark .tbl-action-secondary{background-color:#33415599;color:#cbd5e1}.dark .tbl-action-edit:hover:not(:disabled),.dark .tbl-action-secondary:hover:not(:disabled){background-color:#334155cc}.tbl-action-primary{background-color:var(--color-primary);color:var(--color-primary-text)}.tbl-action-primary:hover:not(:disabled){background-color:var(--color-primary-hover)}.tbl-action-warning{background-color:#fffbeb;color:#b45309}.tbl-action-warning:hover:not(:disabled){background-color:#fef3c7}.dark .tbl-action-warning{background-color:#b4530933;color:#fcd34d}.dark .tbl-action-warning:hover:not(:disabled){background-color:#b4530959}.tbl-action-danger{background-color:#fff1f2;color:#be123c}.tbl-action-danger:hover:not(:disabled){background-color:#ffe4e6}.dark .tbl-action-danger{background-color:#be123c33;color:#fda4af}.dark .tbl-action-danger:hover:not(:disabled){background-color:#be123c59}.tbl-action-success{background-color:#ecfdf5;color:#047857}.tbl-action-success:hover:not(:disabled){background-color:#d1fae5}.dark .tbl-action-success{background-color:#04785733;color:#6ee7b7}.dark .tbl-action-success:hover:not(:disabled){background-color:#04785759}.tbl-action-switch{background-color:#eef2ff;color:#4338ca}.tbl-action-switch:hover:not(:disabled){background-color:#e0e7ff}.dark .tbl-action-switch{background-color:#4338ca33;color:#a5b4fc}.dark .tbl-action-switch:hover:not(:disabled){background-color:#4338ca59}.tbl-action-icon{padding:.375rem;border-radius:var(--radius-sm)}.tbl-actions{display:flex;align-items:center;justify-content:flex-end;gap:.375rem}.form-group{margin-bottom:1rem}.form-label{display:block;font-size:.875rem;font-weight:500;color:var(--text-primary);margin-bottom:.375rem}.form-input,.form-select{width:100%;border-radius:var(--radius-md);border:1px solid var(--border-color);background-color:var(--bg-surface);color:var(--text-primary);padding:.5rem .75rem;font-size:.875rem;outline:none;transition:border-color .15s ease,box-shadow .15s ease}.form-input:focus,.form-select:focus{border-color:var(--color-primary);box-shadow:0 0 0 3px #3b82f633}.form-input option,.form-select option{background-color:var(--bg-surface);color:var(--text-primary)}.form-error{color:var(--color-danger);font-size:.75rem;margin-top:.375rem}.badge{display:inline-flex;align-items:center;border-radius:9999px;padding:.125rem .625rem;font-size:.75rem;font-weight:500;line-height:1rem}.badge-primary{background-color:#dbeafe;color:#1e40af}.dark .badge-primary{background-color:#1e3a8a80;color:#93c5fd;border:1px solid rgba(59,130,246,.3)}.badge-success{background-color:#d1fae5;color:#065f46}.dark .badge-success{background-color:#064e3b80;color:#6ee7b7;border:1px solid rgba(16,185,129,.3)}.badge-warning{background-color:#fef3c7;color:#92400e}.dark .badge-warning{background-color:#78350f80;color:#fde68a;border:1px solid rgba(245,158,11,.3)}.badge-danger{background-color:#fee2e2;color:#991b1b}.dark .badge-danger{background-color:#7f1d1d80;color:#fca5a5;border:1px solid rgba(239,68,68,.3)}.badge-neutral{background-color:var(--bg-subtle);color:var(--text-secondary);border:1px solid var(--border-color)}.alert{padding:.875rem 1rem;border-radius:var(--radius-md);font-size:.875rem;margin-bottom:1rem;display:flex;align-items:flex-start;gap:.75rem}.alert-success{background-color:#ecfdf5;color:#065f46;border:1px solid #a7f3d0}.dark .alert-success{background-color:#064e3b59;color:#6ee7b7;border-color:#10b98166}.alert-danger{background-color:#fef2f2;color:#991b1b;border:1px solid #fecaca}.dark .alert-danger{background-color:#7f1d1d59;color:#fca5a5;border-color:#ef444466}.alert-warning{background-color:#fffbeb;color:#92400e;border:1px solid #fde68a}.dark .alert-warning{background-color:#78350f59;color:#fde68a;border-color:#f59e0b66}.alert-info{background-color:#eff6ff;color:#1e40af;border:1px solid #bfdbfe}.dark .alert-info{background-color:#1e3a8a59;color:#93c5fd;border-color:#3b82f666}.data-table-container{overflow-x:auto;border:1px solid var(--border-color);border-radius:var(--radius-lg);background-color:var(--bg-surface)}.data-table{width:100%;border-collapse:collapse;text-align:left;font-size:.875rem}.data-table th{padding:.75rem 1rem;background-color:var(--bg-subtle);color:var(--text-secondary);font-weight:600;border-bottom:1px solid var(--border-color)}.data-table th.cursor-pointer{cursor:pointer;-webkit-user-select:none;user-select:none;transition:background-color .15s ease,color .15s ease}.data-table th.cursor-pointer:hover{background-color:var(--bg-surface);color:var(--text-primary)}.data-table td{padding:.75rem 1rem;border-bottom:1px solid var(--border-color);color:var(--text-primary)}.data-table tr:last-child td{border-bottom:none}.data-table tr:hover td{background-color:#00000005}.dark .data-table tr:hover td{background-color:#ffffff08}.table-compact th,.table-compact td{padding:.375rem .75rem;font-size:.8125rem}.table-spacious th,.table-spacious td{padding:1rem 1.25rem;font-size:.9375rem}.empty-state{text-align:center;padding:3rem 1.5rem}.empty-state .empty-state-icon{margin:0 auto 1rem;color:var(--text-muted)}.empty-state .empty-state-title{font-size:1.125rem;font-weight:600;color:var(--text-primary);margin-bottom:.5rem}.empty-state .empty-state-description{font-size:.875rem;color:var(--text-secondary);max-width:28rem;margin:0 auto}.sidebar-link{display:flex;align-items:center;gap:.75rem;padding:.625rem .875rem;border-radius:var(--radius-md);font-size:.875rem;font-weight:500;color:var(--text-secondary);text-decoration:none;transition:background-color .15s ease,color .15s ease}.sidebar-link:hover{background-color:var(--bg-subtle);color:var(--text-primary)}.sidebar-link-active{background-color:#eff6ff;color:#2563eb;font-weight:600}.dark .sidebar-link-active{background-color:#1e3a8a66;color:#60a5fa}.sidebar-collapsed{overflow:visible!important}.sidebar-collapsed .sidebar-link{justify-content:center!important;padding-left:0!important;padding-right:0!important;gap:0!important}.platform-sidebar .sidebar-link{color:#cbd5e1}.platform-sidebar .sidebar-link:hover{background-color:#1e293b;color:#fff}.platform-sidebar .sidebar-link-active{background-color:#4f46e5!important;color:#fff!important;box-shadow:0 1px 2px #0000000d}.dark .platform-sidebar .sidebar-link-active{background-color:#4f46e5!important;color:#fff!important}[x-cloak]{display:none!important}select.select2-hidden-accessible{border:0!important;clip:rect(0 0 0 0)!important;-webkit-clip-path:inset(50%)!important;clip-path:inset(50%)!important;height:1px!important;overflow:hidden!important;padding:0!important;position:absolute!important;width:1px!important;white-space:nowrap!important;margin:-1px!important}.select2.select2-container{width:100%!important;max-width:100%;display:block}.select2-container{box-sizing:border-box}.select2-container .select2-selection--single{background-color:var(--bg-surface);border:1px solid var(--border-color);border-radius:var(--radius-md);height:38px;display:flex;align-items:center;box-sizing:border-box;transition:border-color .15s ease,box-shadow .15s ease}.select2-container .select2-selection--single .select2-selection__rendered{color:var(--text-primary);font-size:.875rem;padding-left:.75rem;padding-right:2rem;line-height:normal;box-sizing:border-box;width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.select2-container .select2-selection--single .select2-selection__rendered .select2-selection__placeholder{color:var(--text-muted)}.select2-container .select2-selection--single .select2-selection__arrow{height:100%;top:0;right:.5rem;width:1.25rem;display:flex;align-items:center;justify-content:center}.select2-container .select2-selection--single .select2-selection__arrow b{border-color:var(--text-secondary) transparent transparent transparent;border-style:solid;border-width:5px 4px 0 4px;height:0;width:0;position:relative;margin:0;top:auto;left:auto}.select2-container .select2-selection--single .select2-selection__clear{color:var(--text-muted);margin-right:.5rem;font-size:1.1rem;font-weight:700;line-height:1}.select2-container .select2-selection--single .select2-selection__clear:hover{color:var(--color-danger)}.select2-container.select2-container--open .select2-selection--single{border-color:var(--color-primary);box-shadow:0 0 0 3px #3b82f633}.select2-container.select2-container--open .select2-selection--single .select2-selection__arrow b{border-color:transparent transparent var(--text-secondary) transparent;border-width:0 4px 5px 4px}.select2-container.select2-container--focus .select2-selection--single{border-color:var(--color-primary);box-shadow:0 0 0 3px #3b82f633}.select2-container .select2-selection--multiple{background-color:var(--bg-surface);border:1px solid var(--border-color);border-radius:var(--radius-md);min-height:38px;padding:.2rem .5rem;box-sizing:border-box;transition:border-color .15s ease,box-shadow .15s ease}.select2-container .select2-selection--multiple .select2-selection__choice{background-color:var(--bg-subtle);border:1px solid var(--border-color);border-radius:var(--radius-sm);color:var(--text-primary);font-size:.8125rem;padding:.15rem .5rem;margin-top:.2rem;margin-right:.35rem}.select2-container .select2-selection--multiple .select2-selection__choice .select2-selection__choice__remove{color:var(--text-muted);margin-right:.35rem;border:none}.select2-container .select2-selection--multiple .select2-selection__choice .select2-selection__choice__remove:hover{color:var(--color-danger)}.select2-container.select2-container--disabled .select2-selection--single,.select2-container.select2-container--disabled .select2-selection--multiple{background-color:var(--bg-subtle);cursor:not-allowed;opacity:.75}.select2-container.select2-container--sm .select2-selection--single{height:30px;font-size:.75rem}.select2-container.select2-container--sm .select2-selection--single .select2-selection__rendered{font-size:.75rem;padding-left:.5rem;padding-right:1.5rem}.select2-container.select2-container--sm .select2-selection--single .select2-selection__arrow{right:.25rem}.select2-container.select2-container--text-xs .select2-selection--single .select2-selection__rendered{font-size:.75rem}.select2-container--open{z-index:999999!important}.select2-dropdown{background-color:var(--bg-surface);border:1px solid var(--border-color);border-radius:var(--radius-md);box-shadow:var(--shadow-lg);color:var(--text-primary);font-size:.875rem;z-index:999999!important;box-sizing:border-box;max-width:calc(100vw - 2rem);overflow:hidden}.select2-dropdown.select2-dropdown--sm{font-size:.75rem}.select2-dropdown.select2-dropdown--sm .select2-search--dropdown .select2-search__field{padding:.25rem .5rem;font-size:.75rem}.select2-dropdown.select2-dropdown--sm .select2-results__option{padding:.35rem .5rem;font-size:.75rem}.select2-dropdown .select2-search--dropdown{padding:.5rem;box-sizing:border-box}.select2-dropdown .select2-search--dropdown .select2-search__field{background-color:var(--bg-subtle);border:1px solid var(--border-color);border-radius:var(--radius-sm);color:var(--text-primary);font-size:.875rem;padding:.4rem .65rem;width:100%;box-sizing:border-box!important;outline:none;transition:border-color .15s ease}.select2-dropdown .select2-search--dropdown .select2-search__field:focus{border-color:var(--color-primary);box-shadow:0 0 0 2px #3b82f633}.select2-dropdown .select2-results__options{max-height:220px;overflow-y:auto;padding:.25rem 0}.select2-dropdown .select2-results__options .select2-results__option{padding:.5rem .75rem;color:var(--text-primary);cursor:pointer;transition:background-color .1s ease;word-wrap:break-word;overflow-wrap:break-word;white-space:normal}.select2-dropdown .select2-results__options .select2-results__option--highlighted{background-color:var(--color-primary)!important;color:#fff!important}.select2-dropdown .select2-results__options .select2-results__option[aria-selected=true]{background-color:#3b82f61f;color:var(--color-primary);font-weight:500}.select2-dropdown .select2-results__options .select2-results__option[aria-disabled=true]{color:var(--text-muted);cursor:not-allowed}.select2-dropdown .select2-results__options .select2-results__message{color:var(--text-muted);padding:.5rem .75rem;font-style:italic}.flatpickr-calendar{background:var(--bg-surface);border:1px solid var(--border-color);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);color:var(--text-primary);font-family:inherit;width:308px;z-index:999999!important}.flatpickr-calendar.arrowTop:before,.flatpickr-calendar.arrowTop:after{border-bottom-color:var(--border-color)}.flatpickr-calendar.arrowTop:after{border-bottom-color:var(--bg-surface)}.flatpickr-calendar.arrowBottom:before,.flatpickr-calendar.arrowBottom:after{border-top-color:var(--border-color)}.flatpickr-calendar.arrowBottom:after{border-top-color:var(--bg-surface)}.flatpickr-calendar .flatpickr-months{background:transparent;padding:.5rem .25rem .25rem}.flatpickr-calendar .flatpickr-months .flatpickr-month{color:var(--text-primary);fill:var(--text-primary);height:32px}.flatpickr-calendar .flatpickr-months .flatpickr-current-month{font-size:.9375rem;font-weight:600;color:var(--text-primary);padding-top:2px}.flatpickr-calendar .flatpickr-months .flatpickr-current-month .cur-month,.flatpickr-calendar .flatpickr-months .flatpickr-current-month .numInputWrapper input.cur-year{font-weight:600;color:var(--text-primary)}.flatpickr-calendar .flatpickr-months .flatpickr-current-month .numInputWrapper span.arrowUp:after{border-bottom-color:var(--text-secondary)}.flatpickr-calendar .flatpickr-months .flatpickr-current-month .numInputWrapper span.arrowDown:after{border-top-color:var(--text-secondary)}.flatpickr-calendar .flatpickr-months .flatpickr-prev-month,.flatpickr-calendar .flatpickr-months .flatpickr-next-month{color:var(--text-secondary);fill:var(--text-secondary);padding:.375rem;border-radius:var(--radius-md);transition:background-color .15s ease,color .15s ease}.flatpickr-calendar .flatpickr-months .flatpickr-prev-month:hover,.flatpickr-calendar .flatpickr-months .flatpickr-next-month:hover{background:var(--bg-subtle);color:var(--text-primary)}.flatpickr-calendar .flatpickr-months .flatpickr-prev-month:hover svg,.flatpickr-calendar .flatpickr-months .flatpickr-next-month:hover svg{fill:var(--text-primary)}.flatpickr-calendar .flatpickr-months .flatpickr-prev-month svg,.flatpickr-calendar .flatpickr-months .flatpickr-next-month svg{width:14px;height:14px}.flatpickr-calendar .flatpickr-weekdays{background:transparent;height:28px}.flatpickr-calendar .flatpickr-weekdays span.flatpickr-weekday{color:var(--text-muted);font-size:.75rem;font-weight:600}.flatpickr-calendar .flatpickr-days{width:100%}.flatpickr-calendar .dayContainer{width:100%;min-width:100%;max-width:100%;padding:0 .375rem .5rem}.flatpickr-calendar .flatpickr-day{color:var(--text-primary);border-radius:var(--radius-md);font-size:.8125rem;font-weight:500;height:36px;line-height:36px;max-width:36px;margin:1px auto;border-color:transparent;transition:background-color .15s ease,color .15s ease,border-color .15s ease}.flatpickr-calendar .flatpickr-day:hover,.flatpickr-calendar .flatpickr-day:focus{background:var(--bg-subtle);border-color:transparent;color:var(--text-primary)}.flatpickr-calendar .flatpickr-day.prevMonthDay,.flatpickr-calendar .flatpickr-day.nextMonthDay{color:var(--text-muted);opacity:.5}.flatpickr-calendar .flatpickr-day.prevMonthDay:hover,.flatpickr-calendar .flatpickr-day.nextMonthDay:hover{background:var(--bg-subtle);color:var(--text-secondary)}.flatpickr-calendar .flatpickr-day.today{border-color:var(--color-primary);color:var(--color-primary);font-weight:600}.flatpickr-calendar .flatpickr-day.today:hover{background:var(--bg-subtle);color:var(--color-primary)}.flatpickr-calendar .flatpickr-day.selected,.flatpickr-calendar .flatpickr-day.startRange,.flatpickr-calendar .flatpickr-day.endRange{background:var(--color-primary)!important;border-color:var(--color-primary)!important;color:var(--color-primary-text)!important;font-weight:600}.flatpickr-calendar .flatpickr-day.selected:hover,.flatpickr-calendar .flatpickr-day.startRange:hover,.flatpickr-calendar .flatpickr-day.endRange:hover{background:var(--color-primary-hover)!important}.flatpickr-calendar .flatpickr-day.inRange{background:#3b82f626!important;border-color:transparent!important;color:var(--color-primary)!important}.flatpickr-calendar .flatpickr-day.flatpickr-disabled,.flatpickr-calendar .flatpickr-day.flatpickr-disabled:hover{color:var(--text-muted);opacity:.35;cursor:not-allowed}.flatpickr-calendar .flatpickr-time{border-top:1px solid var(--border-color);background:transparent;line-height:40px;max-height:40px}.flatpickr-calendar .flatpickr-time .numInputWrapper input.numInput{color:var(--text-primary);font-weight:600;font-size:.875rem}.flatpickr-calendar .flatpickr-time .numInputWrapper input.numInput:hover,.flatpickr-calendar .flatpickr-time .numInputWrapper input.numInput:focus{background:var(--bg-subtle)}.flatpickr-calendar .flatpickr-time .numInputWrapper span.arrowUp:after{border-bottom-color:var(--text-secondary)}.flatpickr-calendar .flatpickr-time .numInputWrapper span.arrowDown:after{border-top-color:var(--text-secondary)}.flatpickr-calendar .flatpickr-time .flatpickr-time-separator{color:var(--text-muted);font-weight:600}.flatpickr-calendar .flatpickr-time .flatpickr-am-pm{color:var(--text-primary);font-weight:600;font-size:.875rem}.flatpickr-calendar .flatpickr-time .flatpickr-am-pm:hover,.flatpickr-calendar .flatpickr-time .flatpickr-am-pm:focus{background:var(--bg-subtle)}
