@font-face {
  font-family: Raleway;
  font-style: normal;
  font-weight: 400 700;
  font-display: block;
  src: url('/fonts/raleway-latin.woff2') format('woff2');
  unicode-range: U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;
}
@font-face {
  font-family: Raleway;
  font-style: normal;
  font-weight: 400 700;
  font-display: block;
  src: url('/fonts/raleway-latin-ext.woff2') format('woff2');
  unicode-range: U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;
}
@font-face {
  font-family: Raleway; font-style: normal; font-weight: 400 700; font-display: block;
  src: url('/fonts/raleway-cyrillic-ext.woff2') format('woff2');
  unicode-range: U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F;
}
@font-face {
  font-family: Raleway; font-style: normal; font-weight: 400 700; font-display: block;
  src: url('/fonts/raleway-cyrillic.woff2') format('woff2');
  unicode-range: U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116;
}
@font-face {
  font-family: Raleway; font-style: normal; font-weight: 400 700; font-display: block;
  src: url('/fonts/raleway-vietnamese.woff2') format('woff2');
  unicode-range: U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB;
}
body { margin: 0; }
.app-loading { display:flex; align-items:center; justify-content:center; padding:24px; box-sizing:border-box; min-height:16rem; }
.app-loading--screen { min-height:100dvh; background:#f8f7fa; }
.app-loading--dashboard { display:none; }
html[data-startup-surface='dashboard'] .app-loading--dashboard { display:flex; }
.dark .app-loading--screen { background:#16181e; }
.app-loading__bubble { display:flex; align-items:center; gap:12px; padding:16px 20px; border:1px solid #e7e5e4; border-radius:16px; background:#fff; color:#57534e; font:700 14px/20px system-ui,sans-serif; }
.dark .app-loading__bubble { background:#1f222a; border-color:#383c43; color:#d6d3d1; }
.app-loading__spinner { width:20px; height:20px; flex-shrink:0; box-sizing:border-box; border:2px solid #d6d3d1; border-top-color:#f9718d; border-radius:50%; animation:app-loading-spin .8s linear infinite; }
.dark .app-loading__spinner { border-color:#383c43; border-top-color:#f9718d; }
@keyframes app-loading-spin { to { transform:rotate(360deg); } }
/* Essential progress feedback stays visible, with gentler motion when requested. */
@media (prefers-reduced-motion:reduce) { .app-loading__spinner { animation-duration:2s; } }
/* If a font request fails or times out, never swap the visible page later. */
html[data-font-fallback] { --font-sans:system-ui,sans-serif; --font-display:system-ui,sans-serif; }
