@charset "UTF-8";:root{--primary: #2563eb;--primary-hover: #1d4ed8;--primary-light: #eff6ff;--primary-focus: rgba(37, 99, 235, .2);--accent: #d97706;--accent-light: #fef3c7;--bg-app: #f8fafc;--card-bg: #ffffff;--text-main: #0f172a;--text-muted: #64748b;--text-sub: #475569;--border-color: #e2e8f0;--border-subtle: #f1f5f9;--border-strong: #cbd5e1;--danger: #dc2626;--danger-light: #fef2f2;--danger-border: #fecaca;--success: #059669;--success-light: #ecfdf5;--success-border: #a7f3d0;--sheet-bg: #fffef9;--active-highlight: rgba(37, 99, 235, .12);--cursor-color: #2563eb;--radius-sm: 6px;--radius-md: 8px;--radius-lg: 12px;--radius-xl: 16px;--shadow-xs: 0 1px 2px rgba(15, 23, 42, .05);--shadow-sm: 0 1px 3px rgba(15, 23, 42, .08), 0 1px 2px rgba(15, 23, 42, .04);--shadow-md: 0 4px 6px -1px rgba(15, 23, 42, .08), 0 2px 4px -2px rgba(15, 23, 42, .04);--shadow-lg: 0 10px 15px -3px rgba(15, 23, 42, .08), 0 4px 6px -4px rgba(15, 23, 42, .03);--shadow-xl: 0 20px 25px -5px rgba(15, 23, 42, .1), 0 8px 10px -6px rgba(15, 23, 42, .04)}*{box-sizing:border-box;margin:0;padding:0}body{font-family:Open Sans,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif;background-color:var(--bg-app);color:var(--text-main);line-height:1.5;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}button{font-family:inherit;cursor:pointer;border:none;background:none}a{color:inherit;text-decoration:none}input,select,textarea{font-family:inherit;color:inherit}.tabular-nums{font-variant-numeric:tabular-nums;font-feature-settings:"tnum"}.container{width:100%;max-width:1600px;margin-left:auto;margin-right:auto;padding-left:16px;padding-right:16px}@media(min-width:640px){.container{padding-left:24px;padding-right:24px}}@media(min-width:1024px){.container{padding-left:32px;padding-right:32px}}.container-wide{width:100%;max-width:1800px;margin-left:auto;margin-right:auto;padding-left:12px;padding-right:12px}@media(min-width:640px){.container-wide{padding-left:20px;padding-right:20px}}@media(min-width:1024px){.container-wide{padding-left:28px;padding-right:28px}}.container-fluid{width:100%;padding-left:12px;padding-right:12px}@media(min-width:640px){.container-fluid{padding-left:20px;padding-right:20px}}.card{background:var(--card-bg);border:1px solid var(--border-color);border-radius:var(--radius-xl);box-shadow:var(--shadow-sm);padding:20px;transition:box-shadow .2s ease,border-color .2s ease}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:42px;padding:8px 18px;border-radius:var(--radius-md);font-weight:600;font-size:.95rem;line-height:1.25;white-space:nowrap;-webkit-user-select:none;user-select:none;border:1px solid transparent;transition:all .15s ease-in-out;touch-action:manipulation}.btn:active{transform:scale(.98)}.btn:focus-visible{outline:none;box-shadow:0 0 0 3px var(--primary-focus)}.btn.btn-primary{background:var(--primary);color:#fff;border-color:transparent;box-shadow:0 1px 2px #2563eb33}.btn.btn-primary:hover{background:var(--primary-hover);box-shadow:0 3px 6px #2563eb4d}.btn.btn-outline{background:#fff;color:var(--text-main);border-color:var(--border-strong);box-shadow:var(--shadow-xs)}.btn.btn-outline:hover{background:#f8fafc;border-color:#94a3b8;color:#0f172a}.btn.btn-ghost{background:transparent;color:var(--text-sub);border-color:transparent}.btn.btn-ghost:hover{background:#f1f5f9;color:var(--text-main)}.btn.btn-danger{background:var(--danger-light);color:var(--danger);border-color:var(--danger-border)}.btn.btn-danger:hover{background:#fee2e2;color:#991b1b;border-color:#fca5a5}.btn.btn-sm{min-height:34px;padding:6px 12px;font-size:.85rem;gap:6px;border-radius:var(--radius-sm)}.btn.btn-lg{min-height:48px;padding:12px 24px;font-size:1.05rem;border-radius:var(--radius-lg)}.btn:disabled{opacity:.55;cursor:not-allowed;transform:none!important}.badge{display:inline-flex;align-items:center;gap:4px;padding:4px 10px;border-radius:9999px;font-size:.75rem;font-weight:700;letter-spacing:.03em;white-space:nowrap;flex-shrink:0;line-height:1.2}.badge.badge-primary{background:#dbeafe;color:#1d4ed8}.badge.badge-success{background:#d1fae5;color:#047857}.badge.badge-warning{background:#fef3c7;color:#b45309}.badge.badge-accent{background:#ede9fe;color:#6d28d9}.badge.badge-neutral{background:#f1f5f9;color:#475569}.input-ctrl{width:100%;padding:9px 14px;border:1px solid var(--border-strong);border-radius:var(--radius-md);font-size:.95rem;background:#fff;color:var(--text-main);transition:border-color .15s ease,box-shadow .15s ease}.input-ctrl:focus{border-color:var(--primary);outline:none;box-shadow:0 0 0 3px var(--primary-focus)}.input-ctrl::placeholder{color:#94a3b8}svg.lucide,svg[class*=lucide]{display:inline-block;vertical-align:middle;flex-shrink:0}svg.lucide.icon-xs,svg[class*=lucide].icon-xs{width:14px;height:14px}svg.lucide.icon-sm,svg[class*=lucide].icon-sm{width:16px;height:16px}svg.lucide.icon-md,svg[class*=lucide].icon-md{width:18px;height:18px}svg.lucide.icon-lg,svg[class*=lucide].icon-lg{width:22px;height:22px}svg.lucide.icon-xl,svg[class*=lucide].icon-xl{width:28px;height:28px}.spinner,.spinner-sm{border-radius:50%;border-style:solid;border-color:#cbd5e1;border-top-color:var(--primary);animation:spin .8s linear infinite}.spinner{width:28px;height:28px;border-width:3px}.spinner-sm{width:18px;height:18px;border-width:2px}@keyframes spin{to{transform:rotate(360deg)}}kbd{display:inline-block;padding:2px 6px;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,monospace;font-size:.76rem;font-weight:600;color:#1e293b;background-color:#f8fafc;border:1px solid #cbd5e1;border-bottom-width:2px;border-radius:4px;box-shadow:0 1px 1px #0f172a0f;line-height:1.25}.hud-toast{position:fixed;bottom:88px;left:50%;transform:translate(-50%);background:#0f172aeb;color:#fff;padding:8px 18px;border-radius:9999px;font-size:.86rem;font-weight:600;display:flex;align-items:center;gap:8px;z-index:1500;pointer-events:none;box-shadow:var(--shadow-lg);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);animation:hudFadeIn .18s ease-out}.hud-toast .hud-text{letter-spacing:.01em}@keyframes hudFadeIn{0%{opacity:0;transform:translate(-50%,8px)}to{opacity:1;transform:translate(-50%)}}
