.b2f-btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);border:none;border-radius:var(--radius-pill);font-weight:600;font-family:var(--font-body);transition:background-color .15s ease,transform .05s ease,opacity .15s ease;white-space:nowrap}.b2f-btn:active{transform:scale(.98)}.b2f-btn--primary:disabled,.b2f-btn--secondary:disabled{background:var(--color-disabled-fill);color:var(--color-disabled-ink);opacity:1;cursor:not-allowed}.b2f-btn--outline:disabled,.b2f-btn--ghost:disabled,.b2f-btn--danger:disabled{opacity:.5;cursor:not-allowed}.b2f-btn--md{padding:10px 20px;font-size:var(--text-sm);min-height:var(--tap-min)}.b2f-btn--lg{padding:14px 24px;font-size:var(--text-base);min-height:52px}.b2f-btn--full{width:100%}.b2f-btn--primary{background:var(--color-primary);color:#fff}.b2f-btn--primary:not(:disabled):hover{background:var(--color-primary-hover)}.b2f-btn--secondary{background:var(--color-green-700);color:#fff}.b2f-btn--secondary:not(:disabled):hover{background:var(--color-green-900)}.b2f-btn--outline{background:transparent;color:var(--color-primary);border:1.5px solid var(--color-primary)}.b2f-btn--outline:not(:disabled):hover{background:var(--color-teal-100)}.b2f-btn--ghost{background:transparent;color:var(--color-ink-secondary)}.b2f-btn--ghost:not(:disabled):hover{background:var(--color-bg-alt)}.b2f-btn--danger{background:var(--color-red-600);color:#fff}.b2f-btn__spinner{width:16px;height:16px;border-radius:50%;border:2px solid rgba(255,255,255,.4);border-top-color:#fff;animation:b2f-spin .7s linear infinite}:root{--color-teal-900: #003438;--color-teal-700: #006970;--color-teal-500: #3aa4ad;--color-teal-300: #8fd0d6;--color-teal-100: #e2f3f4;--color-green-900: #1a3028;--color-green-700: #2a4a3a;--color-green-500: #2b7a42;--color-green-400: #48bb61;--color-green-100: #e4f4e8;--color-amber-700: #8a6d2f;--color-amber-100: #fff8e8;--color-red-600: #a6453a;--color-red-300: #e07070;--color-red-100: #fbeceb;--color-disabled-fill: #c2c7a5;--color-disabled-ink: #6b6f52;--color-ink: #131917;--color-ink-secondary: #525f59;--color-ink-muted: #96a09e;--color-border: #cbcbc4;--color-bg: #fafaf2;--color-bg-alt: #f4f6f4;--color-surface: #ffffff;--color-primary: var(--color-teal-500);--color-primary-hover: var(--color-teal-700);--color-success: var(--color-green-400);--color-warning: var(--color-amber-700);--color-danger: var(--color-red-600);--font-body: "Noto Sans", "Noto Sans Devanagari", system-ui, sans-serif;--font-display: "Noto Sans Display", "Noto Sans", system-ui, sans-serif;--font-label: "Inter", system-ui, sans-serif;--text-xs: 12px;--text-sm: 14px;--text-base: 16px;--text-lg: 18px;--text-xl: 22px;--text-2xl: 28px;--radius-sm: 8px;--radius-md: 12px;--radius-lg: 20px;--radius-pill: 999px;--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-5: 24px;--space-6: 32px;--space-8: 48px;--tap-min: 44px;--shadow-card: 0 1px 3px rgba(19, 25, 23, .08), 0 1px 2px rgba(19, 25, 23, .06);--shadow-elevated: 0 4px 16px rgba(19, 25, 23, .12)}:root[data-theme=dark]{--color-bg: #0f1513;--color-bg-alt: #151d1a;--color-surface: #1a2420;--color-ink: #f4f6f4;--color-ink-secondary: #b8c2bd;--color-ink-muted: #7c8884;--color-border: #2b3733}@media (prefers-color-scheme: dark){:root:not([data-theme=light]){--color-bg: #0f1513;--color-bg-alt: #151d1a;--color-surface: #1a2420;--color-ink: #f4f6f4;--color-ink-secondary: #b8c2bd;--color-ink-muted: #7c8884;--color-border: #2b3733}}*{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;font-family:var(--font-body);font-size:var(--text-base);color:var(--color-ink);background:var(--color-bg);-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent}h1,h2,h3{font-family:var(--font-display);margin:0}button,input,select,textarea{font-family:inherit;font-size:inherit}button{cursor:pointer}a{color:inherit}button,[role=button],input[type=checkbox],input[type=radio]{min-height:var(--tap-min)}::selection{background:var(--color-teal-300)}:root[data-contrast=high]{--color-bg: #ffffff;--color-surface: #ffffff;--color-ink: #000000;--color-ink-secondary: #1a1a1a;--color-border: #000000;--color-primary: #00646b}.b2f-spin-icon{animation:b2f-spin .9s linear infinite}@keyframes b2f-spin{to{transform:rotate(360deg)}}.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
