@font-face{font-family:Bebas Neue;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/bebas-neue-latin-ext-400-normal-DWiEslNC.woff2)format("woff2"),url(/assets/bebas-neue-latin-ext-400-normal-HFKRJXnW.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Bebas Neue;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/bebas-neue-latin-400-normal-9mHNbWWO.woff2)format("woff2"),url(/assets/bebas-neue-latin-400-normal-Bi-ndsyu.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-cyrillic-ext-wght-normal-BOeWTOD4.woff2)format("woff2-variations");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-cyrillic-wght-normal-DqGufNeO.woff2)format("woff2-variations");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-greek-ext-wght-normal-DlzME5K_.woff2)format("woff2-variations");unicode-range:U+1F??}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-greek-wght-normal-CkhJZR-_.woff2)format("woff2-variations");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-vietnamese-wght-normal-CBcvBZtf.woff2)format("woff2-variations");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-latin-ext-wght-normal-DO1Apj_S.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-latin-wght-normal-Dx4kXJAl.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--brand:#c8102e;--brand-dark:#111113;--ink:#0e0e10;--ink-2:#1a1a1d;--on-ink-muted:#fff9;--bg:#f4f3f0;--surface:#fff;--text:#111113;--muted:#6b6a70;--border:#e3e1dc;--border-strong:#d4d1ca;--danger:#c22a1e;--danger-bg:#fbe7e5;--success:#16804a;--success-bg:#e3f3ea;--warning:#a24b0c;--warning-bg:#f8ecdf;--info:#1d4ed8;--radius:4px;--display:"Bebas Neue", Impact, "Arial Narrow", sans-serif;color:var(--text);background:var(--bg);-webkit-font-smoothing:antialiased;font-family:Inter Variable,Inter,-apple-system,Segoe UI,Roboto,sans-serif;font-size:14px;line-height:1.5}*{box-sizing:border-box}body{margin:0}a{color:var(--text);-webkit-text-decoration-color:var(--brand);text-decoration-color:var(--brand);text-underline-offset:3px;text-decoration-thickness:2px}a:hover{color:var(--brand)}h1,h2,h3{font-family:var(--display);text-transform:uppercase;letter-spacing:.01em;margin:0 0 12px;font-weight:400;line-height:1}h1{font-size:48px}h2{font-size:26px}h3{font-size:20px}.shell{grid-template-columns:248px minmax(0,1fr);min-height:100vh;display:grid}.sidebar{background:var(--ink);color:#fff;flex-direction:column;gap:2px;height:100vh;padding:24px 0 20px;display:flex;position:sticky;top:0}.sidebar .brand{align-items:center;gap:12px;padding:0 22px 26px;display:flex}.sidebar .brand img{object-fit:contain;background:#fff;border-radius:3px;width:36px;height:36px}.sidebar .brand .mark{background:var(--brand);color:#fff;width:36px;height:36px;font-family:var(--display);border-radius:3px;place-items:center;padding-top:2px;font-size:24px;line-height:1;display:grid}.sidebar .brand .name{font-family:var(--display);letter-spacing:.02em;text-transform:uppercase;flex-direction:column;font-size:26px;line-height:.95;display:flex}.sidebar .brand .name small{letter-spacing:.18em;color:var(--on-ink-muted);font-family:inherit;font-size:13px}.sidebar a{color:#ffffffad;letter-spacing:.08em;text-transform:uppercase;border-left:3px solid #0000;padding:9px 22px;font-size:12px;font-weight:600;text-decoration:none}.sidebar a:hover{color:#fff;background:#ffffff0d}.sidebar a.active{color:#fff;border-left-color:var(--brand);background:#ffffff14}.sidebar .spacer{flex:1}.sidebar .who{color:#fff;border-top:1px solid #ffffff1a;margin-top:10px;padding:14px 22px 10px;font-size:13px}.sidebar .who .role{letter-spacing:.12em;text-transform:uppercase;color:var(--on-ink-muted);font-size:11px;font-weight:600;display:block}.sidebar .nav-links>.btn{align-self:flex-start;margin:0 22px}.sidebar .btn{color:#fff;background:0 0;border-color:#ffffff59}.sidebar .btn:hover{background:#ffffff1a}.main{width:100%;max-width:1320px;padding:36px 40px 56px}.page-header{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:16px;margin-bottom:24px;display:flex}.main>.page-header:first-child,.main>.page-header{border-bottom:2px solid var(--text);padding-bottom:18px}.page-header h1{margin:0}.page-header p{color:var(--muted);margin:8px 0 0}.card .page-header{border-bottom:0;padding-bottom:0}.card .page-header h2{margin:0}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);margin-bottom:20px;padding:22px}.grid{gap:16px;display:grid}.grid.cols-2{grid-template-columns:repeat(auto-fit,minmax(280px,1fr))}.grid.cols-4{grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:12px}.metric{border-top:3px solid var(--text);padding:16px 18px 18px}.metric .value{font-family:var(--display);letter-spacing:.01em;font-size:56px;line-height:1}.metric .label{color:var(--muted);letter-spacing:.1em;text-transform:uppercase;margin-top:6px;font-size:11px;font-weight:600}.grid.cols-4>.metric:nth-child(-n+2){background:var(--ink);border-color:var(--ink);border-top-color:var(--brand);color:#fff}.grid.cols-4>.metric:nth-child(-n+2) .label{color:var(--on-ink-muted)}.btn{border:1.5px solid var(--text);color:var(--text);font:inherit;letter-spacing:.08em;text-transform:uppercase;cursor:pointer;white-space:nowrap;background:0 0;border-radius:3px;justify-content:center;align-items:center;gap:6px;padding:8px 14px;font-size:12px;font-weight:700;text-decoration:none;transition:background .12s,color .12s,border-color .12s;display:inline-flex}.btn:hover{background:var(--text);color:#fff}.btn:disabled{opacity:.45;cursor:not-allowed}.btn:disabled:hover{color:var(--text);background:0 0}.btn.primary{background:var(--brand);border-color:var(--brand);color:#fff}.btn.primary:hover{filter:brightness(.9)}.btn.danger{color:var(--danger);border-color:var(--danger)}.btn.danger:hover,.btn.danger.confirming{background:var(--danger);color:#fff}.btn.small{padding:5px 10px;font-size:11px}.btn-row{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.field{flex-direction:column;gap:6px;margin-bottom:14px;display:flex}.field label{letter-spacing:.1em;text-transform:uppercase;color:var(--muted);font-size:11px;font-weight:600}.field .hint{color:var(--muted);font-size:12px}input[type=text],input[type=email],input[type=password],input[type=url],input[type=number],input[type=search],select,textarea{font:inherit;border:1px solid var(--border-strong);width:100%;color:var(--text);background:#fff;border-radius:3px;padding:9px 11px}input[type=color]{border:1px solid var(--border-strong);background:#fff;border-radius:3px;height:38px;padding:2px}textarea{resize:vertical;min-height:90px}input:focus,select:focus,textarea:focus{outline:2px solid var(--brand);outline-offset:-1px;border-color:#0000}.btn:focus-visible,a:focus-visible{outline:2px solid var(--brand);outline-offset:2px}.checkbox{align-items:center;gap:8px;margin-bottom:10px;display:flex}input[type=checkbox]{accent-color:var(--brand);width:16px;height:16px}.form-row{grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:12px;display:grid}.table-wrap{overflow-x:auto}table{border-collapse:collapse;width:100%}th,td{text-align:left;border-bottom:1px solid var(--border);vertical-align:middle;padding:11px 12px}th{text-transform:uppercase;letter-spacing:.1em;color:var(--muted);border-bottom:2px solid var(--text);padding-top:0;font-size:11px;font-weight:600}tbody tr:hover{background:#faf9f6}tbody tr:last-child td{border-bottom:0}td a{font-weight:600}.empty{color:var(--muted);text-align:center;padding:28px}.badge{letter-spacing:.08em;text-transform:uppercase;color:var(--muted);white-space:nowrap;align-items:center;gap:6px;font-size:11px;font-weight:700;display:inline-flex}.badge:before{content:"";background:currentColor;border-radius:1px;width:7px;height:7px}.badge.green{color:var(--success)}.badge.red{color:var(--danger)}.badge.amber{color:var(--warning)}.badge.blue{color:var(--info)}.alert{border-left:3px solid;border-radius:2px;margin-bottom:14px;padding:11px 14px;font-weight:500}.alert.error{background:var(--danger-bg);color:var(--danger)}.alert.success{background:var(--success-bg);color:var(--success)}.alert.info{color:var(--info);background:#eaeffc}.alert.warning{background:var(--warning-bg);color:var(--warning)}.muted{color:var(--muted)}.mono{word-break:break-all;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12px}.grading-notes{white-space:normal;gap:6px;max-width:420px;margin:0;padding:0;list-style:none;display:grid}.grade-badge{white-space:nowrap;align-items:center;gap:8px;display:inline-flex}.grade{width:26px;height:26px;font-family:var(--display);border-radius:3px;place-items:center;padding-top:2px;font-size:20px;line-height:1;display:inline-grid}.grade-A{color:#fff;background:#16804a}.grade-B{color:#111113;background:#e7a516}.grade-C{color:#fff;background:#5b6472}.grade-label{letter-spacing:.08em;text-transform:uppercase;font-size:11px;font-weight:700}.grade-buttons{gap:4px;display:inline-flex}.grade-buttons .btn{min-width:34px;font-family:var(--display);letter-spacing:0;padding-inline:8px;font-size:16px}.grade-buttons .btn.current,.grade-buttons .btn.current:disabled{cursor:default;opacity:1;border-color:#0000}.grade-buttons .btn.current.grade-A,.grade-buttons .btn.current.grade-A:hover{color:#fff;background:#16804a}.grade-buttons .btn.current.grade-B,.grade-buttons .btn.current.grade-B:hover{color:#111113;background:#e7a516}.grade-buttons .btn.current.grade-C,.grade-buttons .btn.current.grade-C:hover{color:#fff;background:#5b6472}.progress{background:#e9e6df;border-radius:2px;flex:1;min-width:80px;max-width:360px;height:10px;overflow:hidden}.progress>span{background:var(--brand);height:100%;display:block}.auth-page{background:var(--surface);grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);min-height:100vh;display:grid}.auth-brand{background:var(--ink);color:#fff;flex-direction:column;justify-content:space-between;gap:32px;padding:48px 56px;display:flex;position:relative;overflow:hidden}.auth-brand .eyebrow{letter-spacing:.16em;text-transform:uppercase;color:var(--on-ink-muted);align-items:center;gap:10px;font-size:11px;font-weight:700;display:flex}.auth-brand .eyebrow:before{content:"";background:var(--brand);width:22px;height:3px}.auth-brand .gym{font-family:var(--display);text-transform:uppercase;margin:18px 0 24px;font-size:clamp(64px,9vw,132px);line-height:.88}.auth-brand .belt{background:#f7f6f2;border-radius:3px;width:min(320px,70%);height:30px;position:relative}.auth-brand .belt:after{content:"";background:var(--ink);border-left:2px solid #3a3a3f;width:18%;position:absolute;top:0;bottom:0;right:6%}.auth-brand .belt:before{content:"";border-top:1px solid #0000001f;border-bottom:1px solid #0000001f;position:absolute;inset:8px 0}.auth-brand .foot{color:var(--on-ink-muted);font-size:13px}.auth-panel{place-items:center;padding:40px 24px;display:grid}.auth-card{background:0 0;border:0;width:100%;max-width:380px;padding:0}.auth-card h1{margin-bottom:20px;font-size:44px}.auth-card .btn.primary{width:100%;padding:12px 14px;font-size:13px}.auth-card .logo{object-fit:contain;width:56px;height:56px;margin-bottom:12px;display:block}.chip-list{flex-wrap:wrap;gap:6px;margin-bottom:8px;display:flex}.chip{background:var(--ink);color:#fff;border-radius:2px;align-items:center;gap:4px;padding:4px 4px 4px 10px;font-size:12px;font-weight:600;display:inline-flex}.chip button{color:inherit;cursor:pointer;background:0 0;border:0;border-radius:2px;padding:2px 6px;font-size:14px;line-height:1}.chip button:hover{background:#ffffff2e}.option-list{border:1px solid var(--border-strong);border-radius:3px;max-height:220px;overflow-y:auto}.option-list button{text-align:left;border:0;border-bottom:1px solid var(--border);cursor:pointer;width:100%;font:inherit;background:#fff;padding:8px 11px;display:block}.option-list button:hover:not(:disabled){background:var(--bg)}.option-list button:disabled{color:#a8a6a0;cursor:not-allowed}.sidebar .nav-links{flex-direction:column;flex:1;gap:2px;min-height:0;display:flex;overflow-y:auto}.sidebar .current-page,.sidebar .menu-toggle{display:none}.menu-toggle{color:#fff;font:inherit;letter-spacing:.1em;text-transform:uppercase;cursor:pointer;background:0 0;border:1.5px solid #ffffff59;border-radius:3px;padding:7px 12px;font-size:11px;font-weight:700}@media (width<=820px){.shell{grid-template-rows:auto 1fr;grid-template-columns:minmax(0,1fr);align-content:start}.sidebar{z-index:20;gap:0;height:auto;padding:10px 14px;position:sticky;top:0}.sidebar a{padding:12px 10px}.sidebar .who,.sidebar .nav-links>.btn{margin-left:0;padding-left:10px}.sidebar .topbar{align-items:center;gap:10px;display:flex}.sidebar .brand{padding:0}.sidebar .brand .name{font-size:22px}.sidebar .brand .name small{display:none}.sidebar .brand .mark,.sidebar .brand img{width:30px;height:30px;font-size:20px}.sidebar .current-page{text-align:right;color:#ffffffb3;letter-spacing:.1em;text-transform:uppercase;white-space:nowrap;text-overflow:ellipsis;flex:1;font-size:11px;font-weight:600;display:block;overflow:hidden}.sidebar .menu-toggle{display:inline-block}.sidebar .nav-links{padding-top:10px;display:none}.sidebar.open .nav-links{max-height:calc(100vh - 60px);display:flex;overflow-y:auto}.sidebar .spacer{display:none}.main{padding:22px 16px 40px}h1{font-size:40px}.auth-page{grid-template-rows:auto 1fr;grid-template-columns:minmax(0,1fr)}.auth-brand{gap:12px;padding:28px 24px}.auth-brand .gym{margin:10px 0 14px;font-size:64px}.auth-brand .foot{display:none}.auth-panel{place-items:start center;padding-top:32px}.grid.cols-4{grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:10px}.metric .value{font-size:40px}.card{padding:14px}input,select,textarea{font-size:16px}}@media (width<=640px){.table-wrap.responsive table,.table-wrap.responsive tbody,.table-wrap.responsive tr,.table-wrap.responsive td{width:100%;display:block}.table-wrap.responsive thead{clip:rect(0 0 0 0);width:1px;height:1px;position:absolute;overflow:hidden}.table-wrap.responsive tr{border:1px solid var(--border);border-radius:var(--radius);border-left:3px solid var(--text);background:var(--surface);margin-bottom:10px;padding:8px 12px}.table-wrap.responsive td{overflow-wrap:anywhere;border:0;align-items:flex-start;gap:12px;min-width:0;padding:5px 0;display:flex}.table-wrap.responsive td[data-label]:before{content:attr(data-label);color:var(--muted);text-transform:uppercase;letter-spacing:.08em;flex:0 0 96px;padding-top:2px;font-size:11px;font-weight:600}.table-wrap.responsive td:empty{display:none}.table-wrap.responsive td>*{min-width:0}.table-wrap.responsive td .btn{white-space:normal;text-align:center}.table-wrap.responsive td .badge,.table-wrap.responsive td .grade-badge{white-space:normal}.table-wrap.responsive td .progress{flex:1}.page-header .btn-row,.card .page-header .btn-row{width:100%}.card .page-header .btn-row>input,.card .page-header .btn-row>select{flex:160px}.btn.small{padding:8px 12px;font-size:12px}.table-wrap.responsive td[data-label]:before{flex-basis:min(108px,34%)}}
