/* ==========================================================================
   GOVT PORTAL SKIN  v1.0  —  DigiPrint Seva UI
   --------------------------------------------------------------------------
   Pure presentation layer. Loads AFTER theme.css / user.css and re-themes the
   entire dashboard to a clean, serious, government-portal identity.
   No markup or behaviour is required from this file — safe to remove.
   ========================================================================== */

/* --------------------------------------------------------------------------
   1. DESIGN TOKENS
   -------------------------------------------------------------------------- */
:root{
  /* Core palette — official India-govt family */
  --gp-navy:        #14355F;   /* primary */
  --gp-navy-600:    #1B4478;
  --gp-navy-deep:   #0C2545;   /* topbar / emphasis */
  --gp-navy-ink:    #10233C;
  --gp-saffron:     #E8760E;   /* action accent */
  --gp-saffron-2:   #F08A2B;
  --gp-green:       #1B7A3D;   /* success */
  --gp-green-2:     #23924C;
  --gp-red:         #B02A30;
  --gp-info:        #0B6E8F;

  /* Canvas & surfaces */
  --gp-bg:          #EEF2F7;
  --gp-surface:     #FFFFFF;
  --gp-surface-2:   #F7F9FC;
  --gp-border:      #D5DDE9;
  --gp-border-soft: #E4E9F2;

  /* Text */
  --gp-ink:         #1C2B3A;
  --gp-ink-soft:    #45566B;
  --gp-ink-faint:   #6B7C92;

  /* Effects */
  --gp-radius:      8px;
  --gp-radius-lg:   12px;
  --gp-shadow-sm:   0 1px 2px rgba(16,35,60,.06), 0 1px 1px rgba(16,35,60,.04);
  --gp-shadow:      0 2px 6px rgba(16,35,60,.08), 0 1px 2px rgba(16,35,60,.05);
  --gp-shadow-lg:   0 10px 28px rgba(12,37,69,.14);
  --gp-ease:        cubic-bezier(.4,0,.2,1);
  --gp-fast:        .16s;
  --gp-med:         .22s;

  /* Falcon variable overrides (light) */
  --falcon-primary: var(--gp-navy);
  --falcon-body-bg: var(--gp-bg);
  --falcon-body-color: var(--gp-ink);
  --falcon-link-color: var(--gp-navy-600);
  --falcon-card-cap-bg: var(--gp-surface-2);
  --bs-primary: var(--gp-navy);
  --bs-primary-rgb: 20,53,95;
  --bs-link-color: var(--gp-navy-600);
  --bs-body-bg: var(--gp-bg);
  --bs-body-color: var(--gp-ink);
  --bs-border-color: var(--gp-border);
  --bs-success: var(--gp-green);
  --bs-success-rgb: 27,122,61;
  --bs-danger: var(--gp-red);
  --bs-danger-rgb: 176,42,48;
  --bs-warning: var(--gp-saffron);
  --bs-warning-rgb: 232,118,14;
  --bs-info: var(--gp-info);
  --bs-info-rgb: 11,110,143;
}

/* Dark scheme — official night palette */
html[data-bs-theme="dark"]{
  --gp-bg:          #0E1726;
  --gp-surface:     #152238;
  --gp-surface-2:   #1B2B45;
  --gp-border:      #26385A;
  --gp-border-soft: #223354;
  --gp-ink:         #E7EDF6;
  --gp-ink-soft:    #B3C1D6;
  --gp-ink-faint:   #8496B0;
  --gp-navy:        #3D6CB0;
  --gp-navy-600:    #4C7FC7;
  --gp-navy-deep:   #0A1A30;
  --gp-shadow-sm:   0 1px 2px rgba(0,0,0,.35);
  --gp-shadow:      0 2px 8px rgba(0,0,0,.4);
  --gp-shadow-lg:   0 12px 32px rgba(0,0,0,.5);
  --falcon-body-bg: var(--gp-bg);
  --bs-body-bg: var(--gp-bg);
  --bs-body-color: var(--gp-ink);
  --bs-border-color: var(--gp-border);
}

/* --------------------------------------------------------------------------
   2. BASE / CANVAS
   -------------------------------------------------------------------------- */
html{ scroll-behavior:smooth; }
body{
  background:var(--gp-bg) !important;
  color:var(--gp-ink);
  font-family:'Open Sans',system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif;
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
}
h1,h2,h3,h4,h5,h6,.font-sans-serif{ font-family:'Poppins','Open Sans',sans-serif; letter-spacing:.1px; }
.fs-num, [data-countup], .display-4{ font-variant-numeric:tabular-nums; }

::selection{ background:rgba(232,118,14,.28); }

/* Refined scrollbars (WebKit + Firefox) */
*{ scrollbar-width:thin; scrollbar-color:var(--gp-border) transparent; }
::-webkit-scrollbar{ width:9px; height:9px; }
::-webkit-scrollbar-thumb{ background:var(--gp-border); border-radius:8px; border:2px solid transparent; background-clip:content-box; }
::-webkit-scrollbar-thumb:hover{ background:var(--gp-ink-faint); border:2px solid transparent; background-clip:content-box; }
::-webkit-scrollbar-track{ background:transparent; }

/* Accessible focus */
:focus-visible{ outline:2px solid var(--gp-saffron); outline-offset:2px; border-radius:4px; }
a{ transition:color var(--gp-fast) var(--gp-ease); }

/* Motion discipline */
@media (prefers-reduced-motion: reduce){
  *,*::before,*::after{ animation-duration:.01ms !important; animation-iteration-count:1 !important; transition-duration:.01ms !important; scroll-behavior:auto !important; }
}

/* --------------------------------------------------------------------------
   3. SIGNATURE — TRICOLOR SEVA STRIP
   -------------------------------------------------------------------------- */
.gp-tricolor{
  height:4px; width:100%;
  background:linear-gradient(90deg,
    #F0862B 0 33.4%,
    #FFFFFF 33.4% 66.7%,
    #1B7A3D 66.7% 100%);
  border-radius:0;
}
html[data-bs-theme="dark"] .gp-tricolor{
  background:linear-gradient(90deg,#C96A15 0 33.4%,#B9C6DA 33.4% 66.7%,#1E6B39 66.7% 100%);
}

/* --------------------------------------------------------------------------
   4. TOP NAVBAR — official navy band
   -------------------------------------------------------------------------- */
.navbar-top.navbar-glass,
.navbar-top{
  background:var(--gp-navy-deep) !important;
  backdrop-filter:none !important;
  box-shadow:0 2px 10px rgba(6,20,40,.28);
  border:0;
  min-height:64px;
  padding-top:.45rem; padding-bottom:.45rem;
}
.navbar-top .navbar-brand span{ color:#fff !important; font-weight:700; letter-spacing:.3px; }
.navbar-top .navbar-brand img{ background:#fff; border-radius:8px; padding:3px; box-shadow:var(--gp-shadow-sm); }
.navbar-top .navbar-toggler-humburger-icon{ color:#fff; }
.navbar-top .toggle-line,
.navbar-top .navbar-toggle-icon{ background-color:#fff !important; }
.navbar-top .navbar-toggle-icon:before,
.navbar-top .navbar-toggle-icon:after{ background-color:#fff !important; }

/* Search inside navy band */
.navbar-top .search-box .search-input{
  background:rgba(255,255,255,.10);
  border:1px solid rgba(255,255,255,.22);
  color:#fff;
  border-radius:24px;
  min-width:300px;
  padding-left:2.4rem;
  transition:background var(--gp-fast) var(--gp-ease), border-color var(--gp-fast) var(--gp-ease), box-shadow var(--gp-fast) var(--gp-ease);
}
.navbar-top .search-box .search-input::placeholder{ color:rgba(255,255,255,.65); }
.navbar-top .search-box .search-input:focus{
  background:rgba(255,255,255,.16);
  border-color:var(--gp-saffron-2);
  box-shadow:0 0 0 3px rgba(232,118,14,.25);
  color:#fff;
}
.navbar-top .search-box .search-box-icon{ color:rgba(255,255,255,.75); }

/* Top-right item chips */
.gp-topchip{
  display:inline-flex; align-items:center; gap:.45rem;
  padding:.42rem .8rem;
  border-radius:24px;
  font-weight:700; font-size:.83rem;
  border:1px solid transparent;
  transition:transform var(--gp-fast) var(--gp-ease), box-shadow var(--gp-fast) var(--gp-ease), background var(--gp-fast) var(--gp-ease);
  text-decoration:none;
  line-height:1;
  white-space:nowrap;
}
.gp-topchip:hover{ transform:translateY(-1px); box-shadow:0 4px 12px rgba(0,0,0,.25); }
.gp-chip-wallet{ background:var(--gp-saffron); color:#fff !important; }
.gp-chip-wallet:hover{ background:var(--gp-saffron-2); color:#fff !important; }
.gp-chip-api{ background:rgba(255,255,255,.12); color:#fff !important; border-color:rgba(255,255,255,.25); }
.gp-chip-api:hover{ background:rgba(255,255,255,.2); color:#fff !important; }

.navbar-top .theme-control-dropdown .nav-link{ color:#fff !important; opacity:.9; }
.navbar-top .theme-control-dropdown .nav-link:hover{ opacity:1; }
.navbar-top .avatar img{ border:2px solid rgba(255,255,255,.6); }

/* theme icon visibility (light/dark/auto) */
[data-theme-dropdown-toggle-icon]{ display:none; }
html[data-bs-theme="light"] [data-theme-dropdown-toggle-icon="light"]{ display:inline-block; }
html[data-bs-theme="dark"] [data-theme-dropdown-toggle-icon="dark"]{ display:inline-block; }

/* --------------------------------------------------------------------------
   5. VERTICAL SIDEBAR — clean directory
   -------------------------------------------------------------------------- */
.navbar-vertical{
  background:var(--gp-surface);
  border-right:1px solid var(--gp-border);
}
.navbar-vertical .navbar-collapse,
.navbar-vertical .navbar-vertical-content{ background:transparent; }
.navbar-vertical .navbar-brand{ padding-top:.4rem; }
.navbar-vertical .navbar-brand span{ color:var(--gp-navy) !important; font-weight:800; }
html[data-bs-theme="dark"] .navbar-vertical .navbar-brand span{ color:#fff !important; }

.gp-brand-emblem{
  width:42px;height:42px;border-radius:10px;
  background:linear-gradient(160deg,var(--gp-navy) 0%,var(--gp-navy-deep) 100%);
  display:flex;align-items:center;justify-content:center;
  box-shadow:var(--gp-shadow-sm);
  overflow:hidden;
}
.gp-brand-emblem img{ width:32px;height:32px;object-fit:contain;background:#fff;border-radius:7px;padding:2px; }

/* Section eyebrows */
.navbar-vertical-label{
  color:var(--gp-ink-faint) !important;
  font-size:.66rem; font-weight:800; letter-spacing:.14em;
}
.navbar-vertical-divider{ border-color:var(--gp-border-soft) !important; opacity:1; }

/* Links */
.navbar-vertical .nav-link{
  color:var(--gp-ink-soft) !important;
  font-weight:600; font-size:.86rem;
  border-radius:8px;
  margin:1px 8px;
  padding:.5rem .75rem;
  position:relative;
  transition:background var(--gp-fast) var(--gp-ease), color var(--gp-fast) var(--gp-ease), transform var(--gp-fast) var(--gp-ease);
}
.navbar-vertical .nav-link:hover{
  color:var(--gp-navy) !important;
  background:var(--gp-surface-2);
}
html[data-bs-theme="dark"] .navbar-vertical .nav-link:hover{ color:#fff !important; }
.navbar-vertical .nav-link.active{
  color:var(--gp-navy) !important;
  background:rgba(20,53,95,.08);
}
.navbar-vertical .nav-link.active::before{
  content:""; position:absolute; left:-8px; top:20%; bottom:20%; width:3px;
  background:var(--gp-saffron); border-radius:3px;
}
.navbar-vertical .nav-link-icon{ width:1.4rem; text-align:center; }
.navbar-vertical .nav-link-icon .fas,
.navbar-vertical .nav-link-icon .far,
.navbar-vertical .nav-link-icon .fab{ font-size:.9rem; }

/* Sub-menu */
.navbar-vertical .nav .nav-link{
  font-weight:500; font-size:.82rem; color:var(--gp-ink-faint) !important;
  margin-left:1.35rem; padding:.36rem .75rem;
  border-left:1px solid var(--gp-border-soft); border-radius:0 8px 8px 0;
}
.navbar-vertical .nav .nav-link:hover{ color:var(--gp-navy) !important; border-left-color:var(--gp-saffron); background:var(--gp-surface-2); }
html[data-bs-theme="dark"] .navbar-vertical .nav .nav-link:hover{ color:#fff !important; }

/* collapse chevron */
.navbar-vertical .dropdown-indicator:after{ transition:transform var(--gp-med) var(--gp-ease); }

/* Sidebar support card */
.gp-side-card{
  margin:0 12px 14px;
  background:linear-gradient(165deg,var(--gp-navy) 0%,var(--gp-navy-deep) 100%);
  border-radius:var(--gp-radius-lg);
  color:#fff; text-align:center;
  padding:1rem .9rem;
  box-shadow:var(--gp-shadow);
}
.gp-side-card .btn{ background:var(--gp-saffron); border:0; color:#fff; font-weight:700; }
.gp-side-card .btn:hover{ background:var(--gp-saffron-2); }

/* vibrant/inverted navbarStyle graceful override */
.navbar-vertical.navbar-inverted,
.navbar-vertical.navbar-vibrant,
.navbar-vertical.navbar-card{ background:var(--gp-surface) !important; background-image:none !important; }

/* --------------------------------------------------------------------------
   6. CONTENT SHELL
   -------------------------------------------------------------------------- */
.content{ padding-top:1rem; }

/* Page hero band (dashboard welcome) */
.gp-hero{
  background:linear-gradient(135deg,var(--gp-navy) 0%,var(--gp-navy-deep) 78%);
  border-radius:var(--gp-radius-lg);
  color:#fff;
  position:relative;
  overflow:hidden;
  box-shadow:var(--gp-shadow);
}
.gp-hero::after{
  content:""; position:absolute; right:-70px; top:-70px; width:240px; height:240px;
  border-radius:50%;
  background:radial-gradient(closest-side, rgba(240,134,43,.35), transparent 72%);
  pointer-events:none;
}
.gp-hero::before{
  content:""; position:absolute; right:110px; bottom:-90px; width:200px;height:200px;
  border-radius:50%;
  border:26px solid rgba(255,255,255,.05);
  pointer-events:none;
}
.gp-hero .gp-hello{ font-size:.8rem; letter-spacing:.12em; font-weight:700; color:#F5B87B; text-transform:uppercase; }
.gp-hero h3{ color:#fff; font-weight:700; margin:0; }
.gp-hero .gp-date-chip{
  background:rgba(255,255,255,.12);
  border:1px solid rgba(255,255,255,.22);
  color:#fff; border-radius:8px;
  padding:.5rem .9rem; font-weight:700; font-size:.85rem;
  display:inline-flex; align-items:center; gap:.5rem;
  white-space:nowrap;
}

/* Announcement ticker (marquee replacement look) */
.gp-ticker{
  display:flex; align-items:stretch;
  background:var(--gp-surface);
  border:1px solid var(--gp-border);
  border-radius:var(--gp-radius);
  overflow:hidden;
  box-shadow:var(--gp-shadow-sm);
}
.gp-ticker-tag{
  background:var(--gp-saffron);
  color:#fff; font-weight:800; font-size:.72rem; letter-spacing:.1em;
  display:flex; align-items:center; gap:.45rem;
  padding:0 .9rem; white-space:nowrap;
}
.gp-ticker-view{ position:relative; overflow:hidden; flex:1; display:flex; align-items:center; }
.gp-ticker-view::before,
.gp-ticker-view::after{
  content:""; position:absolute; top:0; bottom:0; width:34px; z-index:1; pointer-events:none;
}
.gp-ticker-view::before{ left:0; background:linear-gradient(90deg,var(--gp-surface),transparent); }
.gp-ticker-view::after{ right:0; background:linear-gradient(270deg,var(--gp-surface),transparent); }
.gp-ticker-track{
  display:inline-flex; align-items:center;
  padding:.62rem 0;
  white-space:nowrap;
  animation:gp-ticker 28s linear infinite;
  will-change:transform;
  color:var(--gp-red);
  font-weight:700; font-size:.85rem;
}
.gp-ticker-track span{ padding:0 3rem; }
.gp-ticker:hover .gp-ticker-track{ animation-play-state:paused; }
@keyframes gp-ticker{ from{ transform:translateX(0); } to{ transform:translateX(-50%); } }

/* --------------------------------------------------------------------------
   7. CARDS
   -------------------------------------------------------------------------- */
.card{
  background:var(--gp-surface);
  border:1px solid var(--gp-border);
  border-radius:var(--gp-radius) !important;
  box-shadow:var(--gp-shadow-sm);
  transition:box-shadow var(--gp-med) var(--gp-ease), transform var(--gp-med) var(--gp-ease), border-color var(--gp-med) var(--gp-ease);
}
.card .card-header{
  background:var(--gp-surface-2);
  border-bottom:1px solid var(--gp-border-soft);
  border-radius:var(--gp-radius) var(--gp-radius) 0 0 !important;
}
.card .bg-holder.bg-card{ opacity:.5; filter:saturate(.4); }

/* KPI stat card */
.gp-stat{
  position:relative; overflow:hidden;
}
.gp-stat::before{
  content:""; position:absolute; inset:0 auto 0 0; width:4px;
  background:var(--gp-navy); opacity:.9;
}
.gp-stat.gp-stat-saffron::before{ background:var(--gp-saffron); }
.gp-stat.gp-stat-green::before{ background:var(--gp-green); }
.gp-stat.gp-stat-red::before{ background:var(--gp-red); }
.gp-stat.gp-stat-info::before{ background:var(--gp-info); }
.gp-stat:hover{ transform:translateY(-3px); box-shadow:var(--gp-shadow-lg); border-color:var(--gp-border); }
.gp-stat .gp-stat-label{
  font-size:.72rem; font-weight:800; letter-spacing:.09em; text-transform:uppercase;
  color:var(--gp-ink-faint); margin-bottom:.35rem;
}
.gp-stat .gp-stat-value{
  font-family:'Poppins',sans-serif; font-weight:700; font-size:1.5rem; line-height:1.15;
  color:var(--gp-ink); font-variant-numeric:tabular-nums;
}
.gp-stat .gp-stat-ico{
  width:44px;height:44px;border-radius:10px;
  display:flex;align-items:center;justify-content:center;
  font-size:1.05rem;
  background:rgba(20,53,95,.08); color:var(--gp-navy);
}
.gp-stat.gp-stat-saffron .gp-stat-ico{ background:rgba(232,118,14,.12); color:var(--gp-saffron); }
.gp-stat.gp-stat-green  .gp-stat-ico{ background:rgba(27,122,61,.12);  color:var(--gp-green); }
.gp-stat.gp-stat-red    .gp-stat-ico{ background:rgba(176,42,48,.1);   color:var(--gp-red); }
.gp-stat.gp-stat-info   .gp-stat-ico{ background:rgba(11,110,143,.1);  color:var(--gp-info); }
html[data-bs-theme="dark"] .gp-stat .gp-stat-ico{ background:rgba(76,127,199,.16); color:#9DBCE8; }

/* Service card */
.gp-service{
  position:relative; overflow:hidden; height:100%;
  display:flex; flex-direction:column;
}
.gp-service::after{
  content:""; position:absolute; left:0; right:0; top:0; height:3px;
  background:linear-gradient(90deg,var(--gp-saffron),var(--gp-green));
  transform:scaleX(0); transform-origin:left;
  transition:transform var(--gp-med) var(--gp-ease);
}
.gp-service:hover{ transform:translateY(-4px); box-shadow:var(--gp-shadow-lg); }
.gp-service:hover::after{ transform:scaleX(1); }
.gp-service .gp-service-ico{
  width:46px;height:46px;border-radius:10px;flex:0 0 auto;
  display:flex;align-items:center;justify-content:center;
  font-size:1.15rem;
  background:rgba(20,53,95,.07); color:var(--gp-navy);
  border:1px solid var(--gp-border-soft);
}
html[data-bs-theme="dark"] .gp-service .gp-service-ico{ background:rgba(76,127,199,.15); color:#9DBCE8; }
.gp-service .gp-service-title{
  font-family:'Poppins',sans-serif; font-weight:700; font-size:.86rem;
  color:var(--gp-ink); letter-spacing:.02em; text-transform:uppercase;
  margin:0; line-height:1.3;
}
.gp-service .gp-service-count{
  font-family:'Poppins',sans-serif; font-weight:700; font-size:1.35rem;
  color:var(--gp-navy); font-variant-numeric:tabular-nums; line-height:1;
}
html[data-bs-theme="dark"] .gp-service .gp-service-count{ color:#9DBCE8; }
.gp-service .gp-service-count small{ font-size:.66rem; font-weight:700; color:var(--gp-ink-faint); letter-spacing:.08em; }
.gp-service .gp-tagpill{
  font-size:.62rem; font-weight:800; letter-spacing:.06em;
  padding:.28rem .55rem; border-radius:20px;
  background:var(--gp-surface-2); color:var(--gp-ink-faint);
  border:1px solid var(--gp-border-soft);
  white-space:nowrap;
}

/* Mini "today" tile (admin) */
.gp-mini{
  display:flex; align-items:center; justify-content:space-between; gap:.6rem;
  background:var(--gp-surface);
  border:1px solid var(--gp-border);
  border-radius:var(--gp-radius);
  padding:.7rem .85rem;
  height:100%;
  box-shadow:var(--gp-shadow-sm);
  transition:transform var(--gp-fast) var(--gp-ease), box-shadow var(--gp-fast) var(--gp-ease);
}
.gp-mini:hover{ transform:translateY(-2px); box-shadow:var(--gp-shadow); }
.gp-mini .gp-mini-name{ font-size:.74rem; font-weight:700; color:var(--gp-ink-soft); line-height:1.25; }
.gp-mini .gp-mini-val{
  font-family:'Poppins',sans-serif; font-weight:700; font-size:1.05rem;
  color:var(--gp-navy); font-variant-numeric:tabular-nums;
}
html[data-bs-theme="dark"] .gp-mini .gp-mini-val{ color:#9DBCE8; }

/* Section heading row */
.gp-sec{
  display:flex; align-items:center; gap:.7rem;
  margin:1.4rem 0 .8rem;
}
.gp-sec .gp-sec-bar{ width:5px; height:22px; border-radius:3px; background:var(--gp-saffron); }
.gp-sec h6{
  margin:0; font-family:'Poppins',sans-serif; font-weight:700;
  font-size:.86rem; letter-spacing:.1em; text-transform:uppercase; color:var(--gp-ink);
}
.gp-sec .gp-sec-line{ flex:1; height:1px; background:var(--gp-border); }
.gp-sec .badge{ font-size:.62rem; }

/* --------------------------------------------------------------------------
   8. BUTTONS
   -------------------------------------------------------------------------- */
.btn{ border-radius:7px; font-weight:600; transition:all var(--gp-fast) var(--gp-ease); }
.btn:active{ transform:translateY(1px); }
.btn-primary{
  background:var(--gp-navy); border-color:var(--gp-navy);
  box-shadow:0 1px 2px rgba(12,37,69,.25);
}
.btn-primary:hover,.btn-primary:focus{
  background:var(--gp-navy-600); border-color:var(--gp-navy-600);
  box-shadow:0 4px 12px rgba(12,37,69,.28);
}
.btn-outline-primary{ color:var(--gp-navy); border-color:var(--gp-navy); }
.btn-outline-primary:hover{ background:var(--gp-navy); border-color:var(--gp-navy); color:#fff; }
.btn-success{ background:var(--gp-green); border-color:var(--gp-green); }
.btn-success:hover{ background:var(--gp-green-2); border-color:var(--gp-green-2); }
.btn-warning{ background:var(--gp-saffron); border-color:var(--gp-saffron); color:#fff; }
.btn-warning:hover{ background:var(--gp-saffron-2); border-color:var(--gp-saffron-2); color:#fff; }
.btn-info{ background:var(--gp-info); border-color:var(--gp-info); }
.btn-danger{ background:var(--gp-red); border-color:var(--gp-red); }
html[data-bs-theme="dark"] .btn-primary{ background:var(--gp-navy); border-color:var(--gp-navy); }

/* --------------------------------------------------------------------------
   9. FORMS
   -------------------------------------------------------------------------- */
.form-control,.form-select{
  background:var(--gp-surface);
  border:1px solid var(--gp-border);
  color:var(--gp-ink);
  border-radius:7px;
  transition:border-color var(--gp-fast) var(--gp-ease), box-shadow var(--gp-fast) var(--gp-ease);
}
.form-control:focus,.form-select:focus{
  border-color:var(--gp-navy);
  box-shadow:0 0 0 3px rgba(20,53,95,.14);
  background:var(--gp-surface);
  color:var(--gp-ink);
}
html[data-bs-theme="dark"] .form-control:focus,
html[data-bs-theme="dark"] .form-select:focus{ box-shadow:0 0 0 3px rgba(76,127,199,.25); }
.form-label{ color:var(--gp-ink-soft); font-weight:600; }
.input-group-text{ background:var(--gp-surface-2); border-color:var(--gp-border); color:var(--gp-ink-faint); }
.form-check-input:checked{ background-color:var(--gp-navy); border-color:var(--gp-navy); }

/* --------------------------------------------------------------------------
   10. TABLES / LISTS
   -------------------------------------------------------------------------- */
.table{ --bs-table-striped-bg:var(--gp-surface-2); color:var(--gp-ink); border-color:var(--gp-border-soft); }
.table thead th,
.table thead.bg-200 th,
.table .bg-200{
  background:var(--gp-navy-deep) !important;
  color:#fff !important;
  font-weight:700; font-size:.72rem; letter-spacing:.06em; text-transform:uppercase;
  border-color:var(--gp-navy-deep) !important;
}
.table tbody td{ vertical-align:middle; }
.table-hover tbody tr:hover{ background:rgba(20,53,95,.05); }
html[data-bs-theme="dark"] .table-hover tbody tr:hover{ background:rgba(76,127,199,.10); }
.table .badge{ font-weight:700; }

/* DataTables polish */
.dataTables_wrapper .dataTables_paginate .paginate_button.current{
  background:var(--gp-navy) !important; color:#fff !important; border-color:var(--gp-navy) !important; border-radius:6px;
}

/* --------------------------------------------------------------------------
   11. BADGES / ALERTS / MISC COMPONENTS
   -------------------------------------------------------------------------- */
.badge{ border-radius:6px; letter-spacing:.03em; }
.badge-subtle-primary{ background:rgba(20,53,95,.1) !important; color:var(--gp-navy) !important; }
.badge-subtle-success{ background:rgba(27,122,61,.12) !important; color:var(--gp-green) !important; }
.badge-subtle-danger{  background:rgba(176,42,48,.1) !important;  color:var(--gp-red) !important; }
.badge-subtle-warning{ background:rgba(232,118,14,.13) !important; color:#B45A08 !important; }
.badge-subtle-info{    background:rgba(11,110,143,.11) !important; color:var(--gp-info) !important; }
.badge-subtle-secondary{ background:var(--gp-surface-2) !important; color:var(--gp-ink-soft) !important; }
html[data-bs-theme="dark"] .badge-subtle-primary{ color:#9DBCE8 !important; background:rgba(76,127,199,.18) !important; }
html[data-bs-theme="dark"] .badge-subtle-warning{ color:#F5B87B !important; }

.alert{ border-radius:var(--gp-radius); border-width:1px; }
.alert-info{ background:rgba(11,110,143,.08); border-color:rgba(11,110,143,.25); color:var(--gp-ink); }

.dropdown-menu{
  border:1px solid var(--gp-border);
  border-radius:10px;
  box-shadow:var(--gp-shadow-lg);
  overflow:hidden;
  background:var(--gp-surface);
}
.dropdown-item{ font-weight:600; font-size:.85rem; color:var(--gp-ink-soft); transition:background var(--gp-fast) var(--gp-ease), color var(--gp-fast) var(--gp-ease); }
.dropdown-item:hover{ background:var(--gp-surface-2); color:var(--gp-navy); }
html[data-bs-theme="dark"] .dropdown-item:hover{ color:#fff; }
.dropdown-menu .bg-white{ background:var(--gp-surface) !important; }

.modal-content{ border:1px solid var(--gp-border); border-radius:var(--gp-radius-lg); box-shadow:var(--gp-shadow-lg); }

/* SweetAlert harmony */
.swal2-popup{ border-radius:14px !important; font-family:'Open Sans',sans-serif !important; }
.swal2-title{ font-family:'Poppins',sans-serif !important; color:var(--gp-ink) !important; }
.swal2-styled.swal2-confirm{ background:var(--gp-navy) !important; border-radius:7px !important; box-shadow:none !important; }
.swal2-styled.swal2-confirm:focus{ box-shadow:0 0 0 3px rgba(20,53,95,.25) !important; }

/* Offcanvas display panel */
.settings-panel .offcanvas-header{ background:var(--gp-navy-deep); }
.setting-toggle{ border:1px solid var(--gp-border); box-shadow:var(--gp-shadow); border-radius:10px 0 0 10px; }

/* Footer */
.footer{ border-top:1px solid var(--gp-border); margin-top:1.2rem; }
.footer p{ color:var(--gp-ink-faint) !important; }
.gp-footer-mark{ color:var(--gp-ink-faint); font-size:.72rem; letter-spacing:.06em; font-weight:700; }
.gp-footer-mark .dot{ display:inline-block; width:6px;height:6px;border-radius:50%;background:var(--gp-green); margin-right:.35rem; vertical-align:1px; }

/* --------------------------------------------------------------------------
   12. FALCON UTILITY RE-MAPS (used across 90+ existing pages)
   -------------------------------------------------------------------------- */
.text-primary{ color:var(--gp-navy) !important; }
html[data-bs-theme="dark"] .text-primary{ color:#9DBCE8 !important; }
.text-900{ color:var(--gp-ink) !important; }
.text-800{ color:var(--gp-ink) !important; }
.text-700{ color:var(--gp-ink-soft) !important; }
.text-600{ color:var(--gp-ink-faint) !important; }
.text-500{ color:var(--gp-ink-faint) !important; }
.bg-100{ background:var(--gp-surface-2) !important; }
.bg-200{ background:var(--gp-surface-2) !important; }
.bg-light{ background:var(--gp-surface-2) !important; }
.bg-body-tertiary{ background:var(--gp-surface-2) !important; }
.border-200,.border-300{ border-color:var(--gp-border) !important; }
.bg-card-gradient{ background:linear-gradient(160deg,var(--gp-navy) 0%,var(--gp-navy-deep) 100%) !important; }

/* Old inline-blue quick buttons in legacy markup */
a.btn[style*="background-color: #0d6efd"]{ background-color:var(--gp-saffron) !important; }

/* --------------------------------------------------------------------------
   13. RESPONSIVE FINE-TUNING
   -------------------------------------------------------------------------- */
@media (max-width: 1199.98px){
  .navbar-vertical{ box-shadow:var(--gp-shadow-lg); }
}
@media (max-width: 767.98px){
  .gp-hero{ text-align:left; }
  .gp-hero .gp-date-chip{ margin-top:.6rem; }
  .navbar-top .search-box .search-input{ min-width:0; }
  .gp-stat .gp-stat-value{ font-size:1.3rem; }
  .gp-ticker-tag{ font-size:.64rem; padding:0 .6rem; }
}
@media (max-width: 575.98px){
  .content{ padding-left:.35rem; padding-right:.35rem; }
  .gp-topchip{ padding:.4rem .6rem; font-size:.78rem; }
}

/* --------------------------------------------------------------------------
   14. ENTRY MOTION (subtle, professional)
   -------------------------------------------------------------------------- */
@keyframes gp-rise{ from{ opacity:0; transform:translateY(8px);} to{ opacity:1; transform:none;} }
.gp-rise{ animation:gp-rise .4s var(--gp-ease) both; }
.gp-rise-1{ animation-delay:.03s; } .gp-rise-2{ animation-delay:.07s; }
.gp-rise-3{ animation-delay:.11s; } .gp-rise-4{ animation-delay:.15s; }

/* Print safety — never restyle printed output */
@media print{
  .gp-tricolor,.gp-ticker,.setting-toggle{ display:none !important; }
  body{ background:#fff !important; }
}

/* --------------------------------------------------------------------------
   15. AUTH PAGES (login / register / recovery / activation)
   -------------------------------------------------------------------------- */
.gp-auth-body{
  min-height:100vh;
  background:
    radial-gradient(900px 400px at 85% -10%, rgba(232,118,14,.10), transparent 60%),
    radial-gradient(800px 420px at -10% 110%, rgba(27,122,61,.10), transparent 60%),
    var(--gp-bg);
  display:flex; flex-direction:column;
}
.gp-auth-top{
  background:var(--gp-navy-deep);
  color:#fff;
  padding:.55rem 1rem;
  display:flex; align-items:center; justify-content:space-between; gap:1rem;
  font-size:.78rem; font-weight:600;
}
.gp-auth-top .gp-auth-gov{ display:flex; align-items:center; gap:.55rem; letter-spacing:.05em; }
.gp-auth-top a{ color:#F5B87B; text-decoration:none; font-weight:700; }
.gp-auth-top a:hover{ color:#fff; }
.gp-auth-wrap{ flex:1; display:flex; align-items:center; justify-content:center; padding:2rem 1rem; }
.gp-auth-card{
  width:100%; max-width:960px;
  background:var(--gp-surface);
  border:1px solid var(--gp-border);
  border-radius:14px;
  box-shadow:var(--gp-shadow-lg);
  overflow:hidden;
  display:grid; grid-template-columns: 5fr 7fr;
}
.gp-auth-card.gp-auth-narrow{ max-width:520px; grid-template-columns:1fr; }
.gp-auth-side{
  background:linear-gradient(165deg,var(--gp-navy) 0%,var(--gp-navy-deep) 90%);
  color:#fff; padding:2.2rem 1.8rem;
  display:flex; flex-direction:column; position:relative; overflow:hidden;
}
.gp-auth-side::after{
  content:""; position:absolute; right:-90px; bottom:-90px; width:260px;height:260px;border-radius:50%;
  border:30px solid rgba(255,255,255,.06);
}
.gp-auth-emblem{
  width:64px;height:64px;border-radius:14px;background:#fff;
  display:flex;align-items:center;justify-content:center;
  box-shadow:0 6px 18px rgba(0,0,0,.25); margin-bottom:1.1rem;
}
.gp-auth-emblem .fas{ font-size:1.6rem; color:var(--gp-navy); }
.gp-auth-side h4{ color:#fff; font-weight:700; }
.gp-auth-side p{ color:rgba(255,255,255,.78); font-size:.86rem; }
.gp-auth-points{ list-style:none; padding:0; margin:1.2rem 0 0; }
.gp-auth-points li{
  display:flex; gap:.6rem; align-items:flex-start;
  color:rgba(255,255,255,.85); font-size:.8rem; font-weight:600;
  padding:.34rem 0;
}
.gp-auth-points .fas{ color:#F5B87B; margin-top:2px; }
.gp-auth-side .gp-auth-bottom{ margin-top:auto; padding-top:1.4rem; font-size:.78rem; color:rgba(255,255,255,.75); }
.gp-auth-side .gp-auth-bottom a{ color:#F5B87B; font-weight:700; text-decoration:none; }
.gp-auth-side .gp-auth-bottom a:hover{ color:#fff; text-decoration:underline; }
.gp-auth-main{ padding:2.2rem 2rem; }
.gp-auth-main .gp-auth-eyebrow{
  font-size:.68rem; font-weight:800; letter-spacing:.16em; color:var(--gp-saffron); text-transform:uppercase;
}
.gp-auth-main h3{ font-weight:700; color:var(--gp-ink); margin:.25rem 0 .35rem; }
.gp-auth-main .gp-auth-sub{ color:var(--gp-ink-faint); font-size:.86rem; }
.gp-auth-foot{
  text-align:center; padding:1rem; font-size:.75rem; color:var(--gp-ink-faint);
}
@media (max-width: 767.98px){
  .gp-auth-card{ grid-template-columns:1fr; max-width:520px; }
  .gp-auth-side{ padding:1.6rem 1.4rem; }
  .gp-auth-points{ display:none; }
  .gp-auth-main{ padding:1.6rem 1.3rem; }
}
