:root{--ink: #131722;--ink-soft: #3d4354;--muted: #7a8194;--paper: #f7f7fb;--card: #ffffff;--line: #e4e6ee;--brand: #4f46e5;--brand-strong: #3f38c9;--brand-soft: #eef0ff;--accent: #0ea5a4;--accent-soft: #e6f7f7;--ok: #16a34a;--ok-soft: #e9f9ef;--warn: #d97706;--warn-soft: #fdf3e3;--err: #dc2626;--err-soft: #fdeaea;--font-body: "Nunito", sans-serif;--font-display: "Lora", serif;--font-ui: "DM Sans", sans-serif;--radius-sm: 8px;--radius: 12px;--radius-lg: 18px;--shadow-sm: 0 1px 3px rgba(19, 23, 34, .08);--shadow: 0 4px 16px rgba(19, 23, 34, .1);--shadow-lg: 0 12px 40px rgba(19, 23, 34, .16);--sp-1: 4px;--sp-2: 8px;--sp-3: 12px;--sp-4: 16px;--sp-5: 24px;--sp-6: 32px;--sp-7: 48px}.btn{display:inline-flex;align-items:center;gap:var(--sp-2);padding:10px 18px;border:none;border-radius:var(--radius-sm);font-family:var(--font-ui);font-size:.95rem;font-weight:600;cursor:pointer;transition:background .15s ease,transform .1s ease,box-shadow .15s ease}.btn:disabled{opacity:.55;cursor:not-allowed}.btn-primary{background:var(--brand);color:#fff}.btn-primary:hover:not(:disabled){background:var(--brand-strong)}.btn-secondary{background:var(--brand-soft);color:var(--brand)}.btn-secondary:hover:not(:disabled){background:#e0e3ff}.btn-ghost{background:transparent;color:var(--ink-soft);border:1px solid var(--line)}.btn-ghost:hover:not(:disabled){border-color:var(--muted)}.btn-danger{background:var(--err-soft);color:var(--err)}.btn-danger:hover:not(:disabled){background:#fbd5d5}.card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow-sm)}.badge{display:inline-flex;align-items:center;gap:4px;padding:3px 10px;border-radius:999px;font-family:var(--font-ui);font-size:.75rem;font-weight:600}.badge-ok{background:var(--ok-soft);color:var(--ok)}.badge-warn{background:var(--warn-soft);color:var(--warn)}.badge-err{background:var(--err-soft);color:var(--err)}.badge-muted{background:var(--paper);color:var(--muted)}.badge-brand{background:var(--brand-soft);color:var(--brand)}.field label{display:block;margin-bottom:6px;font-family:var(--font-ui);font-size:.85rem;font-weight:600;color:var(--ink-soft)}.field input[type=text],.field input[type=email],.field input[type=password],.field input[type=number],.field input[type=url],.field textarea,.field select{width:100%;padding:10px 12px;border:1px solid var(--line);border-radius:var(--radius-sm);font-family:var(--font-body);font-size:.95rem;color:var(--ink);background:var(--card);outline:none;transition:border-color .15s ease,box-shadow .15s ease}.field input:focus,.field textarea:focus,.field select:focus{border-color:var(--brand);box-shadow:0 0 0 3px var(--brand-soft)}.field .hint{margin-top:4px;font-size:.8rem;color:var(--muted)}.field .error{margin-top:4px;font-size:.8rem;color:var(--err)}*{margin:0;padding:0;box-sizing:border-box}html,body{height:100%;font-family:var(--font-body);background-color:var(--paper);color:var(--ink)}::-webkit-scrollbar{width:8px}::-webkit-scrollbar-track{background:var(--paper)}::-webkit-scrollbar-thumb{background:var(--muted);border-radius:4px}::-webkit-scrollbar-thumb:hover{background:var(--ink-soft)}h1,h2,h3,h4,h5,h6{font-family:var(--font-display);font-weight:700;line-height:1.2}a{color:var(--brand);text-decoration:none}a:hover{text-decoration:underline}
