@import "https://fonts.googleapis.com/css2?family=Archivo:wdth,wght@62..125,100..900&family=IBM+Plex+Mono:wght@400;500;600&display=swap";:root{--paper-0:#fff;--paper-50:#fcfcfe;--paper-100:#f4f5f9;--paper-200:#e9ebf2;--night-900:#0e0f13;--night-800:#16181e;--night-700:#1e212a;--night-600:#2a2e3a;--ultra-700:#1d2bb8;--ultra-600:#2734d9;--ultra-500:#3242f0;--ultra-400:#5b68ff;--ultra-300:#8f98ff;--ultra-100:#e7e9ff;--live-600:#d83c1e;--live-500:#f4542f;--live-400:#ff7a5e;--bg:var(--paper-50);--bg-sunken:var(--paper-100);--surface:var(--paper-0);--surface-raised:var(--paper-0);--surface-inverse:var(--night-900);--plate:var(--night-900);--plate-line:#ffffff17;--plate-ink:var(--paper-50);--plate-ink-2:#fcfcfe99;--ink:#0e0f13;--ink-2:#545a6b;--ink-3:#8a90a3;--ink-inverse:var(--paper-50);--line:#0e0f1312;--line-strong:#0e0f1324;--accent:var(--ultra-500);--accent-hover:var(--ultra-600);--accent-wash:var(--ultra-100);--accent-line:#3242f047;--on-accent:#fff;--signal:var(--live-500);--signal-wash:#f4542f1a;--focus:var(--ultra-500);--shadow-sm:0 1px 2px #0e0f130a;--shadow-md:0 1px 2px #0e0f130a, 0 8px 24px #0e0f130f;--shadow-lg:0 2px 6px #0e0f130d, 0 24px 60px #0e0f131f;--shadow-inset:inset 0 1px 0 #ffffffb3;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--font-sans:"Archivo", ui-sans-serif, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-mono:"IBM Plex Mono", ui-monospace, SFMono-Regular, Menlo, monospace;--wide:"wdth" 125;--normal:"wdth" 100;--narrow:"wdth" 82;--text-display:clamp(2.75rem, 1.4rem + 6vw, 4.75rem);--text-title:clamp(1.75rem, 1.25rem + 2.2vw, 2.5rem);--text-heading:1.25rem;--text-body-lg:1.0625rem;--text-body:.9375rem;--text-caption:.8125rem;--text-label:.6875rem;--data-hero:clamp(4.5rem, 2rem + 12vw, 8rem);--data-xl:clamp(2.75rem, 2rem + 3.2vw, 3.75rem);--data-lg:1.625rem;--data-md:1.125rem;--leading-tight:.96;--leading-snug:1.3;--leading-body:1.6;--track-display:-.045em;--track-label:.13em;--s-1:4px;--s-2:8px;--s-3:12px;--s-4:16px;--s-5:20px;--s-6:24px;--s-7:32px;--s-8:40px;--s-9:56px;--s-10:72px;--gutter:clamp(16px, 4.2vw, 24px);--measure:64ch;--r-sm:6px;--r-md:10px;--r-lg:14px;--r-xl:20px;--r-2xl:26px;--r-pill:999px;--tap:48px;--t-fast:.12s;--t-base:.2s;--t-slow:.34s;--ease:cubic-bezier(.2, .8, .2, 1);--ease-in:cubic-bezier(.5, 0, .75, 0);--ease-spring:cubic-bezier(.34, 1.4, .64, 1);--z-nav:30;--z-sticky:20;--z-rest:40;--z-sheet:90;--z-toast:100;--z-guard:120}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--bg:var(--night-900);--bg-sunken:#0a0b0e;--surface:var(--night-800);--surface-raised:var(--night-700);--surface-inverse:var(--paper-50);--plate:var(--night-700);--plate-line:#ffffff1f;--plate-ink:var(--paper-50);--plate-ink-2:#fcfcfe9e;--ink:#f2f3f8;--ink-2:#a4a9bb;--ink-3:#737990;--ink-inverse:var(--night-900);--line:#f2f3f81a;--line-strong:#f2f3f833;--accent:var(--ultra-400);--accent-hover:var(--ultra-300);--accent-wash:#5b68ff29;--accent-line:#5b68ff6b;--on-accent:#0e0f13;--signal:var(--live-400);--signal-wash:#ff7a5e24;--focus:var(--ultra-300);--shadow-sm:0 1px 2px #00000080;--shadow-md:0 2px 6px #00000070, 0 12px 28px #0006;--shadow-lg:0 6px 14px #00000080, 0 28px 64px #0000008f;--shadow-inset:inset 0 1px 0 #ffffff0d;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}}:root[data-theme=dark]{--bg:var(--night-900);--bg-sunken:#0a0b0e;--surface:var(--night-800);--surface-raised:var(--night-700);--surface-inverse:var(--paper-50);--plate:var(--night-700);--plate-line:#ffffff1f;--plate-ink:var(--paper-50);--plate-ink-2:#fcfcfe9e;--ink:#f2f3f8;--ink-2:#a4a9bb;--ink-3:#737990;--ink-inverse:var(--night-900);--line:#f2f3f81a;--line-strong:#f2f3f833;--accent:var(--ultra-400);--accent-hover:var(--ultra-300);--accent-wash:#5b68ff29;--accent-line:#5b68ff6b;--on-accent:#0e0f13;--signal:var(--live-400);--signal-wash:#ff7a5e24;--focus:var(--ultra-300);--shadow-sm:0 1px 2px #00000080;--shadow-md:0 2px 6px #00000070, 0 12px 28px #0006;--shadow-lg:0 6px 14px #00000080, 0 28px 64px #0000008f;--shadow-inset:inset 0 1px 0 #ffffff0d;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}:root:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}@media (prefers-color-scheme:dark){:root:root:not([data-theme=light]){--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}}:root:root[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}html body{background:var(--bg);color:var(--ink);font-family:var(--font-sans);font-size:var(--text-body);line-height:var(--leading-body)}*,:before,:after{box-sizing:border-box}html{background:var(--bg);-webkit-text-size-adjust:100%}body{background:var(--bg);color:var(--ink);font-family:var(--font-sans);font-size:var(--text-body);font-variation-settings:var(--normal);line-height:var(--leading-body);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;overscroll-behavior-y:none;margin:0}body.is-locked{overflow:hidden}h1,h2,h3,h4{font-weight:650;line-height:var(--leading-tight);letter-spacing:var(--track-display);font-variation-settings:var(--wide);text-wrap:balance;margin:0}p{text-wrap:pretty;margin:0}button,input,select,textarea{font:inherit;font-variation-settings:inherit;color:inherit}button{cursor:pointer}button,a{-webkit-tap-highlight-color:transparent}a{color:var(--accent);text-underline-offset:3px}svg{flex:none;display:block}::selection{background:var(--accent);color:var(--on-accent)}:focus-visible{outline:2px solid var(--focus);outline-offset:2px;border-radius:var(--r-sm)}.visually-hidden{clip-path:inset(50%);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.skip-link{z-index:var(--z-toast);border-radius:var(--r-md);background:var(--surface-inverse);color:var(--ink-inverse);font-size:var(--text-caption);padding:10px 16px;font-weight:600;text-decoration:none;position:fixed;top:10px;left:12px;transform:translateY(-200%)}.skip-link:focus-visible{transform:translateY(0)}.label{font-family:var(--font-mono);font-size:var(--text-label);letter-spacing:var(--track-label);text-transform:uppercase;color:var(--ink-3);font-weight:500}.data{font-family:var(--font-mono);font-variant-numeric:tabular-nums;font-feature-settings:"tnum"}.forma-app{min-height:100svh;padding-bottom:calc(78px + var(--s-6) + env(safe-area-inset-bottom));background:var(--bg)}.app-header{z-index:var(--z-sticky);justify-content:space-between;align-items:center;gap:var(--s-4);padding:max(var(--s-4), env(safe-area-inset-top)) var(--gutter) var(--s-3);background:color-mix(in srgb, var(--bg) 86%, transparent);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);transition:border-color var(--t-base) var(--ease);border-bottom:1px solid #0000;display:flex;position:sticky;top:0}.app-header.is-stuck{border-bottom-color:var(--line)}.wordmark{font-variation-settings:"wdth" 118;letter-spacing:-.045em;color:var(--ink);background:0 0;border:0;padding:0;font-size:1.25rem;font-weight:800}.wordmark span{color:var(--accent)}.header-actions{align-items:center;gap:var(--s-2);display:flex}.icon-btn{border:1px solid var(--line);border-radius:var(--r-md);background:var(--surface);width:40px;height:40px;color:var(--ink-2);transition:color var(--t-fast) var(--ease), border-color var(--t-fast) var(--ease), background var(--t-fast) var(--ease);place-items:center;display:grid}.icon-btn:hover{color:var(--ink);border-color:var(--line-strong)}.icon-btn:active{transform:scale(.94)}.profile-chip{border-radius:var(--r-md);background:var(--surface-inverse);width:40px;height:40px;color:var(--ink-inverse);font-variation-settings:var(--wide);border:0;place-items:center;font-size:.8125rem;font-weight:700;display:grid}.app-main{padding:var(--s-5) var(--gutter) var(--s-8);max-width:1180px;margin-inline:auto}.bottom-nav{z-index:var(--z-nav);gap:var(--s-1);padding:var(--s-2) var(--s-2) calc(var(--s-2) + env(safe-area-inset-bottom));background:color-mix(in srgb, var(--surface) 92%, transparent);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);border-top:1px solid var(--line);grid-template-columns:repeat(5,1fr);display:grid;position:fixed;bottom:0;left:0;right:0}.bottom-nav button{min-height:58px;padding:0 var(--s-1);border-radius:var(--r-md);color:var(--ink-3);letter-spacing:.005em;transition:color var(--t-fast) var(--ease);background:0 0;border:0;flex-direction:column;justify-content:center;align-items:center;gap:3px;font-size:.6875rem;font-weight:550;display:flex;position:relative}.bottom-nav svg{transition:transform var(--t-base) var(--ease-spring)}.bottom-nav button.active{color:var(--ink);font-weight:650}.bottom-nav button.active svg{color:var(--accent);transform:translateY(-1px)}.bottom-nav button.active:after{content:"";background:var(--accent);border-radius:0 0 2px 2px;width:20px;height:2px;position:absolute;top:0;left:50%;transform:translate(-50%)}.btn{justify-content:center;align-items:center;gap:var(--s-2);min-height:var(--tap);padding:0 var(--s-5);border-radius:var(--r-md);font-size:var(--text-body);font-variation-settings:"wdth" 104;white-space:nowrap;transition:background var(--t-fast) var(--ease), color var(--t-fast) var(--ease), border-color var(--t-fast) var(--ease), transform var(--t-fast) var(--ease);border:1px solid #0000;font-weight:650;text-decoration:none;display:inline-flex}.btn:active{transform:scale(.985)}.btn:disabled{opacity:.45;cursor:not-allowed;transform:none}.btn-primary,.fx-primary-btn{justify-content:center;align-items:center;gap:var(--s-2);min-height:var(--tap);padding:0 var(--s-5);border-radius:var(--r-md);background:var(--surface-inverse);color:var(--ink-inverse);font-size:var(--text-body);font-variation-settings:"wdth" 104;transition:background var(--t-fast) var(--ease), transform var(--t-fast) var(--ease), opacity var(--t-fast) var(--ease);border:0;font-weight:650;text-decoration:none;display:inline-flex}.btn-primary:active,.fx-primary-btn:active{transform:scale(.985)}.btn-primary:disabled,.fx-primary-btn:disabled{opacity:.45;cursor:not-allowed;transform:none}.btn-accent{background:var(--accent);color:var(--on-accent);border:0}.btn-accent:hover{background:var(--accent-hover)}.btn-ghost,.fx-ghost-btn{justify-content:center;align-items:center;gap:var(--s-2);min-height:44px;padding:0 var(--s-4);border:1px solid var(--line-strong);border-radius:var(--r-md);background:var(--surface);color:var(--ink);font-size:var(--text-caption);transition:border-color var(--t-fast) var(--ease), background var(--t-fast) var(--ease);font-weight:600;text-decoration:none;display:inline-flex}.btn-ghost:hover,.fx-ghost-btn:hover{background:var(--surface-raised);border-color:var(--ink-3)}.btn-ghost:disabled,.fx-ghost-btn:disabled{opacity:.45;cursor:not-allowed}.btn-danger,.fx-danger-btn{justify-content:center;align-items:center;gap:var(--s-2);min-height:40px;padding:0 var(--s-3);border:1px solid color-mix(in srgb, var(--signal) 40%, transparent);border-radius:var(--r-sm);background:var(--signal-wash);color:var(--signal);font-size:var(--text-caption);font-weight:600;display:inline-flex}.btn-danger:hover,.fx-danger-btn:hover{background:color-mix(in srgb, var(--signal) 18%, transparent)}.btn-danger:disabled,.fx-danger-btn:disabled{opacity:.4;cursor:not-allowed}.btn-block{width:100%}.link-btn{color:var(--accent);font-size:var(--text-caption);text-underline-offset:3px;background:0 0;border:0;padding:0;font-weight:600;text-decoration:underline}.field{gap:var(--s-2);flex-direction:column;display:flex}.field>span,.fx-field>span{font-family:var(--font-mono);font-size:var(--text-label);letter-spacing:var(--track-label);text-transform:uppercase;color:var(--ink-3);font-weight:500}.field input,.field select,.field textarea,.fx-field input,.fx-field select,.fx-field textarea{width:100%;min-height:var(--tap);padding:var(--s-3) var(--s-4);border:1px solid var(--line-strong);border-radius:var(--r-md);background:var(--surface-raised);color:var(--ink);font-size:var(--text-body-lg);transition:border-color var(--t-fast) var(--ease), box-shadow var(--t-fast) var(--ease);font-family:inherit}.field textarea,.fx-field textarea{min-height:0;line-height:var(--leading-body);resize:vertical}.field input:hover,.fx-field input:hover{border-color:var(--ink-3)}.field input:focus,.field select:focus,.field textarea:focus,.fx-field input:focus,.fx-field select:focus,.fx-field textarea:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-wash);outline:none}.fx-field{gap:var(--s-2);flex-direction:column;display:flex}.search{align-items:center;gap:var(--s-3);min-height:var(--tap);padding:0 var(--s-4);border:1px solid var(--line-strong);border-radius:var(--r-md);background:var(--surface-raised);color:var(--ink-3);transition:border-color var(--t-fast) var(--ease), box-shadow var(--t-fast) var(--ease);display:flex}.search:focus-within{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-wash)}.search input{min-width:0;color:var(--ink);font-size:var(--text-body-lg);background:0 0;border:0;outline:none;flex:1}.search input::-webkit-search-cancel-button{display:none}.search button{border-radius:var(--r-sm);width:28px;height:28px;color:var(--ink-3);background:0 0;border:0;place-items:center;display:grid}.checkbox{align-items:flex-start;gap:var(--s-3);padding:var(--s-4);border:1px solid var(--line);border-radius:var(--r-lg);background:var(--surface);cursor:pointer;display:flex}.checkbox input{width:20px;height:20px;accent-color:var(--accent);margin-top:2px}.checkbox span{font-size:var(--text-body);font-weight:600}.checkbox small{margin-top:var(--s-1);color:var(--ink-3);font-size:var(--text-caption);font-weight:400;line-height:var(--leading-snug);display:block}.card{border:1px solid var(--line);border-radius:var(--r-xl);background:var(--surface)}.card-raised{background:var(--surface-raised);box-shadow:var(--shadow-sm)}.view{gap:var(--s-6);flex-direction:column;display:flex}.page-head{gap:var(--s-2);flex-direction:column;display:flex}.page-head .label{display:block}.page-head h1{font-size:var(--text-display);font-variation-settings:"wdth" 116;letter-spacing:-.042em;font-weight:620;line-height:.94}.page-head p{max-width:42ch;color:var(--ink-2);font-size:var(--text-body);line-height:var(--leading-snug)}.page-head-row{justify-content:space-between;align-items:flex-end;gap:var(--s-4);display:flex}.sub-head{align-items:center;gap:var(--s-3);display:flex}.sub-head h2{font-size:var(--text-heading);font-variation-settings:"wdth" 106;flex:1}.sub-head .label{flex:none}.note{color:var(--ink-3);font-size:var(--text-caption);line-height:var(--leading-body);max-width:var(--measure)}.nav-head{align-items:center;gap:var(--s-3);display:flex}.nav-head-copy{flex:1;min-width:0}.nav-head-copy h1{font-size:var(--text-title);font-variation-settings:"wdth" 106}.tabs{gap:var(--s-1);padding:var(--s-1);border:1px solid var(--line);border-radius:var(--r-md);background:var(--bg-sunken);scrollbar-width:none;display:flex;overflow-x:auto}.tabs::-webkit-scrollbar{display:none}.tabs button{align-items:center;gap:var(--s-2);min-height:40px;padding:0 var(--s-4);border-radius:var(--r-sm);color:var(--ink-3);font-size:var(--text-caption);white-space:nowrap;transition:background var(--t-fast) var(--ease), color var(--t-fast) var(--ease);background:0 0;border:0;flex:1 0 auto;font-weight:600;display:inline-flex}.tabs button.is-active{background:var(--surface-raised);color:var(--ink);box-shadow:var(--shadow-sm)}.tabs button i{border-radius:var(--r-pill);background:var(--accent-wash);min-width:18px;height:18px;color:var(--accent);font-family:var(--font-mono);place-items:center;padding:0 5px;font-size:.625rem;font-style:normal;font-weight:600;display:grid}.chips{gap:var(--s-2);scrollbar-width:none;padding-bottom:2px;display:flex;overflow-x:auto}.chips::-webkit-scrollbar{display:none}.chips button{min-height:38px;padding:0 var(--s-4);border:1px solid var(--line-strong);border-radius:var(--r-pill);background:var(--surface);color:var(--ink-2);font-size:var(--text-caption);white-space:nowrap;transition:all var(--t-fast) var(--ease);flex:none;font-weight:600}.chips button.is-active{background:var(--surface-inverse);color:var(--ink-inverse);border-color:#0000}.spec-row{gap:var(--s-2);flex-wrap:wrap;margin:0;padding:0;list-style:none;display:flex}.spec-row li{padding:5px var(--s-3);border:1px solid var(--line);border-radius:var(--r-sm);color:var(--ink-2);font-family:var(--font-mono);letter-spacing:.04em;font-size:.6875rem}.spec-row.on-dark li{color:#fffc;border-color:#ffffff38}.meter{border-radius:var(--r-pill);background:color-mix(in srgb, var(--ink) 12%, transparent);height:4px;position:relative;overflow:hidden}.meter i{background:var(--accent);height:100%;transition:width var(--t-slow) var(--ease);display:block}.meter.on-dark{background:#fff3}.scrim{z-index:var(--z-sheet);padding:var(--s-5);background:color-mix(in srgb, var(--night-900) 62%, transparent);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);animation:fade-in var(--t-base) var(--ease);place-items:center;display:grid;position:fixed;inset:0}.dialog{gap:var(--s-3);width:min(440px,100%);max-height:84svh;padding:var(--s-6);border:1px solid var(--line);border-radius:var(--r-xl);background:var(--surface-raised);box-shadow:var(--shadow-lg);animation:rise var(--t-slow) var(--ease);flex-direction:column;display:flex;overflow-y:auto}.dialog>*{flex:none}.dialog h2{font-size:var(--text-title)}.dialog p{color:var(--ink-2);line-height:var(--leading-body)}.dialog-actions{gap:var(--s-2);margin-top:var(--s-2);display:flex}.dialog-actions>*{flex:1}.toast{left:var(--s-3);right:var(--s-3);bottom:calc(84px + env(safe-area-inset-bottom));z-index:var(--z-toast);align-items:center;gap:var(--s-3);padding:var(--s-3) var(--s-3) var(--s-3) var(--s-4);border-radius:var(--r-md);background:var(--surface-inverse);color:var(--ink-inverse);font-size:var(--text-caption);box-shadow:var(--shadow-lg);animation:toast-in var(--t-slow) var(--ease-spring);font-weight:550;display:flex;position:fixed}.toast span:first-child{border-radius:var(--r-pill);background:var(--accent);width:22px;height:22px;color:var(--on-accent);place-items:center;font-size:.75rem;display:grid}.toast p{flex:1}.toast button{border-radius:var(--r-sm);width:30px;height:30px;color:inherit;opacity:.6;background:0 0;border:0;place-items:center;display:grid}.toast-error span:first-child{background:var(--signal);color:#fff}.empty{align-items:center;gap:var(--s-2);padding:var(--s-8) var(--s-5);border:1px dashed var(--line-strong);border-radius:var(--r-xl);text-align:center;flex-direction:column;display:flex}.empty b{font-size:var(--text-heading);font-variation-settings:"wdth" 106}.empty p{max-width:38ch;color:var(--ink-3);font-size:var(--text-caption);line-height:var(--leading-body)}.empty .btn-primary,.empty .fx-primary-btn{margin-top:var(--s-2)}.skeleton{border-radius:var(--r-md);background:linear-gradient(90deg, color-mix(in srgb, var(--ink) 7%, transparent) 25%, color-mix(in srgb, var(--ink) 12%, transparent) 50%, color-mix(in srgb, var(--ink) 7%, transparent) 75%);background-size:200% 100%;animation:1.4s linear infinite shimmer}.scroll-x{-webkit-overflow-scrolling:touch;overflow-x:auto}.table{border-collapse:collapse;width:100%;font-size:var(--text-caption)}.table caption{margin-bottom:var(--s-2);font-family:var(--font-mono);font-size:var(--text-label);letter-spacing:var(--track-label);text-transform:uppercase;color:var(--ink-3);text-align:left}.table th,.table td{padding:var(--s-2) var(--s-3);border-bottom:1px solid var(--line);text-align:left;white-space:nowrap}.table thead th{font-family:var(--font-mono);font-size:var(--text-label);letter-spacing:var(--track-label);text-transform:uppercase;color:var(--ink-3);font-weight:500}.table tbody th{font-size:var(--text-caption);vertical-align:top;white-space:normal;min-width:132px;font-weight:600}.table td{color:var(--ink-2);font-family:var(--font-mono);font-variant-numeric:tabular-nums}.table tbody tr:last-child th,.table tbody tr:last-child td{border-bottom:0}body.fx-obscured .fx-protected{filter:blur(24px)saturate(.5);opacity:.5;transition:filter var(--t-fast) var(--ease)}.guard-note{z-index:var(--z-guard);align-items:center;gap:var(--s-1);padding:var(--s-5) var(--s-6);border-radius:var(--r-lg);background:var(--surface-inverse);color:var(--ink-inverse);text-align:center;box-shadow:var(--shadow-lg);flex-direction:column;display:flex;position:fixed;top:50%;left:50%;transform:translate(-50%,-50%)}.guard-note b{font-size:var(--text-body-lg);font-variation-settings:"wdth" 106}.guard-note span{color:color-mix(in srgb, var(--ink-inverse) 66%, transparent);font-size:var(--text-caption)}@media print{body *{visibility:hidden!important}body:after{content:"Материалы личного кабинета fit-envoy защищены от печати.";visibility:visible;padding:40px;font-family:sans-serif;font-size:16px;display:block}}@keyframes fade-in{0%{opacity:0}}@keyframes rise{0%{opacity:0;transform:translateY(12px)scale(.98)}}@keyframes toast-in{0%{opacity:0;transform:translateY(14px)}}@keyframes shimmer{to{background-position:-200% 0}}@keyframes enter-view{0%{opacity:0;transform:translateY(8px)}}.view>*{animation:enter-view var(--t-base) var(--ease) backwards}.view>:first-child{animation-delay:0s}.view>:nth-child(2){animation-delay:30ms}.view>:nth-child(3){animation-delay:60ms}.view>:nth-child(n+4){animation-delay:80ms}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}@media (min-width:900px){.forma-app{padding-bottom:var(--s-8);padding-left:232px}.app-header{padding-left:calc(232px + var(--gutter));padding-right:var(--gutter);margin-left:-232px}.bottom-nav{width:232px;padding:var(--s-9) var(--s-3) var(--s-5);border-top:0;border-right:1px solid var(--line);background:var(--surface);-webkit-backdrop-filter:none;backdrop-filter:none;grid-template-columns:1fr;align-content:start;gap:2px;top:0;bottom:0;right:auto}.bottom-nav button{justify-content:flex-start;gap:var(--s-3);min-height:44px;padding:0 var(--s-3);font-size:var(--text-body);flex-direction:row}.bottom-nav button.active{background:var(--bg-sunken)}.bottom-nav button.active:after{border-radius:0 2px 2px 0;width:2px;height:20px;top:50%;left:0;transform:translateY(-50%)}.toast{left:auto;right:var(--s-6);bottom:var(--s-6);width:min(420px,100vw - 280px)}}.fx-view{gap:var(--s-6);flex-direction:column;display:flex}.fx-section-note{color:var(--ink-3);font-size:var(--text-caption);line-height:var(--leading-body);max-width:var(--measure)}.fx-list-heading{align-items:baseline;gap:var(--s-3);display:flex}.fx-list-heading h2{font-size:var(--text-heading);font-variation-settings:"wdth" 112;letter-spacing:-.025em;flex:1}.fx-list-heading span{font-family:var(--font-mono);font-size:var(--text-label);letter-spacing:var(--track-label);text-transform:uppercase;color:var(--ink-3)}.fx-page-header{align-items:center;gap:var(--s-3);display:flex}.fx-back{border:1px solid var(--line-strong);border-radius:var(--r-md);background:var(--surface);width:44px;height:44px;color:var(--ink);transition:border-color var(--t-fast) var(--ease), transform var(--t-fast) var(--ease);flex:none;place-items:center;display:grid}.fx-back:hover{border-color:var(--ink-3)}.fx-back:active{transform:scale(.94)}.fx-page-header-copy{flex:1;min-width:0}.fx-page-header-copy p{font-family:var(--font-mono);font-size:var(--text-label);letter-spacing:var(--track-label);text-transform:uppercase;color:var(--ink-3)}.fx-page-header-copy h1{font-size:var(--text-title);font-variation-settings:"wdth" 122;letter-spacing:-.04em;margin-top:4px;line-height:.94}.fx-empty{align-items:center;gap:var(--s-2);padding:var(--s-8) var(--s-5);border:1px dashed var(--line-strong);border-radius:var(--r-xl);text-align:center;flex-direction:column;display:flex}.fx-empty b{font-size:var(--text-heading);font-variation-settings:"wdth" 106}.fx-empty p{max-width:38ch;color:var(--ink-3);font-size:var(--text-caption);line-height:var(--leading-body)}.fx-hint{padding:var(--s-3) var(--s-4);border-left:2px solid var(--accent);border-radius:0 var(--r-sm) var(--r-sm) 0;background:var(--accent-wash);color:var(--ink-2);font-size:var(--text-caption);line-height:var(--leading-body)}.fx-meta-row{gap:var(--s-2);grid-template-columns:repeat(2,1fr);display:grid}.fx-meta-row>div{padding:var(--s-3) var(--s-4);border:1px solid var(--line);border-radius:var(--r-md);background:var(--surface)}.fx-meta-row p{font-family:var(--font-mono);font-size:var(--text-label);letter-spacing:var(--track-label);text-transform:uppercase;color:var(--ink-3)}.fx-meta-row b{margin-top:var(--s-1);font-size:var(--text-body);font-weight:600;display:block}.fx-table-scroll{-webkit-overflow-scrolling:touch;overflow-x:auto}.fx-badge{top:var(--s-3);right:var(--s-3);z-index:2;padding:4px var(--s-3);border-radius:var(--r-sm);background:var(--surface-inverse);color:var(--ink-inverse);font-family:var(--font-mono);font-size:var(--text-label);letter-spacing:var(--track-label);text-transform:uppercase;font-weight:500;position:absolute}.fx-chip-row{gap:var(--s-2);flex-wrap:wrap;margin:0;padding:0;list-style:none;display:flex}.fx-chip-row li{padding:5px var(--s-3);border:1px solid var(--line);border-radius:var(--r-sm);color:var(--ink-2);font-family:var(--font-mono);letter-spacing:.03em;font-size:.6875rem}.fx-chip-row.light li{border-color:var(--line);color:var(--ink-2)}.fx-progress-track{border-radius:var(--r-pill);background:color-mix(in srgb, var(--ink) 12%, transparent);height:4px;overflow:hidden}.fx-progress-track i{background:var(--accent);height:100%;transition:width var(--t-slow) var(--ease);display:block}.fx-progress-track.light{background:var(--bg-sunken)}.fx-progress-block{gap:var(--s-2);flex-direction:column;display:flex}.fx-progress-head{justify-content:space-between;align-items:baseline;gap:var(--s-3);display:flex}.fx-progress-head b{font-family:var(--font-mono);font-size:var(--data-lg);font-variant-numeric:tabular-nums;letter-spacing:-.02em;font-weight:500}.fx-progress-head span{color:var(--ink-3);font-size:var(--text-caption)}.fx-tabs{gap:var(--s-1);padding:var(--s-1);border:1px solid var(--line);border-radius:var(--r-md);background:var(--bg-sunken);scrollbar-width:none;display:flex;overflow-x:auto}.fx-tabs::-webkit-scrollbar{display:none}.fx-tabs button{align-items:center;gap:var(--s-2);min-height:40px;padding:0 var(--s-4);border-radius:var(--r-sm);color:var(--ink-3);font-size:var(--text-caption);white-space:nowrap;transition:background var(--t-fast) var(--ease), color var(--t-fast) var(--ease);background:0 0;border:0;flex:1 0 auto;font-weight:600;display:inline-flex}.fx-tabs button.is-active{background:var(--surface-raised);color:var(--ink);box-shadow:var(--shadow-sm)}.fx-tabs button i{border-radius:var(--r-pill);background:var(--accent-wash);min-width:18px;height:18px;color:var(--accent);font-family:var(--font-mono);place-items:center;padding:0 5px;font-size:.625rem;font-style:normal;display:grid}.fx-filter-row{gap:var(--s-2);scrollbar-width:none;padding-bottom:2px;display:flex;overflow-x:auto}.fx-filter-row::-webkit-scrollbar{display:none}.fx-filter-row button{min-height:38px;padding:0 var(--s-4);border:1px solid var(--line-strong);border-radius:var(--r-pill);background:var(--surface);color:var(--ink-2);font-size:var(--text-caption);white-space:nowrap;transition:all var(--t-fast) var(--ease);flex:none;font-weight:600}.fx-filter-row button.is-active{background:var(--surface-inverse);color:var(--ink-inverse);border-color:#0000}.fx-search{align-items:center;gap:var(--s-3);min-height:var(--tap);padding:0 var(--s-4);border:1px solid var(--line-strong);border-radius:var(--r-md);background:var(--surface-raised);color:var(--ink-3);transition:border-color var(--t-fast) var(--ease), box-shadow var(--t-fast) var(--ease);display:flex}.fx-search:focus-within{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-wash)}.fx-search input{min-width:0;color:var(--ink);font-size:var(--text-body-lg);background:0 0;border:0;outline:none;flex:1}.fx-search input::-webkit-search-cancel-button{display:none}.fx-search>button{border-radius:var(--r-sm);width:30px;height:30px;color:var(--ink-3);background:0 0;border:0;place-items:center;display:grid}.fx-modal-backdrop{z-index:var(--z-sheet);padding:var(--s-5);background:color-mix(in srgb, var(--night-900) 62%, transparent);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);animation:fade-in var(--t-base) var(--ease);place-items:center;display:grid;position:fixed;inset:0}.fx-modal{gap:var(--s-3);width:min(440px,100%);max-height:84svh;padding:var(--s-6);border:1px solid var(--line);border-radius:var(--r-xl);background:var(--surface-raised);box-shadow:var(--shadow-lg);animation:rise var(--t-slow) var(--ease);flex-direction:column;display:flex;overflow-y:auto}.fx-modal>*{flex:none}.fx-modal-kicker{font-family:var(--font-mono);font-size:var(--text-label);letter-spacing:var(--track-label);text-transform:uppercase;color:var(--signal)}.fx-modal h2{font-size:var(--text-title)}.fx-modal p{color:var(--ink-2);font-size:var(--text-body);line-height:var(--leading-body)}.fx-modal-actions{gap:var(--s-2);margin-top:var(--s-2);display:flex}.fx-modal-actions>*{flex:1}.fx-auth{min-height:100svh;padding:var(--s-6) var(--gutter);background:var(--bg);place-items:center;display:grid}.fx-auth-card{gap:var(--s-4);width:min(420px,100%);padding:var(--s-7) var(--s-6);border:1px solid var(--line);border-radius:var(--r-2xl);background:var(--surface);box-shadow:var(--shadow-md);flex-direction:column;display:flex}.fx-auth-brand{font-variation-settings:"wdth" 118;letter-spacing:-.045em;font-size:1.375rem;font-weight:800}.fx-auth-brand span{color:var(--accent)}.fx-auth-brand small{margin-top:var(--s-1);font-family:var(--font-mono);font-size:var(--text-label);letter-spacing:var(--track-label);text-transform:uppercase;color:var(--ink-3);font-weight:400;display:block}.fx-auth-card h1{font-size:var(--text-title)}.fx-auth-lead{color:var(--ink-2);font-size:var(--text-body);line-height:var(--leading-body)}.fx-auth-note{color:var(--ink-3);font-size:var(--text-caption);line-height:var(--leading-body)}.fx-auth-form{gap:var(--s-3);flex-direction:column;display:flex}.fx-auth-error{padding:var(--s-3) var(--s-4);border-left:2px solid var(--signal);border-radius:0 var(--r-sm) var(--r-sm) 0;background:var(--signal-wash);color:var(--signal);font-size:var(--text-caption);line-height:var(--leading-body)}.fx-auth-links{gap:var(--s-2) var(--s-5);flex-wrap:wrap;display:flex}.fx-auth-links button{color:var(--accent);font-size:var(--text-caption);text-underline-offset:3px;background:0 0;border:0;padding:0;font-weight:600;text-decoration:underline}.fx-auth-hint{padding:var(--s-4);border:1px solid var(--line);border-radius:var(--r-lg);background:var(--bg-sunken)}.fx-auth-hint>p{margin-bottom:var(--s-2);font-family:var(--font-mono);font-size:var(--text-label);letter-spacing:var(--track-label);text-transform:uppercase;color:var(--ink-3)}.fx-auth-hint ul{gap:var(--s-1);flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.fx-auth-hint button{width:100%;padding:var(--s-2) var(--s-3);border-radius:var(--r-sm);background:var(--surface);text-align:left;transition:border-color var(--t-fast) var(--ease);border:1px solid #0000;flex-direction:column;gap:1px;display:flex}.fx-auth-hint button:hover{border-color:var(--line-strong)}.fx-auth-hint b{font-family:var(--font-mono);font-size:var(--text-caption);font-weight:500}.fx-auth-hint small{color:var(--ink-3);font-size:.6875rem}.fx-card-grid{gap:var(--s-4);display:grid}.program-cover{height:116px;margin:calc(var(--s-6) * -1) calc(var(--s-6) * -1) 0;border-radius:var(--r-2xl) var(--r-2xl) 0 0;background:var(--bg-sunken);position:relative;overflow:hidden}.program-cover svg{width:62%;height:auto;position:absolute;bottom:-104%;right:-6%}.program-cover .arc-done{stroke:var(--accent)}.program-cover .arc-todo{stroke:color-mix(in srgb, var(--ink) 12%, transparent)}.program-cover.tone-coral .arc-done{stroke:var(--live-500)}.program-cover.tone-ink .arc-done{stroke:var(--ink)}.program-cover-label{left:var(--s-6);bottom:var(--s-4);color:var(--ink-3);font-family:var(--font-mono);font-size:var(--text-label);letter-spacing:var(--track-label);position:absolute}.program-plate{gap:var(--s-5);padding:var(--s-6);border:1px solid var(--line);border-radius:var(--r-2xl);background:var(--surface);transition:box-shadow var(--t-base) var(--ease), transform var(--t-base) var(--ease);flex-direction:column;display:flex;position:relative;overflow:hidden}.program-plate:hover{box-shadow:var(--shadow-md);transform:translateY(-2px)}.program-plate-kicker{color:var(--accent);font-family:var(--font-mono);font-size:var(--text-label);letter-spacing:var(--track-label);text-transform:uppercase}.program-plate h2{margin-top:var(--s-3);font-size:var(--text-title);font-variation-settings:"wdth" 116;letter-spacing:-.038em;font-weight:620;line-height:.98}.program-plate-sub{margin-top:var(--s-2);color:var(--ink-2);font-size:var(--text-body);line-height:var(--leading-snug)}.program-plate-figure{justify-content:space-between;align-items:flex-end;gap:var(--s-4);margin-bottom:var(--s-3);display:flex}.program-plate-figure b{font-family:var(--font-mono);font-size:var(--data-xl);font-variant-numeric:tabular-nums;letter-spacing:-.06em;color:var(--ink);font-weight:250;line-height:.8;display:block}.program-plate-figure b i{letter-spacing:0;vertical-align:super;color:var(--accent);font-size:.34em;font-style:normal}.program-plate-figure span{color:var(--ink-3);font-family:var(--font-mono);font-variant-numeric:tabular-nums;text-align:right;padding-bottom:3px;font-size:.6875rem;line-height:1.4}.program-plate-action{justify-content:space-between;align-items:center;gap:var(--s-3);min-height:52px;padding:0 var(--s-5);border-radius:var(--r-md);background:var(--accent);color:var(--on-accent);font-size:var(--text-body);font-variation-settings:"wdth" 106;transition:background var(--t-fast) var(--ease), transform var(--t-fast) var(--ease);border:0;font-weight:650;display:flex}.program-plate-action:hover{background:var(--accent-hover)}.program-plate-action:active{transform:scale(.99)}.program-plate-action:disabled{background:var(--bg-sunken);color:var(--ink-3);cursor:not-allowed}.program-plate-next{margin-top:calc(var(--s-3) * -1);color:var(--ink-3);font-family:var(--font-mono);font-size:.6875rem}.fx-pending-card{align-items:center;gap:var(--s-4);padding:var(--s-4) var(--s-5);border:1px solid var(--accent-line);border-radius:var(--r-lg);background:var(--accent-wash);flex-wrap:wrap;display:flex}.fx-pending-card>div{flex:1;min-width:200px}.fx-pending-kicker{color:var(--accent);font-family:var(--font-mono);font-size:var(--text-label);letter-spacing:var(--track-label);text-transform:uppercase}.fx-pending-card h2{margin-top:var(--s-2);font-size:var(--text-body-lg);font-variation-settings:"wdth" 108}.fx-pending-card>div>p:last-child{margin-top:var(--s-1);color:var(--ink-2);font-size:var(--text-caption);line-height:var(--leading-snug)}.fx-pending-card .fx-ghost-btn{background:var(--surface);flex:none;text-decoration:none}.fx-library-grid{gap:var(--s-2);display:grid}.fx-library-card{align-items:center;gap:var(--s-4);padding:var(--s-4);border:1px solid var(--line);border-radius:var(--r-lg);background:var(--surface);text-align:left;transition:border-color var(--t-fast) var(--ease), transform var(--t-fast) var(--ease);display:flex}.fx-library-card:hover{border-color:var(--line-strong);transform:translate(2px)}.fx-library-count{border-radius:var(--r-md);background:var(--bg-sunken);width:44px;height:44px;color:var(--ink-2);font-family:var(--font-mono);font-size:var(--data-md);font-variant-numeric:tabular-nums;flex:none;place-items:center;display:grid}.fx-library-copy{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.fx-library-copy b{font-size:var(--text-body-lg);font-weight:600}.fx-library-copy small{color:var(--ink-3);font-size:var(--text-caption);line-height:var(--leading-snug)}.fx-library-arrow{color:var(--ink-3)}.fx-library-list{gap:var(--s-2);flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.fx-program-hero{gap:var(--s-4);padding:var(--s-6);border:1px solid var(--line);border-radius:var(--r-2xl);background:var(--surface);color:var(--ink);flex-direction:column;display:flex;position:relative;overflow:hidden}.fx-program-hero>*{position:relative}.fx-hero-top{justify-content:space-between;align-items:center;gap:var(--s-3);font-family:var(--font-mono);font-size:var(--text-label);letter-spacing:var(--track-label);text-transform:uppercase;color:var(--accent);display:flex}.fx-program-hero h2{font-size:var(--text-title);font-variation-settings:"wdth" 125;letter-spacing:-.04em;line-height:.95}.fx-hero-progress{justify-content:space-between;align-items:flex-end;gap:var(--s-3);margin-top:var(--s-2);display:flex}.fx-hero-progress b{font-family:var(--font-mono);font-size:var(--data-hero);font-variant-numeric:tabular-nums;letter-spacing:-.07em;color:var(--ink);font-weight:200;line-height:.78;display:block}.fx-hero-progress b i{letter-spacing:0;vertical-align:super;color:var(--accent);font-size:.3em;font-style:normal}.fx-hero-progress span{margin-top:var(--s-2);color:var(--ink-3);font-family:var(--font-mono);font-size:.75rem;display:block}.fx-cycle-badge{padding:5px var(--s-3);border:1px solid var(--line-strong);border-radius:var(--r-sm);font-family:var(--font-mono);font-size:var(--text-label);letter-spacing:var(--track-label);text-transform:uppercase}.fx-cta-wide{align-items:center;gap:var(--s-4);padding:var(--s-5);border-radius:var(--r-xl);background:var(--accent);color:var(--on-accent);text-align:left;transition:transform var(--t-fast) var(--ease), background var(--t-fast) var(--ease);border:0;display:flex}.fx-cta-wide:hover{background:var(--accent-hover)}.fx-cta-wide:active{transform:scale(.99)}.fx-cta-copy{flex:1;min-width:0}.fx-cta-label{font-size:var(--text-heading);font-variation-settings:"wdth" 112;letter-spacing:-.02em;font-weight:700;display:block}.fx-cta-meta{font-family:var(--font-mono);opacity:.72;margin-top:3px;font-size:.75rem;display:block}.fx-cycle-done{gap:var(--s-3);padding:var(--s-6);border:1px solid var(--accent-line);border-radius:var(--r-xl);background:var(--accent-wash);flex-direction:column;display:flex}.fx-cycle-done b{font-size:var(--text-heading);font-variation-settings:"wdth" 106}.fx-cycle-done p{color:var(--ink-2);font-size:var(--text-caption);line-height:var(--leading-body)}.fx-cycle-done .fx-primary-btn{align-self:flex-start}.fx-mandatory{padding:var(--s-5);border:1px solid var(--line-strong);border-radius:var(--r-xl);background:var(--surface)}.fx-mandatory-kicker{font-family:var(--font-mono);font-size:var(--text-label);letter-spacing:var(--track-label);text-transform:uppercase;color:var(--accent)}.fx-mandatory h3{margin:var(--s-2) 0 var(--s-4);font-size:var(--text-heading)}.fx-mandatory ul{gap:var(--s-3);counter-reset:rule;flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.fx-mandatory li{gap:var(--s-3);color:var(--ink-2);font-size:var(--text-body);line-height:var(--leading-body);counter-increment:rule;display:flex}.fx-mandatory li:before{content:counter(rule, decimal-leading-zero);color:var(--accent);font-family:var(--font-mono);font-size:var(--text-caption);flex:none}.fx-mandatory-note{margin-top:var(--s-4);padding-top:var(--s-3);border-top:1px solid var(--line);color:var(--ink-3);font-size:var(--text-caption)}.fx-schedule{gap:var(--s-2);flex-direction:column;display:flex}.fx-week{border:1px solid var(--line);border-radius:var(--r-lg);background:var(--surface);transition:border-color var(--t-fast) var(--ease);overflow:hidden}.fx-week.is-open{border-color:var(--line-strong)}.fx-week-head{align-items:center;gap:var(--s-3);width:100%;min-height:56px;padding:0 var(--s-4);text-align:left;background:0 0;border:0;display:flex}.fx-week-number{font-size:var(--text-body-lg);flex:1;font-weight:600}.fx-week-meta{font-family:var(--font-mono);font-size:var(--text-label);letter-spacing:var(--track-label);text-transform:uppercase;color:var(--ink-3)}.fx-week-meta.is-current{color:var(--accent)}.fx-week-toggle{color:var(--ink-3);transition:transform var(--t-base) var(--ease)}.fx-week.is-open .fx-week-toggle{transform:rotate(180deg)}.fx-week-body{padding:0 var(--s-5) var(--s-2);flex-direction:column;display:flex}.fx-day{border-top:1px solid var(--line)}.fx-day-head{align-items:center;gap:var(--s-3);width:100%;min-height:60px;padding:var(--s-2) 0;text-align:left;background:0 0;border:0;display:flex}.fx-day-copy{flex:1;min-width:0}.fx-day-copy b{font-size:var(--text-body);font-weight:600;display:block}.fx-day-copy small{color:var(--ink-3);font-family:var(--font-mono);margin-top:2px;font-size:.6875rem;display:block}.fx-day-toggle{color:var(--ink-3);transition:transform var(--t-base) var(--ease)}.fx-day.is-open .fx-day-toggle{transform:rotate(180deg)}.fx-day-index{border-radius:var(--r-sm);background:var(--bg-sunken);width:30px;height:30px;color:var(--ink-3);font-family:var(--font-mono);font-variant-numeric:tabular-nums;flex:none;place-items:center;font-size:.6875rem;display:grid}.fx-day.is-done .fx-day-index{background:var(--accent-wash);color:var(--accent)}.fx-day header>div{flex:1;min-width:0}.fx-day h3{font-size:var(--text-body-lg);font-variation-settings:"wdth" 104}.fx-day header p{color:var(--ink-3);font-size:var(--text-caption);margin-top:2px}.fx-day-done{color:var(--accent);flex:none}.fx-day-exercises{padding:0;padding:0 0 var(--s-4) 42px;flex-direction:column;gap:0;margin:0;list-style:none;display:flex}.fx-day-exercises li{justify-content:space-between;align-items:baseline;gap:var(--s-4);font-size:var(--text-caption);color:var(--ink-2);padding:6px 0;display:flex}.fx-day-exercises b{color:var(--ink-3);font-family:var(--font-mono);font-variant-numeric:tabular-nums;flex:none;font-size:.75rem;font-weight:400}.fx-theory{gap:var(--s-4);flex-direction:column;display:flex}.fx-theory-tabs{gap:var(--s-2);scrollbar-width:none;padding-bottom:2px;display:flex;overflow-x:auto}.fx-theory-tabs::-webkit-scrollbar{display:none}.fx-theory-tabs button{min-height:38px;padding:0 var(--s-4);border:1px solid var(--line-strong);border-radius:var(--r-pill);background:var(--surface);color:var(--ink-2);font-size:var(--text-caption);white-space:nowrap;flex:none;font-weight:600}.fx-theory-tabs button.is-active{background:var(--surface-inverse);color:var(--ink-inverse);border-color:#0000}.fx-theory-body{gap:var(--s-4);padding:var(--s-6);border:1px solid var(--line);border-radius:var(--r-xl);background:var(--surface);flex-direction:column;display:flex}.fx-theory-body h2{font-size:var(--text-title)}.fx-theory-text{max-width:var(--measure);font-size:var(--text-body-lg);color:var(--ink-2);line-height:1.68}.fx-theory-list{gap:var(--s-3);flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.fx-theory-list li{gap:var(--s-3);color:var(--ink-2);font-size:var(--text-body);line-height:var(--leading-body);display:flex}.fx-theory-list li:before{content:"";background:var(--accent);border-radius:1px;flex:none;width:5px;height:5px;margin-top:.65em;transform:rotate(45deg)}.fx-theory-image div,.fx-theory-video div{border-radius:var(--r-md);height:156px;color:var(--ink-3);place-items:center;display:grid}.fx-theory-image div{border:1px solid var(--line);background:repeating-linear-gradient(-45deg, color-mix(in srgb, var(--ink) 4%, transparent) 0 10px, color-mix(in srgb, var(--ink) 7%, transparent) 10px 20px)}.fx-theory-video div{border:1px solid var(--plate-line);background:var(--plate);color:#ffffffe6}.fx-theory-image figcaption,.fx-theory-video figcaption{justify-content:space-between;align-items:baseline;gap:var(--s-3);margin-top:var(--s-2);color:var(--ink-3);font-size:var(--text-caption);display:flex}.fx-theory-video figcaption small{font-family:var(--font-mono);font-variant-numeric:tabular-nums}.fx-theory-link{align-items:center;gap:var(--s-3);padding:var(--s-4);border:1px solid var(--line);border-left:2px solid var(--accent);border-radius:0 var(--r-md) var(--r-md) 0;background:var(--bg-sunken);color:inherit;transition:border-color var(--t-fast) var(--ease);text-decoration:none;display:flex}.fx-theory-link:hover{border-color:var(--line-strong);border-left-color:var(--accent)}.fx-theory-link span{font-size:var(--text-body);flex:1;font-weight:600}.fx-theory-link small{color:var(--ink-3);font-size:var(--text-caption);margin-top:2px;font-weight:400;display:block}.fx-theory-link svg{color:var(--ink-3)}.fx-session{min-height:100svh;padding-bottom:calc(120px + env(safe-area-inset-bottom));background:var(--bg)}.fx-session-header{z-index:var(--z-sticky);align-items:center;gap:var(--s-3);padding:max(var(--s-4), env(safe-area-inset-top)) var(--gutter) var(--s-3);background:color-mix(in srgb, var(--bg) 88%, transparent);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);border-bottom:1px solid var(--line);display:flex;position:sticky;top:0}.fx-session-header>button{border:1px solid var(--line-strong);border-radius:var(--r-md);background:var(--surface);width:40px;height:40px;color:var(--ink);place-items:center;display:grid}.fx-session-header>div{flex:1;min-width:0}.fx-session-header p{font-family:var(--font-mono);font-size:var(--text-label);letter-spacing:var(--track-label);text-transform:uppercase;color:var(--ink-3)}.fx-session-header strong{font-family:var(--font-mono);font-size:var(--data-md);font-variant-numeric:tabular-nums;font-weight:500;display:block}.fx-session-count{color:var(--ink-2);font-family:var(--font-mono);font-size:var(--text-caption);font-variant-numeric:tabular-nums;flex:none}.fx-session-main{padding:var(--s-5) var(--gutter) var(--s-8);max-width:1320px;margin-inline:auto}.workout-layout,.workout-col-list{gap:var(--s-5);flex-direction:column;display:flex}.workout-layout .workout-col-pane,.workout-layout.has-active .workout-col-list{display:none}.workout-layout.has-active .workout-col-pane{display:block}@media (min-width:1024px){.workout-layout,.workout-layout.has-active{align-items:start;gap:var(--s-7);grid-template-columns:minmax(300px,380px) minmax(0,1fr);display:grid}.workout-layout .workout-col-list,.workout-layout.has-active .workout-col-list{display:flex;position:sticky;top:96px}.workout-layout .workout-col-pane,.workout-layout.has-active .workout-col-pane{display:block}.workout-col-pane .fx-exercise-nav .fx-ghost-btn{display:none}.workout-col-pane .fx-exercise-nav{justify-content:flex-end}.workout-col-pane .fx-exercise-nav .fx-primary-btn{flex:none;min-width:220px}}.fx-session-intro>p:first-child{font-family:var(--font-mono);font-size:var(--text-label);letter-spacing:var(--track-label);text-transform:uppercase;color:var(--ink-3)}.fx-session-intro h1{margin:var(--s-2) 0 var(--s-4);font-size:var(--text-title);font-variation-settings:"wdth" 108}.fx-session-progress{align-items:center;gap:var(--s-3);display:flex}.fx-session-progress>span{border-radius:var(--r-pill);background:color-mix(in srgb, var(--ink) 12%, transparent);flex:1;height:4px;overflow:hidden}.fx-session-progress i{background:var(--accent);height:100%;transition:width var(--t-slow) var(--ease);display:block}.fx-session-progress b{font-family:var(--font-mono);font-size:var(--text-caption);font-variant-numeric:tabular-nums;font-weight:500}.fx-session-note{margin-top:var(--s-4);color:var(--ink-3);font-size:var(--text-caption);line-height:var(--leading-body)}.fx-exercise-list{gap:var(--s-2);flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.fx-exercise-row{align-items:center;gap:var(--s-4);width:100%;padding:var(--s-4);border:1px solid var(--line);border-radius:var(--r-lg);background:var(--surface);text-align:left;transition:border-color var(--t-fast) var(--ease), transform var(--t-fast) var(--ease);display:flex}.fx-exercise-row:hover{border-color:var(--line-strong)}.fx-exercise-row:active{transform:scale(.995)}.fx-exercise-row.is-done{border-color:var(--accent-line);background:var(--accent-wash)}.fx-exercise-number{color:var(--ink-3);font-family:var(--font-mono);font-size:var(--text-caption);font-variant-numeric:tabular-nums;flex:none}.fx-exercise-row.is-done .fx-exercise-number{color:var(--accent)}.fx-exercise-copy{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.fx-exercise-copy b{align-items:center;gap:var(--s-2);font-size:var(--text-body-lg);font-weight:600;display:flex}.fx-exercise-copy small{color:var(--ink-3);font-family:var(--font-mono);font-variant-numeric:tabular-nums;font-size:.75rem}.fx-exercise-state{color:var(--ink-3);font-family:var(--font-mono);font-size:var(--text-caption);font-variant-numeric:tabular-nums;flex:none}.fx-swap-badge{border-radius:var(--r-sm);background:var(--accent);color:var(--on-accent);font-family:var(--font-mono);letter-spacing:.08em;text-transform:uppercase;padding:2px 6px;font-size:.5625rem;font-style:normal;font-weight:500}.fx-finish-btn{justify-content:space-between;align-items:center;gap:var(--s-3);min-height:56px;padding:0 var(--s-5);border-radius:var(--r-lg);background:var(--surface-inverse);color:var(--ink-inverse);font-size:var(--text-body-lg);font-variation-settings:"wdth" 104;border:0;font-weight:650;display:flex}.fx-finish-btn:active{transform:scale(.99)}.fx-finish-note{margin-top:calc(var(--s-3) * -1);color:var(--ink-3);font-size:var(--text-caption);text-align:center}.fx-exercise-page{gap:var(--s-5);flex-direction:column;display:flex}.fx-exercise-kicker{font-family:var(--font-mono);font-size:var(--text-label);letter-spacing:var(--track-label);text-transform:uppercase;color:var(--ink-3)}.fx-exercise-page h1{font-size:var(--text-title);font-variation-settings:"wdth" 108}.fx-exercise-summary{color:var(--ink-2);font-size:var(--text-body-lg);line-height:var(--leading-body)}.fx-keypoints{gap:var(--s-2);flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.fx-keypoints li{gap:var(--s-3);color:var(--ink-2);font-size:var(--text-body);line-height:var(--leading-snug);display:flex}.fx-keypoints li:before{content:"";background:var(--accent);border-radius:1px;flex:none;width:5px;height:5px;margin-top:.5em;transform:rotate(45deg)}.fx-prescription{border:1px solid var(--line-strong);border-radius:var(--r-md);background:var(--surface);grid-template-columns:repeat(4,1fr);display:grid;overflow:hidden}.fx-prescription>div{padding:var(--s-3) var(--s-2);border-left:1px solid var(--line);text-align:center}.fx-prescription>div:first-child{border-left:0}.fx-prescription p{font-family:var(--font-mono);letter-spacing:.1em;text-transform:uppercase;color:var(--ink-3);font-size:.5625rem}.fx-prescription b{margin-top:var(--s-1);font-family:var(--font-mono);font-size:var(--data-md);font-variant-numeric:tabular-nums;font-weight:500;display:block}.fx-warmup{gap:var(--s-3);padding:var(--s-4);border-radius:var(--r-md);background:var(--bg-sunken);display:flex}.fx-warmup>svg{color:var(--accent);flex:none;margin-top:2px}.fx-warmup b{font-size:var(--text-body)}.fx-warmup p{margin:var(--s-1) 0 var(--s-2);color:var(--ink-2);font-size:var(--text-caption);line-height:var(--leading-body)}.fx-warmup small{color:var(--ink-3);font-size:.75rem}.fx-previous{padding:var(--s-4);border:1px dashed var(--line-strong);border-radius:var(--r-md)}.fx-previous>p{margin-bottom:var(--s-3);font-family:var(--font-mono);font-size:var(--text-label);letter-spacing:var(--track-label);text-transform:uppercase;color:var(--ink-3)}.fx-previous ul{gap:var(--s-2);flex-wrap:wrap;margin:0;padding:0;list-style:none;display:flex}.fx-previous li{align-items:center;gap:var(--s-2);padding:var(--s-2) var(--s-3);border-radius:var(--r-sm);background:var(--bg-sunken);font-family:var(--font-mono);font-size:var(--text-caption);font-variant-numeric:tabular-nums;display:flex}.fx-previous li span{color:var(--ink-3);font-size:.6875rem}.fx-sets{gap:var(--s-2);flex-direction:column;display:flex}.fx-sets-head{justify-content:space-between;align-items:baseline;gap:var(--s-3);display:flex}.fx-sets-head p{font-family:var(--font-mono);font-size:var(--text-label);letter-spacing:var(--track-label);text-transform:uppercase;color:var(--ink-3)}.set{border:1px solid var(--line);border-radius:var(--r-md);background:var(--surface);transition:border-color var(--t-base) var(--ease), background var(--t-base) var(--ease);position:relative;overflow:hidden}.set.is-done{border-color:var(--accent-line);background:var(--accent-wash)}.set.is-done:before{content:"";background:var(--accent);width:3px;position:absolute;top:0;bottom:0;left:0}.set.is-active{border-color:var(--ink-3);background:var(--surface-raised);box-shadow:var(--shadow-md)}.set-compact{align-items:center;gap:var(--s-3);width:100%;min-height:52px;padding:0 var(--s-4);text-align:left;background:0 0;border:0;display:flex}.set-index{min-width:22px;color:var(--ink-3);font-family:var(--font-mono);font-size:var(--text-caption);font-variant-numeric:tabular-nums;flex:none}.set.is-done .set-index{color:var(--accent)}.set-values{font-family:var(--font-mono);font-size:var(--data-md);font-variant-numeric:tabular-nums;letter-spacing:-.01em;flex:1}.set-values em{color:var(--ink-3);font-size:var(--text-caption);font-style:normal}.set.is-pending .set-values{color:var(--ink-3)}.set-mark{border-radius:var(--r-sm);background:var(--accent);width:26px;height:26px;color:var(--on-accent);flex:none;place-items:center;display:grid}.set-pr{border-radius:var(--r-sm);background:var(--accent);color:var(--on-accent);font-family:var(--font-mono);letter-spacing:.08em;text-transform:uppercase;align-items:center;gap:3px;padding:2px 6px;font-size:.5625rem;font-weight:500;display:inline-flex}.set-active{gap:var(--s-4);padding:var(--s-4);flex-direction:column;display:flex}.set-active-head{justify-content:space-between;align-items:baseline;gap:var(--s-3);display:flex}.set-active-head b{font-family:var(--font-mono);font-size:var(--text-caption);letter-spacing:var(--track-label);text-transform:uppercase;font-weight:500}.set-active-head span{color:var(--ink-3);font-family:var(--font-mono);font-size:var(--text-caption);font-variant-numeric:tabular-nums}.stepper-row{gap:var(--s-3);grid-template-columns:1fr 1fr;display:grid}.stepper{gap:var(--s-2);flex-direction:column;display:flex}.stepper>span{font-family:var(--font-mono);letter-spacing:.1em;text-transform:uppercase;color:var(--ink-3);font-size:.5625rem}.stepper-controls{border:1px solid var(--line-strong);border-radius:var(--r-md);background:var(--bg-sunken);grid-template-columns:40px minmax(0,1fr) 40px;align-items:stretch;display:grid;overflow:hidden}.stepper-controls button{color:var(--ink-2);transition:background var(--t-fast) var(--ease), color var(--t-fast) var(--ease);background:0 0;border:0;place-items:center;display:grid}.stepper-controls button:hover{background:color-mix(in srgb, var(--ink) 6%, transparent);color:var(--ink)}.stepper-controls button:active{background:var(--accent-wash);color:var(--accent)}.stepper-controls button:disabled{opacity:.3;cursor:not-allowed}.stepper-controls input{width:100%;min-height:52px;padding:0 var(--s-1);border:0;border-left:1px solid var(--line);border-right:1px solid var(--line);background:var(--surface-raised);color:var(--ink);font-family:var(--font-mono);font-size:var(--data-md);font-variant-numeric:tabular-nums;letter-spacing:-.02em;text-align:center;-moz-appearance:textfield;outline:none}.stepper-controls input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.stepper-controls input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.stepper-controls input:focus{background:var(--accent-wash)}.set-active .set-commit{grid-column:1/-1}.set-commit{justify-content:center;align-items:center;gap:var(--s-2);border-radius:var(--r-md);background:var(--accent);min-height:52px;color:var(--on-accent);font-size:var(--text-body);font-variation-settings:"wdth" 104;transition:transform var(--t-fast) var(--ease), background var(--t-fast) var(--ease);border:0;font-weight:650;display:flex}.set-commit:hover{background:var(--accent-hover)}.set-commit:active{transform:scale(.985)}.set-undo{border-radius:var(--r-sm);width:34px;height:34px;color:var(--ink-3);background:0 0;border:0;flex:none;place-items:center;display:grid}.set-undo:hover{color:var(--signal)}.fx-rest-btn{justify-content:center;align-items:center;gap:var(--s-2);min-height:var(--tap);border:1px solid var(--line-strong);border-radius:var(--r-md);background:var(--surface);color:var(--ink);font-size:var(--text-caption);font-weight:600;display:flex}.fx-rest{left:var(--s-3);right:var(--s-3);bottom:calc(var(--s-3) + env(safe-area-inset-bottom));z-index:var(--z-rest);align-items:center;gap:var(--s-4);padding:var(--s-4);border-radius:var(--r-lg);background:var(--surface-inverse);color:var(--ink-inverse);box-shadow:var(--shadow-lg);animation:toast-in var(--t-slow) var(--ease-spring);display:flex;position:fixed;overflow:hidden}.fx-rest-play{border-radius:var(--r-md);background:color-mix(in srgb, var(--ink-inverse) 14%, transparent);width:44px;height:44px;color:inherit;border:0;flex:none;place-items:center;display:grid}.fx-rest-copy{flex:1;min-width:0}.fx-rest-copy p{font-family:var(--font-mono);font-size:var(--text-label);letter-spacing:var(--track-label);text-transform:uppercase;color:color-mix(in srgb, var(--ink-inverse) 60%, transparent)}.fx-rest-copy strong{font-family:var(--font-mono);font-variant-numeric:tabular-nums;letter-spacing:-.03em;font-size:1.75rem;font-weight:400;line-height:1.1;display:block}.fx-rest-actions{gap:var(--s-1);flex-direction:column;display:flex}.fx-rest-actions button{min-height:30px;padding:0 var(--s-3);border:1px solid color-mix(in srgb, var(--ink-inverse) 26%, transparent);border-radius:var(--r-sm);color:inherit;font-family:var(--font-mono);background:0 0;font-size:.6875rem}.fx-rest-track{background:color-mix(in srgb, var(--ink-inverse) 16%, transparent);height:3px;position:absolute;bottom:0;left:0;right:0}.fx-rest-track i{background:var(--live-400);height:100%;transition:width 1s linear;display:block}.fx-rest.is-done .fx-rest-track i{background:var(--signal-400)}.fx-summary{gap:var(--s-5);padding:var(--s-6);border:1px solid var(--accent-line);border-radius:var(--r-xl);background:var(--surface);flex-direction:column;display:flex}.fx-summary-kicker{font-family:var(--font-mono);font-size:var(--text-label);letter-spacing:var(--track-label);text-transform:uppercase;color:var(--accent)}.fx-summary h1{font-size:var(--text-title)}.fx-summary-grid{border-top:1px solid var(--line);border-bottom:1px solid var(--line);grid-template-columns:repeat(3,1fr);display:grid}.fx-summary-grid>div{padding:var(--s-4) var(--s-2);border-left:1px solid var(--line);text-align:center}.fx-summary-grid>div:first-child{border-left:0}.fx-summary-grid p{font-family:var(--font-mono);letter-spacing:.1em;text-transform:uppercase;color:var(--ink-3);font-size:.5625rem}.fx-summary-grid b{margin-top:var(--s-2);font-family:var(--font-mono);font-size:var(--data-lg);font-variant-numeric:tabular-nums;letter-spacing:-.02em;font-weight:400;display:block}.fx-summary-records{gap:var(--s-2);flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.fx-summary-records li{align-items:center;gap:var(--s-3);padding:var(--s-3) var(--s-4);border-radius:var(--r-md);background:var(--accent-wash);font-size:var(--text-caption);display:flex}.fx-summary-records svg{color:var(--accent)}.fx-summary-records b{flex:1;font-weight:600}.fx-summary-records span{color:var(--ink-2);font-family:var(--font-mono);font-variant-numeric:tabular-nums}.fx-alternatives>button{justify-content:space-between;align-items:center;gap:var(--s-3);width:100%;min-height:var(--tap);padding:0 var(--s-4);border:1px solid var(--line-strong);border-radius:var(--r-md);background:var(--surface);color:var(--ink);font-size:var(--text-caption);font-weight:600;display:flex}.fx-alternatives>button svg{color:var(--ink-3);transition:transform var(--t-base) var(--ease)}.fx-alternatives>button[aria-expanded=true] svg{transform:rotate(180deg)}.fx-alt-options{gap:var(--s-2);margin:var(--s-2) 0 0;flex-direction:column;padding:0;list-style:none;display:flex}.fx-alt-options li{position:relative}.fx-alt-options button{justify-content:space-between;align-items:center;gap:var(--s-3);width:100%;padding:var(--s-3) var(--s-4);border:1px solid var(--line);border-radius:var(--r-md);background:var(--surface);text-align:left;display:flex}.fx-alt-options button.is-active{border-color:var(--accent-line);background:var(--accent-wash)}.fx-alt-options button>span{flex-direction:column;gap:2px;min-width:0;display:flex}.fx-alt-options b{font-size:var(--text-body);font-weight:600}.fx-alt-options small{color:var(--ink-3);font-size:var(--text-caption);line-height:var(--leading-snug)}.fx-alt-options svg{color:var(--accent)}.fx-alt-origin{top:-8px;right:var(--s-3);border-radius:var(--r-sm);background:var(--surface-inverse);color:var(--ink-inverse);font-family:var(--font-mono);letter-spacing:.06em;text-transform:uppercase;padding:2px 6px;font-size:.5625rem;position:absolute}.fx-alt-note{margin-top:var(--s-2);color:var(--ink-3);font-size:.75rem;line-height:var(--leading-body)}.fx-exercise-nav{gap:var(--s-2);display:flex}.fx-exercise-nav>*{flex:1}.fx-player{border:1px solid var(--line);border-radius:var(--r-lg);background:var(--surface);flex-direction:column;display:flex;overflow:hidden}.fx-player-stage{aspect-ratio:16/9;background:var(--night-900);-webkit-user-select:none;user-select:none;position:relative;overflow:hidden}.fx-player-stage video{object-fit:cover;width:100%;height:100%}.fx-player-placeholder{background:radial-gradient(circle at 50% 40%, var(--night-700), var(--night-900));position:absolute;inset:0}.fx-figure{border-radius:var(--r-pill);background:color-mix(in srgb, var(--ultra-400) 42%, transparent);position:absolute}.fx-figure-a{width:14%;height:48%;top:26%;left:24%;transform:rotate(9deg)}.fx-figure-b{background:color-mix(in srgb, var(--ultra-300) 26%, transparent);width:11%;height:62%;top:18%;left:45%;transform:rotate(-6deg)}.fx-figure-c{background:#ffffff1f;width:13%;height:40%;top:32%;left:63%;transform:rotate(14deg)}.fx-player-placeholder.is-playing .fx-figure{animation:2.6s ease-in-out infinite alternate sway}.fx-player-placeholder.is-playing .fx-figure-b{animation-delay:.3s}.fx-player-placeholder.is-playing .fx-figure-c{animation-delay:.6s}@keyframes sway{0%{transform:translateY(0)rotate(6deg)}to{transform:translateY(-8%)rotate(-6deg)}}.fx-watermark{pointer-events:none;opacity:.14;flex-direction:column;justify-content:space-around;align-items:center;display:flex;position:absolute;inset:0}.fx-watermark span{color:#fff;font-family:var(--font-mono);letter-spacing:.1em;font-size:.6875rem;transform:rotate(-16deg)}.fx-play-overlay{background:color-mix(in srgb, var(--night-900) 26%, transparent);transition:opacity var(--t-base) var(--ease);border:0;place-items:center;display:grid;position:absolute;inset:0}.fx-play-overlay.is-hidden{opacity:0}.fx-play-overlay i{border-radius:var(--r-pill);width:58px;height:58px;color:var(--night-900);background:#fffffff0;place-items:center;font-style:normal;display:grid}.fx-demo-badge{left:var(--s-3);bottom:var(--s-3);padding:4px var(--s-2);border-radius:var(--r-sm);background:color-mix(in srgb, var(--night-900) 70%, transparent);color:#fffc;font-family:var(--font-mono);font-size:.625rem;position:absolute}.fx-resume{left:var(--s-3);right:var(--s-3);top:var(--s-3);justify-content:space-between;align-items:center;gap:var(--s-3);padding:var(--s-3);border-radius:var(--r-md);background:var(--surface-raised);box-shadow:var(--shadow-md);display:flex;position:absolute}.fx-resume p{font-size:var(--text-caption);font-weight:600}.fx-resume div{gap:var(--s-2);display:flex}.fx-resume button{min-height:32px;padding:0 var(--s-3);border:1px solid var(--line-strong);border-radius:var(--r-sm);background:var(--surface);font-size:.75rem;font-weight:600}.fx-resume button:first-child{background:var(--surface-inverse);color:var(--ink-inverse);border-color:#0000}.fx-player-bar{align-items:center;gap:var(--s-3);padding:var(--s-3) var(--s-4);border-bottom:1px solid var(--line);display:flex}.fx-bar-play{border-radius:var(--r-sm);background:var(--surface-inverse);width:36px;height:36px;color:var(--ink-inverse);border:0;flex:none;place-items:center;display:grid}.fx-time{color:var(--ink-3);font-family:var(--font-mono);font-variant-numeric:tabular-nums;font-size:.75rem}.fx-track{border-radius:var(--r-pill);background:color-mix(in srgb, var(--ink) 14%, transparent);cursor:pointer;flex:1;height:4px;position:relative}.fx-track i{border-radius:var(--r-pill);background:var(--accent);height:100%;display:block}.fx-track b{background:var(--ink-3);border-radius:1px;width:2px;height:10px;position:absolute;top:-3px}.fx-speed{flex:none;position:relative}.fx-speed>button{min-width:46px;min-height:32px;padding:0 var(--s-2);border:1px solid var(--line-strong);border-radius:var(--r-sm);background:var(--surface);font-family:var(--font-mono);font-size:.75rem}.fx-speed ul{z-index:10;padding:var(--s-1);border:1px solid var(--line);border-radius:var(--r-md);background:var(--surface-raised);box-shadow:var(--shadow-md);margin:0;list-style:none;position:absolute;bottom:calc(100% + 6px);right:0}.fx-speed ul button{border-radius:var(--r-sm);width:100%;min-width:66px;min-height:36px;font-family:var(--font-mono);background:0 0;border:0;font-size:.8125rem}.fx-speed ul button.is-active{background:var(--accent-wash);color:var(--accent)}.fx-chapters{padding:var(--s-3) var(--s-4) var(--s-4)}.fx-chapters-title{margin-bottom:var(--s-2);font-family:var(--font-mono);font-size:var(--text-label);letter-spacing:var(--track-label);text-transform:uppercase;color:var(--ink-3)}.fx-chapters ul{flex-direction:column;gap:2px;margin:0;padding:0;list-style:none;display:flex}.fx-chapters button{align-items:center;gap:var(--s-3);width:100%;min-height:38px;padding:0 var(--s-2);border-radius:var(--r-sm);font-size:var(--text-caption);text-align:left;background:0 0;border:0;display:flex}.fx-chapters button:hover{background:var(--bg-sunken)}.fx-chapters button.is-active{background:var(--accent-wash);color:var(--accent)}.fx-chapters button span{font-family:var(--font-mono);font-variant-numeric:tabular-nums;color:var(--ink-3);flex:none;font-size:.75rem}.fx-chapters button.is-active span{color:var(--accent)}.fx-protection{align-items:center;gap:var(--s-2);padding:var(--s-3) var(--s-4);border-top:1px solid var(--line);background:var(--bg-sunken);color:var(--ink-3);font-size:.75rem;display:flex}.fx-guide-grid{gap:var(--s-3);display:grid}.fx-guide-card{gap:var(--s-4);padding:var(--s-4);border:1px solid var(--line);border-radius:var(--r-lg);background:var(--surface);transition:border-color var(--t-fast) var(--ease);display:flex}.fx-guide-card:hover{border-color:var(--line-strong)}.fx-guide-cover{border-radius:var(--r-sm);border:1px solid var(--accent-line);background:var(--accent-wash);width:64px;height:88px;color:var(--accent);font-family:var(--font-mono);letter-spacing:.1em;flex:none;place-items:center;font-size:.6875rem;display:grid;position:relative}.fx-guide-cover i{background:linear-gradient(225deg, var(--surface) 50%, transparent 50%);width:16px;height:16px;position:absolute;top:0;right:0}.fx-guide-body{gap:var(--s-2);flex-direction:column;flex:1;min-width:0;display:flex}.fx-guide-body h2{font-size:var(--text-body-lg);font-variation-settings:"wdth" 104}.fx-guide-body>p{color:var(--ink-3);font-size:var(--text-caption);line-height:var(--leading-snug)}.fx-guide-meta{gap:var(--s-3);color:var(--ink-3);font-family:var(--font-mono);flex-wrap:wrap;font-size:.6875rem;display:flex}.fx-guide-progress{gap:var(--s-2);flex-direction:column;display:flex}.fx-guide-progress small{color:var(--ink-3);font-size:.75rem}.fx-guide-card .fx-primary-btn{min-height:42px;font-size:var(--text-caption)}.fx-reader-view{-webkit-user-select:none;user-select:none}.fx-resume-bar{justify-content:space-between;align-items:center;gap:var(--s-3);padding:var(--s-3) var(--s-4);border:1px solid var(--accent-line);border-radius:var(--r-md);background:var(--accent-wash);flex-wrap:wrap;display:flex}.fx-resume-bar p{font-size:var(--text-caption);font-weight:600}.fx-resume-bar div{gap:var(--s-2);display:flex}.fx-resume-bar button{min-height:36px;padding:0 var(--s-3);border:1px solid var(--line-strong);border-radius:var(--r-sm);background:var(--surface);font-size:var(--text-caption);font-weight:600}.fx-resume-bar button:first-child{background:var(--surface-inverse);color:var(--ink-inverse);border-color:#0000}.fx-reader-toolbar{z-index:var(--z-sticky);justify-content:space-between;align-items:center;gap:var(--s-3);padding:var(--s-2) var(--s-3);border:1px solid var(--line);border-radius:var(--r-md);background:color-mix(in srgb, var(--surface) 92%, transparent);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);display:flex;position:sticky;top:64px}.fx-reader-toolbar>button{border:1px solid var(--line-strong);border-radius:var(--r-sm);background:var(--surface);width:40px;height:40px;color:var(--ink);place-items:center;display:grid}.fx-reader-toolbar>button:disabled{opacity:.35;cursor:not-allowed}.fx-reader-toolbar>span{color:var(--ink-2);font-family:var(--font-mono);font-size:var(--text-caption);font-variant-numeric:tabular-nums}.fx-reader-zoom{align-items:center;gap:var(--s-1);display:flex}.fx-reader-zoom button{border:1px solid var(--line);border-radius:var(--r-sm);background:var(--surface);width:32px;height:32px;color:var(--ink-2);place-items:center;display:grid}.fx-reader-zoom b{min-width:44px;color:var(--ink-3);font-family:var(--font-mono);font-variant-numeric:tabular-nums;text-align:center;font-size:.6875rem;font-weight:400}.fx-pdf-stage{min-height:400px;padding:var(--s-4);border:1px solid var(--line);border-radius:var(--r-md);background:var(--bg-sunken);place-items:center;display:grid;position:relative;overflow:auto}.fx-pdf-stage canvas{box-shadow:var(--shadow-md);border-radius:2px;max-width:100%}.fx-pdf-stage canvas.is-hidden{display:none}.fx-pdf-loading{color:var(--ink-3);font-size:var(--text-caption);text-align:center}.fx-pdf-watermark{right:var(--s-5);bottom:var(--s-4);color:color-mix(in srgb, var(--ink) 22%, transparent);font-family:var(--font-mono);pointer-events:none;font-size:.625rem;position:absolute;transform:rotate(-8deg)}.fx-reader-pager{flex-wrap:wrap;gap:4px;display:flex}.fx-reader-pager button{border:1px solid var(--line);border-radius:var(--r-sm);background:var(--surface);min-width:32px;min-height:32px;color:var(--ink-3);font-family:var(--font-mono);font-variant-numeric:tabular-nums;font-size:.6875rem}.fx-reader-pager button.is-active{background:var(--accent);color:var(--on-accent);border-color:#0000}.fx-faq-category,.fx-faq-list{gap:var(--s-2);flex-direction:column;display:flex}.fx-faq-item{border:1px solid var(--line);border-radius:var(--r-md);background:var(--surface);transition:border-color var(--t-fast) var(--ease);overflow:hidden}.fx-faq-item.is-open{border-color:var(--line-strong)}.fx-faq-item>button{align-items:center;gap:var(--s-4);width:100%;min-height:54px;padding:var(--s-3) var(--s-4);text-align:left;background:0 0;border:0;display:flex}.fx-faq-item>button span{font-size:var(--text-body);font-weight:600;line-height:var(--leading-snug);flex:1}.fx-faq-item>button svg{color:var(--ink-3);transition:transform var(--t-base) var(--ease)}.fx-faq-item.is-open>button svg{transform:rotate(180deg)}.fx-faq-item>p{padding:0 var(--s-4) var(--s-4);color:var(--ink-2);font-size:var(--text-body);line-height:var(--leading-body);max-width:var(--measure)}.fx-support-cta{align-items:center;gap:var(--s-4);padding:var(--s-5);border-radius:var(--r-xl);background:var(--surface-inverse);color:var(--ink-inverse);text-decoration:none;display:flex}.fx-support-cta span{flex:1}.fx-support-cta b{font-size:var(--text-body-lg);font-variation-settings:"wdth" 104;font-weight:650;display:block}.fx-support-cta small{color:color-mix(in srgb, var(--ink-inverse) 62%, transparent);font-size:var(--text-caption);margin-top:2px;display:block}.metrics-strip{border:1px solid var(--line);border-radius:var(--r-lg);background:var(--surface);grid-template-columns:repeat(3,1fr);display:grid;overflow:hidden}.metrics-strip>div{padding:var(--s-5) var(--s-3);border-left:1px solid var(--line);text-align:center}.metrics-strip>div:first-child{border-left:0}.metrics-strip strong{font-family:var(--font-mono);font-size:var(--data-xl);font-variant-numeric:tabular-nums;letter-spacing:-.05em;font-weight:200;line-height:.9;display:block}.metrics-strip span{margin-top:var(--s-1);color:var(--ink-3);font-size:.6875rem;line-height:1.35;display:block}.fx-history{gap:var(--s-3);flex-direction:column;display:flex}.fx-history-block{padding:var(--s-4);border:1px solid var(--line);border-radius:var(--r-lg);background:var(--surface)}.fx-history-block header{justify-content:space-between;align-items:flex-start;gap:var(--s-3);margin-bottom:var(--s-3);padding-bottom:var(--s-3);border-bottom:1px solid var(--line);display:flex}.fx-history-block header p{font-family:var(--font-mono);font-size:var(--text-label);letter-spacing:var(--track-label);text-transform:uppercase;color:var(--ink-3)}.fx-history-block header h3{font-size:var(--text-body-lg);font-variation-settings:"wdth" 104;margin-top:2px}.fx-history-block header>span{color:var(--ink-3);font-family:var(--font-mono);flex:none;font-size:.6875rem}.fx-history-table{border-collapse:collapse;width:100%;font-size:var(--text-caption)}.fx-history-table caption{margin-bottom:var(--s-2);font-family:var(--font-mono);font-size:var(--text-label);letter-spacing:var(--track-label);text-transform:uppercase;color:var(--ink-3);text-align:left}.fx-history-table th,.fx-history-table td{padding:var(--s-2) var(--s-3);border-bottom:1px solid var(--line);text-align:left;white-space:nowrap}.fx-history-table thead th{font-family:var(--font-mono);font-size:var(--text-label);letter-spacing:var(--track-label);text-transform:uppercase;color:var(--ink-3);font-weight:500}.fx-history-table tbody th{font-size:var(--text-caption);vertical-align:top;white-space:normal;min-width:130px;font-weight:600}.fx-history-table td{color:var(--ink-2);font-family:var(--font-mono);font-variant-numeric:tabular-nums}.fx-history-table tbody tr:last-child th,.fx-history-table tbody tr:last-child td{border-bottom:0}.weight-card{padding:var(--s-5);border:1px solid var(--line);border-radius:var(--r-xl);background:var(--surface)}.weight-card-head{justify-content:space-between;align-items:flex-end;gap:var(--s-3);margin-bottom:var(--s-5);display:flex}.weight-card-head p{font-family:var(--font-mono);font-size:var(--text-label);letter-spacing:var(--track-label);text-transform:uppercase;color:var(--ink-3)}.weight-card-head strong{margin-top:var(--s-1);font-family:var(--font-mono);font-size:var(--data-xl);font-variant-numeric:tabular-nums;letter-spacing:-.04em;font-weight:400;line-height:1;display:block}.weight-card-head small{font-size:var(--text-body);color:var(--ink-3)}.weight-card-head>span{padding:4px var(--s-3);border-radius:var(--r-sm);font-family:var(--font-mono);font-size:.6875rem}.weight-card-head .positive{background:var(--accent-wash);color:var(--accent)}.weight-card-head .negative{background:var(--signal-wash);color:var(--signal)}.weight-chart{height:148px;position:relative}.chart-grid{flex-direction:column;justify-content:space-between;display:flex;position:absolute;inset:0}.chart-grid i{background:var(--line);height:1px;display:block}.chart-bars{align-items:flex-end;gap:var(--s-2);height:100%;display:flex;position:relative}.chart-column{flex-direction:column;flex:1;justify-content:flex-end;align-items:center;height:100%;display:flex}.chart-column>span{background:color-mix(in srgb, var(--accent) 22%, transparent);width:100%;max-width:26px;transition:height var(--t-slow) var(--ease);border-radius:2px 2px 0 0;position:relative}.chart-column>span i{background:var(--accent);height:2px;position:absolute;top:0;left:0;right:0}.chart-column small{margin-top:var(--s-2);color:var(--ink-3);font-family:var(--font-mono);white-space:nowrap;font-size:.625rem}.body-measurements{gap:var(--s-3);flex-direction:column;display:flex}.measurement-grid{border:1px solid var(--line);border-radius:var(--r-lg);background:var(--surface);grid-template-columns:repeat(3,1fr);display:grid;overflow:hidden}.measurement-grid>div{padding:var(--s-4) var(--s-2);border-left:1px solid var(--line);text-align:center}.measurement-grid>div:first-child{border-left:0}.measurement-grid span{font-family:var(--font-mono);letter-spacing:.1em;text-transform:uppercase;color:var(--ink-3);font-size:.5625rem}.measurement-grid strong{margin-top:var(--s-2);font-family:var(--font-mono);font-size:var(--data-md);font-variant-numeric:tabular-nums;font-weight:500;display:block}.measurement-grid small{color:var(--ink-3);font-size:.6875rem}.outline-button{justify-content:center;align-items:center;gap:var(--s-2);min-height:44px;padding:0 var(--s-4);border:1px solid var(--line-strong);border-radius:var(--r-md);background:var(--surface);color:var(--ink);font-size:var(--text-caption);font-weight:600;display:inline-flex}.round-add{border:1px solid var(--line-strong);border-radius:var(--r-md);background:var(--surface);width:44px;height:44px;color:var(--ink);place-items:center;display:grid}.measurement-fields{gap:var(--s-3);margin-bottom:var(--s-5);flex-direction:column;display:flex}.measurement-field{gap:var(--s-2);flex-direction:column;display:flex}.measurement-field>span{font-family:var(--font-mono);font-size:var(--text-label);letter-spacing:var(--track-label);text-transform:uppercase;color:var(--ink-3)}.measurement-field>span i{color:var(--signal);font-style:normal}.measurement-field div{align-items:center;display:flex;position:relative}.measurement-field input{width:100%;min-height:var(--tap);padding:0 var(--s-9) 0 var(--s-4);border:1px solid var(--line-strong);border-radius:var(--r-md);background:var(--surface-raised);color:var(--ink);font-family:var(--font-mono);font-size:var(--text-body-lg);font-variant-numeric:tabular-nums}.measurement-field input:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-wash);outline:none}.measurement-field small{right:var(--s-4);color:var(--ink-3);font-family:var(--font-mono);font-size:var(--text-caption);pointer-events:none;position:absolute}.profile-identity{align-items:center;gap:var(--s-4);display:flex}.profile-avatar{border-radius:var(--r-lg);background:var(--surface-inverse);width:56px;height:56px;color:var(--ink-inverse);font-size:var(--text-heading);font-variation-settings:"wdth" 112;place-items:center;font-weight:700;display:grid}.profile-identity h2{font-size:var(--text-heading)}.profile-identity p{color:var(--ink-3);font-size:var(--text-caption);margin-top:2px}.fx-menu{gap:var(--s-2);flex-direction:column;display:flex}.fx-menu button,.fx-menu a{align-items:center;gap:var(--s-3);min-height:56px;padding:0 var(--s-4);border:1px solid var(--line);border-radius:var(--r-md);background:var(--surface);color:inherit;font-size:var(--text-body);transition:border-color var(--t-fast) var(--ease);font-weight:600;text-decoration:none;display:flex}.fx-menu button:hover,.fx-menu a:hover{border-color:var(--line-strong)}.fx-menu button>svg:first-child,.fx-menu a>svg:first-child{color:var(--ink-3)}.fx-menu span{flex:1}.fx-menu i{color:var(--ink-3);font-size:var(--text-caption);font-style:normal;font-weight:400}.notification-row{align-items:center;gap:var(--s-3);min-height:56px;padding:0 var(--s-4);border:1px solid var(--line);border-radius:var(--r-md);background:var(--surface);cursor:pointer;display:flex}.notification-row>span{flex:1}.notification-row b{font-size:var(--text-body);font-weight:600;display:block}.notification-row small{color:var(--ink-3);font-size:var(--text-caption)}.notification-row input{width:20px;height:20px;accent-color:var(--accent)}.fx-admin-entry{gap:var(--s-3);padding:var(--s-5);border:1px solid var(--line);border-radius:var(--r-xl);background:var(--surface);flex-direction:column;display:flex}.fx-admin-entry>p:first-child{font-family:var(--font-mono);font-size:var(--text-label);letter-spacing:var(--track-label);text-transform:uppercase;color:var(--ink-3)}.fx-admin-entry h3{font-size:var(--text-heading)}.fx-admin-entry .fx-primary-btn{align-self:flex-start}.fx-purchase-list{gap:var(--s-2);flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.fx-purchase-list li{justify-content:space-between;align-items:center;gap:var(--s-3);padding:var(--s-3) var(--s-4);border:1px solid var(--line);border-radius:var(--r-md);background:var(--surface);display:flex}.fx-purchase-list b{font-size:var(--text-body);font-weight:600;display:block}.fx-purchase-list small{color:var(--ink-3);font-family:var(--font-mono);letter-spacing:.04em;text-transform:uppercase;font-size:.6875rem}.fx-purchase-list i{color:var(--ink-3);font-family:var(--font-mono);flex:none;font-size:.6875rem;font-style:normal}.fx-logout{align-self:flex-start}.app-version{color:var(--ink-3);font-family:var(--font-mono);letter-spacing:.14em;text-transform:uppercase;font-size:.625rem}@media (min-width:680px){.fx-card-grid,.fx-guide-grid,.fx-library-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.fx-meta-row{grid-template-columns:repeat(4,1fr)}.stepper-row{grid-template-columns:1fr 1fr auto;align-items:end}.set-active .set-commit{min-width:168px}}@media (min-width:900px){.fx-session-header{padding-inline:var(--gutter)}}@media (min-width:1000px){.page-head p{max-width:52ch}.metrics-strip{max-width:680px}.metrics-strip>div{padding:var(--s-4) var(--s-5);text-align:left}.fx-history{align-items:start;gap:var(--s-4);grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.weight-card,.body-measurements{max-width:760px}.fx-program-hero{column-gap:var(--s-8);grid-template-columns:minmax(0,1fr) minmax(0,1.1fr);align-items:start;display:grid}.fx-program-hero .fx-hero-top{grid-column:1/-1}.fx-program-hero h2{grid-column:1}.fx-program-hero .fx-chip-row{grid-area:2/2/span 2;justify-content:flex-end;align-self:end}.fx-hero-progress{grid-column:1;margin-top:0}.fx-program-hero .fx-progress-track{grid-column:1/-1}.fx-schedule{align-items:start;gap:var(--s-3);grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.fx-schedule>.fx-list-heading,.fx-week.is-open{grid-column:1/-1}.fx-week.is-open .fx-week-body{gap:0 var(--s-6);grid-template-columns:repeat(auto-fit,minmax(300px,1fr));display:grid}.fx-theory-body{padding:var(--s-8)}.fx-theory-text,.fx-theory-list,.fx-theory-link{max-width:68ch}.fx-reader-view .fx-pdf-stage{min-height:620px}.fx-reader-pager{gap:var(--s-1);grid-template-columns:repeat(auto-fill,minmax(38px,1fr));max-width:100%;display:grid}.fx-faq-item>p{max-width:78ch}.fx-support-cta{max-width:720px}.fx-menu,.fx-purchase-list,.fx-admin-entry,.measurement-fields{max-width:640px}}@media (min-width:1360px){.fx-reader-view{column-gap:var(--s-6);grid-template-columns:132px minmax(0,1fr);align-items:start;display:grid}.fx-reader-view>.fx-page-header,.fx-reader-view>.fx-resume-bar,.fx-reader-view>.fx-reader-toolbar{grid-column:1/-1}.fx-reader-view>.fx-reader-pager{grid-column:1;grid-template-columns:repeat(3,1fr);max-height:60svh;position:sticky;top:120px;overflow-y:auto}.fx-reader-view>.fx-pdf-stage{grid-area:span 2/2}.fx-reader-view>.fx-protection{grid-column:1/-1}}.fx-admin{min-height:100svh;padding-bottom:var(--s-9);background:var(--bg)}.fx-admin-header{justify-content:space-between;align-items:center;gap:var(--s-4);padding:max(var(--s-5), env(safe-area-inset-top)) var(--gutter) var(--s-4);border-bottom:1px solid var(--line);background:var(--surface);display:flex}.fx-admin-header p{font-family:var(--font-mono);font-size:var(--text-label);letter-spacing:var(--track-label);text-transform:uppercase;color:var(--ink-3)}.fx-admin-header h1{font-size:var(--text-heading);font-variation-settings:"wdth" 114;margin-top:2px}.fx-admin-nav{z-index:var(--z-sticky);gap:var(--s-2);padding:var(--s-3) var(--gutter);border-bottom:1px solid var(--line);background:color-mix(in srgb, var(--surface) 92%, transparent);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);scrollbar-width:none;display:flex;position:sticky;top:0;overflow-x:auto}.fx-admin-nav::-webkit-scrollbar{display:none}.fx-admin-nav button{min-height:38px;padding:0 var(--s-4);border:1px solid var(--line-strong);border-radius:var(--r-pill);background:var(--surface);color:var(--ink-2);font-size:var(--text-caption);white-space:nowrap;transition:all var(--t-fast) var(--ease);flex:none;font-weight:600}.fx-admin-nav button.is-active{background:var(--surface-inverse);color:var(--ink-inverse);border-color:#0000}.fx-admin-main{padding:var(--s-6) var(--gutter) var(--s-9);max-width:980px;margin-inline:auto}.fx-admin-heading{justify-content:space-between;align-items:center;gap:var(--s-4);margin-bottom:var(--s-5);flex-wrap:wrap;display:flex}.fx-admin-heading>div{align-items:center;gap:var(--s-3);min-width:0;display:flex}.fx-admin-heading h2{font-size:var(--text-title);font-variation-settings:"wdth" 108}.fx-admin-note{color:var(--ink-3);font-size:var(--text-caption);line-height:var(--leading-body);max-width:var(--measure)}.fx-admin-table{gap:var(--s-2);flex-direction:column;display:flex}.fx-admin-row{align-items:center;gap:var(--s-3);padding:var(--s-4);border:1px solid var(--line);border-radius:var(--r-md);background:var(--surface);transition:border-color var(--t-fast) var(--ease);flex-wrap:wrap;display:flex}.fx-admin-row:hover{border-color:var(--line-strong)}.fx-admin-row-column{flex-direction:column;align-items:stretch}.fx-admin-row-main{flex:1;min-width:180px}.fx-admin-row-main b{align-items:center;gap:var(--s-2);font-size:var(--text-body-lg);font-weight:600;display:flex}.fx-admin-row-main small{color:var(--ink-3);font-size:var(--text-caption);line-height:var(--leading-snug);margin-top:2px;display:block}.fx-admin-row-actions{justify-content:space-between;align-items:center;gap:var(--s-3);flex-wrap:wrap;display:flex}.fx-role{padding:2px var(--s-2);border-radius:var(--r-sm);background:var(--accent);color:var(--on-accent);font-family:var(--font-mono);letter-spacing:.08em;text-transform:uppercase;font-size:.5625rem;font-style:normal}.fx-status{padding:4px var(--s-3);border-radius:var(--r-sm);font-family:var(--font-mono);letter-spacing:.04em;flex:none;font-size:.6875rem}.fx-status-published{background:var(--accent-wash);color:var(--accent)}.fx-status-draft{background:color-mix(in srgb, var(--ink) 8%, transparent);color:var(--ink-3)}.fx-purchase-inline{gap:var(--s-2);flex-wrap:wrap;margin:0;padding:0;list-style:none;display:flex}.fx-purchase-inline li{align-items:center;gap:var(--s-2);padding:4px var(--s-3);border-radius:var(--r-sm);background:var(--bg-sunken);font-size:var(--text-caption);display:flex}.fx-purchase-inline i{color:var(--ink-3);font-family:var(--font-mono);letter-spacing:.04em;text-transform:uppercase;font-size:.625rem;font-style:normal}.fx-form{gap:var(--s-4);flex-direction:column;display:flex}.fx-form-row{gap:var(--s-3);flex-wrap:wrap;align-items:flex-end;display:flex}.fx-form-row>*{flex:1;min-width:148px}.fx-form-row>.fx-danger-btn{flex:none;min-width:0}.fx-structure{gap:var(--s-4);flex-direction:column;display:flex}.fx-admin-card{gap:var(--s-3);padding:var(--s-4);border:1px solid var(--line);border-radius:var(--r-lg);background:var(--surface);flex-direction:column;display:flex}.fx-admin-card-head{align-items:center;gap:var(--s-2);flex-wrap:wrap;display:flex}.fx-admin-card-actions{gap:var(--s-1);display:flex}.fx-admin-card-actions button{min-width:38px;min-height:38px;padding:0 var(--s-2);border:1px solid var(--line-strong);border-radius:var(--r-sm);background:var(--surface);color:var(--ink-2);font-size:var(--text-caption);place-items:center;display:grid}.fx-admin-card-actions button:hover{color:var(--ink);border-color:var(--ink-3)}.fx-admin-card-actions button:disabled{opacity:.35;cursor:not-allowed}.fx-admin-card-actions .fx-danger-btn{min-height:38px}.fx-inline-input{min-width:140px;min-height:44px;padding:0 var(--s-3);border:1px solid var(--line-strong);border-radius:var(--r-md);background:var(--surface-raised);color:var(--ink);font-size:var(--text-body-lg);flex:1;font-weight:600}.fx-inline-input:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-wash);outline:none}.fx-inline-input.fx-subtle{font-size:var(--text-body);color:var(--ink-2);font-weight:400}.fx-admin-card textarea{width:100%;padding:var(--s-3);border:1px solid var(--line-strong);border-radius:var(--r-md);background:var(--surface-raised);color:var(--ink);font-family:inherit;font-size:var(--text-body);line-height:var(--leading-body);resize:vertical}.fx-admin-card textarea:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-wash);outline:none}.fx-slot{border:1px solid var(--line);border-radius:var(--r-md);background:var(--bg-sunken);overflow:hidden}.fx-slot-head{align-items:center;gap:var(--s-2);padding-right:var(--s-2);display:flex}.fx-slot-head>button:first-child{justify-content:space-between;align-items:center;gap:var(--s-3);min-height:48px;padding:0 var(--s-4);color:var(--ink);font-size:var(--text-body);text-align:left;background:0 0;border:0;flex:1;display:flex}.fx-slot-head svg{color:var(--ink-3);transition:transform var(--t-base) var(--ease)}.fx-slot-head>button[aria-expanded=true] svg{transform:rotate(180deg)}.fx-slot-head .fx-danger-btn{min-height:34px;padding:0 var(--s-2)}.fx-slot-body{gap:var(--s-3);padding:0 var(--s-4) var(--s-4);flex-direction:column;display:flex}.fx-add-select{width:100%;min-height:var(--tap);padding:0 var(--s-4);border:1px dashed var(--line-strong);border-radius:var(--r-md);background:var(--bg-sunken);color:var(--ink-3);font-family:inherit;font-size:var(--text-caption);cursor:pointer}.fx-add-select:hover{border-color:var(--accent);color:var(--accent)}.fx-admin-grid{border-collapse:collapse;width:100%;font-size:var(--text-caption)}.fx-admin-grid th,.fx-admin-grid td{padding:var(--s-1) var(--s-2);border-bottom:1px solid var(--line);text-align:left}.fx-admin-grid thead th{font-family:var(--font-mono);letter-spacing:.1em;text-transform:uppercase;color:var(--ink-3);font-size:.5625rem;font-weight:500}.fx-admin-grid tbody th{color:var(--ink-3);font-family:var(--font-mono);font-size:.75rem;font-weight:400}.fx-admin-grid input{width:100%;min-width:64px;min-height:40px;padding:0 var(--s-2);border:1px solid var(--line);border-radius:var(--r-sm);background:var(--surface-raised);color:var(--ink);font-family:var(--font-mono);font-size:var(--text-caption);font-variant-numeric:tabular-nums;text-align:center}.fx-admin-grid input:focus{border-color:var(--accent);outline:none}.fx-tag-list{gap:var(--s-2);flex-wrap:wrap;margin:0;padding:0;list-style:none;display:flex}.fx-tag-list li{align-items:center;gap:var(--s-2);padding:4px 4px 4px var(--s-3);border:1px solid var(--accent-line);border-radius:var(--r-sm);background:var(--accent-wash);font-size:var(--text-caption);display:flex}.fx-tag-list button{border-radius:var(--r-sm);background:color-mix(in srgb, var(--ink) 8%, transparent);width:24px;height:24px;color:var(--ink-2);border:0;place-items:center;display:grid}.fx-tag-list button:hover{background:var(--signal-wash);color:var(--signal)}.fx-blocks{gap:var(--s-3);flex-direction:column;display:flex}.fx-block{gap:var(--s-3);padding:var(--s-3);border:1px solid var(--line);border-radius:var(--r-md);background:var(--bg-sunken);flex-direction:column;display:flex}.fx-block-head{justify-content:space-between;align-items:center;gap:var(--s-3);display:flex}.fx-block-kind{align-items:center;gap:var(--s-2);padding:4px var(--s-3);border-radius:var(--r-sm);background:var(--accent-wash);color:var(--accent);font-family:var(--font-mono);letter-spacing:.08em;text-transform:uppercase;font-size:.625rem;display:inline-flex}.fx-upload{gap:var(--s-3);flex-direction:column;display:flex}.fx-upload>p{font-family:var(--font-mono);font-size:var(--text-label);letter-spacing:var(--track-label);text-transform:uppercase;color:var(--ink-3)}.fx-upload-box{align-items:flex-start;gap:var(--s-2);padding:var(--s-5);border:1px dashed var(--line-strong);border-radius:var(--r-lg);background:var(--bg-sunken);transition:border-color var(--t-fast) var(--ease), background var(--t-fast) var(--ease);flex-direction:column;display:flex}.fx-upload-box.is-dragging{border-color:var(--accent);background:var(--accent-wash)}.fx-upload-box b{font-size:var(--text-body)}.fx-upload-box small{color:var(--ink-3);font-size:var(--text-caption);line-height:var(--leading-body)}.fx-upload-actions{gap:var(--s-2);margin-top:var(--s-1);flex-wrap:wrap;display:flex}.fx-faq-admin{gap:var(--s-3);flex-direction:column;display:flex}.fx-faq-admin-item{gap:var(--s-2);padding:var(--s-3);border:1px solid var(--line);border-radius:var(--r-md);background:var(--bg-sunken);flex-direction:column;display:flex}.fx-faq-admin-item input,.fx-faq-admin-item textarea{width:100%;padding:var(--s-3);border:1px solid var(--line-strong);border-radius:var(--r-sm);background:var(--surface-raised);color:var(--ink);font-family:inherit;font-size:var(--text-body);line-height:var(--leading-body);resize:vertical}.fx-faq-admin-item input:focus,.fx-faq-admin-item textarea:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-wash);outline:none}.fx-faq-admin-actions{justify-content:space-between;align-items:flex-end;gap:var(--s-3);flex-wrap:wrap;display:flex}.fx-move-field{gap:var(--s-2);flex-direction:column;flex:1;min-width:190px;display:flex}.fx-move-field span{font-family:var(--font-mono);letter-spacing:.1em;text-transform:uppercase;color:var(--ink-3);font-size:.5625rem}.fx-move-field select{min-height:42px;padding:0 var(--s-3);border:1px solid var(--line-strong);border-radius:var(--r-sm);background:var(--surface-raised);color:var(--ink);font-family:inherit;font-size:var(--text-caption)}.fx-checkbox{align-items:flex-start;gap:var(--s-3);padding:var(--s-4);border:1px solid var(--line);border-radius:var(--r-md);background:var(--surface);cursor:pointer;display:flex}.fx-checkbox input{width:20px;height:20px;accent-color:var(--accent);margin-top:2px}.fx-checkbox>span{font-size:var(--text-body);font-weight:600}.fx-checkbox small{margin-top:var(--s-1);color:var(--ink-3);font-size:var(--text-caption);font-weight:400;line-height:var(--leading-snug);display:block}
