:root{--primary: #2D4FE0;--primary-hover: #2440B8;--primary-soft: #EEF1FE;--primary-ring: rgba(45, 79, 224, .18);--ink: #171A26;--ink-2: #3A3F51;--muted: #6B7280;--muted-2: #9AA0B0;--bg: #F5F6F8;--surface: #FFFFFF;--surface-2: #FAFBFC;--border: #E6E8EE;--border-2: #EFF1F5;--teal: #0E9384;--teal-soft: #E6F4F1;--amber: #D97706;--amber-soft: #FEF3E2;--red: #DC2626;--red-soft: #FEECEC;--radius: 10px;--radius-sm: 6px;--shadow: 0 1px 3px rgba(23, 26, 38, .06), 0 1px 2px rgba(23, 26, 38, .04);--shadow-lg: 0 10px 30px rgba(23, 26, 38, .1);--font-display: "Sora", "Noto Sans SC", sans-serif;--font-body: "Noto Sans SC", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-mono: "JetBrains Mono", "Consolas", monospace}*{margin:0;padding:0;box-sizing:border-box}html,body,#app{height:100%}body{font-family:var(--font-body);background:var(--bg);color:var(--ink);line-height:1.6;font-size:14px}a{color:var(--primary);text-decoration:none}button{font-family:inherit;cursor:pointer}input,select,textarea{font-family:inherit;font-size:14px}.mono{font-family:var(--font-mono)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:8px 16px;border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--surface);color:var(--ink-2);font-size:14px;font-weight:500;transition:all .15s}.btn:hover{border-color:var(--primary);color:var(--primary)}.btn-primary{background:var(--primary);border-color:var(--primary);color:#fff}.btn-primary:hover{background:var(--primary-hover);color:#fff}.btn:disabled{opacity:.5;cursor:not-allowed}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow)}.card-pad{padding:20px}.input{width:100%;padding:9px 12px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface);color:var(--ink);outline:none;transition:border .15s}.input:focus{border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-ring)}.badge{display:inline-flex;align-items:center;gap:4px;padding:2px 8px;border-radius:20px;font-size:12px;font-weight:500}.badge-teal{background:var(--teal-soft);color:var(--teal)}.badge-gray{background:var(--border-2);color:var(--muted)}.badge-amber{background:var(--amber-soft);color:var(--amber)}.badge-red{background:var(--red-soft);color:var(--red)}
