:root{
  --gpr-green:#18a558;
  --gpr-green-dark:#0d7a3d;
  --gpr-slate:#0f172a;
  --gpr-muted:#64748b;
  --gpr-border:#e5e7eb;
  --gpr-bg:#f6f8fb;
}

html,body{height:100%;}
body{
  background:var(--gpr-bg);
  color:#0b1220;
}

.gpr-shell{
  min-height:100vh;
  display:flex;
  flex-direction:column;
}

.gpr-topbar{
  background:linear-gradient(90deg, #0b1220, #0b1220 60%, #0f1f16);
  border-bottom:1px solid rgba(255,255,255,.08);
}

.gpr-brand{
  display:flex;
  align-items:center;
  gap:.65rem;
  text-decoration:none;
}

.gpr-brand img{
  height:38px;
  width:auto;
}

.gpr-brand .brand-text{
  line-height:1.05;
  color:#fff;
}

.gpr-brand .brand-text .name{
  font-weight:700;
  letter-spacing:.2px;
}
.gpr-brand .brand-text .tag{
  font-size:.78rem;
  color:rgba(255,255,255,.7);
}

.gpr-nav a{
  color:rgba(255,255,255,.86);
  text-decoration:none;
  padding:.45rem .7rem;
  border-radius:.6rem;
  font-weight:600;
  font-size:.92rem;
}
.gpr-nav a:hover{
  background:rgba(255,255,255,.08);
  color:#fff;
}
.gpr-nav a.active{
  background:rgba(24,165,88,.18);
  outline:1px solid rgba(24,165,88,.35);
  color:#fff;
}

.gpr-content{
  flex:1;
  padding:1.25rem 0 2rem;
}

.gpr-card{
  border:1px solid var(--gpr-border);
  border-radius:1rem;
  box-shadow:0 10px 25px rgba(15,23,42,.05);
}

.gpr-card .card-header{
  background:#fff;
  border-bottom:1px solid var(--gpr-border);
  border-top-left-radius:1rem;
  border-top-right-radius:1rem;
}

.btn-gpr{
  background:var(--gpr-green);
  border-color:var(--gpr-green);
  color:#fff;
  font-weight:700;
}
.btn-gpr:hover{
  background:var(--gpr-green-dark);
  border-color:var(--gpr-green-dark);
  color:#fff;
}

.badge-soft{
  background:rgba(24,165,88,.12);
  color:var(--gpr-green-dark);
  border:1px solid rgba(24,165,88,.25);
  font-weight:700;
}

.table thead th{
  font-size:.82rem;
  color:#334155;
  text-transform:uppercase;
  letter-spacing:.06em;
  border-bottom:1px solid var(--gpr-border);
}
.table tbody td{
  vertical-align:middle;
}

.gpr-footer{
  padding:1rem 0;
  color:var(--gpr-muted);
  font-size:.9rem;
}

#gpr-logo-hero {
  animation: float 4s ease-in-out infinite;
}
@keyframes float {
  0%{transform:translateY(0)}
  50%{transform:translateY(-6px)}
  100%{transform:translateY(0)}
}
/* Modern navbar tweaks */
.navbar .nav-link{
  color:rgba(255,255,255,.86);
  border-radius:.7rem;
  padding:.5rem .75rem;
  font-weight:650;
  font-size:.92rem;
}
.navbar .nav-link:hover{
  background:rgba(255,255,255,.08);
  color:#fff;
}
.navbar .nav-link.active{
  background:rgba(24,165,88,.18);
  outline:1px solid rgba(24,165,88,.35);
  color:#fff;
}
.navbar-toggler{
  border-color:rgba(255,255,255,.18);
}
#photoModal .modal-content { border-radius: 14px; overflow: hidden; }
#photoModal .modal-header { background: #fff; }

.gpr-photo img { cursor: zoom-in; }
.gpr-photo:focus { outline: none !important; box-shadow: none !important; }

.photo-nav-btn{
  position:absolute;
  top:50%;
  transform:translateY(-50%);
  background:rgba(0,0,0,.45);
  color:#fff;
  border:0;
  font-size:46px;
  width:56px;
  height:56px;
  border-radius:50%;
  display:flex;
  align-items:center;
  justify-content:center;
  cursor:pointer;
  z-index:10;
}
.photo-nav-btn:hover{
  background:rgba(0,0,0,.65);
}
.photo-nav-btn.start-0{ left:12px; }
.photo-nav-btn.end-0{ right:12px; }

