/* Public pages reuse the licensed template's status-card and Bootstrap UI.
   Keep these extensions separate from the read-only template/base main.css. */
@font-face { font-family: Geist; src: url('/web/assets/fonts/geist-regular.ttf') format('truetype'); font-style: normal; font-weight: 400; font-display: swap; }
@font-face { font-family: Geist; src: url('/web/assets/fonts/geist-bold.ttf') format('truetype'); font-style: normal; font-weight: 700 900; font-display: swap; }
.didloo-public { min-height: 100vh; min-height: 100svh; display: flex; flex-direction: column; font-size: 1rem; }
.public-header { background: var(--surface-color); border-bottom: 1px solid var(--card-border); }
.public-header-inner { max-width: 1200px; margin: 0 auto; padding: var(--spacing-md) var(--spacing-xl); display: flex; align-items: center; justify-content: space-between; gap: var(--spacing-lg); }
.public-brand { display: inline-flex; flex-shrink: 0; }
.public-brand img { display: block; width: 116px; height: 40px; object-fit: contain; }
.public-nav { display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: var(--spacing-sm); }
.public-nav-link { display: inline-flex; min-height: 44px; align-items: center; padding: .625rem .875rem; border-radius: var(--radius-md); color: var(--heading-color); font-weight: 700; }
.public-nav-link:hover, .public-nav-link[aria-current="page"] { color: var(--accent-color); background: color-mix(in srgb, var(--accent-color), transparent 92%); }
.public-nav .btn { min-height: 44px; display: inline-flex; align-items: center; font-size: 1rem; white-space: normal; }
.public-main.status-page { flex: 1; min-height: 0; }
.public-main .status-card { min-width: 0; }
.public-app-icon { display: block; width: 88px; height: 88px; object-fit: contain; margin: 0 auto var(--spacing-lg); }
.public-main .public-intro { margin-bottom: 0; }
.public-app-name { margin: 0 0 var(--spacing-sm); font-size: 1.25rem; color: var(--heading-color); }
.public-build-label { margin-bottom: var(--spacing-lg); font-size: .875rem; line-height: 1.5; white-space: normal; }
.public-icon { width: 1.125rem; height: 1.125rem; fill: currentColor; flex: 0 0 auto; }
.public-main .status-actions .btn { min-height: 48px; justify-content: center; font-size: 1rem; white-space: normal; }
.public-main .public-download-status { margin: var(--spacing-md) 0 0; font-size: .875rem; }
.public-main .public-platform-note { margin: var(--spacing-xl) 0 0; padding-top: var(--spacing-lg); border-top: 1px solid var(--card-border); font-size: .875rem; }
.didloo-public a:focus-visible { outline: 3px solid var(--accent-color); outline-offset: 4px; }
.skip-link { position: absolute; top: .5rem; left: .5rem; z-index: 10; padding: .75rem 1rem; color: var(--heading-color); background: var(--surface-color); transform: translateY(-200%); }
.skip-link:focus { transform: translateY(0); }
@media (max-width: 575px) {
  .public-header-inner { flex-direction: column; padding: var(--spacing-md) var(--spacing-lg); gap: var(--spacing-sm); }
  .public-nav { width: 100%; }
}
@media (prefers-color-scheme: dark) {
  .didloo-public { --background-color: #0e1524; --surface-color: #182235; --heading-color: #f0f4f8; --default-color: #d3dce8; --muted-color: #a8b5c7; --card-border: #2f3c53; --accent-color: #6d88ff; color: var(--default-color); color-scheme: dark; }
  .didloo-public .text-primary { color: #a6b8ff !important; }
  .didloo-public .bg-primary-subtle { background-color: #263759 !important; }
}
