:root{--bg: #f6f3ee;--card: #ffffff;--ink: #1b2236;--text: #2c3348;--muted: #6b7286;--line: #e4ded4;--accent: #f2a541;--accent-ink: #8a5208;--good: #1f8a5b;--good-bg: #e6f4ec;--bad: #c2412d;--bad-bg: #fbe9e5;--warn-bg: #fdf3e2;--focus: #3b5bdb;--radius: 16px;--font: "Plus Jakarta Sans", system-ui, -apple-system, Segoe UI, sans-serif;--mono: "JetBrains Mono", ui-monospace, monospace}*,*:before,*:after{box-sizing:border-box}html,body{margin:0}body{background:var(--bg);color:var(--text);font-family:var(--font);font-size:16px;line-height:1.5;-webkit-font-smoothing:antialiased}h1,h2,h3{color:var(--ink);line-height:1.2;margin:0}button,input,select,textarea{font:inherit;color:inherit}.card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:24px}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;border:0;border-radius:12px;padding:12px 20px;cursor:pointer;font-weight:700;background:var(--ink);color:#fff;transition:transform .1s ease,opacity .15s ease;text-decoration:none}.btn:hover:not(:disabled){transform:translateY(-1px)}.btn:disabled{opacity:.45;cursor:not-allowed}.btn-ghost{background:transparent;color:var(--ink);border:1px solid var(--line)}.btn-good{background:var(--good)}.btn-bad{background:var(--bad)}.btn-sm{padding:7px 12px;font-size:.85rem;border-radius:9px}.field{display:flex;flex-direction:column;gap:6px}.field label{font-weight:600;font-size:.9rem;color:var(--ink)}.field .hint{font-size:.8rem;color:var(--muted)}.field .err{font-size:.8rem;color:var(--bad)}.input{width:100%;padding:11px 14px;border:1px solid var(--line);border-radius:10px;background:#fff}.input:focus{outline:2px solid var(--focus);outline-offset:1px;border-color:transparent}textarea.input{resize:vertical;min-height:80px}:focus-visible{outline:2px solid var(--focus);outline-offset:2px}.alert{border-radius:12px;padding:12px 16px;font-size:.92rem}.alert-bad{background:var(--bad-bg);color:var(--bad)}.alert-warn{background:var(--warn-bg);color:var(--accent-ink)}.mono{font-family:var(--mono)}
