.app{max-width:640px;margin:0 auto;padding:2rem 1rem}.header{text-align:center;margin-bottom:2rem}.header h1{font-size:1.75rem;font-weight:700;margin:0 0 .5rem;letter-spacing:-.02em}.header p{color:var(--textMuted);font-size:.95rem;margin:0}.form{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:1.5rem;margin-bottom:2rem}.field{margin-bottom:1.25rem}.field label{display:block;font-size:.875rem;font-weight:600;margin-bottom:.4rem;color:var(--textMuted)}.field input[type=file],.field textarea{width:100%;padding:.75rem 1rem;background:var(--bg);border:1px solid var(--border);border-radius:8px;color:var(--text);font-family:var(--fontSans);font-size:.95rem}.field textarea{resize:vertical;min-height:140px}.field input:focus,.field textarea:focus{outline:none;border-color:var(--accent)}.error{color:#ef4444;font-size:.9rem;margin:0 0 1rem}.btn{width:100%;padding:.85rem 1.25rem;background:var(--accent);color:#fff;border:none;border-radius:8px;font-size:1rem;font-weight:600;cursor:pointer;font-family:var(--fontSans)}.btn:hover:not(:disabled){background:var(--accentHover)}.btn:disabled{opacity:.7;cursor:not-allowed}.result{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:1.5rem}.result h2{font-size:1.25rem;margin:0 0 1rem}.score-wrap{margin-bottom:1rem}.score{font-size:2.5rem;font-weight:700;color:var(--success);font-variant-numeric:tabular-nums}.score-label{font-size:1.25rem;color:var(--textMuted);margin-left:.25rem}.summary{color:var(--textMuted);font-size:.95rem;margin:0 0 1.25rem}.tips h3{font-size:1rem;margin:0 0 .5rem}.tips ul{margin:0;padding-left:1.25rem;color:var(--textMuted);font-size:.9rem;line-height:1.6}.tips li{margin-bottom:.35rem}:root{--bg: #0f0f12;--surface: #18181c;--border: #2a2a30;--text: #e8e8ed;--textMuted: #9898a6;--accent: #6366f1;--accentHover: #818cf8;--success: #22c55e;--warning: #eab308;--radius: 12px;--fontSans: "DM Sans", system-ui, sans-serif;--fontMono: "JetBrains Mono", monospace}*{box-sizing:border-box}body{margin:0;min-height:100vh;background:var(--bg);color:var(--text);font-family:var(--fontSans);-webkit-font-smoothing:antialiased}#root{min-height:100vh}
