:root{--navy:#0c1728;--navy2:#13233a;--blue:#2d8cff;--mint:#3fe0c5;--bg:#f4f7fb;--ink:#17253a;--muted:#6d7b90;--line:#e3e9f1;--white:#fff;--amber:#ffb648;--red:#ee6472;--violet:#8b7cf6;--coral:#f47d6b;--shadow:0 10px 30px rgba(18,35,58,.08);--radius:18px}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font-family:'DM Sans',sans-serif;font-size:16px}.app-shell{min-height:100vh}.sidebar{position:fixed;inset:0 auto 0 0;width:250px;background:var(--navy);color:#fff;padding:28px 18px 20px;display:flex;flex-direction:column;z-index:20}.brand,.mobile-brand{display:flex;align-items:center;gap:12px;padding:0 8px 24px}.brand strong,.mobile-brand strong{font:800 17px 'Manrope';letter-spacing:.14em}.brand small{display:block;color:#7588a4;font-size:11px;margin-top:2px;letter-spacing:.05em}.brand-mark{width:34px;height:30px;position:relative}.brand-mark span{position:absolute;inset:3px 7px;border-top:4px solid var(--blue);border-right:4px solid var(--mint);transform:rotate(45deg);border-radius:2px}.brand-mark span+span{inset:9px 2px 0 13px;opacity:.65}.club-chip{display:flex;align-items:center;gap:10px;background:var(--navy2);border:1px solid #263954;border-radius:14px;padding:10px;margin-bottom:24px}.club-logo{width:35px;height:35px;background:linear-gradient(135deg,var(--blue),var(--mint));display:grid;place-items:center;border-radius:10px;font-weight:800;font-size:12px}.club-chip strong{display:block;font-size:13px}.club-chip small{display:block;color:#8fa0b8;font-size:11px;margin-top:2px}.club-chip button{margin-left:auto;color:#9aabc1;background:none;border:0;font-size:16px}.sidebar nav{display:grid;gap:5px}.nav-item{appearance:none;border:0;background:transparent;color:#9aabc1;display:flex;align-items:center;gap:12px;width:100%;padding:12px 13px;border-radius:11px;font:500 14px 'DM Sans';cursor:pointer;text-align:left}.nav-item span{width:18px;text-align:center;font-size:18px}.nav-item:hover,.nav-item.active{background:#192c48;color:#fff}.nav-item.active{box-shadow:inset 3px 0 var(--mint)}.nav-item b{margin-left:auto;background:#283c58;border-radius:20px;min-width:24px;padding:3px 6px;text-align:center;font-size:11px}.sidebar-foot{margin-top:auto}.prototype-tag{color:#7f91aa;font-size:11px;text-transform:uppercase;letter-spacing:.08em;padding:0 12px 12px}.prototype-tag i{display:inline-block;width:7px;height:7px;background:var(--mint);border-radius:50%;margin-right:7px;box-shadow:0 0 0 4px rgba(63,224,197,.1)}.main{margin-left:250px;min-height:100vh}.topbar{height:84px;background:#fff;border-bottom:1px solid var(--line);display:flex;align-items:center;padding:0 34px;position:sticky;top:0;z-index:15}.page-title p{font-size:12px;color:var(--muted);margin:0 0 3px;text-transform:uppercase;letter-spacing:.06em}.page-title h1{font:700 20px 'Manrope';margin:0}.top-actions{margin-left:auto;display:flex;align-items:center;gap:14px}.icon-btn{width:38px;height:38px;background:#f7f9fc;border:1px solid var(--line);border-radius:12px;position:relative;font-size:19px}.icon-btn i{position:absolute;width:7px;height:7px;border:2px solid white;background:var(--red);border-radius:50%;top:6px;right:6px}.role-switch{display:flex;align-items:center;gap:8px;background:#f7f9fc;border:1px solid var(--line);border-radius:12px;padding:7px 10px}.role-switch span{font-size:11px;color:var(--muted)}select,input,button{font:inherit}.role-switch select{border:0;background:transparent;color:var(--ink);font-weight:600;outline:0}.avatar{width:38px;height:38px;border-radius:12px;background:linear-gradient(135deg,#223b61,#2d8cff);display:grid;place-items:center;color:white;font-weight:700;font-size:13px}.mobile-brand{display:none}.page{display:none;padding:28px 34px 60px;max-width:1500px;margin:auto}.page.active{display:block;animation:fade .22s ease}@keyframes fade{from{opacity:.35;transform:translateY(3px)}to{opacity:1;transform:none}}.welcome-strip{background:linear-gradient(110deg,var(--navy) 0%,#112848 72%,#174260 100%);color:white;padding:30px 32px;border-radius:22px;display:flex;align-items:flex-end;justify-content:space-between;gap:30px;overflow:hidden;position:relative}.welcome-strip:after{content:'';position:absolute;width:240px;height:240px;border:36px solid rgba(63,224,197,.08);border-radius:50%;right:-95px;top:-110px}.welcome-strip h2{font:700 24px 'Manrope';margin:10px 0 7px;max-width:600px}.welcome-strip p{margin:0;color:#a9b9ce;max-width:670px}.live-pill{display:inline-flex;background:rgba(63,224,197,.12);border:1px solid rgba(63,224,197,.28);color:var(--mint);border-radius:20px;padding:5px 9px;font-size:10px;font-weight:700;letter-spacing:.08em}.quick-actions{display:flex;gap:10px;position:relative;z-index:1;flex-shrink:0}.btn{border:0;border-radius:11px;padding:11px 15px;font-weight:600;font-size:14px;cursor:pointer;transition:.18s}.btn:hover{transform:translateY(-1px)}.btn.primary{background:var(--blue);color:#fff;box-shadow:0 7px 18px rgba(45,140,255,.22)}.btn.secondary{background:#fff;color:var(--ink);border:1px solid var(--line)}.welcome-strip .btn.secondary{background:rgba(255,255,255,.08);color:white;border-color:rgba(255,255,255,.18)}.btn.compact{padding:8px 12px;font-size:12px;background:#edf5ff;color:#1872dd}.btn.outline{background:white;border:1px solid var(--line);color:var(--muted)}.metric-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin:18px 0}.metric{background:white;border:1px solid var(--line);border-radius:var(--radius);padding:20px;display:flex;align-items:center;gap:15px;min-height:105px}.metric-icon,.report-icon{width:46px;height:46px;border-radius:14px;display:grid;place-items:center;font-weight:700;font-size:18px}.blue{background:#eaf4ff;color:#237fef}.mint{background:#e9fbf8;color:#18a991}.violet{background:#f0edff;color:#7563e8}.amber{background:#fff5e5;color:#d88b18}.coral{background:#fff0ed;color:#dd6756}.red{background:#ffedef;color:#db5361}.metric span{color:var(--muted);font-size:13px}.metric strong{display:block;font:700 22px 'Manrope';margin:3px 0}.metric small{color:#8b96a6;font-size:12px}.metric em,.pb-row em{color:#16a88f;font-style:normal}.dashboard-grid{display:grid;grid-template-columns:1.45fr .75fr;gap:18px}.panel{background:white;border:1px solid var(--line);border-radius:var(--radius);padding:22px}.panel-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}.section-kicker{display:block;color:#8794a6;font-size:10px;font-weight:700;letter-spacing:.1em}.panel h3{font:700 18px 'Manrope';margin:3px 0}.text-btn{border:0;background:none;color:var(--blue);font-weight:600;font-size:13px;cursor:pointer}.session{display:flex;align-items:center;gap:13px;padding:16px 0;border-top:1px solid #edf1f6}.time{width:45px;text-align:right}.time strong{font-size:17px}.time span{font-size:10px;margin-left:2px;color:var(--muted)}.session-line{width:3px;height:43px;border-radius:4px}.blue-line{background:var(--blue)}.mint-line{background:var(--mint)}.violet-line{background:var(--violet)}.session-info{display:grid;gap:2px;flex:1}.session-info strong{font-size:14px}.session-info span,.session-info small{font-size:12px;color:var(--muted)}.attention-row{display:flex;align-items:center;width:100%;background:none;border:0;border-top:1px solid #edf1f6;padding:13px 0;gap:11px;text-align:left;cursor:pointer}.attention-icon{width:34px;height:34px;border-radius:11px;display:grid;place-items:center;font-weight:700;font-size:12px}.attention-row>span:nth-child(2){display:grid;gap:2px;flex:1}.attention-row strong{font-size:13px}.attention-row small{color:var(--muted);font-size:11px}.attention-row b{color:#96a2b3}.performance-panel{min-width:0}.panel-head select{border:1px solid var(--line);background:white;padding:7px;border-radius:9px;color:var(--muted);font-size:12px}.chart-wrap{display:grid;grid-template-columns:28px 1fr;grid-template-rows:190px 18px;gap:0 8px}.chart-y{grid-row:1;display:flex;flex-direction:column;justify-content:space-between;color:#9ca7b6;font-size:10px;text-align:right}.chart-wrap svg{width:100%;height:190px;border-bottom:1px solid var(--line);background:repeating-linear-gradient(to bottom,transparent 0,transparent 46px,#edf1f6 47px)}.chart-x{grid-column:2;display:flex;justify-content:space-between;color:#9ca7b6;font-size:10px;padding-top:5px}.activity{display:flex;gap:10px;padding:13px 0;border-top:1px solid #edf1f6}.activity-avatar{width:36px;height:36px;border-radius:12px;display:grid;place-items:center;font-weight:700;font-size:11px;flex-shrink:0}.activity>div{display:grid;gap:2px}.activity strong{font-size:13px}.activity span,.activity small{color:var(--muted);font-size:11px}.page-actions{display:flex;justify-content:space-between;align-items:flex-end;margin-bottom:22px}.page-actions h2{font:700 28px 'Manrope';margin:5px 0}.page-actions p{color:var(--muted);margin:0}.toolbar{display:flex;gap:10px;margin-bottom:14px}.search{flex:1;background:white;border:1px solid var(--line);padding:11px 14px;border-radius:12px;color:#8794a6}.search input{border:0;outline:0;width:calc(100% - 25px);margin-left:8px}.toolbar select{border:1px solid var(--line);background:white;border-radius:12px;padding:0 13px;color:var(--ink)}.table-card{background:#fff;border:1px solid var(--line);border-radius:var(--radius);overflow:auto}.table-card table{width:100%;border-collapse:collapse;min-width:760px}.table-card th{text-align:left;padding:14px 17px;background:#f9fbfd;color:#7c899b;font-size:11px;text-transform:uppercase;letter-spacing:.05em}.table-card td{padding:15px 17px;border-top:1px solid #edf1f6;font-size:13px}.table-card td strong{display:block}.table-card td small{display:block;color:var(--muted);margin-top:2px}.athlete-cell{display:flex;align-items:center;gap:10px}.status{padding:5px 8px;border-radius:20px;background:#ebfaf6;color:#15977f;font-size:11px;font-weight:700}.row-link{border:0;background:none;color:var(--blue);font-weight:700;cursor:pointer}.coach-grid{display:grid;grid-template-columns:1.4fr .8fr;gap:18px}.permission-note{color:#168d79;background:#e9fbf8;border:1px solid #c6f3eb;border-radius:10px;padding:9px 12px;font-size:13px}.coach-session{padding:0;overflow:hidden}.session-banner{background:linear-gradient(120deg,#153155,#166070);color:white;padding:25px}.session-banner span{color:var(--mint);font-size:10px;font-weight:700;letter-spacing:.1em}.session-banner h3{font-size:24px;margin:7px 0}.session-banner p{margin:0;color:#b6c9d7;font-size:13px}.coach-actions{display:grid;grid-template-columns:1fr 1fr;padding:18px;gap:12px}.action-tile{border:1px solid var(--line);border-radius:14px;background:#fff;text-align:left;padding:16px;display:grid;grid-template-columns:38px 1fr;column-gap:10px;cursor:pointer}.action-tile>span{grid-row:1/3;width:38px;height:38px;border-radius:11px;background:#edf5ff;color:var(--blue);display:grid;place-items:center;font-size:18px}.action-tile strong{font-size:13px}.action-tile small{color:var(--muted);font-size:11px;margin-top:2px}.pb-row{display:grid;grid-template-columns:30px 1fr auto auto;gap:10px;align-items:center;border-top:1px solid #edf1f6;padding:15px 0}.rank{width:27px;height:27px;background:#f3f6fa;border-radius:8px;display:grid;place-items:center;font-weight:700;font-size:11px}.pb-row>div:nth-child(2){display:grid}.pb-row span{font-size:11px;color:var(--muted)}.pb-row b{font-size:13px}.pb-row em{font-size:11px}.kanban{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.kanban-col{background:#eef2f7;border-radius:18px;padding:14px;min-height:450px}.kanban-head{display:flex;align-items:center;justify-content:space-between;padding:2px 3px 12px}.kanban-head h3{font-size:14px;margin:0}.kanban-head span{background:#dfe6ef;border-radius:20px;padding:3px 8px;font-size:11px;font-weight:700}.reg-card{background:white;border:1px solid #e1e7ef;border-radius:14px;padding:14px;margin-bottom:10px;box-shadow:0 3px 10px rgba(20,35,55,.04)}.reg-top{display:flex;align-items:center;gap:10px}.reg-top>div{display:grid}.reg-top small{color:var(--muted);font-size:11px}.reg-meta{display:flex;align-items:center;justify-content:space-between;border-top:1px solid #edf1f6;margin-top:13px;padding-top:11px}.reg-meta span{font-size:10px;color:var(--muted)}.reg-meta button{border:0;background:none;color:var(--blue);font-weight:700;font-size:11px;cursor:pointer}.missing,.success-line{margin-top:12px;border-radius:8px;background:#fff5e5;color:#b97716;padding:8px;font-size:11px}.success-line{background:#e9fbf8;color:#168d79}.metric-grid.small .metric{min-height:90px}.slip{border:0;background:#edf5ff;color:#2879d9;padding:7px 9px;border-radius:8px;font-size:11px;cursor:pointer}.competition-grid{display:grid;gap:13px}.meet{background:white;border:1px solid var(--line);border-radius:var(--radius);padding:22px;display:grid;grid-template-columns:62px 1fr auto;gap:18px;align-items:center}.meet.featured{border-left:4px solid var(--blue)}.meet-date{width:58px;height:64px;border-radius:14px;background:#edf5ff;color:var(--blue);display:grid;place-items:center;padding:8px}.meet-date strong{font:800 22px 'Manrope'}.meet-date small{font-size:9px;font-weight:700}.meet-date.past{background:#f0f2f6;color:#69788c}.meet h3{font:700 17px 'Manrope';margin:6px 0 3px}.meet p{margin:0;color:var(--muted);font-size:13px}.meet-stats{display:flex;gap:18px;margin-top:13px}.meet-stats span{font-size:11px;color:var(--muted)}.meet-stats b{color:var(--ink)}.meet-actions{display:flex;gap:8px}.report-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.report-card{border:1px solid var(--line);background:white;border-radius:var(--radius);padding:21px;display:grid;grid-template-columns:46px 1fr auto;gap:14px;align-items:center;text-align:left;cursor:pointer}.report-card>div{display:grid;gap:3px}.report-card small{color:var(--muted);font-size:12px}.report-card>b{color:#9ba6b5}.bottom-nav{display:none}.drawer-backdrop{display:none;position:fixed;inset:0;background:rgba(7,15,27,.5);z-index:40}.drawer-backdrop.show{display:block}.action-drawer{position:fixed;top:0;right:-560px;width:min(540px,100%);height:100vh;background:white;z-index:41;transition:right .28s ease;box-shadow:-20px 0 50px rgba(7,15,27,.16);padding:26px;overflow:auto}.action-drawer.show{right:0}.drawer-handle{display:none}.drawer-head{display:flex;justify-content:space-between;align-items:flex-start;border-bottom:1px solid var(--line);padding-bottom:17px}.drawer-head h2{margin:5px 0;font:700 23px 'Manrope'}.drawer-head button{border:0;background:#f1f4f8;width:34px;height:34px;border-radius:10px;font-size:22px}.attendance-list{margin-top:14px}.attendance-row{display:grid;grid-template-columns:1fr auto;align-items:center;border-bottom:1px solid #edf1f6;padding:13px 0}.attendance-person{display:flex;gap:10px;align-items:center}.attendance-person div{display:grid}.attendance-person small{color:var(--muted)}.attendance-options{display:flex;background:#f2f5f8;border-radius:9px;padding:3px}.attendance-options button{border:0;background:transparent;color:#7d8999;padding:7px 9px;border-radius:7px;font-size:11px;cursor:pointer}.attendance-options button.selected{background:white;color:#168d79;box-shadow:0 2px 6px rgba(0,0,0,.08);font-weight:700}.drawer-footer{position:sticky;bottom:-26px;background:white;border-top:1px solid var(--line);padding:16px 0 25px;margin-top:14px;display:flex;justify-content:space-between;align-items:center}.drawer-footer span{font-size:12px;color:var(--muted)}.result-grid{margin-top:18px}.result-head,.result-row{display:grid;grid-template-columns:1fr 120px 70px;gap:10px;align-items:center}.result-head{font-size:10px;color:var(--muted);text-transform:uppercase;padding:8px}.result-row{border-top:1px solid var(--line);padding:12px 8px}.result-row input{border:1px solid var(--line);border-radius:9px;padding:9px;width:100%}.result-row em{font-size:10px;color:#168d79;font-style:normal}.toast{position:fixed;z-index:60;right:30px;bottom:-100px;background:var(--navy);color:#fff;border-radius:14px;padding:14px 18px;display:flex;gap:11px;align-items:center;box-shadow:var(--shadow);transition:bottom .3s}.toast.show{bottom:30px}.toast>span{width:30px;height:30px;border-radius:9px;background:rgba(63,224,197,.16);color:var(--mint);display:grid;place-items:center}.toast div{display:grid}.toast strong{font-size:13px}.toast small{font-size:11px;color:#9fb0c5}.parent-mode .admin-only,.parent-mode .sidebar nav .nav-item:not([data-page="dashboard"]):not([data-page="athletes"]):not([data-page="payments"]),.parent-mode .quick-actions{display:none}.coach-mode .finance-only{display:none}.finance-mode .nav-item[data-page="coach"],.finance-mode .nav-item[data-page="competitions"]{opacity:.45;pointer-events:none}
@media(max-width:1100px){.metric-grid{grid-template-columns:repeat(2,1fr)}.dashboard-grid,.coach-grid{grid-template-columns:1fr}.report-grid{grid-template-columns:1fr 1fr}.kanban{grid-template-columns:1fr 1fr}.kanban-col:last-child{grid-column:1/-1}.meet-actions{flex-direction:column}}
@media(max-width:760px){body{padding-bottom:68px}.sidebar{display:none}.main{margin:0}.topbar{height:72px;padding:0 16px}.mobile-brand{display:flex;padding:0;gap:7px}.mobile-brand .brand-mark{width:28px;transform:scale(.8)}.page-title{display:none}.top-actions{gap:8px}.role-switch span{display:none}.role-switch{padding:7px}.role-switch select{font-size:12px;max-width:112px}.avatar,.icon-btn{width:35px;height:35px}.page{padding:18px 15px 32px}.welcome-strip{padding:23px 20px;display:block}.welcome-strip h2{font-size:21px}.welcome-strip p{font-size:13px}.quick-actions{margin-top:18px;flex-wrap:wrap}.metric-grid{grid-template-columns:1fr 1fr;gap:9px}.metric{padding:14px;min-height:98px;gap:10px}.metric-icon{display:none}.metric strong{font-size:17px}.dashboard-grid{gap:10px}.panel{padding:17px}.session{gap:8px}.session .btn{font-size:0;width:34px;height:34px;padding:0}.session .btn:after{content:'→';font-size:15px}.performance-panel{display:none}.bottom-nav{display:flex;position:fixed;inset:auto 0 0;background:white;border-top:1px solid var(--line);height:67px;z-index:30;justify-content:space-around;padding:7px 3px max(7px,env(safe-area-inset-bottom))}.bottom-nav button{border:0;background:none;color:#8390a2;display:grid;place-items:center;font-size:10px;gap:2px}.bottom-nav button span{font-size:18px}.bottom-nav button.active{color:var(--blue);font-weight:700}.page-actions{align-items:flex-start;gap:12px}.page-actions h2{font-size:24px}.page-actions p{font-size:13px}.page-actions>.btn{white-space:nowrap;padding:9px 10px}.toolbar{flex-wrap:wrap}.search{flex-basis:100%}.toolbar select{flex:1;height:42px}.table-card{margin:0 -15px;border-radius:0;border-left:0;border-right:0}.coach-grid{gap:10px}.coach-actions{grid-template-columns:1fr}.permission-note{font-size:11px}.kanban{display:flex;overflow:auto;margin:0 -15px;padding:0 15px;scroll-snap-type:x mandatory}.kanban-col{min-width:88vw;scroll-snap-align:start}.meet{grid-template-columns:50px 1fr;padding:16px;gap:11px}.meet-date{width:48px;height:56px}.meet-actions{grid-column:1/-1;flex-direction:row}.meet-stats{flex-wrap:wrap;gap:8px}.report-grid{grid-template-columns:1fr}.action-drawer{top:auto;bottom:-100%;right:0;width:100%;height:88vh;border-radius:22px 22px 0 0;transition:bottom .28s;padding:13px 18px 22px}.action-drawer.show{bottom:0;right:0}.drawer-handle{display:block;width:42px;height:4px;background:#dce2ea;border-radius:5px;margin:0 auto 17px}.attendance-row{grid-template-columns:1fr}.attendance-options{margin:9px 0 0 46px;width:max-content}.toast{left:15px;right:15px;bottom:-100px}.toast.show{bottom:82px}}
@media(max-width:430px){.metric-grid{grid-template-columns:1fr 1fr}.metric span{font-size:11px}.metric strong{font-size:15px}.top-actions .icon-btn{display:none}.welcome-strip .btn{width:100%}.session-info span{display:none}.activity-panel{display:none}.meet-actions{flex-direction:column}.result-head,.result-row{grid-template-columns:1fr 100px}.result-head span:last-child,.result-row em{display:none}}
