:root{--green-950:#071910;--green-900:#0c2418;--green-800:#123524;--green-700:#1a5c38;--green-600:#1f7a45;--green-100:#e7f6ec;--green-50:#f3faf5;--gold:#c6a15b;--gold-soft:#f8f1de;--ink:#12211b;--muted:#5d6d64;--line:#e3ebe6;--bg:#f3f6f4;--card:#fff;--danger:#b42318;--danger-soft:#fdeceb;--warn:#b54708;--warn-soft:#fef4e6;--info:#175cd3;--info-soft:#eff4ff;--shadow:0 1px 2px #10281c0a, 0 8px 24px #10281c0d;--sidebar:268px;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}*{box-sizing:border-box}html,body,#root{min-height:100%}body{color:var(--ink);background:var(--bg);margin:0;font-family:"Source Sans 3",Segoe UI,sans-serif}h1,h2,h3,.brand strong,.stat-value,.login-aside h1{letter-spacing:-.02em;font-family:Barlow,Segoe UI,sans-serif}button,input,select,textarea{font:inherit;color:inherit}button{cursor:pointer}a{color:var(--green-700)}:focus-visible{outline:2px solid var(--gold);outline-offset:2px}.shell{background:var(--bg);min-height:100vh;display:flex}.sidebar{width:var(--sidebar);background:var(--green-950);color:#e7f3ec;z-index:40;flex-direction:column;flex:none;align-self:flex-start;height:100vh;max-height:100vh;display:flex;position:sticky;top:0}.brand{color:#fff;align-items:center;gap:12px;padding:20px 18px 16px;text-decoration:none;display:flex}.brand-mark,.login-mark{background:var(--green-800);border:1px solid #c6a15b73;border-radius:12px;flex:none;place-items:center;width:42px;height:42px;display:grid}.brand strong{font-size:16px;display:block}.brand small,.menu small,.person small{color:#b7c9bf;font-size:12px;display:block}.side-nav{flex-direction:column;gap:4px;padding:6px 12px 24px;display:flex;overflow:auto}.nav-link{color:#d5e6dc;border:1px solid #0000;border-radius:10px;align-items:center;gap:10px;padding:10px 12px;font-weight:600;text-decoration:none;display:flex}.nav-link:hover{color:#fff;background:#ffffff0d}.nav-link.active{background:var(--green-800);color:#fff;box-shadow:inset 3px 0 0 var(--gold);border-color:#c6a15b59}.shell-main{flex:1;min-width:0}.topbar{z-index:20;border-bottom:1px solid var(--line);background:#fff;align-items:center;gap:16px;height:68px;padding:0 28px;display:flex;position:sticky;top:0}.topbar-title{font-weight:700}.topbar-title span{color:var(--muted);font-size:12px;font-weight:600;display:block}.spacer{flex:1}.icon-btn,.profile-btn{border:1px solid var(--line);background:#fff;border-radius:10px;justify-content:center;align-items:center;display:inline-flex}.icon-btn{width:36px;height:36px;color:var(--ink)}.menu-toggle{display:none}.search input.control{width:100%}.menu-wrap{position:relative}.profile-btn{gap:10px;padding:6px 10px 6px 6px}.profile-btn strong{text-align:left;font-size:14px;display:block}.profile-btn small{color:var(--muted)}.menu{border:1px solid var(--line);width:230px;box-shadow:var(--shadow);background:#fff;border-radius:14px;padding:8px;position:absolute;top:calc(100% + 8px);right:0}.menu-meta{border-bottom:1px solid var(--line);margin-bottom:6px;padding:8px 10px 10px}.menu-meta strong,.menu-meta span{display:block}.menu-meta span{color:var(--muted);font-size:13px}.menu button{text-align:left;background:0 0;border:0;border-radius:8px;align-items:center;gap:8px;width:100%;padding:8px 10px;font-weight:700;display:flex}.menu button:hover{background:var(--green-50)}.content{padding:24px 28px 48px}.page-head,.hero{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:18px;display:flex}.page-head h1,.hero h1{margin:4px 0 6px;font-size:30px}.page-head p,.hero p{color:var(--muted);max-width:640px;margin:0}.crumbs{color:var(--muted);flex-wrap:wrap;gap:6px;font-size:13px;font-weight:700;display:flex}.crumbs a{text-decoration:none}.page-actions,.row-actions,.modal-actions{align-items:center;gap:8px;display:flex}.stack{flex-direction:column;gap:16px;display:flex}.stat-grid,.plan-grid{grid-template-columns:repeat(4,1fr);gap:14px;display:grid}.plan-grid{grid-template-columns:repeat(4,1fr);margin-bottom:16px}.stat-card,.panel,.plan-card{border:1px solid var(--line);box-shadow:var(--shadow);background:#fff;border-radius:16px}.stat-card{flex-direction:column;gap:8px;padding:16px;display:flex}.stat-top{color:var(--muted);justify-content:space-between;align-items:center;font-size:13px;font-weight:700;display:flex}.stat-icon{background:var(--green-50);width:36px;height:36px;color:var(--green-700);border-radius:10px;place-items:center;display:grid}.stat-value{font-size:30px;line-height:1}.foot{color:var(--muted);font-size:13px}.panel-head,.card-head{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:12px;padding:16px 18px;display:flex}.panel-head h2,.card-head h2,.plan-card h2{margin:0;font-size:16px}.panel-pad,.plan-card{padding:16px 18px 18px}.plan-card header{justify-content:space-between;align-items:flex-start;gap:8px;display:flex}.price{margin:8px 0;font-size:28px}.price span{color:var(--muted);font-family:"Source Sans 3",sans-serif;font-size:14px}.plan-card ul{color:var(--ink);margin:0 0 14px;padding-left:18px}.plan-card li{margin:6px 0}.chart-grid,.split{grid-template-columns:1.35fr .9fr;gap:16px;display:grid}.split{grid-template-columns:repeat(2,minmax(0,1fr))}.split>*{min-width:0}.progress-history>*{align-self:start}.chart-box{height:260px}.donut-wrap{position:relative}.donut-center{text-align:center;pointer-events:none;position:absolute;inset:46px 0 auto}.donut-center strong{font-size:22px;display:block}.donut-center span{color:var(--muted);font-size:12px}.toolbar{flex-wrap:wrap;align-items:center;gap:10px;padding:14px 14px 12px;display:flex}.search{flex:220px;max-width:360px;position:relative}.search>svg{color:var(--muted);position:absolute;top:50%;left:12px;transform:translateY(-50%)}.search-clear{width:26px;height:26px;color:var(--muted);cursor:pointer;background:0 0;border:0;border-radius:6px;place-items:center;padding:0;display:grid;position:absolute;top:50%;right:8px;transform:translateY(-50%)}.search-clear:hover{background:var(--green-50);color:var(--ink)}.search-clear:focus-visible{outline:2px solid var(--green-600);outline-offset:1px}.control,.search input{background:#fff;border:1px solid #d5e0da;border-radius:10px;outline:none;width:100%;padding:10px 12px}.search input{padding-left:36px;padding-right:36px}.toolbar .control{width:auto;min-width:160px}.leaderboard-mode{margin-left:auto;min-width:210px!important}select.control{appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%231b2b24' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");background-position:right 12px center;background-repeat:no-repeat;background-size:16px;padding-right:36px}.control:focus,.search input:focus{border-color:var(--green-600);box-shadow:0 0 0 3px #1f7a451f}.control.invalid{border-color:var(--danger);background:snow}.control[readonly]{background:var(--green-50);color:var(--ink)}textarea.control{resize:vertical;min-height:88px}.table-scroll{overflow-x:auto}.data-table{border-collapse:collapse;width:100%;min-width:760px}.data-table.compact{min-width:520px}.data-table.user-history-table{table-layout:fixed;min-width:0}.user-history-table th:last-child,.user-history-table td:last-child{text-align:right}.data-table th{text-align:left;letter-spacing:.04em;text-transform:uppercase;color:var(--muted);border-bottom:1px solid var(--line);white-space:nowrap;background:#f8faf8;padding:12px 14px;font-size:12px}.data-table td{border-bottom:1px solid var(--line);vertical-align:middle;padding:13px 14px}.data-table tbody tr:hover td{background:#f7fbf8}.person{align-items:center;gap:10px;display:flex}.person-copy{flex-direction:column;display:flex}.person strong{font-size:14px}.avatar{background:var(--green-800);width:34px;height:34px;color:var(--gold);border-radius:50%;flex:none;place-items:center;font-size:12px;font-weight:700;display:grid}.avatar.lg{width:52px;height:52px;font-size:16px}.badge{white-space:nowrap;border-radius:999px;align-items:center;padding:3px 8px;font-size:12px;font-weight:700;display:inline-flex}.badge-good{background:var(--green-100);color:#146338}.badge-bad{background:var(--danger-soft);color:var(--danger)}.badge-warn{background:var(--warn-soft);color:var(--warn)}.badge-info{background:var(--info-soft);color:var(--info)}.badge-muted{color:#52635b;background:#eef2f0}.pager{color:var(--muted);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;padding:12px 14px;display:flex}.pager-btns{flex-wrap:wrap;gap:6px;display:flex}.pager button,.tab{border:1px solid var(--line);background:#fff;border-radius:8px;padding:6px 10px;font-weight:700}.pager button.on,.tab.active{background:var(--green-800);color:#fff;border-color:var(--green-800)}.pager button:disabled{opacity:.45;cursor:not-allowed}.tabs{flex-wrap:wrap;gap:8px;margin-bottom:14px;display:flex}.tab{align-items:center;gap:6px;display:inline-flex}.tab-count{background:#ffffff2e;border-radius:99px;padding:0 6px;font-size:12px}.tab:not(.active) .tab-count{background:var(--green-50);color:var(--green-800)}.workout-tabs{grid-template-columns:repeat(4,minmax(0,1fr));display:grid}.workout-tabs .tab{white-space:nowrap;justify-content:space-between;min-width:0}.workout-tabs .tab-label{text-overflow:ellipsis;min-width:0;overflow:hidden}.workout-tabs .tab-count{flex:none}.btn{border:1px solid #0000;border-radius:10px;justify-content:center;align-items:center;gap:8px;padding:10px 14px;font-weight:700;text-decoration:none;display:inline-flex}.btn-sm{padding:7px 10px;font-size:13px}.btn-icon{flex:none;gap:0;width:36px;height:36px;padding:0}.btn-primary{background:var(--green-700);color:#fff}.btn-primary:hover{background:var(--green-800)}.btn-ghost{border-color:var(--line);color:var(--ink);background:#fff}.btn-ghost:hover{background:var(--green-50)}.btn-danger{background:var(--danger);color:#fff}.btn:disabled{opacity:.6;cursor:not-allowed}.modal-root{z-index:60;box-sizing:border-box;overscroll-behavior:contain;background:#08140e7a;place-items:center;width:100%;height:100vh;max-height:100vh;margin:0;padding:18px;display:grid;position:fixed;inset:0;overflow:auto}.modal{width:min(720px,100%);min-height:0;max-height:min(82vh,900px);box-shadow:var(--shadow);background:#fff;border-radius:0;overflow:auto}.modal-head{border-bottom:1px solid var(--line);background:#fff;justify-content:space-between;align-items:center;gap:12px;padding:16px 18px;display:flex;position:sticky;top:0}.modal-head h2{margin:0;font-size:20px}.modal-body{padding:16px 16px 18px}.modal-actions{justify-content:flex-end;margin-top:16px}.field{flex-direction:column;gap:6px;font-size:14px;font-weight:700;display:flex}.field-error{color:var(--danger);font-size:13px;font-style:normal;font-weight:600}.field-hint{color:var(--muted);font-size:13px;font-style:normal;font-weight:600}.form-grid{grid-template-columns:1fr 1fr;gap:14px;display:grid}.span-2{grid-column:span 2}.chips{flex-wrap:wrap;gap:8px;display:flex}.chip{border:1px solid var(--line);background:#fff;border-radius:999px;padding:6px 10px;font-size:13px;font-weight:700}.chip.on{background:var(--green-800);color:#fff;border-color:var(--green-800)}.focus-area-select{z-index:1;font-weight:400;position:relative}.focus-area-control{border:1px solid var(--line);background:#fff;border-radius:8px;align-items:center;gap:8px;min-height:42px;padding:5px 8px 5px 10px;display:flex}.focus-area-chips{flex-wrap:wrap;flex:1;gap:4px;min-width:0;max-height:76px;display:flex;overflow-y:auto}.focus-area-chip{border:1px solid var(--green-200);background:var(--green-50);max-width:100%;color:var(--green-800);border-radius:999px;align-items:center;gap:3px;padding:3px 6px 3px 8px;font-size:12px;font-weight:650;line-height:1.3;display:inline-flex}.focus-area-chip button,.focus-area-toggle{color:inherit;cursor:pointer;background:0 0;border:0;flex:none;place-items:center;padding:2px;display:inline-grid}.focus-area-chip button{border-radius:50%}.focus-area-chip button:hover{background:#14532d1f}.focus-area-toggle{color:var(--muted)}.focus-area-menu{z-index:70;border:1px solid var(--line);box-shadow:var(--shadow);background:#fff;border-radius:8px;padding:8px;position:absolute;top:calc(100% + 4px);left:0;right:0}.focus-area-search{margin-bottom:6px;font-weight:400}.focus-area-options{overscroll-behavior:contain;max-height:184px;overflow-y:auto}.focus-area-option{width:100%;color:var(--ink);text-align:left;font:inherit;cursor:pointer;background:#fff;border:0;border-radius:6px;align-items:center;gap:9px;padding:8px;font-size:13px;display:flex}.focus-area-option:hover{background:var(--green-50)}.focus-area-option.selected{background:var(--green-50);color:var(--green-800);font-weight:700}.focus-area-check{border:1px solid var(--line);border-radius:4px;flex:0 0 17px;place-items:center;width:17px;height:17px;display:inline-grid}.focus-area-option.selected .focus-area-check{border-color:var(--green-700);background:var(--green-700);color:#fff}.focus-area-no-results{color:var(--muted);padding:10px 8px;font-size:13px}.check{align-items:center;gap:8px;font-weight:600;display:flex}.empty{text-align:center;padding:36px 18px}.empty h3{margin:0 0 6px}.empty p{color:var(--muted);margin:0 0 14px}.detail-grid{grid-template-columns:repeat(3,1fr);gap:14px 18px;margin:0;display:grid}.detail-grid.user-details-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px 12px}.detail-grid.resource-details-grid{grid-template-columns:repeat(2,minmax(0,1fr));width:100%;min-width:0}.detail-grid div{min-width:0}.detail-grid dt{color:var(--muted);letter-spacing:.04em;text-transform:uppercase;font-size:12px;font-weight:700}.detail-grid dd{margin:4px 0 0;font-weight:650}.program-focus-section{gap:4px;min-width:0;display:grid}.program-focus-label{color:var(--muted);letter-spacing:.04em;text-transform:uppercase;font-size:12px;font-weight:700}.program-focus-badges{flex-wrap:wrap;gap:6px;min-width:0;display:flex}.program-focus-badges .badge{white-space:normal;overflow-wrap:anywhere;max-width:100%}.detail-grid.resource-details-grid dd,.resource-description{overflow-wrap:anywhere;word-break:break-word}.resource-detail{min-width:0;max-width:100%}.resource-description{max-width:100%}.detail-url{overflow-wrap:anywhere;word-break:break-word;max-width:100%;display:block}.modal.resource-modal,.modal.resource-modal .modal-body{min-width:0;overflow-x:hidden}.activity-row,.list-row{border-top:1px solid var(--line);grid-template-columns:92px 1fr auto;align-items:center;gap:12px;padding:12px 18px;display:grid}.activity-row strong,.list-row strong{display:block}.activity-row span,.muted{color:var(--muted)}.video-frame{background:linear-gradient(160deg, var(--green-900), var(--green-700));color:#fff;text-align:center;border-radius:14px;place-items:center;min-height:140px;padding:18px;display:grid}.video-frame p{color:#d5e6dc;margin:6px 0 0}.cover{background:var(--green-800);width:44px;height:44px;color:var(--gold);border-radius:10px;place-items:center;font-size:11px;font-weight:800;display:grid}.truncate{text-overflow:ellipsis;white-space:nowrap;vertical-align:bottom;max-width:240px;display:inline-block;overflow:hidden}.alert{background:var(--danger-soft);color:var(--danger);border-radius:10px;padding:10px 12px;font-weight:700}.alert-ok{background:var(--green-50);color:var(--green-800)}.toasts{z-index:70;flex-direction:column;gap:8px;display:flex;position:fixed;bottom:16px;right:16px}.toast{background:var(--green-900);color:#fff;box-shadow:var(--shadow);border-radius:12px;max-width:320px;padding:12px 14px}.toast-bad{background:var(--danger)}.spinner{border:2px solid #fff6;border-top-color:#fff;border-radius:50%;width:14px;height:14px;animation:.7s linear infinite spin}.password-wrap{position:relative}.password-wrap .control{padding-right:42px}.ghost-eye{color:var(--muted);background:0 0;border:0;position:absolute;top:50%;right:4px;transform:translateY(-50%)}.login-shell{grid-template-columns:1.05fr .95fr;min-height:100vh;display:grid}.login-aside{color:#fff;background:radial-gradient(circle at 20% 20%,#c6a15b2e,#0000 28%),linear-gradient(165deg,#123524 0%,#071910 70%);flex-direction:column;justify-content:space-between;padding:48px;display:flex}.login-aside h1{margin:18px 0 8px;font-size:48px;line-height:.95}.login-kicker{color:var(--gold);letter-spacing:.08em;font-size:13px;font-weight:700}.login-aside p{color:#d5e6dc;max-width:460px;font-size:18px}.login-points{gap:10px;margin-top:28px;display:grid}.login-points div{color:#e7f3ec;align-items:center;gap:10px;display:flex}.login-card{place-items:center;padding:32px 20px;display:grid}.login-panel{width:min(440px,100%)}.login-panel h2{margin:0 0 6px;font-size:32px}.demo-box{background:var(--green-50);border:1px dashed #b7d7c4;border-radius:12px;margin:16px 0;padding:12px 14px}.demo-box p{margin:0 0 4px}.nav-overlay{display:none}.back-link{align-items:center;gap:6px;margin-bottom:8px;font-weight:700;text-decoration:none;display:inline-flex}.session-list{flex-direction:column;gap:8px;margin:0;padding:0;list-style:none;display:flex}.session-list li{border-bottom:1px solid var(--line);justify-content:space-between;gap:12px;padding:8px 0;display:flex}@media (width<=1100px){.stat-grid,.plan-grid,.chart-grid{grid-template-columns:1fr 1fr}.split{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=1080px){.menu-toggle{display:inline-flex}.sidebar{transition:transform .18s;position:fixed;left:0;transform:translate(-105%)}.sidebar.open{transform:none}.nav-overlay.show{z-index:30;background:#08140e73;display:block;position:fixed;inset:0}}@media (width<=900px){.login-shell{grid-template-columns:1fr}.login-aside{padding:28px 22px}.login-aside h1{font-size:36px}.detail-grid{grid-template-columns:1fr 1fr}}@media (width<=720px){.content{padding:16px 14px 32px}.topbar{gap:8px;padding:0 10px}.topbar-title{white-space:nowrap;flex:1;min-width:0;font-size:14px}.topbar-title span{font-size:10px}.profile-btn{padding:4px}.profile-btn>span:not(.avatar){display:none}.workout-tabs{grid-template-columns:repeat(2,minmax(0,1fr))}.stat-grid,.plan-grid,.chart-grid,.split,.form-grid,.detail-grid,.detail-grid.user-details-grid,.detail-grid.resource-details-grid{grid-template-columns:1fr}.span-2{grid-column:auto}.activity-row{grid-template-columns:1fr}.page-head h1,.hero h1{font-size:26px}.toolbar .control,.search{width:100%;max-width:none}}@media (width<=380px){.workout-tabs{grid-template-columns:1fr}}@media (prefers-reduced-motion:reduce){.spinner{animation:none}.sidebar{transition:none}}@keyframes spin{to{transform:rotate(360deg)}}
