:root{font-family:Plus Jakarta Sans,system-ui,-apple-system,sans-serif;line-height:1.6;font-weight:400;color-scheme:dark;color:#ffffffeb;background-color:#08080a;letter-spacing:-.01em;--bg-page: #08080a;--bg-surface: #0c0c0f;--bg-card: #111114;--bg-elevated: #18181c;--bg-overlay: #1c1c22;--border-subtle: rgba(255, 255, 255, .06);--border-default: rgba(255, 255, 255, .09);--border-strong: rgba(255, 255, 255, .12);--border: var(--border-default);--text-primary: #fafafa;--text-secondary: rgba(255, 255, 255, .75);--text-muted: rgba(255, 255, 255, .5);--text-faint: rgba(255, 255, 255, .35);--accent-blue: #4f8cff;--accent-blue-dim: rgba(79, 140, 255, .2);--accent-purple: #a78bfa;--accent-purple-dim: rgba(167, 139, 250, .2);--gradient-primary: linear-gradient(135deg, #4f8cff 0%, #a78bfa 50%, #c084fc 100%);--gradient-primary-subtle: linear-gradient(135deg, rgba(79, 140, 255, .15) 0%, rgba(167, 139, 250, .15) 100%);--glow-primary: 0 0 40px -8px rgba(79, 140, 255, .35);--pour-red: #f87171;--pour-red-bg: rgba(248, 113, 113, .12);--pour-orange: #fb923c;--pour-orange-bg: rgba(251, 146, 60, .12);--pour-blue: #60a5fa;--pour-blue-bg: rgba(96, 165, 250, .12);--pour-green: #34d399;--pour-green-bg: rgba(52, 211, 153, .12);--severity-critical: #ef4444;--severity-high: #f97316;--severity-medium: #eab308;--severity-low: #22c55e;--shadow-sm: 0 1px 2px rgba(0, 0, 0, .4);--shadow-md: 0 4px 12px rgba(0, 0, 0, .35), 0 0 1px rgba(255, 255, 255, .05);--shadow-lg: 0 12px 40px rgba(0, 0, 0, .4), 0 0 1px rgba(255, 255, 255, .06);--shadow-glow: 0 0 60px -12px rgba(79, 140, 255, .25);--ease-out: cubic-bezier(.22, 1, .36, 1);--transition-fast: .15s var(--ease-out);--transition-normal: .25s var(--ease-out);--transition-slow: .35s var(--ease-out);font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}*{box-sizing:border-box}body{margin:0;min-width:320px;min-height:100vh;background-color:var(--bg-page);background-image:radial-gradient(ellipse 120% 80% at 50% -20%,rgba(79,140,255,.06),transparent 50%)}#root{min-height:100vh}a{font-weight:500;color:var(--accent-blue);text-decoration:none;transition:color var(--transition-fast)}a:hover{color:var(--accent-purple)}h1,h2,h3,h4{margin:0 0 .5rem;font-weight:600;letter-spacing:-.02em}h1{font-weight:700;letter-spacing:-.03em}.app-layout{min-height:100vh;display:flex;flex-direction:column}.df-header{display:flex;align-items:center;justify-content:space-between;padding:1rem 2.5rem;background:#0c0c0fcc;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border-bottom:1px solid var(--border-subtle);position:sticky;top:0;z-index:100}.df-logo{display:flex;align-items:center;gap:.625rem;font-size:1.125rem;font-weight:600;color:var(--text-primary);letter-spacing:-.02em;text-decoration:none;transition:opacity var(--transition-fast)}.df-logo:hover{opacity:.9}.df-logo-icon{width:36px;height:36px;background:var(--gradient-primary);border-radius:10px;display:flex;align-items:center;justify-content:center;box-shadow:0 2px 12px #4f8cff4d;transition:transform var(--transition-fast),box-shadow var(--transition-normal)}.df-logo:hover .df-logo-icon{transform:scale(1.02);box-shadow:0 4px 20px #4f8cff59}.df-nav{display:flex;align-items:center;gap:2rem}.df-nav a{color:var(--text-secondary);font-size:.9375rem;font-weight:500;letter-spacing:.01em;transition:color var(--transition-fast)}.df-nav a:hover{color:var(--text-primary)}.btn-primary{background:var(--gradient-primary);color:#fff;border:none;padding:.875rem 1.75rem;border-radius:10px;font-weight:600;font-size:.9375rem;letter-spacing:.02em;cursor:pointer;display:inline-flex;align-items:center;gap:.5rem;box-shadow:0 2px 12px #4f8cff59;transition:transform var(--transition-fast),box-shadow var(--transition-normal),opacity var(--transition-fast)}.btn-primary:hover{transform:translateY(-1px);box-shadow:0 6px 24px #4f8cff66}.btn-primary:active{transform:translateY(0)}.btn-secondary{background:var(--bg-elevated);color:var(--text-primary);border:1px solid var(--border-default);padding:.875rem 1.75rem;border-radius:10px;font-weight:500;font-size:.9375rem;cursor:pointer;display:inline-flex;align-items:center;gap:.5rem;transition:background var(--transition-fast),border-color var(--transition-fast),transform var(--transition-fast)}.btn-secondary:hover{background:var(--bg-overlay);border-color:var(--border-strong);transform:translateY(-1px)}.btn-white{background:#fff;color:#0a0a0c;border:none;padding:.875rem 1.75rem;border-radius:10px;font-weight:600;font-size:.9375rem;letter-spacing:.02em;cursor:pointer;display:inline-flex;align-items:center;gap:.5rem;box-shadow:var(--shadow-md);transition:transform var(--transition-fast),box-shadow var(--transition-normal),background var(--transition-fast)}.btn-white:hover{background:#f5f5f5;transform:translateY(-1px);box-shadow:var(--shadow-lg)}.container{max-width:1200px;margin:0 auto;padding:2.5rem 2rem;flex:1}.summary-card{background:var(--bg-card);border:1px solid var(--border-subtle);border-radius:16px;padding:1.5rem;box-shadow:var(--shadow-sm);transition:border-color var(--transition-normal),box-shadow var(--transition-normal)}.summary-card:hover{border-color:var(--border-default);box-shadow:var(--shadow-md)}.card-premium{background:var(--bg-card);border:1px solid var(--border-subtle);border-radius:16px;padding:1.75rem;box-shadow:var(--shadow-sm);transition:border-color var(--transition-normal),box-shadow var(--transition-normal),transform var(--transition-normal)}.card-premium:hover{border-color:var(--border-default);box-shadow:var(--shadow-md)}.upload-area{border:2px dashed var(--border-default);border-radius:16px;padding:3.5rem 2.5rem;text-align:center;cursor:pointer;background:var(--bg-card);transition:border-color var(--transition-normal),background var(--transition-normal),box-shadow var(--transition-normal)}.upload-area:hover{border-color:var(--accent-blue);background:var(--gradient-primary-subtle);box-shadow:0 0 0 1px #4f8cff26}.upload-area.dragover{border-color:var(--accent-blue);background:var(--gradient-primary-subtle);box-shadow:0 0 0 2px var(--accent-blue-dim),var(--shadow-glow)}.pour-card{border-radius:16px;padding:1.5rem;color:#fff;border:1px solid rgba(255,255,255,.08);box-shadow:var(--shadow-sm);transition:transform var(--transition-fast),box-shadow var(--transition-normal)}.pour-card:hover{transform:translateY(-2px);box-shadow:var(--shadow-md)}.pour-card.perceivable{background:linear-gradient(145deg,#7f1d1d,#991b1b)}.pour-card.operable{background:linear-gradient(145deg,#9a3412,#c2410c)}.pour-card.understandable{background:linear-gradient(145deg,#1e3a8a,#1d4ed8)}.pour-card.robust{background:linear-gradient(145deg,#14532d,#166534)}.report-tabs{display:flex;gap:.375rem;margin-bottom:1.75rem;flex-wrap:wrap}.report-tab{display:flex;align-items:center;gap:.5rem;padding:.75rem 1.125rem;border-radius:10px;cursor:pointer;color:var(--text-muted);font-size:.875rem;font-weight:500;background:transparent;border:1px solid transparent;transition:color var(--transition-fast),background var(--transition-fast),border-color var(--transition-fast)}.report-tab:hover{color:var(--text-secondary);background:var(--bg-elevated)}.report-tab.active{background:#fff;color:#0a0a0c;border-color:transparent;box-shadow:var(--shadow-sm)}.progress-bar{width:100%;height:6px;background:var(--bg-elevated);border-radius:6px;overflow:hidden}.progress-fill{height:100%;background:var(--gradient-primary);border-radius:6px;transition:width var(--transition-slow)}.code-block{background:#0a0a0e;border:1px solid var(--border-subtle);border-radius:10px;padding:1rem 1.25rem;font-family:JetBrains Mono,Fira Code,Consolas,monospace;font-size:.8125rem;letter-spacing:.02em;overflow-x:auto}.severity-tag{display:inline-block;padding:.3125rem .625rem;border-radius:6px;font-size:.6875rem;font-weight:600;letter-spacing:.04em;text-transform:uppercase}.severity-tag.critical{background:#ef444433;color:#fca5a5}.severity-tag.high{background:#f9731633;color:#fed7aa}.severity-tag.medium{background:#eab30833;color:#fef08a}.severity-tag.low{background:#22c55e33;color:#86efac}.issue-card{border:1px solid var(--border-subtle);border-radius:16px;padding:1.5rem;margin-bottom:1rem;background:var(--bg-card);box-shadow:var(--shadow-sm);transition:border-color var(--transition-normal),box-shadow var(--transition-normal)}.issue-card:hover{border-color:var(--border-default);box-shadow:var(--shadow-md)}.issue-card.high{border-left:3px solid var(--pour-red)}.issue-card.medium{border-left:3px solid var(--pour-orange)}.issue-card.low{border-left:3px solid var(--pour-blue)}.diff-section.before{background:#0a0a0e;border:1px solid var(--border-subtle);border-radius:10px;padding:1rem 1.25rem}.diff-section.after{background:#22c55e0f;border:1px solid rgba(34,197,94,.25);border-radius:10px;padding:1rem 1.25rem}.data-table{width:100%;border-collapse:collapse;font-size:.875rem}.data-table th,.data-table td{padding:.875rem 1.25rem;text-align:left;border-bottom:1px solid var(--border-subtle)}.data-table th{color:var(--text-muted);font-weight:600;font-size:.75rem;letter-spacing:.05em;text-transform:uppercase}.data-table tbody tr{transition:background var(--transition-fast)}.data-table tbody tr:hover{background:var(--bg-elevated)}.gradient-text{background:var(--gradient-primary);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;font-weight:700}.tab-container{display:flex;gap:.5rem;margin-bottom:1.5rem;flex-wrap:wrap}.tab{padding:.75rem 1.25rem;border-radius:10px;cursor:pointer;color:var(--text-muted);background:transparent;border:1px solid transparent;font-weight:500;transition:color var(--transition-fast),background var(--transition-fast),border-color var(--transition-fast)}.tab:hover{color:var(--text-secondary);background:var(--bg-elevated)}.tab.active{background:var(--bg-elevated);color:var(--text-primary);border-color:var(--border-default)}.download-buttons{display:flex;gap:1rem;flex-wrap:wrap}button:focus-visible,a:focus-visible,.report-tab:focus-visible{outline:2px solid var(--accent-blue);outline-offset:2px}.recharts-cartesian-grid-horizontal line,.recharts-cartesian-grid-vertical line{stroke:var(--border-subtle)}.recharts-text{fill:var(--text-muted);font-size:12px}.recharts-legend-item-text{fill:var(--text-secondary)}.recharts-tooltip-wrapper{outline:none}
