*{box-sizing:border-box}
:root{
 --bg:#07101f;--panel:#0e192b;--panel2:#142239;--line:#263650;--text:#f4f7fb;--muted:#8899b3;
 --blue:#296cff;--accent:#174ed0;--red:#ff444f;--green:#25c876;--shadow:0 18px 45px rgba(0,0,0,.24)
}
html,body{margin:0;min-height:100%;background:var(--bg);color:var(--text);font-family:Segoe UI,Inter,Arial,sans-serif}
button,select,input{font:inherit}button{cursor:pointer}.app-shell{display:grid;grid-template-columns:260px 1fr;min-height:100vh}
.sidebar{background:linear-gradient(180deg,#06101f,#071321 68%,#06101c);border-right:1px solid rgba(135,160,202,.18);padding:20px 16px;position:sticky;top:0;height:100vh;overflow:auto}
.brand{display:flex;align-items:center;gap:12px;padding:4px 2px 20px;border-bottom:1px solid rgba(135,160,202,.14)}
.logo-box{width:56px;height:56px;border-radius:14px;border:1px solid rgba(255,255,255,.12);background:#0b1729;display:grid;place-items:center;overflow:hidden}
.logo-box img{width:100%;height:100%;object-fit:contain;display:none}.logo-box span{font-weight:900;color:var(--blue)}
.brand-copy h1{font-size:18px;margin:0}.brand-copy p{font-size:9px;color:var(--muted);margin:4px 0 0;text-transform:uppercase;letter-spacing:.05em}
.nav-label{font-size:8px;font-weight:900;letter-spacing:.15em;color:var(--blue);padding:18px 10px 8px}
nav{display:grid;gap:4px}.nav-item{display:flex;align-items:center;gap:9px;min-height:40px;border:1px solid transparent;background:transparent;color:#9aa9bf;padding:9px 11px;border-radius:8px;text-align:left;font-size:11px}
.nav-item:hover{background:rgba(41,108,255,.07);color:white}.nav-item.active{background:linear-gradient(90deg,rgba(41,108,255,.22),rgba(41,108,255,.05));border-color:rgba(41,108,255,.48);box-shadow:inset 2px 0 0 var(--blue);color:white}
.sidebar-motto{margin-top:24px;padding:16px 10px;border-top:1px solid rgba(135,160,202,.13)}.sidebar-motto strong{display:block;color:var(--blue);font-style:italic;font-size:14px;line-height:1.35;letter-spacing:.08em}.sidebar-motto span{display:block;margin-top:8px;color:#73859f;font-size:8px}
main{padding:0 26px 40px;min-width:0}.topbar{min-height:86px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid rgba(135,160,202,.16);margin-bottom:10px}
.eyebrow{margin:0;color:var(--blue);font-size:8px;font-weight:900;letter-spacing:.16em}.page-heading h2{margin:5px 0 0;font-size:26px}.top-actions{display:flex;align-items:center;gap:8px}
select,input{background:#0d182a;color:white;border:1px solid rgba(135,160,202,.18);border-radius:8px;padding:9px 11px}.icon-button{width:39px;height:39px;border-radius:8px;border:1px solid rgba(135,160,202,.18);background:#0d182a;color:white;font-size:18px}
.coach-chip{height:45px;display:flex;align-items:center;gap:8px;border:1px solid rgba(135,160,202,.13);background:#0c1728;border-radius:9px;padding:5px 10px}.coach-avatar{width:29px;height:29px;border-radius:50%;display:grid;place-items:center;background:linear-gradient(145deg,var(--blue),var(--accent));font-size:9px;font-weight:900}.coach-chip strong,.coach-chip small{display:block}.coach-chip strong{font-size:9px}.coach-chip small{font-size:7px;color:var(--muted);margin-top:2px}
.view{display:none}.active-view{display:block}.event-context{display:flex;align-items:center;gap:9px;color:#aab7ca;font-size:10px;margin:0 0 12px}.event-context strong{color:white}.live-dot{width:8px;height:8px;border-radius:50%;background:var(--blue);box-shadow:0 0 0 4px rgba(41,108,255,.1)}.context-divider{height:14px;width:1px;background:rgba(145,165,200,.28)}
.metric-row{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-bottom:16px}.metric-card{height:116px;background:linear-gradient(145deg,var(--panel),color-mix(in srgb,var(--panel) 78%,#061022));border:1px solid rgba(135,160,202,.18);border-radius:13px;display:flex;align-items:center;gap:17px;padding:18px 20px;box-shadow:var(--shadow)}
.metric-symbol{width:56px;height:56px;display:grid;place-items:center;font-size:34px;color:var(--blue)}.metric-card.silver .metric-symbol{color:#d4dfed}.ring-check{width:48px;height:48px;border:3px solid var(--green);border-radius:50%;color:var(--green);font-size:28px}.alert-symbol{width:48px;height:48px;border:3px solid var(--red);border-radius:13px;color:var(--red);font-size:30px}.metric-card strong{font-size:34px;line-height:1;margin-right:8px}.metric-card span{font-size:14px;font-weight:800}.metric-card small{display:block;color:#7486a2;font-size:9px;margin-top:7px}
.command-grid{display:grid;grid-template-columns:310px minmax(0,1fr);gap:14px;min-height:480px}.panel{background:linear-gradient(150deg,var(--panel),color-mix(in srgb,var(--panel) 82%,#061020));border:1px solid rgba(135,160,202,.18);border-radius:13px;box-shadow:var(--shadow)}.panel-header{min-height:54px;padding:14px 16px 10px;display:flex;align-items:center;justify-content:space-between}.panel-header h3{margin:0;font-size:15px}.live-tag{font-size:7px;font-weight:900;color:#68d8aa;background:rgba(37,200,118,.1);border:1px solid rgba(37,200,118,.16);border-radius:5px;padding:5px 8px}
.athlete-timeline-panel{display:flex;flex-direction:column}.coach-day-timeline{position:relative;padding:3px 16px 8px 28px;flex:1}.coach-day-timeline:before{content:"";position:absolute;left:30px;top:13px;bottom:17px;width:2px;background:linear-gradient(var(--blue) 0 28%,#3a4962 28% 100%)}.coach-timeline-item{position:relative;min-height:61px;padding:3px 5px 10px 29px}.coach-timeline-item:before{content:"";position:absolute;left:-4px;top:5px;width:14px;height:14px;border-radius:50%;background:#0c1729;border:2px solid #56667e;box-shadow:0 0 0 3px #0d1729}.coach-timeline-item.current:before{background:var(--blue);border-color:#8dadff}.coach-timeline-item.next:before{border-color:var(--blue)}.coach-timeline-time{font-size:12px;font-weight:900}.coach-timeline-title{font-size:10px;color:#a9b5c8;margin-top:5px}.coach-timeline-meta{font-size:8px;color:#657590;margin-top:3px}.coach-timeline-badge{position:absolute;right:0;top:2px;font-size:7px;font-weight:900;color:#75a6ff;background:rgba(47,111,228,.12);border-radius:5px;padding:4px 6px}
.panel-action{margin:8px 14px 13px;min-height:42px;display:flex;align-items:center;gap:8px;padding:0 13px;color:#c7d1df;font-size:9px;font-weight:900;letter-spacing:.06em;background:#101b2d;border:1px solid rgba(128,151,191,.18);border-radius:8px}.panel-action span{margin-left:auto;font-size:18px;color:#7f91ad}
.bracket-panel{display:flex;flex-direction:column;min-width:0}.bracket-header{border-bottom:1px solid rgba(132,153,190,.08)}.bracket-heading{display:flex;align-items:center;gap:20px}.tabs{display:flex;gap:5px}.tabs span{padding:7px 17px;border-radius:5px;background:#121d31;color:#73829d;font-size:9px}.tabs span.active{background:linear-gradient(180deg,var(--blue),var(--accent));color:white}.bracket-context{color:#8b9bb4;font-size:9px}.bracket-stage{padding:14px 19px 4px;overflow:auto;flex:1}.visual-bracket{min-width:760px;min-height:335px;display:grid;grid-auto-flow:column;grid-auto-columns:minmax(195px,1fr);gap:52px;align-items:stretch}.visual-round{min-height:320px;display:flex;flex-direction:column;justify-content:space-around;gap:12px}.visual-round-title{text-align:center;color:#a1aec2;font-size:8px;letter-spacing:.11em;text-transform:uppercase}.visual-match{position:relative}.visual-match:after{content:"";position:absolute;right:-53px;top:50%;width:52px;height:1px;background:#7889a4;opacity:.72}.visual-round:last-child .visual-match:after{display:none}.visual-match-head{display:flex;justify-content:space-between;font-size:7px;color:#62738f;margin-bottom:4px}.visual-player{min-height:35px;display:flex;align-items:center;justify-content:space-between;background:linear-gradient(145deg,#15233a,#111c2e);border:1px solid rgba(139,159,195,.15);border-left:2px solid rgba(126,148,187,.22);border-radius:4px;padding:7px 10px;margin-top:3px;font-size:9px}.visual-player.nws{border-left-color:var(--blue);background:linear-gradient(145deg,color-mix(in srgb,var(--blue) 12%,#15233a),#111d31)}.visual-player.winner{outline:1px solid rgba(41,108,255,.55)}.bracket-button{margin-left:auto;min-width:230px}
.horizontal-panel{margin-top:14px;padding-bottom:15px}.horizontal-day-timeline{position:relative;min-height:120px;margin:3px 24px 0;padding-top:20px}.horizontal-day-line{position:absolute;left:16px;right:16px;top:50px;height:4px;border-radius:5px;background:#3a475c}.horizontal-day-progress{position:absolute;left:16px;top:50px;height:4px;border-radius:5px;background:linear-gradient(90deg,var(--blue),#376cff)}.horizontal-day-events{position:relative;z-index:2;display:grid;grid-template-columns:repeat(var(--timeline-count),1fr)}.horizontal-event{text-align:center;min-width:90px}.horizontal-hour{height:23px;font-size:9px;color:#a8b4c7}.horizontal-marker{width:14px;height:14px;margin:0 auto 11px;border-radius:50%;background:var(--blue)}.horizontal-event.alert .horizontal-marker{background:var(--red)}.horizontal-event.complete .horizontal-marker{background:var(--green)}.horizontal-title{font-size:9px;font-weight:800}.horizontal-time{font-size:8px;color:#7788a2;margin-top:4px}
.section-header{display:flex;align-items:flex-end;justify-content:space-between;margin:22px 0 13px}.section-header.compact{margin:0 0 12px}.section-header h3{margin:4px 0 0;font-size:22px}.athlete-view-grid{display:grid;grid-template-columns:.8fr 1.2fr;gap:14px}.next-action{text-align:center;padding:30px}.action-icon{font-size:42px;color:var(--blue);margin-top:16px}.action-time{font-size:50px;font-weight:900;margin:10px 0}.next-action p{color:var(--muted)}.athlete-timeline{padding:12px 18px}.timeline-step{display:grid;grid-template-columns:22px 1fr auto;gap:11px;padding:14px 0;border-bottom:1px solid rgba(135,160,202,.12)}.step-dot{width:14px;height:14px;border-radius:50%;border:2px solid #52647e}.timeline-step time{font-weight:900}.muted{color:var(--muted)}
.full-bracket-panel{padding:18px;overflow:auto}.public-bracket{min-width:900px}.timeline-page-grid{display:grid;grid-template-columns:1.45fr .55fr;gap:14px}.full-timeline{padding:18px}.tl-row{display:grid;grid-template-columns:85px 20px 1fr;gap:10px}.tl-time{text-align:right;font-weight:900}.tl-rail{position:relative}.tl-rail:before{content:"";position:absolute;left:9px;top:0;bottom:0;width:2px;background:#3a4962}.tl-dot{position:relative;z-index:1;width:12px;height:12px;margin:3px auto;background:var(--blue);border-radius:50%}.tl-content{padding-bottom:15px}.tl-card{background:#111e33;border:1px solid rgba(135,160,202,.15);border-radius:8px;padding:10px}.tl-card small{display:block;color:var(--muted);margin-top:3px}.call-item{padding:10px 0;border-bottom:1px solid rgba(135,160,202,.12)}.call-item span{display:block;color:var(--muted);font-size:10px;margin-top:3px}
.profile-grid{display:grid;grid-template-columns:repeat(4,minmax(190px,1fr));gap:12px}.person-card{background:linear-gradient(150deg,var(--panel),#0b1628);border:1px solid rgba(135,160,202,.18);border-radius:12px;padding:15px}.avatar{width:42px;height:42px;border-radius:11px;display:grid;place-items:center;background:#17305a;font-weight:900}.person-card h4{margin:12px 0 4px}.person-card p{margin:2px 0;color:var(--muted);font-size:10px}.profile-links{margin-top:10px;padding-top:10px;border-top:1px solid rgba(135,160,202,.12);font-size:9px;color:var(--muted)}
.table-shell{overflow:auto;background:var(--panel);border:1px solid rgba(135,160,202,.18);border-radius:12px}table{width:100%;border-collapse:collapse;min-width:900px}th,td{text-align:left;padding:12px 14px;border-bottom:1px solid rgba(135,160,202,.12);font-size:10px}th{font-size:8px;color:#71829d;text-transform:uppercase;letter-spacing:.09em}.mini-btn,.secondary{background:#13213a;border:1px solid rgba(135,160,202,.2);color:white;border-radius:7px;padding:8px 10px}.primary{background:linear-gradient(180deg,var(--blue),var(--accent));border:1px solid rgba(92,141,255,.6);color:white;border-radius:7px;padding:9px 12px;font-weight:800}
.event-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.event-card{background:var(--panel);border:1px solid rgba(135,160,202,.18);border-radius:12px;padding:16px}.event-card h3{margin:10px 0 6px}.event-card p{color:var(--muted)}.pill{display:inline-flex;border-radius:999px;background:#16315f;color:#b9d1ff;padding:4px 8px;font-size:9px;font-weight:900}.date-row{display:grid;gap:7px;margin-top:12px}.date-row div{display:flex;justify-content:space-between;border-top:1px solid rgba(135,160,202,.12);padding-top:7px;font-size:9px}.date-row span{color:var(--muted)}
.message-demo{padding:20px}.message-demo p{color:var(--muted)}.message-bubble{margin-top:18px;max-width:540px;background:#15305c;border-radius:10px;padding:12px}
.branding-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}.brand-preview{grid-column:1/-1;min-height:260px;position:relative;overflow:hidden}.brand-preview-bg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:none}.brand-preview-shade{position:absolute;inset:0;background:linear-gradient(90deg,rgba(7,16,31,.96),rgba(7,16,31,.25))}.brand-preview-content{position:relative;z-index:1;display:flex;align-items:center;gap:20px;padding:40px}.brand-preview-logo{width:110px;height:110px;object-fit:contain;display:none}.brand-preview-content h2{font-size:34px;margin:6px 0}.brand-preview-content p:last-child{color:#b7c3d6}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;padding:16px}.form-grid label{display:grid;gap:5px;color:var(--muted);font-size:10px}.form-grid .full{grid-column:1/-1}.wide-panel{grid-column:1/-1;padding:16px}.asset-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:10px}.asset-card{background:#0b1628;border:1px solid rgba(135,160,202,.15);border-radius:10px;padding:10px;display:flex;flex-direction:column;gap:7px}.asset-card img{width:100%;height:90px;object-fit:contain;background:#07101f;border-radius:7px;display:none}.asset-card strong{font-size:10px}.asset-card input{font-size:9px}.color-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:10px}.color-grid label{display:grid;gap:6px;color:var(--muted);font-size:9px}.color-grid input[type=color]{height:48px;width:100%;padding:2px}.color-grid code{color:#d5dfef}
.settings-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}.setting-card{padding:18px}.setting-card>span{color:var(--muted)}.setting-card>div{display:flex;align-items:center;gap:12px;margin-top:14px}.setting-card button{width:34px;height:34px;border-radius:50%;border:1px solid rgba(135,160,202,.2);background:#13213a;color:white}.setting-card strong{font-size:38px}.setting-card small{color:var(--muted)}
dialog{border:0;background:transparent;color:white}dialog::backdrop{background:rgba(0,0,0,.72)}.modal-card{width:min(620px,92vw);background:#0e192b;border:1px solid rgba(135,160,202,.22);border-radius:14px;padding:18px}.modal-head{display:flex;justify-content:space-between;align-items:center}.modal-head h3{margin:0}.modal-head button{border:0;background:transparent;color:white}.modal-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:16px}
.fatal-error{position:fixed;left:18px;right:18px;bottom:18px;z-index:99999;background:#361018;border:1px solid var(--red);padding:14px;border-radius:10px;max-height:min(42vh,320px);overflow:auto;overflow-wrap:anywhere}.fatal-error-head{display:flex;align-items:center;justify-content:space-between;gap:12px}.fatal-error-close{flex:0 0 auto;width:36px;height:36px;border:1px solid rgba(255,255,255,.28);border-radius:8px;background:rgba(0,0,0,.2);color:#fff;font-size:24px;line-height:1;cursor:pointer}.fatal-error pre{white-space:pre-wrap;overflow-wrap:anywhere;word-break:break-word;margin:6px 0 0;color:#ffd9dc;font-size:11px;max-width:100%}.upload-error-text{color:#ff9ca3;overflow-wrap:anywhere;word-break:break-word}
@media(max-width:1200px){.command-grid{grid-template-columns:280px 1fr}.profile-grid{grid-template-columns:repeat(3,1fr)}.asset-grid{grid-template-columns:repeat(3,1fr)}}
@media(max-width:950px){.app-shell{grid-template-columns:1fr}.sidebar{position:static;height:auto}.metric-row{grid-template-columns:repeat(2,1fr)}.command-grid,.athlete-view-grid,.timeline-page-grid{grid-template-columns:1fr}.profile-grid{grid-template-columns:repeat(2,1fr)}.event-grid{grid-template-columns:1fr 1fr}.topbar{align-items:flex-start;padding:14px 0}.coach-chip{display:none}}
@media(max-width:650px){main{padding:0 14px 30px}.metric-row,.profile-grid,.event-grid,.settings-grid,.branding-grid,.asset-grid,.color-grid{grid-template-columns:1fr}.branding-grid .wide-panel,.brand-preview{grid-column:auto}.metric-card{height:95px}.visual-bracket{min-width:700px}.horizontal-day-timeline{overflow:auto}.horizontal-day-events{min-width:700px}}


/* v1.1 Coach / Athlete messaging + Parent Dashboard */
.parent-copy-badge,.read-only-badge{
  display:inline-flex;align-items:center;border-radius:999px;padding:6px 9px;
  font-size:8px;font-weight:900;letter-spacing:.07em;text-transform:uppercase;
  background:rgba(37,200,118,.1);color:#74dfad;border:1px solid rgba(37,200,118,.2)
}
.messaging-layout{display:grid;grid-template-columns:minmax(0,1.45fr) 310px;gap:14px}
.message-thread-panel{overflow:hidden}.message-toolbar{display:grid;grid-template-columns:1.1fr .8fr 1fr;gap:9px;padding:14px;border-bottom:1px solid rgba(135,160,202,.13)}
.message-toolbar label{display:grid;gap:5px;color:var(--muted);font-size:8px;text-transform:uppercase;letter-spacing:.07em}
.message-visibility-note{display:flex;gap:10px;align-items:center;padding:10px 14px;background:rgba(37,200,118,.055);border-bottom:1px solid rgba(37,200,118,.12)}
.message-visibility-note strong{font-size:9px;color:#75dbae}.message-visibility-note span{font-size:9px;color:#8597b0}
.message-thread{min-height:390px;max-height:560px;overflow:auto;padding:18px;display:flex;flex-direction:column;gap:10px}
.message-row{display:flex;flex-direction:column;max-width:78%}.message-row.coach{align-self:flex-start}.message-row.athlete{align-self:flex-end}
.message-meta{font-size:8px;color:#72849f;margin:0 4px 4px}.message-row.athlete .message-meta{text-align:right}
.message-bubble-v11{padding:11px 13px;border-radius:13px;font-size:11px;line-height:1.45;background:#14243d;border:1px solid rgba(135,160,202,.14)}
.message-row.coach .message-bubble-v11{border-top-left-radius:4px}.message-row.athlete .message-bubble-v11{background:linear-gradient(145deg,#174787,#16386a);border-color:rgba(83,140,255,.28);border-top-right-radius:4px}
.parent-mirror-tag{display:inline-flex;margin-top:5px;font-size:7px;color:#6dcf9f;letter-spacing:.04em}
.message-composer{display:grid;grid-template-columns:1fr auto;gap:10px;padding:14px;border-top:1px solid rgba(135,160,202,.13)}
.message-composer textarea{resize:vertical;min-height:68px;background:#0a1526;color:white;border:1px solid rgba(135,160,202,.2);border-radius:9px;padding:10px;font:inherit}
.message-composer button{align-self:end;height:42px}.message-side-panel{padding:18px;align-self:start}.message-side-panel h3{font-size:18px;margin:8px 0}.message-side-panel>p:last-of-type{color:var(--muted);font-size:10px;line-height:1.55}
.message-rule-list{display:grid;gap:9px;margin-top:18px}.message-rule-list span{font-size:9px;color:#b2bfd2;padding:9px;background:#0a1526;border:1px solid rgba(135,160,202,.12);border-radius:7px}
.parent-dashboard-grid{display:grid;grid-template-columns:280px minmax(0,1fr);gap:14px}.parent-athlete-panel{padding:16px}.parent-athlete-card{padding:12px;margin-top:10px;background:#0a1526;border:1px solid rgba(135,160,202,.14);border-radius:9px;cursor:pointer}
.parent-athlete-card.active{border-color:rgba(41,108,255,.5);background:linear-gradient(145deg,rgba(41,108,255,.13),#0a1526)}.parent-athlete-card strong,.parent-athlete-card span{display:block}.parent-athlete-card span{font-size:8px;color:var(--muted);margin-top:4px}
.parent-conversation-panel{overflow:hidden}.parent-thread-head{display:flex;justify-content:space-between;align-items:center;padding:16px 18px 10px}.parent-thread-head h3{margin:4px 0 0;font-size:17px}.parent-disclosure{margin:0 18px;padding:10px 12px;border-radius:8px;background:rgba(41,108,255,.07);border:1px solid rgba(41,108,255,.14);color:#94a8c7;font-size:9px;line-height:1.45}
.parent-thread{min-height:440px}.empty-thread{color:var(--muted);font-size:10px;text-align:center;margin:auto}
@media(max-width:950px){.messaging-layout,.parent-dashboard-grid{grid-template-columns:1fr}.message-side-panel{order:-1}.message-toolbar{grid-template-columns:1fr}}


/* v1.2 Message Coach compose boxes */
.inline-message-panel,.parent-coach-panel{margin-top:14px;overflow:hidden}
.inline-message-head{display:flex;align-items:center;justify-content:space-between;padding:15px 18px 10px}
.inline-message-head h3{margin:4px 0 0;font-size:17px}
.compact-message-thread{min-height:130px;max-height:260px;overflow:auto;padding:10px 18px;display:flex;flex-direction:column;gap:8px}
.compact-message-thread .message-row{max-width:72%}
.compact-message-thread .message-bubble-v11{font-size:10px;padding:9px 11px}
.inline-composer{display:grid;grid-template-columns:1fr auto;gap:10px;padding:13px 18px 16px;border-top:1px solid rgba(135,160,202,.13)}
.inline-composer textarea,.coach-parent-reply textarea{resize:vertical;background:#0a1526;color:white;border:1px solid rgba(135,160,202,.2);border-radius:9px;padding:10px;font:inherit}
.inline-composer button{align-self:end;height:42px}
.parent-coach-panel{margin-top:14px}
.parent-coach-panel .parent-thread-head select{min-width:190px}
.coach-parent-inbox-block{margin:16px 0 4px;padding-top:14px;border-top:1px solid rgba(135,160,202,.12)}
.coach-parent-inbox-head{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:8px}
.coach-parent-inbox-head strong{font-size:10px}.coach-parent-inbox-head select{max-width:150px;padding:6px 8px;font-size:8px}
.coach-parent-inbox{max-height:220px;overflow:auto;display:flex;flex-direction:column;gap:7px;padding:4px 0}
.coach-parent-inbox .message-row{max-width:92%}.coach-parent-inbox .message-bubble-v11{font-size:9px;padding:8px 9px}
.coach-parent-reply{display:grid;gap:7px;margin-top:9px}.coach-parent-reply textarea{min-height:58px;font-size:9px}.coach-parent-reply button{justify-self:end}
@media(max-width:700px){.inline-composer{grid-template-columns:1fr}.inline-composer button{width:100%}}


/* v1.3 local login, role views, notifications, stronger mobile UI */
.login-screen{position:fixed;inset:0;z-index:100000;background:
 radial-gradient(circle at 50% 10%,rgba(41,108,255,.15),transparent 35%),#06101f;
 display:grid;place-items:center;padding:20px}
.login-screen.hidden{display:none}
.login-card{width:min(420px,94vw);background:linear-gradient(150deg,#101d32,#0b1628);border:1px solid rgba(135,160,202,.22);border-radius:18px;padding:28px;box-shadow:0 30px 90px rgba(0,0,0,.5)}
.login-logo{width:60px;height:60px;display:grid;place-items:center;border-radius:16px;background:linear-gradient(145deg,var(--blue),var(--accent));font-weight:900;margin-bottom:18px}
.login-card h1{margin:8px 0 5px;font-size:30px}.login-help{color:var(--muted);font-size:10px;line-height:1.5;margin-bottom:18px}
.login-card label{display:grid;gap:6px;color:var(--muted);font-size:9px;text-transform:uppercase;letter-spacing:.07em;margin-top:10px}.login-card input{width:100%;font-size:14px}
.login-card>.primary{width:100%;margin-top:16px;height:44px}.demo-accounts{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;margin-top:13px}.demo-accounts button{background:#111f35;border:1px solid rgba(135,160,202,.15);color:#aebbd0;border-radius:7px;padding:8px;font-size:8px}.login-error{color:#ff8d95;font-size:9px;min-height:14px}
.notification-wrap{position:relative}.notification-btn{position:relative;width:40px;height:40px;border-radius:8px;border:1px solid rgba(135,160,202,.18);background:#0d182a;color:white;font-size:18px}
.notification-badge{position:absolute;right:-5px;top:-5px;min-width:18px;height:18px;border-radius:999px;background:var(--red);display:grid;place-items:center;font-size:8px;font-weight:900;padding:0 4px}
.notification-badge.zero{display:none}.notification-panel{position:absolute;right:0;top:48px;width:370px;max-height:500px;overflow:hidden;background:#0c1729;border:1px solid rgba(135,160,202,.22);border-radius:12px;box-shadow:0 24px 70px rgba(0,0,0,.45);z-index:500}
.notification-panel-head{display:flex;justify-content:space-between;align-items:center;padding:12px 14px;border-bottom:1px solid rgba(135,160,202,.13)}.notification-panel-head strong{font-size:11px}.notification-panel-head button{background:none;border:0;color:#75a6ff;font-size:8px}
.notification-list{max-height:430px;overflow:auto}.notification-item{display:grid;grid-template-columns:10px 1fr;gap:9px;padding:12px 14px;border-bottom:1px solid rgba(135,160,202,.1);cursor:pointer}.notification-item:hover{background:rgba(41,108,255,.05)}.notification-item.read{opacity:.58}.notification-severity{width:8px;height:8px;border-radius:50%;margin-top:4px;background:var(--blue)}.notification-item.urgent .notification-severity{background:var(--red)}.notification-item.warning .notification-severity{background:#f5b74c}.notification-item.success .notification-severity{background:var(--green)}.notification-item strong{display:block;font-size:9px}.notification-item p{margin:4px 0 0;color:var(--muted);font-size:8px;line-height:1.4}.notification-item time{display:block;color:#596b86;font-size:7px;margin-top:5px}
.signout-btn{height:40px;border-radius:8px;border:1px solid rgba(135,160,202,.16);background:#0d182a;color:#a7b5c8;font-size:8px}
.role-hidden{display:none!important}.role-view-note{display:inline-flex;padding:4px 7px;border-radius:999px;background:rgba(41,108,255,.08);color:#8fb2ff;font-size:7px;font-weight:900}
.mobile-nav-btn{display:none;position:fixed;left:12px;top:12px;z-index:400;width:40px;height:40px;border-radius:9px;border:1px solid rgba(135,160,202,.22);background:#0c1729;color:white;font-size:18px}.mobile-backdrop{display:none;position:fixed;inset:0;background:rgba(0,0,0,.55);z-index:299}
@media(max-width:950px){
 .mobile-nav-btn{display:block}.sidebar{position:fixed;left:-275px;top:0;bottom:0;width:260px;height:100vh;z-index:350;transition:left .2s ease}.sidebar.mobile-open{left:0}.mobile-backdrop.show{display:block}
 main{padding-top:58px}.topbar{min-height:auto;padding:8px 0 12px;gap:9px}.top-actions{flex-wrap:wrap;justify-content:flex-end}.top-actions select{max-width:180px}.signout-btn{display:none}
 .notification-panel{position:fixed;left:12px;right:12px;top:64px;width:auto;max-height:70vh}
}
@media(max-width:600px){
 .demo-accounts{grid-template-columns:1fr 1fr}.metric-row{grid-template-columns:1fr 1fr;gap:8px}.metric-card{padding:12px;height:86px}.metric-symbol{width:38px;height:38px;font-size:24px}.metric-card strong{font-size:25px}.metric-card span{font-size:11px}
 .page-heading h2{font-size:20px}.event-context{flex-wrap:wrap}.command-grid{gap:10px}.panel{border-radius:10px}.horizontal-panel{overflow:hidden}.horizontal-day-timeline{min-width:700px}
 .message-thread{min-height:300px}.message-row{max-width:90%}.coach-chip{padding:4px 7px}.coach-chip small{display:none}
}


/* =========================================================
   v1.4 MOBILE / PWA
   ========================================================= */
.mobile-connect-card{
  margin-top:18px;padding:13px;border:1px solid rgba(135,160,202,.14);
  background:#091426;border-radius:10px;display:grid;gap:9px
}
.mobile-connect-card strong,.mobile-connect-card span{display:block}
.mobile-connect-card strong{font-size:10px;margin-top:3px}
.mobile-connect-card span,.mobile-connect-card small{font-size:8px;color:var(--muted);line-height:1.4}
.mobile-connect-card code{padding:9px 10px;border-radius:7px;background:#050d1a;color:#87adff;font-size:11px;overflow:auto;white-space:nowrap}
.mobile-connect-actions{display:flex;gap:7px}
.mobile-connect-actions button{flex:1;border:1px solid rgba(135,160,202,.16);background:#111f35;color:white;border-radius:7px;padding:8px;font-size:8px;font-weight:800}

.mobile-role-home{display:none}
.mobile-role-hero{
  background:
    radial-gradient(circle at 88% 12%,rgba(41,108,255,.23),transparent 28%),
    linear-gradient(145deg,#10213a,#091526);
  border:1px solid rgba(93,137,216,.22);border-radius:15px;padding:20px;
  box-shadow:0 16px 40px rgba(0,0,0,.22)
}
.mobile-role-hero>span{display:block;color:#9caec6;font-size:11px;margin-top:9px}
.mobile-role-hero>strong{display:block;font-size:21px;margin-top:12px;letter-spacing:.02em}
.mobile-role-hero>b{display:block;font-size:42px;line-height:1;margin:8px 0;color:white}
.mobile-role-hero>small{display:block;color:#94a5bd;font-size:9px;line-height:1.45}
.mobile-quick-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:9px}
.mobile-quick-grid button{
  min-height:76px;border-radius:12px;border:1px solid rgba(135,160,202,.15);
  background:linear-gradient(145deg,#101e33,#0a1526);color:white;
  display:flex;flex-direction:column;align-items:flex-start;justify-content:center;
  gap:8px;padding:12px;font-size:20px;text-align:left
}
.mobile-quick-grid button span{font-size:9px;font-weight:800;color:#b6c4d7}

.mobile-bottom-nav{
  display:none;position:fixed;left:0;right:0;bottom:0;z-index:320;
  min-height:64px;background:rgba(7,16,31,.96);
  border-top:1px solid rgba(135,160,202,.17);
  backdrop-filter:blur(14px);padding:5px max(7px,env(safe-area-inset-left)) calc(5px + env(safe-area-inset-bottom)) max(7px,env(safe-area-inset-right));
  grid-template-columns:repeat(var(--mobile-nav-count,4),1fr)
}
.mobile-bottom-nav button{
  background:none;border:0;color:#70829d;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;
  min-width:0;font-size:16px
}
.mobile-bottom-nav button span{font-size:7px;font-weight:800;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}
.mobile-bottom-nav button.active{color:#9fbcff}
.mobile-bottom-nav button.active:before{
  content:"";position:absolute;top:0;width:28px;height:2px;background:var(--blue);border-radius:0 0 4px 4px
}
.mobile-bottom-nav button{position:relative}

.install-help{position:fixed;inset:0;z-index:99990;background:rgba(0,0,0,.68);display:grid;place-items:end center;padding:18px}
.install-help[hidden]{display:none}
.install-help-card{width:min(520px,100%);background:#0c1729;border:1px solid rgba(135,160,202,.2);border-radius:16px;padding:19px;position:relative}
.install-help-card h3{margin:7px 30px 7px 0}.install-help-card>p:last-child{color:var(--muted);font-size:10px;line-height:1.5}
.install-help-close{position:absolute;right:10px;top:10px;background:none;border:0;color:white}

@media(max-width:700px){
  body{padding-bottom:74px}
  .mobile-bottom-nav{display:grid}
  .mobile-role-home{display:block;margin:7px 0 13px}
  #athlete .section-header,#parentDashboard>.section-header{margin-top:12px}
  .athlete-view-grid{display:block}
  .athlete-view-grid>.next-action{display:none}
  #athlete .athlete-view-grid>.panel:not(.next-action){padding-bottom:5px}
  .parent-dashboard-grid{display:block}
  .parent-athlete-panel{margin-bottom:10px}
  #parentDashboard .parent-disclosure{font-size:8px}
  .topbar{position:sticky;top:0;z-index:250;background:rgba(7,16,31,.94);backdrop-filter:blur(12px);margin:0 -14px 9px;padding:9px 14px 10px 58px}
  .page-heading .eyebrow{display:none}
  .page-heading h2{margin:0;font-size:17px}
  .top-actions{gap:5px}
  .top-actions>#eventSelect{display:none}
  .notification-btn,.icon-button{width:36px;height:36px}
  .coach-chip{height:36px}
  .coach-avatar{width:25px;height:25px}
  .sidebar{padding-bottom:90px}
  .event-context{font-size:8px}
  .metric-row{margin-bottom:10px}
  .command-grid{min-height:auto}
  .athlete-timeline-panel{min-height:400px}
  .bracket-stage{padding:10px}
  .bracket-panel .panel-action{min-width:0;width:auto}
  .section-header h3{font-size:18px}
  .inline-message-head{align-items:flex-start;gap:8px}
  .inline-message-head .parent-copy-badge{font-size:6px}
  .compact-message-thread{padding:8px 12px}
  .inline-composer{padding:10px 12px 13px}
  dialog .modal-card{max-height:88vh;overflow:auto}
}


/* v1.4.1 logout/profile menu */
.profile-menu-wrap{position:relative}
.profile-menu-btn{border:1px solid rgba(135,160,202,.13);color:white;cursor:pointer}
.profile-menu-btn:hover{border-color:rgba(84,132,225,.38);background:#101d31}
.profile-chevron{color:#6f819c;font-size:12px;margin-left:3px}
.profile-menu{
  position:absolute;right:0;top:51px;width:190px;z-index:700;
  background:#0c1729;border:1px solid rgba(135,160,202,.22);
  border-radius:10px;box-shadow:0 20px 55px rgba(0,0,0,.42);overflow:hidden
}
.profile-menu[hidden]{display:none}
.profile-menu-head{padding:12px 13px;border-bottom:1px solid rgba(135,160,202,.12)}
.profile-menu-head strong,.profile-menu-head span{display:block}
.profile-menu-head strong{font-size:10px}.profile-menu-head span{margin-top:3px;font-size:8px;color:var(--muted)}
.profile-logout-btn{
  width:100%;border:0;background:transparent;color:#ff8f96;
  padding:11px 13px;text-align:left;font-size:9px;font-weight:800
}
.profile-logout-btn:hover{background:rgba(255,68,79,.08)}
.mobile-logout-fab{display:none}
@media(max-width:950px){
  .profile-menu{position:fixed;right:12px;top:58px}
  .mobile-logout-fab{
    display:grid;place-items:center;position:fixed;right:12px;
    bottom:calc(76px + env(safe-area-inset-bottom));z-index:860;
    min-width:88px;height:44px;padding:0 14px;border-radius:999px;
    background:#1b2638;color:#ff9ba1;border:1px solid rgba(255,95,106,.28);
    box-shadow:0 10px 28px rgba(0,0,0,.35);font-size:11px;font-weight:900;
    letter-spacing:.02em;white-space:nowrap
  }
}

/* v1.5 Fight Review */
.fight-review-header>div>p.muted{margin:5px 0 0;font-size:10px}
.fight-upload-panel{padding:18px;margin-bottom:14px;display:grid;grid-template-columns:1.05fr 1.7fr;gap:16px;align-items:start}
.fight-upload-copy h3{margin:4px 0 7px}.fight-upload-copy>p:last-child{margin:0;color:var(--muted);font-size:10px;line-height:1.6}
.fight-upload-form{display:grid;grid-template-columns:1.3fr 1fr 1fr 1fr;gap:10px}
.fight-upload-form label{display:grid;gap:6px;color:var(--muted);font-size:8px;font-weight:800;text-transform:uppercase;letter-spacing:.05em}
.fight-upload-form input,.fight-upload-form select{width:100%;min-width:0}
.fight-upload-actions{grid-column:1/-1;display:grid;grid-template-columns:auto auto minmax(160px,1fr) auto;gap:8px;align-items:center}
.fight-file-input{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none}
.fight-pending-file{min-height:36px;border:1px dashed rgba(135,160,202,.22);border-radius:8px;padding:8px 11px;color:var(--muted);font-size:9px;display:flex;align-items:center;gap:10px;min-width:0}
.fight-pending-file strong{color:#dce7f7;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.fight-pending-file span{margin-left:auto;white-space:nowrap}
.fight-upload-confirm:disabled{opacity:.42;cursor:not-allowed}
.fight-progress-wrap{grid-column:1/-1;height:24px;border-radius:7px;background:#081321;border:1px solid rgba(135,160,202,.14);overflow:hidden;position:relative}
.fight-progress-wrap[hidden]{display:none}.fight-progress-bar{height:100%;width:0;background:linear-gradient(90deg,var(--accent),var(--blue));transition:width .15s ease}
.fight-progress-wrap span{position:absolute;inset:0;display:grid;place-items:center;font-size:8px;font-weight:900;color:white;text-shadow:0 1px 3px #000}
.fight-review-layout{display:grid;grid-template-columns:330px minmax(0,1fr);gap:14px;min-height:620px}
.fight-library-panel,.fight-player-panel{min-width:0}.fight-library-panel{padding:14px;display:flex;flex-direction:column}.fight-player-panel{padding:18px}
.count-badge{display:grid;place-items:center;min-width:25px;height:22px;padding:0 7px;border-radius:999px;background:rgba(79,140,255,.13);border:1px solid rgba(79,140,255,.22);font-size:8px;font-weight:900;color:#a9c3ff}
.fight-video-list{display:flex;flex-direction:column;gap:8px;overflow:auto;max-height:680px;padding-right:2px}
.fight-video-card{width:100%;border:1px solid rgba(135,160,202,.13);background:#091525;border-radius:10px;padding:10px;display:grid;grid-template-columns:38px minmax(0,1fr);gap:9px;text-align:left;color:white;position:relative;cursor:pointer}
.fight-video-card:hover{border-color:rgba(79,140,255,.35);background:#0b192b}.fight-video-card.active{border-color:rgba(79,140,255,.58);box-shadow:inset 3px 0 0 var(--blue);background:#0d1b2e}
.fight-video-thumb{width:38px;height:38px;border-radius:8px;background:linear-gradient(145deg,#172b49,#0c1930);display:grid;place-items:center;color:#9bbcff;border:1px solid rgba(79,140,255,.2);font-size:13px}
.fight-video-card-copy{min-width:0;padding-right:68px}.fight-video-card-copy strong,.fight-video-card-copy span,.fight-video-card-copy small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.fight-video-card-copy strong{font-size:10px}.fight-video-card-copy span{font-size:8px;color:#9cb0ca;margin-top:4px}.fight-video-card-copy small{font-size:7px;color:#647892;margin-top:5px}
.fight-status{position:absolute;right:8px;top:9px;font-style:normal;font-size:6px;font-weight:900;text-transform:uppercase;letter-spacing:.04em;padding:4px 6px;border-radius:999px;background:rgba(247,185,85,.1);color:#f7c978;border:1px solid rgba(247,185,85,.2)}
.fight-status.in-review{background:rgba(79,140,255,.1);color:#9fbfff;border-color:rgba(79,140,255,.22)}.fight-status.reviewed{background:rgba(72,213,151,.1);color:#79ddb2;border-color:rgba(72,213,151,.22)}
.fight-empty-list,.fight-review-empty{color:var(--muted);text-align:center;display:grid;place-items:center;align-content:center;min-height:220px;padding:25px}.fight-empty-list span,.fight-review-empty>span{font-size:28px;color:#48617f}.fight-empty-list strong,.fight-review-empty h3{margin:8px 0 3px;color:#d9e4f3}.fight-empty-list p,.fight-review-empty p{margin:0;font-size:9px;line-height:1.5}
#fightReviewDetail[hidden],.fight-upload-panel[hidden],.fight-note-composer[hidden]{display:none}
.fight-detail-head{display:flex;justify-content:space-between;gap:14px;align-items:flex-start;margin-bottom:12px}.fight-detail-head h3{margin:3px 0 4px;font-size:18px}.fight-detail-head p.muted{margin:0;font-size:8px;line-height:1.5}
.review-status-pill{white-space:nowrap;border-radius:999px;padding:7px 10px;background:rgba(247,185,85,.1);border:1px solid rgba(247,185,85,.22);color:#f7c978;font-size:7px;font-weight:900;text-transform:uppercase}.review-status-pill:disabled{cursor:default;opacity:.85}
.fight-video-player{width:100%;max-height:520px;min-height:260px;background:#02070d;border-radius:10px;border:1px solid rgba(135,160,202,.14);display:block}
.fight-player-time{display:flex;justify-content:space-between;align-items:center;padding:7px 4px 11px;color:var(--muted);font-size:8px}.fight-player-time strong{color:#dce8f8;font-size:10px}
.fight-note-composer{border:1px solid rgba(79,140,255,.18);background:rgba(9,23,42,.75);border-radius:10px;padding:12px;margin:2px 0 15px}.fight-note-composer-head,.fight-notes-head{display:flex;align-items:center;justify-content:space-between;gap:10px}.fight-note-composer-head h4,.fight-notes-head h4{margin:3px 0 0}.fight-note-composer textarea{width:100%;margin:10px 0 8px;resize:vertical;min-height:72px}.fight-note-actions{display:flex;justify-content:space-between;align-items:center;gap:10px}.fight-note-actions span{font-size:8px;color:#9eb2cc;font-weight:800}
.fight-notes-head{margin:10px 0 8px}.fight-notes-list{display:flex;flex-direction:column;gap:8px}
.fight-note-row{display:grid;grid-template-columns:54px minmax(0,1fr);gap:10px;padding:10px;border-radius:9px;background:#091525;border:1px solid rgba(135,160,202,.11)}.fight-note-row.coach{box-shadow:inset 2px 0 0 var(--blue)}.fight-note-row.athlete{box-shadow:inset 2px 0 0 var(--green)}
.fight-note-time{height:30px;border-radius:7px;background:#11213a;border:1px solid rgba(79,140,255,.22);color:#a8c2ff;font-size:8px;font-weight:900;cursor:pointer}.fight-note-time:hover{background:#172b49}
.fight-note-meta{display:flex;justify-content:space-between;gap:8px}.fight-note-meta strong{font-size:9px}.fight-note-meta span{font-size:7px;color:#6f839d}.fight-note-row p{margin:5px 0 0;color:#c9d6e7;font-size:9px;line-height:1.55;white-space:pre-wrap}
.fight-empty-notes{border:1px dashed rgba(135,160,202,.15);border-radius:9px;padding:18px;color:var(--muted);font-size:9px;text-align:center;line-height:1.5}
.parent-fight-capture-panel{margin:14px 0}.parent-fight-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:10px}

@media(max-width:1100px){.fight-upload-panel{grid-template-columns:1fr}.fight-upload-form{grid-template-columns:1fr 1fr}.fight-review-layout{grid-template-columns:280px minmax(0,1fr)}}
@media(max-width:760px){
  .fight-review-layout{display:block}.fight-library-panel{margin-bottom:10px}.fight-video-list{max-height:300px}.fight-player-panel{padding:12px}.fight-video-player{min-height:210px;max-height:55vh}.fight-upload-panel{padding:12px}.fight-upload-form{grid-template-columns:1fr}.fight-upload-actions{grid-template-columns:1fr 1fr}.fight-pending-file,.fight-upload-confirm{grid-column:1/-1}.fight-detail-head{display:block}.review-status-pill{margin-top:8px}.fight-note-meta{display:block}.fight-note-meta span{display:block;margin-top:2px}.parent-fight-actions>*{flex:1 1 130px}.fight-review-header{align-items:flex-start;gap:10px}.fight-review-header select{max-width:145px}.mobile-quick-grid{grid-template-columns:1fr 1fr}
}

/* v1.6 structured fight analysis */
.fight-metadata-card{border:1px solid rgba(135,160,202,.14);background:rgba(6,17,31,.68);border-radius:10px;padding:12px;margin:2px 0 12px}
.fight-metadata-head{display:flex;align-items:center;justify-content:space-between;gap:10px}.fight-metadata-head h4{margin:3px 0 0}
.fight-metadata-grid{display:grid;grid-template-columns:1.4fr .9fr .7fr .7fr .8fr .8fr .8fr 1.5fr;gap:7px;margin-top:10px}.fight-metadata-grid label{display:grid;gap:5px;color:var(--muted);font-size:7px;font-weight:900;text-transform:uppercase;letter-spacing:.04em}.fight-metadata-grid input,.fight-metadata-grid select{width:100%;min-width:0}.fight-metadata-card.read-only{opacity:.78}.fight-metadata-hint{font-size:7px;color:#7186a2;margin:7px 0 0}
.fight-tag-section{margin:10px 0}.fight-tag-section>span{display:block;color:#7186a2;font-size:7px;font-weight:900;text-transform:uppercase;letter-spacing:.08em;margin-bottom:6px}.fight-tag-chips{display:flex;flex-wrap:wrap;gap:6px}.fight-tag-chips button{border:1px solid rgba(135,160,202,.18);background:#0c1a2d;color:#aebed3;border-radius:999px;padding:7px 10px;font-size:8px;font-weight:800;cursor:pointer}.fight-tag-chips button:hover{border-color:rgba(79,140,255,.45);color:#dce8ff}.fight-tag-chips button.selected{background:rgba(79,140,255,.2);border-color:rgba(79,140,255,.65);color:#dce8ff;box-shadow:0 0 0 1px rgba(79,140,255,.12)}
.fight-note-tags{display:flex;flex-wrap:wrap;gap:5px;margin-top:6px}.fight-note-tags span{border-radius:999px;padding:3px 6px;font-size:6px;font-weight:900;text-transform:uppercase;letter-spacing:.03em;background:rgba(79,140,255,.11);border:1px solid rgba(79,140,255,.18);color:#a8c2ff}.fight-note-tags span.assessment{background:rgba(247,185,85,.09);border-color:rgba(247,185,85,.18);color:#f7c978}.fight-note-tags span.outcome{background:rgba(72,213,151,.08);border-color:rgba(72,213,151,.18);color:#79ddb2}
.fight-analytics-panel{margin-top:16px;padding:20px;min-width:0;overflow:hidden}
.fight-analytics-panel>.panel-header{padding:0 0 16px;min-height:0;gap:18px;align-items:flex-start;border-bottom:1px solid rgba(135,160,202,.10);margin-bottom:16px}
.fight-analytics-panel .panel-header>div{min-width:0}.fight-analytics-panel .panel-header h3{font-size:20px;line-height:1.2;margin-top:3px}.fight-analytics-panel .panel-header p.muted{margin:6px 0 0;font-size:10px;line-height:1.45}
.fight-analytics-panel .count-badge{flex:0 0 auto;white-space:nowrap;font-size:9px;padding:6px 9px}
.fight-analytics-metrics{display:grid;grid-template-columns:repeat(4,minmax(150px,1fr));gap:12px;margin:0 0 16px}
.fight-analytics-metrics>div{min-width:0;background:linear-gradient(145deg,#0b182a,#091525);border:1px solid rgba(135,160,202,.14);border-radius:11px;padding:14px 15px;min-height:92px}
.fight-analytics-metrics span,.fight-analytics-metrics small{display:block;color:#8fa2bc;font-size:9px;line-height:1.4}.fight-analytics-metrics span{font-weight:900;text-transform:uppercase;letter-spacing:.07em}
.fight-analytics-metrics strong{display:block;margin:7px 0 5px;font-size:22px;line-height:1.12;color:#eef5ff;overflow-wrap:anywhere}.fight-analytics-metrics small{min-height:0}
.fight-analytics-grid{display:grid;grid-template-columns:repeat(3,minmax(240px,1fr));gap:14px}
.fight-analytics-grid section{min-width:0;background:#081321;border:1px solid rgba(135,160,202,.12);border-radius:11px;padding:15px 16px}
.fight-analytics-grid h4{margin:0 0 14px;padding-bottom:10px;border-bottom:1px solid rgba(135,160,202,.09);font-size:12px;letter-spacing:.01em}
.fight-analytics-bars{display:grid;gap:12px}
.fight-analytics-bar{display:grid;grid-template-columns:minmax(105px,.85fr) minmax(90px,1.45fr) 28px;align-items:center;gap:10px;min-width:0}
.fight-analytics-label{min-width:0;color:#b8c7da;font-size:10px;line-height:1.25;overflow-wrap:anywhere}
.fight-analytics-count{color:#e3edf9;font-size:10px;text-align:right;font-variant-numeric:tabular-nums}
.fight-analytics-track{height:9px;background:#0f2037;border:1px solid rgba(135,160,202,.08);border-radius:999px;overflow:hidden;min-width:0}
.fight-analytics-track i{display:block;height:100%;border-radius:999px;background:linear-gradient(90deg,var(--accent),var(--blue))}
.fight-analytics-empty{font-size:10px;color:#758aa6;line-height:1.5;padding:8px 0}
@media(max-width:1200px){
  .fight-metadata-grid{grid-template-columns:repeat(4,1fr)}.fight-round-scores{grid-column:span 2}
  .fight-analytics-grid{grid-template-columns:1fr 1fr}.fight-analytics-grid section:first-child{grid-column:1/-1}
  .fight-analytics-bar{grid-template-columns:minmax(125px,.7fr) minmax(120px,1.7fr) 30px}
}
@media(max-width:780px){
  .fight-metadata-grid{grid-template-columns:1fr 1fr}.fight-round-scores{grid-column:1/-1}.fight-tag-chips button{padding:9px 11px;font-size:9px}
  .fight-analytics-panel{padding:11px;margin-top:10px}.fight-analytics-panel>.panel-header{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;padding-bottom:10px;margin-bottom:10px}
  .fight-analytics-panel .panel-header h3{font-size:17px}.fight-analytics-panel .panel-header p.muted{font-size:10px}.fight-analytics-panel .count-badge{height:25px;font-size:8px}
  .fight-analytics-metrics{grid-template-columns:1fr 1fr;gap:8px;margin-bottom:10px}.fight-analytics-metrics>div{padding:10px;min-height:0}.fight-analytics-metrics strong{font-size:18px}.fight-analytics-metrics span,.fight-analytics-metrics small{font-size:9px}
  .fight-analytics-grid{grid-template-columns:1fr;gap:9px}.fight-analytics-grid section,.fight-analytics-grid section:first-child{grid-column:auto;padding:11px}.fight-analytics-grid h4{font-size:12px;margin-bottom:10px;padding-bottom:8px}
  .fight-analytics-bars{gap:11px}.fight-analytics-bar{grid-template-columns:minmax(0,1fr) auto;gap:5px 10px}.fight-analytics-label,.fight-analytics-count{font-size:10px}.fight-analytics-track{grid-column:1/-1;grid-row:2;height:9px}.fight-analytics-empty{font-size:10px}
}
@media(max-width:420px){
  .fight-analytics-panel>.panel-header{grid-template-columns:1fr}.fight-analytics-panel .count-badge{justify-self:start}
  .fight-analytics-metrics{grid-template-columns:1fr 1fr}.fight-analytics-metrics>div{padding:9px}.fight-analytics-metrics strong{font-size:17px}.fight-analytics-metrics small{min-height:0}
}
/* v1.6.2 athlete fight access + structured analysis hierarchy */
.fight-structured-analysis{border:1px solid rgba(79,140,255,.22);background:linear-gradient(180deg,rgba(11,27,49,.82),rgba(7,18,33,.72));border-radius:12px;padding:13px;margin:12px 0 15px}
.fight-structured-analysis-head{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:10px;padding:0 2px 8px;border-bottom:1px solid rgba(135,160,202,.12)}
.fight-structured-analysis-head h4{margin:3px 0 3px;font-size:15px}.fight-structured-analysis-head p:not(.eyebrow){margin:0;font-size:8px}
.fight-structured-analysis .fight-metadata-card{margin:0 0 10px;background:rgba(5,15,28,.78)}
.fight-structured-analysis .fight-note-composer{margin:0;background:rgba(8,22,40,.76)}
.athlete-fight-access-panel{margin-top:14px;overflow:hidden}.athlete-fight-access-head{display:flex;justify-content:space-between;align-items:flex-start;gap:14px}.athlete-fight-access-head h3{margin:3px 0}.athlete-fight-access-head p:not(.eyebrow){margin:0}
.athlete-fight-access-content{display:grid;gap:10px;margin-top:12px}.athlete-fight-summary{display:grid;grid-template-columns:58px minmax(0,1fr) auto;gap:11px;align-items:center;padding:11px;border:1px solid rgba(135,160,202,.12);background:#091525;border-radius:10px}.athlete-fight-thumb{width:58px;height:48px;border-radius:8px;border:1px solid rgba(79,140,255,.28);background:linear-gradient(145deg,#132845,#0b192d);color:#8db5ff;font-size:18px}.athlete-fight-copy{display:grid;gap:3px}.athlete-fight-copy strong{font-size:11px}.athlete-fight-copy span{font-size:8px;color:#9eb0c8}.athlete-fight-copy small{font-size:7px;color:#6f839d}.athlete-latest-feedback{padding:10px 12px;border-radius:10px;background:rgba(7,18,32,.72);border-left:2px solid var(--blue)}.athlete-feedback-label{display:flex;justify-content:space-between;align-items:center;gap:10px}.athlete-feedback-label>span{font-size:8px;font-weight:900;text-transform:uppercase;letter-spacing:.06em;color:#9eb2cc}.athlete-latest-feedback p{margin:7px 0 0;font-size:9px;line-height:1.5;color:#cbd8e7}.athlete-fight-empty{display:flex;align-items:center;gap:12px;padding:14px;border:1px dashed rgba(135,160,202,.18);border-radius:10px;color:#7387a4}.athlete-fight-empty>span{font-size:22px}.athlete-fight-empty strong{color:#becbe0}.athlete-fight-empty p{margin:3px 0 0;font-size:8px}
@media(max-width:780px){.athlete-fight-summary{grid-template-columns:52px 1fr}.athlete-fight-summary>.mini-btn{grid-column:1/-1;width:100%}.athlete-fight-access-head{align-items:center}.athlete-fight-access-head .mini-btn{white-space:nowrap}}


/* v1.6.5 mobile-first moment analysis */
.fight-moment-analysis{margin:10px 0 12px;border:1px solid rgba(79,140,255,.32);background:linear-gradient(180deg,rgba(10,28,50,.94),rgba(7,19,35,.92));box-shadow:inset 3px 0 0 rgba(79,140,255,.65)}
.fight-moment-help{margin:3px 0 0;font-size:8px;line-height:1.4}
.fight-time-capture-btn{white-space:nowrap}
@media(max-width:780px){
  .fight-player-panel{padding:9px}.fight-video-player{margin-bottom:0;border-bottom-left-radius:5px;border-bottom-right-radius:5px}
  .fight-player-time{margin:5px 2px 7px}.fight-moment-analysis{margin:7px 0 10px;padding:10px;border-radius:10px}
  .fight-note-composer-head{align-items:flex-start;gap:8px}.fight-note-composer-head h4{font-size:14px;margin:2px 0}.fight-moment-help{font-size:9px}
  .fight-time-capture-btn{min-height:44px;padding:9px 10px;font-size:9px}
  .fight-tag-section{margin:9px 0}.fight-tag-section>span{font-size:8px;margin-bottom:5px}
  .fight-tag-chips{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}
  .fight-tag-chips button{min-height:44px;border-radius:10px;padding:8px 7px;font-size:10px;line-height:1.15;text-align:center}
  #fightAssessmentTags button:first-child{grid-column:1/-1}
  #fightNoteBody{min-height:58px;font-size:16px}
  .fight-note-actions{display:grid;grid-template-columns:1fr;gap:7px}.fight-note-actions span{text-align:center}.fight-note-actions .primary{min-height:48px;width:100%;font-size:11px}
  .fight-structured-analysis{margin-top:10px}
}


/* =========================================================
   v1.6.5 ATHLETE TOURNAMENT NOTIFICATIONS
   ========================================================= */
.notification-btn{font-size:17px;display:grid;place-items:center;line-height:1;cursor:pointer}
.notification-item{width:100%;text-align:left;color:inherit;background:transparent;border:0;border-bottom:1px solid rgba(135,160,202,.1);grid-template-columns:30px 1fr;align-items:start}
.notification-type-icon{width:27px;height:27px;border-radius:8px;display:grid;place-items:center;background:rgba(41,108,255,.12);font-size:13px;font-weight:900;color:#9dbdff}
.notification-item.urgent .notification-type-icon{background:rgba(255,68,79,.12);color:#ff8189}.notification-item.warning .notification-type-icon{background:rgba(245,183,76,.12);color:#ffd27b}
.notification-item strong{font-size:10px}.notification-item p{font-size:9px}.notification-item time{font-size:8px}
.coach-call-athlete-btn{margin-top:14px;border:1px solid rgba(255,92,104,.5);background:rgba(255,92,104,.1);color:#ff8992;border-radius:8px;padding:10px 13px;font-size:9px;font-weight:900;letter-spacing:.05em;cursor:pointer}
.mobile-role-hero[data-phase="holding"],.mobile-role-hero[data-phase="ring"]{border-color:rgba(255,92,104,.5);box-shadow:0 0 0 1px rgba(255,92,104,.08),0 16px 40px rgba(0,0,0,.22)}
.mobile-role-hero[data-phase="warmup"],.mobile-role-hero[data-phase="approaching"]{border-color:rgba(245,183,76,.42)}
@media(max-width:700px){
  .notification-panel{top:58px;max-height:76vh}.notification-list{max-height:calc(76vh - 48px)}
  .notification-item{padding:14px 12px;grid-template-columns:34px 1fr}.notification-type-icon{width:32px;height:32px;font-size:15px}
  .notification-item strong{font-size:13px}.notification-item p{font-size:11px;line-height:1.45}.notification-item time{font-size:9px}
}


/* =========================================================
   v1.6.7 IDENTITY & ACCESS FOUNDATION
   ========================================================= */
.onboarding-screen{position:fixed;inset:0;z-index:120000;background:radial-gradient(circle at 50% 8%,rgba(41,108,255,.22),transparent 34%),#06101f;display:grid;place-items:center;padding:20px;overflow:auto}
.onboarding-screen[hidden]{display:none}
.onboarding-card{width:min(760px,96vw);background:linear-gradient(150deg,#101d32,#0b1628);border:1px solid rgba(135,160,202,.24);border-radius:20px;padding:28px;box-shadow:0 30px 100px rgba(0,0,0,.55)}
.onboarding-brand{display:flex;align-items:center;gap:14px}.onboarding-mark{width:68px;height:68px;border-radius:18px;display:grid;place-items:center;font-weight:950;font-size:25px;background:linear-gradient(145deg,var(--blue),var(--accent));color:#fff}.onboarding-brand h1{margin:5px 0 0;font-size:28px}.onboarding-copy{color:#a7b5c8;font-size:12px;line-height:1.6;max-width:650px}
.onboarding-grid{display:grid;grid-template-columns:1fr 1fr;gap:13px;margin-top:18px}.onboarding-grid label{display:grid;gap:6px;color:#9aa9bf;font-size:9px;font-weight:800;text-transform:uppercase;letter-spacing:.06em}.onboarding-grid select,.onboarding-grid input{min-height:46px;font-size:15px}.locale-preview{border:1px solid rgba(135,160,202,.18);border-radius:10px;padding:10px 12px;background:#091426;display:grid;align-content:center}.locale-preview span{font-size:8px;color:#8292ab;text-transform:uppercase;letter-spacing:.08em}.locale-preview strong{font-size:12px;margin-top:4px}.locale-preview small{font-size:10px;color:#91a4bf;margin-top:3px}.onboarding-continue{width:100%;min-height:48px;margin-top:18px;font-size:12px;font-weight:900}.onboarding-note{display:block;color:#71839f;margin-top:10px;line-height:1.4}
.profile-locale-btn{width:100%;border:0;background:transparent;color:#c6d0dd;text-align:left;padding:10px 12px;border-bottom:1px solid rgba(135,160,202,.1);font-size:9px}.profile-locale-btn:hover{background:rgba(41,108,255,.08)}
.experience-defaults{padding:18px}.settings-help{color:var(--muted);font-size:9px;line-height:1.55;margin:0 0 14px}.experience-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px}.experience-grid label{display:grid;gap:6px;color:var(--muted);font-size:8px;font-weight:800;text-transform:uppercase;letter-spacing:.04em}.experience-grid select{width:100%;min-width:0}
body[data-density="compact"] main{padding-left:18px;padding-right:18px}body[data-density="compact"] .panel-header{min-height:46px;padding:10px 13px 8px}body[data-density="compact"] .metric-row{gap:9px;margin-bottom:10px}body[data-density="compact"] .metric-card{height:96px;padding:13px 15px}body[data-density="compact"] .command-grid{gap:9px}body[data-density="compact"] .section-header{margin:15px 0 10px}
body[data-theme="light"]{--bg:#f4f7fb;--panel:#ffffff;--panel2:#eef3f9;--line:#cbd6e5;--text:#172033;--muted:#62738a;--shadow:0 14px 34px rgba(39,55,82,.10);color:var(--text)}
body[data-theme="light"] .sidebar{background:linear-gradient(180deg,#ffffff,#edf3fa);border-right-color:#d8e1ee}body[data-theme="light"] .topbar{border-bottom-color:#d5deeb}body[data-theme="light"] .nav-item{color:#5c6d84}body[data-theme="light"] .nav-item:hover{color:#172033}body[data-theme="light"] .nav-item.active{color:#172033}body[data-theme="light"] select,body[data-theme="light"] input,body[data-theme="light"] textarea,body[data-theme="light"] .icon-button,body[data-theme="light"] .notification-btn,body[data-theme="light"] .coach-chip{background:#fff;color:#172033;border-color:#cad6e5}body[data-theme="light"] .panel,body[data-theme="light"] .metric-card{background:linear-gradient(145deg,#fff,#f6f8fc);border-color:#d6dfeb}body[data-theme="light"] .panel-action,body[data-theme="light"] .tabs span,body[data-theme="light"] .visual-player{background:#f1f5fa;color:#253349;border-color:#d1dce9}body[data-theme="light"] .notification-panel,body[data-theme="light"] .profile-menu{background:#fff;color:#172033;border-color:#cbd7e5}body[data-theme="light"] .mobile-bottom-nav{background:rgba(250,252,255,.97);border-top-color:#d1dce9}body[data-theme="light"] .mobile-bottom-nav button{color:#6e7e93}body[data-theme="light"] .mobile-role-hero{background:linear-gradient(145deg,#fff,#eef4fc);border-color:#cfdced}body[data-theme="light"] .mobile-role-hero>strong,body[data-theme="light"] .mobile-role-hero>b{color:#172033}
@media(max-width:900px){.experience-grid{grid-template-columns:1fr 1fr}.onboarding-grid{grid-template-columns:1fr 1fr}}
@media(max-width:560px){.onboarding-card{padding:20px;border-radius:16px}.onboarding-brand h1{font-size:22px}.onboarding-mark{width:56px;height:56px;border-radius:14px}.onboarding-grid,.experience-grid{grid-template-columns:1fr}.onboarding-copy{font-size:11px}}


/* v1.6.7 identity/access */
.signup-toggle{width:100%;margin-top:10px}.signup-panel{margin-top:14px;padding:16px;border:1px solid var(--border,#26334a);border-radius:14px;background:rgba(255,255,255,.025);display:grid;gap:10px}.signup-panel[hidden]{display:none}.signup-panel label{display:grid;gap:6px;font-size:.82rem}.signup-panel input{text-transform:none}.access-control-panel{margin-top:18px}.access-actions{display:flex;gap:8px;flex-wrap:wrap}.access-invite-list{display:grid;gap:10px;margin-top:14px}.access-invite-row{display:grid;grid-template-columns:minmax(170px,1.1fr) minmax(130px,.8fr) minmax(150px,1fr) auto;gap:12px;align-items:center;padding:12px 14px;border:1px solid var(--border,#26334a);border-radius:12px;background:rgba(255,255,255,.02)}.access-invite-row code{font-weight:800;letter-spacing:.04em;word-break:break-all}.access-invite-row .invite-meta{display:grid;gap:2px}.access-invite-row .invite-meta small{opacity:.7}.access-invite-row.expired,.access-invite-row.used,.access-invite-row.revoked{opacity:.58}.guardian-count{display:inline-flex;align-items:center;padding:3px 8px;border-radius:999px;background:rgba(79,140,255,.12);font-size:.72rem;font-weight:800;margin-left:6px}@media(max-width:760px){.access-invite-row{grid-template-columns:1fr}.access-actions{width:100%}.access-actions button{flex:1;min-width:140px}}


/* v1.8 local-first sync */
.sync-status{position:fixed;right:18px;bottom:18px;z-index:850;display:flex;align-items:center;gap:7px;padding:8px 12px;border-radius:999px;background:rgba(10,20,38,.94);border:1px solid rgba(130,157,203,.24);box-shadow:0 8px 30px rgba(0,0,0,.28);font-size:9px;font-weight:900;text-transform:uppercase;letter-spacing:.05em;color:#c9d6ec}.sync-dot{width:8px;height:8px;border-radius:50%;background:#48d597;box-shadow:0 0 0 3px rgba(72,213,151,.12)}.sync-status.queued .sync-dot,.sync-status.syncing .sync-dot{background:#f7b955}.sync-status.offline .sync-dot,.sync-status.conflict .sync-dot{background:#ff6a74}.sync-status.syncing .sync-dot{animation:syncPulse 1s infinite}@keyframes syncPulse{50%{opacity:.35;transform:scale(.8)}}
.parent-bracket-edit-panel{margin-top:12px}.parent-bracket-summary{margin:12px 0}.bracket-summary-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}.bracket-summary-grid>div{padding:10px;border-radius:9px;background:rgba(91,121,171,.08);border:1px solid rgba(135,160,202,.13)}.bracket-summary-grid span{display:block;font-size:7px;text-transform:uppercase;color:#70819d;font-weight:900}.bracket-summary-grid strong{display:block;margin-top:4px;font-size:12px}.pending-sync-row{background:rgba(247,185,85,.045)}.mini-sync-tag{margin-left:6px;padding:3px 5px;border-radius:999px;background:rgba(247,185,85,.12);color:#f7c978;font-size:6px;text-transform:uppercase}.sync-status.conflict{border-color:rgba(255,92,104,.4)}
@media(max-width:700px){.sync-status{left:12px;right:auto;bottom:calc(76px + env(safe-area-inset-bottom));max-width:calc(100vw - 124px);overflow:hidden}.sync-status #syncStatusText{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.bracket-summary-grid{grid-template-columns:1fr 1fr}}

/* v1.9 guardian security / age-permission controls */
.security-permission-panel{margin-top:16px}.security-permission-grid{display:grid;grid-template-columns:minmax(240px,520px);gap:12px;margin:14px 0}.security-permission-grid label{display:grid;gap:7px;font-weight:700}.security-permission-grid select{width:100%}.permission-check{grid-template-columns:auto 1fr!important;align-items:start;font-weight:600!important}.permission-check input{margin-top:3px}.security-lock-note{font-size:.9rem;opacity:.78;margin:10px 0 14px}.security-permission-panel strong{font-weight:800}

/* v1.9.1 customer branding integration */
.onboarding-product-logo{width:64px;height:64px;object-fit:contain;border-radius:14px;box-shadow:0 12px 30px rgba(0,0,0,.25)}
.login-screen{overflow:auto}
.login-splash-image{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:none;z-index:0}
.login-screen-shade{position:absolute;inset:0;z-index:1;background:linear-gradient(180deg,rgba(4,10,20,.66),rgba(4,10,20,.88)),radial-gradient(circle at 50% 15%,rgba(41,108,255,.18),transparent 38%);pointer-events:none}
.login-card{position:relative;z-index:2;backdrop-filter:blur(14px);background:linear-gradient(150deg,rgba(16,29,50,.96),rgba(11,22,40,.96))}
.login-product-logo{display:block;width:118px;height:118px;object-fit:contain;margin:0 auto 12px;border-radius:18px}
.login-card>.eyebrow{text-align:center}.login-card>h1{text-align:center}
.login-org-brand{display:flex;align-items:center;gap:10px;margin:14px 0 16px;padding:10px 12px;border:1px solid rgba(135,160,202,.17);border-radius:10px;background:rgba(5,13,26,.58)}
.login-org-brand[hidden]{display:none}.login-org-brand img{width:38px;height:38px;object-fit:contain;display:none;flex:0 0 auto}
.login-org-brand span,.login-org-brand strong{display:block}.login-org-brand span{font-size:7px;color:var(--muted);letter-spacing:.11em;font-weight:900}.login-org-brand strong{font-size:12px;margin-top:2px}
.page-heading-brand{display:flex;align-items:center;gap:10px}.topbar-org-logo{width:38px;height:38px;object-fit:contain;display:none;flex:0 0 auto;border-radius:8px}
.sidebar-product-brand{margin-top:14px;padding:12px 9px;border-top:1px solid rgba(135,160,202,.13);display:flex;align-items:center;gap:9px;color:#8495ad}
.sidebar-product-brand img{width:34px;height:34px;object-fit:contain;border-radius:8px;flex:0 0 auto}.sidebar-product-brand span,.sidebar-product-brand strong,.sidebar-product-brand small{display:block}.sidebar-product-brand span{font-size:6px;letter-spacing:.12em}.sidebar-product-brand strong{font-size:10px;color:#cbd5e5;margin-top:1px}.sidebar-product-brand small{font-size:6px;margin-top:1px}
.dashboard-brand-hero{position:relative;min-height:168px;margin:14px 0 12px;border:1px solid rgba(135,160,202,.18);border-radius:14px;overflow:hidden;background:linear-gradient(125deg,#111f35,#081325)}
.dashboard-brand-hero-bg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:none}.dashboard-brand-hero-shade{position:absolute;inset:0;background:linear-gradient(90deg,rgba(5,13,26,.94) 0%,rgba(5,13,26,.72) 50%,rgba(5,13,26,.32) 100%)}
.dashboard-brand-hero.no-image .dashboard-brand-hero-shade{background:linear-gradient(120deg,rgba(41,108,255,.12),rgba(5,13,26,.35))}
.dashboard-brand-hero-content{position:relative;z-index:1;min-height:168px;padding:24px;display:flex;align-items:center;gap:18px}.dashboard-brand-hero-logo{width:82px;height:82px;object-fit:contain;display:none;flex:0 0 auto}.dashboard-brand-hero-content h2{font-size:27px;margin:5px 0 6px}.dashboard-brand-hero-content p:last-child{margin:0;color:#b8c4d6;font-size:11px;max-width:620px}
.team-brand-banner{position:relative;min-height:190px;margin:16px 0 14px;border:1px solid rgba(135,160,202,.18);border-radius:14px;overflow:hidden}.team-brand-banner[hidden]{display:none}.team-brand-banner-bg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:none}.team-brand-banner-shade{position:absolute;inset:0;background:linear-gradient(90deg,rgba(5,13,26,.9),rgba(5,13,26,.28))}
.team-brand-banner-content{position:relative;z-index:1;min-height:190px;padding:24px;display:flex;align-items:flex-end;gap:16px}.team-brand-banner-logo{width:68px;height:68px;object-fit:contain;display:none;flex:0 0 auto}.team-brand-banner-content h2{margin:4px 0 5px;font-size:25px}.team-brand-banner-content p:last-child{margin:0;color:#c2ccda;font-size:10px}
.asset-location{display:block;min-height:24px;color:#6f819b;font-size:7px;line-height:1.35}
body[data-theme="light"] .login-card{background:rgba(255,255,255,.94);color:#172033}body[data-theme="light"] .login-org-brand{background:rgba(244,247,251,.85);border-color:#d4deeb}body[data-theme="light"] .dashboard-brand-hero.no-image{background:linear-gradient(125deg,#fff,#edf3fa)}body[data-theme="light"] .dashboard-brand-hero.no-image .dashboard-brand-hero-shade{background:linear-gradient(120deg,rgba(41,108,255,.08),rgba(255,255,255,.18))}
@media(max-width:700px){.dashboard-brand-hero{min-height:140px}.dashboard-brand-hero-content{min-height:140px;padding:18px 15px;gap:12px}.dashboard-brand-hero-logo{width:58px;height:58px}.dashboard-brand-hero-content h2{font-size:20px}.team-brand-banner{min-height:150px}.team-brand-banner-content{min-height:150px;padding:16px}.team-brand-banner-logo{width:52px;height:52px}.team-brand-banner-content h2{font-size:19px}.topbar-org-logo{width:32px;height:32px}.login-product-logo{width:96px;height:96px}}


/* v1.9.3 head coach broadcast */
.broadcast-panel{margin:14px 0;padding:18px;border-color:rgba(41,108,255,.32);background:linear-gradient(145deg,rgba(41,108,255,.08),rgba(14,25,43,.96))}
.broadcast-panel[hidden]{display:none}.broadcast-panel-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}.broadcast-panel-head h3{margin:5px 0}.broadcast-panel-head .muted{margin:4px 0 0;font-size:9px}
.broadcast-badge{flex:0 0 auto;padding:6px 9px;border-radius:999px;background:rgba(41,108,255,.14);border:1px solid rgba(41,108,255,.28);color:#9fbcff;font-size:7px;font-weight:900;letter-spacing:.06em}
.broadcast-compose{display:grid;grid-template-columns:minmax(150px,220px) 1fr auto;gap:10px;align-items:end;margin-top:14px}.broadcast-compose label{display:grid;gap:6px;color:var(--muted);font-size:8px;font-weight:800;text-transform:uppercase;letter-spacing:.05em}.broadcast-compose select,.broadcast-compose textarea{width:100%}.broadcast-compose textarea{min-height:72px;resize:vertical}.broadcast-compose button{min-height:42px;white-space:nowrap}.broadcast-status{min-height:15px;margin:8px 0 0;color:#8fb2ff;font-size:8px;font-weight:800}
@media(max-width:760px){.broadcast-compose{grid-template-columns:1fr}.broadcast-compose button{width:100%}.broadcast-panel-head{display:block}.broadcast-badge{display:inline-flex;margin-top:8px}}


/* v1.9.5 mobile readability / tournament-day visibility */
@media(max-width:760px){
  /* Prevent iOS text zoom/focus issues and keep controls finger-readable. */
  select,input,textarea{font-size:16px;line-height:1.35;min-height:44px}
  button{font-size:14px}
  .eyebrow{font-size:10px;line-height:1.4;letter-spacing:.12em}
  .muted{font-size:12px;line-height:1.5}
  .section-header h3{font-size:21px;line-height:1.2}
  .panel-header h3{font-size:18px;line-height:1.25}
  .nav-label{font-size:10px;padding:18px 10px 7px}
  .nav-item{font-size:14px;min-height:46px;padding:11px 12px;gap:10px}
  .brand-copy h1{font-size:18px}
  .brand-copy p{font-size:10px;line-height:1.35}
  .sidebar-motto strong{font-size:15px}.sidebar-motto span{font-size:10px}
  .sidebar-product-brand span{font-size:8px}.sidebar-product-brand strong{font-size:12px}.sidebar-product-brand small{font-size:9px;line-height:1.3}

  .metric-card span{font-size:13px}.metric-card small{font-size:11px;line-height:1.25}
  .event-context{font-size:12px;line-height:1.4}
  .panel-action{font-size:11px}

  .message-meta{font-size:11px;line-height:1.35;margin-bottom:5px}
  .message-bubble-v11,
  .compact-message-thread .message-bubble-v11,
  .coach-parent-inbox .message-bubble-v11{font-size:14px;line-height:1.5;padding:11px 12px}
  .parent-mirror-tag{font-size:10px;line-height:1.35}
  .message-visibility-note{font-size:12px;line-height:1.45}
  .parent-disclosure,
  #parentDashboard .parent-disclosure{font-size:12px;line-height:1.5}
  .security-lock-note{font-size:12px;line-height:1.5}
  .security-permission-grid label{font-size:13px;line-height:1.4}
  .parent-thread-head h3{font-size:18px}

  .notification-panel-head strong{font-size:14px}.notification-panel-head button{font-size:12px}
  .notification-item strong{font-size:13px;line-height:1.3}
  .notification-item p{font-size:12px;line-height:1.45}
  .notification-item time{font-size:10px}
  .notification-type-icon{font-size:16px}

  .broadcast-panel{padding:16px}
  .broadcast-panel-head h3{font-size:20px}
  .broadcast-panel-head .muted{font-size:12px;line-height:1.45}
  .broadcast-badge{font-size:10px}
  .broadcast-compose label{font-size:12px;line-height:1.4}
  .broadcast-compose textarea{min-height:96px}
  .broadcast-compose button{min-height:48px;font-size:14px;font-weight:800}
  .broadcast-status{font-size:12px;line-height:1.4;min-height:18px}

  .mobile-bottom-nav{min-height:70px}
  .mobile-bottom-nav button{font-size:18px;gap:5px}
  .mobile-bottom-nav button span{font-size:10px;line-height:1.15}
  .mobile-quick-grid button span{font-size:11px;line-height:1.3}
  .mobile-role-hero>span{font-size:13px}
  .mobile-role-hero>strong{font-size:23px}
  .mobile-role-hero>small{font-size:11px;line-height:1.45}

  .profile-menu-head strong{font-size:13px}.profile-menu-head span{font-size:11px}
  .profile-locale-btn,.profile-logout-btn{font-size:12px;min-height:44px}
  .sync-status{font-size:10px}
}
@media(max-width:420px){
  .page-heading h2{font-size:19px}
  .metric-card strong{font-size:27px}
  .metric-card span{font-size:12px}
  .mobile-bottom-nav button span{font-size:9px}
}


/* 2.0 beta onboarding and identity */
.signup-athlete-block,.activation-result{display:grid;gap:10px;margin-top:12px;padding:14px;border:1px solid rgba(79,140,255,.28);border-radius:12px;background:rgba(79,140,255,.06)}
.signup-athlete-block>strong,.activation-result>strong{font-size:14px}.signup-athlete-block>small,.activation-result>small{color:var(--muted);line-height:1.45}
.activation-result code{font-size:20px;font-weight:900;letter-spacing:.08em;color:#bcd0ff}
.verification-badge{display:inline-flex;padding:5px 8px;border-radius:999px;font-size:9px;font-weight:900;letter-spacing:.04em}
.verification-badge.pending{background:rgba(255,190,70,.12);border:1px solid rgba(255,190,70,.28);color:#ffd07b}
.verification-badge.verified{background:rgba(37,200,118,.12);border:1px solid rgba(37,200,118,.24);color:#74dfad}
.verify-athlete-btn{width:100%;margin-top:12px}
@media(max-width:760px){.activation-result code{font-size:17px}.signup-athlete-block,.activation-result{padding:12px}}

/* v2.0 multi-organization UI */
.organization-select{max-width:240px;min-width:160px}
.signup-org-confirm{min-height:18px;font-size:10px;margin-top:4px}
.signup-org-confirm.verified{color:var(--green);font-weight:800}

/* v2.0 My Athletes manager */
.my-athletes-manager{display:grid;gap:14px}
.my-athlete-toolbar{display:flex;gap:10px;flex-wrap:wrap}
.my-athlete-inline-form{display:grid;grid-template-columns:1fr 1fr;gap:10px;padding:14px;border:1px solid var(--border);border-radius:14px;background:rgba(255,255,255,.025)}
.my-athlete-inline-form>strong,.my-athlete-inline-form>p,.my-athlete-inline-form>button{grid-column:1/-1}
.my-athlete-list{display:grid;gap:10px}
.my-athlete-card{display:grid;gap:10px;padding:14px;border:1px solid var(--border);border-radius:14px;background:rgba(255,255,255,.025)}
.my-athlete-card-main{display:flex;justify-content:space-between;gap:14px;align-items:flex-start}
.my-athlete-card-main>div:first-child{display:grid;gap:3px}
.my-athlete-card-main small{color:var(--muted)}
.my-athlete-status-stack{display:grid;gap:5px;justify-items:end;text-align:right}
.my-athlete-status,.my-athlete-app-status{font-size:11px;font-weight:800}
.my-athlete-status.verified{color:var(--green)}
.my-athlete-status.pending{color:var(--yellow,#e8b84a)}
.my-athlete-app-status{color:var(--muted)}
.my-athlete-app-status.active{color:var(--green)}
.my-athlete-actions{display:flex;gap:8px;flex-wrap:wrap}
.my-athletes-notice{padding:12px;border:1px solid var(--border);border-radius:12px;background:rgba(79,140,255,.08)}
.my-athlete-code-result{display:grid;gap:8px}
.my-athlete-code-result code{font-size:18px;font-weight:900;letter-spacing:.08em;word-break:break-all}
@media(max-width:700px){
  .my-athlete-inline-form{grid-template-columns:1fr}
  .my-athlete-card-main{display:grid}
  .my-athlete-status-stack{justify-items:start;text-align:left}
}

/* v2.0 beta.7 topbar containment + direct guardian access */
.topbar{width:100%;min-width:0;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px}
.page-heading{min-width:0}
.top-actions{min-width:0;max-width:100%;display:flex;flex-wrap:wrap;justify-content:flex-end}
.profile-menu-wrap{flex:0 0 auto}
.section-header-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap;justify-content:flex-end}
.parent-dashboard-grid,.parent-conversation-panel,.security-permission-panel{min-width:0;max-width:100%}
@media(max-width:950px){
  .profile-menu-btn{display:flex!important}
  .topbar{grid-template-columns:minmax(0,1fr) auto}
  .top-actions{align-items:flex-start}
}
@media(max-width:700px){
  .parent-dashboard-header{align-items:flex-start;gap:10px}
  .section-header-actions{width:100%;justify-content:flex-start}
  .section-header-actions #parentDashboardSelect{min-width:0;max-width:100%;flex:1 1 150px}
  #parentMyAthletesBtn{flex:0 0 auto}
}


/* v2.1 commercial / platform administration */
.fight-video-commercial-row{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:10px 0 14px;flex-wrap:wrap}
.commercial-summary-card{padding:14px;border:1px solid rgba(255,255,255,.12);border-radius:12px;background:rgba(255,255,255,.035)}
.commercial-summary-card h3{margin:.15rem 0 .35rem}
.platform-admin{display:grid;gap:14px;width:100%;min-width:0;max-width:100%;overflow:hidden}
.platform-admin-head{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}
.platform-admin-head>div{min-width:0}
.platform-admin-head .secondary{flex:0 0 auto;white-space:nowrap}
.platform-org-list,.platform-user-list{display:grid;gap:8px;min-width:0}
.platform-org-row,.platform-user-row{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:12px;align-items:center;width:100%;min-width:0;text-align:left;padding:12px;border:1px solid rgba(255,255,255,.1);border-radius:10px;background:rgba(255,255,255,.03);color:#f4f7fc}
.platform-org-row{cursor:pointer}
.platform-org-row:hover{background:rgba(255,255,255,.06);border-color:rgba(135,160,202,.24)}
.platform-org-row>span,.platform-user-row>span{display:flex;flex-direction:column;gap:2px;min-width:0}
.platform-org-row strong,.platform-user-row strong{color:#fff}
.platform-org-row small,.platform-user-row small{color:var(--muted);opacity:1}
.platform-user-row{grid-template-columns:minmax(0,1fr) auto auto auto}
.platform-inline{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.platform-inline select,.platform-inline input{flex:1;min-width:180px}
.platform-org-detail{width:100%;min-width:0;max-width:100%}
dialog:has(.platform-admin) .modal-card,dialog:has(.platform-org-detail) .modal-card{width:min(960px,94vw);max-height:90vh;overflow:auto}
@media(max-width:720px){
  dialog:has(.platform-admin) .modal-card,dialog:has(.platform-org-detail) .modal-card{width:94vw;padding:14px}
  .platform-org-row,.platform-user-row{grid-template-columns:1fr}
  .platform-admin-head{align-items:flex-start;flex-direction:column}
  .platform-admin-head .secondary{width:100%}
}


/* v2.1.0-beta.2 roster lifecycle controls */
.profile-card-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:12px}
.danger-action{border-color:rgba(255,92,104,.38)!important;color:#ff9ca3!important;background:rgba(255,92,104,.07)!important}
.danger-action:hover{background:rgba(255,92,104,.14)!important;border-color:rgba(255,92,104,.58)!important}
.roster-management{display:grid;gap:10px}
.roster-section-head{display:flex;align-items:flex-end;justify-content:space-between;gap:12px;padding:4px 2px 0}
.roster-section-head>div{display:grid;gap:3px}.roster-section-head small{color:var(--muted);font-size:9px}
.roster-section-head.secondary-section{margin-top:14px;padding-top:14px;border-top:1px solid rgba(135,160,202,.12)}
.roster-usage{display:inline-flex;align-items:center;white-space:nowrap;border-radius:999px;padding:6px 9px;background:rgba(79,140,255,.11);border:1px solid rgba(79,140,255,.2);font-size:9px;font-weight:900;color:#b9d1ff}
.roster-list{margin-top:0}
.access-row-actions{display:flex;align-items:center;justify-content:flex-end;gap:7px;flex-wrap:wrap}
.archived-roster-row{opacity:.78;background:rgba(255,255,255,.012)}
.compact-empty{margin:4px 0;padding:12px}
@media(max-width:760px){
  .roster-section-head{align-items:flex-start;flex-direction:column}
  .access-row-actions{justify-content:flex-start}
  .access-row-actions button{width:100%}
}


/* v2.1.0-beta.3 permanent roster retention */
.roster-policy-bar{display:grid;grid-template-columns:minmax(0,1fr) minmax(170px,220px) auto;gap:10px;align-items:center;padding:12px 14px;border:1px solid rgba(79,140,255,.2);border-radius:12px;background:rgba(79,140,255,.055)}
.roster-policy-bar>div{display:grid;gap:3px}.roster-policy-bar small{color:var(--muted);font-size:9px}.roster-policy-bar select{min-width:0}
.retention-warning,.destructive-callout{padding:13px 14px;border-radius:10px;line-height:1.5}
.retention-warning{background:rgba(79,140,255,.07);border:1px solid rgba(79,140,255,.2)}
.destructive-callout{background:rgba(255,92,104,.07);border:1px solid rgba(255,92,104,.28)}
.retention-warning strong,.destructive-callout strong{display:block;margin-bottom:4px}
.retention-warning p,.destructive-callout p{margin:4px 0;color:var(--muted)}
.roster-removal-dialog,.roster-delete-dialog{padding-top:10px}
@media(max-width:760px){
  .roster-policy-bar{grid-template-columns:1fr}
  .roster-policy-bar button,.roster-policy-bar select{width:100%}
}


/* v2.1.0-beta.4 in-app back navigation */
.app-back-btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;flex:0 0 auto;min-height:38px;padding:0 11px;border-radius:9px;border:1px solid rgba(135,160,202,.2);background:#0d182a;color:#dce7f7;font-size:10px;font-weight:800}
.app-back-btn:hover{background:#12213a;border-color:rgba(79,140,255,.42);color:#fff}
.app-back-btn[hidden]{display:none}
body[data-theme="light"] .app-back-btn{background:#fff;color:#26364d;border-color:#cbd7e6}
body[data-theme="light"] .app-back-btn:hover{background:#eef4fc;border-color:#8fb2e8}
@media(max-width:700px){
  .app-back-btn{width:38px;height:38px;min-height:38px;padding:0;border-radius:10px;font-size:22px;line-height:1}
  .app-back-btn span{display:none}
  .page-heading-brand{gap:8px;min-width:0}
  .page-heading-brand>div{min-width:0}
  .page-heading-brand h2{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
}


/* v2.1.0-beta.5 platform owner navigation */
.platform-owner-surface{position:relative}
.platform-owner-nav{display:flex;align-items:center;justify-content:space-between;gap:12px;padding-bottom:12px;margin-bottom:4px;border-bottom:1px solid rgba(135,160,202,.14)}
.platform-back-btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:38px;padding:0 12px;border-radius:9px;border:1px solid rgba(79,140,255,.28);background:rgba(79,140,255,.08);color:#dce7f7;font-size:10px;font-weight:900}
.platform-back-btn:hover{background:rgba(79,140,255,.15);border-color:rgba(79,140,255,.5);color:#fff}
.platform-owner-context{font-size:8px;font-weight:900;letter-spacing:.14em;color:#7fa7f5}
.platform-detail-heading{padding:4px 0 2px}.platform-detail-heading h3{margin:4px 0 3px;font-size:20px}.platform-detail-heading p:last-child{margin:0}
@media(max-width:700px){
  .platform-owner-nav{align-items:flex-start;flex-direction:column}
  .platform-back-btn{width:100%;min-height:44px;font-size:14px;justify-content:flex-start}
  .platform-owner-context{font-size:9px}
}


/* v2.1.0-beta.6 customer billing lifecycle status */
.billing-status-banner{display:flex;align-items:center;justify-content:space-between;gap:14px;margin:0 0 12px;padding:12px 14px;border-radius:11px;border:1px solid rgba(135,160,202,.2)}
.billing-status-banner[hidden]{display:none}
.billing-status-banner>div{display:grid;gap:3px;min-width:0}
.billing-status-banner strong{font-size:11px}.billing-status-banner span{color:var(--muted);font-size:9px;line-height:1.45}
.billing-status-banner button{flex:0 0 auto;border-radius:8px;padding:9px 11px;border:1px solid rgba(135,160,202,.2);background:#0d182a;color:#fff;font-size:9px;font-weight:900}
.billing-status-banner.grace{background:rgba(245,183,76,.07);border-color:rgba(245,183,76,.28)}
.billing-status-banner.grace strong{color:#ffd78c}
.billing-status-banner.suspended{background:rgba(255,68,79,.07);border-color:rgba(255,68,79,.28)}
.billing-status-banner.suspended strong{color:#ff9ba1}
@media(max-width:700px){
  .billing-status-banner{align-items:flex-start;flex-direction:column}
  .billing-status-banner button{width:100%;min-height:42px}
  .billing-status-banner strong{font-size:13px}.billing-status-banner span{font-size:11px}
}
