@import "https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700;800;900&display=swap";:root{--color-primary:#2ba5b5;--color-primary-hover:#1e8a98;--color-primary-light:#e0f4f7;--color-primary-10:#2ba5b51a;--color-primary-20:#2ba5b533;--color-accent-coral:#e86c5a;--color-accent-purple:#7b5ea7;--bg-main:#f4f6f8;--bg-surface:#fff;--bg-surface-hover:#f8fafc;--bg-dark:#1a1d23;--bg-dark-alt:#111215;--color-success:#10b981;--color-success-dark:#059669;--color-success-light:#ecfdf5;--color-warning:#f59e0b;--color-warning-dark:#d97706;--color-warning-light:#fffbeb;--color-danger:#ef4444;--color-danger-dark:#dc2626;--color-danger-light:#fef2f2;--color-info:#6366f1;--color-info-light:#eef2ff;--text-primary:#1e293b;--text-secondary:#334155;--text-tertiary:#64748b;--text-muted:#94a3b8;--text-inverse:#fff;--border-light:#e2e8f0;--border-default:#cbd5e1;--border-focus:var(--color-primary);--shadow-sm:0 1px 3px #0000000a;--shadow-md:0 4px 12px #0000000f;--shadow-lg:0 8px 24px #00000014;--shadow-xl:0 16px 48px #0000001f;--shadow-primary:0 4px 14px #2ba5b540;--radius-sm:.5rem;--radius-md:.75rem;--radius-lg:1rem;--radius-xl:1.25rem;--radius-2xl:1.5rem;--radius-full:9999px;--font-family:"Inter", system-ui, -apple-system, sans-serif;--transition-fast:.15s cubic-bezier(.4, 0, .2, 1);--transition-base:.2s cubic-bezier(.4, 0, .2, 1);--transition-slow:.3s cubic-bezier(.4, 0, .2, 1)}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-size:16px}body{font-family:var(--font-family);background:var(--bg-main);color:var(--text-primary);min-height:100vh;line-height:1.6}#root{flex-direction:column;min-height:100vh;display:flex}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:var(--text-muted);border-radius:var(--radius-full)}::-webkit-scrollbar-thumb:hover{background:var(--text-tertiary)}.card{background:var(--bg-surface);border:1px solid var(--border-light);border-radius:var(--radius-2xl);box-shadow:var(--shadow-sm);transition:box-shadow var(--transition-base), transform var(--transition-base);padding:1.5rem}.card:hover{box-shadow:var(--shadow-md)}.glass{-webkit-backdrop-filter:blur(12px);box-shadow:var(--shadow-lg);background:#ffffffb3;border:1px solid #fff3}.glass-dark{-webkit-backdrop-filter:blur(20px);background:#1a1d23f2;border:1px solid #ffffff1a}.btn{border-radius:var(--radius-xl);font-family:var(--font-family);cursor:pointer;transition:all var(--transition-base);white-space:nowrap;-webkit-user-select:none;user-select:none;border:none;justify-content:center;align-items:center;gap:.5rem;padding:.625rem 1.25rem;font-size:.875rem;font-weight:600;text-decoration:none;display:inline-flex}.btn:active{transform:scale(.97)}.btn-primary{background:var(--color-primary);color:var(--text-inverse);box-shadow:var(--shadow-primary)}.btn-primary:hover{background:var(--color-primary-hover);transform:translateY(-1px);box-shadow:0 6px 20px #2ba5b559}.btn-secondary{background:var(--bg-surface);color:var(--text-secondary);border:1.5px solid var(--border-light)}.btn-secondary:hover{background:var(--bg-surface-hover);border-color:var(--border-default)}.btn-success{background:var(--color-success);color:var(--text-inverse)}.btn-success:hover{background:var(--color-success-dark)}.btn-danger{background:var(--color-danger);color:var(--text-inverse)}.btn-danger:hover{background:var(--color-danger-dark)}.btn-ghost{color:var(--text-tertiary);background:0 0;padding:.375rem}.btn-ghost:hover{color:var(--color-primary);background:var(--color-primary-10)}.btn-sm{border-radius:var(--radius-md);padding:.375rem .75rem;font-size:.8125rem}.btn-lg{border-radius:var(--radius-xl);padding:.875rem 1.75rem;font-size:1rem}.input,.textarea,.select{border:1.5px solid var(--border-light);border-radius:var(--radius-lg);background:var(--bg-surface-hover);width:100%;font-family:var(--font-family);color:var(--text-primary);transition:all var(--transition-base);outline:none;padding:.625rem .875rem;font-size:.875rem}.input:focus,.textarea:focus,.select:focus{border-color:var(--color-primary);background:var(--bg-surface);box-shadow:0 0 0 3px var(--color-primary-10)}.label{text-transform:uppercase;letter-spacing:.1em;color:var(--text-muted);margin-bottom:.375rem;font-size:.625rem;font-weight:700;display:block}.badge{border-radius:var(--radius-full);align-items:center;padding:.125rem .625rem;font-size:.6875rem;font-weight:600;line-height:1.6;display:inline-flex}.badge-success{background:var(--color-success-light);color:var(--color-success-dark);border:1px solid #a7f3d0}.badge-warning{background:var(--color-warning-light);color:var(--color-warning-dark);border:1px solid #fde68a}.badge-danger{background:var(--color-danger-light);color:var(--color-danger-dark);border:1px solid #fecaca}.badge-info{background:var(--color-info-light);color:var(--color-info);border:1px solid #c7d2fe}.badge-neutral{color:var(--text-tertiary);border:1px solid var(--border-light);background:#f1f5f9}.badge-primary{background:var(--color-primary-light);color:var(--color-primary-hover);border:1px solid #b2e0e6}@keyframes fadeIn{0%{opacity:0;transform:translateY(12px)scale(.97)}to{opacity:1;transform:translateY(0)scale(1)}}@keyframes slideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes slideDown{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}@keyframes pulse-glow{0%,to{box-shadow:0 0 0 0 var(--color-primary-20)}50%{box-shadow:0 0 0 8px #0000}}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes shimmer{0%{background-position:-200% 0}to{background-position:200% 0}}.animate-fadeIn{animation:.4s ease-out both fadeIn}.animate-slideUp{animation:.5s ease-out both slideUp}.animate-pulse{animation:2s ease-in-out infinite pulse-glow}.progress-bar{border-radius:var(--radius-full);background:#e2e8f0;width:100%;height:6px;overflow:hidden}.progress-bar-fill{border-radius:var(--radius-full);background:linear-gradient(90deg, var(--color-primary), #5cc6d0);height:100%;transition:width .6s ease-out}.data-table{border-collapse:collapse;width:100%}.data-table thead th{background:var(--bg-surface-hover);text-align:left;text-transform:uppercase;letter-spacing:.05em;color:var(--text-tertiary);border-bottom:2px solid var(--border-light);white-space:nowrap;z-index:10;cursor:pointer;-webkit-user-select:none;user-select:none;padding:.75rem 1rem;font-size:.6875rem;font-weight:700;position:sticky;top:0}.data-table thead th:hover{color:var(--text-primary)}.data-table tbody tr{transition:background var(--transition-fast);border-bottom:1px solid #f1f5f9}.data-table tbody tr:hover{background:#2ba5b508}.data-table tbody tr.selected{background:var(--color-primary-light);box-shadow:inset 3px 0 0 var(--color-primary)}.data-table tbody td{vertical-align:middle;padding:.75rem 1rem;font-size:.875rem}.toast-container{z-index:9999;flex-direction:column;align-items:center;gap:.5rem;display:flex;position:fixed;bottom:1.5rem;left:50%;transform:translate(-50%)}.toast{background:var(--bg-dark);color:var(--text-inverse);border-radius:var(--radius-xl);box-shadow:var(--shadow-xl);align-items:center;gap:.5rem;padding:.75rem 1.5rem;font-size:.875rem;font-weight:500;animation:.3s ease-out both slideUp;display:flex}.app-container{width:100%;max-width:1400px;margin:0 auto;padding:2rem}.page-header{margin-bottom:2rem}.page-title{color:var(--text-primary);margin-bottom:.25rem;font-size:1.75rem;font-weight:800}.page-subtitle{color:var(--text-tertiary);font-size:.9375rem;font-weight:400}.split-layout{grid-template-columns:1fr 380px;align-items:start;gap:1.5rem;display:grid}@media (width<=1024px){.split-layout{grid-template-columns:1fr}}.dropzone{border:2px dashed var(--border-default);border-radius:var(--radius-2xl);text-align:center;cursor:pointer;transition:all var(--transition-base);background:var(--bg-surface);padding:3rem 2rem}.dropzone:hover,.dropzone.active{border-color:var(--color-primary);background:var(--color-primary-light)}.dropzone.active{animation:1.5s ease-in-out infinite pulse-glow}.dropzone-icon{opacity:.5;margin-bottom:1rem;font-size:3rem}.dropzone-text{color:var(--text-secondary);margin-bottom:.25rem;font-size:1rem;font-weight:600}.dropzone-hint{color:var(--text-muted);font-size:.8125rem}.score-high{color:var(--color-success-dark)}.score-mid{color:var(--color-warning-dark)}.score-low{color:var(--color-danger-dark)}
