@font-face{font-family:DM Sans Variable;font-style:normal;font-weight:100 1000;font-display:swap;src:url(./dm-sans-latin-wght-normal-Xz1IZZA0.woff2) format("woff2")}@font-face{font-family:Manrope Variable;font-style:normal;font-weight:200 800;font-display:swap;src:url(./manrope-latin-wght-normal-DHIcAJRg.woff2) format("woff2")}:root{font-family:DM Sans Variable,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;color:#eef1f7;background:#0b101b;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-weight:400;font-size:14px;color-scheme:dark;--bg: #0b101b;--panel: #111927;--line: #222c3d;--muted: #8b97aa;--mint: #6ce4c5;--heading: "Manrope Variable", "DM Sans Variable", sans-serif}*{box-sizing:border-box}body{margin:0;min-width:320px}button,input,select,textarea{font:inherit}button,a,input,select,textarea{-webkit-tap-highlight-color:transparent}button{cursor:pointer}button{color:inherit}button:disabled{cursor:not-allowed;opacity:.45}a{color:inherit}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:2px solid var(--mint);outline-offset:4px}button{border:0;background:none}svg{flex-shrink:0}h1,h2,h3,p{margin:0}h1,h2,h3{font-family:var(--heading)}h2{font-size:17px;letter-spacing:-.35px;font-weight:700}h3{font-size:15px}p{line-height:1.7}::selection{background:#77e4c33b}input,select,textarea{border:1px solid #2b364a;border-radius:8px;background:#0c1422;color:#eef1f7;padding:11px 12px;min-width:0;outline-offset:2px}input::placeholder,textarea::placeholder{color:#68758a}input:hover,select:hover,textarea:hover{border-color:#485b72}input[type=date]{color-scheme:dark}select{cursor:pointer}textarea{resize:vertical;line-height:1.6}fieldset{padding:0;border:0;margin:0}button,a{touch-action:manipulation}button{transition:background .18s,color .18s,border-color .18s,transform .18s}button:active:not(.calendar-event){transform:translateY(1px)}.app-shell{min-height:100vh}.sidebar{width:236px;background:#0f1623;border-right:1px solid #202a3a;position:fixed;inset:0 auto 0 0;z-index:30;display:flex;flex-direction:column;padding:35px 19px 0}.brand{display:flex;align-items:center;gap:10px;text-decoration:none;margin-bottom:53px;padding-left:6px}.brand-icon{height:37px;width:37px;border-radius:11px;display:flex;align-items:center;justify-content:center;color:#0c211c;background:var(--mint);box-shadow:0 3px 20px #70e1c31c}.brand>span:last-child{font-family:var(--heading);font-size:21px;font-weight:800;letter-spacing:-1px;white-space:nowrap}.brand-dot{color:var(--mint)}.brand small{display:block;font-family:DM Sans Variable,sans-serif;letter-spacing:1.1px;font-size:7.7px;margin-top:5px;font-weight:500;color:#7e8aa0}.nav-label{font-size:9px;color:#68768c;letter-spacing:1.8px;margin:0 16px 14px;font-weight:600}nav{display:grid;gap:7px}.nav-item{width:100%;display:flex;align-items:center;gap:13px;padding:13px 15px;color:#97a3b5;border:1px solid transparent;border-radius:8px;text-align:left;font-size:12px;font-weight:500}.nav-item:hover{background:#192435;color:#fff}.nav-item.active{color:var(--mint);background:#6ce4c50d;border-color:#6ce4c51d}.nav-item i{margin-left:auto;width:5px;height:5px;border-radius:50%;background:var(--mint)}.sidebar-goal{position:relative;border:1px solid #293746;background:linear-gradient(125deg,#1b2b30,#15212b 70%);border-radius:11px;margin:37px 6px 25px;padding:18px 16px;overflow:hidden}.goal-mini-icon{display:flex;width:31px;height:31px;align-items:center;justify-content:center;color:var(--mint);background:#6ce4c512;border:1px solid #6ce4c528;border-radius:8px;margin-bottom:18px}.sidebar-goal .eyebrow{font-size:8px;letter-spacing:1.4px;color:#a2b7b4}.sidebar-goal h3{font-size:23px;letter-spacing:-.6px;margin:9px 0 3px}.sidebar-goal p{font-size:11px;color:#9ba9b6}.sidebar-goal-line{width:100%;height:3px;background:linear-gradient(to right,var(--mint) 29%,#2a3e43 29%);border-radius:2px;margin:18px 0 10px}.sidebar-goal>span:last-of-type{font-size:9px;color:#849c9e}.sidebar-goal>button{position:absolute;right:13px;top:18px;padding:6px;color:#9cb0b4}.sidebar-goal>button:hover{color:var(--mint)}.sidebar-bottom{margin-top:auto}.local-status{display:flex;gap:10px;align-items:center;margin:12px 8px 18px;color:#83a7a3}.local-status>span{font-size:10px;color:#b5bfcc;line-height:1.8}.local-status small{display:block;font-size:9px;color:#6e7b90}.local-status .live-dot{margin-left:auto;width:5px;height:5px}.backup-nav{width:100%;display:flex;align-items:center;gap:8px;font-size:10px;color:#95a2b5;padding:12px 9px;margin-bottom:18px}.backup-nav svg:last-child{margin-left:auto}.backup-nav:hover{color:var(--mint);background:#192435;border-radius:6px}.profile{border-top:1px solid #252e3e;padding:20px 3px;display:flex;align-items:center;gap:10px}.avatar{width:33px;height:33px;border:1px solid #435064;background:linear-gradient(125deg,#344753,#27303f);border-radius:50%;display:flex;align-items:center;justify-content:center;color:#c1d0d1}.profile>span:nth-child(2){font-size:11px;font-weight:500}.profile small{display:block;color:#7e899c;font-size:9px;font-weight:400;margin-top:4px}.version{font-size:9px;color:#6c7a90;margin-left:auto}.main-shell{margin-left:236px}.topbar{height:70px;padding:0 38px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid #202938;background:#0c121e}.breadcrumb{display:flex;align-items:center;gap:13px;font-size:10px;color:#78879b}.breadcrumb strong{font-weight:500;color:#d0d6e0}.breadcrumb>svg{color:#455369}.topbar-date{display:flex;align-items:center;gap:9px;color:#9ba8b9;font-size:10px}.live-dot{display:inline-block;background:var(--mint);border-radius:50%;width:5px;height:5px;box-shadow:0 0 7px #6ce4c526;flex-shrink:0}.mobile-menu{display:none!important}main{max-width:1600px;margin:0 auto;padding:35px 38px 0}.page-heading{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:28px}.eyebrow{font-size:9px;letter-spacing:1.6px;font-weight:600;color:#9caaba;display:flex;align-items:center;gap:8px}.eyebrow-dash{height:2px;width:14px;background:var(--mint)}h1{font-size:clamp(25px,2.4vw,35px);letter-spacing:-1.1px;font-weight:750;line-height:1.35;margin:12px 0 8px}.page-heading p{color:#8f9cae;font-size:12px}.button{display:inline-flex;justify-content:center;align-items:center;gap:9px;padding:11px 16px;border-radius:7px;border:1px solid transparent;font-size:11px;font-weight:650;white-space:nowrap;min-height:40px}.button.primary{background:var(--mint);color:#102920;box-shadow:0 4px 18px #6ce4c512}.button.primary:hover{background:#91f0d6;box-shadow:0 4px 20px #6ce4c528}.button.secondary{background:#182332;border-color:#2c3a4e;color:#d2dbe7}.button.secondary:hover{background:#26354a;border-color:#486078}.button.small{padding:6px 11px;min-height:30px;font-size:10px}.button.danger{background:#ed8e91;color:#350d16}.button.danger:hover{background:#ffaeb0}.button.danger-ghost{color:#efa2a5;background:#ef8d9910;border-color:#ef8d991a}.button.danger-ghost:hover{background:#ef8d9925}.icon-button{display:inline-flex;align-items:center;justify-content:center;min-width:30px;min-height:32px;border-radius:6px;color:#a0aec1}.icon-button:hover{background:#2a3749;color:#fff}.text-button{display:inline-flex;align-items:center;justify-content:center;gap:8px;color:#aebdcc;font-size:10px;white-space:nowrap;padding:6px 0}.text-button:hover{color:var(--mint)}.muted{color:var(--muted)}.text-mint{color:#6ce4c5}.text-blue{color:#7cb5ec}.text-purple{color:#af9af4}.text-orange{color:#e3ae7d}.demo-notice{display:flex;align-items:center;justify-content:space-between;gap:18px;background:#141e2b;border:1px solid #273448;border-radius:7px;padding:9px 13px;font-size:9px;color:#9dacbc;margin-bottom:20px;line-height:1.6}.demo-notice>span{display:flex;gap:9px;align-items:center}.demo-tag{font-size:7px;letter-spacing:1px;padding:2px 5px;background:#344257;color:#c1cede;border-radius:3px;flex-shrink:0}.demo-notice button{font-size:9px;color:#c0cedd;display:flex;align-items:center;gap:7px;text-align:left;padding:3px;flex-shrink:0}.demo-notice button:hover{color:var(--mint)}.notice{display:flex;align-items:center;gap:12px;border:1px solid #4b705b;background:#173328;border-radius:8px;padding:12px 15px;margin:0 0 16px;line-height:1.6;font-size:12px}.notice .text-button{margin-left:auto}.notice.warning{border-color:#7e6342;background:#32281f;color:#f6d3a1}.notice span{flex:1}.stats-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin-bottom:23px}.stat-card{padding:19px 20px 17px;background:linear-gradient(115deg,#141d2c,#111927);border:1px solid var(--line);border-radius:10px;overflow:hidden}.stat-top{display:flex;align-items:center;justify-content:space-between;gap:6px}.stat-top>span,.stat-card>.muted{color:#a6b1c2;font-size:10px}.stat-value{font-family:var(--heading);font-size:33px;letter-spacing:-1px;font-weight:650;display:flex;align-items:baseline;gap:8px;margin:12px 0 9px;line-height:1.25;white-space:nowrap;font-variant-numeric:tabular-nums}.stat-value>span{font-family:DM Sans Variable,sans-serif;color:#8492a7;font-weight:400;font-size:13px;letter-spacing:0}.stat-card p{font-size:8.5px;color:#7e8da1}.panel{border:1px solid var(--line);background:#111927;border-radius:11px;min-width:0}.section-heading{display:flex;align-items:center;justify-content:space-between;gap:15px;padding:23px 23px 18px}.section-heading h2{display:flex;align-items:center;gap:14px;flex-wrap:wrap}.section-heading p{font-size:10px;color:#7f8da2;margin-top:5px}.subtle-badge{display:inline-flex;align-items:center;justify-content:center;font-size:8px;font-weight:400;letter-spacing:0;background:#1a2535;border:1px solid #2b3749;padding:4px 8px;color:#9cacc2;border-radius:5px;white-space:nowrap}.week-panel{margin-bottom:22px}.week-strip{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:10px;padding:0 23px 22px}.week-day{min-width:0;border-radius:8px;position:relative}.week-day-label{display:flex;align-items:center;justify-content:center;gap:7px;margin-bottom:13px;font-size:10px;color:#7e8da2;position:relative;height:27px;text-transform:capitalize}.week-day-label strong{font-size:11px;color:#aeb9c9;font-weight:500}.week-day.today .week-day-label{color:var(--mint)}.week-day.today .week-day-label strong{color:#102a22;background:var(--mint);border-radius:50%;width:24px;height:24px;display:inline-flex;align-items:center;justify-content:center}.week-day-label>i{display:none}.day-sessions{display:grid;gap:5px}.day-workout{background:#57dbc009;border:1px solid #57dbc026;border-radius:7px;display:flex;flex-direction:column;padding:12px 10px 11px;width:100%;text-align:left;min-height:100px;color:#b6e9dc}.day-workout:hover{background:#57dbc018;border-color:#57dbc06b}.day-workout.cykling{background:#94adff09;border-color:#94adff26;color:#c3cefc}.day-workout.svømning{background:#59bfff09;border-color:#59bfff26;color:#a7dcfd}.day-workout.styrke{background:#e7ad7809;border-color:#e7ad7826;color:#ebc5a7}.day-workout-heading{display:flex;align-items:center;justify-content:space-between;width:100%;margin-bottom:10px}.day-workout .sport-icon{width:auto;height:auto;border-radius:0;background:none}.day-workout strong{font-size:10px;font-weight:550;margin-bottom:4px}.day-workout>span:last-child{font-size:8px;white-space:normal;color:#91a7af;line-height:1.7}.sport-icon{display:inline-flex;align-items:center;justify-content:center;width:37px;height:37px;border-radius:9px;background:#57dbc010;color:#6ce0c2;flex-shrink:0}.sport-icon.cykling{color:#acbdf9;background:#94adff12}.sport-icon.svømning{color:#77c9f7;background:#59bfff12}.sport-icon.styrke{color:#e4b083;background:#e7ad7812}.rest-day{width:100%;min-height:100px;border:1px dashed #273244;border-radius:7px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;color:#4d5d71;position:relative}.rest-day>span{font-size:14px}.rest-day small{font-size:8px;color:#647287}.rest-day:hover{background:#1b2c35;border-color:#6ce4c566}.rest-plus{display:none}.rest-day:hover .rest-plus{display:block;position:absolute;right:5px;top:5px;color:var(--mint)}.dashboard-middle{display:grid;grid-template-columns:minmax(0,1.9fr) minmax(250px,1fr);gap:20px;margin-bottom:30px}.volume-panel .section-heading{padding-bottom:7px}.volume-chart{padding:0 20px 18px}.volume-chart svg,.progress-chart svg{display:block;width:100%;height:auto}.grid-line{stroke:#283246;stroke-dasharray:3 4;stroke-width:.7}.axis-label{fill:#8b99af;font-family:DM Sans Variable,sans-serif;font-size:10px}.chart-legend{display:flex;align-items:center;justify-content:center;gap:21px;margin-top:1px}.chart-legend>span{display:flex;align-items:center;gap:6px;color:#9ba7ba;font-size:9px}.chart-legend i{width:6px;height:6px;border-radius:2px}.next-panel{border:1px solid #2c4247;background:radial-gradient(ellipse at 100% 0%,#22453f66,transparent 70%),linear-gradient(130deg,#16272c,#142027);border-radius:11px;padding:23px;display:flex;flex-direction:column;min-width:0;position:relative;overflow:hidden}.next-panel>.eyebrow{color:#acc8bd;font-size:8px;letter-spacing:1.3px}.next-sport{display:flex;justify-content:space-between;align-items:center;gap:12px;margin:23px 0 16px}.next-sport>.sport-icon{background:#6ce4c512;width:48px;height:48px;border:1px solid #6ce4c524;border-radius:13px}.next-sport>span:last-child:not(.sport-icon){font-size:9px;color:#a0b8b4;text-transform:capitalize}.next-panel h2{font-size:19px;letter-spacing:-.4px}.next-panel>p{font-size:10px;color:#8fa9a5;margin-top:7px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.next-metrics{display:flex;align-items:center;gap:20px;margin:20px 0;color:#b8d2cb;font-size:11px}.next-metrics>span{display:flex;align-items:center;gap:7px}.next-panel>.button{margin-top:auto;width:100%;justify-content:space-between;background:#8edbc90d;border-color:#4c726949;color:#c1ded6;font-size:10px}.next-panel>.button:hover{background:#8edbc91f}.section-heading.outside{padding:0;margin-bottom:16px}.section-heading.outside .eyebrow{font-size:8px;color:#73849a;margin-bottom:8px}.section-heading.outside h2{font-size:20px}.goal-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin-bottom:24px}.goal-card{padding:26px 28px 0;background:radial-gradient(ellipse at 100% 0,#53463230,transparent 65%),linear-gradient(120deg,#201f24,#181c29);border:1px solid #444035;border-radius:10px;position:relative;overflow:hidden}.goal-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:24px}.goal-symbol{width:37px;height:37px;border:1px solid #e6ba6c2b;border-radius:10px;display:flex;align-items:center;justify-content:center;color:#e5c389;background:#e5c3890e}.goal-tag{font-size:8px;letter-spacing:1.3px;color:#c3ad85;border:1px solid #c3ad8533;border-radius:5px;padding:4px 7px;background:#e0bf8510}.goal-date{font-size:8px;color:#b6a88f;letter-spacing:1.3px;margin-bottom:9px}.goal-card h3{font-size:25px;letter-spacing:-.8px;font-weight:650}.goal-card>p{font-size:11px;color:#9e9fa9;margin-top:7px}.goal-bottom{display:flex;align-items:flex-end;justify-content:space-between;margin-top:22px;min-height:55px;position:relative}.goal-bottom>div{position:relative;z-index:1}.goal-bottom>div>span{font-size:8px;letter-spacing:1.2px;color:#988f80;display:block;margin-bottom:8px}.goal-bottom strong{display:flex;align-items:center;gap:16px;font-weight:600;font-size:15px;color:#e3c99b}.goal-watermark{font-family:var(--heading);font-size:92px;font-weight:800;font-style:italic;letter-spacing:-8px;color:#c4b08712;position:absolute;right:4px;bottom:-15px;-webkit-user-select:none;user-select:none}.goal-watermark small{font-size:47px;letter-spacing:-4px}.goal-detail{margin-top:23px;border-top:1px solid #b4a27b1c;display:flex;justify-content:space-between;align-items:center;gap:10px;padding:13px 0;color:#93908a;font-size:8px}.triathlon{background:radial-gradient(ellipse at 100% 0,#4a506433,transparent 65%),linear-gradient(120deg,#1b2234,#171e2b);border-color:#323c58}.triathlon .goal-symbol{background:#a8b9f510;border-color:#a8b9f528;color:#b3bff1}.triathlon .goal-tag{background:#a8b9f510;border-color:#a8b9f528;color:#aab8e3}.triathlon .goal-date{color:#9ba7c6}.tri-distances{display:flex;gap:32px;margin-top:23px;min-height:54px}.tri-distances>span{display:grid;grid-template-columns:auto 1fr;align-items:center;column-gap:7px;row-gap:6px;color:#9fafd8}.tri-distances strong{font-size:18px;font-family:var(--heading);font-weight:600;color:#ced6ee}.tri-distances small{grid-column:1/-1;color:#858fa7;font-size:9px}.triathlon .goal-detail{border-color:#aab8e31a;color:#8f9ab7}.compact .goal-card{padding:20px 22px 0}.compact .goal-top{margin-bottom:17px}.compact .goal-card h3{font-size:22px}.compact .goal-symbol{width:31px;height:31px;border-radius:8px}.compact .goal-symbol svg{width:17px}.compact .goal-card>p{font-size:10px}.compact .goal-bottom,.compact .tri-distances{margin-top:17px;min-height:46px}.compact .goal-detail{margin-top:19px;padding:11px 0}.recent-panel .section-heading{padding-bottom:12px}.session-list{padding:0 23px 10px}.session-row{display:flex;align-items:center;width:100%;gap:13px;border-top:1px solid #253044;padding:14px 0;text-align:left}.session-row:hover{background:#1c293a80}.session-description{display:flex;flex-direction:column;gap:5px;flex:1;min-width:0}.session-description strong{font-size:11px;font-weight:500;text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.session-description>span{font-size:9px;color:#8492a5}.session-distance{width:95px;font-size:12px}.session-distance small{font-size:9px;color:#8492a5}.session-duration{width:110px;color:#adb8c9;font-size:10px}.status-pill{display:inline-flex;align-items:center;justify-content:center;gap:4px;padding:4px 7px;border-radius:4px;border:1px solid #798aa329;background:#798aa312;color:#a2b2c8;font-size:8px;white-space:nowrap;width:fit-content}.status-pill.gennemført{color:#8ad4b8;background:#6ce4c50b;border-color:#6ce4c51c}.row-arrow{color:#67778e;margin-left:20px}.page-footer{display:flex;align-items:center;justify-content:space-between;gap:20px;color:#5f6d83;font-size:9px;padding:28px 0}.page-footer>span:first-child{display:flex;align-items:center;gap:7px}.empty{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;gap:12px;min-height:240px;padding:30px;color:#647d8c}.empty h3{color:#cad7df;font-size:16px}.empty p{font-size:12px;max-width:350px;color:#8d9caf}.empty .button{margin-top:8px}.calendar-layout{display:grid;grid-template-columns:minmax(0,1fr) 265px;gap:20px;align-items:start}.calendar-panel{overflow:hidden}.calendar-toolbar{display:flex;justify-content:space-between;gap:10px;align-items:center;padding:22px 18px 8px;flex-wrap:wrap}.calendar-date-controls{display:flex;gap:3px;align-items:center}.calendar-date-controls h2{font-size:16px;text-transform:capitalize;margin-right:12px}.calendar-date-controls .button{margin-left:9px}.segmented{display:flex;gap:3px;padding:3px;border:1px solid #2a3648;border-radius:7px;background:#0d1522}.segmented>button{font-size:10px;border-radius:4px;padding:6px 11px;color:#8493aa}.segmented>button[aria-pressed=true]{background:#28374b;color:#dce6f4}.calendar-tip{font-size:9px;color:#7f8fa6;padding:6px 19px 18px}.calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr))}.calendar-weekday{font-size:9px;color:#94a2b7;background:#0e1725;border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:12px;text-align:center}.calendar-cell{min-height:108px;position:relative;border-right:1px solid #222e40;border-bottom:1px solid #222e40;padding:5px;min-width:0}.calendar-cell:nth-child(7n){border-right:0}.calendar-day-number{color:#b9c4d5;min-height:27px;width:100%;text-align:left;display:flex;align-items:center;padding:3px 5px;font-size:10px;border-radius:3px}.calendar-day-number>span:first-child{width:23px;height:23px;display:inline-flex;align-items:center;justify-content:center}.calendar-day-number:hover{color:var(--mint);background:#6ce4c50e}.calendar-cell.current-day .calendar-day-number>span:first-child{background:var(--mint);color:#0b2720;border-radius:50%;font-weight:600}.calendar-cell.selected-day{background:#6ce4c508;box-shadow:inset 0 0 0 1px #6ce4c550}.calendar-cell.other-month{background:#0c1421}.other-month .calendar-day-number{color:#52617a}.calendar-events{display:grid;gap:4px;margin-top:6px}.calendar-event{color:#a9decd;border:1px solid #57dbc018;border-left:2px solid #57dbc088;background:#57dbc00f;border-radius:3px;display:flex;align-items:center;gap:4px;padding:5px 3px;font-size:8px;width:100%;text-align:left;cursor:grab}.calendar-event>span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:1}.calendar-event.cykling{color:#b2c4f6;background:#94adff12;border-color:#94adff18;border-left-color:#94adff88}.calendar-event.styrke{color:#dfbb9c;background:#e7ad7812;border-color:#e7ad7818;border-left-color:#e7ad7888}.calendar-event.svømning{color:#a1d7f7;background:#59bfff12;border-color:#59bfff18;border-left-color:#59bfff88}.calendar-event:hover{filter:brightness(1.4)}.calendar-legend{padding:16px}.calendar-cell.drop-ready:hover{box-shadow:inset 0 0 0 2px var(--mint);background:#6ce4c516}.mobile-dots{display:none}.calendar-aside{display:grid;gap:18px}.selected-day-panel{padding:22px 18px}.selected-day-panel>.eyebrow{font-size:8px;color:#73908e}.selected-day-panel>h2{text-transform:capitalize;font-size:24px;margin:14px 0 3px}.selected-day-panel>.muted{font-size:11px}.selected-workouts{margin:21px 0}.selected-workout{display:flex;align-items:center;gap:9px;padding:12px 0;width:100%;text-align:left;border-top:1px solid #263347}.selected-workout:hover{background:#24374970}.selected-workout>div{display:grid;gap:6px;flex:1;min-width:0}.selected-workout strong{font-size:10px;font-weight:500;line-height:1.5}.selected-workout>svg{color:#6b7f99;width:15px}.selected-workout>div>span{font-size:9px;color:#889bb1}.selected-workout .sport-icon{width:32px;height:32px}.full-button{width:100%;font-size:10px;padding:10px 8px}.rest-message{text-align:center;padding:18px 0;color:#6d8f95}.rest-message h3{font-size:12px;color:#bcccd5;margin-top:15px}.rest-message p{font-size:10px;color:#7f93a5;margin-top:8px}.weekly-balance{padding:20px}.weekly-balance>p{font-size:9px;color:#8294aa;margin:8px 0 18px}.weekly-balance>div{display:flex;align-items:center;justify-content:space-between;margin-top:14px;font-size:11px;color:#9faec1}.weekly-balance strong{color:#d4e1ec;font-size:17px;font-family:var(--heading);font-weight:500}.weekly-balance strong small{font-family:DM Sans Variable,sans-serif;font-size:10px;color:#8091a7}.balance-note{font-size:9px;color:#73889b;line-height:1.8;border-top:1px solid #263347;padding-top:13px;margin-top:19px;display:block}.journal-filters{display:flex;flex-direction:column;gap:20px;margin:8px 0 22px}.sport-tabs{display:flex;gap:8px;flex-wrap:wrap}.sport-tabs>button{padding:10px 15px;border:1px solid #28374b;border-radius:7px;color:#8496ad;font-size:11px;display:flex;align-items:center;gap:7px}.sport-tabs>button:hover{border-color:#53767a;color:#c7e5dc}.sport-tabs>button.active{color:var(--mint);background:#6ce4c50c;border-color:#6ce4c54a}.journal-search{display:flex;justify-content:space-between;gap:14px}.journal-search input{width:320px;max-width:100%;font-size:11px}.journal-search select{font-size:11px}.journal-summary{display:flex;gap:28px;margin:15px 0 18px;color:#8295ab;font-size:10px}.journal-summary strong{color:#c0d3df;font-weight:500}.journal-panel{overflow:hidden}.journal-table-head,.journal-row{display:grid;grid-template-columns:minmax(200px,2.8fr) .8fr .8fr 1fr .8fr .9fr;gap:18px;align-items:center;padding:17px 22px}.journal-table-head{color:#7f91a8;font-size:9px;background:#0f1827;border-bottom:1px solid #263449}.journal-row{width:100%;text-align:left;border-bottom:1px solid #243247;min-height:98px}.journal-row:last-child{border-bottom:0}.journal-row:hover{background:#1b2c3c}.journal-row>span:not(.status-pill){font-size:10px;color:#c0ccdb}.journal-name{display:flex;align-items:center;gap:11px;min-width:0}.journal-name>div{min-width:0;display:grid;gap:5px}.journal-name strong{font-size:11px;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.journal-name span{font-size:9px;color:#8498ae}.journal-name p{font-size:9px;line-height:1.5;color:#71879e;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:280px}.journal-effort{display:flex;flex-direction:column;gap:6px}.journal-effort small{font-size:9px;color:#7b94ab}.load-more{padding:20px;display:flex;justify-content:center}.statistics-intro{display:flex;justify-content:space-between;gap:20px;align-items:center;margin:0 0 22px}.statistics-intro>p{font-size:11px;color:#8d9eb3}.statistics-intro select{font-size:11px}.stats-grid.three{grid-template-columns:repeat(3,minmax(0,1fr))}.statistics-bottom{display:grid;grid-template-columns:1.7fr 1fr;gap:20px;margin-top:24px;align-items:start}.statistics-bottom .section-heading select{font-size:11px;max-width:120px}.progress-chart{padding:0 20px 22px}.progress-chart-label{font-size:9px;color:#6e8f9b;margin:0 0 12px 8px}.chart-footnote{font-size:9px;color:#71869d;margin-top:2px}.discipline-panel{padding-bottom:22px}.discipline{padding:0 23px;margin:5px 0 22px}.discipline:last-child{margin-bottom:0}.discipline>div:first-child{display:flex;align-items:center;gap:9px;font-size:11px}.discipline .sport-icon{width:28px;height:28px;border-radius:6px}.discipline strong{font-weight:500}.discipline>div>span:last-child{margin-left:auto;font-size:10px;color:#9eafc5}.discipline-track{height:5px;background:#253348;border-radius:9px;margin-top:9px;overflow:hidden}.discipline-track i{height:100%;display:block;border-radius:9px}.discipline>small{font-size:8px;color:#7e91a8;display:block;margin-top:6px}.rhythm-panel{padding:35px;display:grid;grid-template-columns:1.3fr 1fr;gap:50px;margin-top:28px}.rhythm-panel h2{font-size:23px;margin-top:15px;line-height:1.5}.rhythm-panel p{color:#90a3b8;margin:13px 0 22px;font-size:12px}.rhythm-numbers{display:flex;align-items:center;justify-content:space-around;gap:25px}.rhythm-numbers>div{display:grid;text-align:center;gap:12px}.rhythm-numbers strong{font-family:var(--heading);font-size:45px;color:var(--mint);font-weight:500;letter-spacing:-2px}.rhythm-numbers span{font-size:10px;color:#96a8bb}.goal-note{font-size:10px;color:#6f839d;margin:20px 0 0}.modal-backdrop{position:fixed;inset:0;background:#020711c9;-webkit-backdrop-filter:blur(7px);backdrop-filter:blur(7px);z-index:80;display:flex;align-items:center;justify-content:center;padding:25px;overflow-y:auto;overscroll-behavior:contain}.modal{width:min(100%,510px);max-height:calc(100dvh - 50px);overflow-y:auto;background:#131e2e;border:1px solid #34455a;border-radius:15px;box-shadow:0 30px 100px #0008;animation:modal-enter .2s ease}.modal.wide{width:min(100%,600px)}.modal-header{display:flex;justify-content:space-between;gap:14px;padding:24px 26px 21px;border-bottom:1px solid #2a384e}.modal-header h2{font-size:21px;letter-spacing:-.6px}.modal-header p{font-size:11px;color:#94a6bd;margin-top:7px}.modal-header .icon-button{align-self:flex-start}.session-form{padding:22px 26px 0}.session-form label{display:flex;flex-direction:column;gap:8px;font-size:11px;color:#ccd8e8;flex:1;min-width:0;font-weight:500}.session-form label>span{display:contents;color:#8a9bb0;font-weight:400;font-size:10px}.session-form input,.session-form select,.session-form textarea{width:100%;font-size:12px;font-weight:400}.sport-picker{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-bottom:22px}.sport-picker legend{font-size:11px;color:#cbd7e8;margin-bottom:10px;font-weight:500}.sport-picker>button{border:1px solid #2d3c52;border-radius:8px;background:#101a28;display:flex;flex-direction:column;gap:9px;align-items:center;padding:13px 5px;color:#90a2b9;font-size:10px}.sport-picker>button:hover{background:#26374a;border-color:#688c92}.sport-picker>button.selected{background:#6ce4c510;border-color:#6ce4c56b;color:var(--mint)}.form-row{display:flex;gap:16px;margin-bottom:17px;align-items:stretch}.form-row>.full{width:100%}.field-note{flex:1;display:flex;align-items:center;gap:12px;color:#97a9bf;font-size:10px;line-height:1.7;padding:15px 0 0}.field-note svg{color:#d1ac89}.pace-preview{display:flex;align-items:center;gap:8px;background:#0f1927;border:1px dashed #344457;border-radius:7px;padding:12px;color:#8da9b7;font-size:10px;margin-bottom:20px}.pace-preview strong{margin-left:auto;color:#bce7d9;font-size:12px;white-space:nowrap}.form-hint{display:flex;gap:9px;font-size:10px;color:#9cb4c3;line-height:1.8;margin-top:20px}.form-hint svg{margin-top:1px;color:#6ce4c5}.form-hint.caution{color:#ebbf82}.form-hint.caution svg{color:#ebbf82}.modal-actions{display:flex;align-items:center;justify-content:flex-end;gap:9px;border-top:1px solid #2b3a50;padding:20px 0;margin-top:22px}.modal-actions .button{font-size:10px}.push-right{margin-left:auto}.confirm-content{padding:22px 26px 0}.confirm-content>p{font-size:13px;color:#b6c8da;line-height:1.8}.confirm-content .modal-actions{margin-top:25px}.error-message{color:#ffb4b5;background:#ff8b9b0e;border:1px solid #ff8b9b40;padding:11px 13px;border-radius:7px;font-size:11px;line-height:1.7;margin-top:16px}.backup-content{padding:23px 26px 28px}.backup-info{display:flex;gap:15px;padding:17px;background:#6ce4c508;border:1px solid #6ce4c522;border-radius:9px;margin-bottom:20px}.backup-info svg{color:var(--mint);margin-top:4px}.backup-info strong{font-size:12px;font-weight:500}.backup-info p{font-size:10px;color:#97adc0;line-height:1.8;margin-top:7px}.backup-option{display:flex;align-items:center;width:100%;gap:15px;text-align:left;border:1px solid #34445b;border-radius:8px;padding:17px 15px;margin-top:12px;color:#9fb7cc}.backup-option:hover{border-color:#6ce4c555;background:#6ce4c50a}.backup-option>span{flex:1;min-width:0}.backup-option strong{display:block;font-weight:500;font-size:12px;color:#dde8f6}.backup-option small{display:block;color:#91a6bd;font-size:10px;margin-top:7px;line-height:1.7}.backup-divider{height:1px;background:#2a3a51;margin:24px 0}.backup-content h3{font-size:13px}.backup-content>.muted{font-size:10px;margin:8px 0 16px}.example-button{margin-top:12px;display:flex}.toast{position:fixed;left:calc(50% + 118px);transform:translate(-50%) translateY(15px);bottom:max(24px,env(safe-area-inset-bottom));padding:12px 14px;background:#203b37;border:1px solid #537b70;color:#daf7ee;border-radius:9px;box-shadow:0 10px 40px #0005;font-size:12px;display:flex;align-items:center;gap:12px;z-index:100;max-width:calc(100vw - 32px);width:max-content;opacity:0;pointer-events:none;transition:opacity .2s,transform .2s}.toast.visible{transform:translate(-50%) translateY(0);opacity:1;pointer-events:auto}.toast>svg{color:var(--mint)}.toast .icon-button{min-height:23px;min-width:23px}.skip-link{position:fixed;top:-60px;left:20px;padding:12px 20px;background:var(--mint);color:#11251d;border-radius:0 0 5px 5px;z-index:200;text-decoration:none;font-size:13px}.skip-link:focus{top:0}.visually-hidden{position:absolute!important;width:1px!important;height:1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;padding:0!important;border:0!important}.sidebar-overlay{display:none}@keyframes modal-enter{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@media(min-width:1600px){main{padding-top:44px}.stats-grid{gap:23px}.stat-card{padding:24px}.stat-value{font-size:38px}.stat-card p{font-size:10px}.stat-top>span{font-size:12px}.day-workout{min-height:118px;padding:15px}.rest-day{min-height:118px}.day-workout strong{font-size:12px}.day-workout>span:last-child{font-size:10px}.volume-panel .section-heading{padding-bottom:18px}.next-panel{padding:27px}.next-panel h2{font-size:23px}.next-panel>p{font-size:12px}.next-sport{margin-top:27px}.section-heading p{font-size:12px}.section-heading h2{font-size:19px}.compact .goal-card h3{font-size:26px}.goal-detail{font-size:10px}.session-description strong{font-size:13px}.session-description>span{font-size:11px}.session-row .session-duration{font-size:12px}.status-pill{font-size:10px}.topbar-date,.breadcrumb{font-size:12px}}@media(max-width:1200px){.sidebar{width:211px;padding-left:13px;padding-right:13px}.main-shell{margin-left:211px}main{padding:28px 25px 0}.topbar{padding:0 25px}.brand{padding-left:7px;gap:7px}.brand>span:last-child{font-size:20px}.brand-icon{width:33px;height:33px}.stats-grid{gap:11px}.stat-card{padding:16px 13px}.stat-top>span{font-size:9px}.stat-value{font-size:29px}.stat-card p{font-size:8px}.week-strip{padding:0 17px 18px;gap:6px}.section-heading{padding:20px 18px 17px}.section-heading h2{font-size:15px;gap:7px}.section-heading p{font-size:9px}.day-workout{padding:11px 7px}.day-workout strong{font-size:9px}.day-workout>span:last-child{font-size:7px}.dashboard-middle{grid-template-columns:minmax(0,1.65fr) minmax(220px,1fr);gap:15px}.next-panel{padding:19px}.next-panel>.eyebrow{font-size:7px}.next-panel h2{font-size:17px}.next-sport{margin:19px 0 13px}.next-metrics{margin:16px 0}.next-panel>p{font-size:9px}.next-panel>.button{font-size:9px;min-height:34px}.next-sport>span:last-child:not(.sport-icon){font-size:8px}.volume-chart{padding-left:12px;padding-right:12px}.chart-legend{gap:14px}.chart-legend>span{font-size:8px}.calendar-layout{grid-template-columns:minmax(0,1fr) 230px;gap:14px}.calendar-toolbar{padding:15px 12px 8px}.calendar-date-controls h2{font-size:14px}.calendar-tip{font-size:8px;padding:7px 15px 13px}.calendar-cell{min-height:96px;padding:3px}.calendar-event{font-size:7px}.calendar-event>svg:first-child{display:none}.calendar-date-controls .button{margin-left:4px}.calendar-date-controls .icon-button{min-width:26px}.calendar-toolbar .segmented>button{font-size:9px;padding:5px 9px}.calendar-aside .button{font-size:9px}.journal-table-head,.journal-row{grid-template-columns:minmax(170px,2fr) .7fr .8fr 1fr .8fr;gap:12px;padding:16px}.journal-table-head>span:last-child{display:none}.journal-row>.status-pill{grid-column:1;margin-left:48px;margin-top:-7px}.journal-row{row-gap:6px}.journal-name p{max-width:200px}.journal-row>span:not(.status-pill){font-size:9px}.statistics-bottom{grid-template-columns:1.4fr 1fr}.rhythm-panel{gap:25px;padding:27px}.rhythm-numbers strong{font-size:37px}.toast{left:calc(50% + 105px)}}@media(max-width:1000px){.stats-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:13px}.stat-card{padding:19px}.stat-top>span{font-size:11px}.stat-value{font-size:32px}.stat-card p{font-size:9px}.dashboard-middle{grid-template-columns:1fr}.next-panel{display:grid;grid-template-columns:1fr auto;column-gap:20px;padding:22px}.next-panel>.eyebrow{grid-column:1/-1;font-size:8px}.next-sport{grid-column:2;grid-row:2/5;margin:15px 0 0;flex-direction:column;align-items:flex-end;justify-content:flex-start;gap:12px}.next-sport>.sport-icon{width:43px;height:43px}.next-sport>span:last-child:not(.sport-icon){font-size:9px}.next-panel h2{font-size:20px;margin-top:18px}.next-panel>p{font-size:10px;margin-top:8px}.next-metrics{font-size:11px;grid-column:1}.next-panel>.button{grid-column:1/-1;margin-top:8px}.goal-grid{gap:14px}.compact .goal-card{padding:17px 17px 0}.compact .goal-card h3{font-size:18px}.goal-card>p{font-size:9px!important}.goal-bottom strong{font-size:12px}.goal-detail{font-size:7px}.tri-distances{gap:17px}.tri-distances strong{font-size:15px}.tri-distances small{font-size:7px}.goal-watermark{font-size:70px}.goal-top{margin-bottom:19px}.goal-date{font-size:7px}.goal-bottom strong{gap:8px}.session-distance{width:70px}.session-duration{width:76px}.row-arrow{margin-left:0}.status-pill{font-size:7px}.calendar-layout{grid-template-columns:1fr}.calendar-aside{grid-template-columns:1.4fr 1fr}.selected-workouts{margin:15px 0}.rest-message{padding:10px 0}.rest-message svg{display:none}.rest-message h3{margin-top:0}.selected-day-panel,.weekly-balance{padding:20px}.calendar-cell{min-height:100px}.calendar-event{font-size:9px}.calendar-event>svg:first-child{display:block}.calendar-date-controls h2{font-size:17px}.calendar-toolbar{padding:20px 18px 10px}.calendar-tip{font-size:10px;padding:5px 18px 18px}.journal-table-head{display:none}.journal-row{grid-template-columns:1.3fr 1fr 1.3fr;gap:14px;padding:17px 20px}.journal-name{grid-column:1/-1}.journal-name p{max-width:350px}.journal-row>span:not(.status-pill){font-size:10px}.journal-row>span[data-label]:before{content:attr(data-label);color:#688198;font-size:8px;display:block;margin-bottom:5px}.journal-row .journal-effort{display:block}.journal-effort small{margin-left:5px}.journal-row>.status-pill{grid-column:auto;justify-self:end;margin:0}.journal-summary{gap:15px;font-size:9px;flex-wrap:wrap}.statistics-bottom{grid-template-columns:1fr}.stats-grid.three{grid-template-columns:repeat(3,minmax(0,1fr))}.stats-grid.three .stat-card{padding:16px 13px}.stats-grid.three .stat-value{font-size:26px}.stats-grid.three .stat-value>span{font-size:10px}.stats-grid.three .stat-card>.muted{font-size:9px}.rhythm-panel{grid-template-columns:1fr}.rhythm-numbers{padding:15px}.page-footer{font-size:8px}.page-footer>span:last-child{max-width:190px;text-align:right}.demo-notice{align-items:flex-start;font-size:8px}.demo-notice>span{align-items:flex-start;gap:7px}.demo-notice>span>.demo-tag{margin-top:2px}.demo-notice button{font-size:8px}.demo-notice button svg{display:none}.goal-grid:not(.compact) .goal-card{padding:22px 19px 0}.goal-grid:not(.compact) .goal-card h3{font-size:21px}.page-heading{align-items:flex-start;gap:10px}.page-heading .add-session{margin-top:25px;padding:10px 12px;font-size:10px;gap:6px}.page-heading h1{font-size:27px}.page-heading p{font-size:10px}.eyebrow{font-size:8px;letter-spacing:1.3px}}@media(max-width:760px){.sidebar{transform:translate(-100%);transition:transform .22s ease;width:248px;padding:28px 20px 0}.sidebar.open{transform:translate(0)}.sidebar-overlay{position:fixed;inset:0;background:#020711ad;z-index:29;display:block;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px)}.main-shell{margin-left:0}.brand{margin-bottom:35px}.brand>span:last-child{font-size:23px}.brand-icon{width:37px;height:37px}.nav-item{font-size:13px;padding:14px}.nav-label{font-size:9px}.sidebar-goal{margin-top:25px}.sidebar-bottom{padding-top:15px}.local-status>span{font-size:11px}.local-status small{font-size:10px}.backup-nav{font-size:11px}.profile>span:nth-child(2){font-size:12px}.profile small{font-size:10px}.mobile-menu{display:flex!important}.topbar{height:60px;padding:0 20px}.breadcrumb{gap:9px;font-size:10px}.breadcrumb>span{display:none}.breadcrumb>svg{display:none}.topbar-date{font-size:9px}.topbar-date>.live-dot{display:none}main{padding:26px 20px 0}.page-heading{margin-bottom:22px}.page-heading h1{font-size:29px;letter-spacing:-1px;margin-top:10px}.page-heading p{font-size:11px}.page-heading .add-session{font-size:10px}.eyebrow{font-size:8px}.demo-notice{font-size:9px;padding:10px 12px}.demo-notice>span{gap:8px}.demo-notice button{font-size:8px;max-width:95px;line-height:1.6}.demo-notice>span>.demo-tag{font-size:6px}.section-heading h2{font-size:16px}.section-heading p{font-size:10px}.subtle-badge{font-size:8px}.week-strip{gap:7px;padding:0 17px 18px}.day-workout>span:last-child{font-size:8px}.day-workout strong{font-size:10px}.dashboard-middle{margin-bottom:25px}.volume-panel .section-heading{padding-bottom:12px}.chart-legend>span{font-size:9px}.compact .goal-card h3{font-size:22px}.compact .goal-card>p{font-size:10px!important}.compact .goal-bottom strong{font-size:13px}.compact .tri-distances{gap:20px}.compact .tri-distances small,.compact .goal-date,.compact .goal-detail{font-size:8px}.session-duration{width:90px}.session-description strong{font-size:12px}.session-description>span{font-size:10px}.status-pill{font-size:8px}.calendar-event{font-size:9px}.calendar-cell{min-height:90px}.statistics-bottom{grid-template-columns:1.5fr 1fr}.statistics-bottom .section-heading{align-items:flex-start}.statistics-bottom .section-heading h2{font-size:14px}.statistics-bottom .section-heading p{font-size:9px}.statistics-bottom .section-heading select{font-size:10px;padding:7px;width:90px}.discipline-panel .discipline{padding:0 17px}.statistics-bottom{grid-template-columns:1fr}.toast{left:50%}.page-footer{font-size:8px}}@media(max-width:520px){main{padding:24px 16px 0}.topbar{padding:0 14px;height:56px}.topbar-date{font-size:8px}.page-heading{flex-wrap:wrap;gap:15px;margin-bottom:21px}.page-heading>div{width:100%}.page-heading h1{font-size:29px;line-height:1.3;margin:11px 0 8px;max-width:330px}.page-heading p{font-size:11px;line-height:1.7}.page-heading .add-session{margin:0;min-height:39px;padding:9px 13px;font-size:11px}.demo-notice{flex-direction:column;align-items:flex-start;gap:6px;font-size:9px}.demo-notice>span{display:block}.demo-tag{margin-right:6px;display:inline-block}.demo-notice button{max-width:none;font-size:9px;margin-left:auto;padding:0}.demo-notice button svg{display:block}.stats-grid{gap:11px;margin-bottom:18px}.stat-card{padding:16px 13px}.stat-top>span{font-size:9px}.stat-top>svg{width:16px}.stat-value{font-size:31px;margin:13px 0 9px;gap:6px}.stat-value>span{font-size:11px}.stat-card p{font-size:8px;line-height:1.8}.section-heading{padding:18px 15px 17px;align-items:flex-start;gap:10px}.section-heading h2{font-size:15px}.section-heading p{font-size:9px}.section-heading>.text-button{font-size:8px;gap:4px;padding-top:2px}.section-heading>.text-button>svg{width:13px}.week-panel .section-heading h2{display:block;line-height:1.6}.week-panel .subtle-badge{font-size:8px;display:flex;width:fit-content;margin-top:6px}.week-strip{gap:4px;padding:0 10px 15px}.week-day-label{display:flex;flex-direction:column;gap:5px;height:47px;margin-bottom:10px;font-size:9px}.week-day-label>strong{font-size:10px;height:22px;width:22px;display:flex;align-items:center;justify-content:center}.week-day.today .week-day-label strong{height:22px;width:22px}.day-workout{min-height:90px;padding:9px 3px;align-items:center;text-align:center;gap:0}.day-workout-heading{margin-bottom:7px;justify-content:center;position:relative}.day-workout-heading>.sport-icon>svg{width:16px}.day-workout-heading>svg{position:absolute;top:-5px;right:-1px;width:10px}.day-workout strong{font-size:7px;font-weight:500}.day-workout>span:last-child{font-size:6px;color:#99b2b7;line-height:1.9;max-width:40px}.rest-day{min-height:90px;gap:7px}.rest-day small{font-size:6px}.dashboard-middle{gap:17px}.volume-panel .section-heading h2{font-size:14px;line-height:1.5}.volume-chart{padding:0 9px 17px}.chart-legend{gap:16px;margin-top:5px;flex-wrap:wrap}.chart-legend>span{font-size:8px}.chart-legend i{width:5px;height:5px}.axis-label{font-size:11px}.next-panel{padding:21px}.next-panel h2{font-size:19px}.next-panel>.eyebrow{font-size:8px}.next-panel>p{font-size:10px}.next-sport{max-width:103px}.next-sport>span:last-child:not(.sport-icon){font-size:8px;text-align:right;line-height:1.6}.next-panel>.button{min-height:38px;font-size:10px}.section-heading.outside h2{font-size:21px}.goal-grid{grid-template-columns:1fr;gap:16px}.compact .goal-card{padding:21px 22px 0}.compact .goal-top{margin-bottom:18px}.compact .goal-card h3{font-size:24px}.compact .goal-date{font-size:8px}.compact .goal-card>p{font-size:11px!important}.compact .goal-detail{font-size:9px;padding:13px 0}.compact .goal-bottom,.compact .tri-distances{min-height:50px;margin-top:20px}.compact .goal-bottom strong{font-size:15px}.compact .tri-distances{gap:35px}.compact .tri-distances strong{font-size:19px}.compact .tri-distances small{font-size:9px}.goal-watermark{font-size:92px;bottom:-14px}.session-list{padding:0 15px 6px}.session-row{gap:10px;flex-wrap:wrap;position:relative;padding:14px 0}.session-description{flex-basis:calc(100% - 90px)}.session-description strong{font-size:11px}.session-description>span{font-size:9px}.session-row>.sport-icon{width:33px;height:33px;border-radius:8px}.session-distance{padding-left:43px;width:auto;font-size:11px;margin-top:-1px}.session-duration{width:auto;font-size:10px;color:#8199b0;margin-top:-1px}.session-row>.status-pill{margin-left:auto}.session-row>.row-arrow{position:absolute;right:0;top:21px;width:14px}.recent-panel .section-heading h2{font-size:15px}.recent-panel .section-heading p{font-size:8px;max-width:170px}.calendar-toolbar{padding:15px 12px 8px;gap:15px}.calendar-date-controls{flex-wrap:wrap;width:100%}.calendar-date-controls h2{font-size:17px;margin-right:auto}.calendar-date-controls .button{font-size:9px;padding:5px 9px}.calendar-toolbar .segmented{margin-left:auto}.calendar-tip{font-size:9px;line-height:1.7;padding:0 14px 14px}.calendar-weekday{font-size:9px;padding:11px 3px}.calendar-cell{min-height:67px;padding:3px}.calendar-events{display:none}.calendar-day-number{height:100%;min-height:59px;display:flex;flex-direction:column;justify-content:flex-start;gap:11px;text-align:center;font-size:11px;width:100%;padding:3px 1px}.mobile-dots{display:flex;flex-wrap:wrap;justify-content:center;gap:3px;width:100%;min-height:5px}.mobile-dots>i{width:4px;height:4px;border-radius:50%}.calendar-legend{gap:18px;padding:15px 7px}.calendar-legend>span{font-size:8px}.calendar-aside{grid-template-columns:1fr}.selected-day-panel{padding:21px}.selected-day-panel>.eyebrow{font-size:8px}.selected-day-panel>h2{font-size:25px;margin-top:12px}.selected-day-panel .full-button{font-size:11px;min-height:42px}.selected-workout{padding:14px 0}.selected-workout .sport-icon{width:37px;height:37px}.selected-workout strong{font-size:12px}.selected-workout>div>span{font-size:10px}.weekly-balance h3{font-size:16px}.weekly-balance>p{font-size:10px}.weekly-balance>div{font-size:12px}.balance-note{font-size:10px}.rest-message{padding:15px 0}.rest-message h3{font-size:14px}.rest-message p{font-size:11px}.journal-filters{gap:15px;margin-top:0}.sport-tabs{gap:6px}.sport-tabs>button{padding:10px 11px;font-size:10px}.sport-tabs svg{width:14px}.journal-search{gap:8px}.journal-search input{min-width:0;width:100%;font-size:10px}.journal-search select{font-size:10px;max-width:130px;padding:9px}.journal-summary{gap:12px;line-height:1.8;font-size:9px}.journal-row{padding:17px 15px;gap:14px 6px;grid-template-columns:1fr 1fr 1fr}.journal-name p{max-width:230px}.journal-name strong{font-size:12px}.journal-name span{font-size:9px}.journal-name .sport-icon{width:34px;height:34px}.journal-row>span:not(.status-pill){font-size:10px}.journal-row>.status-pill{font-size:8px;justify-self:end;grid-column:3}.journal-effort{grid-column:span 2}.statistics-intro{align-items:flex-start;gap:15px;margin-bottom:19px}.statistics-intro>p{font-size:10px;max-width:180px}.statistics-intro select{font-size:10px;padding:9px;max-width:150px}.stats-grid.three{grid-template-columns:1fr;gap:10px}.stats-grid.three .stat-card{display:grid;grid-template-columns:1fr auto;gap:0 15px;padding:18px}.stats-grid.three .stat-card>.muted{font-size:11px;align-self:center}.stats-grid.three .stat-value{grid-row:span 2;margin:0;font-size:29px}.stats-grid.three .stat-card p{font-size:8px}.stats-grid.three .stat-value>span{font-size:11px}.statistics-bottom{margin-top:18px;gap:18px}.statistics-bottom .section-heading h2{font-size:15px}.statistics-bottom .section-heading select{font-size:10px;max-width:95px}.progress-chart{padding:0 12px 18px}.chart-footnote{font-size:8px}.discipline-panel .discipline{padding:0 18px}.discipline>div:first-child{font-size:12px}.discipline>small{font-size:9px}.rhythm-panel{padding:24px;gap:12px;margin-top:20px}.rhythm-panel h2{font-size:22px}.rhythm-panel p{font-size:12px}.rhythm-numbers{gap:25px;padding:20px 0 0}.rhythm-numbers strong{font-size:39px}.rhythm-numbers span{font-size:9px}.goal-grid:not(.compact) .goal-card{padding:24px 22px 0}.goal-grid:not(.compact) .goal-card h3{font-size:27px}.goal-grid:not(.compact) .goal-date{font-size:9px}.goal-grid:not(.compact) .goal-card>p{font-size:12px!important}.goal-grid:not(.compact) .goal-bottom strong{font-size:16px}.goal-grid:not(.compact) .goal-detail{font-size:9px}.goal-grid:not(.compact) .tri-distances{gap:35px}.goal-grid:not(.compact) .tri-distances strong{font-size:22px}.goal-grid:not(.compact) .tri-distances small{font-size:9px}.page-footer{padding:25px 0;flex-direction:column;gap:8px}.page-footer>span:last-child{max-width:none;text-align:center}.notice{font-size:10px;gap:8px;padding:11px;flex-wrap:wrap}.notice>.text-button{font-size:10px}.notice>svg{width:17px}.notice>span{flex-basis:80%}.modal-backdrop{padding:12px;align-items:center}.modal{max-height:calc(100dvh - 24px);border-radius:12px}.modal-header{padding:20px 18px 17px}.modal-header h2{font-size:20px}.modal-header p{font-size:10px;line-height:1.7}.session-form{padding:19px 18px 0}.sport-picker{gap:7px}.sport-picker>button{font-size:9px;padding:12px 4px}.sport-picker>button svg{width:20px}.form-row{gap:12px;margin-bottom:16px}.session-form label{font-size:11px;gap:7px}.session-form label>span{font-size:8px}.session-form input,.session-form select,.session-form textarea{font-size:12px;padding:11px 10px}.field-note{font-size:9px;gap:7px}.field-note>svg{width:18px}.pace-preview{font-size:8px;gap:6px}.pace-preview>svg{width:15px}.pace-preview>strong{font-size:10px}.form-hint{font-size:9px}.modal-actions{flex-wrap:wrap;gap:8px;padding:17px 0}.modal-actions>.button{font-size:10px;padding:10px 12px}.modal-actions>.danger-ghost{width:100%;justify-content:center;order:3;background:none;border-color:transparent}.session-form .modal-actions .push-right{margin-left:0;flex:1}.session-form .modal-actions>.primary{flex:1}.confirm-content{padding:18px 20px 0}.confirm-content>p{font-size:12px}.backup-content{padding:20px 18px}.backup-info{padding:14px;gap:11px}.backup-info>svg{width:25px}.backup-info strong{font-size:11px}.backup-info p{font-size:10px}.backup-option{padding:15px 11px;gap:11px}.backup-option>svg{width:21px}.backup-option strong{font-size:11px}.backup-option small{font-size:9px}.toast{font-size:11px;gap:8px;bottom:max(17px,env(safe-area-inset-bottom));padding:10px 11px}.toast>svg{width:17px}.toast>span{line-height:1.6}.empty{padding:25px 18px;min-height:220px}.empty h3{font-size:15px}.empty p{font-size:11px}}@media(max-width:360px){main{padding-left:12px;padding-right:12px}.page-heading h1{font-size:26px}.stat-top>span{font-size:8px}.stat-value{font-size:28px}.stat-card p{font-size:7px}.week-strip{padding-left:7px;padding-right:7px;gap:3px}.day-workout strong{font-size:6px}.day-workout>span:last-child{font-size:6px}.topbar-date{font-size:7px}.compact .tri-distances{gap:26px}.calendar-date-controls h2{font-size:15px}.journal-name p{max-width:200px}.journal-row>span:not(.status-pill){font-size:9px}.sport-tabs>button{padding:9px}.sport-tabs>button:first-child{width:100%;justify-content:center}.chart-legend{gap:12px}.modal-actions>.button{padding:9px;font-size:9px}.pace-preview{flex-wrap:wrap}.pace-preview>strong{margin-left:auto}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}@media(max-width:520px){.volume-chart .axis-label,.progress-chart .axis-label{font-size:20px}.secondary-tick{display:none}.volume-chart .chart-legend>span{font-size:9px}}@media(max-width:760px){.sidebar{visibility:hidden;transition:transform .22s ease,visibility .22s}.sidebar.open{visibility:visible}}
