/* Shared site chrome (top nav + footer) for every public-facing page:
   home.html, authentication/*.html, error-pages/*.html. The gated dashboard
   (index.html) keeps its own separate sidebar shell and does not use this.
   Accent colors matched from assets/img/rangobox.png (the real desktop app's
   own dark-navy + orange branding), not an arbitrary color choice. */
:root { --krdt-accent: #f47521; --krdt-accent-dark: #d9600f; --krdt-navy: #1c1e33; }

.krdt-topbar { background: var(--krdt-navy); }
.krdt-topbar a, .krdt-topbar .navbar-brand-text { color: #fff; }
.krdt-topbar a:hover { color: var(--krdt-accent); }

.krdt-logo-mark {
  width: 2rem; height: 2rem; border-radius: .5rem;
  object-fit: contain; display: inline-block; flex: 0 0 auto;
}

.btn-krdt-primary { background: var(--krdt-accent); border-color: var(--krdt-accent); color: #fff; }
.btn-krdt-primary:hover { background: var(--krdt-accent-dark); border-color: var(--krdt-accent-dark); color: #fff; }

/* Responsive collapsible nav — white toggler icon/border on the dark topbar. */
.krdt-topbar .navbar-toggler { border-color: rgba(255,255,255,.5); padding: .25rem .5rem; }
.krdt-topbar .navbar-toggler:focus { box-shadow: 0 0 0 .2rem rgba(255,255,255,.25); }
.krdt-topbar .navbar-toggler-icon {
  background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='rgba(255,255,255,0.9)' stroke-width='2' stroke-linecap='round' stroke-miterlimit='10' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e");
}
@media (max-width: 991.98px) {
  .krdt-topbar .navbar-collapse { border-top: 1px solid rgba(255,255,255,.15); }
}

.border-dashed { border-style: dashed !important; }

/* Sticky-footer layout: footer stays pinned to the bottom of the viewport
   even when the page's own content is shorter than the screen. */
html.krdt-page, body.krdt-page { height: 100%; }
body.krdt-page { display: flex; flex-direction: column; min-height: 100vh; }
.krdt-main { flex: 1 0 auto; }
body.krdt-page footer { flex-shrink: 0; }
