:root{
  --bg:#f7f8fa;
  --card:#ffffff;
  --line:#e6ebf0;
  --muted:#7b8794;
  --ink:#2b2f36;
  --brand:#10b981;
  --brand-2:#2fff8b;
  --brand-ink:#0ea874;
  --shadow-sm:0 1px 2px rgba(16,24,40,.06), 0 1px 1px rgba(16,24,40,.03);
  --shadow-md:0 6px 20px rgba(16,24,40,.08);
}

body{ background:var(--bg); }
.navbar-brand img{ vertical-align:middle; }
.navbar{ font-size:1.1rem; letter-spacing:.03em; }
footer{ font-size:.97rem; }

.btn{ border-radius:.66rem; }
.btn-success{
  background:linear-gradient(90deg,var(--brand-2) 0%,var(--brand) 100%);
  border:none; color:#fff; font-weight:700;
  box-shadow:0 2px 12px rgba(16,185,129,.12);
  transition:background .18s, transform .14s, box-shadow .14s;
}
.btn-success:hover{
  background:linear-gradient(90deg,var(--brand) 0%,var(--brand-2) 100%);
  transform:translateY(-1px) scale(1.03);
  color:#fff; box-shadow:0 8px 28px rgba(16,185,129,.18);
}

.quicklink-card{
  display:block; background:#f5f8fc; padding:1.2rem .8rem; border-radius:1.1rem;
  text-decoration:none; color:#197247; box-shadow:var(--shadow-sm); transition:.15s;
}
.quicklink-card:hover{ background:#e0f8ea; color:var(--brand); transform:translateY(-2px) scale(1.04); }
.calendar-day{ background:#f9fafc; min-height:56px; box-shadow:0 1px 6px #eee; font-size:1.07rem; }

.admin-layout{ display:flex; min-height:100vh; }
.sidebar{
  width:248px; background:linear-gradient(180deg,#fbfcfe 0%, #f6f8fb 100%);
  border-right:1px solid var(--line);
  padding:1.25rem 1rem 2rem; min-height:100vh; position:sticky; top:0;
  overflow-y:auto; overscroll-behavior:contain;
}
.sidebar .nav-link{
  color:var(--ink); margin-bottom:.25rem; font-size:1.02rem; border-radius:.7rem;
  display:flex; align-items:center; gap:.55rem; padding:.56rem .7rem;
  transition:.15s ease; box-shadow:inset 0 0 0 1px transparent;
}
.sidebar .nav-link .bi{ font-size:1.06rem; }
.sidebar .nav-link:hover{
  background:#eaf7f1; color:var(--brand-ink) !important;
  box-shadow:inset 0 0 0 1px rgba(16,185,129,.22);
}
.sidebar .nav-link.active{ background:var(--brand); color:#fff !important; font-weight:600; box-shadow:none; }

.sidebar-section{ margin:1.15rem 0 .55rem; }
.sidebar-heading{
  font-size:.72rem; letter-spacing:.08em; text-transform:uppercase;
  color:var(--muted); margin:0 0 .35rem .35rem; font-weight:800;
  display:flex; align-items:center; gap:.45rem; user-select:none;
}
.sidebar-heading::before{ content:""; width:6px; height:6px; border-radius:50%; background:#c8d1db; display:inline-block; }
.sidebar hr{ margin:.9rem 0; opacity:.15; }

.sidebar-group{ border-left:2px solid transparent; padding-left:.35rem; }
.sidebar-group.show{ border-left-color:#d8efe5; }

.user-chip{ font-size:.9rem; color:#4a5568; }
.user-chip .role-badge{ font-size:.72rem; }

.main-content{ flex:1 1 auto; padding:2rem 2.2rem; min-width:0; }

.table thead th{ font-weight:700; letter-spacing:.01em; }
.table td, .table th{ vertical-align:middle; }

.card{
  border-radius:16px; border:1px solid #eef2f6; box-shadow:var(--shadow-sm);
  background:var(--card);
}

.form-control, .form-select{ border-radius:.66rem; border-color:#e7ecf2; }
.form-control:focus, .form-select:focus{
  border-color:rgba(16,185,129,.45); box-shadow:0 0 0 .2rem rgba(16,185,129,.12);
}

.nav-link .badge{ margin-left:auto; }
.navbar-toggler{ border:none; }

@media (max-width: 700px){
  .hero h1{ font-size:2rem; }
  .admin-layout{ flex-direction:column; }
  .sidebar{
    width:100%; min-height:auto; border-right:none; border-bottom:1px solid var(--line);
    position:static; padding:1rem; max-height:55vh;
  }
  .main-content{ padding:1rem .75rem; }
  .sidebar .nav-link{ padding:.5rem .65rem; }
}

@media (max-width: 600px){
  .hero-card, .hero-content{ padding:1.1rem .5rem; max-width:100vw; margin:0 auto; }
  .hero-card h1{ font-size:1.6rem; }
  .hero-btn, .btn{ width:100%; margin-bottom:.6rem; font-size:1.05rem; padding:.85rem 0; }
  .quick-info{ flex-direction:column !important; gap:.7rem; }
}

.sidebar-heading .chev{ margin-left:auto; transition:transform .18s ease; }
.sidebar-heading[aria-expanded="true"] .chev{ transform:rotate(180deg); }

body.sidebar-collapsed .sidebar{ width:76px; padding:1rem .5rem; }
body.sidebar-collapsed .sidebar .nav-link{ justify-content:center; }
body.sidebar-collapsed .sidebar .nav-link .label{ display:none; }
body.sidebar-collapsed .sidebar .sidebar-heading{ display:none; }
body.sidebar-collapsed .sidebar hr{ display:none; }

/* Táblázat-kártya kerettel (külső szegély + lekerekítés) */
.table-card{
  border:1px solid #e7ecf2;
  border-radius:12px;
  overflow:hidden;
  box-shadow:var(--shadow-sm);
}
.table-card .table thead th{ background:#f9fbfd; }
.table-card .table td, .table-card .table th{ padding:.55rem .75rem; }


/* =========================================================
   Admin egységesítés - 2. lépés
   Csak megjelenési réteg: a PHP működési logikához nem nyúl.
   ========================================================= */
html,
body {
  min-height: 100%;
}

body {
  color: var(--ink);
}

.sidebar .brand {
  font-size: 1.05rem;
}

/* Login / jelszó-visszaállító oldalak */
.admin-login-body {
  min-height: 100vh;
  display: flex;
  flex-direction: column;
  background: var(--bg);
}

.admin-login-navbar .navbar-brand {
  color: var(--ink);
  letter-spacing: 0;
}

.admin-login-main {
  flex: 1 0 auto;
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 80vh;
  width: 100%;
  padding: 1.5rem;
}

.admin-login-main > .container,
.admin-login-main > .row,
.admin-login-main > .card {
  width: 100%;
}

/* Bootstrap modal fixek központi helyen */
.modal {
  --bs-modal-bg: #fff;
  --bs-modal-border-color: #e7ecf2;
  --bs-modal-border-width: 1px;
  --bs-modal-border-radius: .65rem;
  --bs-modal-box-shadow: 0 .75rem 1.5rem rgba(0,0,0,.25);
}

.modal-content {
  background-color: var(--bs-modal-bg) !important;
  border: var(--bs-modal-border-width) solid var(--bs-modal-border-color);
  border-radius: var(--bs-modal-border-radius);
  box-shadow: var(--bs-modal-box-shadow);
}

.modal-backdrop.show {
  opacity: .5;
}

.modal-title {
  font-weight: 700;
}

/* Táblázatoszlopok */
.admin-col-id { width: 70px; }
.admin-col-date { width: 160px; }
.admin-col-version { width: 120px; }
.admin-col-kind { width: 110px; }
.admin-col-link { width: 220px; }
.admin-col-actions { width: 140px; }

/* Dashboard kártyák */
.admin-stat-icon {
  font-size: 1.3rem;
  margin-right: .5rem;
  line-height: 1;
}

.admin-stat-icon-sm {
  font-size: 1.2rem;
}

.admin-stat-icon-success {
  color: #16a34a;
}

.admin-stat-icon-primary {
  color: #0d6efd;
}

.admin-stat-title {
  font-size: 1.1rem;
}

.admin-card-title {
  font-size: 1.05rem;
}

.admin-tight-text {
  line-height: 1.1;
}

/* Görgethető admin panel, fix magasság helyett központi osztállyal */
.admin-scroll-panel {
  max-height: 70vh;
  overflow: auto;
}

.admin-round-select {
  max-width: 200px;
}

@media (max-width: 700px) {
  .admin-login-main {
    min-height: calc(100vh - 72px);
    padding: 1rem .75rem;
  }

  .admin-col-date,
  .admin-col-version,
  .admin-col-kind,
  .admin-col-link,
  .admin-col-actions {
    width: auto;
  }
}
