:root {
    --sqh-500: #5aac74;
    --sqh-600: #46905e;
    --sqh-700: #38724b;
    --sqh-800: #2e5a3d;
    --sqh-900: #234631;
    --sqh-50:  #f2faf4;
    --sqh-100: #e2f4e7;
    --sqh-text: #2c3a32;
    --sqh-muted: #647268;
}

* { box-sizing: border-box; }

body {
    font-family: 'Prompt', system-ui, sans-serif;
    background: #f4f7f5;
    color: var(--sqh-text);
}

/* ---------- Nav ---------- */
.admin-nav {
    background: var(--sqh-800);
    color: #eaf5ec;
    padding: 0.6rem 0;
    box-shadow: 0 2px 12px rgba(35, 70, 49, 0.18);
}
.admin-brand {
    display: flex;
    align-items: center;
    gap: 0.55rem;
    color: #fff;
    font-weight: 600;
    text-decoration: none;
}
.admin-nav-links { display: flex; gap: 0.35rem; margin-left: 1rem; }
.admin-nav-links a {
    color: #d6ebda;
    text-decoration: none;
    padding: 0.35rem 0.75rem;
    border-radius: 0.5rem;
    font-size: 0.94rem;
}
.admin-nav-links a:hover { background: rgba(255,255,255,0.12); color: #fff; }
.admin-nav-links a.active { background: var(--sqh-500); color: #fff; }
.admin-user { color: #d6ebda; font-size: 0.9rem; }
.admin-view-site { color: #d6ebda; font-size: 0.88rem; text-decoration: none; }
.admin-view-site:hover { color: #fff; text-decoration: underline; }

.admin-main { padding: 2rem 1rem 3rem; max-width: 960px; }

.admin-footer {
    padding: 1.5rem 0;
    text-align: center;
    color: var(--sqh-muted);
    font-size: 0.85rem;
}

/* ---------- Headings ---------- */
.page-title { font-weight: 600; color: var(--sqh-900); margin-bottom: 0.25rem; }
.page-sub { color: var(--sqh-muted); margin-bottom: 1.75rem; }

/* ---------- Cards / menu hub ---------- */
.hub-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(240px, 1fr));
    gap: 1.1rem;
}
.hub-card {
    display: block;
    background: #fff;
    border: 1px solid #e3ebe5;
    border-radius: 0.9rem;
    padding: 1.4rem;
    text-decoration: none;
    color: var(--sqh-text);
    transition: transform .15s, box-shadow .15s, border-color .15s;
}
.hub-card:hover {
    transform: translateY(-3px);
    box-shadow: 0 12px 28px -14px rgba(35,70,49,0.35);
    border-color: var(--sqh-300, #a3d9b3);
    color: var(--sqh-text);
}
.hub-icon {
    width: 46px; height: 46px;
    display: grid; place-items: center;
    border-radius: 0.7rem;
    background: var(--sqh-100);
    color: var(--sqh-700);
    font-size: 1.35rem;
    margin-bottom: 0.9rem;
}
.hub-card h5 { font-weight: 600; margin-bottom: 0.3rem; color: var(--sqh-900); }
.hub-card p { margin: 0; font-size: 0.9rem; color: var(--sqh-muted); }

/* ---------- Forms ---------- */
.admin-panel {
    background: #fff;
    border: 1px solid #e3ebe5;
    border-radius: 0.9rem;
    padding: 1.75rem;
}
.form-label { font-weight: 500; color: var(--sqh-800); }
.form-text { color: var(--sqh-muted); }
.btn-sqh {
    background: var(--sqh-600);
    border-color: var(--sqh-600);
    color: #fff;
}
.btn-sqh:hover { background: var(--sqh-700); border-color: var(--sqh-700); color: #fff; }

/* ---------- Login ---------- */
.login-wrap {
    min-height: 100vh;
    display: grid;
    place-items: center;
    padding: 2rem 1rem;
    background: linear-gradient(160deg, var(--sqh-50), #e8f3ea 60%, #dcecdf);
}
.login-card {
    width: 100%;
    max-width: 400px;
    background: #fff;
    border-radius: 1rem;
    padding: 2.25rem;
    box-shadow: 0 20px 50px -20px rgba(35,70,49,0.35);
}
.login-card img { display: block; margin: 0 auto 1rem; }
.login-card h1 { font-size: 1.3rem; font-weight: 600; text-align: center; color: var(--sqh-900); }
.login-card .sub { text-align: center; color: var(--sqh-muted); font-size: 0.9rem; margin-bottom: 1.5rem; }

/* ---------- Publication list ---------- */
.pub-row {
    display: flex;
    gap: 1rem;
    align-items: center;
    background: #fff;
    border: 1px solid #e3ebe5;
    border-radius: 0.8rem;
    padding: 0.9rem 1.1rem;
    margin-bottom: 0.8rem;
}
.pub-row img {
    width: 90px; height: 60px;
    object-fit: cover;
    border-radius: 0.45rem;
    background: #eef3ef;
    flex-shrink: 0;
}
.pub-row .pub-meta { flex: 1; min-width: 0; }
.pub-row .pub-meta h6 { margin: 0 0 0.15rem; font-weight: 600; }
.pub-row .pub-meta span { color: var(--sqh-muted); font-size: 0.85rem; }
.badge-draft { background: #b9433f; }
