:root{
    --dn:#031B2A;
    --pn:#062D45;
    --ib:#0B4665;
    --or:#F58220;
    --gd:#F9B65E;
    --sand:#F7BD6D;
    --lt:#F4F7F7;
    --tx:#172B3A;
    --bd:#D9E2E7
}
*{
    box-sizing:border-box;
    margin:0;
    padding:0
}
html{
    direction:rtl
}
body{
    font-family:Tajawal,system-ui,'Segoe UI',Tahoma,sans-serif;
    color:var(--tx);
    background:#fff;
    -webkit-font-smoothing:antialiased
}
a{
    color:inherit;
    text-decoration:none
}
ul{
    list-style:none
}
img{
    display:block;max-width:100%
}
.missing{
    visibility:hidden
}
.wrap{
    width:min(1100px,92%);
    margin-inline:auto
}
/* NAVBAR */
.nav{
    position:absolute;
    inset:0 0 auto;
    z-index:10;
    /* Use min-height so the bar grows a few pixels when needed instead
       of clipping the brand logos. */
    min-height:72px;
    padding-inline:48px;
    display:flex;
    align-items:center;
    background:#5e7692;
    box-shadow:0 2px 10px rgba(0,0,0,.08);
    -webkit-backdrop-filter:blur(10px);
    backdrop-filter:blur(10px)
}
.brand{
    display:flex;align-items:center;gap:20px;flex-shrink:0
}
.brand img
{width:auto;
    max-height:100%;
    object-fit:contain
}
/* Club logo (logo.png, ~1:1) is sized to read as large as the wider Taibah
   logo beside it: at 58px its symbol matches the Taibah mark's height. */
.brand img:first-child{
    height:58px
}
.brand img:last-child{
    height:54px}
.brand i{
    width:1px;
    height:40px;
    background:rgba(255,255,255,.85)
}
.menu{
    flex:1;
    display:flex;
    align-items:center
}
.links{
    display:flex;
    gap:46px;
    margin-inline-start:60px
}
.links a{
    position:relative;
    color:#fff;
    font-weight:700;
    font-size:15px;
    padding:6px 0;
    white-space:nowrap
}
.links a.on::after{
    content:"";
    position:absolute;
    inset:auto -4px -2px;
    height:2px;
    border-radius:2px;
    background:var(--or)
}
.auth-group{
    display:flex;
    align-items:center;
    gap:12px;
    margin-inline-start:auto;
    flex-shrink:0
}
.login-btn{
    width:auto;
    min-width:100px;
    height:38px;
    padding:0 18px;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    border-radius:999px;
    border:1px solid transparent;
    background:#f39c12;
    color:#0f2033;
    font-weight:800;
    font-size:14px;
    white-space:nowrap;
    text-decoration:none;
    transition:background .15s,color .15s,border-color .15s;
}
.login-btn:hover{filter:brightness(1.07)}
/* Second auth button (sibling) = outlined white, so Login/Logout and
   My-Dashboard/Logout read as a two-button pair matching the reference. */
.login-btn + .login-btn{
    background:transparent;
    color:#fff;
    border:1px solid rgba(255,255,255,.65);
}
.login-btn + .login-btn:hover{
    background:rgba(255,255,255,.1);
    border-color:#fff;
    color:#fff;
    filter:none;
}
.burger{
    display:none;
    margin-inline-start:auto;
    background:none;
    border:0;color:#fff;
    font-size:28px;
    cursor:pointer
}
/* BUTTONS */
.btn{
    display:flex;
    align-items:center;
    justify-content:center;
    gap:12px;
    height:48px;
    padding:0 24px;
    border-radius:28px;
    border:0;
    font:700 15px Tajawal,sans-serif;
     
    cursor:pointer;
    white-space:nowrap;
    transition:filter .15s
}
.btn:hover{
    filter:brightness(1.07)
}
.btn-p{
    background:var(--sand);
    color:var(--dn)
}
.btn-s{
    background:rgba(3,27,42,.85);
    color:#fff;
    border:1px solid #fff
}
.btn-o{
    background:var(--or);
    color:#fff;
    height:42px;
    width:100%
}
.btn-d{
    background:var(--bd);
    color:#6b7c88;
    height:42px;
    width:100%;
    cursor:not-allowed
}
/* HOME HERO */
.hero{
    min-height:100vh;
    background:linear-gradient(rgba(6,45,69,.55),rgba(3,27,42,.55)),url(../Image/hero.png) center/cover}
.hc{
    min-height:100vh;padding:74px 4vw 15vh ;
    display:flex;
    flex-direction:column;
    justify-content:center;
    align-items:center;
     text-align:center;
     padding:100px 20px 60px;
    color:#fff}
.hc h1{
    font-size:clamp(34px,9vw,48px);
    font-weight:500;
    line-height:1.4
}
.hc h1 span{
    display:block
}
.hc h1 .g{
    color:var(--gd);
}
.hc p{
    margin-top:22px;
    max-width:900px;
    text-align:center;
    font-size:clamp(13px,1.11vw,16px);
    font-weight:700;
    width:100%;
      font-size:13px;
   line-height:1.9;
}
.acts{
    display:flex;
    justify-content:center;
    align-items:center;
    gap: 20px;
     margin:38px auto 0;
   
}
.acts .btn{
    height:clamp(48px,5vw,72px);
    font-size:clamp(15px,1.25vw,18px)
}
.acts .btn-p{
    width:16.8vw
}
.acts .btn-s{
    width:13.4vw
}
/* INNER BANNER */
.banner{
    padding:128px 0 44px;
    text-align:center;
    color:#fff;
    background:linear-gradient(rgba(3,27,42,.8),rgba(3,27,42,.8)),url(../Image/hero.png) center 55%/cover
}
.banner h1{
    font-size:34px;
    font-weight:700
}
.banner .sub{
    display:inline-block;
    margin-top:10px;
    padding-bottom:6px;
    border-bottom:2px solid var(--or);
    font-size:16px
}
/* SECTIONS */
.sec{
    padding:60px 0
}
.alt{
    background:var(--lt)
}
.st{
    font-size:26px;
    font-weight:800;
    color:var(--pn)
}
.st::after{
    content:"";
    display:block;
    width:38px;
    height:3px;
    margin-top:8px;
    background:var(--or);
    border-radius:2px
}
.c{
    text-align:center
}
.c .st::after{
    margin-inline:auto
}
.about{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:64px;
    align-items:center
}
.about p{
    margin-top:18px;
    line-height:2;
    font-size:15px
}
.about .ph{
    border-radius:14px;
    overflow:hidden;
    background:#fff;
    box-shadow:0 10px 26px rgba(3,27,42,.18)
}
.about .ph img{
    display:block;
    width:100%;
    height:auto;
    object-fit:cover
}

.ph img{
    width:100%;
    height:100%;
    object-fit:cover
}
.two{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:26px;
    margin-top:30px
}
.card{
    background:#fff;
    border:1px solid var(--bd);
    border-radius:12px;
    padding:20px 24px;
    box-shadow:0 4px 14px rgba(3,27,42,.06)
}
.card h3{
    font-size:18px;
    color:var(--dn)
}
.card p{
    margin-top:10px;
    font-size:14px;
    line-height:1.9
}
.card em{
    display:block;
    margin-top:12px;
    text-align:center;
    font-style:normal;
    font-weight:700;
    color:var(--or)
}
.why{
    padding:40px 0 48px;
    text-align:center;
    color:#fff;
    background:linear-gradient(var(--pn),var(--dn))
}
.why h2{
    font-size:24px;
    margin-bottom:26px
}
.five{
    display:grid;
    grid-template-columns:repeat(5,1fr);
    gap:18px
}
.five div{
    padding:22px 10px;
    border-radius:12px;
    background:rgba(11,70,101,.7);
    border:1px solid rgba(255,255,255,.14)
}
.five b{
    display:block;
    margin-top:8px;
    font-size:16px
}
.five span{
    font-size:13px;
    opacity:.85
}
svg{
    width:30px;
    height:30px;
    fill:none;
    stroke:var(--or);
    stroke-width:1.8;
    stroke-linecap:round;
    stroke-linejoin:round
}
/* TOOLBAR / GRIDS */
.bar{
    display:flex;
    flex-wrap:wrap;
    gap:14px;
    align-items:center;
    margin-bottom:30px
}
.bar input{
    flex:1;min-width:220px;
    height:46px;
    padding:0 18px;
    border:1px solid var(--bd);
    border-radius:999px;
    font:15px Tajawal,sans-serif
}
.chip{
    height:40px;
    padding:0 20px;
    border-radius:999px;
    border:1px solid var(--bd);
    background:#fff;
    font:700 14px Tajawal,sans-serif;
    cursor:pointer;
    color:var(--pn)
}
.chip.on{
    background:var(--pn);
    color:#fff;
    border-color:var(--pn)
}
.grid{
    display:grid;
    grid-template-columns:repeat(3,1fr);
    gap:20px;
    margin-top:24px;
    align-items:stretch
}
.grid2{
    grid-template-columns:repeat(2,1fr)
}
.ev{
    background:#fff;
    border:1px solid var(--bd);
    border-radius:12px;
    overflow:hidden;
    box-shadow:0 2px 10px rgba(3,27,42,.05);
    display:flex;
    flex-direction:column;
    min-width:0;
    transition:transform .2s ease,box-shadow .2s ease
}
.ev:hover{
    transform:translateY(-2px);
    box-shadow:0 6px 18px rgba(3,27,42,.09)
}
.ev .ph{
    aspect-ratio:16/9;
    background:#eef2f6 center/cover no-repeat;
    overflow:hidden
}
.ev .ph.no-img{
    background-image:url('../Image/event-6.png');
    background-size:cover;
    background-position:center
}
.eb{
    padding:16px 18px;
    display:flex;
    flex-direction:column;
    gap:8px;flex:1
}
.eb h3{
    font-size:17px;
    color:var(--dn);
    line-height:1.45;
    margin:0;
    display:-webkit-box;
    -webkit-line-clamp:2;
    line-clamp:2;
    -webkit-box-orient:vertical;
    overflow:hidden;
    min-height:calc(1.45em * 2)
}
.eb p{
    font-size:14px;
    line-height:1.8;
    flex:1
}
.eb li{
    font-size:13px;
    color:#4a5d6a
}
.tag{
    align-self:flex-start;
    padding:2px 12px;
    border-radius:999px;
    background:#fdebd9;
    color:#b85b0a;
    font-size:12px;
    font-weight:700
}
.empty{
    grid-column:1/-1;
    text-align:center;
    padding:30px;
    color:#6b7c88
}
.like{
    background:none;
    border:1px solid var(--bd);
    border-radius:999px;
    padding:6px 16px;
    font:700 14px Tajawal,sans-serif;
    cursor:pointer;
    color:var(--pn)
}
.like.on{
    color:var(--or);
    border-color:var(--or)
}
.logos{
    display:grid;
    grid-template-columns:repeat(auto-fill,minmax(180px,1fr));
    gap:20px;
    margin-top:26px
}
.lg{
    height:110px;
    display:grid;
    place-items:center;
    padding:18px;
    background:#fff;
    border:1px solid var(--bd);
    border-radius:12px
}
.lg img{
    max-height:60px;width:auto
}
/* LOGIN */
.lp{
    min-height:100vh;
    display:grid;
    place-items:center;
    padding:100px 0 40px;
    background:linear-gradient(rgba(3,27,42,.82),rgba(3,27,42,.82)),url(../Image/hero.png) center/cover
}
.lc{
    width:min(420px,92%);
    padding:34px;
    border-radius:18px;
    background:#fff;
    box-shadow:0 20px 50px rgba(0,0,0,.35)
}
.lc h1{
    font-size:26px;
    color:var(--pn);
    margin-bottom:20px
}
.lc label{
    display:block;
    margin:14px 0 6px;
    font-weight:700;
    font-size:14px
}
.lc input{
    width:100%;
    height:46px;
    padding:0 14px;
    border:1px solid var(--bd);
    border-radius:10px;
    font:15px Tajawal,sans-serif
}
.lc .btn{
    width:100%;
    margin-top:22px;
    background:var(--or);
    color:#fff
}
/* MODAL / TOAST / FOOTER */
.modal{
    position:fixed;inset:0;z-index:50;display:none;place-items:center;background:rgba(3,27,42,.6)}
.modal.show{
    display:grid}
.box{
    width:min(420px,92%);padding:28px;border-radius:16px;background:#fff
}
.box h3{
    margin-bottom:6px
}
.box input{
    width:100%;
    height:44px;
    margin:14px 0;
    padding:0 14px;
    border:1px solid var(--bd);
    border-radius:10px;
    font:15px Tajawal,sans-serif}
.box .row{
    display:flex;gap:10px
}
.box .btn{
    flex:1;height:44px
}
.toast{
    position:fixed;
    inset:auto auto 24px 24px;
    z-index:60;
    padding:12px 22px;
    border-radius:10px;
    background:var(--dn);
    color:#fff;
    font-weight:700;
    opacity:0;
    transform:translateY(10px);
    transition:.25s;
    pointer-events:none
}
.toast.show{
    opacity:1;
    transform:none
}
footer{
    background:var(--dn);
    color:#cbd8e0;
    padding:34px 0 18px;
    font-size:14px
}
.ft{
    display:flex;
    justify-content:space-between;
    align-items:center;
    gap:20px;
    flex-wrap:wrap
}
.ft img{
    height:40px;
    width:auto
}
.ft nav{
    display:flex;
    gap:22px
}
.cp{
    margin-top:20px;
    padding-top:14px;
    border-top:1px solid rgba(255,255,255,.12);
    text-align:center;
    font-size:13px
}
/* RESPONSIVE */
@media(max-width:1000px){
.nav{padding-inline:20px; min-height:68px}
.burger{display:block}
.menu{display:none;
    position:absolute;
    /* Anchor to the bottom of the nav bar regardless of its exact height. */
    inset:100% 0 auto;
    flex-direction:column;
    align-items:stretch;
    gap:18px;
    padding:22px;
    max-height:calc(100vh - 72px);
    overflow-y:auto;
    background:rgba(6,45,69,.97);
    box-shadow:0 10px 24px rgba(0,0,0,.25)}
.nav.open .menu{display:flex}
.links{flex-direction:column;
    gap:14px;
    margin:0}
.links a{padding:10px 4px; font-size:16px; min-height:44px; display:flex; align-items:center}
.auth-group{flex-direction:column;
    gap:10px;
    margin:0;
    width:100%}
.login-btn{width:100%;
    min-width:0;
    min-height:44px;
    margin:0}
.hc{padding:110px 8vw 60px}
.hc p{max-width:60ch}
.acts{margin:36px 0 0;
    gap:14px}
.acts .btn-p,.acts .btn-s{width:auto;min-width:170px}
.about,.two{grid-template-columns:1fr}
.five{grid-template-columns:repeat(2,1fr)}
.grid{grid-template-columns:repeat(2,1fr)}
}
@media(max-width:640px){
.brand img:first-child{height:43px}
.brand img:last-child{height:40px}
.brand i{height:34px}
.brand{gap:10px}
.nav{min-height:60px; padding-inline:14px}
.menu{max-height:calc(100vh - 60px)}
.hc{justify-content:flex-start;
    padding-top:130px}
.hc h1{font-size:clamp(28px,8vw,38px)}
.hc p{margin-top:20px;
    font-size:14px;
    line-height:1.8}
.acts{flex-wrap:wrap}
.acts .btn{flex:1 1 150px;
    height:50px;
    font-size:15px}
.grid,.grid2{grid-template-columns:1fr}
.banner{padding:100px 16px 32px}
.banner h1{font-size:24px}
.banner .sub{font-size:14px}
.sec{padding:40px 0}
.five{grid-template-columns:1fr 1fr}
.wrap{width:min(1100px, 100% - 24px)}
}
/* ============================================================
   Shared responsive safety net — applies to every page.
   ============================================================ */
/* Never allow horizontal overflow on any page. */
html,body{max-width:100vw; overflow-x:hidden}

/* The site's main content wrapper safely clamps to viewport width. */
.wrap{width:min(1100px, 100% - 32px); margin-inline:auto}

/* Any media inside sections scales down to its container by default. */
.sec img, .banner img, .about img{max-width:100%; height:auto}

/* Buttons on touch — comfortable tap target. */
@media (hover: none) and (pointer: coarse){
    .btn, .btn-p, .btn-o, .btn-s, .btn-d, .card-btn, .dashboard-action,
    .login-btn{ min-height:44px; }
}

/* Mobile tweaks to the home-page CTA buttons so they stack cleanly. */
@media (max-width: 520px){
    .acts{flex-direction:column; width:100%}
    .acts .btn{width:100%; flex:1 1 auto}
    .acts .btn-p, .acts .btn-s{min-width:0; width:100%}
}
.mini-footer{
    height:50px;
    padding:0;
    display:flex;
    align-items:center;
    justify-content:center;
    background:var(--dn);
    color:#cbd8e0;
    font-size:12px;
}



/* =========================================
   DASHBOARDS
========================================= */

.dashboard-section{
    margin-bottom:56px;
}

.dashboard-heading{
    display:flex;
    align-items:flex-end;
    justify-content:space-between;
    gap:24px;
    margin-bottom:24px;
}

.dashboard-description{
    margin-top:10px;
    color:#6b7c88;
    font-size:14px;
    line-height:1.8;
}

.dashboard-heading .btn{
    width:auto;
    min-width:170px;
}


/* DASHBOARD CARD */

.dashboard-card{
    background:#fff;
    border:1px solid var(--bd);
    border-radius:14px;
    padding:22px;
    box-shadow:0 6px 18px rgba(3,27,42,.07);
}


/* TABLE */

.table-wrapper{
    width:100%;
    overflow-x:auto;
}

.dashboard-table{
    width:100%;
    min-width:760px;
    border-collapse:collapse;
}

.dashboard-table th{
    background:var(--pn);
    color:#fff;
    padding:15px 14px;
    text-align:right;
    font-size:14px;
    font-weight:700;
}

.dashboard-table th:first-child{
    border-radius:0 8px 8px 0;
}

.dashboard-table th:last-child{
    border-radius:8px 0 0 8px;
}

.dashboard-table td{
    padding:15px 14px;
    border-bottom:1px solid var(--bd);
    font-size:14px;
    color:var(--tx);
    vertical-align:middle;
}

.dashboard-table tbody tr:last-child td{
    border-bottom:0;
}

.dashboard-table tbody tr:hover{
    background:var(--lt);
}


/* STATUS */

.dashboard-status{
    display:inline-block;
    padding:5px 12px;
    border-radius:999px;
    font-size:12px;
    font-weight:700;
}

.status-pending{
    background:#fff2df;
    color:#b85b0a;
}

.status-approved{
    background:#e6f3ed;
    color:#287052;
}

.status-rejected{
    background:#fbe7e7;
    color:#a33b3b;
}


/* ACTION BUTTONS */

.dashboard-actions{
    display:flex;
    gap:7px;
    flex-wrap:wrap;
}

.dashboard-action{
    border:1px solid var(--bd);
    background:#fff;
    color:var(--pn);
    border-radius:8px;
    padding:7px 12px;
    font:700 12px Tajawal,sans-serif;
    cursor:pointer;
}

.dashboard-action:hover{
    border-color:var(--or);
    color:var(--or);
}

.dashboard-action.approve{
    background:var(--or);
    border-color:var(--or);
    color:#fff;
}

.dashboard-action.reject{
    color:#9d4141;
}


/* SPONSORS */

.sponsor-dashboard-grid{
    display:grid;
    grid-template-columns:repeat(4,1fr);
    gap:18px;
}

.sponsor-dashboard-card{
    min-height:145px;
    padding:20px;
    background:#fff;
    border:1px solid var(--bd);
    border-radius:14px;
    box-shadow:0 5px 16px rgba(3,27,42,.06);
    display:flex;
    flex-direction:column;
    align-items:center;
    justify-content:center;
    gap:14px;
    position:relative;
}

.sponsor-dashboard-card img{
    max-width:130px;
    max-height:65px;
    object-fit:contain;
}

.sponsor-dashboard-card h4{
    color:var(--pn);
    font-size:14px;
}

.sponsor-delete{
    position:absolute;
    top:10px;
    left:10px;
    border:0;
    background:#fbe7e7;
    color:#a33b3b;
    width:30px;
    height:30px;
    border-radius:50%;
    cursor:pointer;
    font-weight:700;
}


/* ANALYTICS CARDS */

.analytics-cards{
    display:grid;
    grid-template-columns:repeat(4,1fr);
    gap:18px;
    margin-top:26px;
    margin-bottom:24px;
}

.analytics-card{
    background:#fff;
    border:1px solid var(--bd);
    border-radius:14px;
    padding:22px;
    box-shadow:0 6px 18px rgba(3,27,42,.07);
}

.analytics-card span{
    display:block;
    color:#6b7c88;
    font-size:13px;
    margin-bottom:10px;
}

.analytics-card strong{
    display:block;
    color:var(--pn);
    font-size:30px;
    font-weight:800;
}


/* ANALYTICS */

.analytics-grid{
    display:grid;
    grid-template-columns:1.4fr .8fr;
    gap:24px;
}

.chart-card h3{
    color:var(--pn);
    font-size:18px;
    margin-bottom:26px;
}


/* BAR CHART */

.chart-bars{
    display:flex;
    flex-direction:column;
    gap:22px;
}

.chart-item{
    display:grid;
    grid-template-columns:65px 1fr 45px;
    align-items:center;
    gap:12px;
    font-size:13px;
}

.chart-item > span{
    color:var(--tx);
    font-weight:700;
}

.chart-item b{
    color:var(--or);
    font-size:13px;
}

.chart-track{
    height:12px;
    background:var(--lt);
    border-radius:999px;
    overflow:hidden;
}

.chart-fill{
    height:100%;
    background:var(--or);
    border-radius:999px;
}


/* PROGRESS */

.progress-chart{
    min-height:230px;
    display:flex;
    flex-direction:column;
    align-items:center;
    justify-content:center;
    gap:20px;
}

.progress-circle{
    width:150px;
    height:150px;
    border-radius:50%;
    display:grid;
    place-items:center;
    background:
        conic-gradient(
            var(--or) 0 67%,
            var(--lt) 67% 100%
        );
    position:relative;
}

.progress-circle::after{
    content:"";
    position:absolute;
    width:112px;
    height:112px;
    background:#fff;
    border-radius:50%;
}

.progress-circle span{
    position:relative;
    z-index:1;
    color:var(--pn);
    font-size:27px;
    font-weight:800;
}

.progress-chart p{
    color:#6b7c88;
    font-size:14px;
}


/* REPORT */

.report-card{
    background:#fff;
    border:1px solid var(--bd);
    border-radius:14px;
    padding:24px;
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:24px;
    box-shadow:0 6px 18px rgba(3,27,42,.07);
}

.report-card > div{
    display:flex;
    align-items:center;
    gap:18px;
}

.report-icon{
    width:52px;
    height:52px;
    display:grid;
    place-items:center;
    border-radius:12px;
    background:var(--pn);
    color:var(--or);
    font-size:23px;
}

.report-card h3{
    color:var(--pn);
    font-size:17px;
}

.report-card p{
    margin-top:6px;
    color:#6b7c88;
    font-size:13px;
    line-height:1.7;
}

.report-card .btn{
    width:auto;
    min-width:150px;
}


/* DASHBOARD MODAL FORMS */

.dashboard-form{
    display:flex;
    flex-direction:column;
    gap:7px;
}

.dashboard-form label{
    font-size:13px;
    font-weight:700;
    color:var(--pn);
}

.dashboard-form input,
.dashboard-form textarea,
.dashboard-form select{
    width:100%;
    min-height:44px;
    padding:10px 13px;
    border:1px solid var(--bd);
    border-radius:10px;
    font:14px Tajawal,sans-serif;
    color:var(--tx);
    background:#fff;
}

.dashboard-form textarea{
    resize:vertical;
    min-height:90px;
}

.dashboard-form input:focus,
.dashboard-form textarea:focus,
.dashboard-form select:focus{
    outline:none;
    border-color:var(--or);
}

.dashboard-form .form-row{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:12px;
}


/* RESPONSIVE */

@media(max-width:1000px){

    .analytics-cards{
        grid-template-columns:repeat(2,1fr);
    }

    .analytics-grid{
        grid-template-columns:1fr;
    }

    .sponsor-dashboard-grid{
        grid-template-columns:repeat(2,1fr);
    }
}

@media(max-width:640px){

    .dashboard-heading{
        align-items:stretch;
        flex-direction:column;
    }

    .dashboard-heading .btn{
        width:100%;
    }

    .analytics-cards{
        grid-template-columns:1fr 1fr;
    }

    .analytics-card strong{
        font-size:25px;
    }

    .sponsor-dashboard-grid{
        grid-template-columns:1fr 1fr;
    }

    .report-card{
        flex-direction:column;
        align-items:stretch;
    }

    .report-card > div{
        align-items:flex-start;
    }

    .report-card .btn{
        width:100%;
    }

    .dashboard-form .form-row{
        grid-template-columns:1fr;
    }

}

.dashboard-container {
    max-width: 1000px;
    margin: 120px auto 40px;
    padding: 0 20px;
    width: 100%;
    box-sizing: border-box;
}
@media (max-width: 720px){
    .dashboard-container{ margin-top: 90px; padding: 0 14px; }
}



/* Fix long dashboard modals */
#modal {
    position: fixed;
    inset: 0;
    z-index: 1000;
    display: none;
    align-items: flex-start;
    justify-content: center;
    overflow-y: auto;
    padding: 20px 12px;
}

#modal.show {
    display: flex;
}

#modal #box {
    width: min(500px, 100%);
    max-height: calc(100vh - 40px);
    margin: auto 0;
    padding: 24px;
    box-sizing: border-box;
    overflow-y: auto;
    flex-shrink: 0;
}

#modal #box .dashboard-form {
    display: flex;
    flex-direction: column;
    gap: 10px;
}

#modal #box .dashboard-form input,
#modal #box .dashboard-form textarea {
    width: 100%;
    box-sizing: border-box;
}

/* Compact event create/edit modal — scoped via .ev-modal on #box so
   other dashboard modals (committee, task, sponsor) keep their defaults. */
#modal #box.ev-modal {
    width: min(620px, 100%);
    max-height: 85vh;
    overflow-y: auto;
    margin: auto 0;
    padding: 22px 24px;
}
#modal #box.ev-modal .dashboard-form {
    gap: 10px;
}
#modal #box.ev-modal .dashboard-form label {
    margin-bottom: 0;
}
#modal #box.ev-modal .dashboard-form input,
#modal #box.ev-modal .dashboard-form textarea,
#modal #box.ev-modal .dashboard-form select {
    min-height: 38px;
    padding: 8px 12px;
    font-size: 13.5px;
}
/* Checkboxes must stay at their native size — the generic input rule
   above would otherwise stretch them into a 38px square. Keep them
   inline with their label text. */
#modal #box.ev-modal .dashboard-form input[type="checkbox"] {
    min-height: 0;
    width: 16px;
    height: 16px;
    padding: 0;
    margin: 0;
    flex: 0 0 auto;
    vertical-align: middle;
    accent-color: var(--pn, #1b365d);
}
#modal #box.ev-modal .dashboard-form label:has(> input[type="checkbox"]) {
    display: flex;
    align-items: center;
    gap: 8px;
    font-size: 13.5px;
    margin: 4px 0;
    cursor: pointer;
}
/* Date+time pairs: two columns on desktop, stack on mobile. */
#modal #box.ev-modal .dashboard-form .form-row,
#modal #box.ev-modal .dashboard-form .lb-field-row {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 12px;
}
@media (max-width: 560px) {
    #modal #box.ev-modal .dashboard-form .form-row,
    #modal #box.ev-modal .dashboard-form .lb-field-row {
        grid-template-columns: 1fr;
    }
}
/* Compact save button pinned to the bottom-right, no stretching. */
#modal #box.ev-modal .dashboard-form > .btn,
#modal #box.ev-modal .dashboard-form .row {
    margin-top: 14px;
    justify-content: flex-end;
}
#modal #box.ev-modal .dashboard-form .btn,
#modal #box.ev-modal .dashboard-form .row .btn {
    height: 38px;
    width: auto;
    flex: 0 0 auto;
    align-self: flex-end;
    padding: 0 20px;
    font-size: 14px;
    border-radius: 8px;
}

#modal #box .dashboard-form textarea {
    min-height: 90px;
}

@media (max-width: 600px) {
    #modal {
        padding: 10px;
    }

    #modal #box {
        padding: 18px;
        max-height: calc(100vh - 20px);
    }
    /* All scoped modal variants also respect the mobile viewport. */
    #modal #box.ev-modal,
    #modal #box.int-modal,
    #modal #box.cl-modal,
    #modal #box.modal-wide,
    #modal #box.box--wide{
        width: 100%;
        max-height: calc(100vh - 20px);
    }
}
