/* ==========================================================
   Enterprise responsive scale
   Loaded after inline styles for predictable overrides.
   ========================================================== */

:root {
    --topbar-height: 56px;
}

.top-bar {
    min-height: var(--topbar-height);
}

/* Help (?) in nav — touch-friendly, does not replace Support link in menu */
.top-bar-help {
    color: rgba(255, 255, 255, 0.95);
    font-size: 17px;
    font-weight: 700;
    padding: 6px 12px;
    border-radius: 8px;
    text-decoration: none;
    line-height: 1;
    align-self: center;
    min-width: 44px;
    min-height: 44px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}
.top-bar-help:hover {
    background: rgba(255, 255, 255, 0.15);
    color: #fff;
}

/* ---- Small laptops (<=1366px): compact but readable ---- */
@media (max-width: 1366px) {
    .top-bar { padding: 10px 16px !important; }
    .top-bar a { font-size: 13px; padding: 5px 7px; }

    .page-title { font-size: 22px; }
    .dash-greeting h1 { font-size: 24px; }
    .page-header h1 { font-size: 32px; }
    .calendar-page-header h1 { font-size: 18px; }

    .kpi-body .kpi-value { font-size: 22px; }

    .kpi-icon { width: 38px; height: 38px; font-size: 15px; }
    .kpi-card { padding: 12px 14px; gap: 10px; }

    .card-grid { grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); }
    .skeleton-container { grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); }

    .toolbar { padding: 12px 14px; gap: 10px; }
    .group-manager { padding: 11px 14px; }
}

/* ---- Large desktops (>=1600px): balanced enterprise spacing ---- */
@media (min-width: 1600px) {
    .top-bar { padding: 11px 20px !important; }
    .top-bar a { font-size: 14px; padding: 6px 9px; }

    .page-title { font-size: 28px; }
    .dash-greeting h1 { font-size: 30px; }
    .page-header h1 { font-size: 42px; }
    .calendar-page-header h1 { font-size: 23px; }
    .page-subtitle,
    .dash-greeting .greeting-sub { font-size: 15px; }

    .kpi-body .kpi-value { font-size: 30px; }
    .kpi-body .kpi-label { font-size: 12px; }

    .kpi-icon { width: 46px; height: 46px; font-size: 18px; }
    .kpi-card { padding: 18px 20px; gap: 14px; }

    .card-grid { grid-template-columns: repeat(auto-fill, minmax(340px, 1fr)); gap: 18px; }
    .skeleton-container { grid-template-columns: repeat(auto-fill, minmax(340px, 1fr)); }

    .card-body { padding: 16px 18px 14px; gap: 9px; }
    .card-subject { font-size: 15px; }
    .card-from { font-size: 14px; }

    .toolbar { padding: 16px 20px; gap: 12px; }
    .search-input { font-size: 14px; padding: 11px 14px 11px 40px; }
    .group-manager { padding: 14px 20px; gap: 10px; }

    .section-title,
    .todays-focus h2,
    .queue-section h2,
    .calendar-planner-header h2 { font-size: 20px; }

    .settings-card { padding: 26px; }
    .account-list { grid-template-columns: repeat(auto-fill, minmax(340px, 1fr)); }
}

/* ---- Widescreens (>=1920px): moderate upscale ---- */
@media (min-width: 1920px) {
    .top-bar { padding: 12px 22px !important; }
    .top-bar a { font-size: 14px; padding: 6px 10px; }

    .page-title { font-size: 30px; }
    .dash-greeting h1 { font-size: 32px; }
    .page-header h1 { font-size: 44px; }
    .calendar-page-header h1 { font-size: 24px; }
    .page-subtitle,
    .dash-greeting .greeting-sub { font-size: 15px; }

    .kpi-body .kpi-value { font-size: 32px; }
    .kpi-body .kpi-label { font-size: 12px; }

    .kpi-icon { width: 48px; height: 48px; font-size: 19px; }
    .kpi-card { padding: 20px 22px; gap: 14px; }

    .card-grid { grid-template-columns: repeat(auto-fill, minmax(360px, 1fr)); gap: 20px; }
    .skeleton-container { grid-template-columns: repeat(auto-fill, minmax(360px, 1fr)); }

    .card-body { padding: 18px 20px 16px; gap: 9px; }
    .card-subject { font-size: 16px; }
    .card-from { font-size: 14px; }
    .card-preview { font-size: 13px; }

    .toolbar { padding: 18px 22px; gap: 12px; }
    .search-input { font-size: 14px; padding: 11px 14px 11px 40px; }

    .section-title,
    .todays-focus h2,
    .queue-section h2,
    .calendar-planner-header h2 { font-size: 21px; }

    .settings-card { padding: 28px; }
    .account-list { grid-template-columns: repeat(auto-fill, minmax(360px, 1fr)); }
}

/* ---- Ultra-wide (>=2400px): generous spacing with control ---- */
@media (min-width: 2400px) {
    .top-bar { padding: 13px 24px !important; }
    .top-bar a { font-size: 15px; padding: 7px 11px; }

    .page-title { font-size: 34px; }
    .dash-greeting h1 { font-size: 36px; }
    .page-header h1 { font-size: 48px; }
    .calendar-page-header h1 { font-size: 27px; }
    .page-subtitle,
    .dash-greeting .greeting-sub { font-size: 16px; }

    .kpi-body .kpi-value { font-size: 35px; }
    .kpi-body .kpi-label { font-size: 13px; }

    .kpi-icon { width: 52px; height: 52px; font-size: 21px; }
    .kpi-card { padding: 22px 24px; gap: 16px; }
    .kpi-row { gap: 18px; }

    .card-grid { grid-template-columns: repeat(auto-fill, minmax(390px, 1fr)); gap: 22px; }
    .skeleton-container { grid-template-columns: repeat(auto-fill, minmax(390px, 1fr)); }

    .card-body { padding: 20px 22px 18px; gap: 10px; }
    .card-subject { font-size: 17px; }
    .card-from { font-size: 15px; }
    .card-preview { font-size: 14px; }

    .toolbar { padding: 20px 24px; gap: 14px; }
    .search-input { font-size: 15px; padding: 12px 16px 12px 42px; }
    .group-manager { padding: 16px 24px; gap: 12px; }

    .section-title,
    .todays-focus h2,
    .queue-section h2,
    .calendar-planner-header h2 { font-size: 23px; }

    .settings-card { padding: 32px; }
    .account-list { grid-template-columns: repeat(auto-fill, minmax(390px, 1fr)); }
}

/* ==========================================================
   Small-screen safeguards
   ========================================================== */
@media (max-width: 768px) {
    .top-bar { padding: 10px 12px !important; }
    .top-bar a { font-size: 12px; padding: 4px 6px; }

    .card-grid { grid-template-columns: 1fr; gap: 12px; }
    .skeleton-container { grid-template-columns: 1fr; }
    .account-list { grid-template-columns: 1fr; }
    .page-title { font-size: 21px; }
    .dash-greeting h1 { font-size: 22px; }
    .page-header h1 { font-size: 28px; }
    .toolbar { padding: 10px 12px; gap: 8px; }
    .group-manager { padding: 9px 12px; }
}

@media (max-width: 480px) {
    .top-bar { min-height: 52px; }
    .card-grid { grid-template-columns: 1fr; }
    .skeleton-container { grid-template-columns: 1fr; }
}
