/* ============================================================
   Novotel Владивосток — brand overrides
   Palette + type from Novotel Brand Guidelines, November 2020
   (Novotel Blue #1E22AA, Natural #F2F0E2, Concrete Grey #3C3C3C,
   Montserrat). Derived shades are commented.
   Loaded after each portal stylesheet as /brand/brand.css.
   ============================================================ */

/* Montserrat — self-hosted variable font (cyrillic + latin), served from
   /brand/fonts/. Replaces an @import from fonts.googleapis.com: guests in
   Russia reach Google inconsistently without a VPN, and an @import is
   render-blocking, so a slow font request delayed the whole portal.
   One file per subset covers weights 300–900. */
@font-face {
  font-family: 'Montserrat';
  font-style: normal;
  font-weight: 300 900;
  font-display: swap;
  src: url(/brand/fonts/montserrat-cyrillic.woff2) format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
@font-face {
  font-family: 'Montserrat';
  font-style: normal;
  font-weight: 300 900;
  font-display: swap;
  src: url(/brand/fonts/montserrat-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;
}

/* ── Guest portal ── */
body.portal-guest {
  --brand:         #1E22AA;
  --brand-deep:    #14176F; /* derived hover shade */
  --brand-soft:    #575CD6; /* derived */
  --brand-rgb:     30,34,170;
  --text-on-brand: #FFFFFF;

  --bg-page:       #F2F0E2; /* Novotel Natural */
  --bg-soft:       #F7F6EC; /* Natural tint — derived */
  --text:          #3C3C3C; /* Concrete Grey */

  --font-display:  'Montserrat', sans-serif;
  --font-body:     'Montserrat', sans-serif;

  --topbar-bg:             rgba(23,26,140,0.88); /* Novotel Blue glass */
  --topbar-bg-scrolled:    rgba(14,16,95,0.94);
  --topbar-solid:          #171A8C;
  --topbar-solid-scrolled: #0E105F;
  --topbar-border:         rgba(255,255,255,0.18);
  --topbar-inset:          rgba(255,255,255,0.20);
  --cobrand-accent:        #FFFFFF;
  --logo-h:                24px;
  --logo-h-sm:             20px;
}
@media (prefers-color-scheme: dark) {
  body.portal-guest {
    /* Lightened Novotel Blue for dark surfaces — derived */
    --brand:      #3A40D8;
    --brand-deep: #7A7EE3;
  }
}

/* ── Guest: Novotel-specific accents (2026-07-28) ──
   Headline + photo-search entry in Novotel Blue; plate panel inverted
   to deep Novotel Blue with white input/button popping on it. */
body.portal-guest .hero h1 { color: var(--brand); }
body.portal-guest .photo-search-head h2 { color: var(--brand); }
body.portal-guest .btn-ghost { color: var(--brand); border-color: var(--brand-soft); }
body.portal-guest .btn-ghost:hover {
  background: rgba(var(--brand-rgb), 0.06);
  border-color: var(--brand);
}

body.portal-guest .plate-box {
  /* deep Novotel Blue, echoes the topbar glass */
  background: linear-gradient(160deg, #171A8C 0%, #14176F 100%);
  border-color: rgba(255, 255, 255, 0.14);
}
body.portal-guest .plate-label { color: rgba(255, 255, 255, 0.85); }
body.portal-guest .plate-hint { color: rgba(255, 255, 255, 0.60); }
body.portal-guest .plate-hint code { color: rgba(255, 255, 255, 0.70); }
body.portal-guest .plate-input-wrap {
  background: #FFFFFF;
  border-color: rgba(255, 255, 255, 0.25);
}
body.portal-guest .plate-input-wrap:focus-within {
  border-color: #FFFFFF;
  box-shadow: 0 0 0 4px rgba(255, 255, 255, 0.20);
}
body.portal-guest #plateInput { color: #1E1E1E; }
body.portal-guest #plateInput::placeholder { color: #B0ADA5; }
body.portal-guest .plate-box .btn-primary {
  background: #FFFFFF;
  color: #14176F;
  box-shadow: 0 6px 18px rgba(0, 0, 0, 0.25);
}
body.portal-guest .plate-box .btn-primary:hover {
  background: #F2F0E2; /* Novotel Natural on hover */
  transform: translateY(-1px);
  box-shadow: 0 10px 26px rgba(0, 0, 0, 0.30);
}
body.portal-guest .plate-box .btn-secondary {
  background: transparent;
  color: rgba(255, 255, 255, 0.75);
  border-color: rgba(255, 255, 255, 0.30);
}
body.portal-guest .plate-box .btn-secondary:hover {
  background: rgba(255, 255, 255, 0.10);
  color: #FFFFFF;
  border-color: rgba(255, 255, 255, 0.50);
}

/* Dark mode: headline + photo-lookup in white (card background is
   near-black there; in light mode they stay Novotel Blue on the white
   card, where white text would be invisible). */
@media (prefers-color-scheme: dark) {
  body.portal-guest .hero h1 { color: #FFFFFF; }
  body.portal-guest .photo-search-head h2 { color: #FFFFFF; }
  body.portal-guest .btn-ghost {
    color: #FFFFFF;
    border-color: rgba(255, 255, 255, 0.35);
  }
  body.portal-guest .btn-ghost:hover {
    background: rgba(255, 255, 255, 0.08);
    border-color: #FFFFFF;
  }
}

/* ── Staff portal ── */
body.portal-staff {
  --accent:         #1E22AA;
  --accent-h:       #14176F;
  --accent-rgb:     30,34,170;
  --text-on-accent: #FFFFFF;
  --font-head:      'Montserrat', sans-serif;
  --font-body:      'Montserrat', sans-serif;
  --login-backdrop: linear-gradient(135deg, #0E105F 0%, #1E22AA 100%);
  --grad-primary:   linear-gradient(135deg, #14176F, #1E22AA);
  --grad-bar:       linear-gradient(to top, #14176F, #1E22AA);
  --logo-login-h:   32px;
  --logo-side-h:    22px;
}
body.portal-staff.dark-theme {
  --grad-primary: linear-gradient(135deg, #14176F, #3A40D8);
  --grad-bar:     linear-gradient(to top, #1E22AA, #575CD6);
}

/* ── Admin portal ── */
body.portal-admin {
  --accent:           #575CD6; /* lightened Novotel Blue for dark UI — derived */
  --accent-h:         #4348C8;
  --font-head:        'Montserrat', sans-serif;
  --font-body:        'Montserrat', sans-serif;
  --login-backdrop:   linear-gradient(135deg, #07081F 0%, #14176F 100%);
  --brandmark-grad:   linear-gradient(135deg, #1E22AA, #575CD6);
  --brandmark-shadow: rgba(30,34,170,0.4);
}
