:root{
--bg:#050a0f;--bg2:#071018;--panel:#0b151d;--panel2:#0e1c26;--panel3:#102532;
--line:#17303f;--line2:#21495f;--text:#eef7fb;--muted:#8ba1ae;--cyan:#00baf5;--cyan2:#57d9ff;
--good:#38d58a;--warn:#ffc14f;--bad:#ff6674;--shadow:0 18px 45px rgba(0,0,0,.24)
}
*{box-sizing:border-box}html{scroll-behavior:smooth}
body{margin:0;font-family:Inter,Segoe UI,Arial,sans-serif;background:
radial-gradient(circle at 90% -10%,rgba(0,186,245,.13),transparent 30%),
linear-gradient(135deg,#05090d,#071018 50%,#050a0f);color:var(--text);min-height:100vh}
body:before{content:"";position:fixed;inset:0;pointer-events:none;opacity:.18;background-image:linear-gradient(115deg,transparent 0 48%,rgba(255,255,255,.018) 49%,transparent 50%);background-size:46px 46px}
a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit}
.app-shell{min-height:100vh;display:grid;grid-template-columns:258px minmax(0,1fr)}
.sidebar{background:linear-gradient(180deg,rgba(5,12,18,.99),rgba(6,15,21,.99));border-right:1px solid var(--line);padding:22px 14px 16px;position:sticky;top:0;height:100vh;z-index:30;display:flex;flex-direction:column}
.brand{display:block;padding:4px 11px 24px}.brand img{width:188px;max-width:100%;display:block}.brand span{display:block;color:#7390a0;font-size:9px;letter-spacing:.28em;text-transform:uppercase;margin-top:7px}
.sidebar nav{display:grid;gap:3px;overflow:auto;padding-right:2px}.nav-section{font-size:9px;letter-spacing:.21em;text-transform:uppercase;color:#557283;padding:17px 12px 6px}
.sidebar nav a{display:flex;align-items:center;gap:11px;padding:10px 12px;border-radius:8px;color:#a9bdc8;border:1px solid transparent;transition:.18s}
.sidebar nav a i{font-style:normal;width:22px;height:22px;display:grid;place-items:center;border:1px solid #173749;border-radius:5px;color:#6fcfec;font-size:12px;background:#091720}
.sidebar nav a:hover,.sidebar nav a.active{background:linear-gradient(90deg,#0d2735,#0a1b24);border-color:#19455c;color:#fff}
.sidebar nav a.active{box-shadow:inset 3px 0 var(--cyan)}.sidebar nav a.active i{color:#00141c;background:var(--cyan2);border-color:var(--cyan2)}
.sidebar-footer{margin-top:auto;padding:15px 12px 2px;border-top:1px solid #102934;display:flex;justify-content:space-between;color:#547283;font-size:10px;letter-spacing:.14em}.sidebar-footer b{color:var(--cyan2)}
.main{min-width:0;min-height:100vh}.topbar{height:76px;padding:0 28px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);background:rgba(5,12,18,.86);backdrop-filter:blur(12px);position:sticky;top:0;z-index:20}
.topbar-left{display:flex;gap:14px;align-items:center}.topbar-left strong{display:block;font-size:17px}.topbar-kicker{display:block;font-size:8px;letter-spacing:.22em;color:#5b899f;margin-bottom:3px}.menu-toggle{display:none;background:none;color:#fff;border:1px solid var(--line2);border-radius:7px;padding:7px 10px}
.userbox{display:flex;gap:10px;align-items:center}.avatar,.profile-avatar,.mini-avatar{display:grid;place-items:center;border-radius:50%;background:linear-gradient(145deg,#0f4d66,#00baf5);color:#fff;font-weight:800;border:1px solid #45cff7}.avatar{width:36px;height:36px;font-size:12px}
.user-meta{display:grid;line-height:1.1;margin-right:4px}.user-meta strong{font-size:13px}.user-meta span{font-size:10px;color:var(--muted);margin-top:4px}.top-link{font-size:12px;color:#91a8b4;padding:7px}.top-link:hover{color:#fff}
.content{padding:28px;max-width:1540px;margin:0 auto;width:100%}.app-footer{display:flex;justify-content:space-between;padding:5px 28px 22px;color:#496675;font-size:10px;letter-spacing:.14em;text-transform:uppercase}
.page-heading,.hero-strip{display:flex;justify-content:space-between;align-items:flex-end;gap:20px;margin-bottom:20px}.page-heading h1,.hero-strip h1{font-size:31px;margin:3px 0 5px;letter-spacing:-.025em}.page-heading p,.hero-strip p{margin:0;color:var(--muted);max-width:720px}.eyebrow{font-size:9px;color:var(--cyan2);letter-spacing:.22em;font-weight:800}
.hero-strip{min-height:148px;align-items:center;padding:23px 27px;border:1px solid #1c4458;background:
linear-gradient(105deg,rgba(0,186,245,.10),transparent 45%),
linear-gradient(180deg,#0b1821,#09131b);border-radius:14px;position:relative;overflow:hidden;box-shadow:var(--shadow)}
.hero-strip:after{content:"";position:absolute;width:240px;height:240px;border:1px solid rgba(87,217,255,.14);right:-80px;top:-90px;transform:rotate(35deg)}
.hero-strip h1{font-size:34px}.date-chip{width:92px;height:92px;border:1px solid #22516a;background:#08151d;display:grid;place-items:center;align-content:center;clip-path:polygon(12% 0,100% 0,100% 88%,88% 100%,0 100%,0 12%);position:relative;z-index:1}.date-chip span,.date-chip small{font-size:9px;color:var(--muted);letter-spacing:.14em}.date-chip strong{font-size:29px;line-height:1;color:var(--cyan2);margin:3px}
.grid{display:grid;gap:18px}.grid.kpis{grid-template-columns:repeat(4,minmax(0,1fr))}.two{grid-template-columns:1.15fr .85fr}.dashboard-grid,.profile-grid{grid-template-columns:1.25fr .75fr}
.card{background:linear-gradient(180deg,rgba(14,28,38,.97),rgba(8,19,26,.97));border:1px solid var(--line);border-radius:12px;padding:19px;box-shadow:var(--shadow);position:relative}
.card:before{content:"";position:absolute;left:-1px;top:20px;width:2px;height:34px;background:#173b4d}.card.accent:before,.kpi.accent:before{background:var(--cyan);box-shadow:0 0 18px rgba(0,186,245,.5)}
.card-head{display:flex;justify-content:space-between;gap:18px;align-items:flex-start;margin-bottom:13px}.card h2{font-size:18px;margin:4px 0 0}.card h3{margin:0;font-size:15px}
.kpi{min-height:122px;padding:18px 19px}.kpi strong{font-size:31px;display:block;margin:8px 0 4px;letter-spacing:-.04em}.kpi>span{color:var(--muted);font-size:11px}.kpi-label{font-size:10px;letter-spacing:.12em;text-transform:uppercase;color:#88a4b3}
.btn{display:inline-flex;align-items:center;justify-content:center;background:linear-gradient(180deg,var(--cyan2),var(--cyan));color:#00131d;font-weight:800;padding:10px 14px;border-radius:7px;border:0;cursor:pointer;box-shadow:0 6px 18px rgba(0,186,245,.12);font-size:13px}.btn:hover{filter:brightness(1.08)}.btn.secondary{background:#102936;color:#dcecf3;border:1px solid #27536a;box-shadow:none}.btn.ghost{background:transparent;color:#9cb2bd;border:1px solid #234353;box-shadow:none}.btn.danger{background:#57232c;color:#fff}.btn-lg{min-height:47px}.text-link{color:#63d5f8;font-size:12px}.text-link:hover{color:#fff}.danger-text{color:#ff7d88}
.toolbar{display:flex;gap:9px;flex-wrap:wrap;align-items:center;margin-bottom:15px}.search-row{display:flex;gap:8px;flex:1;max-width:650px}.result-count{margin-left:auto;font-size:11px;color:var(--muted)}
input,select,textarea{width:100%;background:#07131b;border:1px solid #1b3c4e;color:#eef7fb;padding:10px 11px;border-radius:7px;outline:none;transition:.16s}input:focus,select:focus,textarea:focus{border-color:#2780a8;box-shadow:0 0 0 3px rgba(0,186,245,.08)}textarea{resize:vertical}
label{display:grid;gap:6px;color:#a7bec9;font-size:12px}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.form-grid .full{grid-column:1/-1}.form-actions{display:flex;gap:9px;align-items:center}.form-card{border-top-color:#24546b}
.table-wrap{overflow:auto}table{width:100%;border-collapse:collapse}th,td{padding:12px 10px;border-bottom:1px solid #14303d;text-align:left;font-size:13px;vertical-align:middle}th{color:#7793a2;font-size:9px;text-transform:uppercase;letter-spacing:.1em}tr:last-child td{border-bottom:0}td strong{color:#eff9fd}.table-sub{display:block;color:#738b98;margin-top:3px}.table-user{display:flex;gap:9px;align-items:center}.table-user div{display:grid}.table-user small{color:var(--muted);margin-top:2px}
.badge,.tag,.status{display:inline-flex;align-items:center;width:max-content;border-radius:999px;font-size:10px}.badge{background:#103748;color:#73dbfb;padding:5px 8px;border:1px solid #1e5066}.tag{background:#0d2b38;color:#9eddf0;padding:4px 7px;border:1px solid #1c4659}.status{padding:4px 8px;text-transform:capitalize;border:1px solid #27414d;color:#b8c9d0}.status.good{background:#0f3527;color:#6fe5a6;border-color:#1a5b41}.status.warn{background:#3e3016;color:#ffd477;border-color:#614b20}.status.bad{background:#402029;color:#ff929b;border-color:#61313a}
.alert{padding:12px 14px;border-radius:8px;margin-bottom:16px;border:1px solid}.alert.success{background:#103427;color:#7ce5ad;border-color:#235a41}.alert.error{background:#3c2027;color:#ff9da5;border-color:#603039}.notice{padding:11px 13px;border-left:3px solid var(--cyan);background:#0a202b;color:#a7c3cf;margin-top:14px;font-size:12px}
.empty-state{display:grid;place-items:center;text-align:center;min-height:150px;color:var(--muted);border:1px dashed #1a3a49;border-radius:9px;background:#08141b}.empty-state strong{color:#dbeaf0}.empty-state span{font-size:12px;margin-top:5px}.empty-state.compact{min-height:85px}
.schedule-list{display:grid}.schedule-row{display:grid;grid-template-columns:76px 1fr auto;gap:14px;align-items:center;padding:12px 0;border-bottom:1px solid #15313e}.schedule-row:last-child{border:0}.schedule-row>div:nth-child(2){display:grid}.schedule-row span{font-size:11px;color:var(--muted);margin-top:3px}.time-block{font-weight:800;color:var(--cyan2);letter-spacing:.03em}.schedule-cap{color:#7894a3;font-size:11px}
.mini-list{display:grid}.mini-list>div{display:grid;grid-template-columns:58px 1fr auto;align-items:center;gap:8px;padding:11px 0;border-bottom:1px solid #15313e}.mini-list>div:last-child{border:0}.mini-list strong{font-size:12px}.mini-list small{color:var(--muted)}.mini-date{color:#68d5f7;font-size:10px;text-transform:uppercase;font-weight:800}
.quick-panel{margin-top:18px;display:flex;justify-content:space-between;align-items:center;gap:20px}.quick-actions{display:flex;gap:8px;flex-wrap:wrap}.quick-action{display:flex;align-items:center;gap:8px;background:#0a1c26;border:1px solid #193e50;padding:9px 11px;border-radius:8px;font-size:11px;color:#bfd0d8}.quick-action b{width:24px;height:24px;display:grid;place-items:center;background:#0d3547;color:#6bdafb;border-radius:5px}
.athlete-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.athlete-card{display:grid;grid-template-columns:auto 1fr auto auto;align-items:center;gap:12px;padding:13px;background:#081720;border:1px solid #173746;border-radius:9px;transition:.16s}.athlete-card:hover{transform:translateY(-1px);border-color:#26708f;background:#0a1c26}.athlete-avatar{width:45px;height:45px;border-radius:9px;display:grid;place-items:center;background:linear-gradient(145deg,#12445b,#087ca7);font-weight:800;color:#dff7ff}.athlete-card-main{display:grid}.athlete-card-main span,.athlete-meta span{font-size:10px;color:var(--muted);margin-top:4px}.athlete-meta{display:grid;text-align:right}
.profile-hero{display:flex;align-items:center;gap:17px;padding:19px 21px;background:linear-gradient(100deg,#0d2532,#0a161e);border:1px solid #1b465b;border-radius:12px;margin-bottom:18px}.profile-avatar{width:74px;height:74px;font-size:22px}.profile-avatar.small{width:56px;height:56px;font-size:16px}.profile-hero-main{flex:1}.profile-hero h1{margin:3px 0 5px;font-size:29px}.profile-hero p{margin:0;color:var(--muted)}
.detail-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1px;background:#16303c;border:1px solid #16303c;border-radius:8px;overflow:hidden}.detail-list>div{display:grid;gap:5px;background:#091720;padding:12px}.detail-list span{font-size:9px;text-transform:uppercase;letter-spacing:.1em;color:#708c9b}.detail-list strong{font-size:12px;font-weight:600}.detail-list .wide{grid-column:1/-1}
.person-row{display:flex;align-items:center;gap:10px;padding:11px 0;border-bottom:1px solid #15313d}.person-row>div:nth-child(2){display:grid;flex:1}.person-row span{font-size:10px;color:var(--muted);margin-top:2px}.mini-avatar{width:32px;height:32px;font-size:9px;flex:0 0 auto}.tag-stack{display:flex!important;gap:4px!important;flex:0!important}.icon-btn{width:27px;height:27px;border-radius:6px;border:1px solid #4b2e35;background:#321b21;color:#ff8b95;cursor:pointer}.add-panel{margin-top:12px;border-top:1px solid #173440;padding-top:10px}.add-panel summary{cursor:pointer;color:#65d7f8;font-size:12px}.add-panel form{padding-top:12px}.check-row{display:flex;gap:13px;flex-wrap:wrap}.check-row label,.checkbox{display:flex;align-items:center;gap:7px}.check-row input,.checkbox input{width:auto}.inline-form{margin-top:10px}
.note-form{display:grid;grid-template-columns:150px 1fr auto;gap:9px;align-items:end}.notes-list article{padding:14px 0;border-bottom:1px solid #15313e}.notes-list article>div{display:flex;gap:9px;align-items:center}.notes-list time{color:#688391;font-size:10px;margin-left:auto}.notes-list p{margin:9px 0 0;color:#b8cad2;font-size:12px;line-height:1.5}
.account-heading{display:flex;align-items:center;gap:12px;margin-bottom:18px}.account-heading h2{margin:0 0 5px}.password-panel{padding:16px;border:1px solid #163847;background:#081820;border-radius:9px}
.week-grid{display:grid;grid-template-columns:repeat(6,minmax(145px,1fr));gap:9px;overflow:auto}.day-column{min-height:410px;background:#08141b;border:1px solid #17303e;border-radius:9px;padding:10px}.day-column header{display:grid;border-bottom:1px solid #17303e;padding-bottom:9px;margin-bottom:9px}.day-column header span{font-size:8px;color:var(--cyan2);letter-spacing:.18em}.day-column header strong{font-size:13px;margin-top:3px}.day-empty{color:#4f6b79;font-size:11px;padding:14px 3px}.class-block{display:grid;padding:10px;margin-bottom:8px;border-left:2px solid var(--cyan);background:#0d2230;border-radius:5px}.class-block>span{font-size:9px;color:#72dafa}.class-block strong{font-size:11px;margin:4px 0}.class-block small{font-size:9px;color:#839ca8;margin-top:2px}
.money-chip{padding:10px 13px;border:1px solid #23516a;background:#0a202b;border-radius:8px;display:grid;text-align:right}.money-chip span{font-size:8px;color:#7897a6;text-transform:uppercase;letter-spacing:.12em}.money-chip strong{font-size:19px;color:#72dcfb;margin-top:3px}
.messaging-grid{grid-template-columns:1.35fr .65fr}.message-list article{padding:14px 0;border-bottom:1px solid #15313e}.message-top{display:flex;gap:9px}.message-top>div:nth-child(2){display:grid}.message-top span{font-size:10px;color:#708b99;margin-top:3px}.message-list p{font-size:12px;color:#b8cad2;line-height:1.5;margin:9px 0 0 41px}.compose-card{align-self:start;position:sticky;top:94px}
.event-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.event-card{display:flex;gap:15px;min-height:200px;overflow:hidden}.event-card:before{background:var(--cyan)}.event-date{width:60px;flex:0 0 60px;height:70px;display:grid;place-items:center;align-content:center;background:#0a2532;border:1px solid #1f5167;clip-path:polygon(12% 0,100% 0,100% 88%,88% 100%,0 100%,0 12%)}.event-date strong{font-size:23px;line-height:1}.event-date span{font-size:8px;color:#70d7f7;letter-spacing:.15em;margin-top:4px}.event-body{flex:1}.event-body h2{font-size:17px;margin:9px 0 5px}.event-body>p{font-size:11px;margin:5px 0}.event-meta{display:flex;justify-content:space-between;gap:8px;border-top:1px solid #17303e;margin-top:12px;padding-top:10px;color:#7593a1;font-size:9px}
.attendance-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.attendance-row{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:9px;background:#081720;border:1px solid #163746;border-radius:8px}.person-inline{display:flex;align-items:center;gap:8px;min-width:0}.person-inline strong{font-size:11px}.attendance-select{width:126px}.status-present{border-color:#205f45}.status-absent{border-color:#66363e}.status-late,.status-excused{border-color:#665020}
.success-panel{display:flex;gap:12px;align-items:center}.success-icon{width:42px;height:42px;border-radius:50%;display:grid;place-items:center;background:#153f2f;color:#6fe4a6;font-size:21px}
.login-page{background:
linear-gradient(115deg,rgba(0,186,245,.08),transparent 35%),
radial-gradient(circle at 90% 5%,#0b3245 0,#071018 30%,#04090d 68%);min-height:100vh}
.login-shell{min-height:100vh;display:grid;grid-template-columns:minmax(0,1.2fr) minmax(390px,.8fr);align-items:stretch}.login-shell.single{display:grid;place-items:center;padding:30px}.login-brand-panel{padding:9vw 7vw;display:flex;flex-direction:column;justify-content:center;position:relative;overflow:hidden}.login-brand-panel:before{content:"";position:absolute;right:5%;top:15%;width:46%;height:70%;border:1px solid rgba(87,217,255,.12);transform:skew(-14deg)}.brand-kicker{font-size:11px;letter-spacing:.32em;color:#6bbed8;font-weight:800}.login-brand-panel h1{font-size:clamp(48px,6vw,88px);line-height:.88;letter-spacing:-.055em;text-transform:uppercase;margin:20px 0}.login-brand-panel h1 span{color:var(--cyan2)}.login-brand-panel p{max-width:560px;color:#8ba4b0;line-height:1.6}.login-stripes{height:8px;width:180px;background:repeating-linear-gradient(90deg,var(--cyan) 0 25px,transparent 25px 34px);margin-top:27px;transform:skew(-18deg)}
.login-card{align-self:center;justify-self:center;width:min(440px,calc(100% - 40px));background:rgba(8,19,26,.96);border:1px solid #1a465b;border-radius:14px;padding:31px;box-shadow:0 30px 80px rgba(0,0,0,.42);position:relative}.login-card:before{content:"";position:absolute;left:-1px;top:27px;width:3px;height:64px;background:var(--cyan)}.login-card img{display:block;width:255px;max-width:84%;margin:0 auto 27px}.login-title{text-align:center;margin-bottom:19px}.login-title h2{font-size:24px;margin:5px 0}.login-title p,.login-help{color:var(--muted);font-size:11px}.login-help{text-align:center;margin:18px 0 0}.stack{display:grid;gap:13px}
.muted{color:var(--muted)}
.sidebar-overlay{display:none}

@media(max-width:1120px){
.grid.kpis{grid-template-columns:repeat(2,1fr)}.event-grid{grid-template-columns:repeat(2,1fr)}.dashboard-grid,.profile-grid,.messaging-grid{grid-template-columns:1fr}.compose-card{position:static}.athlete-grid{grid-template-columns:1fr}.week-grid{grid-template-columns:repeat(6,170px)}
}
@media(max-width:860px){
.app-shell{grid-template-columns:1fr}.sidebar{position:fixed;left:-275px;width:258px;transition:.2s}.sidebar.open{left:0}.sidebar-overlay{display:block;position:fixed;inset:0;background:rgba(0,0,0,.55);z-index:25;opacity:0;pointer-events:none;transition:.2s}.sidebar-overlay.show{opacity:1;pointer-events:auto}.menu-toggle{display:block}.topbar{padding:0 16px}.content{padding:20px}.user-meta,.top-link:first-of-type{display:none}.login-shell{grid-template-columns:1fr}.login-brand-panel{display:none}.login-card{margin:auto}.event-grid{grid-template-columns:1fr}.quick-panel{align-items:flex-start;flex-direction:column}
}
@media(max-width:620px){
.grid.kpis,.two{grid-template-columns:1fr}.content{padding:15px}.page-heading,.hero-strip{align-items:flex-start;flex-direction:column}.date-chip{position:absolute;right:18px;top:18px;width:70px;height:70px}.hero-strip{padding-right:100px}.hero-strip h1{font-size:28px}.page-heading h1{font-size:27px}.athlete-card{grid-template-columns:auto 1fr}.athlete-card .athlete-meta,.athlete-card>.status{grid-column:2}.form-grid{grid-template-columns:1fr}.form-grid .full{grid-column:auto}.detail-list{grid-template-columns:1fr}.detail-list .wide{grid-column:auto}.attendance-grid{grid-template-columns:1fr}.note-form{grid-template-columns:1fr}.search-row{width:100%;max-width:none}.result-count{margin-left:0}.userbox .avatar{margin-left:auto}.topbar-left strong{font-size:14px}.profile-hero{align-items:flex-start;flex-wrap:wrap}.profile-hero .btn{width:100%}.login-card{width:calc(100% - 24px);padding:24px 20px}
}
