*{box-sizing:border-box}html,body{margin:0;font-family:Inter,Arial,sans-serif;background:#f4f8fb;color:#18384e}a{text-decoration:none}.app-shell{min-height:100vh;display:grid;grid-template-columns:270px 1fr}.sidebar{position:sticky;top:0;height:100vh;background:linear-gradient(180deg,#082f51,#041f36);color:#fff;padding:22px 16px;display:flex;flex-direction:column}.brand{display:flex;align-items:center;gap:12px;padding:0 4px 22px}.brand img{width:56px;height:56px;object-fit:contain}.brand strong{display:block;font-size:11px;line-height:1.3}.brand span{display:block;margin-top:3px;color:#8fc7e7;font-size:10px}.nav{display:grid;gap:5px}.nav a{display:flex;gap:11px;align-items:center;color:#c9dbea;padding:12px 13px;border-radius:10px;font-size:13px}.nav a:hover,.nav a.active{background:#155aa0;color:#fff}.sidebar-footer{margin-top:auto;padding:18px 10px 6px;color:#7294ad;font-size:10px}.main{min-width:0}.topbar{height:78px;background:#fff;border-bottom:1px solid #dfe9ef;display:flex;align-items:center;gap:22px;padding:0 28px;position:sticky;top:0;z-index:20}.search-wrap{flex:1}.search-wrap input{width:min(650px,100%);height:44px;border:1px solid #d5e2ea;border-radius:10px;padding:0 15px;font-size:13px}.user-box{display:flex;align-items:center;gap:10px;margin-left:auto}.user-box strong{display:block;font-size:12px}.user-box span{display:block;color:#8295a1;font-size:10px}.avatar{width:38px;height:38px;border-radius:50%;display:grid;place-items:center;background:#e7f2fb;color:#0a4f86;font-weight:900}.logout{margin-left:8px;color:#9b3944;font-size:11px}.mobile-menu{display:none}.content{padding:28px}.page-head{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;margin-bottom:24px}.eyebrow{color:#0d8bcf;font-size:9px;font-weight:900;letter-spacing:.15em}.page-head h1{margin:5px 0 4px;color:#082f50;font-size:31px}.page-head p{margin:0;color:#738995;font-size:13px}.today{color:#6c8391;font-size:11px}.kpi-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-bottom:20px}.kpi{background:#fff;border:1px solid #dfe8ee;border-radius:14px;padding:19px;box-shadow:0 8px 24px rgba(8,47,78,.04)}.kpi span{display:block;color:#6e8492;font-size:11px}.kpi strong{display:block;margin:5px 0;color:#092f52;font-size:30px}.kpi small{color:#93a4ae;font-size:9px}.panel-grid{display:grid;grid-template-columns:1.35fr .65fr;gap:18px}.panel{background:#fff;border:1px solid #dce7ed;border-radius:15px;padding:20px;box-shadow:0 9px 28px rgba(7,46,75,.045)}.panel h2{margin:4px 0 0;color:#0a3355;font-size:18px}.quick-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px;margin-top:18px}.quick-grid a{padding:18px;border-radius:11px;background:#f1f7fb;color:#135783;font-size:12px;font-weight:800}.roadmap{display:grid;gap:9px;margin-top:16px;color:#6a8291;font-size:12px}.roadmap .done{color:#168253}.table-tools{display:flex;justify-content:flex-end;margin-bottom:14px}.table-tools input{width:min(360px,100%);height:40px;border:1px solid #d6e2e9;border-radius:9px;padding:0 12px}.table-wrap{overflow:auto}.data-table{width:100%;border-collapse:collapse;font-size:11px}.data-table th{padding:11px 10px;text-align:left;background:#f6f9fb;color:#607786;border-bottom:1px solid #dce7ed;white-space:nowrap}.data-table td{padding:10px;border-bottom:1px solid #edf2f5;vertical-align:middle}.status{display:inline-block;padding:5px 8px;border-radius:999px;font-size:9px;font-weight:800}.status.ok{background:#e4f7ec;color:#157344}.status.off{background:#f1f2f3;color:#687781}.status.bad{background:#fde8eb;color:#aa3541}.athlete-thumb{width:38px;height:38px;border-radius:9px;object-fit:cover;background:#edf3f6}.app-footer{padding:12px 28px 24px;color:#91a2ac;font-size:9px}.coming{text-align:center;padding:60px 20px}.login-page{min-height:100vh;display:grid;place-items:center;background:radial-gradient(circle at 70% 10%,#dff3ff,transparent 32%),linear-gradient(135deg,#062f51,#041e34)}.login-card{width:min(430px,calc(100% - 28px));padding:34px;background:#fff;border-radius:20px;box-shadow:0 25px 80px rgba(0,0,0,.25)}.login-logo{width:74px;height:74px;display:block;margin-bottom:16px}.login-kicker{color:#0b86c8;font-size:9px;font-weight:900;letter-spacing:.12em}.login-card h1{margin:7px 0;color:#083253}.login-card h1 span{color:#0d91d4}.login-card p{color:#778d99;font-size:12px}.login-card form{display:grid;gap:9px;margin-top:22px}.login-card label{font-size:10px;font-weight:800;color:#496576}.login-card input{height:43px;border:1px solid #d6e2e9;border-radius:9px;padding:0 12px}.login-card button{height:44px;border:0;border-radius:9px;background:#08375d;color:#fff;font-weight:900;cursor:pointer;margin-top:7px}.login-card small{display:block;text-align:center;color:#9babb4;margin-top:18px}.alert{padding:10px 12px;border-radius:9px;background:#eef6fb;color:#3f6479;font-size:11px}.alert.error{background:#fdecef;color:#9a3540}@media(max-width:950px){.app-shell{grid-template-columns:1fr}.sidebar{position:fixed;left:-280px;width:270px;z-index:50;transition:.2s}.menu-open .sidebar{left:0}.mobile-menu{display:block;border:0;background:#edf4f8;border-radius:8px;width:40px;height:40px}.kpi-grid{grid-template-columns:repeat(2,1fr)}.panel-grid{grid-template-columns:1fr}}@media(max-width:600px){.topbar{padding:0 14px}.user-box>div:not(.avatar),.logout{display:none}.content{padding:18px 14px}.page-head{align-items:flex-start;flex-direction:column}.kpi-grid{grid-template-columns:1fr}.quick-grid{grid-template-columns:1fr}}
.logout-form{margin:0}.logout-form .logout{border:0;background:transparent;cursor:pointer;margin-left:8px;color:#9b3944;font-size:16px;padding:6px}


/* =========================================================
   APP2027 V1.0.3 — DASHBOARD VISUAL / CHART FIX
   ========================================================= */
:root{
  --sidebar-w:260px;
  --topbar-h:82px;
  --navy:#07385e;
  --blue:#087fc1;
  --page:#f4f8fb;
  --border:#dce7ee;
}
.app-shell{grid-template-columns:var(--sidebar-w) minmax(0,1fr)}
.sidebar{width:var(--sidebar-w);padding:24px 17px}
.brand{min-height:72px;padding:0 4px 24px}
.brand-logo-wrap{width:60px;flex:0 0 60px}
.brand-logo-wrap img,.brand img{width:60px;height:60px}
.brand-copy strong{font-size:11px;letter-spacing:.01em}
.brand-copy span{font-size:9px}
.nav a{min-height:45px;padding:0 14px;border-radius:8px;font-size:12px}
.nav a i{width:20px;font-size:15px;text-align:center}
.nav-arrow{margin-left:auto;font-size:17px;font-weight:400}
.sidebar-art{margin-top:auto;padding:18px 10px 6px;color:#fff}
.petanque-mark{font-size:27px;font-weight:800}
.dots{font-size:11px;margin:0 0 6px 20px}
.motto{font-size:9px;line-height:1.55;font-weight:800;letter-spacing:.05em}
.motto-line{width:34px;height:2px;background:#16a2dc;margin-top:8px}

.topbar{height:var(--topbar-h);padding:0 30px;gap:28px}
.portal-title{min-width:210px}
.portal-title strong{display:block;color:#0b3859;font-size:15px}
.portal-title strong span{color:#1596d2}
.portal-title small{display:block;color:#8396a2;font-size:9px;margin-top:3px}
.search-wrap{position:relative;max-width:720px}
.search-wrap input{height:42px;padding:0 48px 0 38px;background:#f7fafc}
.search-icon{position:absolute;left:14px;top:50%;transform:translateY(-50%);color:#78909e;font-size:13px}
.search-button{position:absolute;right:4px;top:4px;width:34px;height:34px;border:0;border-radius:7px;background:#0a7dbb;color:#fff}
.top-actions{display:flex;align-items:center;gap:14px;margin-left:auto}
.notification-btn{position:relative;border:0;background:transparent;color:#416276;font-size:17px}
.notification-btn span{position:absolute;right:-5px;top:-6px;background:#ef5a61;color:#fff;border-radius:50%;font-size:8px;min-width:15px;height:15px;display:grid;place-items:center}
.top-divider{width:1px;height:30px;background:#dce5ea}
.user-copy strong{font-size:11px}
.user-copy span{font-size:9px}

.content{padding:27px 30px 22px;max-width:1800px;width:100%;margin:0 auto}
.mockup-head{margin-bottom:20px;align-items:center}
.mockup-head h1{font-size:26px;margin:0 0 5px}
.date-time{text-align:right;color:#78909d;font-size:10px}
.date-time span,.date-time b{display:block}
.date-time b{margin-top:5px;color:#31566d}

.kpi-grid-8{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:13px;
  margin-bottom:16px
}
.kpi-card{
  min-height:104px;
  background:#fff;
  border:1px solid var(--border);
  border-radius:12px;
  padding:16px;
  display:flex;
  align-items:center;
  gap:13px;
  position:relative;
  overflow:hidden;
  box-shadow:0 5px 18px rgba(9,48,77,.045)
}
.kpi-icon{width:43px;height:43px;flex:0 0 43px;border-radius:10px;display:grid;place-items:center;font-size:19px}
.kpi-copy{min-width:0}
.kpi-copy strong{display:block;font-size:24px;line-height:1;color:#123d5c}
.kpi-copy span{display:block;font-size:11px;font-weight:800;color:#274e67;margin-top:6px}
.kpi-copy small{display:block;font-size:8px;color:#8799a5;margin-top:4px;white-space:nowrap}
.mini-chip{position:absolute;right:10px;top:10px;font-size:7px;font-weight:800;color:#1a8b61;background:#e7f8f0;padding:3px 5px;border-radius:5px}
.tone-blue .kpi-icon{background:#e6f2fb;color:#187ebc}.tone-green .kpi-icon{background:#e5f7ee;color:#16965a}
.tone-pink .kpi-icon{background:#fdebf1;color:#d9537d}.tone-sky .kpi-icon{background:#e7f3fc;color:#3489d3}
.tone-purple .kpi-icon{background:#f0ebfb;color:#7556bc}.tone-gold .kpi-icon{background:#fff4dc;color:#d99410}
.tone-mint .kpi-icon{background:#e5f8f5;color:#168d7e}
.ring-mini{margin-left:auto;width:35px;height:35px;border-radius:50%;border:4px solid #ef8dad;display:grid;place-items:center;font-size:7px;color:#a64c69}
.ring-mini.blue{border-color:#6aa9e2;color:#3978ae}

.dashboard-grid{
  display:grid;
  grid-template-columns:minmax(0,1.62fr) minmax(310px,.78fr);
  gap:16px;
  align-items:stretch
}
.dashboard-grid .panel{min-width:0;padding:18px;border-radius:12px}
.chart-panel{height:330px;display:flex;flex-direction:column}
.chart-panel.wide{height:330px}
.panel-title-row{display:flex;align-items:center;justify-content:space-between;gap:14px;min-height:28px}
.panel-title-row h2{font-size:13px;margin:0}
.legend{display:flex;gap:14px;font-size:8px;color:#738b99}
.legend span{display:flex;align-items:center;gap:5px}
.dot{display:inline-block;width:7px;height:7px;border-radius:50%}
.dot.blue{background:#3584e7}.dot.pink{background:#f25d89}.dot.green{background:#19b56b}.dot.gray{background:#a7abad}.dot.gold{background:#f2ad1f}

.chart-box{position:relative;height:255px;min-height:255px;max-height:255px;margin-top:13px}
.chart-box canvas{display:block!important;width:100%!important;height:255px!important;max-height:255px!important}

.donut-layout{
  flex:1;
  display:grid;
  grid-template-columns:minmax(150px,190px) minmax(110px,1fr);
  align-items:center;
  justify-content:center;
  gap:16px;
  min-height:0
}
.donut-box{
  position:relative;
  width:185px;
  height:185px;
  max-width:185px;
  max-height:185px;
  margin:auto
}
.donut-box canvas{
  display:block!important;
  width:185px!important;
  height:185px!important;
  max-width:185px!important;
  max-height:185px!important
}
.donut-center{position:absolute;inset:0;display:grid;place-content:center;text-align:center;pointer-events:none}
.donut-center strong{font-size:24px;color:#123d5c;line-height:1}
.donut-center span{font-size:8px;color:#8b9ca6;margin-top:5px}
.status-legend{display:grid;gap:12px}
.status-legend div{display:grid;grid-template-columns:10px 1fr auto;gap:7px;align-items:center;font-size:9px;color:#6b8291}
.status-legend b{color:#254c64;font-size:10px}

.recent-panel,.activity-panel{height:300px;overflow:hidden}
.outline-btn{border:1px solid #cbdce6;background:#fff;color:#39718f;border-radius:7px;padding:7px 10px;font-size:8px;font-weight:700}
.dashboard-table{width:100%;border-collapse:collapse;margin-top:10px;font-size:9px}
.dashboard-table th{background:#f5f8fa;color:#758995;text-align:left;padding:8px;border-bottom:1px solid #e1e9ee}
.dashboard-table td{padding:7px 8px;border-bottom:1px solid #edf2f5;color:#536e7e}
.dashboard-table td img{width:28px;height:28px;object-fit:cover;border-radius:50%;background:#edf3f6}
.dashboard-table td strong{color:#284f67;font-size:9px}

.activity-list{margin-top:8px}
.activity-item{display:grid;grid-template-columns:32px 1fr auto;gap:9px;align-items:center;padding:9px 0;border-bottom:1px solid #edf2f5}
.act-icon{width:30px;height:30px;border-radius:8px;display:grid;place-items:center;font-size:12px}
.act-icon.blue{background:#e8f2fb;color:#2682bc}.act-icon.green{background:#e8f7ef;color:#20935e}.act-icon.teal{background:#e6f7f6;color:#1b9185}.act-icon.red{background:#fcebed;color:#c9525e}
.activity-item strong{display:block;font-size:9px;color:#31566d}.activity-item small{display:block;font-size:7px;color:#93a1a9;margin-top:2px}.activity-item time{font-size:7px;color:#9aa8b0}
.app-footer{display:flex;justify-content:space-between;gap:20px;padding:15px 30px 22px;font-size:8px}

@media(max-width:1250px){
  .kpi-grid-8{grid-template-columns:repeat(2,minmax(0,1fr))}
  .dashboard-grid{grid-template-columns:1fr}
  .chart-panel,.chart-panel.wide{height:330px}
  .recent-panel,.activity-panel{height:auto}
}
@media(max-width:950px){
  .app-shell{grid-template-columns:1fr}
  .sidebar{left:calc(-1 * var(--sidebar-w))}
  .portal-title{display:none}
  .content{padding:20px}
}
@media(max-width:650px){
  .kpi-grid-8{grid-template-columns:1fr}
  .topbar{padding:0 12px;gap:10px}
  .search-wrap{max-width:none}
  .user-copy,.top-divider{display:none}
  .content{padding:16px 12px}
  .donut-layout{grid-template-columns:1fr}
  .chart-panel{height:auto;min-height:360px}
  .donut-box,.donut-box canvas{width:170px!important;height:170px!important;max-width:170px!important;max-height:170px!important}
  .status-legend{grid-template-columns:repeat(3,1fr)}
  .dashboard-table{min-width:720px}
  .app-footer{flex-direction:column}
}


/* =========================================================
   APP2027 V1.0.4a — STATUS DOUGHNUT HARD SIZE LOCK
   Keep this block LAST in the stylesheet.
   ========================================================= */
.chart-panel .donut-layout{
    min-height:220px !important;
    height:220px !important;
    max-height:220px !important;
    overflow:hidden !important;
}
.chart-panel .app2027-status-chart{
    position:relative !important;
    display:block !important;
    width:185px !important;
    height:185px !important;
    min-width:185px !important;
    min-height:185px !important;
    max-width:185px !important;
    max-height:185px !important;
    margin:auto !important;
    overflow:hidden !important;
    flex:none !important;
}
.chart-panel .app2027-status-chart canvas,
#statusChart{
    display:block !important;
    box-sizing:border-box !important;
    width:185px !important;
    height:185px !important;
    min-width:185px !important;
    min-height:185px !important;
    max-width:185px !important;
    max-height:185px !important;
}
@media(max-width:650px){
    .chart-panel .donut-layout{
        height:auto !important;
        max-height:none !important;
        min-height:290px !important;
    }
    .chart-panel .app2027-status-chart,
    .chart-panel .app2027-status-chart canvas,
    #statusChart{
        width:170px !important;
        height:170px !important;
        min-width:170px !important;
        min-height:170px !important;
        max-width:170px !important;
        max-height:170px !important;
    }
}

/* APP2027 V1.1 — Club/Athlete profile */
.profile-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
.profile-grid>div{padding:14px;border:1px solid #e0e9ee;border-radius:10px;background:#f9fbfc}
.profile-grid small{display:block;color:#8497a3;font-size:9px;margin-bottom:5px}
.profile-grid strong{color:#173f5b;font-size:12px}
.athlete-thumb{width:34px;height:34px;border-radius:50%;object-fit:cover;background:#edf3f6}
@media(max-width:700px){.athlete-profile>div{grid-template-columns:1fr!important}.profile-grid{grid-template-columns:1fr 1fr}}

/* APP2027 V1.2 — Athlete Management */
.management-form{margin-top:14px}.management-form label{display:block}
.management-form select{width:100%;height:42px;border:1px solid #d6e2e9;border-radius:8px;background:#fff;padding:0 10px;color:#294f66}
.form-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:20px}
.primary-btn{display:inline-flex;align-items:center;gap:7px;border:0;border-radius:8px;background:#0b6fae;color:#fff;padding:9px 13px;font-size:10px;font-weight:800;cursor:pointer}


/* =========================================================
   APP2027 V1.2.1 — UI REGRESSION FIX
   Stable dashboard layer. Keep LAST.
   ========================================================= */
html,body{margin:0;min-height:100%;background:#f4f8fb;color:#123d5c}
*,*::before,*::after{box-sizing:border-box}

.app-shell{
  display:grid !important;
  grid-template-columns:260px minmax(0,1fr) !important;
  min-height:100vh !important;
}
.sidebar{
  position:fixed !important;
  inset:0 auto 0 0 !important;
  width:260px !important;
  height:100vh !important;
  overflow-y:auto !important;
  z-index:30 !important;
}
.main{
  grid-column:2 !important;
  min-width:0 !important;
  width:100% !important;
}
.topbar{
  display:flex !important;
  align-items:center !important;
  height:82px !important;
  min-height:82px !important;
  padding:0 30px !important;
  background:#fff !important;
  border-bottom:1px solid #dce7ee !important;
}
.content{
  display:block !important;
  width:100% !important;
  max-width:1800px !important;
  margin:0 auto !important;
  padding:27px 30px 22px !important;
}
.page-head.mockup-head{
  display:flex !important;
  align-items:center !important;
  justify-content:space-between !important;
  gap:20px !important;
  margin:0 0 20px !important;
}

.content .kpi-grid.kpi-grid-8{
  display:grid !important;
  grid-template-columns:repeat(4,minmax(0,1fr)) !important;
  gap:13px !important;
  margin:0 0 16px !important;
}
.content .kpi-grid.kpi-grid-8 > .kpi-card{
  display:flex !important;
  align-items:center !important;
  gap:13px !important;
  min-width:0 !important;
  min-height:104px !important;
  margin:0 !important;
  padding:16px !important;
  background:#fff !important;
  border:1px solid #dce7ee !important;
  border-radius:12px !important;
  box-shadow:0 5px 18px rgba(9,48,77,.045) !important;
  position:relative !important;
  overflow:hidden !important;
}
.content .kpi-card .kpi-icon{
  display:grid !important;
  place-items:center !important;
  width:43px !important;height:43px !important;
  flex:0 0 43px !important;
  border-radius:10px !important;
}
.content .kpi-card .kpi-copy{display:block !important;min-width:0 !important}
.content .kpi-card .kpi-copy strong{
  display:block !important;font-size:24px !important;line-height:1 !important;
}
.content .kpi-card .kpi-copy span{
  display:block !important;font-size:11px !important;line-height:1.25 !important;margin-top:6px !important;
}
.content .kpi-card .kpi-copy small{
  display:block !important;font-size:8px !important;line-height:1.25 !important;margin-top:4px !important;
}
.content .kpi-card .mini-chip{display:block !important;position:absolute !important;right:10px !important;top:10px !important}
.content .kpi-card .ring-mini{display:grid !important;place-items:center !important;margin-left:auto !important}

.content .dashboard-grid{
  display:grid !important;
  grid-template-columns:minmax(0,1.62fr) minmax(310px,.78fr) !important;
  gap:16px !important;
  align-items:stretch !important;
}
.content .dashboard-grid > .panel{
  display:block !important;
  min-width:0 !important;
  margin:0 !important;
  padding:18px !important;
  background:#fff !important;
  border:1px solid #dce7ee !important;
  border-radius:12px !important;
  box-shadow:0 5px 18px rgba(9,48,77,.035) !important;
}
.content .dashboard-grid > .chart-panel{
  height:330px !important;
  min-height:330px !important;
  max-height:330px !important;
  overflow:hidden !important;
}
.content .dashboard-grid .panel-title-row{
  display:flex !important;align-items:center !important;justify-content:space-between !important;gap:14px !important;
}
.content .dashboard-grid .chart-box{
  position:relative !important;
  display:block !important;
  width:100% !important;
  height:255px !important;
  min-height:255px !important;
  max-height:255px !important;
  margin-top:13px !important;
  overflow:hidden !important;
}
.content .dashboard-grid .chart-box > canvas{
  display:block !important;
  width:100% !important;
  height:255px !important;
  max-height:255px !important;
}
.content .dashboard-grid .donut-layout{
  display:grid !important;
  grid-template-columns:190px minmax(110px,1fr) !important;
  align-items:center !important;
  gap:16px !important;
  height:220px !important;
  min-height:220px !important;
  max-height:220px !important;
  overflow:hidden !important;
}
.content .dashboard-grid .app2027-status-chart,
.content .dashboard-grid .donut-box{
  position:relative !important;
  width:185px !important;height:185px !important;
  min-width:185px !important;min-height:185px !important;
  max-width:185px !important;max-height:185px !important;
  margin:auto !important;
  overflow:hidden !important;
}
.content #statusChart{
  display:block !important;
  width:185px !important;height:185px !important;
  min-width:185px !important;min-height:185px !important;
  max-width:185px !important;max-height:185px !important;
}
.content .status-legend{display:grid !important;gap:12px !important}
.content .status-legend > div{
  display:grid !important;grid-template-columns:10px 1fr auto !important;gap:7px !important;align-items:center !important;
}
.content .recent-panel,.content .activity-panel{
  height:300px !important;
  min-height:300px !important;
  max-height:300px !important;
  overflow:hidden !important;
}
.content .dashboard-table{
  display:table !important;
  width:100% !important;
  border-collapse:collapse !important;
  table-layout:auto !important;
  margin-top:10px !important;
}
.content .dashboard-table thead{display:table-header-group !important}
.content .dashboard-table tbody{display:table-row-group !important}
.content .dashboard-table tr{display:table-row !important}
.content .dashboard-table th,.content .dashboard-table td{display:table-cell !important}
.content .activity-list{display:block !important;margin-top:8px !important}
.content .activity-item{
  display:grid !important;
  grid-template-columns:32px minmax(0,1fr) auto !important;
  gap:9px !important;
  align-items:center !important;
  padding:9px 0 !important;
}

@media(max-width:1250px){
  .content .kpi-grid.kpi-grid-8{grid-template-columns:repeat(2,minmax(0,1fr)) !important}
  .content .dashboard-grid{grid-template-columns:1fr !important}
  .content .recent-panel,.content .activity-panel{
    height:auto !important;min-height:0 !important;max-height:none !important;
  }
}
@media(max-width:950px){
  .app-shell{display:block !important}
  .sidebar{transform:translateX(-100%) !important}
  .main{width:100% !important}
  .content{padding:20px !important}
}
@media(max-width:650px){
  .content .kpi-grid.kpi-grid-8{grid-template-columns:1fr !important}
  .content .dashboard-grid > .chart-panel{
    height:auto !important;min-height:330px !important;max-height:none !important;
  }
  .content .dashboard-grid .donut-layout{
    grid-template-columns:1fr !important;
    height:auto !important;min-height:290px !important;max-height:none !important;
  }
  .content .dashboard-grid .app2027-status-chart,
  .content .dashboard-grid .donut-box,
  .content #statusChart{
    width:170px !important;height:170px !important;
    min-width:170px !important;min-height:170px !important;
    max-width:170px !important;max-height:170px !important;
  }
}

/* APP2027 V1.3 — Full Athlete Profile */
.athlete-edit-form{display:grid;gap:16px}.edit-section{margin:0}
.form-grid{display:grid;gap:12px;margin-top:14px}.form-grid.cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}
.form-grid label{display:block}.form-grid label small{display:block;color:#748b99;font-size:9px;font-weight:700;margin-bottom:5px}
.form-grid input,.form-grid select{width:100%;height:42px;border:1px solid #d6e2e9;border-radius:8px;background:#fff;padding:0 10px;color:#294f66;font:inherit}
.form-grid input:focus,.form-grid select:focus{outline:none;border-color:#5ca8d3;box-shadow:0 0 0 3px rgba(49,145,198,.10)}
.secure-label{font-size:8px;color:#187e59;background:#e8f7ef;border-radius:999px;padding:5px 8px}
.athlete-profile-layout{display:grid;grid-template-columns:155px minmax(0,1fr);gap:24px;align-items:start}
.athlete-photo-box{width:145px;height:185px;border-radius:13px;overflow:hidden;background:#edf3f6}
.athlete-photo-box img{width:100%;height:100%;object-fit:cover}
.text-danger{color:#b63846!important}
@media(max-width:850px){.form-grid.cols-3{grid-template-columns:1fr 1fr}.athlete-profile-layout{grid-template-columns:1fr}.athlete-photo-box{margin:auto}}
@media(max-width:600px){.form-grid.cols-3{grid-template-columns:1fr}.profile-grid{grid-template-columns:1fr!important}}

/* APP2027 V1.3.1 — Complete Athlete Card */
.athlete-page-head{align-items:center}
.athlete-actions{display:flex;gap:8px}
.athlete-identity-card{margin-bottom:16px}
.athlete-id-badges{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px}
.profile-grid-main{align-content:start}
.athlete-card-sections{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.athlete-section{margin:0;min-width:0}
.athlete-section .panel-title-row{padding-bottom:11px;border-bottom:1px solid #e7eef2}
.athlete-section .panel-title-row h2{display:flex;align-items:center;gap:8px}
.disciplinary-card.has-penalty{border-color:#efb4bb!important;background:#fffafb!important}
.disciplinary-card.has-penalty .panel-title-row h2{color:#a93543!important}
.comments-box{margin-top:14px;min-height:65px;padding:13px;border-radius:9px;background:#f7fafc;color:#466476;font-size:11px;line-height:1.6}
.system-section{grid-column:1/-1}
.system-note{margin:12px 0 0;color:#899ba6;font-size:9px}
.system-note code{font-family:monospace;color:#5d7380}
@media(max-width:1100px){.athlete-card-sections{grid-template-columns:1fr}}

/* APP2027 V1.4 — Disciplinary module */
.disciplinary-kpis{grid-template-columns:minmax(230px,300px)!important}
.module-search{width:min(340px,100%);height:38px;border:1px solid #d6e2e9;border-radius:8px;padding:0 11px;background:#fff}
.empty-cell{text-align:center!important;color:#899aa4!important;padding:26px!important}

/* APP2027 V1.4.2 — Global Search */
.search-results-grid{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(320px,.75fr);gap:16px;align-items:start}
.result-count{display:inline-grid;place-items:center;min-width:28px;height:24px;padding:0 8px;border-radius:999px;background:#e9f3f9;color:#176e9e;font-size:9px;font-weight:800}
.search-results-grid .panel{min-width:0}
@media(max-width:1050px){.search-results-grid{grid-template-columns:1fr}}

/* APP2027 V1.4.3 — Athlete list navigation */
.athlete-name-link{color:#214e69;text-decoration:none}
.athlete-name-link:hover{text-decoration:underline;color:#0b6fae}
.data-table .outline-btn{white-space:nowrap}

/* APP2027 V1.5 — New Athlete Registration */
.registration-info{margin:0}
.registration-note{display:flex;align-items:flex-start;gap:12px;padding:14px;border-radius:10px;background:#eef7fc;color:#315f79}
.registration-note>i{font-size:18px;color:#1887c1;margin-top:1px}
.registration-note strong{display:block;font-size:11px;margin-bottom:4px;color:#174c69}
.registration-note span{display:block;font-size:9px;line-height:1.55}
.athlete-created-alert{display:flex;align-items:center;gap:8px;margin-bottom:16px}

/* APP2027 V1.6 — Admin Athlete Lifecycle */
.admin-action-btn{display:inline-flex;align-items:center;gap:7px;border-radius:8px;background:#5d4ab0;color:#fff;padding:9px 13px;font-size:10px;font-weight:800;text-decoration:none}
.admin-workflow-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
.workflow-card{display:grid!important;grid-template-columns:46px minmax(0,1fr);gap:13px;align-items:start}
.workflow-icon{width:46px;height:46px;border-radius:12px;background:#eaf4fb;color:#177fb8;display:grid;place-items:center;font-size:20px}
.workflow-step{font-size:8px;font-weight:900;color:#7d93a1;letter-spacing:.08em}
.workflow-copy h2{font-size:14px;margin:4px 0 7px;color:#173f5b}
.workflow-copy p{font-size:9px;color:#718896;line-height:1.6;margin:0 0 14px}
.workflow-form{display:flex;flex-wrap:wrap;gap:9px;align-items:center;margin-top:12px}
.workflow-form input[type=file]{max-width:100%;font-size:9px}
.workflow-photo-preview{width:112px;height:140px;border-radius:10px;overflow:hidden;background:#edf3f6;border:1px solid #dce7ed}
.workflow-photo-preview img{width:100%;height:100%;object-fit:cover}
.photo-placeholder{height:100%;display:grid;place-content:center;text-align:center;gap:7px;color:#8ba0ac;font-size:8px}
.photo-placeholder i{font-size:28px}
.workflow-ready{border-color:#a8d8bd!important}
.workflow-done{display:flex;gap:9px;align-items:center;padding:12px;background:#eaf8f0;border-radius:9px;color:#23714d}
.workflow-done>i{font-size:20px}.workflow-done strong,.workflow-done span{display:block}.workflow-done strong{font-size:10px}.workflow-done span{font-size:9px;margin-top:2px}
.current-status-line{display:flex;align-items:center;justify-content:space-between;gap:10px;margin:12px 0;padding:10px;border-radius:9px;background:#f6f9fb;font-size:9px}
.status-on{color:#168658}.status-off{color:#c34b58}
.danger-btn{display:inline-flex;align-items:center;gap:7px;border:0;border-radius:8px;background:#c94d59;color:#fff;padding:9px 13px;font-size:10px;font-weight:800;cursor:pointer}
@media(max-width:1200px){.admin-workflow-grid{grid-template-columns:1fr}}

/* APP2027 V1.6.1 — Pending Duplicate Cleanup */
.duplicate-check-card{margin-bottom:16px}
.duplicate-warning{border-color:#efb7bd!important;background:#fffafb!important}
.duplicate-help{font-size:9px;color:#6f8795;line-height:1.6;margin:10px 0 14px}
.danger-zone{margin-top:16px;padding:14px;border:1px solid #efc4c8;border-radius:10px;background:#fff7f8;display:flex;align-items:center;justify-content:space-between;gap:18px}
.danger-zone strong{display:block;color:#9f3440;font-size:10px;margin-bottom:4px}
.danger-zone span{display:block;color:#86666b;font-size:9px;line-height:1.5}
@media(max-width:800px){.danger-zone{align-items:stretch;flex-direction:column}}

/* APP2027 V1.6.2 — Visible pending-record delete action */
.danger-outline-btn{display:inline-flex;align-items:center;gap:7px;border:1px solid #d65c67;border-radius:8px;color:#b43d49;background:#fff;padding:8px 12px;font-size:10px;font-weight:800;text-decoration:none}
.danger-outline-btn:hover{background:#fff3f4}

/* APP2027 V1.6.3 — Admin pending registry table */
.pending-total{min-width:82px;padding:10px 16px;border-radius:11px;background:#eef7fc;text-align:center}
.pending-total span{display:block;font-size:8px;font-weight:800;color:#728b99;text-transform:uppercase}
.pending-total strong{display:block;margin-top:2px;font-size:20px;color:#176e9e}
.pending-actions{display:flex;gap:6px;align-items:center;white-space:nowrap}
.admin-action-btn.compact{padding:7px 9px;font-size:9px}
.page-head-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.nav-subitem{display:flex;align-items:center;gap:9px;padding:8px 14px 8px 24px;color:inherit;text-decoration:none;font-size:9px;opacity:.88}
.nav-subitem:hover{opacity:1}
.status.warn{background:#fff4df;color:#a56a00}
@media(max-width:850px){.pending-actions{align-items:stretch;flex-direction:column}.page-head-actions{width:100%}}

/* APP2027 V1.6.4 — Photo-required activation */
.activation-blocked{display:flex;align-items:flex-start;gap:10px;margin:0 0 12px;padding:12px;border:1px solid #efc0c5;border-radius:9px;background:#fff6f7;color:#9f3e49}
.activation-blocked>i{font-size:18px;margin-top:1px}
.activation-blocked strong{display:block;font-size:10px;margin-bottom:3px}
.activation-blocked span{display:block;font-size:9px;line-height:1.5;color:#7f6267}
.primary-btn:disabled,.outline-btn:disabled{opacity:.45;cursor:not-allowed}

/* APP2027 V1.7 — Health Card activation/email */
.health-card-mail-card{margin-top:16px}
.mail-recipient-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:14px 0}
.mail-recipient-grid>div{padding:11px;border-radius:9px;background:#f6f9fb;border:1px solid #e4edf2;min-width:0}
.mail-recipient-grid small{display:block;font-size:8px;font-weight:800;color:#758d9a;margin-bottom:4px}
.mail-recipient-grid strong{display:block;font-size:9px;color:#234f68;overflow-wrap:anywhere}
@media(max-width:800px){.mail-recipient-grid{grid-template-columns:1fr}}

/* APP2027 V1.8 — Users */
.user-stats-row{margin-bottom:16px}
.user-admin-form{display:grid;gap:14px}
.form-grid.four{display:grid;grid-template-columns:1.15fr 1fr 1fr .75fr;gap:12px}
.form-grid.two{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.user-admin-form label,.security-box label{display:grid;gap:6px}
.user-admin-form label>span,.security-box label>span{font-size:8px;font-weight:800;color:#688392;text-transform:uppercase;letter-spacing:.06em}
.user-admin-form input,.user-admin-form select,.security-box input{
    width:100%;min-height:40px;border:1px solid #dbe7ed;border-radius:8px;background:#fff;padding:0 11px;color:#214b62;font:inherit;font-size:10px
}
.user-admin-form input:focus,.user-admin-form select:focus,.security-box input:focus{outline:2px solid #bfe5f6;border-color:#79c9ea}
.compact-search{min-height:36px;min-width:230px;border:1px solid #dbe7ed;border-radius:8px;padding:0 10px;font-size:9px}
.role-pill{display:inline-flex;padding:5px 8px;border-radius:999px;background:#edf7fb;color:#0878b8;font-size:8px;font-weight:800}
.user-edit-panel{scroll-margin-top:18px}
.user-edit-grid{display:grid;grid-template-columns:1.2fr .8fr;gap:18px}
.user-security-stack{display:grid;gap:12px;align-content:start}
.security-box{padding:16px;border:1px solid #e4edf2;border-radius:11px;background:#f8fbfc;display:grid;gap:10px}
.security-box h3{margin:0;color:#234f68;font-size:12px}
.security-box p{margin:0;color:#6d8795;font-size:9px;line-height:1.55}
.danger-box{border-color:#f0d4d4;background:#fff8f8}
.danger-box h3{color:#9f3333}
.flash-success,.flash-error{margin:0 0 16px;padding:12px 14px;border-radius:9px;font-size:10px;font-weight:700}
.flash-success{background:#edf9f2;border:1px solid #cfead9;color:#237449}
.flash-error{background:#fff1f1;border:1px solid #f0cccc;color:#9c3838}
@media(max-width:1050px){.form-grid.four{grid-template-columns:1fr 1fr}.user-edit-grid{grid-template-columns:1fr}}
@media(max-width:680px){.form-grid.four,.form-grid.two{grid-template-columns:1fr}.compact-search{min-width:0;width:100%}.panel-title-row{align-items:stretch}.user-stats-row{grid-template-columns:1fr 1fr}}

/* APP2027 V1.8.1 — Users visual completion */
.user-kpi-grid{
    display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin:0 0 16px
}
.user-kpi-card{
    min-height:96px;background:#fff;border:1px solid #dce8ee;border-radius:12px;
    box-shadow:0 5px 18px rgba(30,76,100,.045);padding:15px;
    display:flex;align-items:center;gap:13px
}
.user-kpi-icon{
    width:42px;height:42px;flex:0 0 42px;border-radius:11px;background:#edf8fd;
    color:#087db9;display:grid;place-items:center;font-size:17px
}
.user-kpi-card small{display:block;color:#688392;font-size:8px;font-weight:800;text-transform:uppercase;letter-spacing:.05em}
.user-kpi-card strong{display:block;color:#173f5b;font-size:22px;line-height:1.1;margin:3px 0}
.user-kpi-card strong em{font-size:12px;color:#9db0ba;font-style:normal;font-weight:600}
.user-kpi-card p{margin:0;color:#8ba0aa;font-size:8px}
.role-pill{gap:5px;align-items:center}
.role-admin{background:#e9f3ff;color:#1266b3}
.role-power{background:#fff5dd;color:#a56b00}
.role-club{background:#eaf9f3;color:#19815b}
.user-club-cell{display:grid;gap:2px;max-width:250px}
.user-club-cell strong{font-size:9px;color:#234f68}
.user-club-cell small{font-size:7px;color:#8298a4;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.muted-dash{color:#a9b8bf}
.user-manage-btn{display:inline-flex;align-items:center;gap:5px;white-space:nowrap}
#usersTable tbody tr{transition:background .15s ease}
#usersTable tbody tr:hover{background:#f7fbfd}
#usersTable td{vertical-align:middle}
@media(max-width:1100px){.user-kpi-grid{grid-template-columns:1fr 1fr}}
@media(max-width:650px){.user-kpi-grid{grid-template-columns:1fr}}

/* APP2027 V2.0 — Clubs, bulk exports, documents */
.head-actions{display:flex;gap:8px;align-items:center}
.club-admin-form{display:grid;gap:14px}
.form-grid.three{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.club-admin-form label{display:grid;gap:6px}
.club-admin-form label>span{font-size:8px;font-weight:800;color:#688392;text-transform:uppercase;letter-spacing:.05em}
.club-admin-form input,.club-admin-form select{width:100%;min-height:40px;border:1px solid #dbe7ed;border-radius:8px;background:#fff;padding:0 11px;color:#214b62;font:inherit;font-size:10px}
.club-profile-grid{display:grid;grid-template-columns:190px 1fr;gap:22px}
.club-logo-box{position:relative;display:grid;gap:12px;align-content:start}
.club-logo-box>img,.club-logo-fallback{width:150px;height:150px;object-fit:contain;border:1px solid #dce8ee;border-radius:14px;background:#fff;padding:10px}
.club-logo-fallback{display:grid;place-items:center;font-size:42px;color:#9bb0bc}
.club-logo-box>img:not([style*="display: none"]) + .club-logo-fallback{display:none}
.club-logo-box form{display:grid;gap:8px}
.club-logo-box input[type=file]{font-size:8px}
.export-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}
.export-card{display:grid;grid-template-columns:38px 1fr;column-gap:10px;align-items:center;padding:14px;border:1px solid #dce8ee;border-radius:11px;text-decoration:none;background:#fff;color:#234f68}
.export-card i{grid-row:1/3;font-size:20px;color:#0878b8}
.export-card strong{font-size:10px}.export-card span{font-size:8px;color:#7d949f}
.export-card:hover{border-color:#94cde6;box-shadow:0 5px 18px rgba(30,76,100,.06)}
.document-club-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}
.document-club-card{border:1px solid #e1ebf0;border-radius:11px;padding:13px;display:flex;justify-content:space-between;gap:12px;align-items:center}
.document-club-card>div:first-child{display:grid;gap:3px}.document-club-card span{font-size:8px;color:#7b929e}.document-club-card strong{font-size:10px;color:#234f68}
.doc-actions{display:flex;gap:6px;flex-wrap:wrap}.doc-actions a{font-size:8px;font-weight:800;text-decoration:none;padding:7px 8px;border-radius:7px;background:#edf7fb;color:#0878b8}
.roadmap-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}.roadmap-grid>div{padding:12px;border:1px solid #e1ebf0;border-radius:10px;display:grid;gap:4px}.roadmap-grid i{font-size:15px}.roadmap-grid strong{font-size:9px}.roadmap-grid span{font-size:7.5px;color:#7d949f}.roadmap-ok i{color:#2f9e67}.roadmap-next i{color:#d59a1b}
@media(max-width:1000px){.form-grid.three{grid-template-columns:1fr 1fr}.club-profile-grid{grid-template-columns:1fr}.export-grid,.roadmap-grid{grid-template-columns:1fr 1fr}}
@media(max-width:650px){.form-grid.three,.export-grid,.document-club-grid,.roadmap-grid{grid-template-columns:1fr}}

/* APP2027 V2.1 — club account + disciplinary */
.account-action-stack{display:flex;gap:8px;align-items:flex-start;flex-wrap:wrap}
.password-reset-box,.disciplinary-lift-box{font-size:8px}
.password-reset-box summary,.disciplinary-lift-box summary{cursor:pointer;color:#0878b8;font-weight:800}
.password-reset-box form,.disciplinary-lift-box form{margin-top:7px;padding:8px;border:1px solid #dfeaf0;border-radius:8px;background:#f9fcfd;display:grid;gap:6px;min-width:190px}
.password-reset-box input,.disciplinary-lift-box input,textarea{border:1px solid #dbe7ed;border-radius:7px;padding:8px;font:inherit}
.club-admin-form textarea{width:100%;border:1px solid #dbe7ed;border-radius:8px;padding:10px;font:inherit;resize:vertical}

/* APP2027 V2.1.2 — club deactivation cascade */
.danger-zone{border-color:#f1c7c7;background:linear-gradient(180deg,#fff,#fffafa)}
.danger-help{font-size:9px;line-height:1.55;color:#704b4b;max-width:900px}
.danger-btn{display:inline-flex;align-items:center;gap:7px;border:0;border-radius:8px;background:#b93d3d;color:#fff;padding:10px 14px;font-weight:800;font-size:9px;cursor:pointer}
.danger-btn:hover{background:#9f3030}
.pd-clubs-panel{border-left:3px solid #b78b36}
.muted-help{font-size:8px;color:#7c929e;margin-top:-4px}
.inline-reactivate-form{margin:0}

/* APP2027 V2.1.3 — legacy club certificate */
@media(min-width:1100px){.export-grid{grid-template-columns:repeat(4,1fr)}}

/* APP2027 V2.1.4 — MAF export */
.maf-panel{border-left:3px solid #2b8a5f}
.maf-panel .panel-title-row p{font-size:8px;color:#7a929e;margin:3px 0 0}


/* APP2027 V2.2.3 — Admin athlete notifications */
.notification-wrap{position:relative}
.notification-menu{position:absolute;right:0;top:48px;width:min(390px,calc(100vw - 32px));background:#fff;border:1px solid #e5edf2;border-radius:16px;box-shadow:0 18px 50px rgba(24,48,61,.18);z-index:1000;display:none;overflow:hidden}
.notification-wrap.open .notification-menu{display:block}
.notification-head{padding:14px 16px;border-bottom:1px solid #edf2f5;display:flex;justify-content:space-between;gap:12px;align-items:center}
.notification-head strong{font-size:13px;color:#18303d}
.notification-head small{font-size:10px;color:#78909c}
.notification-list{max-height:420px;overflow:auto}
.notification-item{display:flex;gap:11px;padding:12px 15px;text-decoration:none;border-bottom:1px solid #f0f4f6;color:#29434e;background:#fff}
.notification-item:hover{background:#f7fafb}
.notification-item.is-unread{background:#f0f8ff}
.notification-item>i{font-size:18px;margin-top:2px}
.notification-item>span{display:flex;flex-direction:column;gap:3px;min-width:0}
.notification-item strong{font-size:12px}
.notification-item small{font-size:11px;color:#607d8b;white-space:normal}
.notification-item em{font-style:normal;font-size:9px;color:#90a4ae}
.notification-empty{padding:22px 16px;text-align:center;font-size:11px;color:#78909c}

/* APP2027 V2.3.0 admin completion */
.audit-filters{display:flex;gap:10px;align-items:end;flex-wrap:wrap;margin-bottom:16px}.audit-filters label{min-width:190px}.audit-details{max-width:520px;white-space:normal;word-break:break-word;font-size:10px}
