@import"https://fonts.googleapis.com/css2?family=Bricolage+Grotesque:opsz,wght@12..96,300;12..96,400;12..96,500;12..96,600;12..96,700;12..96,800&family=Geist+Mono:wght@300;400;500&display=swap";*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}:root{--bg: #fafaf8;--surface: #ffffff;--surface2: #f5f5f2;--surface3: #eeede9;--border: #e8e7e3;--border2: #d4d3ce;--text: #18181b;--text2: #52525b;--text3: #a1a1aa;--green: #15803d;--green-light: #22c55e;--green-bg: #f0fdf4;--green-border:#bbf7d0;--green-dim: #166534;--red: #dc2626;--red-bg: #fff1f2;--red-border: #fecdd3;--amber: #b45309;--amber-bg: #fffbeb;--amber-border:#fde68a;--accent: #2563eb;--accent-bg: #eff6ff;--accent-border:#bfdbfe;--sans: "Bricolage Grotesque", sans-serif;--mono: "Geist Mono", monospace;--r: 12px;--r-lg: 20px;--r-xl: 28px;--shadow-xs: 0 1px 2px rgba(0,0,0,.04);--shadow-sm: 0 1px 4px rgba(0,0,0,.05), 0 1px 2px rgba(0,0,0,.04);--shadow: 0 4px 16px rgba(0,0,0,.07), 0 1px 4px rgba(0,0,0,.04);--shadow-lg: 0 12px 40px rgba(0,0,0,.09), 0 2px 8px rgba(0,0,0,.04);--shadow-green: 0 4px 20px rgba(21,128,61,.2)}html{scroll-behavior:smooth}body{font-family:var(--sans);background:var(--bg);color:var(--text);min-height:100vh;-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}button{font-family:var(--sans);cursor:pointer;border:none;outline:none}input,select,textarea{font-family:var(--mono);background:var(--surface);border:1.5px solid var(--border);border-radius:10px;padding:10px 14px;color:var(--text);font-size:14px;outline:none;width:100%;transition:border-color .15s,box-shadow .15s}input:focus,select:focus,textarea:focus{border-color:var(--green-light);box-shadow:0 0 0 3px #22c55e1f}input::placeholder{color:var(--text3)}::-webkit-scrollbar{width:5px;height:5px}::-webkit-scrollbar-track{background:var(--surface2)}::-webkit-scrollbar-thumb{background:var(--border2);border-radius:10px}@keyframes spin{to{transform:rotate(360deg)}}.spinner{width:20px;height:20px;border:2px solid var(--border);border-top-color:var(--green);border-radius:50%;animation:spin .7s linear infinite}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}.pulse{animation:pulse 2s infinite}@keyframes fadeIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.fade-in{animation:fadeIn .3s ease forwards}.card-hover{transition:transform .2s ease,box-shadow .2s ease}.card-hover:hover{transform:translateY(-3px);box-shadow:var(--shadow)}
