/* Shared system. Mobile <640; tablet 640–1099; desktop >=1100. */
:root{--bg-surface:var(--surface-card);--text-secondary:var(--text-muted);--radius-sm:8px;--radius-md:10px;--radius-lg:16px;--radius-xl:16px;--radius-full:8px;--control-height:42px;--page-gap:24px}
*{box-sizing:border-box}body{font-size:14px}a{color:inherit}button,input,select,textarea{font:inherit}button,a,input,select,textarea{touch-action:manipulation}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid #69a9ff;outline-offset:3px}svg{width:18px;height:18px;flex-shrink:0}.text-muted,small{color:var(--text-muted)}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}.skip-link{position:fixed;top:-100px;left:16px;z-index:999;background:var(--bg-surface);padding:14px}.skip-link:focus{top:12px}
.app-container{display:flex;height:100dvh;overflow:hidden}.sidebar{position:static;display:flex;flex-direction:column;width:226px;flex:0 0 226px;padding:26px 16px;border-right:1px solid var(--border-subtle);background:var(--bg-surface)}.app-brand{display:flex;gap:10px;align-items:center;text-decoration:none;font-size:21px;padding:0 10px 30px}.app-brand img{object-fit:contain}.app-brand small{display:block;font-size:8px;letter-spacing:1.7px;margin-top:4px}.sidebar-nav{display:flex;flex-direction:column;gap:5px;overflow:auto}.nav-item{width:100%;display:flex;align-items:center;gap:12px;min-height:44px;padding:11px 12px;border:0;border-radius:10px;background:none;text-decoration:none;color:var(--text-secondary);font-weight:500;text-align:left;cursor:pointer}.nav-item.active,.nav-item:hover{background:var(--brand-primary-light,#edf3ff);color:var(--brand-primary)}.sidebar-footer{margin-top:auto;padding-top:24px}.account-label{display:flex;gap:10px;align-items:center;padding:12px 8px}.account-label strong,.account-label small{display:block;overflow-wrap:anywhere}.account-label small{font-size:11px;margin-top:3px}.account-avatar{width:34px;height:34px;background:var(--bg-app);display:grid;place-items:center;border-radius:10px;flex-shrink:0}
.main-shell{display:flex;flex-direction:column;min-width:0;flex:1;overflow:hidden}.app-header{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:22px var(--page-gap) 16px;min-height:88px;flex-shrink:0;background:var(--bg-app);border:0}.header-context{min-width:0}.header-context small{font-size:10px;letter-spacing:1.4px;font-weight:600}.header-context h1{font-size:24px;line-height:1.25;margin:6px 0 0;letter-spacing:-.7px;overflow-wrap:anywhere}.header-actions{display:flex;align-items:center;gap:8px;flex-shrink:0}.icon-button,.scroll-btn{width:var(--control-height);height:var(--control-height);min-height:var(--control-height);display:inline-flex;align-items:center;justify-content:center;border:1px solid var(--border-subtle);border-radius:10px;background:var(--bg-surface);color:var(--text-main);cursor:pointer}.mobile-menu-trigger,.mobile-dock{display:none}
.context-toolbar{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:0 var(--page-gap) 16px;flex-shrink:0}.context-toolbar:empty{display:none}.header-search{display:flex;align-items:center;gap:10px;width:min(100%,460px);height:var(--control-height);border:1px solid var(--border-subtle);border-radius:10px;padding:0 8px 0 12px;background:var(--bg-surface)}.header-search input{min-width:0;flex:1;width:100%;border:0;background:none;color:var(--text-main);outline:none}.search-submit{display:grid;place-items:center;border:0;background:none;color:var(--text-muted);height:36px;width:32px;cursor:pointer}.academy-switcher{display:flex;align-items:center;gap:10px;font-size:12px}.academy-switcher select{max-width:230px;height:var(--control-height);border:1px solid var(--border-subtle);border-radius:10px;padding:0 12px;background:var(--bg-surface);color:var(--text-main)}
.app-subheader{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:54px;padding:8px var(--page-gap);border-block:1px solid var(--border-subtle);flex-shrink:0;overflow-x:auto;background:var(--bg-surface)}.subnav-tabs{display:flex;align-items:center;gap:6px;min-width:0}.tab-btn{display:inline-flex;align-items:center;gap:7px;min-height:36px;white-space:nowrap;padding:7px 12px;border-radius:8px;font-size:12px;text-decoration:none}.tab-btn.active{background:var(--bg-app);color:var(--brand-primary);font-weight:700}.section-indicator{display:flex;align-items:center;gap:8px;color:var(--text-muted);font-size:12px;white-space:nowrap}.section-indicator>span{width:6px;height:6px;border-radius:50%;background:#16a34a}.subheader-right{display:flex;align-items:center;gap:12px;white-space:nowrap;font-size:12px}.scroll-controls{display:flex;gap:5px}.scroll-btn{width:32px;height:32px;min-height:32px}.scroll-btn:disabled{opacity:.35;cursor:default}
.workspace{flex:1;min-height:0;display:flex;flex-direction:column;overflow:auto;padding:var(--page-gap);gap:16px}.workspace-scrollable{height:auto;overflow:visible;padding:0;flex:none}.surface{background:var(--bg-surface);border:1px solid var(--border-subtle);border-radius:16px;padding:22px;min-width:0}.dashboard-page{display:flex;flex-direction:column;gap:24px}.page-intro{display:flex;align-items:center;justify-content:space-between;gap:16px}.page-intro h2{font-size:28px;letter-spacing:-1px;margin:6px 0 8px}.page-intro p{margin:0;line-height:1.6}.eyebrow{font-size:10px;letter-spacing:1.5px;color:var(--brand-primary);font-weight:700;margin:0 0 7px}.date-label{display:flex;align-items:center;gap:8px;font-size:12px;white-space:nowrap;color:var(--text-muted)}.metric-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}.metric-card{display:flex;flex-direction:column;gap:13px;padding:18px}.metric-label{display:flex;justify-content:space-between;gap:8px;color:var(--text-secondary);font-size:12px}.metric-label svg{color:var(--brand-primary)}.metric-card>strong{font-size:29px;letter-spacing:-.8px}.metric-card>strong small{font-size:12px;font-weight:500;letter-spacing:0}.metric-note{font-size:11px;color:var(--text-muted)}.meter{height:4px;background:var(--bg-app);border-radius:4px;overflow:hidden}.meter span{display:block;background:var(--brand-primary);height:100%;max-width:100%}.section-heading{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:18px}.section-heading h2{font-size:17px;letter-spacing:-.3px;margin:0}.text-link{display:inline-flex;align-items:center;gap:5px;font-size:12px;font-weight:600;color:var(--brand-primary);text-decoration:none}.belt-distribution{display:grid;grid-template-columns:repeat(auto-fit,minmax(125px,1fr));gap:12px}.belt-distribution-item{border:1px solid var(--border-subtle);border-radius:12px;overflow:hidden;background:var(--bg-app)}.belt-count{padding:13px;display:flex;gap:7px;align-items:baseline}.belt-count strong{font-size:23px}.belt-count span{font-size:11px;color:var(--text-muted)}.dashboard-columns{display:grid;grid-template-columns:1.2fr 1fr;gap:24px;align-items:start}.candidate-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.athlete-card{border:1px solid var(--border-subtle);border-radius:12px;overflow:hidden}.athlete-card-body{display:flex;align-items:center;gap:10px;padding:12px}.athlete-card-body>div{min-width:0}.athlete-card-body a{display:block;font-size:12px;font-weight:600;overflow-wrap:anywhere;text-decoration:none}.athlete-card-body small{display:block;font-size:10px;margin-top:4px}.avatar,.student-avatar-img{border-radius:10px;object-fit:cover;flex-shrink:0}.session-row{display:flex;align-items:center;gap:12px;text-decoration:none;padding:15px 0;border-bottom:1px solid var(--border-subtle)}.session-row:last-child{border:0}.session-row>span:nth-child(2){flex:1}.session-row strong,.session-row small{display:block}.session-row strong{font-size:13px}.session-row small{font-size:11px;margin-top:5px}.session-time{background:var(--bg-app);border-radius:8px;padding:10px;font-size:12px;font-weight:700}.empty-state{padding:28px 12px;text-align:center;color:var(--text-muted);grid-column:1/-1}.empty-state>svg{width:30px;height:30px;margin-bottom:8px}.empty-state h3{font-size:15px;color:var(--text-main);margin:6px 0}.empty-state p{font-size:12px;line-height:1.7;margin:6px auto 15px;max-width:340px}.empty-note{color:var(--text-muted);font-size:13px}
.bjj-belt{display:flex;align-items:center;justify-content:space-between;width:100%;height:29px;min-height:29px;position:relative;overflow:hidden;border-top:1px solid #00000012;background-image:repeating-linear-gradient(0deg,transparent,transparent 2px,#0000000a 2px,#0000000a 3px)}.bjj-belt__label{font-size:9px;font-weight:800;letter-spacing:1px;padding-left:13px;position:relative;z-index:1;text-shadow:0 1px 1px #00000015}.bjj-belt__rank{background:#12151a;height:100%;min-width:60px;margin-right:12px;display:flex;align-items:stretch;justify-content:flex-end;gap:4px;padding:0 7px;box-shadow:inset 0 0 0 1px #ffffff15}.bjj-belt__stripe{display:block;width:4px;background:#f8fafc;height:100%}.bjj-belt.belt-black .bjj-belt__rank{background:#c62828}.bjj-belt--inline{width:180px;border-radius:6px}.bjj-belt.belt-coral-white{background:repeating-linear-gradient(90deg,#c62828 0 16px,#f8fafc 16px 32px);color:#111!important}.belt-coral .bjj-belt__label,.belt-coral-white .bjj-belt__label{background:#ffffffde;color:#171717;padding:3px 8px;margin-left:6px;border-radius:3px}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:var(--control-height);padding:10px 16px;border-radius:10px;font-size:13px;font-weight:600;line-height:1.35;text-decoration:none;cursor:pointer}.btn-sm{min-height:var(--control-height);height:auto}.btn-primary{background:var(--brand-primary);color:white;border:1px solid var(--brand-primary)}.btn-secondary{background:var(--bg-surface);color:var(--text-main);border:1px solid var(--border-subtle)}.btn-card-profile{min-height:32px;padding:7px 12px;border-radius:8px}.btn svg{width:16px;height:16px}.badge,.badge-apto{border-radius:6px;padding:4px 7px;font-size:10px;font-weight:700}.badge-success{color:#15803d;background:#16a34a13}.form-surface{width:100%;max-width:1050px;margin-inline:auto}.form-grid-2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}.form-field{min-width:0;display:flex;flex-direction:column;gap:7px}.form-field label,.form-label{font-size:12px;font-weight:600;color:var(--text-secondary)}.form-control,input:not([type=checkbox]):not([type=radio]):not([type=hidden]):not(.header-search input),select,textarea{max-width:100%}.form-control{width:100%;min-height:var(--control-height);border:1px solid var(--border-subtle);border-radius:10px;background:var(--bg-app);color:var(--text-main);padding:11px 12px;font-size:13px;line-height:1.5}.form-control:disabled{opacity:.7}textarea.form-control{min-height:100px;resize:vertical}.form-help{font-size:11px;line-height:1.5;color:var(--text-muted)}.field-errors,.errorlist{color:var(--danger,#dc2626);font-size:12px;list-style:none;padding:0;margin:3px 0}.form-footer{display:flex;justify-content:flex-end;gap:10px;padding-top:22px;margin-top:22px;border-top:1px solid var(--border-subtle)}input[type=checkbox]{width:18px;height:18px;accent-color:var(--brand-primary)}.check-field{display:flex;gap:12px;align-items:flex-start;padding:16px 0;border-bottom:1px solid var(--border-subtle)}.check-field label{line-height:1.6;flex:1}.check-field small{display:block}.custom-modal{border:1px solid var(--border-subtle);border-radius:16px;background:var(--bg-surface);color:var(--text-main);padding:0;width:min(600px,calc(100vw - 40px));max-height:calc(100dvh - 48px);box-shadow:0 20px 80px #0004;overflow:auto}.custom-modal::backdrop{background:#0f172a88;backdrop-filter:blur(3px)}.modal-header{padding:20px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--border-subtle)}.modal-title{font-size:18px;margin:0}.modal-body{padding:20px}.modal-footer{padding:16px 20px;display:flex;justify-content:flex-end;gap:10px;border-top:1px solid var(--border-subtle)}.alert-box{padding:13px 16px;border-radius:10px;font-size:13px;line-height:1.6}.alert-error{background:#dc262610;color:#dc2626;border:1px solid #dc262630}.alert-info{background:#2563eb10;color:var(--brand-primary);border:1px solid #2563eb30}.pagination{display:flex;align-items:center;justify-content:center;gap:12px;padding:10px;font-size:12px;flex-shrink:0}.pagination a{min-height:40px;padding:10px;border:1px solid var(--border-subtle);border-radius:8px;text-decoration:none}
.horizontal-collection-wrapper{min-height:300px;flex:1}.horizontal-grid{padding:0;gap:16px;grid-auto-columns:280px;grid-template-rows:repeat(var(--card-rows,2),minmax(195px,1fr))}.item-card{border-radius:16px;min-height:195px}.card-content-body{padding:16px}.student-name{font-size:14px}.card-header-row{gap:10px}.card-metrics-block{margin-block:14px}.card-action-row{margin-top:auto}.item-card>.bjj-belt{margin-top:auto}.horizontal-grid>.empty-state{min-width:280px}.data-table-wrap{overflow-x:auto}.data-table{border-collapse:collapse;width:100%;text-align:left;font-size:13px}.data-table th{color:var(--text-muted);font-size:11px;font-weight:600;padding:12px;border-bottom:1px solid var(--border-subtle)}.data-table td{padding:15px 12px;border-bottom:1px solid var(--border-subtle)}.data-table td small{display:block;margin-top:4px}.data-table tr:last-child td{border:0}.profile-grid{display:grid;grid-template-columns:300px 1fr;gap:24px;align-items:start}.profile-sidebar{display:flex;flex-direction:column;gap:16px}.profile-photo{width:88px;height:88px;border-radius:16px;object-fit:cover}.profile-heading{text-align:center}.profile-heading h2{font-size:20px;margin:12px 0 6px}.profile-heading>.bjj-belt{margin-top:18px;border-radius:6px}.profile-content{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}.profile-content .wide{grid-column:1/-1}.definition-list{margin:0}.definition-list>div{padding:10px 0;border-bottom:1px solid var(--border-subtle)}.definition-list dt{font-size:11px;color:var(--text-muted)}.definition-list dd{font-size:13px;margin:5px 0 0;overflow-wrap:anywhere;white-space:pre-line}.history-item{padding:12px 0;border-bottom:1px solid var(--border-subtle);font-size:13px}.history-item small{display:block;margin-top:5px}.cards-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}.settings-tabs{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:20px}.settings-tab{padding:11px 14px;border:1px solid var(--border-subtle);border-radius:10px;text-decoration:none;font-size:12px}.settings-tab.active{background:var(--brand-primary);color:white;border-color:var(--brand-primary)}.requirements-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}.requirements-grid .form-grid-2{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.pre-line{white-space:pre-line}.full-width{grid-column:1/-1}
@media(min-width:1100px){.navigation-modal{width:440px}.workspace>.horizontal-collection-wrapper{overflow:hidden}.workspace:has(>.horizontal-collection-wrapper){overflow:hidden}.header-search{max-width:460px}.app-subheader .section-indicator{margin-right:14px}}
@media(min-width:640px) and (max-width:1099px){:root{--control-height:46px;--page-gap:22px}.sidebar{width:78px;flex-basis:78px;padding:24px 12px}.app-brand{padding:0 10px 28px}.app-brand>span,.sidebar .nav-item>span,.sidebar .account-label>div,.sidebar .account-avatar{display:none}.sidebar .nav-item{justify-content:center;min-height:48px;padding:12px}.sidebar-footer .account-label{display:none}.header-context h1{font-size:23px}.mobile-menu-trigger{display:inline-flex}.metric-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.dashboard-columns{grid-template-columns:1fr}.candidate-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.horizontal-collection-wrapper,.grid-viewport{display:block;flex:none;overflow:visible;height:auto;min-height:0}.horizontal-grid{height:auto;display:grid;grid-auto-flow:row;grid-auto-columns:auto;grid-template-columns:repeat(2,minmax(0,1fr));grid-template-rows:none!important;overflow:visible}.item-card{min-height:220px}.scroll-controls{display:none}.profile-grid{grid-template-columns:1fr}.profile-sidebar{display:grid;grid-template-columns:1fr 1fr}.profile-content{grid-template-columns:1fr 1fr}.cards-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.requirements-grid{grid-template-columns:1fr}.custom-modal{width:min(680px,calc(100vw - 64px))}.academy-switcher label{display:none}.academy-switcher select{max-width:200px}.belt-distribution{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:639px){:root{--control-height:46px;--page-gap:16px}.sidebar{display:none}.app-header{padding:18px 16px 14px;min-height:82px;gap:10px;flex-wrap:wrap}.header-context{flex:1}.header-context h1{font-size:21px;letter-spacing:-.5px}.header-context small{font-size:9px;letter-spacing:1px}.header-actions{gap:6px}.header-actions>.btn{font-size:0;padding:0;width:42px;height:42px;min-height:42px}.header-actions>.btn span{font-size:0}.header-actions>.btn svg{width:20px;height:20px}.icon-button{width:42px;height:42px;min-height:42px}.mobile-menu-trigger{display:none}.context-toolbar{flex-wrap:wrap;gap:10px;padding-bottom:12px}.header-search{width:100%;height:46px}.header-search input{font-size:16px}.academy-switcher{width:100%}.academy-switcher select{flex:1;max-width:none;font-size:16px}.app-subheader{min-height:52px;padding:6px 16px}.app-subheader .section-indicator{display:none}.tab-btn{min-height:40px;font-size:11px;padding:9px 10px}.subheader-counter{display:none}.scroll-controls{display:none}.workspace{padding-bottom:calc(85px + env(safe-area-inset-bottom));gap:16px}.surface{padding:18px}.dashboard-page{gap:18px}.page-intro{align-items:flex-start}.page-intro h2{font-size:23px}.page-intro p{font-size:12px}.date-label{display:none}.metric-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.metric-card{padding:14px;gap:12px}.metric-label{font-size:11px}.metric-label svg{width:15px;height:15px}.metric-card>strong{font-size:23px}.metric-card>strong small{font-size:10px}.metric-note{font-size:10px}.dashboard-columns{grid-template-columns:1fr;gap:18px}.section-heading{align-items:flex-start;flex-wrap:wrap;gap:10px}.section-heading h2{font-size:16px}.belt-distribution{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.candidate-grid{grid-template-columns:1fr}.athlete-card-body{padding:14px}.athlete-card-body a{font-size:14px}.athlete-card-body small{font-size:12px}.mobile-dock{display:flex;position:fixed;bottom:0;left:0;right:0;z-index:40;justify-content:space-around;padding:8px 10px calc(8px + env(safe-area-inset-bottom));border-top:1px solid var(--border-subtle);background:var(--bg-surface);box-shadow:0 -4px 20px #00000005}.mobile-dock a,.mobile-dock button{display:flex;flex:1;flex-direction:column;align-items:center;justify-content:center;gap:5px;min-height:46px;text-decoration:none;border:0;background:none;color:var(--text-muted);font-size:10px}.mobile-dock .active{color:var(--brand-primary)}.keyboard-open .mobile-dock{display:none}.horizontal-collection-wrapper,.grid-viewport{display:block;flex:none;height:auto;overflow:visible;min-height:0}.horizontal-grid{display:grid;height:auto;grid-auto-flow:row;grid-auto-columns:auto;grid-template-columns:1fr;grid-template-rows:none!important;overflow:visible;gap:16px}.item-card{min-height:220px}.card-content-body{padding:18px}.student-avatar-img{width:48px!important;height:48px!important}.student-name{font-size:15px}.card-metrics-block{margin:16px 0}.bjj-belt{height:29px;min-height:29px}.form-grid-2{grid-template-columns:1fr;gap:18px}.form-control{font-size:16px;padding:12px}.form-footer{flex-direction:column-reverse;gap:10px}.form-footer .btn{width:100%;min-height:48px}.custom-modal{width:100%;max-width:100%;max-height:92dvh;margin:auto 0 0;border-radius:16px 16px 0 0;border-bottom:0}.modal-body{padding:18px}.modal-header{padding:18px}.modal-footer{padding:16px;flex-direction:column-reverse}.modal-footer .btn{width:100%}.navigation-modal .nav-item{min-height:48px}.profile-grid,.profile-sidebar,.profile-content{display:grid;grid-template-columns:1fr;gap:16px}.profile-content .wide{grid-column:auto}.cards-grid,.requirements-grid{grid-template-columns:1fr;gap:16px}.requirements-grid .form-grid-2{grid-template-columns:1fr}.settings-tabs{flex-wrap:nowrap;overflow:auto;padding-bottom:6px}.settings-tab{white-space:nowrap;min-height:44px}.responsive-table thead{display:none}.responsive-table,.responsive-table tbody,.responsive-table tr,.responsive-table td{display:block}.responsive-table tr{padding:14px 0;border-bottom:1px solid var(--border-subtle)}.responsive-table td{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:7px 0;border:0;text-align:right}.responsive-table td:before{content:attr(data-label);color:var(--text-muted);font-size:11px;flex-shrink:0}.responsive-table td .btn{width:100%}.pagination{gap:6px;font-size:11px}.pagination a{padding:10px 8px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}

[data-theme="dark"] .nav-item.active,[data-theme="dark"] .nav-item:hover{background:var(--brand-primary-subtle);color:#75a7ff}
@media(max-width:639px){.header-actions form>.btn{font-size:11px;padding:10px}.header-actions form>.btn span{display:none}.header-actions form>.btn{width:42px;height:42px;min-height:42px}}
