/* Polished navy, warm metal and porcelain. Reflections are static backgrounds:
   they never cover text, intercept input or change the responsive layout. */
:root {
  --finish-navy: linear-gradient(180deg, #536b8f 0%, #29446b 3%, #203654 38%, #14213c 41%, #101b30 82%, #1a2744 100%);
  --finish-gold: linear-gradient(180deg, #fff3c1 0%, #e6c65d 5%, #d9b43b 35%, #f5df8a 39%, #c9a227 43%, #d4ae36 85%, #f0d37a 100%);
  --finish-edge: inset 0 1px 0 rgba(255, 255, 255, .7), inset 0 -1px 0 rgba(26, 39, 68, .12);
}

body {
  background-color: var(--color-bg);
  background-image:
    radial-gradient(ellipse at 12% 0%, rgba(255,255,255,.95), transparent 52%),
    radial-gradient(ellipse at 100% 15%, rgba(201,162,39,.08), transparent 48%),
    linear-gradient(125deg, #e1e7ee, #f0f2f5 48%, #e5eaf0);
}

.app-navbar,
.app-footer {
  background-color: var(--color-primary);
  background-image:
    radial-gradient(ellipse at 24% 0%, rgba(232,213,163,.13), transparent 12%),
    var(--finish-navy);
  box-shadow: inset 0 1px 0 rgba(255,255,255,.3), 0 3px 14px rgba(26,39,68,.18);
  border-color: var(--color-accent-gold);
}

.app-navbar .nav-link,
.app-navbar .navbar-brand,
.app-footer { text-shadow: 0 1px 2px rgba(0,0,0,.3); }
.app-footer { color: #e1e6ee; }
.app-footer a { color: #e8d5a3; }

.app-main {
  background: linear-gradient(150deg, #fff 0%, #fff 60%, #f6f7fa 100%);
  box-shadow: var(--finish-edge), 0 12px 32px -20px rgba(26,39,68,.4);
}

.app-sidebar {
  background-color: var(--color-primary);
  background-image:
    radial-gradient(ellipse at 50% 0%, rgba(108,148,199,.2), transparent 18%),
    linear-gradient(90deg, #304765 0%, #1a2744 1%, #152039 65%, #101b30 99%, #304765 100%);
  border-color: #354560;
  border-top-color: var(--color-accent-gold);
  box-shadow: inset 0 1px 0 rgba(255,255,255,.36), 0 12px 28px -16px rgba(26,39,68,.65);
}
.app-sidebar .portal-nav-group { border-color: rgba(232,213,163,.22); }
.app-sidebar .portal-nav-group summary { color: #f4e6bf; text-shadow: 0 1px 2px rgba(0,0,0,.35); }
.app-sidebar .nav-link { color: #edf1f7; }
.app-sidebar .nav-link:hover,
.app-sidebar .nav-link:focus-visible {
  background: linear-gradient(180deg, rgba(255,255,255,.17), rgba(255,255,255,.06));
  color: #fff;
  border-left-color: var(--color-accent-gold-light);
}
.app-sidebar .nav-link.active,
.app-navbar .portal-nav-group .nav-link.active {
  background: var(--finish-gold);
  color: var(--color-primary);
  border-left-color: var(--color-accent-gold);
  box-shadow: var(--finish-edge), 0 3px 8px rgba(0,0,0,.18);
  text-shadow: 0 1px 0 rgba(255,255,255,.35);
}
.app-sidebar :focus-visible,
.app-navbar :focus-visible,
.hero :focus-visible,
.portal-card .card-header :focus-visible { outline: 3px solid var(--color-accent-gold-light); outline-offset: 3px; }

/* Localized reflections: preserve saturated navy instead of a white veil. */
.hero.home-hero {
  background:
    radial-gradient(ellipse at 75% 110%, rgba(28,74,90,.9), transparent 65%),
    linear-gradient(135deg, #152039, #243256 55%, #1c4a5a);
  box-shadow: inset 0 1px 0 rgba(255,255,255,.6), inset 0 0 0 1px rgba(232,213,163,.35), 0 14px 28px -17px rgba(26,39,68,.7);
}
.hero.home-hero::before {
  background:
    radial-gradient(ellipse 32% 7% at 35% 0%, rgba(216,234,255,.5), transparent 100%),
    linear-gradient(164deg, transparent 0%, transparent 25%, rgba(169,204,240,.06) 29%, rgba(221,238,255,.23) 30%, rgba(255,255,255,.6) 30.12%, rgba(84,137,189,.08) 30.4%, transparent 34%);
}


/* Gloss on interactive surfaces, leaving body copy and table rows quiet. */
.btn-primary:not(:disabled):not(.disabled),
.btn-secondary:not(:disabled):not(.disabled) {
  background-color: var(--color-primary);
  background-image: var(--finish-navy);
  border-color: #17243e;
  color: #fff;
  box-shadow: inset 0 1px 0 rgba(255,255,255,.4), inset 0 -1px 0 rgba(0,0,0,.2), 0 3px 7px rgba(26,39,68,.18);
  text-shadow: 0 1px 2px rgba(0,0,0,.35);
}
.btn-primary:not(:disabled):not(.disabled):hover,
.btn-secondary:not(:disabled):not(.disabled):hover { background-image: linear-gradient(rgba(255,255,255,.07), rgba(255,255,255,.07)), var(--finish-navy); }
.btn-primary:not(:disabled):not(.disabled):active,
.btn-secondary:not(:disabled):not(.disabled):active { box-shadow: inset 0 2px 5px rgba(0,0,0,.4); }

.home-hero-actions a:first-child {
  background: var(--finish-gold);
  border-color: var(--color-accent-gold);
  color: var(--color-primary);
  box-shadow: var(--finish-edge), 0 4px 10px rgba(0,0,0,.24);
  text-shadow: 0 1px 0 rgba(255,255,255,.4);
}
.home-hero-actions a:first-child:hover { background: linear-gradient(rgba(255,255,255,.12), rgba(255,255,255,.12)), var(--finish-gold); }
.home-hero-actions a:not(:first-child) {
  background: linear-gradient(180deg, rgba(255,255,255,.18), rgba(255,255,255,.07) 48%, rgba(0,0,0,.1) 52%);
  box-shadow: inset 0 1px 0 rgba(255,255,255,.25);
}
.btn-outline-primary:where(:not(:hover):not(:focus):not(:active):not(.active)) {
  background-image: linear-gradient(180deg, #fff, #f4f6fa 48%, #e5eaf2 52%, #f6f8fb);
  box-shadow: var(--finish-edge);
}
.btn-outline-primary:hover,
.btn-outline-primary:focus,
.btn-outline-primary.active { background-image: var(--finish-navy); color: #fff; }

.app-main .portal-card,
.app-main .auth-card,
.app-main .contact-choice-card {
  box-shadow: inset 0 1px 0 #fff, 0 5px 13px -9px rgba(26,39,68,.32);
}
.portal-card .card-header {
  background: var(--finish-navy);
  border-bottom: 1px solid var(--color-accent-gold);
  box-shadow: inset 0 1px 0 rgba(255,255,255,.35);
}
.portal-card .card-header > span { color: #fff; text-shadow: 0 1px 2px rgba(0,0,0,.35); }
.portal-card .card-header .bi { color: #f4e6bf; }
.portal-card .card-header .btn-outline-primary {
  color: #fff;
  border-color: rgba(232,213,163,.7);
  background: linear-gradient(180deg, rgba(255,255,255,.15), rgba(0,0,0,.08));
  box-shadow: inset 0 1px 0 rgba(255,255,255,.25);
}
.portal-card .card-header .btn-outline-primary:hover { background: var(--finish-gold); color: var(--color-primary); }
.portal-card .card-header .btn-outline-primary:hover .bi { color: inherit; }

.record-table thead th {
  background-image: var(--finish-navy);
  box-shadow: inset 0 1px 0 rgba(255,255,255,.3);
}
.form-control:not([type='file']),
.form-select {
  box-shadow: inset 0 2px 4px rgba(26,39,68,.07), 0 1px 0 #fff;
}
.form-control:focus,
.form-select:focus { box-shadow: 0 0 0 .2rem rgba(201,162,39,.22), inset 0 1px 3px rgba(26,39,68,.06); }

@media (forced-colors: active) {
  .app-sidebar, .app-navbar, .app-footer, .hero.home-hero,
  .btn, .home-hero-actions a, .portal-card .card-header,
  .app-sidebar .nav-link.active, .record-table thead th { background-image: none; box-shadow: none; text-shadow: none; }
  .hero.home-hero::before { display: none; }
}

/* The approved transparent emblem supplies its own metal highlights. */
.navbar-logo,
.hero-logo,
.footer-logo {
  width: auto;
  background: none;
  border: 0;
  border-radius: 0;
  box-shadow: none;
  opacity: 1;
  filter: drop-shadow(0 2px 2px rgba(0,0,0,.3));
}
.hero-logo { height: 192px; }
.hero-logo:hover { transform: none; box-shadow: none; }
@media (max-width: 575.98px) {
  .home-hero .hero-logo { height: 96px; }
}
@media (forced-colors: active) {
  .navbar-logo, .hero-logo, .footer-logo { filter: none; }
}

/* Keep the polished surface readable for headings, labels and outline controls. */
.portal-card .card-header,
.portal-card .card-header :is(h1,h2,h3,h4,h5,h6,.h1,.h2,.h3,.h4,.h5,.h6,label,.text-muted) { color: #f3f5fa !important; }
.portal-card .card-header :is(.btn-outline-secondary,.btn-outline-light) { color: #fff; border-color: #c8d0da; }
.card-header.bg-success :is(h1,h2,h3,h4,h5,h6,.text-muted) { color: #fff !important; }
.app-main .btn-outline-secondary:not(:disabled):not(.disabled) { color: #46536a; border-color: #768399; }
.app-main .btn-outline-info:not(:disabled):not(.disabled) { color: #146477; border-color: #146477; }
.app-main .portal-card .card-header .btn-outline-secondary { color: #fff; }
.app-main .btn-outline-secondary:hover { color: #fff; }
.app-main .btn-outline-secondary.active:not(:disabled):not(.disabled) { color: #fff; background-color: #46536a; }
.app-main .portal-card .card-header .btn-link { color: #fff; }
.app-main input[type=number][name=year] { min-width: 6rem; }
.responsive-records td { vertical-align: middle; }
@media (max-width: 767.98px) {
  .responsive-records { display: block; width: 100%; min-width: 0; }
  .responsive-records thead { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); }
  .responsive-records tbody { display: grid; gap: .75rem; }
  .responsive-records tr { display: block; padding: .75rem; border: 1px solid var(--color-border); border-radius: var(--radius); background: #fff !important; }
  .app-main .responsive-records td,
  .app-main .record-table td { display: grid; grid-template-columns: minmax(5.5rem, 32%) minmax(0, 1fr); align-items: start; gap: .4rem; width: auto !important; min-width: 0; padding: .4rem .25rem; border: 0; text-align: left !important; white-space: normal; overflow-wrap: anywhere; box-shadow: none; }
  .responsive-records td::before { content: attr(data-label); font-size: .75rem; font-weight: 700; color: #46536a; }
  .app-main .responsive-records td:first-child,
  .app-main .responsive-records td:last-child,
  .app-main .record-table td:first-child,
  .app-main .record-table td:last-child,
  .app-main .record-table td:has(.page-order-cell) { display: block; }
  .responsive-records td:first-child::before { display: none; }
  .responsive-records td:last-child::before { display: block; margin-bottom: .3rem; }
  .responsive-records td[colspan] { display: block; }
  .responsive-records td[colspan]::before { display: none; }
  .responsive-records .btn { min-width: 44px; min-height: 44px; }
  .home-hero + .home-main-grid .home-content-card .card-body { padding-top: .75rem; }
}

@media (max-width: 767.98px) {
  .guest-status-summary { display: flex; flex-wrap: wrap; gap: .4rem; margin: 0 0 1rem; }
  .guest-status-summary > div { width: auto; margin: 0; padding: 0; }
  .guest-status-summary .card-body { display: flex; gap: .4rem; align-items: center; padding: .35rem .6rem !important; }
  .guest-status-summary .card-body > div { margin: 0 !important; font-size: .8rem !important; }
  .record-value { min-width: 0; }
  .record-value .page-row-actions { display: flex; flex-wrap: wrap; gap: .35rem; }
}
