:root{
    --navy:#101d2c;
    --navy-dark:#07111f;
    --red:#d91032;
    --red-dark:#b50724;
    --muted:#b8c0cc;
    --card:#122337;
    --border:rgba(255,255,255,.12);
}
body{
    background: radial-gradient(circle at left, #24152b 0, var(--navy-dark) 42%, #0c1b24 100%);
    color:#fff;
    min-height:100vh;
    font-family: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}
.portal-header{background:#0e1b2a;border-bottom:1px solid var(--border)}
.logo-box{width:64px;height:64px;border-radius:6px;background:#fff;color:var(--red);font-weight:800;display:flex;align-items:center;justify-content:center;letter-spacing:.08em}
.brand-title{font-weight:700;font-size:18px}
.brand-subtitle{color:var(--muted);letter-spacing:.12em;text-transform:uppercase;font-size:11px}
.navbar .nav-link{font-weight:600;color:#d6dbe3!important}
.navbar .nav-link.active,.navbar .nav-link:hover{color:#fff!important}
.portal-btn{font-weight:700;border-radius:6px;padding:10px 20px;background:var(--red);border-color:var(--red)}
.portal-btn:hover{background:var(--red-dark);border-color:var(--red-dark)}
.alert-strip{background:var(--red);color:#fff;text-align:center;font-weight:700;padding:12px 15px}
.login-wrap,.page-wrap{padding:60px 0}
.login-card,.portal-card{background:rgba(18,35,55,.88);border:1px solid var(--border);border-radius:18px;box-shadow:0 20px 45px rgba(0,0,0,.25)}
.login-card{max-width:470px;margin:auto;padding:34px}
.form-control,.form-select{background:#0b1726;border:1px solid var(--border);color:#fff;border-radius:10px;padding:12px 14px}
.form-control:focus,.form-select:focus{background:#0b1726;color:#fff;border-color:var(--red);box-shadow:0 0 0 .2rem rgba(217,16,50,.18)}
.form-control::placeholder{color:#8f99a8}
.section-title{font-family: Georgia, serif;font-size:36px;font-weight:800}
.text-muted-light{color:var(--muted)}
.stat-card{padding:24px;border-radius:16px;background:rgba(255,255,255,.04);border:1px solid var(--border);height:100%}
.quick-card{display:block;text-decoration:none;color:#fff;padding:24px;border-radius:18px;background:linear-gradient(135deg, rgba(255,255,255,.06), rgba(255,255,255,.02));border:1px solid var(--border);height:100%;transition:.2s}
.quick-card:hover{transform:translateY(-3px);border-color:rgba(217,16,50,.7);color:#fff}
.quick-card i{font-size:28px;color:var(--red)}
.profile-photo{width:86px;height:86px;border-radius:50%;object-fit:cover;border:3px solid rgba(255,255,255,.25)}
.badge-readonly{background:rgba(217,16,50,.15);border:1px solid rgba(217,16,50,.5);color:#fff}
.portal-footer{padding:25px 0;color:var(--muted);border-top:1px solid var(--border);margin-top:40px}
.table-darkish{--bs-table-bg:rgba(18,35,55,.9);--bs-table-color:#fff;--bs-table-border-color:rgba(255,255,255,.1)}
.form-select option{background:#0b1726;color:#fff}
.readonly-note{font-size:13px;color:var(--muted)}

/* v5 additions */
.portal-logo{
    width:64px;
    height:64px;
    object-fit:contain;
    background:#fff;
    border-radius:8px;
    padding:4px;
}
.forum-image-thumb{
    width:100%;
    height:260px;
    object-fit:cover;
    cursor:pointer;
    border-radius:18px;
    border:1px solid rgba(255,255,255,.12);
}
.modal-content.dark-modal{
    background:#102133;
    color:#fff;
    border:1px solid rgba(255,255,255,.15);
}
.modal-image-full{
    width:100%;
    max-height:82vh;
    object-fit:contain;
    background:#000;
}
@media(max-width:768px){
    .portal-logo{width:52px;height:52px;}
    .forum-image-thumb{height:190px;}
}

/* Header font size adjustment */
.portal-header .navbar .nav-link,
.portal-header .nav-link,
.portal-header a.nav-link,
.admin-header .navbar .nav-link,
.admin-header .nav-link,
.admin-header a.nav-link {
    font-size: 13px !important;
    line-height: 1.25 !important;
    font-weight: 600 !important;
    padding-left: 10px !important;
    padding-right: 10px !important;
}

.portal-header .brand-title,
.admin-header .brand-title,
.portal-brand-title,
.admin-brand-title {
    font-size: 17px !important;
    line-height: 1.2 !important;
}

.portal-header .brand-subtitle,
.admin-header .brand-subtitle,
.portal-brand-subtitle,
.admin-brand-subtitle {
    font-size: 10px !important;
    letter-spacing: 1.4px !important;
}

.portal-header .portal-logo,
.admin-header .portal-logo {
    width: 58px !important;
    height: 58px !important;
}

.portal-header .btn,
.admin-header .btn,
.portal-header .portal-btn,
.admin-header .portal-btn {
    font-size: 13px !important;
    padding: 9px 16px !important;
}

.alert-strip {
    font-size: 14px !important;
    padding: 10px 15px !important;
}

@media (max-width: 1200px) {
    .portal-header .navbar .nav-link,
    .admin-header .navbar .nav-link {
        font-size: 12px !important;
        padding-left: 7px !important;
        padding-right: 7px !important;
    }
}
