:root{--color-primary:#f97316;--color-accent:#fbbf24;--color-background:#0f172a;--color-surface:#1e293b;--color-surface-hover:#334155;--color-border:#475569;--color-text:#f1f5f9;--color-text-secondary:color-mix(in oklch, var(--color-text) 78%, var(--color-background));--color-text-muted:color-mix(in oklch, var(--color-text) 62%, var(--color-background));--color-text-ghost:color-mix(in oklch, var(--color-text) 48%, var(--color-background));--color-text-invisible:color-mix(in oklch, var(--color-text) 34%, var(--color-background));--color-error:#ef4444;--color-error-light:#fca5a5;--color-success:#10b981;--color-success-dark:#059669;--font-system:system-ui, -apple-system, blinkmacsystemfont, "Segoe UI", roboto, oxygen, ubuntu, cantarell, "Helvetica Neue", sans-serif;--font-display:"Helvetica Neue", "Arial", sans-serif;--text-display:3.5rem;--text-hero:3rem;--text-title:2.5rem;--text-stat:1.25rem;--text-body:.8125rem;--text-caption:.6875rem;--weight-medium:500;--weight-semibold:600;--weight-bold:700;--weight-extrabold:800;--weight-black:900;--tracking-tight:-.04em;--tracking-snug:-.02em;--tracking-normal:.05em;--tracking-wide:.15em;--tracking-wider:.2em;--tracking-widest:.3em;--radius-sm:6px;--radius-md:8px;--radius-lg:12px;--transition-fast:.2s ease;--transition-normal:.3s ease;font-family:var(--font-system);--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;color:var(--color-text);background-color:var(--color-background);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-weight:400;line-height:1.5}*{box-sizing:border-box}body{min-height:100vh;margin:0;padding:0}h1,h2,h3,h4,h5,h6{margin:0;line-height:1.2}p{margin:0}button{font-family:inherit;font-size:inherit;line-height:inherit}#root{min-height:100vh}.app{gap:1rem;padding:1rem 1.25rem 1.5rem;display:grid}.app-header{-webkit-backdrop-filter:none;backdrop-filter:none;background:0 0;border:none;border-radius:0;justify-content:space-between;align-items:center;gap:1rem;width:min(100%,1400px);margin:0 auto;padding:.8rem .15rem .95rem;display:flex;position:relative}.app-header:after{content:"";background:color-mix(in oklch, var(--color-border,#475569) 72%, transparent);height:1px;position:absolute;bottom:-.35rem;left:0;right:0}.app-header-empty{justify-content:center;margin-bottom:.8rem}.app-footer{text-align:center;width:min(100%,1400px);font-size:.67rem;font-weight:var(--weight-medium);letter-spacing:.08em;text-transform:uppercase;color:color-mix(in oklch, var(--color-text-secondary,#94a3b8) 66%, transparent);margin:0 auto;padding:.35rem .2rem 0}.app-workspace{grid-template-columns:minmax(280px,360px) minmax(0,1fr);align-items:stretch;gap:1rem;width:min(100%,1400px);margin:0 auto;display:grid}.app-sidebar-column{flex-direction:column;min-width:0;display:flex}.app-workspace-footer{font-size:.67rem;font-weight:var(--weight-medium);letter-spacing:.08em;text-transform:uppercase;color:color-mix(in oklch, var(--color-text-secondary,#94a3b8) 66%, transparent);margin-top:auto;padding:.85rem .4rem .35rem}.app-footer-mobile{display:none}.app-sidebar{align-self:start;min-width:0;position:sticky;top:1rem}.app-canvas-area{min-width:0}.app-canvas-panel{box-shadow:none;background:0 0;border:none;border-radius:0;padding:1rem;overflow:auto}.app-canvas-panel .workout-card{width:100%;max-width:none;margin:0}.app-logo{font-family:var(--font-display);font-size:.82rem;font-weight:var(--weight-extrabold);letter-spacing:.14em;text-transform:uppercase;color:var(--color-text)}.app-header-actions{align-items:center;gap:.55rem;display:flex}.app-header-button{min-height:34px}.reset-button{font-size:.72rem;font-weight:var(--weight-semibold);letter-spacing:.08em;text-transform:uppercase;color:var(--color-text-secondary,#94a3b8);background:color-mix(in oklch, var(--color-surface,#1e293b) 35%, transparent);border:1px solid var(--color-border,#475569);cursor:pointer;border-radius:999px;justify-content:center;align-items:center;gap:.45rem;padding:.45rem .85rem;line-height:1;transition:transform .16s,color .16s,border-color .16s,background-color .16s;display:inline-flex}.reset-button:hover{color:var(--color-text,#f1f5f9);border-color:color-mix(in oklch, var(--color-text-secondary,#94a3b8) 65%, var(--color-border,#475569));background:color-mix(in oklch, var(--color-surface-hover,#334155) 55%, transparent);transform:translateY(-1px)}.data-download-button{color:color-mix(in oklch, var(--color-primary,#22d3ee) 70%, var(--color-text,#f1f5f9));border-color:color-mix(in oklch, var(--color-primary,#22d3ee) 40%, var(--color-border,#475569));background:color-mix(in oklch, var(--color-primary,#22d3ee) 12%, transparent)}.data-download-button:hover{color:color-mix(in oklch, var(--color-primary,#22d3ee) 85%, var(--color-text,#f1f5f9));border-color:color-mix(in oklch, var(--color-primary,#22d3ee) 62%, var(--color-border,#475569));background:color-mix(in oklch, var(--color-primary,#22d3ee) 20%, transparent)}.export-popover{background:var(--color-background,#0f172a);border:1px solid var(--color-border,#475569);border-radius:16px;flex-direction:column;align-items:center;gap:1.35rem;width:min(92vw,620px);margin:0;padding:1rem;display:flex;position:fixed;inset:50% auto auto 50%;transform:translate(-50%,-50%);box-shadow:0 24px 70px #02061780}.export-popover::backdrop{-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);background:#020617b8}.export-popover-close{font-size:var(--text-caption);font-weight:var(--weight-semibold);letter-spacing:var(--tracking-normal);text-transform:uppercase;color:var(--color-text-secondary,#94a3b8);border:1px solid var(--color-border,#475569);border-radius:var(--radius-md);cursor:pointer;background:0 0;align-self:flex-end;margin-bottom:.25rem;padding:.45rem .7rem}.export-popover-title{font-family:var(--font-display);font-size:.98rem;font-weight:var(--weight-extrabold);letter-spacing:.08em;text-transform:uppercase;color:var(--color-accent,#fbbf24);margin:-.15rem 0 .2rem}.export-popover-image{aspect-ratio:1;object-fit:contain;background:var(--color-background,#0f172a);border:1px solid #d8d8d8;border-radius:2px;width:min(100%,560px)}.export-polaroid{background:#fff;border:1px solid #ececec;border-radius:4px;width:min(100%,560px);margin:.4rem 0 .5rem;padding:.9rem .9rem 1.25rem;transform:rotate(-2.2deg);box-shadow:0 12px 24px #0f172a47,0 2px 3px #0f172a2e}.export-polaroid-caption{font-family:var(--font-display);font-size:.78rem;font-weight:var(--weight-semibold);letter-spacing:.16em;text-align:center;text-transform:uppercase;color:#2c2c2c;margin-top:.8rem}.export-popover-download{width:100%;max-width:300px;font-size:.95rem;font-weight:var(--weight-semibold);color:var(--color-background);background:linear-gradient(135deg, var(--color-accent) 0%, var(--color-primary) 100%);border-radius:var(--radius-lg);cursor:pointer;transition:transform var(--transition-fast), box-shadow var(--transition-fast);border:none;margin-top:.25rem;padding:.85rem 1rem;box-shadow:0 8px 18px #fbbf2438}.export-popover-download:hover{transform:translateY(-1px);box-shadow:0 12px 24px #fbbf244d}.export-popover-loading{border:1px solid var(--color-border,#475569);background:color-mix(in oklch, var(--color-surface,#1e293b) 72%, transparent);border-radius:12px;flex-direction:column;justify-content:center;align-items:center;gap:.9rem;width:100%;min-height:220px;display:flex}.export-popover-spinner{border:3px solid #94a3b859;border-top-color:var(--color-accent,#fbbf24);border-radius:50%;width:24px;height:24px;animation:.7s linear infinite export-popover-spin}.export-popover-status{font-size:.9rem;font-weight:var(--weight-medium);letter-spacing:var(--tracking-normal);text-transform:uppercase;color:var(--color-text-secondary,#94a3b8)}.export-popover-error{text-align:center;width:100%;color:var(--color-error-light,#fca5a5);border:1px solid color-mix(in oklch, var(--color-error,#ef4444) 50%, var(--color-border,#475569));background:color-mix(in oklch, var(--color-error,#ef4444) 12%, transparent);border-radius:12px;padding:1rem;font-size:.92rem}.dev-storage-reset-button{z-index:60;font-size:.62rem;font-weight:var(--weight-semibold);letter-spacing:.08em;text-transform:uppercase;color:var(--color-text-secondary,#94a3b8);background:color-mix(in oklch, var(--color-background,#0f172a) 70%, transparent);border:1px solid color-mix(in oklch, var(--color-border,#475569) 82%, transparent);cursor:pointer;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);border-radius:999px;padding:.35rem .55rem;transition:color .16s,border-color .16s,background-color .16s;position:fixed;bottom:.85rem;left:.85rem}.dev-storage-reset-button:hover{color:var(--color-text,#f1f5f9);border-color:color-mix(in oklch, var(--color-primary,#22d3ee) 45%, var(--color-border,#475569));background:color-mix(in oklch, var(--color-surface,#1e293b) 66%, transparent)}@keyframes export-popover-spin{to{transform:rotate(360deg)}}@media (width<=1080px){.app-workspace{grid-template-columns:1fr;align-items:start}.app-sidebar-column{display:block}.app-sidebar{position:static}.app-workspace-footer{display:none}.app-footer-mobile{display:block}}@media (width<=768px){.app{padding:.5rem}.app-header{flex-direction:column;align-items:stretch;padding:.65rem .1rem .8rem}.app-workspace{grid-template-columns:1fr}.app-sidebar{position:static}.app-canvas-panel{padding:.5rem}.app-logo{text-align:center}.app-footer{padding-top:.25rem;font-size:.63rem}.app-header-actions{flex-direction:column;width:100%}.app-header-actions .export-button,.reset-button{width:100%}.export-popover{padding:.75rem}.export-polaroid{transform:rotate(-1.5deg)}.export-popover-loading{min-height:180px}.dev-storage-reset-button{display:none}}.export-button{font-size:.72rem;font-weight:var(--weight-semibold);letter-spacing:.08em;text-transform:uppercase;color:color-mix(in oklch, var(--color-accent,#fbbf24) 64%, var(--color-text,#f1f5f9));background:color-mix(in oklch, var(--color-accent,#fbbf24) 12%, transparent);border:1px solid color-mix(in oklch, var(--color-accent,#fbbf24) 45%, var(--color-border,#475569));cursor:pointer;border-radius:999px;justify-content:center;align-items:center;gap:.42rem;padding:.45rem .85rem;line-height:1;transition:transform .16s,box-shadow .16s,background-color .16s,border-color .16s,color .16s;display:inline-flex;box-shadow:0 0 #fbbf2400}.export-button:disabled{opacity:.55;cursor:not-allowed;box-shadow:none;transform:none}.export-button:hover:not(:disabled){color:color-mix(in oklch, var(--color-accent,#fbbf24) 82%, var(--color-text,#f1f5f9));border-color:color-mix(in oklch, var(--color-accent,#fbbf24) 70%, var(--color-border,#475569));background:color-mix(in oklch, var(--color-accent,#fbbf24) 18%, transparent);transform:translateY(-1px);box-shadow:0 10px 16px #fbbf2424}.export-button:active:not(:disabled){transform:translateY(0)scale(.99)}.export-button svg{width:14px;height:14px}.export-button.success{background:linear-gradient(135deg, var(--color-success) 0%, var(--color-success-dark) 100%)}.button-spinner{border:2px solid #0f172a4d;border-top-color:var(--color-background);border-radius:50%;width:16px;height:16px;animation:.6s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}@media (width<=768px){.export-button{justify-content:center;width:100%;padding:.62rem .95rem}}.file-upload-container{flex-direction:column;justify-content:center;align-items:center;gap:1.1rem;min-height:60vh;padding:2rem;display:flex}.upload-hero{text-align:center;gap:.7rem;width:100%;max-width:720px;display:grid}.upload-kicker{font-size:.68rem;font-weight:var(--weight-semibold);letter-spacing:.12em;text-transform:uppercase;color:color-mix(in oklch, var(--color-accent) 65%, var(--color-text-secondary));margin:0}.upload-hero h1{font-size:clamp(1.35rem,3.1vw,2rem);font-weight:var(--weight-semibold);letter-spacing:-.015em;margin:0;line-height:1.15}.upload-description{color:var(--color-text-secondary);margin:0;font-size:.94rem;line-height:1.5}.upload-highlights{flex-wrap:wrap;justify-content:center;gap:.45rem;display:inline-flex}.upload-highlights span{font-size:.66rem;font-weight:var(--weight-semibold);letter-spacing:.08em;text-transform:uppercase;color:var(--color-text-secondary);border:1px solid color-mix(in oklch, var(--color-border) 72%, transparent);background:color-mix(in oklch, var(--color-surface) 30%, transparent);border-radius:999px;padding:.3rem .55rem}.file-upload-zone{border:2px dashed var(--color-border);border-radius:var(--radius-lg);cursor:pointer;width:100%;max-width:500px;min-height:300px;transition:all var(--transition-normal);background:var(--color-surface);flex-direction:column;justify-content:center;align-items:center;display:flex}.file-upload-zone:hover{border-color:var(--color-primary);background:var(--color-surface-hover)}.file-upload-zone.drag-over{border-color:var(--color-primary);background:var(--color-surface-hover);border-style:solid}.file-upload-zone.loading{cursor:default;border-style:solid}.upload-content{text-align:center;flex-direction:column;align-items:center;gap:1rem;padding:2rem;display:flex}.upload-icon{color:var(--color-primary);opacity:.8}.upload-content h2{font-size:1.5rem;font-weight:var(--weight-semibold);margin:0}.upload-content p{color:var(--color-text-secondary);margin:0}.upload-hint{color:var(--color-text-muted);font-size:.875rem}.spinner{border:4px solid var(--color-surface-hover);border-top-color:var(--color-primary);border-radius:50%;width:48px;height:48px;animation:.8s linear infinite spin}.error-message{border:1px solid var(--color-error);border-radius:var(--radius-md);color:var(--color-error-light);background:#ef44441a;width:100%;max-width:500px;margin-top:1.5rem;padding:1rem}.error-message strong{color:var(--color-error)}@media (width<=768px){.file-upload-container{padding:1.25rem .75rem}.upload-hero{gap:.55rem}.file-upload-zone{max-width:100%;min-height:270px}}.dual-range-slider{width:100%;height:32px;position:relative}.dual-range-track{background:var(--color-surface-hover,#334155);pointer-events:none;border-radius:2px;height:4px;position:absolute;top:50%;left:0;right:0;transform:translateY(-50%)}.dual-range-fill{background:var(--color-primary,#f97316);border-radius:2px;height:100%;position:absolute;top:0}.dual-range-input{appearance:none;pointer-events:none;background:0 0;outline:none;width:100%;height:100%;margin:0;padding:0;position:absolute;top:0;left:0}.dual-range-input::-webkit-slider-thumb{appearance:none;background:var(--color-text,#f1f5f9);border:2px solid var(--color-primary,#f97316);cursor:pointer;pointer-events:auto;border-radius:50%;width:16px;height:16px;margin-top:-6px}.dual-range-input::-moz-range-thumb{background:var(--color-text,#f1f5f9);border:2px solid var(--color-primary,#f97316);cursor:pointer;pointer-events:auto;border-radius:50%;width:16px;height:16px}.dual-range-end{z-index:2}.dual-range-input::-webkit-slider-runnable-track{appearance:none;background:0 0;height:4px}.dual-range-input::-moz-range-track{background:0 0;border:none;height:4px}.card-customizer{color:var(--color-text);gap:1.1rem;display:grid}.card-customizer h3{font-size:.875rem;font-weight:var(--weight-semibold);color:color-mix(in oklch, var(--color-text) 86%, var(--color-background));text-transform:uppercase;letter-spacing:var(--tracking-normal);margin:0 0 1rem}.card-customizer-header{margin-bottom:.25rem}.card-customizer-header p{color:var(--color-text-secondary);margin:-.2rem 0 0;font-size:.8rem}.customizer-section-block{background:0 0;border:0;border-radius:0;padding:0;position:relative}.customizer-section-block+.customizer-section-block{border-top:1px solid color-mix(in oklch, var(--color-border) 72%, transparent);padding-top:1rem}.customizer-section-toggle{text-align:left;cursor:pointer;background:0 0;border:0;gap:.28rem;width:100%;padding:0;display:grid}.customizer-section-toggle span{font-size:.75rem;font-weight:var(--weight-bold);text-transform:uppercase;letter-spacing:.12em;color:color-mix(in oklch, var(--color-text) 88%, var(--color-background))}.customizer-section-toggle small{color:var(--color-text-muted);font-size:.74rem;line-height:1.35}.customizer-section-toggle:after{content:"+";font-size:1rem;font-weight:var(--weight-bold);color:var(--color-text-secondary);position:absolute;top:0;right:0}.customizer-section-toggle.active:after{content:"-"}.customizer-section-panel{opacity:0;pointer-events:none;gap:.85rem;max-height:0;margin-top:.7rem;transition:max-height .36s cubic-bezier(.87,0,.13,1),opacity .26s cubic-bezier(.87,0,.13,1),transform .36s cubic-bezier(.87,0,.13,1);display:grid;overflow:hidden;transform:translateY(-6px)}.customizer-section-panel.is-open{opacity:1;pointer-events:auto;max-height:2200px;transform:translateY(0)}.customizer-group{gap:.4rem;display:grid}.customizer-group h5{font-size:.66rem;font-weight:var(--weight-bold);text-transform:uppercase;letter-spacing:.11em;color:var(--color-text-secondary);margin:0}.customizer-group-body{gap:.65rem;display:grid}@media (prefers-reduced-motion:reduce){.customizer-section-panel,.customizer-section-panel.is-open{transition:none;transform:none}}.customizer-options{flex-wrap:wrap;align-items:center;gap:1.25rem;display:flex}.customizer-toggle{cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;gap:.625rem;display:flex}.customizer-toggle input{opacity:0;width:0;height:0;position:absolute}.toggle-track{background:var(--color-surface-hover);width:40px;height:22px;transition:background var(--transition-fast);border-radius:11px;position:relative}.customizer-toggle input:checked+.toggle-track{background:var(--color-primary)}.toggle-thumb{background:var(--color-text);width:18px;height:18px;transition:transform var(--transition-fast);border-radius:50%;position:absolute;top:2px;left:2px}.customizer-toggle input:checked+.toggle-track .toggle-thumb{transform:translate(18px)}.toggle-label{font-size:.875rem;font-weight:var(--weight-medium);color:var(--color-text)}.customizer-segment{align-items:center;gap:.625rem;display:flex}.segment-label{font-size:.875rem;font-weight:var(--weight-medium);color:var(--color-text)}.segment-buttons{background:var(--color-surface-hover);border-radius:var(--radius-md);padding:2px;display:flex}.segment-buttons button{font-size:var(--text-body);font-weight:var(--weight-medium);color:var(--color-text-muted);border-radius:var(--radius-sm);cursor:pointer;transition:all var(--transition-fast);background:0 0;border:none;padding:.375rem .75rem}.segment-buttons button.active{background:var(--color-primary);color:#fff}.customizer-select{font-size:var(--text-body);font-weight:var(--weight-medium);color:var(--color-text);background:var(--color-surface-hover);border:1px solid var(--color-border);border-radius:var(--radius-sm);cursor:pointer;outline:none;padding:.375rem .75rem}.customizer-select:focus{border-color:var(--color-primary)}.customizer-input{width:5rem;font-size:var(--text-body);font-weight:var(--weight-medium);color:var(--color-text);background:var(--color-surface-hover);border:1px solid var(--color-border);border-radius:var(--radius-sm);outline:none;padding:.375rem .75rem}.customizer-input:focus{border-color:var(--color-primary)}.customizer-text-field{gap:.45rem;max-width:16rem;display:grid}.customizer-text-input{width:100%;font-size:var(--text-body);font-weight:var(--weight-medium);color:var(--color-text);background:var(--color-surface-hover);border:1px solid var(--color-border);border-radius:var(--radius-sm);outline:none;padding:.375rem .75rem}.customizer-text-input:focus{border-color:var(--color-primary)}.segment-unit{font-size:.875rem;font-weight:var(--weight-medium);color:var(--color-text-secondary)}.customizer-section{border-top:1px solid var(--color-border);margin-top:1.25rem;padding-top:1.25rem}.customizer-section:first-of-type{border-top:none;margin-top:0;padding-top:0}.customizer-section h4{font-size:var(--text-body);font-weight:var(--weight-semibold);color:color-mix(in oklch, var(--color-text) 82%, var(--color-background));text-transform:uppercase;letter-spacing:var(--tracking-normal);margin:0 0 .75rem}.theme-lab{gap:1rem;display:grid}.theme-spectrum-shell{border:1px solid var(--color-border);border-radius:var(--radius-md);background:radial-gradient(circle at 15% -40%, color-mix(in oklch, var(--color-primary) 35%, transparent), transparent 55%), radial-gradient(circle at 85% 140%, color-mix(in oklch, var(--color-accent) 30%, transparent), transparent 60%), linear-gradient(160deg, color-mix(in oklch, var(--color-surface) 92%, #000), var(--color-surface));padding:1rem}.theme-spectrum-head{font-family:var(--font-display);font-size:var(--text-caption);font-weight:var(--weight-bold);text-transform:uppercase;letter-spacing:var(--tracking-wide);color:color-mix(in oklch, var(--color-text) 88%, var(--color-background));justify-content:space-between;align-items:center;margin-bottom:.75rem;display:flex}.theme-harmony-field{aspect-ratio:1;background:radial-gradient(circle at center, transparent 0 51.3%, color-mix(in oklch, var(--color-text) 17%, transparent) 51.6% 52.2%, transparent 52.5% 100%), radial-gradient(circle at center, transparent 0 75.3%, color-mix(in oklch, var(--color-text) 17%, transparent) 75.6% 76.2%, transparent 76.5% 100%), radial-gradient(circle at center, color-mix(in oklch, var(--color-background) 70%, transparent) 0%, transparent 30%), radial-gradient(circle at center, color-mix(in oklch, var(--color-background) 82%, transparent) 0%, transparent 64%), conic-gradient(from 0deg, #ff3e3e, #ff8a00, #ffd500, #2bd67b, #29a4ff, #7b5cff, #ff3e8e, #ff3e3e);width:min(100%,16.5rem);box-shadow:inset 0 0 0 1px color-mix(in oklch, var(--color-text) 22%, transparent), inset 0 0 1.8rem color-mix(in oklch, var(--color-background) 70%, transparent), 0 .4rem 1rem color-mix(in oklch, var(--color-background) 70%, transparent);touch-action:none;cursor:crosshair;border:none;border-radius:50%;margin:0 auto;position:relative;overflow:hidden;-webkit-mask-image:radial-gradient(circle,#000 98.8%,#0000 100%);mask-image:radial-gradient(circle,#000 98.8%,#0000 100%)}.theme-harmony-links{pointer-events:none;width:100%;height:100%;position:absolute;inset:0}.theme-harmony-links line{stroke:color-mix(in oklch, var(--color-text) 35%, transparent);stroke-width:.65px;stroke-linecap:round}.harmony-cursor{border:2px solid color-mix(in oklch, var(--color-text) 85%, transparent);width:1.15rem;height:1.15rem;box-shadow:0 0 0 2px color-mix(in oklch, var(--color-background) 76%, transparent), 0 .3rem .9rem color-mix(in oklch, var(--color-background) 68%, transparent);pointer-events:none;border-radius:50%;position:absolute;transform:translate(-50%,-50%)}.harmony-node{pointer-events:none;align-items:center;gap:.3rem;max-width:6rem;display:flex;position:absolute;transform:translate(-50%,-50%)}.harmony-node-dot{border:2px solid color-mix(in oklch, var(--color-text) 68%, transparent);width:.84rem;height:.84rem;box-shadow:0 0 0 2px color-mix(in oklch, var(--color-background) 70%, transparent);border-radius:50%;flex-shrink:0}.harmony-node span{font-size:.5rem;font-weight:var(--weight-semibold);letter-spacing:.08em;text-transform:uppercase;color:color-mix(in oklch, var(--color-text) 90%, var(--color-background));white-space:nowrap;background:color-mix(in oklch, var(--color-surface) 84%, transparent);border:1px solid color-mix(in oklch, var(--color-border) 80%, transparent);border-radius:999px;padding:.12rem .3rem}.theme-harmony-note{color:var(--color-text-secondary);margin:.5rem 0 0;font-size:.75rem}.theme-controls{gap:.875rem;display:grid}.harmony-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:.5rem;display:grid}.harmony-grid button{border-radius:var(--radius-sm);border:1px solid var(--color-border);background:color-mix(in oklch, var(--color-surface-hover) 80%, transparent);color:var(--color-text);cursor:pointer;transition:all var(--transition-fast);flex-direction:column;align-items:flex-start;gap:.2rem;padding:.55rem .7rem;display:flex}.harmony-grid button span{font-size:var(--text-body);font-weight:var(--weight-semibold)}.harmony-grid button small{text-transform:uppercase;letter-spacing:.08em;color:var(--color-text-secondary);font-size:.65rem}.harmony-grid button.active{border-color:color-mix(in oklch, var(--color-primary) 60%, var(--color-border));background:color-mix(in oklch, var(--color-primary) 28%, var(--color-surface));color:var(--color-text)}.segment-buttons button:not(.active):hover{color:var(--color-text)}.theme-slider-grid{gap:.6rem;display:grid}.theme-slider-row{font-size:var(--text-body);font-weight:var(--weight-medium);color:var(--color-text-secondary);grid-template-columns:4.75rem 1fr 2.2rem;align-items:center;gap:.5rem;display:grid}.theme-range{appearance:none;background:linear-gradient(90deg, color-mix(in oklch, var(--color-surface-hover) 90%, transparent), var(--color-primary));cursor:pointer;border-radius:999px;width:100%;height:.4rem}.theme-range::-webkit-slider-thumb{appearance:none;border:2px solid color-mix(in oklch, var(--color-text) 70%, transparent);background:var(--color-surface);border-radius:50%;width:.85rem;height:.85rem}.theme-range::-moz-range-thumb{border:2px solid color-mix(in oklch, var(--color-text) 70%, transparent);background:var(--color-surface);border-radius:50%;width:.85rem;height:.85rem}.theme-range::-moz-range-track{background:linear-gradient(90deg, color-mix(in oklch, var(--color-surface-hover) 90%, transparent), var(--color-primary));border:0;border-radius:999px;height:.4rem}.theme-preview-swatches{grid-template-columns:repeat(2,minmax(0,1fr));gap:.5rem;display:grid}.theme-preview-swatch{border-radius:var(--radius-sm);border:1px solid var(--color-border);background:color-mix(in oklch, var(--color-surface-hover) 70%, transparent);color:var(--color-text);text-transform:uppercase;letter-spacing:.08em;align-items:center;gap:.5rem;padding:.45rem .5rem;font-size:.7rem;display:flex}.theme-preview-swatch i{border:1px solid color-mix(in oklch, var(--color-text) 35%, transparent);border-radius:.25rem;flex-shrink:0;width:.95rem;height:.95rem;display:inline-block}.theme-reset-button{border:1px dashed color-mix(in oklch, var(--color-primary) 55%, var(--color-border));border-radius:var(--radius-sm);background:color-mix(in oklch, var(--color-primary) 15%, transparent);color:var(--color-text);font-size:var(--text-body);font-weight:var(--weight-semibold);cursor:pointer;transition:all var(--transition-fast);padding:.55rem .8rem}.theme-reset-button:hover{color:var(--color-text);border-color:var(--color-primary);background:color-mix(in oklch, var(--color-primary) 24%, transparent)}.trim-inputs{gap:1.5rem;margin-top:.75rem;display:flex}.trim-field{font-size:var(--text-body);font-weight:var(--weight-medium);color:var(--color-text);align-items:center;gap:.5rem;display:flex}.trim-field input{width:5rem;font-size:var(--text-body);color:var(--color-text);background:var(--color-surface-hover);border:1px solid var(--color-border);border-radius:var(--radius-sm);outline:none;padding:.3rem .5rem}.trim-field input:focus{border-color:var(--color-primary)}.trim-unit{color:var(--color-text-secondary)}@media (width<=768px){.card-customizer{margin:.5rem 0;padding:1rem}.customizer-options{flex-direction:column;align-items:flex-start}.customizer-tabs{display:none}.customizer-section-block{padding:0}.customizer-section-block+.customizer-section-block{padding-top:.85rem}.customizer-accordion-title{font-size:.66rem}.customizer-accordion-body{padding:.15rem .65rem .75rem}.theme-harmony-field{width:min(100%,14.5rem)}.harmony-node span{font-size:.5rem}.harmony-grid,.theme-preview-swatches{grid-template-columns:1fr}.theme-slider-row{grid-template-columns:4.2rem 1fr 2rem;width:100%}}.theme-lab-sidebar{height:100%;max-height:calc(100vh - 7.5rem);box-shadow:none;background:0 0;border:none;border-radius:0;flex-direction:column;gap:1rem;padding:1rem;display:flex;overflow:hidden}.theme-lab-sidebar-header{border-bottom:1px solid color-mix(in oklch, var(--color-border) 80%, transparent);gap:.35rem;padding-bottom:.85rem;display:grid}.theme-lab-sidebar-header p{font-size:.66rem;font-weight:var(--weight-semibold);letter-spacing:.14em;text-transform:uppercase;color:var(--color-text-secondary);margin:0}.theme-lab-sidebar-header h2{font-size:1rem;font-weight:var(--weight-bold);letter-spacing:.04em;text-transform:uppercase;color:var(--color-text);margin:0}.theme-lab-sidebar-header span{color:var(--color-text-muted);font-size:.78rem;line-height:1.35}.theme-lab-sidebar-content{scrollbar-gutter:stable;flex:1;overflow:hidden auto}.theme-lab-sidebar-content .card-customizer{max-width:none;box-shadow:none;background:0 0;border:none;margin:0;padding:0}@media (width<=1080px){.theme-lab-sidebar{max-height:none}}.chart-container{margin:0;padding:1.5rem 2.5rem 2rem}.chart-header{align-items:center;gap:.625rem;margin-bottom:1.5rem;display:flex}.chart-header-accent{background:linear-gradient(180deg, var(--color-accent), var(--color-primary));flex-shrink:0;width:3px;height:1rem}.chart-header h3{font-family:var(--font-display);font-size:var(--text-caption);font-weight:var(--weight-bold);color:var(--color-text-ghost);text-transform:uppercase;letter-spacing:var(--tracking-wider);margin:0}.no-data{text-align:center;color:var(--color-text-muted);padding:3rem;font-style:italic}@media (width<=768px){.chart-container{padding:1rem 1.5rem}.chart-header{margin-bottom:1rem}.chart-header h3{font-size:.5rem}}.stats-panel{padding:3rem 2.5rem 2rem}.stats-header{margin-bottom:2.5rem}.header-top{justify-content:space-between;align-items:flex-end;gap:1rem;margin-bottom:2rem;display:flex}.sport-badge{flex-direction:column;flex:1;gap:.25rem;display:flex}.sport-name{font-family:var(--font-display);font-size:var(--text-display);font-weight:var(--weight-black);letter-spacing:var(--tracking-tight);color:var(--color-text);text-transform:uppercase;line-height:.9}.sport-sub{font-family:var(--font-display);font-size:var(--text-caption);font-weight:var(--weight-bold);letter-spacing:var(--tracking-wider);color:var(--color-accent);text-transform:uppercase;margin-top:.5rem}.date-vertical{flex-direction:column;align-items:flex-end;gap:0;margin-right:.35rem;display:flex}.date-line{font-family:var(--font-display);font-size:var(--text-body);font-weight:var(--weight-bold);letter-spacing:var(--tracking-wider);color:var(--color-border);text-transform:uppercase;line-height:1.4}.date-day{font-size:var(--text-hero);font-weight:var(--weight-black);color:var(--color-text);letter-spacing:-.03em;margin:.125rem 0;line-height:.9}.workout-classification{align-items:center;gap:.875rem;padding:0;display:flex}.classification-emoji{filter:url(#emoji-solid-orange);opacity:.5;font-size:1.75rem;line-height:1}.classification-content{flex-direction:column;flex:1;gap:.125rem;display:flex}.classification-type{font-family:var(--font-display);font-size:var(--text-caption);font-weight:var(--weight-extrabold);color:color-mix(in oklch, var(--color-accent) 72%, var(--color-primary));text-transform:uppercase;letter-spacing:var(--tracking-wider)}.classification-description{font-family:var(--font-display);font-size:var(--text-body);font-weight:var(--weight-medium);color:var(--color-border);font-style:italic;line-height:1.4}.stats-primary{border-bottom:1px solid color-mix(in oklch, var(--color-accent) 26%, var(--color-surface));gap:0;margin-bottom:2rem;padding-bottom:2rem;display:flex}.stat-primary{flex:1;grid-template-rows:auto auto 1em;align-content:center;justify-items:center;padding:1rem .5rem;display:grid}.stat-value-large{font-family:var(--font-display);font-size:var(--text-hero);font-weight:var(--weight-black);color:var(--color-text);letter-spacing:var(--tracking-tight);line-height:1}.stat-label-large{font-family:var(--font-display);font-size:var(--text-caption);font-weight:var(--weight-bold);color:color-mix(in oklch, var(--color-accent) 42%, var(--color-border));text-transform:uppercase;letter-spacing:.25em;margin-top:.625rem}.stat-unit{font-family:var(--font-display);font-size:var(--text-caption);font-weight:var(--weight-semibold);color:var(--color-text-ghost);text-transform:lowercase;letter-spacing:var(--tracking-normal);margin-top:.125rem}.stats-grid{grid-template-columns:repeat(4,1fr);gap:0;display:grid}.stat-item{flex-direction:column;justify-content:center;align-items:center;padding:1.25rem .5rem;display:flex}.stat-label{font-family:var(--font-display);font-size:var(--text-caption);font-weight:var(--weight-bold);color:var(--color-text-ghost);text-transform:uppercase;letter-spacing:var(--tracking-wide);margin-bottom:.5rem}.stat-value{font-family:var(--font-display);font-size:var(--text-stat);font-weight:var(--weight-black);color:color-mix(in oklch, var(--color-accent) 20%, var(--color-text-secondary));letter-spacing:var(--tracking-snug);line-height:1}@media (width<=768px){.stats-panel{padding:2rem 1.5rem 1.5rem}.header-top{flex-direction:column;align-items:flex-start}.sport-name{font-size:var(--text-title)}.date-vertical{flex-direction:row;align-items:baseline;gap:.5rem;margin-right:0}.date-day{margin:0;font-size:1.5rem}.classification-emoji{font-size:1.5rem}.stat-value-large{font-size:2rem}.stat-label-large{font-size:.5rem}.stats-grid{grid-template-columns:repeat(2,1fr)}.stat-value{font-size:1.125rem}}.workout-card{background:var(--color-background);max-width:800px;margin:2rem auto;overflow:hidden}.workout-card-header{align-items:center;padding:1.25rem 2.5rem;display:flex;position:relative}.workout-card-header:after{content:"";background:color-mix(in oklch, var(--color-border) 72%, transparent);height:1px;position:absolute;bottom:0;left:2.5rem;right:2.5rem}.header-brand{font-family:var(--font-display);font-size:var(--text-caption);font-weight:var(--weight-extrabold);letter-spacing:var(--tracking-widest);color:color-mix(in oklch, var(--color-accent) 68%, var(--color-text-ghost));text-transform:uppercase}.workout-card-footer{justify-content:center;align-items:center;gap:.75rem;padding:1.25rem 2.5rem;display:flex;position:relative}.workout-card-footer:before{content:"";background:color-mix(in oklch, var(--color-accent) 28%, var(--color-surface));height:1px;position:absolute;top:0;left:2.5rem;right:2.5rem}.footer-text{font-family:var(--font-display);font-size:var(--text-caption);font-weight:var(--weight-extrabold);letter-spacing:var(--tracking-widest);color:color-mix(in oklch, var(--color-accent) 42%, var(--color-text-invisible));text-transform:uppercase}@media (width<=768px){.workout-card{margin:1rem}.workout-card-header{padding:1rem 1.5rem}.workout-card-header:after{left:1.5rem;right:1.5rem}.workout-card-footer{padding:1rem 1.5rem}.workout-card-footer:before{left:1.5rem;right:1.5rem}.header-brand{font-size:var(--text-caption)}}
