:root{
  --a4l-ink:#0f2a2e;
  --a4l-teal:#0d7a6f;
  --a4l-teal-600:#0b6a60;
  --a4l-amber:#f0a828;
  --a4l-sand:#f6f4ee;
  --a4l-line:#e6e3da;
  --a4l-sidebar:#0f2a2e;
  --a4l-sidebar-2:#12353a;
  --sidebar-w:260px;
  --topbar-h:64px;
}
*{box-sizing:border-box}
body{
  margin:0;background:var(--a4l-sand);color:#1c2b2b;
  font-family:'Manrope',system-ui,sans-serif;font-size:15px;
}
h1,h2,h3,h4,h5,.brand-word,.logo-text,.page-title{font-family:'Sora',sans-serif}
a{text-decoration:none}
.brand-accent{color:var(--a4l-amber)}

/* ---------- Shell ---------- */
.app-shell{display:flex;min-height:100vh}
.app-main{flex:1;min-width:0;display:flex;flex-direction:column;margin-left:var(--sidebar-w);transition:margin .25s}

/* ---------- Sidebar ---------- */
.sidebar{
  position:fixed;top:0;left:0;bottom:0;width:var(--sidebar-w);z-index:1040;
  background:linear-gradient(180deg,var(--a4l-sidebar),var(--a4l-sidebar-2));
  color:#cfe3e0;display:flex;flex-direction:column;transition:transform .25s;
}
.sidebar-brand{display:flex;align-items:center;gap:.6rem;padding:1.15rem 1.25rem;font-family:'Sora';font-weight:800;font-size:1.15rem;color:#fff;border-bottom:1px solid rgba(255,255,255,.07)}
.logo-mark{width:38px;height:38px;border-radius:11px;background:var(--a4l-amber);color:var(--a4l-ink);display:grid;place-items:center;font-size:1.2rem}
.sidebar-nav{flex:1;overflow-y:auto;padding:.75rem .6rem 1rem}
.nav-section{font-size:.68rem;letter-spacing:.12em;text-transform:uppercase;color:#6f938f;padding:1rem .75rem .35rem;font-weight:700}
.sidebar .nav-link{display:flex;align-items:center;gap:.7rem;color:#bcd6d2;padding:.62rem .8rem;border-radius:10px;font-weight:500;margin-bottom:2px;transition:background .15s,color .15s}
.sidebar .nav-link i{font-size:1.05rem;width:20px;text-align:center}
.sidebar .nav-link:hover{background:rgba(255,255,255,.06);color:#fff}
.sidebar .nav-link.active{background:var(--a4l-teal);color:#fff;box-shadow:0 6px 16px rgba(13,122,111,.35)}
.sidebar .nav-logout:hover{background:rgba(220,53,69,.18);color:#ffb3b3}
.sidebar-foot{padding:.75rem 1.25rem;color:#5f827e;border-top:1px solid rgba(255,255,255,.07);font-size:.75rem}
.sidebar-backdrop{display:none;position:fixed;inset:0;background:rgba(6,20,22,.55);z-index:1035}
.sidebar-backdrop.show{display:block}

/* ---------- Topbar ---------- */
.topbar{height:var(--topbar-h);background:#fff;border-bottom:1px solid var(--a4l-line);display:flex;align-items:center;gap:.75rem;padding:0 1.25rem;position:sticky;top:0;z-index:1020}
.sidebar-toggle{font-size:1.6rem;color:var(--a4l-ink);padding:0;text-decoration:none}
.topbar-title{font-family:'Sora';font-weight:800;color:var(--a4l-ink);font-size:1.1rem}
.topbar-right{margin-left:auto}
.user-chip{display:flex;align-items:center;gap:.55rem;background:var(--a4l-sand);border:1px solid var(--a4l-line);border-radius:999px;padding:.3rem .7rem;color:var(--a4l-ink);font-weight:600}
.user-chip:hover{background:#efeee7}
.avatar{width:32px;height:32px;border-radius:50%;background:var(--a4l-teal);color:#fff;display:grid;place-items:center;font-weight:700}
.uname{font-size:.9rem}
.role-badge{font-size:.62rem;vertical-align:middle;margin-left:.3rem}

/* ---------- Content ---------- */
.app-content{padding:1.5rem 1.75rem 3rem;max-width:1400px;width:100%}
.content-head{display:flex;justify-content:space-between;align-items:flex-end;margin-bottom:1.25rem;gap:1rem;flex-wrap:wrap}
.page-title{font-size:1.6rem;font-weight:800;margin:0;color:var(--a4l-ink)}
.breadcrumb{font-size:.82rem}
.breadcrumb a{color:var(--a4l-teal)}
.flash-stack{margin-bottom:1rem}

/* ---------- Cards & stats ---------- */
.card{border:1px solid var(--a4l-line);border-radius:16px;box-shadow:0 1px 2px rgba(15,42,46,.04)}
.card-header{background:#fff;border-bottom:1px solid var(--a4l-line);font-family:'Sora';font-weight:700;border-radius:16px 16px 0 0!important}
.stat-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:1rem;margin-bottom:1.5rem}
.stat-card{background:#fff;border:1px solid var(--a4l-line);border-radius:16px;padding:1.15rem 1.25rem;display:flex;align-items:center;gap:1rem;transition:transform .15s,box-shadow .15s}
.stat-card:hover{transform:translateY(-3px);box-shadow:0 12px 26px rgba(15,42,46,.09)}
.stat-icon{width:52px;height:52px;border-radius:14px;display:grid;place-items:center;font-size:1.5rem;flex-shrink:0}
.stat-num{font-family:'Sora';font-size:1.7rem;font-weight:800;line-height:1;color:var(--a4l-ink)}
.stat-label{color:#6b7d7b;font-size:.82rem;margin-top:.25rem}
.si-teal{background:rgba(13,122,111,.12);color:var(--a4l-teal)}
.si-amber{background:rgba(240,168,40,.16);color:#c47f0c}
.si-blue{background:rgba(30,120,200,.12);color:#1e78c8}
.si-rose{background:rgba(220,53,69,.12);color:#d6455a}
.si-violet{background:rgba(120,80,200,.12);color:#7a54cd}
.si-green{background:rgba(40,167,69,.12);color:#28a745}

/* ---------- Tables ---------- */
.table thead th{background:var(--a4l-sand);color:#425553;font-family:'Sora';font-size:.78rem;letter-spacing:.03em;text-transform:uppercase;border-bottom:2px solid var(--a4l-line)}
.table td{vertical-align:middle}
.thumb{width:56px;height:44px;object-fit:cover;border-radius:8px;border:1px solid var(--a4l-line)}
.btn-teal{background:var(--a4l-teal);border-color:var(--a4l-teal);color:#fff}
.btn-teal:hover{background:var(--a4l-teal-600);border-color:var(--a4l-teal-600);color:#fff}
.btn-outline-teal{border-color:var(--a4l-teal);color:var(--a4l-teal)}
.btn-outline-teal:hover{background:var(--a4l-teal);color:#fff}
a.btn,.btn{border-radius:10px;font-weight:600}
.badge{font-weight:600;border-radius:8px}

/* ---------- Gallery ---------- */
.gallery-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:1.1rem}
.gal-card{background:#fff;border:1px solid var(--a4l-line);border-radius:14px;overflow:hidden;transition:transform .15s,box-shadow .15s}
.gal-card:hover{transform:translateY(-4px);box-shadow:0 14px 30px rgba(15,42,46,.12)}
.gal-thumb{position:relative;aspect-ratio:4/3;overflow:hidden;cursor:pointer;background:#eceae2}
.gal-thumb img{width:100%;height:100%;object-fit:cover;transition:transform .3s}
.gal-card:hover .gal-thumb img{transform:scale(1.06)}
.gal-body{padding:.7rem .8rem}
.gal-cat{font-family:'Sora';font-weight:700;font-size:.9rem;color:var(--a4l-ink)}
.gal-meta{font-size:.72rem;color:#8a9b99;margin-top:.15rem}
.gal-actions{display:flex;gap:.4rem;margin-top:.55rem}

/* ---------- Login ---------- */
.login-wrap{min-height:100vh;display:grid;grid-template-columns:1.1fr .9fr}
.login-hero{position:relative;background:linear-gradient(160deg,#0f2a2e,#0d7a6f);color:#fff;padding:3rem;display:flex;flex-direction:column;justify-content:space-between;overflow:hidden}
.login-hero .hero-badge{display:inline-flex;align-items:center;gap:.5rem;background:rgba(255,255,255,.12);padding:.4rem .9rem;border-radius:999px;font-weight:600;width:fit-content}
.login-hero h2{font-size:2.4rem;font-weight:800;line-height:1.1;margin:1.5rem 0 1rem}
.login-hero .glow{position:absolute;width:380px;height:380px;border-radius:50%;background:radial-gradient(circle,rgba(240,168,40,.35),transparent 70%);top:-80px;right:-80px}
.login-form-side{display:flex;align-items:center;justify-content:center;padding:2rem;background:var(--a4l-sand)}
.login-card{width:100%;max-width:400px}
.login-card .logo-mark{width:52px;height:52px;font-size:1.6rem;border-radius:14px}
.input-eye{cursor:pointer}
@media(max-width:860px){.login-wrap{grid-template-columns:1fr}.login-hero{display:none}}

/* ---------- Responsive ---------- */
@media(max-width:991.98px){
  .app-main{margin-left:0}
  .sidebar{transform:translateX(-100%)}
  .sidebar.open{transform:translateX(0)}
}

.blog-content-view img{max-width:100%;height:auto;border-radius:10px}
.blog-content-view{line-height:1.7}
.empty-state{text-align:center;padding:3rem 1rem;color:#8a9b99}
.empty-state i{font-size:3rem;opacity:.5}
