@import url("https://fonts.googleapis.com/css2?family=Inter:ital,opsz,wght@0,14..32,400..600;1,14..32,400&family=Literata:ital,opsz,wght@0,7..72,400..600;1,7..72,400&family=JetBrains+Mono:wght@400;500&display=swap");:root{--primary:#2D4A3E;--primary-light:#3D6454;--primary-dark:#1E3329;--accent:#B8956A;--accent-light:#D4B68E;--accent-dark:#96784F;--bg:#F5F3EF;--surface:#FFFFFF;--surface-2:#FBFAF8;--surface-sunk:#F2F0EB;--text:#1A1A1A;--text-2:#6B6B6B;--text-3:#9A9A9A;--border:#E5E2DD;--border-strong:#D8D4CD;--success:#437A22;--success-bg:#F1F6EC;--warning:#964219;--warning-bg:#FBF1EA;--error:#A12C7B;--error-bg:#FBEFF6;--info:#006494;--info-bg:#EAF3F7;--ai:#8B87A8;--r-sm:4px;--r-md:6px;--r-lg:8px;--r-xl:12px;--r-2xl:16px;--r-full:9999px;--sh-sm:0 1px 2px rgba(0,0,0,.04);--sh-md:0 2px 8px rgba(0,0,0,.06);--sh-lg:0 4px 16px rgba(0,0,0,.08);--sh-xl:0 8px 32px rgba(0,0,0,.10);--sh-ring:0 0 0 3px rgba(45,74,62,.12);--font-ui:"Inter",system-ui,-apple-system,sans-serif;--font-doc:"Literata",Georgia,serif;--font-mono:"JetBrains Mono",Consolas,monospace;--ease:cubic-bezier(0.25,0.1,0.25,1.0);--ease-exit:cubic-bezier(0.25,0.1,0.0,1.0);--dur:200ms}*{box-sizing:border-box}body,html{margin:0;padding:0}body{font-family:var(--font-ui);color:var(--text);background:var(--bg);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;font-feature-settings:"cv11","ss01"}button{font-family:inherit}a{color:inherit}::selection{background:rgba(184,149,106,.22)}.flo-focusable:focus-visible,a:focus-visible,button:focus-visible,input:focus-visible{outline:none;box-shadow:var(--sh-ring);border-color:var(--primary)!important}.flo-btn{--pad-y:10px;--pad-x:18px;display:inline-flex;align-items:center;justify-content:center;gap:8px;font-family:var(--font-ui);font-size:14px;font-weight:500;line-height:1;padding:var(--pad-y) var(--pad-x);border-radius:var(--r-md);border:1px solid transparent;cursor:pointer;white-space:nowrap;transition:background var(--dur) var(--ease),border-color var(--dur) var(--ease),color var(--dur) var(--ease),box-shadow var(--dur) var(--ease),opacity var(--dur) var(--ease),transform var(--dur) var(--ease)}.flo-btn:active{transform:translateY(.5px)}.flo-btn[disabled]{opacity:.55;cursor:not-allowed}.flo-btn--primary{background:var(--primary);color:#fff}.flo-btn--primary:hover:not([disabled]){background:var(--primary-light)}.flo-btn--secondary{background:var(--surface);color:var(--text);border-color:var(--border-strong)}.flo-btn--secondary:hover:not([disabled]){background:var(--surface-2);border-color:var(--text-3)}.flo-btn--ghost{background:transparent;color:var(--text-2)}.flo-btn--ghost:hover:not([disabled]){background:var(--surface-sunk);color:var(--text)}.flo-btn--danger{background:var(--surface);color:var(--error);border-color:var(--border-strong)}.flo-btn--danger:hover:not([disabled]){background:var(--error-bg);border-color:var(--error)}.flo-btn--lg{--pad-y:13px;--pad-x:22px;font-size:15px}.flo-btn--sm{--pad-y:7px;--pad-x:12px;font-size:13px}.flo-btn--block{width:100%}.flo-link{background:none;border:none;padding:0;cursor:pointer;color:var(--primary);font-size:13px;font-weight:500;font-family:var(--font-ui);text-decoration:none;transition:color var(--dur) var(--ease)}.flo-link:hover{color:var(--primary-light);text-decoration:underline;text-underline-offset:2px}.flo-link--muted{color:var(--text-2);font-weight:400}.flo-link--muted:hover{color:var(--text)}.flo-field{display:flex;flex-direction:column;gap:6px}.flo-label{font-size:13px;font-weight:500;color:var(--text-2)}.flo-input{width:100%;padding:11px 13px;font-size:14px;font-family:var(--font-ui);color:var(--text);background:var(--surface);border:1px solid var(--border-strong);border-radius:var(--r-sm);outline:none;transition:border-color var(--dur) var(--ease),box-shadow var(--dur) var(--ease)}.flo-input::placeholder{color:var(--text-3)}.flo-input:focus{border-color:var(--primary);box-shadow:var(--sh-ring)}.flo-input--error{border-color:var(--error)}.flo-input--error:focus{box-shadow:0 0 0 3px rgba(161,44,123,.12)}.flo-input-wrap{position:relative;display:flex;align-items:center}.flo-input-wrap .flo-input{padding-right:42px}.flo-input-affix{position:absolute;right:10px;display:inline-flex;color:var(--text-3)}.flo-hint{font-size:12px;color:var(--text-3)}.flo-err{font-size:12px;color:var(--error);display:flex;align-items:center;gap:5px}.flo-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-xl);box-shadow:var(--sh-md)}.flo-hr{height:1px;background:var(--border);border:none;margin:0}.flo-badge{display:inline-flex;align-items:center;gap:5px;padding:3px 9px;font-size:11px;font-weight:600;line-height:1.4;letter-spacing:.02em;border-radius:var(--r-full);white-space:nowrap}.flo-badge--neutral{background:var(--surface-sunk);color:var(--text-2);border:1px solid var(--border)}.flo-badge--primary{background:rgba(45,74,62,.08);color:var(--primary)}.flo-badge--accent{background:rgba(184,149,106,.16);color:var(--accent-dark)}.flo-badge--success{background:var(--success-bg);color:var(--success)}.flo-badge--warning{background:var(--warning-bg);color:var(--warning)}.flo-badge--info{background:var(--info-bg);color:var(--info)}.flo-badge--solid{background:var(--primary);color:#fff}.flo-banner{display:flex;gap:10px;align-items:flex-start;padding:11px 13px;border-radius:var(--r-md);font-size:13px;line-height:1.45;border:1px solid transparent}.flo-banner svg{flex:none;margin-top:1px}.flo-banner--success{background:var(--success-bg);border-color:#CBE3BC;color:#2C5417}.flo-banner--error{background:var(--error-bg);border-color:#EBC3DC;color:#7E2160}.flo-banner--warning{background:var(--warning-bg);border-color:#EAD0BF;color:#743315}.flo-banner--info{background:var(--info-bg);border-color:#C3DCE7;color:#084E70}.flo-switch{position:relative;width:38px;height:22px;flex:none;border-radius:var(--r-full);background:var(--border-strong);border:none;cursor:pointer;padding:0;transition:background var(--dur) var(--ease)}.flo-switch:after{content:"";position:absolute;top:2px;left:2px;width:18px;height:18px;border-radius:var(--r-full);background:#fff;box-shadow:var(--sh-sm);transition:transform var(--dur) var(--ease)}.flo-switch[aria-checked=true]{background:var(--primary)}.flo-switch[aria-checked=true]:after{transform:translateX(16px)}.flo-switch[disabled]{opacity:.5;cursor:not-allowed}.flo-check{width:18px;height:18px;flex:none;border-radius:var(--r-sm);border:1.5px solid var(--border-strong);background:var(--surface);display:inline-flex;align-items:center;justify-content:center;cursor:pointer;transition:all var(--dur) var(--ease);color:#fff}.flo-check[aria-checked=true]{background:var(--primary);border-color:var(--primary)}.flo-radio{width:20px;height:20px;flex:none;border-radius:var(--r-full);border:1.5px solid var(--border-strong);background:var(--surface);display:inline-flex;align-items:center;justify-content:center;transition:all var(--dur) var(--ease)}.flo-radio[aria-checked=true]{border-color:var(--primary);border-width:6px}.flo-avatar{display:inline-flex;align-items:center;justify-content:center;border-radius:var(--r-full);background:var(--primary);color:#fff;font-weight:600;flex:none;overflow:hidden;letter-spacing:.01em}.flo-seg{display:inline-flex;background:var(--surface-sunk);border:1px solid var(--border);border-radius:var(--r-md);padding:3px;gap:2px}.flo-seg button{border:none;background:transparent;cursor:pointer;font-family:var(--font-ui);font-size:12.5px;font-weight:500;color:var(--text-2);padding:5px 11px;border-radius:4px;transition:all var(--dur) var(--ease);white-space:nowrap}.flo-seg button[aria-selected=true]{background:var(--surface);color:var(--text);box-shadow:var(--sh-sm)}.flo-scroll::-webkit-scrollbar{width:10px;height:10px}.flo-scroll::-webkit-scrollbar-thumb{background:var(--border-strong);border-radius:9999px;border:3px solid var(--surface)}.flo-scroll::-webkit-scrollbar-track{background:transparent}.flo-auth-page{min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:48px 24px;background:var(--bg);background-image:radial-gradient(circle at 50% 0,rgba(255,255,255,.6),transparent 60%)}@keyframes flo-rise{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}@keyframes flo-fade{0%{opacity:0}to{opacity:1}}@keyframes flo-spin{to{transform:rotate(1turn)}}@keyframes flo-pulse{0%,to{opacity:1}50%{opacity:.4}}.flo-rise{animation:flo-rise .32s var(--ease) both}.flo-fade{animation:flo-fade .24s var(--ease) both}.flo-spin{animation:flo-spin .8s linear infinite}@media (prefers-reduced-motion:reduce){*,:after,:before{animation-duration:.001ms!important;transition-duration:.001ms!important}}.flo-mono{font-family:var(--font-mono)}.flo-doc{font-family:var(--font-doc)}