:root { color-scheme: light; --app-height: 100dvh; --app-top: 0px; }
html, body { margin: 0; width: 100%; height: 100%; overflow: hidden; background: #EAF4FC; overscroll-behavior: none; -webkit-text-size-adjust: 100%; }
body { position: fixed; inset: 0; }
#root { position: absolute; top: var(--app-top); width: 100%; height: var(--app-height) !important; min-height: 0 !important; }
/* RN Web portals live outside #root, so sheets follow the same visible viewport. */
div[aria-modal="true"] { top: var(--app-top) !important; height: var(--app-height) !important; bottom: auto !important; }
input, textarea { font-size: 16px; caret-color: #33688E; }
input:focus-visible, textarea:focus-visible, [role="button"]:focus-visible, [role="tab"]:focus-visible { outline: 2px solid #33688E; outline-offset: 3px; }
::selection { background: #D2E7F7; color: #293E4F; }
* { scrollbar-width: thin; scrollbar-color: #D2E7F7 transparent; }
a { text-underline-offset: 3px; }
[data-testid="web-safe-area"] { padding-top: env(safe-area-inset-top); padding-bottom: env(safe-area-inset-bottom); padding-left: env(safe-area-inset-left); padding-right: env(safe-area-inset-right); }
html[data-keyboard="open"] [data-testid="bottom-navigation"] { display: none !important; }
html[data-keyboard="open"] [data-testid="web-safe-area"] { padding-bottom: 0; }
@media (prefers-reduced-motion: reduce) { *, *::before, *::after { scroll-behavior: auto !important; animation-duration: 0.01ms !important; transition-duration: 0.01ms !important; } }
