:root{font-family:system-ui,Avenir,Helvetica,Arial,sans-serif;line-height:1.5;font-weight:400;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{margin:0;min-width:320px;min-height:100vh}button{cursor:pointer}button:focus,button:focus-visible{outline:none}.glass-nav{position:fixed;top:20px;left:50%;transform:translate(-50%);background:var(--nav-bg);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border:1px solid var(--nav-border);padding:12px 32px;border-radius:100px;z-index:100;box-shadow:var(--nav-shadow);transition:all .3s ease;font-family:ui-rounded,SF Pro Rounded,SF Pro,-apple-system,BlinkMacSystemFont,sans-serif}.glass-nav:hover{background:var(--nav-bg);border-color:var(--color-text-muted);filter:brightness(1.1)}.glass-nav ul{display:flex;list-style:none;gap:32px;margin:0;padding:0}.glass-nav a{text-decoration:none;color:var(--color-text-muted);font-size:.95rem;font-weight:600;transition:color .2s ease}.glass-nav a:hover{color:var(--color-text)}.fixed-controls{position:fixed;top:24px;right:24px;display:flex;align-items:center;gap:16px;z-index:100}#clock{font-size:.9rem;color:var(--color-text);font-family:ui-rounded,SF Pro Rounded,SF Pro,-apple-system,BlinkMacSystemFont,sans-serif;font-variant-numeric:tabular-nums;border:var(--nav-border) 1px solid;padding:6px 12px;border-radius:8px;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.theme-toggle{background:transparent;border:1px solid var(--color-border);color:var(--color-text);width:40px;height:40px;border-radius:50%;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .2s ease;outline:none}.theme-toggle:hover{background:var(--color-accent-subtle);border-color:var(--color-text-muted)}.theme-toggle i{font-size:1.1rem}body.light-mode .moon-icon{display:block}body.light-mode .sun-icon{display:none}body:not(.light-mode) .moon-icon{display:none}body:not(.light-mode) .sun-icon{display:block}.hero-section{min-height:100vh;display:flex;align-items:center;justify-content:flex-start;position:relative;padding:0 8%;overflow:hidden;background:var(--background-color)}.hero-section:after{content:"";position:absolute;inset:0;pointer-events:none}.hero-content{position:absolute;top:25%;left:5%;transform:translateY(-50%);text-align:left;z-index:2;max-width:800px}.hero-content h1{font-size:clamp(2.5rem,3.4vw,4.6rem);font-weight:400;margin:0;line-height:1.2;padding-bottom:.2em;letter-spacing:-.03em;background:var(--gradient-heading);color:var(--color-text);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;white-space:nowrap}body.light-mode .hero-content h1{background:var(--gradient-heading);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}.hero-content .subtitle{font-size:clamp(1.2rem,1vw,1.4rem);margin-top:-1rem;color:var(--subtitle);font-weight:500;text-shadow:1px 1px 5px var(--subtitle-shadow)}.bio-snippet{color:var(--color-text);font-size:.8rem;font-weight:400;line-height:1.6;display:flex;flex-direction:column;gap:1.5rem;z-index:2;margin-top:2rem;max-width:200px}.bio-snippet p{margin:0}.bio-snippet strong{color:var(--color-text-emphasis);font-weight:700;font-size:1rem}.hero-footer{position:absolute;bottom:32px;right:32px;left:auto;text-align:right;color:var(--color-text);font-size:.85rem;z-index:10;display:flex;flex-direction:column;gap:4px;opacity:.7}.hero-footer p{margin:0}.hero-background{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:120%;height:120%;background:var(--background-color);filter:blur(80px);opacity:.6;z-index:1;pointer-events:none}footer{text-align:center;padding:40px;color:var(--color-text-muted);font-size:.9rem;border-top:1px solid var(--color-border);margin-top:60px}.section-title{font-size:2.5rem;font-weight:700;margin-bottom:3rem;text-align:center;background:linear-gradient(to right,var(--color-text),var(--color-text-muted));background-clip:text;-webkit-background-clip:text;-webkit-text-fill-color:transparent;opacity:.9}.projects-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:32px}.project-card{background:var(--background-card);border:1px solid var(--color-border);border-radius:var(--radius-lg);overflow:hidden;transition:transform .3s ease,box-shadow .3s ease}.project-card:hover{transform:translateY(-5px);box-shadow:var(--shadow-soft);border-color:var(--color-text-muted)}.card-image{height:220px;background-size:cover;background-position:center;background-color:#000}.placeholder-gradient{background:linear-gradient(45deg,#1a1a1a,#2a2a2a)}.card-content{padding:24px}.card-content h3{margin:0;font-size:1.4rem;font-weight:600}.tags{display:flex;flex-wrap:wrap;gap:8px;margin:12px 0}.tags span{font-size:.75rem;padding:4px 10px;background:var(--color-accent-subtle);border:1px solid var(--color-border);border-radius:100px;color:var(--color-text-muted)}.card-content p{font-size:.95rem;color:var(--color-text-muted);margin-bottom:20px;line-height:1.6}.btn-link{display:inline-flex;align-items:center;gap:8px;color:var(--color-text);text-decoration:none;font-weight:500;font-size:.9rem}.btn-link:hover{text-decoration:underline}.about-grid{display:grid;grid-template-columns:1fr 1.5fr;gap:60px;align-items:center}.about-image{display:flex;justify-content:center}.image-wrapper{position:relative;width:280px;height:280px}.profile-pic{width:100%;height:100%;object-fit:cover;border-radius:50%;filter:grayscale(20%);transition:filter .3s}.profile-pic:hover{filter:grayscale(0%)}.about-text{font-size:1.1rem;color:var(--color-text-muted)}.about-text .lead{font-size:1.3rem;color:var(--color-text);margin-bottom:24px}.about-text p{margin-bottom:20px}.contact-wrapper{display:grid;grid-template-columns:1fr 1.5fr;gap:60px;background:var(--background-card);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:60px}.contact-details{display:flex;flex-direction:column;gap:24px}.contact-item{display:flex;align-items:center;gap:16px;font-size:1.1rem;color:var(--color-text-muted)}.contact-item i{font-size:1.4rem;color:var(--color-text)}.contact-item a{color:inherit;text-decoration:none;transition:color .2s}.contact-item a:hover{color:var(--color-text)}.modern-form{display:flex;flex-direction:column;gap:24px}.form-group{position:relative}.form-group input,.form-group textarea{width:100%;padding:1.5rem 1rem .5rem;min-height:56px;background:var(--background-color);border:1px solid var(--color-border);border-radius:var(--radius-md);color:var(--color-text);font-size:1rem;outline:none;transition:all .2s ease;font-family:inherit;box-sizing:border-box}.form-group textarea{resize:vertical;min-height:120px}.form-group input:focus,.form-group textarea:focus{border-color:var(--color-text);background:#ffffff05}.form-group label{position:absolute;left:1rem;top:18px;color:var(--color-text-muted);font-size:1rem;font-weight:500;pointer-events:none;transition:all .2s cubic-bezier(.4,0,.2,1);transform-origin:left top;padding:0;background:transparent}.form-group input:focus~label,.form-group input:not(:placeholder-shown)~label,.form-group textarea:focus~label,.form-group textarea:not(:placeholder-shown)~label{top:8px;transform:scale(.75);color:var(--color-text)}.btn-submit{align-self:flex-start;background:var(--color-text);color:var(--background-color);border:none;padding:14px 32px;border-radius:100px;font-size:1rem;font-weight:600;cursor:pointer;transition:transform .2s,box-shadow .2s}.btn-submit:hover{transform:translateY(-2px);box-shadow:0 5px 15px #fff3}.social-sidebar{position:fixed;left:32px;bottom:32px;display:flex;flex-direction:column;gap:20px;z-index:10}.social-sidebar a{color:var(--color-text-muted);font-size:1.4rem;transition:all .2s ease}.social-sidebar a:hover{color:var(--color-text);transform:translateY(-2px)}:root{--grid: rgba(255, 255, 255, .12);--axis: rgba(255, 255, 255, .35)}body.light-mode{--grid: rgba(0, 0, 0, .18);--axis: rgba(0, 0, 0, .55)}.cycling-scope{--primary: #2b6ef7;--primary-hover: #1a56d6;--bg: #101010;--text: #e0e0e0;--border: #2a2a2a;--card-bg: #1a1a1a;--card-shadow: 0 4px 12px rgba(0, 0, 0, .5);--muted: #888888;--gray-bg: #1a1a1a;min-height:100vh;margin:0;padding:0;background-color:var(--bg);color:var(--text);font-family:system-ui,Avenir,Helvetica,Arial,sans-serif;line-height:1.5;font-weight:400;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.cycling-scope.no-scroll{height:100vh;overflow:hidden;display:flex;flex-direction:column}.centered-content-wrapper{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;width:100%;overflow:hidden}.cycling-scope.allow-scroll{min-height:100vh;overflow:auto}body.light-mode .cycling-scope{--bg: #ffffff;--text: #1a1a1a;--border: #e1e4e8;--card-bg: #f8f9fa;--card-shadow: 0 4px 12px rgba(0, 0, 0, .05);--muted: #666666;--gray-bg: #f8f9fa}.cycling-scope a{font-weight:500;color:var(--primary);text-decoration:inherit}.cycling-scope a:hover{color:var(--primary-hover)}.cycling-scope h1{font-size:3.2em;line-height:1.1;color:var(--text)}.cycling-scope button{border-radius:8px;border:1px solid transparent;padding:.6em 1.2em;font-size:1em;font-weight:600;font-family:inherit;background-color:var(--primary);color:#fff;cursor:pointer;transition:all .2s}.cycling-scope button:hover{background-color:var(--primary-hover)}.cycling-scope button:focus,.cycling-scope button:focus-visible{outline:4px auto -webkit-focus-ring-color}@media(max-width:768px){.cycling-scope h1{font-size:2.5em}}.cycling-scope{max-width:1280px;margin:0 auto;padding:2rem;text-align:center}.logo{height:6em;padding:1.5em;will-change:filter;transition:filter .3s}.logo:hover{filter:drop-shadow(0 0 2em #646cffaa)}.logo.react:hover{filter:drop-shadow(0 0 2em #61dafbaa)}@keyframes logo-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@media(prefers-reduced-motion:no-preference){a:nth-of-type(2) .logo{animation:logo-spin infinite 20s linear}}.card{padding:2em}.read-the-docs{color:#888}.cycling-main-nav{padding:.75rem 1.5rem;background:var(--bg);display:flex;justify-content:space-between;align-items:center;position:sticky;top:0;z-index:3000;border-bottom:1px solid var(--border);transition:background .3s,border-color .3s}.nav-links{display:flex;gap:1.5rem;align-items:center}.theme-toggle-btn{background:var(--card-bg)!important;border:1px solid var(--border)!important;color:var(--text)!important;padding:8px 12px!important;border-radius:50%!important;width:40px;height:40px;display:flex;align-items:center;justify-content:center;cursor:pointer;font-size:1.2rem;transition:all .2s cubic-bezier(.4,0,.2,1)}.theme-toggle-btn:hover{transform:rotate(15deg) scale(1.1);background:var(--border)!important}.nav-link{color:var(--primary);text-decoration:none;padding:.5rem .75rem;border-radius:6px;transition:all .2s;font-weight:500;font-size:.95rem}.nav-link:hover{background-color:var(--card-bg);color:var(--primary-hover)}@media(max-width:480px){.cycling-main-nav{padding:.75rem}.nav-links{gap:.5rem}.nav-link{font-size:.9rem;padding:.4rem .6rem}}body.hide-header .cycling-main-nav{display:none!important}:root{--bg: var(--bg);--card: var(--card-bg);--text: var(--text);--accent: var(--primary);--accent-neg: #ef4444;--muted: #64748b}*{box-sizing:border-box}.container{max-width:640px;margin:0 auto;padding:24px;display:flex;flex-direction:column;width:100%}h1{margin:0 0 16px;font-size:1.5rem;font-weight:600}.reading{background:var(--card-bg);border:1px solid var(--border);border-radius:12px;padding:24px;display:grid;gap:12px;box-shadow:var(--card-shadow)}.value{display:flex;align-items:baseline;gap:8px;font-variant-numeric:tabular-nums}#gradientValue{font-size:3.5rem;font-weight:700;letter-spacing:-.02em}.unit{font-size:1.25rem;color:var(--muted);font-weight:500}@media(max-width:480px){.container{padding:16px}#gradientValue{font-size:5rem}.reading{padding:16px;gap:8px}.btn{flex:1 1 100%;width:100%;padding:14px 16px;font-size:1rem;text-align:center}.debug{font-size:.8rem}}@media(max-width:350px){#gradientValue{font-size:4rem}.unit{font-size:1rem}}.status{font-size:.95rem;color:var(--muted)}.controls{width:100%;display:flex;gap:12px;margin-top:16px;flex-wrap:wrap}.btn{flex:1;min-width:120px;background:var(--accent);color:#fff;border:none;border-radius:8px;padding:12px 24px;font-size:.95rem;font-weight:600;cursor:pointer;text-align:center;transition:background .2s}.btn:hover:not(:disabled){background:#1a56d6}.btn:disabled{opacity:.2;cursor:not-allowed}.debug{margin-top:16px;font-size:.9rem;color:var(--muted);display:grid;gap:6px}.positive{color:var(--accent)}.negative{color:var(--accent-neg)}.neutral{color:var(--text)}.power-page{--accent: var(--primary, #2b6ef7);--blue: var(--primary, #2b6ef7);--blue-hover: var(--primary-hover, #1a56d6)}.power-page{font-family:Inter,-apple-system,blinkmacsystemfont,Segoe UI,Roboto,sans-serif;padding:24px;width:100%}h1{margin:0 0 24px;font-size:24px;font-weight:700;color:var(--text)}textarea{width:100%;min-height:200px;font-family:monospace}.drop-zone{width:100%;max-width:800px;margin:0 auto 24px;padding:40px 20px;border:2px dashed var(--border);border-radius:12px;background:var(--gray-bg);text-align:center;cursor:pointer;transition:all .2s ease;display:flex;flex-direction:column;align-items:center;justify-content:center}.drop-zone:hover,.drop-zone.dragging{border-color:var(--blue);background:#2b6ef70d}.drop-zone.has-file{border-style:solid;border-color:#4caf50;background:#4caf500d}.drop-hint strong,.file-info strong{display:block;font-size:18px;margin-bottom:8px}.drop-hint p,.file-info p{margin:0;color:var(--muted);font-size:14px}.main-controls{display:flex;justify-content:center;gap:12px;margin-bottom:32px}.primary-button{padding:8px 12px;background:var(--accent);color:#fff;border:none;border-radius:6px;cursor:pointer;font-family:inherit;font-weight:500}.primary-btn{padding:10px 24px;background:var(--blue);color:#fff;font-weight:600;border-radius:8px;transition:background .2s;border:none;cursor:pointer}.primary-btn:hover{background:var(--blue-hover)}.secondary-btn{padding:10px 24px;background:var(--card-bg);color:var(--text);border:1px solid var(--border);font-weight:600;border-radius:8px;cursor:pointer}.secondary-btn:hover{background:var(--gray-bg)}.controls{display:grid;grid-template-columns:repeat(auto-fill,minmax(130px,1fr));gap:16px;background:var(--gray-bg);padding:20px;border-radius:12px;border:1px solid var(--border);max-width:1000px;margin:0 auto 24px}.controls>div{display:flex;flex-direction:column;gap:6px}.controls input,.controls select{padding:8px;border:1px solid var(--border);border-radius:6px;font-size:14px;background-color:var(--card-bg);color:var(--text)}label{font-size:13px;font-weight:500}.chart-wrapper{margin-top:20px}.chart-container{width:100%;background:var(--card-bg);border:1px solid var(--border);border-radius:12px;padding:0;position:relative;box-shadow:var(--card-shadow);overflow:hidden}.chart-row{display:flex;align-items:stretch;border-bottom:1px solid var(--border)}.chart-row:last-child{border-bottom:none}.chart-main{flex:1;position:relative;padding:10px;min-width:0}.chart-info-side{width:100px;padding:15px 12px;display:flex;flex-direction:column;justify-content:flex-start;border-right:1px solid var(--border);background:var(--gray-bg)}.chart-label-mini{font-size:11px;font-weight:700;color:var(--muted);text-transform:uppercase}.chart-stats-mini{font-size:10px;color:var(--muted);margin-top:4px}.chart-stats-side{width:160px;padding:15px;display:flex;flex-direction:column;gap:8px;border-left:1px solid var(--border);background:var(--gray-bg)}.chart-value-side{width:130px;padding:15px;display:flex;flex-direction:column;align-items:flex-end;justify-content:center;border-left:1px solid var(--border)}.chart-row-value{font-size:24px;font-weight:800;color:var(--text);line-height:1}.chart-row-unit{font-size:11px;color:var(--muted);font-weight:600;margin-top:4px}canvas{display:block;width:100%}#chartPower,#chartSpeed{height:110px}#chartElev{height:140px}@media(max-width:768px){.chart-info-side{width:60px;padding:10px 8px}.chart-label-mini{font-size:9px}.chart-stats-mini{font-size:8px}.chart-stats-side{width:120px;padding:10px;gap:6px}.chart-value-side{width:90px;padding:10px}.chart-row-value{font-size:18px}.chart-row-unit{font-size:9px}#chartPower,#chartSpeed{height:90px}#chartElev{height:120px}.hover-item{gap:2px}.hover-label{font-size:8px}.hover-value{font-size:12px}.hover-unit{font-size:8px}}@media(max-width:768px){body{padding:16px}h1{font-size:20px;margin-bottom:20px}.drop-zone{padding:24px 16px;margin-bottom:20px}.drop-hint strong,.file-info strong{font-size:16px}.controls{grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:12px;padding:16px}.stats{font-size:14px;padding:10px 12px;width:100%;box-sizing:border-box}}@media(max-width:480px){.main-controls{flex-direction:column;width:100%}.primary-btn,.secondary-btn{width:100%;text-align:center;padding:12px}.controls{grid-template-columns:1fr}.controls>div{width:100%}.controls input,.controls select{width:100%;box-sizing:border-box}.chart-container{padding:8px;border-radius:8px}#chartPower{height:180px}#chartElev{height:100px}.drop-zone{min-height:15px}}#hoverBox{position:absolute;top:16px;right:16px;pointer-events:none;background:var(--card-bg);border:1px solid var(--border);border-radius:6px;padding:10px;font-size:13px;color:var(--text);box-shadow:0 4px 12px #0003;display:none;z-index:10;min-width:100px;flex-direction:column;gap:8px;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.hover-item{display:flex;flex-direction:column;align-items:flex-end}.hover-label{font-size:10px;text-transform:uppercase;color:var(--muted);font-weight:600}.hover-value{font-size:16px;font-weight:700;color:var(--text)}.hover-unit{font-size:10px;font-weight:500;color:var(--muted);margin-left:2px}.note{text-align:center;color:var(--muted);font-size:14px;margin-bottom:24px}.stats{background:var(--blue);color:#fff;padding:12px 20px;border-radius:8px;font-weight:500;text-align:center;margin-top:24px;box-shadow:var(--shadow)}.power-placeholder{width:100%;min-height:300px;display:flex;align-items:center;justify-content:center;background:var(--card-bg);border:2px dashed var(--border);border-radius:12px;margin-top:20px}.placeholder-content{text-align:center;color:var(--muted)}.placeholder-icon{font-size:3rem;margin-bottom:12px;opacity:.5}.ride-controls-drawer{position:fixed;bottom:-100%;left:0;right:0;background:var(--bg);opacity:.98;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);transition:bottom .4s cubic-bezier(.4,0,.2,1);z-index:2000;padding:20px 10px 40px;display:flex;flex-direction:column;align-items:center;border-top:1px solid var(--border)}.ride-controls-drawer.open{bottom:0}.controls-header{width:100%;display:flex;flex-direction:column;align-items:center;margin-bottom:25px}.controls-header h3{color:var(--text);margin:0 0 15px;font-size:1.2rem;font-weight:600}.close-controls-btn{background:#2b6ef7;color:#fff;border:none;border-radius:8px;padding:8px 24px;font-size:.9rem;font-weight:600;cursor:pointer;transition:transform .2s}.close-controls-btn:active{transform:scale(.95)}.controls-actions{width:100%;display:flex;flex-wrap:wrap;justify-content:center;gap:10px}.controls-actions button{background:#2b6ef7;color:#fff;border:none;border-radius:8px;padding:12px 20px;font-size:.85rem;font-weight:600;cursor:pointer;flex:1;min-width:140px;max-width:200px;white-space:nowrap;transition:all .2s}.controls-actions button:active{transform:scale(.98);background:#1a56d6}.finish-btn{background:#d32f2f!important}.finish-btn:active{background:#b71c1c!important}.cancel-edit-btn{background:#444!important;color:#bbb!important}.finish-edit-btn{background:#2b6ef7!important}.profile-management{width:100%;max-width:500px;margin-bottom:20px}.profile-management h4{color:var(--muted);font-size:.8rem;text-transform:uppercase;margin-bottom:10px;padding-left:5px}.profile-list{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:10px}.profile-item{display:flex;align-items:center;background:var(--card-bg);border:1px solid var(--border);border-radius:6px;padding:2px 5px;transition:border-color .2s}.profile-item.active{border-color:var(--blue)}.profile-item input{background:transparent;border:none;color:var(--text);font-size:.85rem;padding:6px;width:80px;outline:none}.del-profile-btn{background:transparent!important;border:none!important;color:#666!important;padding:0 4px!important;min-width:unset!important;font-size:1.1rem!important}.del-profile-btn:hover{color:#d32f2f!important}.add-profile-btn{background:var(--card-bg)!important;color:var(--muted)!important;border:1px dashed var(--border)!important;border-radius:6px!important;padding:6px 12px!important;font-size:.8rem!important;min-width:unset!important}.add-profile-btn:hover{color:var(--text)!important;border-color:var(--muted)!important}.ride-settings-overlay{position:fixed;inset:0;background:#000000b3;display:flex;align-items:center;justify-content:center;z-index:4000;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);overflow-y:auto;padding:20px}.ride-settings-modal{background:var(--bg);width:90%;max-width:400px;border-radius:16px;overflow:hidden;box-shadow:0 20px 25px -5px #0000001a,0 10px 10px -5px #0000000a;margin-top:auto;margin-bottom:auto}.settings-header{padding:16px 20px;border-bottom:1px solid var(--border);display:flex;justify-content:space-between;align-items:center;background:var(--card-bg)}.settings-header h3{margin:0;font-size:1.1rem;color:var(--text)}.close-btn{background:none;border:none;font-size:1.5rem;color:var(--muted);cursor:pointer}.settings-body{padding:20px;display:flex;flex-direction:column;gap:16px}.setting-group{display:flex;flex-direction:column;gap:8px}.setting-group label{font-size:.85rem;font-weight:500;color:var(--muted)}.setting-group input,.setting-group select{padding:10px;border:1px solid var(--border);border-radius:8px;background:var(--bg);color:var(--text);font-size:1rem;width:100%;box-sizing:border-box}.settings-row{display:flex;gap:16px}.settings-row .setting-group{flex:1}.settings-footer{padding:16px 20px;border-top:1px solid var(--border);display:flex;gap:10px;background:var(--card-bg)}.save-btn{flex:2;padding:12px;background:var(--primary);color:#fff;border:none;border-radius:8px;font-weight:600;cursor:pointer;transition:opacity .2s}.save-btn:hover{opacity:.9}.cancel-btn{flex:1;padding:12px;background:var(--border);color:var(--text);border:none;border-radius:8px;font-weight:500;cursor:pointer}body.hide-header .ride-settings-modal{background:#2a2a2a;color:#fff;border:1px solid #444}body.hide-header .settings-header,body.hide-header .settings-footer{background:#1a1a1a;border-color:#444}body.hide-header .settings-header h3,body.hide-header .setting-group label{color:#ccc}body.hide-header .setting-group input,body.hide-header .setting-group select{background:#333;border-color:#555;color:#fff}.realtime-ride-page{width:100%;height:100%;background:var(--bg);color:var(--text);font-family:Inter,sans-serif;display:flex;flex-direction:column;position:relative;overflow:hidden}.dashboard-container{width:100%;height:100%;display:grid;grid-template-rows:8fr 1fr;overflow:hidden;background-color:var(--bg)}.ride-dashboard{height:100%;overflow:hidden;position:relative}.dashboard-grid{display:grid;grid-template-columns:repeat(8,1fr);grid-template-rows:repeat(6,1fr);gap:2px;padding:0;height:100%;box-sizing:border-box;overflow:hidden;background:var(--border)}.dashboard-footer{display:flex;justify-content:center;align-items:center;padding:0 20px;background-color:var(--bg);border-top:1px solid var(--border);z-index:10}.dashboard-slot{background:var(--bg);overflow:hidden;position:relative;min-height:80px}.ride-setup-container{height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;background:var(--bg);color:var(--text);padding:20px;text-align:center}.ride-setup-container h2{font-size:2.5rem;margin-bottom:40px;font-weight:800;letter-spacing:-1px}.setup-actions{display:flex;flex-wrap:wrap;gap:20px;justify-content:center;max-width:600px}.setup-btn{display:flex;flex-direction:column;align-items:center;justify-content:center;width:140px;height:140px;background:var(--card-bg)!important;border:1px solid var(--border)!important;border-radius:20px!important;cursor:pointer;transition:all .2s cubic-bezier(.4,0,.2,1);font-size:.9rem!important;font-weight:600!important;color:var(--muted)!important}.setup-btn:hover{transform:translateY(-5px);background:var(--gray-bg)!important;border-color:var(--muted)!important;color:var(--text)!important;box-shadow:var(--card-shadow)}.setup-btn .icon{font-size:2.5rem;margin-bottom:12px}.setup-btn.settings-btn{border-style:dashed!important}.dashboard-slot.editing{border:2px dashed #444;cursor:pointer}.dashboard-slot.editing:hover{border-color:var(--blue);background:var(--gray-bg)}.slot-select-overlay{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;background:#000000b3;z-index:10;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.slot-select-overlay select{background:var(--card-bg);color:var(--text);padding:8px;border:1px solid var(--border);border-radius:6px;font-size:1rem}.data-field{width:100%;height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:2px;box-sizing:border-box}.data-field .label{font-size:.7rem;text-transform:uppercase;color:var(--muted);margin-bottom:0;letter-spacing:1px;font-weight:800}.data-field .value-container{display:flex;align-items:baseline;gap:4px}.data-field .value{font-size:2.8rem;font-weight:800;line-height:1;font-variant-numeric:tabular-nums;color:var(--text)}.data-field .unit{font-size:.8rem;color:var(--muted);font-weight:700}.dashboard-slot.span-2{grid-column:span 2}.dashboard-slot.large .value{font-size:4rem}.graph-slot{padding:0!important;display:flex;flex-direction:column}.graph-slot-header{position:absolute;top:8px;left:12px;z-index:2;font-size:.8rem;color:var(--muted);text-transform:uppercase}.graph-slot-value{position:absolute;top:8px;right:12px;z-index:2;font-size:1.2rem;color:var(--text);font-weight:700}.profile-nav{position:absolute;bottom:20px;left:0;width:100%;display:flex;justify-content:center;align-items:center;gap:20px;pointer-events:none}.nav-arrow{background:var(--card-bg);border:1px solid var(--border);color:var(--text);width:50px;height:50px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:1.5rem;cursor:pointer;pointer-events:auto;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);transition:all .2s ease}.nav-arrow:active{transform:scale(.95);background:var(--blue)}.profile-dots{display:flex;gap:6px;pointer-events:auto}.dot{width:8px;height:8px;border-radius:50%;background:var(--border);transition:background .2s}.dot.active{background:var(--blue);transform:scale(1.2)}body.hide-header header{display:none!important}.ride-summary{width:100%;max-width:800px;margin:0 auto;padding:20px;display:flex;flex-direction:column;height:100%;overflow-y:auto}.ride-summary h2{text-align:center;margin-bottom:20px}.summary-charts-container{flex:1;min-height:0}.summary-stats{display:grid;grid-template-columns:repeat(2,1fr);gap:10px;background:var(--card-bg);padding:15px;border-radius:12px;margin:15px 0;border:1px solid var(--border)}.training-calendar-container{display:flex;flex-direction:column;height:100%;width:100%;overflow:hidden;background-color:var(--bg);color:var(--text)}.calendar-header{display:flex;justify-content:space-between;align-items:center;padding:1rem 2rem;border-bottom:1px solid var(--border);flex-shrink:0}.calendar-title-group{display:flex;align-items:center;gap:2rem}.calendar-title-group h2{margin:0;font-size:1.5rem;font-weight:600;min-width:200px}.calendar-nav-buttons{display:flex;gap:.5rem}.header-right-controls{display:flex;align-items:center;gap:1rem}.edit-mode-btn{background:transparent;border:2px solid var(--primary);color:var(--primary);padding:.5rem 1rem;border-radius:8px;font-size:.9rem;font-weight:600;cursor:pointer;transition:all .2s ease;display:flex;align-items:center;gap:.5rem}.edit-mode-btn:hover{background:var(--primary);color:#fff;transform:translateY(-1px)}.edit-mode-btn.active{background:linear-gradient(135deg,#4caf50,#45a049);border-color:#4caf50;color:#fff;box-shadow:0 4px 12px #4caf504d}.edit-mode-btn.active:hover{background:linear-gradient(135deg,#45a049,#3d8b40)}.view-switcher{display:flex;background:var(--card-bg);border-radius:6px;padding:2px;border:1px solid var(--border)}.view-switcher button{background:transparent;border:none;padding:.4rem 1rem;font-size:.9rem;color:var(--muted);border-radius:4px;cursor:pointer}.view-switcher button.active{background:var(--primary);color:#fff}.calendar-content{flex:1;overflow:auto;padding:1rem}.month-view-grid{display:grid;grid-template-columns:repeat(7,1fr) 60px;gap:1px;background-color:var(--border);border:1px solid var(--border)}.month-cell{background-color:var(--bg);min-height:120px;padding:6px;display:flex;flex-direction:column;position:relative;transition:background .2s}.month-cell:hover{background-color:var(--card-bg)}.month-cell.different-month{opacity:.4;background-color:#050505}.light-mode .month-cell.different-month{background-color:#f0f0f0}.day-header{background-color:var(--card-bg);padding:10px;text-align:center;font-weight:600;font-size:.8rem;text-transform:uppercase;color:var(--muted)}.date-label{font-size:.9rem;font-weight:600;margin-bottom:4px;display:flex;justify-content:space-between}.tss-pill{font-size:.75rem;padding:1px 4px;border-radius:2px;background:#333;color:#fff}.tss-low{border-left:3px solid #4CAF50}.tss-med{border-left:3px solid #FFC107}.tss-high{border-left:3px solid #ff9800}.tss-extreme{border-left:3px solid #F44336}.week-summary-col{background-color:var(--card-bg);display:flex;flex-direction:column;justify-content:center;align-items:center;font-size:.85rem;font-weight:700;color:var(--muted);border-left:1px solid var(--border)}.workout-list{display:flex;flex-direction:column;gap:2px;margin-top:4px}.workout-mini-card{font-size:.7rem;padding:2px 4px;background:var(--card-bg);border-radius:2px;display:flex;justify-content:space-between;align-items:center;gap:4px}.wo-type{font-weight:600;color:var(--text);font-size:.65rem}.wo-detail{color:var(--muted);font-size:.6rem}.date-label-right{display:flex;align-items:center;gap:6px}.add-workout-btn{width:22px;height:22px;border-radius:50%;border:none;background:linear-gradient(135deg,var(--primary),#5b9cd9);color:#fff;font-size:16px;font-weight:700;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s ease;box-shadow:0 2px 8px #0003;line-height:1}.add-workout-btn:hover{transform:scale(1.15);box-shadow:0 4px 12px rgba(var(--primary-rgb, 74, 144, 226),.4)}.add-workout-btn:active{transform:scale(.95)}.month-cell.edit-mode{cursor:default}.month-cell.edit-mode:hover{background-color:rgba(var(--primary-rgb, 74, 144, 226),.08)}.workout-mini-card.editable{cursor:pointer;transition:all .2s ease;border:1px solid transparent}.workout-mini-card.editable:hover{background:var(--primary);color:#fff;border-color:var(--primary);transform:translate(2px)}.workout-mini-card.editable:hover .wo-type,.workout-mini-card.editable:hover .wo-detail{color:#fff}.ftp-indicator{position:fixed;bottom:20px;right:20px;background:linear-gradient(135deg,#1a1a2e,#16213e);color:#4caf50;padding:8px 16px;border-radius:20px;font-size:.85rem;font-weight:600;box-shadow:0 4px 20px #0000004d;border:1px solid rgba(76,175,80,.3);z-index:100;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.year-view-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:1rem;padding:1rem}.year-month-card{background:var(--card-bg);border:1px solid var(--border);border-radius:8px;padding:1rem;cursor:pointer;transition:all .3s ease;display:flex;flex-direction:column;gap:.75rem}.year-month-card:hover{transform:translateY(-4px);box-shadow:0 8px 16px #0003;border-color:var(--primary)}.year-month-name{font-size:1.1rem;font-weight:700;color:var(--text);text-transform:uppercase;letter-spacing:.5px}.year-sparkline{width:100%;height:40px;margin:.5rem 0}.year-sparkline svg{display:block}.year-month-stats{display:flex;justify-content:space-between;align-items:center;gap:1rem;padding-top:.5rem;border-top:1px solid var(--border)}.stat-item{display:flex;align-items:baseline;gap:.25rem}.stat-value{font-size:1.5rem;font-weight:700;color:var(--primary)}.stat-label{font-size:.75rem;color:var(--muted);text-transform:uppercase;letter-spacing:.5px}.week-view-container{display:flex;flex-direction:column;gap:1.5rem;height:100%}.week-summary-bar{background:var(--card-bg);padding:1rem 1.5rem;border-radius:12px;border:1px solid var(--border);display:flex;align-items:center;justify-content:space-between}.week-summary-bar h3{margin:0;font-size:1.5rem;font-weight:700}.week-subtitle{margin:4px 0 0;font-size:.9rem;color:var(--muted)}.week-legend-bar{background:var(--card-bg);border:1px solid var(--border);border-radius:12px;padding:1rem 1.5rem;display:flex;flex-direction:column;gap:.5rem;margin-top:auto}.legend-label{font-size:.75rem;font-weight:700;color:var(--muted);letter-spacing:.05em}.legend-content{font-size:.9rem;color:var(--text);line-height:1.5}.notes-editor{width:100%;min-height:80px;background:#ffffff08;border:1px solid var(--primary);border-radius:8px;padding:.75rem;color:var(--text);font-family:inherit;resize:vertical;font-size:.9rem}.notes-editor:focus{outline:none;box-shadow:0 0 0 2px rgba(var(--primary-rgb, 74, 144, 226),.2)}.notes-display{white-space:pre-wrap}.week-tss-total{display:flex;flex-direction:column;align-items:flex-end}.tss-label{font-size:.7rem;text-transform:uppercase;font-weight:700;color:var(--muted);letter-spacing:.05em}.tss-value{color:var(--primary);font-weight:800;font-size:1.5rem}.week-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:12px;flex:1;overflow-y:auto;padding-bottom:20px}.week-day-column{background:var(--card-bg);border:1px solid var(--border);border-radius:16px;display:flex;flex-direction:column;padding:16px;transition:all .2s ease;min-height:400px}:global(body.light-mode) .week-day-column{background:#fff;border:none;box-shadow:0 4px 20px #00000008}.week-day-column.edit-mode{border:1px dashed var(--primary);background:rgba(var(--primary-rgb, 43, 110, 247),.02)}.week-day-header{background:transparent;padding:0 0 16px;border:none;display:flex;flex-direction:column;gap:4px}.day-name{font-weight:700;text-transform:uppercase;font-size:.7rem;letter-spacing:.05em;color:var(--muted);margin-bottom:0}.day-date{font-size:.8rem;color:var(--text);opacity:.7}.week-workout-list{padding:0;display:flex;flex-direction:column;gap:16px;flex:1}.rest-day{color:var(--muted);font-size:.9rem;margin-top:1rem;opacity:.5}.week-workout-card{background:transparent;border:none;border-radius:0;transition:opacity .2s;border-left:2px solid transparent;padding:0 0 0 8px;position:relative}.week-workout-card:hover{border-left-color:var(--primary);transform:none;background:transparent}.week-workout-card.editable:hover{cursor:pointer;opacity:.8}.wo-card-header{margin-bottom:4px}.wo-period-label{font-size:.65rem;font-weight:700;text-transform:uppercase;color:var(--muted);display:block;margin-bottom:2px}.wo-title{font-size:1rem;font-weight:700;margin-bottom:4px;line-height:1.2;color:var(--text)}.wo-badge{display:inline-block;font-size:.7rem;padding:2px 6px;border-radius:4px;background:var(--bg);border:1px solid var(--border);color:var(--text);margin-bottom:6px;font-weight:500}:global(body.light-mode) .wo-badge{background:#f5f5f7;border-color:#e1e1e6;color:#333}.wo-stats-list{display:flex;flex-direction:column;gap:2px}.wo-stat-item{font-size:.75rem;color:var(--muted);display:flex;align-items:center;gap:6px}.wo-stat-item:before{content:"•";font-size:.6rem;color:var(--border)}@media(max-width:1200px){.week-grid{grid-template-columns:repeat(4,1fr)}}@media(max-width:768px){.week-grid{grid-template-columns:repeat(1,1fr)}.week-day-column{min-height:auto}}@media(max-width:480px){.week-grid,.year-view-grid{grid-template-columns:1fr}}.workout-modal-overlay{position:fixed;inset:0;background:#000000b3;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:1000;animation:fadeIn .2s ease}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.workout-modal{background:var(--card-bg, #1a1a2e);border-radius:16px;width:90%;max-width:480px;max-height:90vh;overflow-y:auto;box-shadow:0 20px 60px #0006;border:1px solid var(--border, #333);animation:slideUp .3s ease}@keyframes slideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.modal-header{display:flex;justify-content:space-between;align-items:center;padding:1.25rem 1.5rem;border-bottom:1px solid var(--border, #333)}.modal-header h3{margin:0;font-size:1.25rem;font-weight:600;color:var(--text, #fff)}.modal-header .close-btn{background:transparent;border:none;font-size:1.5rem;color:var(--muted, #888);cursor:pointer;padding:0;line-height:1;transition:color .2s,transform .2s}.modal-header .close-btn:hover{color:var(--text, #fff);transform:scale(1.1)}.workout-modal form{padding:1.5rem}.form-group{margin-bottom:1.25rem}.form-group label{display:block;margin-bottom:.5rem;font-size:.85rem;font-weight:600;color:var(--muted, #888);text-transform:uppercase;letter-spacing:.5px}.form-group input,.form-group select,.form-group textarea{width:100%;padding:.75rem 1rem;border:1px solid var(--border, #333);border-radius:8px;background:var(--bg, #0a0a0f);color:var(--text, #fff);font-size:1rem;transition:border-color .2s,box-shadow .2s}.form-group input:focus,.form-group select:focus,.form-group textarea:focus{outline:none;border-color:var(--primary, #4a90e2);box-shadow:0 0 0 3px #4a90e233}.form-group textarea{resize:vertical;min-height:80px}.modal-actions{display:flex;justify-content:space-between;align-items:center;padding-top:1rem;border-top:1px solid var(--border, #333);margin-top:.5rem}.tss-estimate{display:flex;flex-direction:column;gap:4px;font-size:.9rem;color:var(--muted, #888)}.tss-estimate strong{color:var(--primary, #4a90e2);font-size:1.1rem}.ftp-badge{font-size:.75rem;color:#4caf50;background:#4caf5026;padding:2px 8px;border-radius:10px;display:inline-block}.button-group{display:flex;gap:.75rem}.button-group .cancel-btn{background:transparent;border:1px solid var(--border, #333);color:var(--text, #fff);padding:.6rem 1.25rem;border-radius:8px;font-size:.9rem;cursor:pointer;transition:all .2s}.button-group .cancel-btn:hover{background:var(--border, #333)}.button-group .save-btn{background:linear-gradient(135deg,var(--primary, #4a90e2),#5b9cd9);border:none;color:#fff;padding:.6rem 1.5rem;border-radius:8px;font-size:.9rem;cursor:pointer;transition:all .2s;box-shadow:0 4px 12px #4a90e233}.button-group .save-btn:hover{transform:translateY(-2px);box-shadow:0 6px 16px #4a90e24d}.form-group.animated{position:relative;margin-bottom:1.25rem}.form-group.animated input,.form-group.animated select,.form-group.animated textarea{width:100%;padding:1.5rem 1rem .5rem;min-height:56px;border:1px solid var(--border, #333);border-radius:8px;background:var(--bg, #0a0a0f);color:var(--text, #fff);font-size:1rem;transition:all .2s ease;box-sizing:border-box;appearance:none}.form-group.animated textarea{min-height:100px;line-height:1.5}.form-group.animated input:focus,.form-group.animated select:focus,.form-group.animated textarea:focus{outline:none;border-color:var(--primary, #4a90e2);box-shadow:0 0 0 3px #4a90e233;background:#ffffff0d}.form-group.animated label{position:absolute;left:1rem;top:18px;color:var(--muted, #888);font-size:.95rem;font-weight:500;pointer-events:none;transition:all .2s cubic-bezier(.4,0,.2,1);transform-origin:left top;text-transform:none;margin:0}.form-group.animated input:focus~label,.form-group.animated input:not(:placeholder-shown)~label,.form-group.animated textarea:focus~label,.form-group.animated textarea:not(:placeholder-shown)~label,.form-group.animated select:focus~label,.form-group.animated select:valid~label{top:10px;transform:scale(.75);color:var(--primary, #4a90e2);font-weight:600}.form-group.animated select{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath fill='%23666' d='M6 8.825L1.175 4 2.238 2.938 6 6.7 9.763 2.938 10.825 4z'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 1rem center;background-size:12px}.button-group .save-btn:hover{transform:translateY(-2px);box-shadow:0 6px 16px #4a90e266}.button-group .save-btn:active{transform:translateY(0)}.week-day-column.edit-mode .week-day-header{background-color:#4a90e20d}.week-add-btn.add-workout-btn{margin:.5rem auto 0;width:28px;height:28px;font-size:18px}.week-workout-card.editable{cursor:pointer;position:relative}.week-workout-card.editable:hover{border-color:var(--primary);box-shadow:0 4px 12px #0003;transform:translateY(-2px)}.week-workout-card.editable:after{content:"✎";position:absolute;top:6px;right:6px;font-size:12px;opacity:0;transition:opacity .2s;color:var(--primary)}.week-workout-card.editable:hover:after{opacity:1}.workout-modal.wide{max-width:1000px;height:85vh;display:flex;flex-direction:column}.workout-modal-content{display:flex;flex:1;overflow:hidden}.modal-left-panel{flex:0 0 350px;padding:1.5rem;overflow-y:auto;border-right:1px solid var(--border)}.modal-right-panel{flex:1;display:flex;flex-direction:column;padding:1.5rem;background-color:#0003;overflow:hidden}.workout-visualizer{height:120px;background:var(--bg);border:1px solid var(--border);border-radius:8px;margin-bottom:1.5rem;padding:10px 10px 0;display:flex;align-items:flex-end;gap:1px;position:relative;overflow:hidden}.visualizer-bar{background:var(--primary);min-width:4px;border-top-left-radius:2px;border-top-right-radius:2px;transition:height .3s ease,background .3s ease;cursor:help}.visualizer-bar:hover{filter:brightness(1.2)}.visualizer-bar.rec{background:#888}.visualizer-bar.end{background:#4caf50}.visualizer-bar.tmp{background:#8bc34a}.visualizer-bar.sst{background:#ffc107}.visualizer-bar.thr{background:#ff9800}.visualizer-bar.vo2{background:#ff5722}.visualizer-bar.ana{background:#f44336}.block-list-container{flex:1;overflow-y:auto;margin-bottom:1.5rem;padding-right:5px}.workout-block-item{background:var(--card-bg);border:1px solid var(--border);border-radius:6px;padding:10px;margin-bottom:8px;display:flex;justify-content:space-between;align-items:center;cursor:grab;transition:all .2s;-webkit-user-select:none;user-select:none}.workout-block-item:active{cursor:grabbing}.workout-block-item.selected{border-color:var(--primary);background:#4a90e21a;box-shadow:0 0 0 1px var(--primary)}.workout-block-item.dragging{opacity:.5;background:var(--bg)}.block-info{display:flex;align-items:center;gap:10px}.block-index{width:24px;height:24px;background:var(--bg);border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:.75rem;color:var(--muted);font-weight:700}.block-detail{display:flex;flex-direction:column}.block-summary{font-weight:600;font-size:.9rem}.block-meta{font-size:.75rem;color:var(--muted)}.block-actions{opacity:0;transition:opacity .2s}.workout-block-item:hover .block-actions,.workout-block-item.selected .block-actions{opacity:1}.delete-block-btn{background:transparent;border:none;color:var(--muted);cursor:pointer;padding:4px;border-radius:4px}.delete-block-btn:hover{color:#f44336;background:#f443361a}.add-block-form{background:var(--card-bg);border:1px solid var(--border);border-radius:8px;padding:1rem;display:flex;gap:10px;align-items:flex-end}.add-block-input-group{flex:1;display:flex;flex-direction:column;gap:4px}.add-block-input-group label{font-size:.75rem;color:var(--muted);text-transform:uppercase;font-weight:700}.add-block-input-group input,.add-block-input-group select{width:100%;padding:.5rem;background:var(--bg);border:1px solid var(--border);border-radius:4px;color:var(--text);font-size:.9rem}.add-block-btn{flex:0 0 auto;background:var(--primary);color:#fff;border:none;padding:.6rem 1.2rem;border-radius:6px;font-weight:600;cursor:pointer;height:36px;transition:all .2s}.add-block-btn:hover{filter:brightness(1.1);transform:translateY(-1px)}.total-stats-bar{display:flex;gap:1.5rem;padding:.75rem 0;border-top:1px solid var(--border);margin-top:.5rem;font-size:.9rem}.stat-pill{display:flex;gap:.5rem;align-items:center}.stat-pill strong{color:var(--text)}.goal-type-switcher{display:flex;gap:2px;background:var(--bg);padding:2px;border-radius:6px;border:1px solid var(--border)}.goal-type-switcher button{flex:1;padding:6px 12px;border:none;border-radius:4px;background:transparent;color:var(--muted);font-size:.85rem;font-weight:600;cursor:pointer;transition:all .2s}.goal-type-switcher button.active{background:var(--primary);color:#fff}.workout-detail-modal{background:var(--card-bg);border-radius:12px;width:95%;max-width:800px;max-height:90vh;overflow-y:auto;box-shadow:0 20px 60px #00000080;border:1px solid var(--border);display:flex;flex-direction:column}.detail-header{padding:24px;border-bottom:1px solid var(--border)}.detail-title-row{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px}.detail-title-row h2{margin:0;font-size:1.5rem;font-weight:700}.detail-main-metrics{display:flex;align-items:center;gap:40px}.metric-icon{font-size:2rem}.metric-item{display:flex;flex-direction:column}.metric-value{font-size:2.2rem;font-weight:700;font-family:Inter,system-ui,sans-serif;color:var(--text)}.metric-item.primary-goal .metric-value{color:var(--primary)}.metric-unit{font-size:.9rem;color:var(--muted);font-weight:700;text-transform:uppercase;margin-left:4px}.detail-visualizer-container{padding:0;background:#004d80;margin:0}.workout-visualizer.large{height:80px;background:transparent;border:none;border-radius:0}.detail-body{padding:24px;display:grid;grid-template-columns:350px 1fr;gap:40px}.detail-stats-table{display:flex;flex-direction:column}.table-header{display:grid;grid-template-columns:120px 80px 80px 1fr;padding-bottom:8px;border-bottom:1px solid var(--border);margin-bottom:8px}.col-label{font-size:.75rem;color:var(--muted);text-transform:uppercase;font-weight:700;text-align:right}.col-label:first-child{text-align:left}.table-row{display:grid;grid-template-columns:120px 80px 80px 1fr;padding:10px 0;align-items:center}.row-label{font-size:.85rem;color:var(--text);font-weight:500;text-align:right;padding-right:12px}.row-val{font-size:.95rem;font-family:monospace;text-align:right;padding:4px 8px;border-radius:4px}.row-val.planned{background:var(--bg);border:1px solid var(--border)}.row-val.completed{background:#ffffff0d;height:28px;margin-left:8px}.row-unit{font-size:.75rem;color:var(--muted);padding-left:12px}.detail-description h3{margin:0 0 12px;font-size:.85rem;color:var(--muted);text-transform:uppercase;font-weight:700}.description-content{font-size:.95rem;line-height:1.6;color:var(--text);white-space:pre-wrap;background:#fdfdfd;padding:16px;border-radius:8px;border:1px solid #eee;color:#333}:global(body.light-mode) .description-content{background:#fff}body:not(.light-mode) .description-content{background:#1e1e1e;border-color:#333;color:#ddd}.detail-footer{padding:16px 24px;border-top:1px solid var(--border);display:flex;justify-content:flex-end;gap:12px;background:var(--bg)}.close-bottom-btn{padding:8px 20px;border:1px solid var(--border);background:transparent;color:var(--text);border-radius:6px;font-weight:600}.close-bottom-btn:hover{background:var(--card-bg)}.workout-mini-card.clickable,.week-workout-card.clickable{cursor:pointer}.workout-mini-card.clickable:hover,.week-workout-card.clickable:hover{background:rgba(var(--primary-rgb, 74, 144, 226),.1);border-color:var(--primary)}.week-legend-bar{margin-top:2rem;background:var(--card-bg);padding:1.5rem;border-radius:12px;border:1px solid var(--border);display:flex;flex-direction:column;align-items:center;gap:12px;flex-shrink:0}:global(body.light-mode) .week-legend-bar{background:#fff;border:none;box-shadow:0 4px 20px #00000008}.legend-label{font-size:.75rem;font-weight:800;color:var(--muted);letter-spacing:.1em}.legend-content{font-size:.8rem;color:var(--muted);text-align:center;line-height:1.6;max-width:800px}.delete-wo-btn,.delete-mini-wo-btn{background:transparent;border:none;color:var(--muted);cursor:pointer;font-size:1rem;padding:2px 6px;border-radius:4px;transition:all .2s;display:flex;align-items:center;justify-content:center}.delete-wo-btn:hover,.delete-mini-wo-btn:hover{color:#f44;background:#ff444426}.delete-mini-wo-btn{font-size:.75rem;padding:1px 4px;margin-left:4px}.wo-card-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:4px}.wo-mini-content{display:flex;flex-direction:column;overflow:hidden;flex:1}.workout-mini-card{display:flex;justify-content:space-between;align-items:center;padding:6px 8px}.wo-mini-time{font-weight:700;color:var(--primary);font-size:.65rem;text-transform:uppercase}.wo-period-label{font-size:.7rem;font-weight:700;color:var(--muted);text-transform:uppercase;letter-spacing:.5px}.cycling-home{padding:40px 20px;max-width:1200px;margin:0 auto;color:var(--text-primary)}.home-header{text-align:center;margin-bottom:50px}.home-header h1{font-size:2.5rem;margin-bottom:10px;background:linear-gradient(135deg,var(--primary) 0%,var(--accent-primary) 100%);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}.home-header p{color:var(--text-secondary);font-size:1.1rem}.tools-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:25px}.tool-card,.auth-section-card{background:var(--bg-secondary);padding:30px;border-radius:16px;text-decoration:none;color:inherit;transition:transform .2s,box-shadow .2s;border:1px solid var(--border);display:flex;flex-direction:column;align-items:flex-start}.tool-card:hover,.auth-section-card:hover{transform:translateY(-5px);box-shadow:0 10px 20px #0000001a;border-color:var(--primary)}.tool-icon{font-size:2.5rem;margin-bottom:15px}.tool-card h3{margin:0 0 10px;font-size:1.4rem}.tool-card p{margin:0;color:var(--text-secondary);line-height:1.5}.auth-section-card{background:linear-gradient(135deg,rgba(var(--primary-rgb),.1),rgba(var(--accent-rgb),.05));padding:30px;display:flex;flex-direction:column;justify-content:center;align-items:flex-start}.auth-section-card h3{margin-top:0;color:var(--primary)}.action-btn{display:inline-block;padding:10px 20px;border-radius:8px;text-decoration:none;font-weight:600;margin-top:15px;transition:opacity .2s;position:relative;left:25%}.primary-btn{background:var(--bg-secondary);border:1px solid var(--primary);color:#fff}.secondary-btn{background:transparent;border:1px solid var(--primary);color:var(--primary);margin-left:10px}.action-btn:hover{opacity:.9}:root{--background-color: #050505;--background-card: #111111;--color-text: #ffffff;--color-text-emphasis: #ffffff;--color-text-muted: #888888;--color-border: #222222;--color-accent: #ffffff;--color-accent-subtle: rgba(255, 255, 255, .05);--subtitle: #523cd0;--subtitle-shadow: #523cd0;--gradient-heading: linear-gradient(to bottom right, #ffffff 40%, #dddddd);--nav-bg: rgba(30, 30, 30, .7);--nav-border: rgba(255, 255, 255, .08);--nav-shadow: 0 8px 32px rgba(0, 0, 0, .3);--font-family: "Inter", system-ui, -apple-system, sans-serif;--font-heading: "Inter", system-ui, sans-serif;--container-width: 1200px;--section-padding: 100px 0;--shadow-soft: 0 10px 40px -10px rgba(0, 0, 0, .5);--radius-lg: 24px;--radius-md: 12px}html{scroll-behavior:smooth}#root{width:100%}body{margin:0;padding:0;background-color:var(--background-color);color:var(--color-text);font-family:var(--font-family);line-height:1.6;-webkit-font-smoothing:antialiased;overflow-x:hidden;width:100%}body.light-mode{--background-color: #ffffff;--background-card: #f5f5f5;--color-text: #1a1a1a;--color-text-emphasis: #000000;--color-text-muted: #666666;--color-border: #e0e0e0;--color-accent: #000000;--color-accent-subtle: rgba(0, 0, 0, .03);--subtitle-shadow: #ffffff;--gradient-heading: linear-gradient(to bottom right, #000000 40%, #666666);--nav-bg: rgba(255, 255, 255, .85);--nav-border: rgba(0, 0, 0, .1);--nav-shadow: 0 8px 32px rgba(0, 0, 0, .1)}.section-container{max-width:var(--container-width);margin:0 auto;padding:var(--section-padding);padding-left:20px;padding-right:20px}@media(max-width:900px){.container{width:100%;padding:0 16px}.about-grid,.contact-wrapper{grid-template-columns:1fr;gap:40px}.contact-wrapper{padding:32px}.about-image{margin-bottom:20px}}@media(max-width:850px){.glass-nav{width:90%;gap:16px;bottom:20px;top:auto;left:50%;transform:translate(-50%);padding:12px 20px}.social-sidebar{bottom:100px}.hero-footer{bottom:100px;right:32px;left:auto;width:auto;text-align:right}.glass-nav ul{justify-content:center;gap:15%;width:100%}.social-sidebar{display:flex}.fixed-controls{top:20px;right:20px}.hero-content{position:absolute;top:25%;left:5%;transform:translateY(-50%);text-align:left;padding-top:0;margin-bottom:0;max-width:80%}.bio-snippet{position:relative;bottom:auto;right:auto;transform:none;text-align:left;align-items:flex-start;margin:2rem 0 0}}
