/* Flutter scrolls inside its own viewport. Hidden DOM overflow still permits
   browser focus/scrollIntoView to move the host under embedded panoramas. */
.flutter-ready,
.flutter-ready body {
    width: 100%;
    height: 100%;
    overflow: clip !important;
}

/* Invisible accessibility labels must remain inside their Flutter hit bounds.
   Long icon-button labels otherwise wrap over the adjacent iframe controls. */
.flutter-ready flt-semantics[role="button"][flt-tappable] {
    overflow: clip !important;
}

/* Semantic HTML remains in the response, but the browser presents one startup
   screen until the real application has painted. noscript restores the HTML. */
html:not(.flutter-ready):not(.flutter-load-failed) #seo-content { visibility: hidden; }
.flutter-ready #seo-content { display: none; }
.seo-startup {
    position: fixed; inset: 0; z-index: 2147483646; display: grid; place-items: center;
    padding: 24px; background: #f8fafc; color: #0f172a;
    font: 16px/1.5 Inter, system-ui, sans-serif;
}
.seo-startup-card {
    box-sizing: border-box; display: grid; grid-template-columns: 44px minmax(0,1fr) 24px;
    align-items: center; gap: 18px; width: min(100%, 500px); padding: 24px;
    border: 1px solid #e2e8f0; border-radius: 18px; background: #fff;
    box-shadow: 0 18px 55px #0f172a1f;
}
.seo-startup-mark { height: 44px; border-radius: 12px; background: linear-gradient(135deg,#31546d,#d6a85f); }
.seo-startup strong { display: block; overflow-wrap: anywhere; font-size: 18px; }
.seo-startup-message { display: block; margin-top: 3px; color: #64748b; font-size: 14px; }
.seo-startup-spinner { width: 20px; height: 20px; border: 3px solid #e2e8f0; border-top-color: #31546d; border-radius: 50%; animation: seo-startup-spin .8s linear infinite; }
.seo-startup .app-bootstrap-retry { display: none; color: #31546d; font-size: 14px; }
.flutter-load-slow .seo-startup .app-bootstrap-retry { display: block; }
.flutter-ready .seo-startup, .flutter-load-failed .seo-startup { display: none; }
.seo-startup-failure { display: none; }
.flutter-load-failed .seo-startup-failure { display: block; padding: 16px 24px; background: #fff7ed; color: #7c2d12; font: 15px/1.6 system-ui,sans-serif; }
@keyframes seo-startup-spin { to { transform: rotate(360deg); } }
@media (prefers-color-scheme: dark) {
    .seo-startup { background: #111827; color: #f8fafc; }
    .seo-startup-card { background: #1f2937; border-color: #475569; }
    .seo-startup-message { color: #cbd5e1; }
    .seo-startup .app-bootstrap-retry { color: #cbd5e1; }
}
@media (prefers-reduced-motion: reduce) { .seo-startup-spinner { animation: none; } }
