/* LIBAC Unified Responsive Design System — 2026 */
:root {
    --libac-primary: #0056b3;
    --libac-primary-dark: #003f84;
    --libac-primary-soft: #eaf3fc;
    --libac-secondary: #c5a059;
    --libac-secondary-dark: #987331;
    --libac-navy: #102f4a;
    --libac-ink: #172b3d;
    --libac-muted: #627386;
    --libac-surface: #ffffff;
    --libac-surface-soft: #f5f8fb;
    --libac-canvas: #edf3f8;
    --libac-border: #dce5ed;
    --libac-success: #16865c;
    --libac-warning: #b77812;
    --libac-danger: #c53c45;
    --libac-info: #176b9f;
    --libac-radius-sm: 10px;
    --libac-radius: 16px;
    --libac-radius-lg: 24px;
    --libac-shadow-sm: 0 4px 16px rgba(16, 47, 74, .07);
    --libac-shadow: 0 14px 38px rgba(16, 47, 74, .11);
    --libac-shadow-lg: 0 28px 70px rgba(16, 47, 74, .16);
    --libac-ease: cubic-bezier(.2, .8, .2, 1);
    --libac-container: 1240px;
    --libac-sidebar: 280px;
    --libac-safe-top: env(safe-area-inset-top, 0px);
    --libac-safe-right: env(safe-area-inset-right, 0px);
    --libac-safe-bottom: env(safe-area-inset-bottom, 0px);
    --libac-safe-left: env(safe-area-inset-left, 0px);
}

*, *::before, *::after { box-sizing: border-box; }

html {
    min-width: 320px;
    scroll-behavior: smooth;
    -webkit-text-size-adjust: 100%;
}

body.libac-ui {
    margin: 0;
    color: var(--libac-ink);
    background: var(--libac-surface-soft);
    font-family: "Cairo", system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
    line-height: 1.7;
    text-rendering: optimizeLegibility;
    overflow-x: visible;
}

body.libac-ui img { max-width: 100%; }
body.libac-ui a { text-underline-offset: 3px; }
body.libac-ui button,
body.libac-ui input,
body.libac-ui select,
body.libac-ui textarea { font: inherit; }

body.libac-ui :where(button, a, input, select, textarea, [tabindex]):focus-visible {
    outline: 3px solid rgba(197, 160, 89, .55) !important;
    outline-offset: 3px;
}

body.libac-ui ::selection { color: #fff; background: var(--libac-primary); }

body.libac-ui .container {
    width: min(100% - 40px, var(--libac-container));
    margin-inline: auto;
}

/* Public header and navigation */
body.libac-public #main-header,
body.libac-public .site-header {
    position: sticky;
    inset-block-start: 0;
    z-index: 1000;
    min-height: 82px;
    background: rgba(255, 255, 255, .94);
    border-bottom: 1px solid rgba(16, 47, 74, .08);
    box-shadow: 0 2px 16px rgba(16, 47, 74, .04);
    backdrop-filter: blur(18px) saturate(145%);
    transition: box-shadow .25s ease, min-height .25s ease;
}

body.libac-public #main-header.is-scrolled,
body.libac-public .site-header.is-scrolled {
    min-height: 70px;
    box-shadow: 0 10px 30px rgba(16, 47, 74, .1);
}

body.libac-public .navbar {
    min-height: inherit;
    display: flex;
    align-items: center;
    gap: 24px;
}

body.libac-public .logo {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    flex: 0 0 auto;
    color: var(--libac-navy);
    text-decoration: none;
    font-weight: 900;
    letter-spacing: .04em;
}

body.libac-public .logo img {
    width: 54px !important;
    height: 54px !important;
    object-fit: contain;
    filter: drop-shadow(0 5px 8px rgba(16, 47, 74, .12));
}

body.libac-public .logo-text { font-size: 1.22rem; }
body.libac-public .navbar > nav { margin-inline-start: auto; min-width: 0; }

body.libac-public .nav-links {
    margin: 0;
    padding: 0;
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 3px;
    list-style: none;
}

body.libac-public .nav-links a {
    min-height: 42px;
    padding: 9px 11px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 7px;
    border-radius: 10px;
    color: #30465a;
    text-decoration: none;
    white-space: nowrap;
    font-size: .86rem;
    font-weight: 700;
    transition: color .2s ease, background .2s ease, transform .2s ease;
}

body.libac-public .nav-links a:hover,
body.libac-public .nav-links a.active {
    color: var(--libac-primary);
    background: var(--libac-primary-soft);
}

body.libac-public .nav-links .btn-nav,
body.libac-public .nav-links .login-highlight {
    color: #fff !important;
    background: linear-gradient(135deg, var(--libac-primary), #0877c6) !important;
    box-shadow: 0 8px 18px rgba(0, 86, 179, .2);
}

body.libac-public .nav-links .btn-decisions {
    color: #6d501d;
    background: #fbf5e9;
}

body.libac-public .staff-login-btn {
    width: 42px;
    padding-inline: 0 !important;
    color: #fff !important;
    background: var(--libac-navy) !important;
}

body.libac-public .menu-toggle {
    width: 46px;
    height: 46px;
    margin-inline-start: auto;
    border: 1px solid var(--libac-border);
    border-radius: 12px;
    color: var(--libac-primary);
    background: #fff;
    box-shadow: var(--libac-shadow-sm);
}

/* Public heroes and page headers */
body.libac-public .hero { min-height: clamp(560px, 74vh, 780px); }

body.libac-public .hero-overlay,
body.libac-public .page-header-overlay {
    background: linear-gradient(90deg, rgba(8, 29, 48, .62), rgba(8, 44, 75, .78));
}

body.libac-public .hero-content {
    width: min(100% - 40px, 900px);
    margin-inline: auto;
    text-align: center;
}

body.libac-public .hero-content h1 {
    margin: 14px 0 16px;
    color: #fff;
    font-size: clamp(2.15rem, 5.4vw, 4.5rem);
    line-height: 1.15;
    letter-spacing: -.035em;
    text-shadow: 0 5px 24px rgba(0, 0, 0, .22);
}

body.libac-public .hero-content p {
    max-width: 760px;
    margin-inline: auto;
    color: rgba(255,255,255,.9);
    font-size: clamp(1rem, 1.8vw, 1.28rem);
}

body.libac-public .hero-badge {
    display: inline-flex;
    padding: 8px 16px;
    border: 1px solid rgba(255,255,255,.28);
    border-radius: 999px;
    color: #fff3ce;
    background: rgba(255,255,255,.1);
    backdrop-filter: blur(10px);
}

body.libac-public .hero-btns {
    display: flex;
    justify-content: center;
    flex-wrap: wrap;
    gap: 12px;
    margin-top: 30px;
}

body.libac-public :where(.hero-btns, .cta-buttons) .btn {
    min-height: 50px;
    padding: 12px 22px;
    border-radius: 12px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 9px;
    font-weight: 800;
    transition: transform .2s ease, box-shadow .2s ease;
}

body.libac-public :where(.hero-btns, .cta-buttons) .btn:hover { transform: translateY(-2px); }

body.libac-public .page-header {
    min-height: clamp(260px, 32vw, 390px);
    padding: 70px 20px;
    display: grid;
    place-items: center;
    position: relative;
    overflow: hidden;
    color: #fff;
    background-color: var(--libac-navy);
}

body.libac-public .page-header::after {
    content: "";
    position: absolute;
    inset: auto -80px -140px auto;
    width: 340px;
    height: 340px;
    border: 1px solid rgba(197, 160, 89, .25);
    border-radius: 50%;
    box-shadow: 0 0 0 60px rgba(197, 160, 89, .05), 0 0 0 120px rgba(197, 160, 89, .03);
    pointer-events: none;
}

body.libac-public .page-header-content,
body.libac-public .page-header > :where(h1, p) { position: relative; z-index: 2; text-align: center; }

body.libac-public .page-header h1 {
    margin: 0 0 10px;
    color: #fff;
    font-size: clamp(2rem, 4vw, 3.35rem);
    line-height: 1.2;
}

body.libac-public .breadcrumb { color: rgba(255,255,255,.78); }
body.libac-public .breadcrumb a { color: #fff; }

/* Shared public content */
body.libac-public :where(.content-section, .section-padding, .announcements-container, .documents-section) {
    padding-block: clamp(56px, 7vw, 96px);
}

body.libac-public .section-title,
body.libac-public .section-title-left {
    color: var(--libac-navy);
    font-size: clamp(1.65rem, 3vw, 2.45rem);
    line-height: 1.28;
    letter-spacing: -.02em;
}

body.libac-public :where(.field-card, .service-card, .stat-box, .news-card, .announcement-card, .document-card, .decision-card, .contact-card, .value-card, .about-card, .info-card) {
    border: 1px solid var(--libac-border) !important;
    border-radius: var(--libac-radius) !important;
    background: #fff;
    box-shadow: var(--libac-shadow-sm) !important;
    overflow: hidden;
    transition: transform .25s var(--libac-ease), box-shadow .25s var(--libac-ease), border-color .25s ease;
}

body.libac-public :where(.field-card, .service-card, .stat-box, .news-card, .announcement-card, .document-card, .decision-card, .contact-card, .value-card, .about-card, .info-card):hover {
    transform: translateY(-5px);
    border-color: rgba(0, 86, 179, .25) !important;
    box-shadow: var(--libac-shadow) !important;
}

body.libac-public :where(.fields-grid, .services-grid, .news-grid, .documents-grid, .decisions-grid, .values-grid, .list-stats) {
    gap: clamp(16px, 2.2vw, 28px) !important;
}

body.libac-public footer {
    position: relative;
    padding-block: clamp(58px, 7vw, 86px) 24px;
    color: #b9c6d1;
    background: linear-gradient(145deg, #071a2a, #102f4a 72%, #133b59);
    overflow: hidden;
}

body.libac-public footer::before {
    content: "";
    position: absolute;
    inset: 0;
    background: radial-gradient(circle at 15% 10%, rgba(197,160,89,.12), transparent 28%);
    pointer-events: none;
}

/* Forms and authentication */
body.libac-ui :where(input:not([type="checkbox"]):not([type="radio"]), select, textarea) {
    min-height: 46px;
    max-width: 100%;
    padding: 10px 13px;
    border: 1px solid #cbd8e3;
    border-radius: 10px;
    color: var(--libac-ink);
    background: #fff;
    transition: border-color .2s ease, box-shadow .2s ease, background .2s ease;
}

body.libac-ui textarea { min-height: 110px; resize: vertical; }

body.libac-ui :where(input:not([type="checkbox"]):not([type="radio"]), select, textarea):focus {
    border-color: var(--libac-primary) !important;
    outline: none;
    background: #fff;
    box-shadow: 0 0 0 4px rgba(0, 86, 179, .1) !important;
}

body.libac-ui label { color: #30465a; font-weight: 700; }

body.libac-ui :where(.btn-primary, .primary, .btn-login, .submit-btn, .formal-btn-submit, .cert-btn, .decision-btn, .btn-add-user) {
    min-height: 44px;
    border: 0;
    border-radius: 10px !important;
    color: #fff;
    background: linear-gradient(135deg, var(--libac-primary), #0877c6) !important;
    box-shadow: 0 8px 18px rgba(0, 86, 179, .17);
    font-weight: 800;
    cursor: pointer;
    transition: transform .2s ease, box-shadow .2s ease, filter .2s ease;
}

body.libac-ui :where(.btn-primary, .primary, .btn-login, .submit-btn, .formal-btn-submit, .cert-btn, .decision-btn, .btn-add-user):hover {
    transform: translateY(-2px);
    box-shadow: 0 12px 24px rgba(0, 86, 179, .24);
    filter: saturate(1.08);
}

body.libac-auth {
    min-height: 100svh;
    background:
        radial-gradient(circle at 12% 16%, rgba(197,160,89,.18), transparent 27%),
        radial-gradient(circle at 88% 84%, rgba(0,86,179,.14), transparent 30%),
        linear-gradient(145deg, #f7fafc, #e8f0f7) !important;
}

body.libac-auth .top-bar {
    width: min(100% - 32px, 1100px);
    margin-inline: auto;
    padding-top: 20px;
}

body.libac-auth .back-link {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 9px 13px;
    border: 1px solid var(--libac-border);
    border-radius: 10px;
    color: var(--libac-primary);
    background: rgba(255,255,255,.8);
    text-decoration: none;
    font-weight: 700;
}

body.libac-auth :where(.login-container, .cpanel-container, .login-box) {
    width: min(100% - 32px, 520px) !important;
    margin: clamp(28px, 6vh, 70px) auto !important;
    border: 1px solid rgba(255,255,255,.85) !important;
    border-radius: var(--libac-radius-lg) !important;
    background: rgba(255,255,255,.96) !important;
    box-shadow: var(--libac-shadow-lg) !important;
    overflow: hidden;
}

body.libac-auth :where(.auth-container, .reset-container) {
    width: 100%;
    min-height: 100svh;
    padding: clamp(24px, 6vw, 64px) 16px;
    display: grid;
    place-items: center;
}

body.libac-auth :where(.auth-box, .reset-box, .reset-card) {
    width: min(100%, 500px) !important;
    padding: clamp(24px, 5vw, 42px) !important;
    border: 1px solid rgba(255,255,255,.85) !important;
    border-radius: var(--libac-radius-lg) !important;
    background: rgba(255,255,255,.96) !important;
    box-shadow: var(--libac-shadow-lg) !important;
}

body.libac-auth :where(.auth-header, .reset-header) {
    margin-bottom: 26px;
    text-align: center;
}

body.libac-auth :where(.auth-logo, .reset-logo) {
    width: 86px !important;
    height: 86px !important;
    padding: 8px;
    border: 1px solid var(--libac-border);
    border-radius: 20px;
    object-fit: contain;
    background: #fff;
    box-shadow: var(--libac-shadow-sm);
}

body.libac-auth :where(.auth-header, .reset-header) :where(h1, h2) {
    margin-block: 14px 6px;
    color: var(--libac-navy);
    font-size: clamp(1.35rem, 4vw, 1.8rem);
}

body.libac-auth :where(.login-header, .cpanel-header) {
    padding: clamp(26px, 5vw, 42px) clamp(22px, 5vw, 42px) 22px;
    text-align: center;
    background: linear-gradient(180deg, #fff, #f8fbfe);
}

body.libac-auth :where(.login-logo, .cpanel-logo) {
    width: 86px !important;
    height: 86px !important;
    padding: 8px;
    object-fit: contain;
    border: 1px solid var(--libac-border);
    border-radius: 20px;
    background: #fff;
    box-shadow: var(--libac-shadow-sm);
}

body.libac-auth :where(.login-header, .cpanel-header) h1 {
    color: var(--libac-navy);
    font-size: clamp(1.35rem, 4vw, 1.8rem);
}

body.libac-auth :where(.login-form, .cpanel-form) { padding: 24px clamp(22px, 5vw, 42px) 36px; }
body.libac-auth .form-group { margin-bottom: 18px; }

/* Application and formal forms */
body.libac-form { background: var(--libac-canvas) !important; }

body.libac-form :where(.gpanel-form-container, .formal-container, .formal-card, .form-container) {
    width: min(100% - 32px, 1050px);
    margin: clamp(28px, 5vw, 64px) auto;
    border: 1px solid var(--libac-border);
    border-radius: var(--libac-radius-lg) !important;
    background: #fff;
    box-shadow: var(--libac-shadow);
    overflow: hidden;
}

body.libac-form :where(.gpanel-header, .formal-header) {
    padding: clamp(26px, 5vw, 46px);
    color: #fff;
    background: linear-gradient(125deg, var(--libac-navy), var(--libac-primary));
}

body.libac-form :where(.gpanel-header, .formal-header) :where(h1, h2, p) { color: inherit; }

body.libac-form :where(.form-section, .formal-form-section) {
    margin: 20px !important;
    padding: clamp(18px, 3vw, 30px) !important;
    border: 1px solid var(--libac-border) !important;
    border-radius: var(--libac-radius) !important;
    background: #fff !important;
    box-shadow: 0 5px 18px rgba(16,47,74,.045);
}

body.libac-form :where(.form-grid, .formal-grid) { gap: 18px !important; }

/* Admin shells */
body.libac-admin {
    min-height: 100svh;
    color: var(--libac-ink);
    background: var(--libac-canvas);
    overflow-y: auto;
}

body.libac-admin .sidebar {
    position: fixed;
    inset: 0 0 0 auto;
    height: 100dvh;
    width: var(--libac-sidebar);
    border: 0;
    color: #fff;
    background: linear-gradient(180deg, #0c2b45 0%, #102f4a 60%, #0a2134 100%);
    box-shadow: -12px 0 35px rgba(8,30,48,.12);
    overflow-y: auto;
    padding-top: var(--libac-safe-top);
    padding-right: var(--libac-safe-right);
    padding-bottom: var(--libac-safe-bottom);
}

body.libac-admin :where(.sidebar-header, .brand) {
    min-height: 94px;
    padding: 20px 18px;
    border-bottom: 1px solid rgba(255,255,255,.1);
}

body.libac-admin :where(.sidebar-header, .brand) img {
    width: 48px;
    height: 48px;
    padding: 4px;
    border-radius: 13px;
    object-fit: contain;
    background: #fff;
}

body.libac-admin .sidebar :where(.nav-links, .sidebar-menu, nav) {
    padding: 14px 12px;
    gap: 5px;
}

body.libac-admin .sidebar :where(li, a) {
    min-height: 46px;
    border-radius: 10px;
    transition: color .2s ease, background .2s ease, transform .2s ease;
}

body.libac-admin .sidebar :where(li, a):hover { background: rgba(255,255,255,.09); }

body.libac-admin .sidebar :where(li.active, a.active) {
    color: #fff;
    background: linear-gradient(90deg, rgba(0,118,200,.38), rgba(255,255,255,.08));
    box-shadow: inset -3px 0 var(--libac-secondary);
}

body.libac-admin .sidebar :where(li, a) i { width: 22px; text-align: center; color: #e7c978; }

body.libac-admin :where(.main-content, main) {
    min-width: 0;
    background: transparent;
}

body.libac-admin .main-content {
    width: calc(100% - var(--libac-sidebar));
    margin-right: var(--libac-sidebar);
}
body.libac-admin > main:not(.main-content) {
    width: calc(100% - var(--libac-sidebar));
    margin-right: var(--libac-sidebar);
}

body.libac-admin :where(.topbar, main > header) {
    min-height: 74px;
    padding: 14px clamp(16px, 3vw, 32px);
    border-bottom: 1px solid var(--libac-border);
    background: rgba(255,255,255,.92);
    box-shadow: 0 4px 16px rgba(16,47,74,.04);
    backdrop-filter: blur(16px);
}

body.libac-admin :where(.content-wrapper, main > section, main > div) { max-width: 1500px; }

body.libac-admin .content-wrapper { padding: clamp(16px, 3vw, 32px); }

body.libac-admin :where(.stats-grid, .cards) {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 16px;
}

body.libac-admin :where(.stat-card, .cards article, .status-card, .panel, .content-card, .table-card, .chart-card, .overview-panel, .metric-card) {
    border: 1px solid var(--libac-border);
    border-radius: var(--libac-radius);
    background: #fff;
    box-shadow: var(--libac-shadow-sm);
}

body.libac-admin :where(.stat-card, .cards article, .metric-card) {
    min-width: 0;
    padding: 20px;
}

body.libac-admin :where(.page-title, header h1, .topbar h2) {
    color: var(--libac-navy);
    letter-spacing: -.02em;
}

body.libac-admin :where(.filters, .search-filter, .users-toolbar, .action-buttons-group, .section-titlebar, .panel-head) {
    gap: 12px;
    flex-wrap: wrap;
}

body.libac-admin .modal {
    padding: max(14px, var(--libac-safe-top)) max(14px, var(--libac-safe-right)) max(14px, var(--libac-safe-bottom)) max(14px, var(--libac-safe-left));
    overflow: hidden;
}

body.libac-admin :where(.modal-content, .public-modal-content) {
    width: min(calc(100% - 28px), 850px);
    max-height: calc(100dvh - 28px - var(--libac-safe-top) - var(--libac-safe-bottom));
    padding: 0;
    border-radius: var(--libac-radius-lg);
    box-shadow: var(--libac-shadow-lg);
    overflow: hidden;
}

body.libac-admin :where(.modal-content.modal-md, .modal-md) { max-width: 620px; }
body.libac-admin :where(.modal-content.modal-sm, .modal-sm) { max-width: 420px; }
body.libac-admin :where(.modal-content.modal-lg, .modal-lg) { max-width: 850px; }
body.libac-admin .modal-header,
body.libac-admin .modal-footer { flex: 0 0 auto; }
body.libac-admin .modal-body {
    min-height: 0;
    overflow-y: auto;
    overscroll-behavior: contain;
}

/* Tables */
body.libac-ui :where(.table-container, .table-wrap, .table-responsive, .formal-table-responsive) {
    width: 100%;
    overflow-x: auto;
    overscroll-behavior-inline: contain;
    border: 1px solid var(--libac-border);
    border-radius: var(--libac-radius);
    background: #fff;
    box-shadow: var(--libac-shadow-sm);
    scrollbar-width: thin;
    scrollbar-color: #9cb3c6 transparent;
}

body.libac-ui table {
    width: 100%;
    border-collapse: separate;
    border-spacing: 0;
    background: #fff;
}

body.libac-ui :where(.table-container, .table-wrap, .table-responsive, .formal-table-responsive) table { min-width: 0; }
body.libac-ui table.table--wide,
body.libac-ui :where(.admin-table, .audit-table, .users-table, .previous-admin-table) { min-width: 760px; }
body.libac-ui table.table--monitoring { min-width: 850px; }
body.libac-ui table.table--compact { min-width: 0; }

body.libac-ui table th {
    padding: 14px 15px;
    color: #3d5367;
    background: #f4f8fb;
    border-bottom: 1px solid var(--libac-border);
    font-size: .84rem;
    font-weight: 800;
    white-space: nowrap;
}

body.libac-ui table td {
    padding: 14px 15px;
    border-bottom: 1px solid #e8eef3;
    vertical-align: middle;
}

body.libac-ui table tbody tr:last-child td { border-bottom: 0; }
body.libac-ui table tbody tr:hover { background: #f8fbfd; }

/* Legacy utility pages */
body.libac-utility > div:first-child,
body.libac-utility > main {
    width: min(100% - 32px, 1200px);
    margin: 24px auto !important;
}

body.libac-utility > div:first-child {
    padding: clamp(18px, 3vw, 26px) !important;
    border-radius: var(--libac-radius) !important;
    box-shadow: var(--libac-shadow-sm);
}

body.libac-ui .libac-table-shell { margin-block: 16px; }

.libac-sidebar-backdrop {
    position: fixed;
    inset: 0;
    z-index: 900;
    border: 0;
    background: rgba(5, 22, 36, .54);
    backdrop-filter: blur(3px);
    opacity: 0;
    visibility: hidden;
    transition: opacity .22s ease, visibility .22s ease;
}

.libac-sidebar-backdrop.is-visible { opacity: 1; visibility: visible; }

.libac-back-to-top {
    position: fixed;
    inset-inline-end: 20px;
    inset-block-end: 20px;
    z-index: 800;
    width: 46px;
    height: 46px;
    display: grid;
    place-items: center;
    border: 1px solid rgba(255,255,255,.28);
    border-radius: 14px;
    color: #fff;
    background: var(--libac-primary);
    box-shadow: 0 12px 26px rgba(0,86,179,.28);
    cursor: pointer;
    opacity: 0;
    visibility: hidden;
    transform: translateY(10px);
    transition: .22s ease;
}

.libac-back-to-top.is-visible { opacity: 1; visibility: visible; transform: none; }

@media (max-width: 1180px) {
    body.libac-public .navbar > nav { position: static; }
    body.libac-public .menu-toggle { display: grid !important; place-items: center; }
    body.libac-public .nav-links {
        position: absolute;
        inset: calc(100% + 8px) 20px auto;
        max-height: calc(100dvh - 110px);
        padding: 12px;
        display: none;
        align-items: stretch;
        overflow-y: auto;
        border: 1px solid var(--libac-border);
        border-radius: 16px;
        background: rgba(255,255,255,.98);
        box-shadow: var(--libac-shadow-lg);
    }
    body.libac-public .nav-links:is(.active, .show) { display: grid !important; grid-template-columns: repeat(2, minmax(0, 1fr)); }
    body.libac-public .nav-links li { width: 100%; }
    body.libac-public .nav-links a { width: 100%; justify-content: flex-start; padding-inline: 14px; }
    body.libac-public .staff-login-btn { width: 100%; }

    body.libac-admin :where(.stats-grid, .cards) { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 992px) {
    :root { --libac-sidebar: min(86vw, 310px); }

    body.libac-admin .sidebar {
        z-index: 1000 !important;
        transform: translateX(110%);
        transition: transform .25s var(--libac-ease) !important;
    }
    body.libac-admin .sidebar:is(.active, .open) { transform: translateX(0) !important; }
    body.libac-admin .main-content,
    body.libac-admin > main:not(.main-content) { width: 100% !important; margin-right: 0 !important; }
    body.libac-admin :where(.menu-toggle, #menuBtn) { display: grid !important; place-items: center; }

    body.libac-form .form-grid { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; }
}

@media (max-width: 720px) {
    body.libac-ui .container { width: min(100% - 28px, var(--libac-container)); }

    body.libac-public #main-header,
    body.libac-public .site-header { min-height: 70px; }
    body.libac-public .logo img { width: 46px !important; height: 46px !important; }
    body.libac-public .nav-links { inset-inline: 14px; }
    body.libac-public .nav-links:is(.active, .show) { grid-template-columns: 1fr; }
    body.libac-public .hero { min-height: 620px; }
    body.libac-public .hero-content { width: min(100% - 30px, 900px); }
    body.libac-public .hero-btns { flex-direction: column; align-items: stretch; }
    body.libac-public .slide-arrow { width: 42px; height: 42px; }
    body.libac-public .page-header { min-height: 250px; padding: 54px 16px; }

    body.libac-form :where(.form-grid, .formal-grid) { grid-template-columns: 1fr !important; }
    body.libac-form :where(.form-section, .formal-form-section) { margin: 12px !important; padding: 17px !important; }

    body.libac-admin :where(.stats-grid, .cards) { grid-template-columns: 1fr; }
    body.libac-admin :where(.topbar, main > header) {
        min-height: 64px;
        padding: max(10px, var(--libac-safe-top)) max(14px, var(--libac-safe-right)) 10px max(14px, var(--libac-safe-left));
    }
    body.libac-admin .content-wrapper { padding: 14px; }
    body.libac-admin :where(.filters, .users-toolbar, .action-buttons-group, .section-titlebar, .panel-head) > * { width: 100%; }
    body.libac-admin :where(.filters, .users-toolbar) { display: grid !important; grid-template-columns: 1fr !important; }
    body.libac-admin :where(.modal-content, .public-modal-content) {
        width: 100%;
        max-width: 100%;
        max-height: calc(100dvh - 20px - var(--libac-safe-top) - var(--libac-safe-bottom));
    }

    body.libac-ui :where(.table-container, .table-wrap, .table-responsive, .formal-table-responsive):has(table.table--wide, table.table--monitoring, table.admin-table, table.audit-table, table.users-table, table.previous-admin-table)::after {
        content: "مرّر أفقياً لعرض بقية البيانات";
        position: sticky;
        inset-inline-start: 10px;
        display: block;
        width: max-content;
        margin: 8px 10px;
        padding: 5px 9px;
        border-radius: 999px;
        color: var(--libac-muted);
        background: var(--libac-surface-soft);
        font-size: .72rem;
    }

    .libac-back-to-top {
        inset-inline-end: max(14px, var(--libac-safe-left));
        inset-block-end: max(14px, var(--libac-safe-bottom));
    }
}

@media (max-width: 420px) {
    body.libac-public .logo-text { display: none; }
    body.libac-auth :where(.login-container, .cpanel-container, .login-box) { width: calc(100% - 20px) !important; }
    body.libac-auth :where(.login-form, .cpanel-form) { padding-inline: 18px; }
    body.libac-admin .user-info :where(.super-admin-badge, span:not(.avatar)) { max-width: 155px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
}

@media (prefers-reduced-motion: reduce) {
    *, *::before, *::after { scroll-behavior: auto !important; animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; }
}

@media print {
    .libac-back-to-top, .libac-sidebar-backdrop, body.libac-admin .sidebar, body.libac-public #main-header { display: none !important; }
    body.libac-admin .main-content,
    body.libac-admin > main { margin: 0 !important; }
    body.libac-ui { color: #000; background: #fff !important; }
}
