@import "https://fonts.googleapis.com/css2?family=Plus+Jakarta+Sans:wght@400;500;600;700&family=Instrument+Serif:ital@0;1&family=Geist+Mono:wght@400;500&display=swap";
:root{--font-sans:"Plus Jakarta Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-serif:"Instrument Serif", "Iowan Old Style", "Times New Roman", serif;--font-mono:"Geist Mono", ui-monospace, "SF Mono", Menlo, monospace;--bg:#f8f5ef;--bg-2:#f2eee5;--surface:#fff;--ink:#1a1814;--ink-2:#3a362f;--muted:#6b665c;--muted-2:#918b7e;--border:#e7e4df;--border-strong:#d5d0c8;--primary:#225a39;--primary-hover:#0e492a;--primary-soft:#e2f4e7;--primary-ink:#09311b;--accent:#edb793;--accent-soft:#ffe5d4;--success:#298646;--warning:#d49838;--danger:#c53637;--danger-soft:#ffe8e6;--info:#3179a6;--info-soft:#e0f1fe;--shadow-xs:0 1px 2px #1a18140a;--shadow-sm:0 1px 3px #1a18140f, 0 1px 2px #1a18140a;--shadow-md:0 4px 12px #1a18140f, 0 2px 4px #1a18140a;--shadow-lg:0 12px 32px #1a18141a, 0 4px 12px #1a18140f;--r-xs:6px;--r-sm:8px;--r-md:12px;--r-lg:16px;--r-xl:22px}@supports (color:lab(0% 0 0)){:root{--border:lab(90.7431% .460297 3.0157);--border-strong:lab(83.7937% .708967 4.53572);--primary:lab(33.7628% -25.4361 13.1055);--primary-hover:lab(26.7955% -25.5998 13.2126);--primary-soft:lab(94.5384% -7.73704 3.96317);--primary-ink:lab(17.258% -19.1683 9.88864);--accent:lab(78.8055% 16.9092 26.522);--accent-soft:lab(92.9064% 8.012 12.8066);--success:lab(49.4309% -39.316 25.9959);--warning:lab(67.4206% 16.9757 56.8987);--danger:lab(45.9853% 56.8958 34.8481);--danger-soft:lab(93.9229% 9.19664 4.96061);--info:lab(47.7213% -11.3987 -31.372);--info-soft:lab(94.2339% -3.97965 -8.18862)}}*{box-sizing:border-box}html,body{margin:0;padding:0}body{font-family:var(--font-sans);background:var(--bg);color:var(--ink);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;font-size:15px;line-height:1.5}button,input,textarea,select{font:inherit;color:inherit}button{cursor:pointer;background:0 0;border:none;padding:0}a{color:inherit;text-decoration:none}.serif{font-family:var(--font-serif);letter-spacing:-.01em;font-style:italic;font-weight:400}.mono{font-family:var(--font-mono)}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{border:2px solid var(--bg);background:#d1cdc7;background:lab(82.6284% .584424 3.7755);border-radius:999px}::-webkit-scrollbar-thumb:hover{background:#b1ada7;background:lab(71.0282% .589013 3.77857)}#root{min-height:100vh}.btn{border-radius:var(--r-sm);letter-spacing:-.005em;white-space:nowrap;border:1px solid #0000;justify-content:center;align-items:center;gap:8px;height:42px;padding:0 18px;font-size:14.5px;font-weight:500;transition:all .15s;display:inline-flex}.btn:disabled{opacity:.45;cursor:not-allowed}.btn-primary{background:var(--primary);color:#fff}.btn-primary:hover:not(:disabled){background:var(--primary-hover)}.btn-secondary{background:var(--surface);color:var(--ink);border-color:var(--border-strong)}.btn-secondary:hover:not(:disabled){background:var(--bg-2)}.btn-ghost{color:var(--ink-2);background:0 0}.btn-ghost:hover:not(:disabled){background:var(--bg-2)}.btn-link{color:var(--primary);background:0 0;height:auto;padding:0}.btn-link:hover{text-decoration:underline}.btn-sm{border-radius:var(--r-xs);height:34px;padding:0 12px;font-size:13.5px}.btn-lg{border-radius:var(--r-md);height:50px;padding:0 24px;font-size:16px}.btn-block{width:100%}.field-label{color:var(--ink-2);letter-spacing:-.005em;margin-bottom:6px;font-size:13.5px;font-weight:500;display:block}.field-hint{color:var(--muted);margin-top:5px;font-size:12.5px}.field-error{color:var(--danger);align-items:center;gap:4px;margin-top:5px;font-size:12.5px;display:flex}.input,.select,.textarea{background:var(--surface);border:1px solid var(--border-strong);border-radius:var(--r-sm);width:100%;height:42px;color:var(--ink);outline:none;padding:0 12px;font-size:14.5px;transition:border-color .15s,box-shadow .15s}.input:hover,.select:hover{border-color:#bcb7ad;border-color:lab(74.5208% .909269 5.68553)}.input:focus,.select:focus,.textarea:focus{border-color:var(--primary);box-shadow:0 0 0 3px #225a391f;box-shadow:0 0 0 3px lab(33.7628% -25.4361 13.1055/.12)}.input.has-error{border-color:var(--danger)}.input.has-error:focus{box-shadow:0 0 0 3px #c5363726;box-shadow:0 0 0 3px lab(45.9853% 56.8958 34.8481/.15)}.textarea{resize:vertical;height:auto;min-height:96px;padding:10px 12px;line-height:1.5}.select{appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath fill='none' stroke='%236B665C' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round' d='M3 4.5L6 7.5L9 4.5'/%3E%3C/svg%3E");background-position:right 12px center;background-repeat:no-repeat;padding-right:32px}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);box-shadow:var(--shadow-xs)}.badge{letter-spacing:-.005em;border-radius:999px;align-items:center;gap:4px;height:22px;padding:0 8px;font-size:12px;font-weight:500;display:inline-flex}.badge-primary{background:var(--primary-soft);color:var(--primary-ink)}.badge-neutral{background:var(--bg-2);color:var(--ink-2)}.badge-success{color:#00481d;color:lab(25.8361% -30.4723 20.4276);background:#e1f5e4;background:lab(94.6016% -8.87287 5.65853)}.badge-warning{color:#6c3800;color:lab(29.9436% 21.6792 44.2389);background:#ffefd8;background:lab(95.4087% 3.83016 15.0742)}.badge-info{background:var(--info-soft);color:#00476c;color:lab(27.878% -8.68377 -30.9822)}.hr{background:var(--border);border:0;height:1px;margin:0}@keyframes spin{to{transform:rotate(360deg)}}.spinner{border:2px solid;border-right-color:#0000;border-radius:999px;width:14px;height:14px;animation:.7s linear infinite spin;display:inline-block}:focus-visible{outline:2px solid var(--primary);outline-offset:2px}button:focus-visible,.btn:focus-visible{outline-offset:3px}.row{display:flex}.col{flex-direction:column;display:flex}.gap-2{gap:8px}.gap-3{gap:12px}.gap-4{gap:16px}.gap-6{gap:24px}.muted{color:var(--muted)}@keyframes fadeUp{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}.fade-up{animation:.35s both fadeUp}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.fade-in{animation:.25s both fadeIn}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}.toast{background:var(--ink);color:#fff;border-radius:var(--r-md);box-shadow:var(--shadow-lg);z-index:1000;padding:10px 16px;font-size:13.5px;animation:.25s both fadeUp;position:fixed;bottom:24px;left:50%;transform:translate(-50%)}
