:root{--bg-dark:#050510;--card:#ffffff08;--input-bg:#ffffff0d;--cyan:#00f3ff;--purple:#bc13fe;--accent:#10b981;--text-main:#fff;--text-dim:#88a;--text-muted:#666;--border:#ffffff14;--font-mono:"JetBrains Mono","Courier New",monospace}[data-theme=light]{--bg-dark:#e8edf5;--card:#fffffff2;--input-bg:#e8eef4;--cyan:#0e7490;--purple:#7c3aed;--accent:#065f46;--text-main:#0f172a;--text-dim:#334155;--text-muted:#64748b;--border:#0000001a}*,:before,:after{box-sizing:border-box;margin:0;padding:0}body{background:var(--bg-dark);color:var(--text-main);min-height:100vh;font-family:Inter,sans-serif;transition:background .3s,color .3s}.skip-link{position:absolute;left:-9999px}.skip-link:focus{z-index:999;background:var(--accent);color:#fff;border-radius:4px;padding:6px 12px;top:8px;left:8px}.dashboard-container{max-width:1600px;margin:0 auto;padding:80px 1.5rem 2rem}.breadcrumb{color:var(--text-muted);margin-bottom:1rem;font-size:.8rem}.breadcrumb a{color:var(--text-dim);text-decoration:none}.breadcrumb a:hover{color:var(--accent)}.bc-sep{color:var(--text-muted);margin:0 .4rem}.page-title{margin-bottom:.4rem;font-size:clamp(1.5rem,3vw,2.2rem);font-weight:700}.page-subtitle{color:var(--text-dim);margin-bottom:1.5rem;font-size:.95rem}.tab-bar{flex-wrap:wrap;gap:.5rem;margin-bottom:1.5rem;display:flex}.tab-btn{border:1px solid var(--border);background:var(--card);color:var(--text-dim);cursor:pointer;border-radius:8px;padding:.5rem 1.2rem;font-size:.85rem;transition:all .2s}.tab-btn.active{background:var(--accent);color:#fff;border-color:var(--accent)}.tab-panel{display:none}.tab-panel.active{display:block}[data-theme=light] .tab-btn{background:#fff;border-color:#0000001f}[data-theme=light] .tab-btn.active{background:var(--accent);color:#fff}.calc-grid{grid-template-columns:1fr 1fr;gap:1.5rem;display:grid}@media (width<=900px){.calc-grid{grid-template-columns:minmax(0,1fr);overflow:hidden}}.input-card,.result-card{background:var(--card);border:1px solid var(--border);border-radius:14px;padding:1.5rem}.input-card{border-left:3px solid var(--cyan)}.result-card{border-left:3px solid var(--purple)}[data-theme=light] .input-card{background:#fff;border-left-color:#0e7490;box-shadow:0 2px 12px #00000014}[data-theme=light] .result-card{background:#fff;border-left-color:#7c3aed;box-shadow:0 2px 12px #00000014}.card-title{margin-bottom:1rem;font-size:1rem;font-weight:700}.field-label{color:var(--text-dim);text-transform:uppercase;letter-spacing:.04em;margin:.75rem 0 .3rem;font-size:.8rem;font-weight:600;display:block}.glass-input{background:var(--input-bg);border:1px solid var(--border);width:100%;color:var(--text-main);border-radius:8px;outline:none;padding:.6rem .8rem;font-size:.95rem;transition:border-color .2s}.glass-input:focus{border-color:var(--accent)}[data-theme=light] .glass-input{color:#0f172a;background:#e8eef4;border-color:#00000026}[data-theme=light] .glass-input::placeholder{color:#0006}.chip-row{flex-wrap:wrap;gap:.4rem;margin-bottom:.5rem;display:flex}.chip-btn{border:1px solid var(--border);background:var(--input-bg);color:var(--text-dim);cursor:pointer;border-radius:20px;padding:.35rem .8rem;font-size:.8rem;transition:all .2s}.chip-btn.active{background:var(--accent);color:#fff;border-color:var(--accent)}[data-theme=light] .chip-btn{color:#334155;background:#f0f4f9;border-color:#00000026}[data-theme=light] .chip-btn.active{background:var(--accent);color:#fff}.ffmi-display{justify-content:center;align-items:center;gap:1.5rem;padding:1rem 0;display:flex}.ffmi-metric{text-align:center}.ffmi-val{color:var(--accent);font-size:2.5rem;font-weight:800;font-family:var(--font-mono);display:block}.ffmi-label{color:var(--text-muted);text-transform:uppercase;letter-spacing:.06em;margin-top:.2rem;font-size:.75rem;display:block}.ffmi-sep{background:var(--border);width:1px;height:50px}[data-theme=light] .ffmi-sep{background:#0000001a}.ffmi-badge{text-align:center;width:fit-content;color:var(--accent);background:#10b98126;border:1px solid #10b9814d;border-radius:20px;margin:.5rem auto;padding:.4rem 1.2rem;font-size:.9rem;font-weight:700}.badge-below{color:#94a3b8;background:#64748b26;border-color:#64748b4d}.badge-average{color:#f59e0b;background:#f59e0b26;border-color:#f59e0b4d}.badge-above{color:#10b981;background:#10b98126;border-color:#10b9814d}.badge-excellent{color:var(--cyan);background:#00f3ff26;border-color:#00f3ff4d}.badge-superior{color:var(--purple);background:#bc13fe26;border-color:#bc13fe4d}.badge-suspicious{color:#ef4444;background:#dc262626;border-color:#dc26264d}[data-theme=light] .badge-below{color:#475569;background:#f1f5f9}[data-theme=light] .badge-average{color:#92400e;background:#fffbeb}[data-theme=light] .badge-above{color:#065f46;background:#f0fdf4}[data-theme=light] .badge-excellent{color:#0e7490;background:#eff9fb}[data-theme=light] .badge-superior{color:#7c3aed;background:#7c3aed14}[data-theme=light] .badge-suspicious{color:#dc2626;background:#fff1f2}.stat-grid{grid-template-columns:1fr 1fr 1fr;gap:.75rem;margin:1rem 0;display:grid}.stat-cell{background:var(--input-bg);text-align:center;border-radius:10px;padding:.6rem .8rem}.stat-label{color:var(--text-muted);text-transform:uppercase;letter-spacing:.04em;margin-bottom:.2rem;font-size:.7rem;display:block}.stat-val{color:var(--text-main);font-size:.9rem;font-weight:700;font-family:var(--font-mono);display:block}[data-theme=light] .stat-cell{background:#edf2f9;border:1px solid #00000014}[data-theme=light] .stat-val{color:#0f172a}.ffmi-gauge-wrap{margin:1rem 0}.ffmi-gauge-bar{background:linear-gradient(90deg,#94a3b8 0%,#f59e0b 20%,#10b981 45%,#00f3ff 65%,#bc13fe 80%,#ef4444 100%);border-radius:9px;height:18px;margin-bottom:.4rem;position:relative;overflow:visible}.ffmi-gauge-pointer{background:#fff;border-radius:2px;width:4px;height:26px;transition:left .4s;position:absolute;top:-4px;box-shadow:0 0 6px #00000080}.ffmi-gauge-markers{color:var(--text-muted);justify-content:space-between;margin-bottom:.2rem;font-size:.7rem;display:flex}.ffmi-gauge-labels{color:var(--text-muted);justify-content:space-between;font-size:.7rem;display:flex}[data-theme=light] .ffmi-gauge-pointer{background:#0f172a}.formula-strip{flex-wrap:wrap;gap:.4rem;margin:.75rem 0;display:flex}.formula-pill{color:#10b981;font-size:.78rem;font-family:var(--font-mono);background:#10b98114;border:1px solid #10b98133;border-radius:6px;padding:.25rem .6rem}[data-theme=light] .formula-pill{color:#065f46;background:#065f4614;border-color:#065f4633}.alert-stack{flex-direction:column;gap:.4rem;margin:.5rem 0;display:flex}.alert{border-radius:8px;padding:.5rem .75rem;font-size:.82rem}.alert-info{color:var(--cyan);background:#00f3ff14;border:1px solid #00f3ff33}.alert-warn{color:#f59e0b;background:#f59e0b14;border:1px solid #f59e0b33}.alert-success{color:#10b981;background:#10b98114;border:1px solid #10b98133}.alert-danger{color:#ef4444;background:#dc262614;border:1px solid #dc262633}[data-theme=light] .alert-info{color:#0e7490;background:#eff9fb}[data-theme=light] .alert-warn{color:#d97706;background:#fffbeb}[data-theme=light] .alert-success{color:#065f46;background:#f0fdf4}[data-theme=light] .alert-danger{color:#dc2626;background:#fff1f2}.action-bar{flex-wrap:wrap;gap:.5rem;margin-top:1rem;display:flex}.act-btn{background:var(--input-bg);border:1px solid var(--border);color:var(--text-dim);cursor:pointer;border-radius:8px;padding:.45rem 1rem;font-size:.82rem;transition:all .2s}.act-btn:hover{border-color:var(--accent);color:var(--accent)}[data-theme=light] .act-btn{color:#334155;background:#f0f4f9;border-color:#0000001f}.class-table-wrap{overflow-x:auto}.class-table-wrap table{border-collapse:collapse;width:100%;font-size:.82rem}.class-table-wrap th{text-align:left;color:var(--text-dim);border-bottom:1px solid var(--border);background:#ffffff0d;padding:.5rem .6rem}.class-table-wrap td{color:var(--text-main);border-bottom:1px solid #ffffff0a;padding:.45rem .6rem}.class-table-wrap tr.current-row{background:#10b9811f}[data-theme=light] .class-table-wrap th{color:#334155;background:#edf2f9}[data-theme=light] .class-table-wrap td{color:#0f172a;border-bottom-color:#0000000f}[data-theme=light] .class-table-wrap tr.current-row{background:#10b9811a}.context-card{background:var(--input-bg);border-radius:10px;margin-top:.5rem;padding:1rem}.context-card h3{color:var(--accent);margin-bottom:.5rem;font-size:.9rem}.context-card p{color:var(--text-dim);font-size:.82rem;line-height:1.55}[data-theme=light] .context-card{background:#edf2f9}[data-theme=light] .context-card p{color:#334155}.athlete-list{flex-direction:column;gap:.3rem;padding:0;list-style:none;display:flex}.athlete-list li{color:var(--text-dim);border-bottom:1px solid #ffffff0a;padding:.2rem 0;font-size:.82rem}.athlete-list li strong{color:var(--text-main)}.athlete-list li span{color:var(--accent);font-family:var(--font-mono)}[data-theme=light] .athlete-list li{color:#334155;border-bottom-color:#0000000f}[data-theme=light] .athlete-list li strong{color:#0f172a}.potential-table-wrap{overflow-x:auto}.potential-table-wrap table{border-collapse:collapse;width:100%;font-size:.82rem}.potential-table-wrap th{text-align:left;color:var(--text-dim);border-bottom:1px solid var(--border);background:#ffffff0d;padding:.5rem .6rem}.potential-table-wrap td{color:var(--text-main);border-bottom:1px solid #ffffff0a;padding:.45rem .6rem}.potential-table-wrap tr.current-row{background:#10b9811f}[data-theme=light] .potential-table-wrap th{color:#334155;background:#edf2f9}[data-theme=light] .potential-table-wrap td{color:#0f172a;border-bottom-color:#0000000f}.training-years-card{background:var(--input-bg);border-radius:10px;margin:.75rem 0;padding:1rem}.training-years-card h3{color:var(--accent);margin-bottom:.6rem;font-size:.9rem}.year-rows{flex-direction:column;gap:.3rem;display:flex}.year-row{border-bottom:1px solid #ffffff0a;justify-content:space-between;align-items:center;padding:.2rem 0;font-size:.82rem;display:flex}.year-label{color:var(--text-dim)}.year-val{color:var(--accent);font-family:var(--font-mono)}[data-theme=light] .training-years-card{background:#edf2f9}[data-theme=light] .year-label{color:#334155}[data-theme=light] .year-row{border-bottom-color:#0000000f}.goal-card{background:var(--input-bg);border-radius:10px;margin-top:.5rem;padding:1rem}.goal-card h3{color:var(--accent);margin-bottom:.5rem;font-size:.9rem}.goal-result{color:var(--text-dim);margin-top:.75rem;font-size:.85rem;line-height:1.6}.goal-result strong{color:var(--text-main)}[data-theme=light] .goal-card{background:#edf2f9}[data-theme=light] .goal-result{color:#334155}[data-theme=light] .goal-result strong{color:#0f172a}.natty-card{background:var(--input-bg);border-radius:10px;margin-top:1rem;padding:1rem}.natty-card h3{color:var(--accent);margin-bottom:.4rem;font-size:.9rem}.natty-card p{color:var(--text-dim);font-size:.82rem;line-height:1.55}[data-theme=light] .natty-card{background:#edf2f9}[data-theme=light] .natty-card p{color:#334155}.toast-container{z-index:1000;flex-direction:column;gap:.5rem;display:flex;position:fixed;bottom:1.5rem;right:1.5rem}.toast{border-radius:8px;padding:.6rem 1rem;font-size:.85rem;animation:.3s slideIn}.toast-success{color:#fff;background:#065f46}.toast-warn{color:#fff;background:#92400e}@keyframes slideIn{0%{opacity:0;transform:translate(100%)}to{opacity:1;transform:translate(0)}}.back-to-top{background:var(--accent);color:#fff;cursor:pointer;z-index:100;border:none;border-radius:50%;width:42px;height:42px;font-size:1.1rem;display:none;position:fixed;bottom:5rem;right:1.5rem}.back-to-top.visible{justify-content:center;align-items:center;display:flex}.page-sections-outer{max-width:1600px;margin:0 auto;padding:0 1.5rem 3rem}.section-title{color:var(--text-main);margin-bottom:1rem;font-size:1.2rem;font-weight:700}[data-theme=light] .section-title{color:#0f172a}.how-section,.formula-pills2,.gloss-section2,.ex-section2,.calc-article,.faq-section,.calc-related{margin-bottom:2.5rem}.how-steps{flex-direction:column;gap:1rem;display:flex}.how-step{align-items:flex-start;gap:1rem;display:flex}.step-num{background:var(--accent);color:#fff;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:28px;height:28px;font-size:.85rem;font-weight:700;display:flex}.step-body{color:var(--text-dim);padding-top:3px;font-size:.88rem;line-height:1.6}.step-body strong{color:var(--text-main)}[data-theme=light] .step-body{color:#334155}.pill-row{flex-wrap:wrap;gap:.75rem;display:flex}.f-pill{background:var(--card);border:1px solid var(--border);border-radius:10px;flex-direction:column;flex:1;align-items:flex-start;gap:.5rem;min-width:180px;padding:.6rem 1rem;display:flex}.f-label{color:var(--accent);text-transform:uppercase;letter-spacing:.06em;font-size:.7rem;font-weight:700}.f-eq{font-family:var(--font-mono);color:var(--text-main);font-size:.8rem}[data-theme=light] .f-pill{background:#fff;border-color:#0000001a;box-shadow:0 1px 4px #0000000d}[data-theme=light] .f-label{color:var(--accent)}[data-theme=light] .f-eq{color:#0f172a}.gloss-grid{grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:1rem;display:grid}.gloss-item{background:var(--card);border:1px solid var(--border);border-radius:10px;padding:.75rem 1rem}.gloss-item dt{color:var(--accent);margin-bottom:.25rem;font-size:.88rem;font-weight:700}.gloss-item dd{color:var(--text-dim);font-size:.82rem;line-height:1.55}[data-theme=light] .gloss-item{background:#fff;border-color:#0000001a;box-shadow:0 1px 4px #0000000d}[data-theme=light] .gloss-item dd{color:#334155}.ex-grid{grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:1rem;display:grid}.ex-card{background:var(--card);border:1px solid var(--border);border-radius:12px;padding:1rem}.ex-card h3{color:var(--text-main);margin-bottom:.5rem;font-size:.9rem;font-weight:700}.ex-card p{color:var(--text-dim);font-size:.82rem;line-height:1.6}[data-theme=light] .ex-card{background:#fff;border-color:#0000001a;box-shadow:0 1px 4px #0000000d}[data-theme=light] .ex-card h3{color:#0f172a}[data-theme=light] .ex-card p{color:#334155}.calc-article{background:var(--card);border:1px solid var(--border);border-radius:14px;padding:1.5rem 2rem}.calc-article h2{color:var(--text-main);margin-bottom:1rem;font-size:1.2rem}.calc-article h3{color:var(--accent);margin:1rem 0 .4rem;font-size:1rem;font-weight:700}.calc-article p{color:var(--text-dim);margin-bottom:.75rem;font-size:.88rem;line-height:1.75}[data-theme=light] .calc-article{background:#fff;border-color:#0000001a}[data-theme=light] .calc-article h2{color:#0f172a}[data-theme=light] .calc-article h3{color:var(--accent)}[data-theme=light] .calc-article p{color:#334155}.faq-list{flex-direction:column;display:flex}.faq-item{border-bottom:1px solid #ffffff0f}.faq-item__question{cursor:pointer;color:var(--text-main);user-select:none;justify-content:space-between;align-items:center;padding:14px 4px;font-size:.9rem;font-weight:600;list-style:none;transition:color .2s;display:flex}.faq-item__question::-webkit-details-marker{display:none}.faq-item__question:after{content:"+";color:var(--text-dim);flex-shrink:0;margin-left:16px;font-size:1.1rem;transition:color .2s}.faq-item[open] .faq-item__question:after{content:"−";color:var(--accent)}.faq-item__question:hover{color:var(--cyan)}.faq-item__answer{color:var(--text-dim);padding:0 4px 14px;font-size:.85rem;line-height:1.75}[data-theme=light] .faq-list{gap:8px}[data-theme=light] .faq-item{background:#fff;border:1px solid #0000001a;border-radius:10px;overflow:hidden;box-shadow:0 1px 4px #0000000f}[data-theme=light] .faq-item[open]{border-color:#065f4666 #065f4666 #065f4666 #065f46;border-left-style:solid;border-left-width:3px}[data-theme=light] .faq-item__question{color:#0f172a;padding:14px 16px}[data-theme=light] .faq-item__answer{color:#475569;border-top:1px solid #0000000f;padding:12px 16px 16px}[data-theme=light] .faq-item__question:hover{color:#065f46}.related-grid{grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:.75rem;display:grid}.related-card{background:var(--card);border:1px solid var(--border);border-radius:12px;align-items:center;gap:.6rem;padding:.9rem 1rem;text-decoration:none;transition:border-color .2s,transform .15s;display:flex}.related-card:hover{border-color:var(--accent);transform:translateY(-2px)}.rel-icon{font-size:1.2rem}.rel-name{color:var(--text-main);font-size:.82rem;font-weight:600}[data-theme=light] .related-card{background:#fff;border-color:#0000001a;box-shadow:0 1px 4px #0000000d}[data-theme=light] .rel-name{color:#0f172a}