:root{--bg: #0b0d10;--surface: #14171c;--surface-2: #1c2027;--surface-3: #252a33;--border: #2b313b;--text: #f2f4f7;--text-2: #a3acba;--text-3: #6b7484;--accent: #22c55e;--accent-2: #16a34a;--accent-soft: rgba(34, 197, 94, .14);--danger: #f87171;--warning: #fbbf24;--radius: 14px;--max: 1140px}@media(prefers-color-scheme:light){:root{--bg: #ffffff;--surface: #f6f7f9;--surface-2: #eef0f4;--surface-3: #e4e7ec;--border: #d9dee5;--text: #0e1116;--text-2: #4d5665;--text-3: #7b8494;--accent: #16a34a;--accent-2: #15803d;--accent-soft: rgba(22, 163, 74, .1)}}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--bg);color:var(--text);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif;font-size:16px;line-height:1.55;-webkit-font-smoothing:antialiased}h1,h2,h3{letter-spacing:-.025em;line-height:1.15;margin:0 0 .5rem}h1{font-size:clamp(2rem,5vw,3.4rem);font-weight:800}h2{font-size:clamp(1.5rem,3.2vw,2.1rem);font-weight:750}h3{font-size:1.15rem;font-weight:650}p{margin:0 0 1rem}a{color:inherit}.wrap{max-width:var(--max);margin:0 auto;padding:0 1.25rem}.muted{color:var(--text-2)}.small{font-size:.875rem}.center{text-align:center}.btn{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;font:inherit;font-weight:600;padding:.7rem 1.25rem;border-radius:10px;border:1px solid var(--border);background:var(--surface-2);color:var(--text);cursor:pointer;text-decoration:none;transition:transform .06s ease,background .15s ease,border-color .15s ease}.btn:hover{border-color:var(--accent)}.btn:active{transform:translateY(1px)}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-primary{background:var(--accent);border-color:var(--accent);color:#04220f}.btn-primary:hover{background:var(--accent-2);border-color:var(--accent-2)}.btn-lg{padding:.95rem 1.75rem;font-size:1.05rem}.btn-block{width:100%}.btn-ghost{background:transparent}label.field{display:flex;flex-direction:column;gap:.35rem;font-size:.85rem;color:var(--text-2)}input,select,textarea{font:inherit;width:100%;background:var(--bg);color:var(--text);border:1px solid var(--border);border-radius:10px;padding:.7rem .85rem}input:focus,select:focus,textarea:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}input[type=number]{-moz-appearance:textfield}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:1.25rem}.card-hover{transition:border-color .15s ease,transform .15s ease}.card-hover:hover{border-color:var(--accent);transform:translateY(-2px)}.badge{display:inline-block;padding:.2rem .6rem;border-radius:999px;font-size:.72rem;font-weight:700;letter-spacing:.02em;background:var(--surface-3);color:var(--text-2)}.badge-accent{background:var(--accent-soft);color:var(--accent)}.badge-warn{background:#fbbf2426;color:var(--warning)}.badge-danger{background:#f8717126;color:var(--danger)}.grid{display:grid;gap:1rem}.grid-2{grid-template-columns:repeat(auto-fit,minmax(280px,1fr))}.grid-3{grid-template-columns:repeat(auto-fit,minmax(240px,1fr))}.stack{display:flex;flex-direction:column;gap:1rem}.row{display:flex;align-items:center;gap:.75rem}.row-between{display:flex;align-items:center;justify-content:space-between;gap:.75rem}.wrap-row{flex-wrap:wrap}.section{padding:4.5rem 0}.section-tight{padding:2.5rem 0}.alert{padding:.85rem 1rem;border-radius:10px;border:1px solid var(--border);font-size:.9rem}.alert-error{border-color:var(--danger);color:var(--danger);background:#f8717114}.alert-warn{border-color:var(--warning);color:var(--warning);background:#fbbf2414}.spinner{width:22px;height:22px;border:2px solid var(--border);border-top-color:var(--accent);border-radius:50%;animation:spin .7s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.skeleton{background:linear-gradient(90deg,var(--surface-2) 25%,var(--surface-3) 50%,var(--surface-2) 75%);background-size:200% 100%;animation:shimmer 1.3s infinite;border-radius:8px}@keyframes shimmer{to{background-position:-200% 0}}.progress{height:8px;background:var(--surface-3);border-radius:999px;overflow:hidden}.progress>span{display:block;height:100%;background:var(--accent);border-radius:999px;transition:width .3s ease}@media(max-width:640px){.section{padding:3rem 0}}
