html{-webkit-text-size-adjust:100%;-moz-tab-size:4;tab-size:4}body{line-height:1.5;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}img,picture,video,canvas,svg{display:block;max-width:100%}input,button,textarea,select{font:inherit}p,h1,h2,h3,h4,h5,h6{overflow-wrap:break-word}a{color:inherit;text-decoration:none}ul,ol{list-style:none}table{border-collapse:collapse;border-spacing:0}button{cursor:pointer;background:none;border:none}fieldset{border:none}#root,#app{isolation:isolate}:root{--bg-base: #0a0b0f;--bg-primary: #0f1117;--bg-secondary: #141720;--bg-tertiary: #1a1e2e;--bg-card: #161b27;--bg-card-hover: #1c2235;--bg-elevated: #1e2438;--bg-hover: #1f2436;--bg-input: #131826;--bg-badge: #1a1e2e;--border-color: #252d45;--border-light: #2e3756;--border-focus: #6366f1;--border-input: #2a3350;--text-primary: #eef0f8;--text-secondary: #8892b0;--text-muted: #4a5280;--text-inverse: #0a0b0f;--text-link: #818cf8;--color-primary: #6366f1;--color-primary-hover: #4f52d9;--color-primary-muted: #3730a3;--color-primary-light: rgba(99, 102, 241, .12);--color-primary-glow: rgba(99, 102, 241, .25);--color-success: #10b981;--color-success-light: rgba(16, 185, 129, .12);--color-success-border: rgba(16, 185, 129, .3);--color-warning: #f59e0b;--color-warning-light: rgba(245, 158, 11, .12);--color-warning-border: rgba(245, 158, 11, .3);--color-danger: #ef4444;--color-danger-light: rgba(239, 68, 68, .12);--color-danger-border: rgba(239, 68, 68, .3);--color-info: #3b82f6;--color-info-light: rgba(59, 130, 246, .12);--color-info-border: rgba(59, 130, 246, .3);--color-high: #ef4444;--color-high-bg: rgba(239, 68, 68, .1);--color-high-border: rgba(239, 68, 68, .25);--color-medium: #f59e0b;--color-medium-bg: rgba(245, 158, 11, .1);--color-medium-border: rgba(245, 158, 11, .25);--color-low: #10b981;--color-low-bg: rgba(16, 185, 129, .1);--color-low-border: rgba(16, 185, 129, .25);--sidebar-width: 220px;--header-height: 56px;--content-max: 1280px;--radius-xs: 4px;--radius-sm: 6px;--radius-md: 10px;--radius-lg: 14px;--radius-xl: 20px;--radius-full: 9999px;--shadow-xs: 0 1px 2px rgba(0, 0, 0, .4);--shadow-sm: 0 2px 8px rgba(0, 0, 0, .35);--shadow-md: 0 4px 16px rgba(0, 0, 0, .45);--shadow-lg: 0 8px 32px rgba(0, 0, 0, .55);--shadow-glow: 0 0 24px rgba(99, 102, 241, .15);--t-fast: .12s ease;--t-normal: .2s ease;--t-slow: .3s ease;--transition-fast: .15s ease;--transition-normal: .25s ease;--z-dropdown: 100;--z-modal: 200;--z-toast: 300}.light{--bg-base: #f8f9fc;--bg-primary: #f4f5f9;--bg-secondary: #ffffff;--bg-tertiary: #eef0f7;--bg-card: #ffffff;--bg-card-hover: #f7f8fc;--bg-elevated: #ffffff;--bg-hover: #f0f2fa;--bg-input: #ffffff;--bg-badge: #eef0f7;--border-color: #e2e5f0;--border-light: #d4d8ee;--border-input: #d0d4eb;--text-primary: #111827;--text-secondary: #4b5280;--text-muted: #9299b8;--text-link: #6366f1;--shadow-xs: 0 1px 2px rgba(0, 0, 0, .06);--shadow-sm: 0 2px 8px rgba(0, 0, 0, .08);--shadow-md: 0 4px 16px rgba(0, 0, 0, .1);--shadow-lg: 0 8px 32px rgba(0, 0, 0, .12);--shadow-glow: 0 0 24px rgba(99, 102, 241, .1)}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{font-size:14px;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{font-family:-apple-system,BlinkMacSystemFont,Inter,Segoe UI,system-ui,sans-serif;background:var(--bg-base);color:var(--text-primary);line-height:1.6;min-height:100vh}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--border-color);border-radius:var(--radius-full)}::-webkit-scrollbar-thumb:hover{background:var(--border-light)}::selection{background:var(--color-primary-light);color:var(--text-primary)}:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}h1{font-size:1.75rem;font-weight:700;letter-spacing:-.025em;line-height:1.2}h2{font-size:1.375rem;font-weight:650;letter-spacing:-.02em}h3{font-size:1.1rem;font-weight:600;letter-spacing:-.01em}h4{font-size:.9375rem;font-weight:600}p{color:var(--text-secondary);line-height:1.65}a{color:var(--text-link);text-decoration:none}a:hover{text-decoration:underline}strong{font-weight:600;color:var(--text-primary)}small{font-size:.75rem}code{font-family:Fira Code,Cascadia Code,monospace;font-size:.85em;background:var(--bg-tertiary);padding:2px 6px;border-radius:var(--radius-xs);border:1px solid var(--border-color)}img,video,svg{display:block;max-width:100%}.text-primary{color:var(--text-primary)!important}.text-secondary{color:var(--text-secondary)!important}.text-muted{color:var(--text-muted)!important}.text-danger{color:var(--color-danger)!important}.text-success{color:var(--color-success)!important}.text-warning{color:var(--color-warning)!important}.text-info{color:var(--color-info)!important}.text-center{text-align:center!important}.text-right{text-align:right!important}.text-sm{font-size:.8125rem!important}.text-xs{font-size:.75rem!important}.text-bold{font-weight:600}.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.flex{display:flex}.flex-col{flex-direction:column}.items-center{align-items:center}.justify-between{justify-content:space-between}.gap-2{gap:8px}.gap-3{gap:12px}.gap-4{gap:16px}.gap-8{gap:8px}.gap-12{gap:12px}.gap-16{gap:16px}.mt-4{margin-top:16px}.mt-6{margin-top:24px}.mb-4{margin-bottom:16px}.mb-6{margin-bottom:24px}.w-full{width:100%}@keyframes fadeIn{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}@keyframes slideUp{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}@keyframes spin{to{transform:rotate(360deg)}}@keyframes pulse{0%,to{opacity:.4}50%{opacity:.8}}@keyframes shimmer{0%{background-position:-200% 0}to{background-position:200% 0}}.fade-in{animation:fadeIn .2s ease both}.slide-up{animation:slideUp .25s ease both}.spinner{width:20px;height:20px;margin:32px auto;border:2px solid var(--border-color);border-top-color:var(--color-primary);border-radius:50%;animation:spin .7s linear infinite;display:block}.skeleton{background:linear-gradient(90deg,var(--bg-card) 25%,var(--bg-elevated) 50%,var(--bg-card) 75%);background-size:200% 100%;animation:shimmer 1.5s infinite;border-radius:var(--radius-sm);min-height:96px;border:1px solid var(--border-color)}.icon-sun,.icon-moon{pointer-events:none}#app{display:flex;height:100vh;overflow:hidden;background:var(--bg-base)}#sidebar{width:var(--sidebar-width);min-width:var(--sidebar-width);height:100vh;background:var(--bg-secondary);border-right:1px solid var(--border-color);display:flex;flex-direction:column;overflow:hidden}.sidebar-brand{display:flex;align-items:center;gap:10px;padding:18px 16px 14px;border-bottom:1px solid var(--border-color);flex-shrink:0}.sidebar-brand svg{flex-shrink:0}.brand-name{font-size:.9375rem;font-weight:700;color:var(--text-primary);letter-spacing:-.01em}.brand-tag{font-size:.65rem;font-weight:600;color:var(--color-primary);background:var(--color-primary-light);padding:1px 6px;border-radius:var(--radius-full);margin-left:auto}.sidebar-nav{flex:1;padding:10px 8px;overflow-y:auto;display:flex;flex-direction:column;gap:2px}.nav-section-label{font-size:.6875rem;font-weight:600;color:var(--text-muted);text-transform:uppercase;letter-spacing:.08em;padding:10px 10px 4px}.nav-link{display:flex;align-items:center;gap:9px;padding:8px 10px;border-radius:var(--radius-sm);color:var(--text-secondary);text-decoration:none;font-size:.875rem;font-weight:500;transition:background var(--t-fast),color var(--t-fast);position:relative;white-space:nowrap}.nav-link:hover{background:var(--bg-hover);color:var(--text-primary);text-decoration:none}.nav-link.active{background:linear-gradient(90deg,var(--color-primary-light) 0%,transparent 100%);border-left:2px solid var(--color-primary);padding-left:8px;color:var(--color-primary)}.nav-link.active svg{color:var(--color-primary);opacity:1}.nav-link svg{flex-shrink:0;opacity:.75}.nav-badge{margin-left:auto;background:var(--color-danger);color:#fff;font-size:.65rem;font-weight:700;padding:1px 6px;border-radius:var(--radius-full);min-width:18px;text-align:center}.sidebar-divider{height:1px;background:var(--border-color);margin:8px}.sidebar-footer{padding:12px 16px;border-top:1px solid var(--border-color);flex-shrink:0}.sidebar-footer-text{font-size:.75rem;color:var(--text-muted)}.sidebar-logo{width:32px;height:32px;border-radius:var(--radius-sm);background:var(--color-primary-light);border:1px solid var(--color-primary-glow);display:flex;align-items:center;justify-content:center;flex-shrink:0;color:var(--color-primary)}.sidebar-user{display:flex;align-items:center;gap:9px;padding:12px;border-top:1px solid var(--border-color);flex-shrink:0;min-width:0}.sidebar-user-avatar{width:30px;height:30px;border-radius:var(--radius-full);background:linear-gradient(135deg,var(--color-primary) 0%,#818cf8 100%);display:flex;align-items:center;justify-content:center;font-size:.75rem;font-weight:700;color:#fff;flex-shrink:0}.sidebar-user-info{flex:1;min-width:0;overflow:hidden}.sidebar-user-name{font-size:.8125rem;font-weight:600;color:var(--text-primary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sidebar-user-email{font-size:.7rem;color:var(--text-muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sidebar-logout{width:28px;height:28px;border-radius:var(--radius-sm);border:none;background:none;cursor:pointer;color:var(--text-muted);display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:background var(--t-fast),color var(--t-fast)}.sidebar-logout:hover{background:var(--color-danger-light);color:var(--color-danger)}.main-wrapper{flex:1;display:flex;flex-direction:column;overflow:hidden;background:var(--bg-primary)}#header{height:var(--header-height);background:var(--bg-secondary);border-bottom:1px solid var(--border-color);display:flex;align-items:center;justify-content:space-between;padding:0 24px;flex-shrink:0;gap:16px}.header-left{display:flex;align-items:center;gap:12px;flex:1}.header-right{display:flex;align-items:center;gap:10px}.header-user{display:flex;align-items:center;gap:7px;padding:4px 10px 4px 4px;border-radius:var(--radius-full);border:1px solid var(--border-color);background:var(--bg-tertiary);cursor:default;transition:border-color var(--t-fast)}.header-user:hover{border-color:var(--border-light)}.header-user-avatar{width:24px;height:24px;border-radius:var(--radius-full);background:linear-gradient(135deg,var(--color-primary) 0%,#818cf8 100%);display:flex;align-items:center;justify-content:center;font-size:.6875rem;font-weight:700;color:#fff;flex-shrink:0}.header-user-name{font-size:.8125rem;font-weight:500;color:var(--text-secondary)}.header-breadcrumb{display:flex;align-items:center;gap:6px;font-size:.875rem;color:var(--text-secondary)}.header-breadcrumb .sep{color:var(--text-muted)}.header-breadcrumb .current{color:var(--text-primary);font-weight:500}.header-title{font-size:1rem;font-weight:600;color:var(--text-primary)}.theme-toggle .icon-moon{display:none}.theme-toggle .icon-sun{display:block}.light .theme-toggle .icon-sun{display:none}.light .theme-toggle .icon-moon{display:block}#main-content{flex:1;overflow-y:auto;padding:28px 32px;background:var(--bg-primary)}.page-header{display:flex;align-items:flex-start;justify-content:space-between;margin-bottom:28px;gap:16px}.page-title{font-size:1.5rem;font-weight:700;color:var(--text-primary);letter-spacing:-.025em;margin-bottom:4px}.page-subtitle{color:var(--text-secondary);font-size:.875rem}.page-actions{display:flex;align-items:center;gap:8px;flex-shrink:0}.grid-2{display:grid;grid-template-columns:1fr 1fr;gap:16px}.grid-3{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.grid-4{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}@media (max-width: 1200px){.grid-4{grid-template-columns:repeat(2,1fr)}}@media (max-width: 1100px){.grid-4{grid-template-columns:repeat(2,1fr)}}@media (max-width: 900px){.grid-3{grid-template-columns:repeat(2,1fr)}}@media (max-width: 800px){.grid-3,.grid-2{grid-template-columns:1fr}}@media (max-width: 600px){.grid-4{grid-template-columns:1fr}#sidebar{display:none}#main-content{padding:16px}}.btn{display:inline-flex;align-items:center;gap:6px;padding:7px 14px;font-size:.875rem;font-weight:500;border-radius:var(--radius-sm);border:1px solid transparent;cursor:pointer;transition:all var(--t-fast);text-decoration:none;white-space:nowrap;line-height:1.4;-webkit-user-select:none;user-select:none;background:none;color:var(--text-primary);font-family:inherit}.btn:hover{text-decoration:none}.btn:active{transform:scale(.98)}.btn:disabled{opacity:.45;cursor:not-allowed;pointer-events:none}.btn-primary{background:var(--color-primary);color:#fff;border-color:var(--color-primary)}.btn-primary:hover{background:var(--color-primary-hover);border-color:var(--color-primary-hover);color:#fff}.btn-secondary{background:var(--bg-tertiary);color:var(--text-primary);border-color:var(--border-color)}.btn-secondary:hover{background:var(--bg-elevated);border-color:var(--border-light)}.btn-ghost{background:transparent;color:var(--text-secondary);border-color:transparent}.btn-ghost:hover{background:var(--bg-hover);color:var(--text-primary)}.btn-danger{background:var(--color-danger-light);color:var(--color-danger);border-color:var(--color-danger-border)}.btn-danger:hover{background:var(--color-danger);color:#fff}.btn-success{background:var(--color-success-light);color:var(--color-success);border-color:var(--color-success-border)}.btn-success:hover{background:var(--color-success);color:#fff}.btn-sm{padding:5px 10px;font-size:.8125rem}.btn-lg{padding:10px 20px;font-size:.9375rem}.btn-icon{padding:7px;min-width:34px;justify-content:center;border:1px solid transparent}.btn-icon:hover{border-color:transparent}.btn-icon.btn-sm{padding:5px;min-width:28px}.card{background:var(--bg-card);border:1px solid var(--border-color);border-radius:var(--radius-lg);overflow:hidden;box-shadow:var(--shadow-xs);transition:border-color var(--t-normal),box-shadow var(--t-normal)}.card:hover{border-color:var(--border-light)}.card-header{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;border-bottom:1px solid var(--border-color);gap:12px}.card-header h3{font-size:.9375rem;font-weight:600;color:var(--text-primary)}.card-body{padding:20px}.card-footer{padding:14px 20px;border-top:1px solid var(--border-color);background:var(--bg-tertiary);display:flex;align-items:center;justify-content:flex-end;gap:8px}.card-clickable{cursor:pointer}.card-clickable:hover{background:var(--bg-card-hover);box-shadow:var(--shadow-sm)}.stat-card{background:var(--bg-card);border:1px solid var(--border-color);border-radius:var(--radius-lg);padding:20px;display:flex;flex-direction:column;gap:12px;transition:all var(--t-normal);position:relative;overflow:hidden;box-shadow:var(--shadow-xs)}.stat-card:before{content:"";position:absolute;top:0;left:0;right:0;height:2px;background:var(--stat-accent, var(--color-primary));opacity:.6}.stat-card:hover{border-color:var(--border-light);box-shadow:var(--shadow-sm)}.stat-icon{width:40px;height:40px;border-radius:var(--radius-md);display:flex;align-items:center;justify-content:center;flex-shrink:0}.stat-content{flex:1;min-width:0}.stat-value{font-size:2rem;font-weight:700;color:var(--text-primary);letter-spacing:-.04em;line-height:1}.stat-label{font-size:.8125rem;color:var(--text-secondary);font-weight:500;margin-top:4px}.stat-trend{font-size:.75rem;display:flex;align-items:center;gap:4px;margin-top:auto}.stat-trend.up{color:var(--color-success)}.stat-trend.neutral{color:var(--text-muted)}.badge{display:inline-flex;align-items:center;gap:4px;padding:2px 8px;border-radius:var(--radius-full);font-size:.75rem;font-weight:600;letter-spacing:.01em;border:1px solid transparent;white-space:nowrap}.badge-success{background:var(--color-success-light);color:var(--color-success);border-color:var(--color-success-border)}.badge-warning{background:var(--color-warning-light);color:var(--color-warning);border-color:var(--color-warning-border)}.badge-danger{background:var(--color-danger-light);color:var(--color-danger);border-color:var(--color-danger-border)}.badge-info{background:var(--color-info-light);color:var(--color-info);border-color:var(--color-info-border)}.badge-secondary{background:var(--bg-tertiary);color:var(--text-secondary);border-color:var(--border-color)}.badge-primary{background:var(--color-primary-light);color:var(--color-primary);border-color:var(--color-primary-glow)}.badge-impact-high,.badge-high{background:var(--color-high-bg);color:var(--color-high);border-color:var(--color-high-border)}.badge-impact-medium,.badge-medium{background:var(--color-medium-bg);color:var(--color-medium);border-color:var(--color-medium-border)}.badge-impact-low,.badge-low{background:var(--color-low-bg);color:var(--color-low);border-color:var(--color-low-border)}.badge:before{content:"";width:5px;height:5px;border-radius:50%;background:currentColor;opacity:.7}.form-group{display:flex;flex-direction:column;gap:6px;margin-bottom:16px}.form-group:last-child{margin-bottom:0}.form-label{font-size:.8125rem;font-weight:600;color:var(--text-primary)}.form-label .required{color:var(--color-danger);margin-left:2px}.form-hint{font-size:.75rem;color:var(--text-muted)}.form-input,.form-textarea,.form-select{background:var(--bg-input);border:1px solid var(--border-input);border-radius:var(--radius-sm);padding:9px 12px;font-size:.875rem;color:var(--text-primary);transition:border-color var(--t-fast),box-shadow var(--t-fast);width:100%;outline:none;font-family:inherit}.form-input:focus,.form-textarea:focus,.form-select:focus{border-color:var(--color-primary);box-shadow:0 0 0 3px var(--color-primary-light)}.form-input::placeholder,.form-textarea::placeholder{color:var(--text-muted)}.form-textarea{resize:vertical;min-height:80px;line-height:1.6}.form-select{cursor:pointer;-moz-appearance:none;appearance:none;-webkit-appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%238892b0' stroke-width='2'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 10px center;padding-right:32px}.form-row{display:flex;gap:12px;align-items:flex-start}.form-row .form-group{flex:1}.input-group{position:relative}.input-group .form-input{padding-left:36px}.input-group .input-icon{position:absolute;left:10px;top:50%;transform:translateY(-50%);color:var(--text-muted);pointer-events:none}.input-group-append{display:flex}.input-group-append .form-input{border-radius:var(--radius-sm) 0 0 var(--radius-sm);flex:1}.input-group-append .btn{border-radius:0 var(--radius-sm) var(--radius-sm) 0;border-left:none;flex-shrink:0}.tabs{display:flex;border-bottom:1px solid var(--border-color);gap:0;margin-bottom:20px;overflow-x:auto}.tab{padding:10px 16px;font-size:.875rem;font-weight:500;color:var(--text-secondary);border:none;background:none;cursor:pointer;border-bottom:2px solid transparent;margin-bottom:-1px;transition:all var(--t-fast);white-space:nowrap;font-family:inherit}.tab:hover{color:var(--text-primary)}.tab.active{color:var(--color-primary);border-bottom-color:var(--color-primary)}.tab-content{display:none}.tab-content.active{display:block;animation:fadeIn .15s ease}.tabs-body{width:100%}.table-wrapper{overflow-x:auto}table,.table{width:100%;border-collapse:collapse;font-size:.875rem}thead th,.table th{padding:10px 16px;text-align:left;font-size:.75rem;font-weight:600;color:var(--text-muted);text-transform:uppercase;letter-spacing:.06em;border-bottom:1px solid var(--border-color);white-space:nowrap;background:var(--bg-tertiary)}tbody td,.table td{padding:12px 16px;border-bottom:1px solid var(--border-color);vertical-align:middle;color:var(--text-primary)}tbody tr:last-child td,.table tbody tr:last-child td{border-bottom:none}tbody tr,.table tbody tr{transition:background var(--t-fast)}tbody tr:hover,.table tbody tr:hover td{background:var(--bg-hover)}.table-empty td{text-align:center;padding:48px;color:var(--text-muted)}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#000000b3;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:var(--z-modal);opacity:0;transition:opacity var(--t-normal);padding:24px}.modal-overlay.modal-open{opacity:1}.modal-overlay.modal-open .modal-content{transform:translateY(0);opacity:1}.modal-content{background:var(--bg-card);border:1px solid var(--border-color);border-radius:var(--radius-xl);width:100%;max-width:560px;box-shadow:var(--shadow-lg);transform:translateY(12px);opacity:0;transition:all var(--t-normal);max-height:90vh;display:flex;flex-direction:column}.modal-header{display:flex;align-items:center;justify-content:space-between;padding:20px 24px;border-bottom:1px solid var(--border-color);flex-shrink:0}.modal-title{font-size:1rem;font-weight:600;color:var(--text-primary)}.modal-body{padding:24px;overflow-y:auto;flex:1}.modal-footer{padding:16px 24px;border-top:1px solid var(--border-color);display:flex;justify-content:flex-end;gap:8px;flex-shrink:0}.modal-close{border:none;font-size:1rem;background:none;cursor:pointer;color:var(--text-muted)}.modal-close:hover{color:var(--text-primary)}#toast-root{position:fixed;bottom:24px;right:24px;z-index:var(--z-toast);display:flex;flex-direction:column;gap:8px;pointer-events:none}.toast{display:flex;align-items:center;gap:12px;background:var(--bg-elevated);border:1px solid var(--border-color);border-radius:var(--radius-md);padding:12px 16px;box-shadow:var(--shadow-lg);min-width:300px;max-width:420px;pointer-events:all;opacity:0;transform:translate(20px);transition:all var(--t-normal)}.toast-visible{opacity:1;transform:translate(0)}.toast-icon{flex-shrink:0;width:18px;height:18px}.toast-message{flex:1;font-size:.875rem;color:var(--text-primary);line-height:1.4}.toast-close{background:none;border:none;cursor:pointer;color:var(--text-muted);padding:2px;margin-left:4px;transition:color var(--t-fast);flex-shrink:0;font-size:.875rem;line-height:1}.toast-close:hover{color:var(--text-primary)}.toast-success{border-left:3px solid var(--color-success)}.toast-error{border-left:3px solid var(--color-danger)}.toast-warning{border-left:3px solid var(--color-warning)}.toast-info{border-left:3px solid var(--color-info)}.progress-bar{height:6px;background:var(--bg-tertiary);border-radius:var(--radius-full);overflow:hidden}.progress-fill{height:100%;border-radius:var(--radius-full);background:var(--color-primary);transition:width .4s ease}.progress-label{font-size:.75rem;color:var(--text-secondary);margin-top:4px}.diff-viewer{display:grid;grid-template-columns:1fr 1fr;gap:0;border:1px solid var(--border-color);border-radius:var(--radius-md);overflow:hidden}.diff-pane{display:flex;flex-direction:column}.diff-pane-header{padding:8px 14px;font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.06em}.diff-header-original{background:var(--color-danger-light);color:var(--color-danger);border-bottom:1px solid var(--color-danger-border)}.diff-header-rewritten{background:var(--color-success-light);color:var(--color-success);border-bottom:1px solid var(--color-success-border);border-left:1px solid var(--border-color)}.diff-original{padding:14px;font-size:.875rem;color:var(--text-primary);line-height:1.7;white-space:pre-wrap;word-break:break-word;background:#ef444408;flex:1}.diff-rewritten{padding:14px;font-size:.875rem;color:var(--text-primary);line-height:1.7;white-space:pre-wrap;word-break:break-word;background:#10b98108;border-left:1px solid var(--border-color);flex:1}.diff-explanation{grid-column:1/-1;padding:12px 14px;background:var(--bg-tertiary);border-top:1px solid var(--border-color);font-size:.8125rem;color:var(--text-secondary);line-height:1.6}.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:64px 32px;text-align:center;gap:12px}.empty-state svg{opacity:.3;margin-bottom:8px}.empty-state h3{font-size:1rem;font-weight:600;color:var(--text-primary)}.empty-state p{color:var(--text-secondary);font-size:.875rem;max-width:360px}.empty-state .btn{margin-top:8px}.file-upload{border:2px dashed var(--border-color);border-radius:var(--radius-md);padding:32px;text-align:center;cursor:pointer;transition:all var(--t-normal);background:var(--bg-input);display:flex;flex-direction:column;align-items:center;gap:8px;color:var(--text-secondary)}.file-upload:hover,.file-upload.drag-over,.file-upload-active{border-color:var(--color-primary);background:var(--color-primary-light);color:var(--text-primary)}.file-upload svg{color:var(--text-muted)}.file-upload .upload-title{font-weight:600;color:var(--text-primary);font-size:.9375rem}.file-upload .upload-hint{font-size:.8125rem;color:var(--text-secondary)}.file-upload .upload-types{font-size:.75rem;color:var(--text-muted);margin-top:4px}.input-method-selector{display:flex;gap:8px;margin-bottom:20px}.input-method-btn{flex:1;display:flex;flex-direction:column;align-items:center;gap:6px;padding:12px;border:1px solid var(--border-color);border-radius:var(--radius-md);background:var(--bg-input);cursor:pointer;transition:all var(--t-fast);font-size:.8125rem;color:var(--text-secondary);font-weight:500;font-family:inherit}.input-method-btn:hover{border-color:var(--border-light);background:var(--bg-hover);color:var(--text-primary)}.input-method-btn.active{border-color:var(--color-primary);background:var(--color-primary-light);color:var(--color-primary)}.input-method-btn svg{opacity:.8}.pagination{display:flex;align-items:center;justify-content:flex-end;gap:8px;margin-top:16px;padding-top:16px;border-top:1px solid var(--border-color);font-size:.8125rem;color:var(--text-secondary)}.pagination-info{font-size:.8125rem;color:var(--text-muted);margin-right:auto}.status-dot{width:7px;height:7px;border-radius:50%;display:inline-block;margin-right:5px}.status-dot.healthy{background:var(--color-success);box-shadow:0 0 6px var(--color-success)}.status-dot.unhealthy{background:var(--color-danger)}.status-dot.processing{background:var(--color-warning);animation:pulse 1.5s infinite}.job-card{background:var(--bg-card);border:1px solid var(--border-color);border-radius:var(--radius-md);padding:14px 16px;display:flex;flex-direction:column;gap:8px}.job-card-header{display:flex;align-items:center;justify-content:space-between;gap:8px}.job-card-title{font-size:.875rem;font-weight:500;color:var(--text-primary)}.job-card-url{font-size:.8125rem;color:var(--text-muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.section-card{border:1px solid var(--border-color);border-radius:var(--radius-md);overflow:hidden;margin-bottom:16px;transition:opacity var(--t-normal)}.section-card.reviewed{opacity:.6}.section-card.accepted .card-header{border-left:3px solid var(--color-success)}.section-card.rejected .card-header{border-left:3px solid var(--color-danger)}.section-card.edited .card-header{border-left:3px solid var(--color-info)}.section-reviewed{opacity:.65}.filter-bar{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.filter-row{display:flex;gap:10px;align-items:flex-end;flex-wrap:wrap;margin-bottom:20px}.filter-row .form-group{margin-bottom:0;min-width:140px}.text-link{color:var(--text-link)!important}.text-link:hover{text-decoration:underline}.divider{height:1px;background:var(--border-color);margin:20px 0}.quick-actions{display:flex;flex-direction:column;gap:8px}.quick-actions .btn{justify-content:flex-start}.danger-zone{border-color:var(--color-danger-border)!important}.danger-zone .card-header{background:var(--color-danger-light);border-bottom-color:var(--color-danger-border)}.danger-row{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:16px 0;border-bottom:1px solid var(--border-color)}.danger-row:last-child{border-bottom:none;padding-bottom:0}.danger-row:first-child{padding-top:0}.danger-row strong{font-size:.875rem;font-weight:600;color:var(--text-primary);display:block;margin-bottom:2px}.danger-row p{font-size:.8125rem;margin:0}.danger-row-reset{margin-top:4px;padding-top:20px!important}.danger-row-reset strong{font-size:.9375rem!important}.danger-divider{height:1px;background:var(--color-danger-border);margin:4px 0}.info-row{display:flex;flex-direction:column;gap:10px}.info-row-item{display:flex;gap:8px}.info-row-label{font-size:.8125rem;font-weight:600;color:var(--text-secondary);min-width:120px;flex-shrink:0}.info-row-value{font-size:.8125rem;color:var(--text-primary)}.loading-overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:#0006;display:flex;align-items:center;justify-content:center;z-index:100;border-radius:inherit}.action-card{display:flex;align-items:center;gap:14px;padding:14px 16px;border:1px solid var(--border-color);border-radius:var(--radius-md);background:var(--bg-card);cursor:pointer;transition:all var(--t-fast);text-decoration:none;color:var(--text-primary)}.action-card:hover{background:var(--bg-card-hover);border-color:var(--border-light);text-decoration:none;box-shadow:var(--shadow-sm)}.action-card-icon{width:36px;height:36px;border-radius:var(--radius-sm);display:flex;align-items:center;justify-content:center;flex-shrink:0}.action-card-label{font-size:.875rem;font-weight:500}.action-card-desc{font-size:.75rem;color:var(--text-muted);margin-top:1px}.btn-primary:hover{box-shadow:0 4px 16px var(--color-primary-glow),0 0 0 1px var(--color-primary)}@keyframes statCardIn{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}.stat-card{animation:statCardIn .3s ease both}.stat-card:nth-child(1){animation-delay:0ms}.stat-card:nth-child(2){animation-delay:60ms}.stat-card:nth-child(3){animation-delay:.12s}.stat-card:nth-child(4){animation-delay:.18s}.stat-card:hover{transform:translateY(-3px);box-shadow:var(--shadow-md),0 0 20px var(--color-primary-glow)}tbody tr:hover td:first-child{box-shadow:inset 3px 0 0 var(--color-primary)}.badge-high{box-shadow:0 0 8px var(--color-high-border)}.badge-medium{box-shadow:0 0 8px var(--color-medium-border)}.badge-low{box-shadow:0 0 8px var(--color-low-border)}.card:hover{box-shadow:var(--shadow-sm),0 0 0 1px var(--border-light)}.md-editor{border:1px solid var(--border-input);border-radius:var(--radius-sm);background:var(--bg-input);overflow:hidden}.md-editor-tabs{display:flex;align-items:center;border-bottom:1px solid var(--border-color);background:var(--bg-tertiary);padding:0 8px}.md-tab{padding:6px 12px;font-size:.8125rem;font-weight:500;color:var(--text-secondary);background:none;border:none;border-bottom:2px solid transparent;cursor:pointer;margin-bottom:-1px;font-family:inherit;transition:color var(--t-fast),border-color var(--t-fast)}.md-tab.active{color:var(--color-primary);border-bottom-color:var(--color-primary)}.md-editor-body{position:relative}.md-write-pane{border:none!important;border-radius:0!important;min-height:180px;resize:vertical;width:100%;box-sizing:border-box}.md-write-pane:focus{box-shadow:none!important;outline:none!important}.md-preview-pane{padding:12px 16px;min-height:180px;font-size:.875rem;line-height:1.7;color:var(--text-primary);overflow-y:auto}.md-preview-pane h2{font-size:1.125rem;font-weight:700;margin:16px 0 8px;color:var(--text-primary)}.md-preview-pane h3{font-size:1rem;font-weight:600;margin:12px 0 6px;color:var(--text-primary)}.md-preview-pane p{margin:0 0 10px}.md-preview-pane ul,.md-preview-pane ol{margin:0 0 10px 20px}.md-preview-pane li{margin-bottom:4px}.md-preview-pane code{background:var(--bg-elevated);border:1px solid var(--border-color);border-radius:var(--radius-xs);padding:1px 5px;font-size:.8125rem;font-family:monospace}.md-preview-pane pre code{display:block;padding:10px 12px;overflow-x:auto}.md-preview-pane a{color:var(--text-link)}.md-preview-pane strong{font-weight:700}.md-preview-pane em{font-style:italic}.scope-checkbox-label{display:inline-flex;align-items:center;gap:8px;font-size:.875rem;color:var(--text-primary);cursor:pointer;-webkit-user-select:none;user-select:none}.scope-checkbox-label input[type=checkbox]{width:15px;height:15px;flex-shrink:0;cursor:pointer}.login-page{min-height:100vh;width:100%;display:flex;align-items:center;justify-content:center;background:var(--bg-base);padding:24px;position:relative;overflow:hidden}.login-bg-glow{position:absolute;width:600px;height:600px;border-radius:50%;background:radial-gradient(ellipse,rgba(99,102,241,.12) 0%,transparent 70%);top:-200px;left:50%;transform:translate(-50%);pointer-events:none}.login-card{position:relative;width:100%;max-width:440px;background:var(--bg-card);border:1px solid var(--border-color);border-radius:var(--radius-xl);padding:40px;box-shadow:var(--shadow-lg),0 0 80px #6366f10f;animation:slideUp .3s ease both}.login-brand{display:flex;align-items:center;gap:12px;margin-bottom:32px}.login-logo{width:44px;height:44px;border-radius:var(--radius-md);background:var(--color-primary-light);border:1px solid var(--color-primary-glow);display:flex;align-items:center;justify-content:center;color:var(--color-primary);flex-shrink:0}.login-brand-name{font-size:1.125rem;font-weight:700;color:var(--text-primary);letter-spacing:-.02em}.login-brand-tag{font-size:.75rem;color:var(--text-muted);margin-top:1px}.login-heading{margin-bottom:28px}.login-heading h1{font-size:1.5rem;font-weight:700;color:var(--text-primary);letter-spacing:-.025em;margin-bottom:6px;background:linear-gradient(135deg,var(--text-primary) 0%,var(--color-primary) 120%);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.login-heading p{font-size:.875rem;color:var(--text-secondary);line-height:1.5}.login-error{display:flex;align-items:flex-start;gap:8px;background:var(--color-danger-light);border:1px solid var(--color-danger-border);border-radius:var(--radius-md);padding:10px 14px;font-size:.8125rem;color:var(--color-danger);margin-bottom:20px;line-height:1.45}.login-form{display:flex;flex-direction:column;gap:16px}.login-field{display:flex;flex-direction:column;gap:6px}.login-field label{font-size:.8125rem;font-weight:600;color:var(--text-primary)}.login-field input{background:var(--bg-input);border:1px solid var(--border-input);border-radius:var(--radius-sm);padding:10px 13px;font-size:.875rem;color:var(--text-primary);font-family:inherit;width:100%;outline:none;transition:border-color var(--t-fast),box-shadow var(--t-fast)}.login-field input:focus{border-color:var(--color-primary);box-shadow:0 0 0 3px var(--color-primary-light)}.login-field input::placeholder{color:var(--text-muted)}.login-pw-wrap{position:relative}.login-pw-wrap input{padding-right:42px}.login-pw-toggle{position:absolute;right:10px;top:50%;transform:translateY(-50%);background:none;border:none;cursor:pointer;color:var(--text-muted);padding:4px;display:flex;align-items:center;transition:color var(--t-fast)}.login-pw-toggle:hover{color:var(--text-primary)}.login-submit{margin-top:4px;width:100%;padding:11px;background:var(--color-primary);color:#fff;border:none;border-radius:var(--radius-sm);font-size:.9375rem;font-weight:600;cursor:pointer;font-family:inherit;transition:background var(--t-fast),box-shadow var(--t-fast),transform var(--t-fast);display:flex;align-items:center;justify-content:center;gap:8px}.login-submit:hover:not(:disabled){background:var(--color-primary-hover);box-shadow:0 4px 20px var(--color-primary-glow)}.login-submit:active:not(:disabled){transform:scale(.99)}.login-submit:disabled{opacity:.6;cursor:not-allowed}.login-spinner{width:18px;height:18px;border:2px solid rgba(255,255,255,.3);border-top-color:#fff;border-radius:50%;animation:spin .7s linear infinite}.login-divider{display:flex;align-items:center;gap:12px;margin:20px 0}.login-divider:before,.login-divider:after{content:"";flex:1;height:1px;background:var(--border-color)}.login-divider span{font-size:.75rem;color:var(--text-muted);white-space:nowrap}.login-toggle{text-align:center;font-size:.875rem;color:var(--text-secondary);line-height:1.5}.login-toggle button{background:none;border:none;cursor:pointer;color:var(--color-primary);font-weight:600;font-size:inherit;font-family:inherit;padding:0;transition:color var(--t-fast)}.login-toggle button:hover{color:var(--color-primary-hover);text-decoration:underline}.login-footer-note{margin-top:20px;font-size:.725rem;color:var(--text-muted);text-align:center;line-height:1.5}.dashboard-stats,.indexing-forms .card,.flags-filter{margin-bottom:24px}.flags-filter .card-body{display:flex;gap:12px;flex-wrap:wrap;align-items:flex-end}.review-meta{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-bottom:24px}.review-sections h2{margin-bottom:16px;font-size:1.125rem;color:var(--text-primary)}.settings-section,.law-changes-form,.guidelines-form{margin-bottom:24px}.page-title{background:linear-gradient(135deg,var(--text-primary) 0%,var(--color-primary) 100%);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}#main-content>*{animation:fadeIn .2s ease}@keyframes fadeIn{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}@media (max-width: 768px){.diff-viewer{grid-template-columns:1fr}}@media (max-width: 900px){.review-meta{grid-template-columns:1fr}}
