:root{--color-bg: #f5f5f5;--color-surface: #ffffff;--color-surface-hover: #f0f0f0;--color-border: #e0e0e0;--color-text-primary: #1a1a1a;--color-text-secondary: #666666;--color-text-muted: #999999;--color-primary: #2563eb;--color-primary-hover: #1d4ed8;--color-primary-text: #ffffff;--color-danger: #dc2626;--color-danger-hover: #b91c1c;--color-danger-text: #ffffff;--color-success: #16a34a;--color-warning: #d97706;--color-info: #0ea5e9;--color-primary-light: rgba(37, 99, 235, .1);--color-info-light: rgba(14, 165, 233, .1);--color-success-light: rgba(22, 163, 74, .1);--color-error: #dc2626;--color-error-light: rgba(220, 38, 38, .1);--color-error-bg: rgba(220, 38, 38, .08);--color-error-border: rgba(220, 38, 38, .25);--color-surface-alt: #fafafa;--color-status-pending-bg: #fef3c7;--color-status-pending-text: #92400e;--color-status-in-progress-bg: #dbeafe;--color-status-in-progress-text: #1e40af;--color-status-resolved-bg: #dcfce7;--color-status-resolved-text: #166534;--color-status-closed-bg: #f3f4f6;--color-status-closed-text: #374151;--color-status-rejected-bg: #fee2e2;--color-status-rejected-text: #991b1b;--color-priority-low-bg: #dcfce7;--color-priority-low-text: #166534;--color-priority-medium-bg: #fef3c7;--color-priority-medium-text: #92400e;--color-priority-high-bg: #fed7aa;--color-priority-high-text: #9a3412;--color-priority-critical-bg: #fee2e2;--color-priority-critical-text: #991b1b;--spacing-xs: 4px;--spacing-sm: 8px;--spacing-md: 16px;--spacing-lg: 24px;--spacing-xl: 32px;--spacing-2xl: 48px;--font-family: system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--font-size-xs: .75rem;--font-size-sm: .875rem;--font-size-base: 1rem;--font-size-lg: 1.125rem;--font-size-xl: 1.25rem;--font-size-2xl: 1.5rem;--border-radius: 4px;--border-radius-lg: 8px;--z-sidebar: 100;--z-dropdown: 1050;--z-modal-backdrop: 200;--z-modal: 210;--z-notification: 300}.dark-theme{--color-bg: #111111;--color-surface: #1e1e1e;--color-surface-hover: #2a2a2a;--color-border: #333333;--color-text-primary: #e5e5e5;--color-text-secondary: #a3a3a3;--color-text-muted: #737373;--color-primary: #3b82f6;--color-primary-hover: #2563eb;--color-danger: #ef4444;--color-danger-hover: #dc2626;--color-primary-text: #ffffff;--color-danger-text: #ffffff;--color-success: #22c55e;--color-warning: #f59e0b;--color-info: #38bdf8;--color-primary-light: rgba(59, 130, 246, .15);--color-info-light: rgba(56, 189, 248, .15);--color-success-light: rgba(34, 197, 94, .15);--color-error: #ef4444;--color-error-light: rgba(239, 68, 68, .15);--color-error-bg: rgba(239, 68, 68, .12);--color-error-border: rgba(239, 68, 68, .35);--color-surface-alt: #2a2a2a;--color-status-pending-bg: #422006;--color-status-pending-text: #fde68a;--color-status-in-progress-bg: #172554;--color-status-in-progress-text: #93c5fd;--color-status-resolved-bg: #052e16;--color-status-resolved-text: #86efac;--color-status-closed-bg: #1f2937;--color-status-closed-text: #d1d5db;--color-status-rejected-bg: #450a0a;--color-status-rejected-text: #fca5a5;--color-priority-low-bg: #052e16;--color-priority-low-text: #86efac;--color-priority-medium-bg: #422006;--color-priority-medium-text: #fde68a;--color-priority-high-bg: #431407;--color-priority-high-text: #fdba74;--color-priority-critical-bg: #450a0a;--color-priority-critical-text: #fca5a5}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--spacing-sm);padding:var(--spacing-sm) var(--spacing-md);font-family:var(--font-family);font-size:var(--font-size-sm);font-weight:500;border:1px solid transparent;border-radius:var(--border-radius);cursor:pointer;background:none;color:var(--color-text-primary)}.btn:disabled{opacity:.5;cursor:not-allowed}.btn--primary{background:var(--color-primary);color:var(--color-primary-text)}.btn--primary:hover:not(:disabled){background:var(--color-primary-hover)}.btn--danger{background:var(--color-danger);color:var(--color-danger-text)}.btn--danger:hover:not(:disabled){background:var(--color-danger-hover)}.btn--outline{border-color:var(--color-border);color:var(--color-text-primary)}.btn--outline:hover:not(:disabled){background:var(--color-surface-hover)}.btn--outline.btn--danger{background:transparent;color:var(--color-danger);border-color:var(--color-danger)}.btn--outline.btn--danger:hover:not(:disabled){background:var(--color-error-bg)}.btn--ghost{color:var(--color-text-secondary)}.btn--ghost:hover:not(:disabled){background:var(--color-surface-hover)}.btn--sm{padding:var(--spacing-xs) var(--spacing-sm);font-size:var(--font-size-xs)}.card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--border-radius-lg);padding:var(--spacing-md)}.card__header{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--spacing-md)}.card__title{font-size:var(--font-size-lg);font-weight:600;color:var(--color-text-primary);margin:0}.form-group{display:flex;flex-direction:column;gap:var(--spacing-xs);margin-bottom:var(--spacing-md)}.form-label{font-size:var(--font-size-sm);font-weight:500;color:var(--color-text-primary)}.form-input,.form-select,.form-textarea{padding:var(--spacing-sm) var(--spacing-md);font-family:var(--font-family);font-size:var(--font-size-base);color:var(--color-text-primary);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--border-radius);outline:none}.form-input:focus,.form-select:focus,.form-textarea:focus{border-color:var(--color-primary)}.form-input::placeholder,.form-select::placeholder,.form-textarea::placeholder{color:var(--color-text-muted)}.form-textarea{resize:vertical;min-height:80px}.form-error{font-size:var(--font-size-xs);color:var(--color-danger)}.password-field{position:relative}.password-field .form-input{width:100%;padding-right:4.5rem}.password-field__toggle{position:absolute;right:var(--spacing-xs);top:50%;transform:translateY(-50%);padding:var(--spacing-xs) var(--spacing-sm);font-size:var(--font-size-xs);color:var(--color-text-muted);background:none;border:none;cursor:pointer;border-radius:var(--border-radius)}.password-field__toggle:hover{color:var(--color-text-primary)}@media(max-width:600px){.form-row{flex-direction:column}}.modal-backdrop{position:fixed;inset:0;background:#00000080;z-index:var(--z-modal-backdrop)}.modal{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--border-radius-lg);z-index:var(--z-modal);width:90%;max-width:480px;max-height:85vh;display:flex;flex-direction:column}.modal__header{display:flex;align-items:center;justify-content:space-between;padding:var(--spacing-md);border-bottom:1px solid var(--color-border)}.modal__title{font-size:var(--font-size-lg);font-weight:600;color:var(--color-text-primary);margin:0}.modal__body{padding:var(--spacing-md);overflow-y:auto;flex:1}.modal__footer{display:flex;justify-content:flex-end;gap:var(--spacing-sm);padding:var(--spacing-md);border-top:1px solid var(--color-border)}.page{max-width:1200px;width:100%}.layout.sidebar-collapsed .page{max-width:none}.page__header{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--spacing-lg);flex-wrap:wrap;gap:var(--spacing-md)}.page__title{font-size:var(--font-size-2xl);font-weight:700;color:var(--color-text-primary);margin:0}.loading-state{display:flex;align-items:center;justify-content:center;padding:var(--spacing-2xl);color:var(--color-text-muted);font-size:var(--font-size-sm)}.error-state{display:flex;align-items:center;justify-content:center;padding:var(--spacing-2xl);color:var(--color-danger);font-size:var(--font-size-sm)}.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--spacing-2xl);color:var(--color-text-muted);font-size:var(--font-size-sm);text-align:center}.spinner{width:24px;height:24px;border:2px solid var(--color-border);border-top-color:var(--color-primary);border-radius:50%;animation:spin .6s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.table,.data-table{width:100%;border-collapse:collapse;font-size:var(--font-size-sm)}.table th,.table td,.data-table th,.data-table td{text-align:left;padding:var(--spacing-sm) var(--spacing-md);border-bottom:1px solid var(--color-border);vertical-align:middle}.table th,.data-table th{font-weight:600;font-size:var(--font-size-xs);text-transform:uppercase;letter-spacing:.04em;color:var(--color-text-secondary);background:var(--color-surface-alt, var(--color-bg));border-bottom-width:2px;white-space:nowrap}.table td,.data-table td{color:var(--color-text-primary)}.table tbody tr:hover td,.data-table tbody tr:hover td{background:var(--color-surface-hover)}.table__col-actions,.data-table__col-actions{text-align:right;white-space:nowrap}.table__col-actions .btn+.btn,.data-table__col-actions .btn+.btn{margin-left:var(--spacing-xs)}.table__code{display:inline-block;font-size:var(--font-size-xs);font-weight:600;letter-spacing:.03em;text-transform:uppercase;color:var(--color-text-secondary)}.table-wrapper{width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.timeline{display:flex;flex-direction:column;gap:0;position:relative;padding-left:var(--spacing-lg)}.timeline:before{content:"";position:absolute;left:8px;top:0;bottom:0;width:2px;background:var(--color-border)}.timeline__item{position:relative;padding-bottom:var(--spacing-md)}.timeline__dot{position:absolute;left:calc(-1 * var(--spacing-lg) + 4px);top:4px;width:10px;height:10px;border-radius:50%;background:var(--color-border)}.timeline__dot--message{background:var(--color-primary)}.timeline__content--message{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--border-radius);padding:var(--spacing-sm) var(--spacing-md)}.timeline__item--message .timeline__meta{font-size:var(--font-size-xs);color:var(--color-text-muted);margin-bottom:var(--spacing-xs)}.timeline__item--message .timeline__text{font-size:var(--font-size-sm);color:var(--color-text-primary);white-space:pre-wrap;word-break:break-word}.timeline__content--event{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--border-radius);padding:var(--spacing-sm) var(--spacing-md);border-left:3px solid var(--color-text-muted)}.timeline__item--event .timeline__meta{display:flex;align-items:center;flex-wrap:wrap;gap:var(--spacing-xs);font-size:var(--font-size-sm);color:var(--color-text-muted)}.timeline__separator{color:var(--color-text-muted);opacity:.5}.timeline__event-type{color:var(--color-text-secondary);font-weight:500}.timeline__event-date{white-space:nowrap}.timeline__detail{margin-top:var(--spacing-xs);font-size:var(--font-size-sm);color:var(--color-text-primary)}.timeline--created .timeline__dot{background:var(--color-success)}.timeline--created .timeline__content--event{border-left-color:var(--color-success)}.timeline--status .timeline__dot{background:var(--color-info)}.timeline--status .timeline__content--event{border-left-color:var(--color-info)}.timeline--priority .timeline__dot{background:#e67e22}.timeline--priority .timeline__content--event{border-left-color:#e67e22}.timeline--assigned .timeline__dot{background:#9b59b6}.timeline--assigned .timeline__content--event{border-left-color:#9b59b6}.timeline--attachment .timeline__dot{background:#3498db}.timeline--attachment .timeline__content--event{border-left-color:#3498db}.timeline--event .timeline__dot{background:var(--color-text-muted)}.timeline-legend{display:flex;flex-wrap:wrap;gap:var(--spacing-sm) var(--spacing-md);margin-bottom:var(--spacing-md);padding:var(--spacing-sm) var(--spacing-md);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--border-radius);font-size:var(--font-size-xs);color:var(--color-text-muted)}.timeline-legend__item{display:inline-flex;align-items:center;gap:var(--spacing-xs)}.timeline-legend__dot{width:10px;height:10px;border-radius:50%;flex-shrink:0}.timeline-legend__dot--message{background:var(--color-primary)}.timeline-legend__dot--created{background:var(--color-success)}.timeline-legend__dot--status{background:var(--color-info)}.timeline-legend__dot--priority{background:#e67e22}.timeline-legend__dot--assigned{background:#9b59b6}.timeline-legend__dot--attachment{background:#3498db}.timeline-legend__dot--other{background:var(--color-text-muted)}.badge{display:inline-block;padding:2px var(--spacing-sm);font-size:var(--font-size-xs);font-weight:600;border-radius:var(--border-radius);white-space:nowrap}.badge--pending{background:var(--color-status-pending-bg);color:var(--color-status-pending-text)}.badge--in-progress{background:var(--color-status-in-progress-bg);color:var(--color-status-in-progress-text)}.badge--resolved{background:var(--color-status-resolved-bg);color:var(--color-status-resolved-text)}.badge--closed{background:var(--color-status-closed-bg);color:var(--color-status-closed-text)}.badge--rejected{background:var(--color-status-rejected-bg);color:var(--color-status-rejected-text)}.badge--low{background:var(--color-priority-low-bg);color:var(--color-priority-low-text)}.badge--medium{background:var(--color-priority-medium-bg);color:var(--color-priority-medium-text)}.badge--high{background:var(--color-priority-high-bg);color:var(--color-priority-high-text)}.badge--critical{background:var(--color-priority-critical-bg);color:var(--color-priority-critical-text)}.rich-prose{font-family:var(--font-family);font-size:var(--font-size-sm);color:var(--color-text-secondary);line-height:1.6;word-break:break-word}.rich-prose :is(h1,h2,h3,h4,h5,h6){margin:0 0 var(--spacing-sm);color:var(--color-text-primary)}.rich-prose :is(p,ul,ol){margin:0 0 var(--spacing-sm)}.rich-prose ul,.rich-prose ol{padding-left:var(--spacing-lg)}.rich-prose a{color:var(--color-primary)}.rich-prose pre,.rich-prose code{font-family:var(--font-mono, ui-monospace, monospace);font-size:var(--font-size-sm)}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{font-family:var(--font-family);font-size:16px;color:var(--color-text-primary);background:var(--color-bg);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{min-height:100vh}a{color:var(--color-primary);text-decoration:none}::-webkit-scrollbar{width:8px}::-webkit-scrollbar-track{background:var(--color-bg)}::-webkit-scrollbar-thumb{background:var(--color-border);border-radius:4px}
