:root{--ds-bg:#08070f;--ds-surface:#131126;--ds-surface-2:#1b1836;--ds-accent:#6758f3;--ds-accent-2:#b06ef5;--ds-accent-muted:#6758f329;--ds-accent-border:#6758f357;--ds-text:#ede9ff;--ds-text-secondary:#8a80cc;--ds-border:#ede9ff17;--ds-glass:#131126b8;--ds-shadow:0 1px 2px #0006, 0 10px 30px -14px #000000bf;--ds-mesh-opacity:.3}:root.light{--ds-bg:#f6f5fd;--ds-surface:#fff;--ds-surface-2:#f1effc;--ds-accent:#6758f3;--ds-accent-2:#a855f7;--ds-accent-muted:#6758f31a;--ds-accent-border:#6758f342;--ds-text:#17123a;--ds-text-secondary:#6f66a8;--ds-border:#1e17451a;--ds-glass:#ffffffc7;--ds-shadow:0 1px 2px #1e17450d, 0 10px 30px -16px #1e174540;--ds-mesh-opacity:.34}.ds-theme-toggle{background:var(--ds-surface-2);color:var(--ds-text);border:1px solid var(--ds-border);cursor:pointer;width:32px;height:32px;font-size:14px;font-family:var(--sans);border-radius:999px;flex-shrink:0;justify-content:center;align-items:center;padding:0;line-height:1;transition:border-color .15s;display:flex}.ds-theme-toggle:hover{border-color:var(--ds-accent-border)}*,:before,:after{box-sizing:border-box;margin:0;padding:0}:root{--bg0:var(--ds-bg);--bg1:var(--ds-surface);--bg2:var(--ds-accent-muted);--bg3:var(--ds-surface-2);--border:var(--ds-border);--border2:var(--ds-accent-border);--text0:var(--ds-text);--text1:var(--ds-text-secondary);--text2:var(--ds-text-secondary);--accent:var(--ds-accent);--accent2:color-mix(in srgb,var(--ds-accent) 85%,black);--accent-dim:var(--ds-accent-muted);--accent-dim2:var(--ds-accent-muted);--green:#34d399;--green-dim:#34d3991f;--amber:#fbbf24;--amber-dim:#fbbf241f;--red:#f87171;--red-dim:#f871711f;--orange:#fb923c;--mono:"Plus Jakarta Sans",sans-serif;--sans:"Syne",sans-serif;--radius:16px;--radius-sm:10px;--radius-lg:26px}body{background:var(--bg0);color:var(--text0);font-family:var(--sans);min-height:100vh;position:relative}body:before{content:"";z-index:-2;pointer-events:none;background:radial-gradient(38% 42% at 16% 20%, var(--ds-accent) 0%, transparent 62%), radial-gradient(34% 38% at 84% 28%, var(--ds-accent-2) 0%, transparent 60%), radial-gradient(44% 46% at 52% 92%, var(--ds-accent) 0%, transparent 64%);filter:blur(90px);opacity:var(--ds-mesh-opacity);animation:46s ease-in-out infinite alternate mesh-drift;position:fixed;inset:-25%}body:after{content:"";z-index:-1;pointer-events:none;opacity:.04;mix-blend-mode:overlay;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='160' height='160' filter='url(%23n)'/%3E%3C/svg%3E");position:fixed;inset:0}@keyframes mesh-drift{0%{transform:translate(0,0)scale(1)}50%{transform:translate(3%,-4%)scale(1.09)}to{transform:translate(-4%,3%)scale(1.04)}}@media (prefers-reduced-motion:reduce){body:before{animation:none}}.layout{min-height:100vh;display:block}.topbar{z-index:100;background:color-mix(in srgb,var(--ds-bg) 76%,transparent);-webkit-backdrop-filter:blur(18px)saturate(150%);grid-template-columns:1fr auto 1fr;align-items:center;gap:16px;padding:12px 22px;display:grid;position:sticky;top:0}.topbar-brand{align-items:center;gap:10px;min-width:0;display:flex}.topbar-logo{object-fit:cover;border-radius:9px;flex-shrink:0;width:30px;height:30px}.topbar-name{letter-spacing:.02em;white-space:nowrap;font-size:14px;font-weight:700}.topbar-view-title{letter-spacing:-.01em;font-size:15px;font-weight:700;display:none}.topnav{background:var(--ds-glass);border:1px solid var(--border);box-shadow:var(--ds-shadow);-webkit-backdrop-filter:blur(16px);border-radius:999px;justify-self:center;gap:2px;padding:5px;display:flex}.nav-item{font-family:var(--sans);letter-spacing:.01em;color:var(--text1);cursor:pointer;white-space:nowrap;background:0 0;border:none;border-radius:999px;align-items:center;gap:7px;padding:8px 14px;font-size:13px;font-weight:500;transition:color .15s,background .15s;display:flex}.nav-item:hover{color:var(--text0);background:var(--bg2)}.nav-item.active{color:var(--accent);background:var(--accent-dim2)}.nav-icon{font-size:13px;line-height:1}.topbar-actions{justify-content:flex-end;align-items:center;gap:10px;min-width:0;display:flex}.topbar-date{font-family:var(--mono);color:var(--text2);white-space:nowrap;font-size:11px}.topbar-user{font-family:var(--mono);color:var(--text2);text-overflow:ellipsis;white-space:nowrap;max-width:150px;font-size:10px;overflow:hidden}.sync-indicator{font-family:var(--mono);white-space:nowrap;font-size:10px}.topbar-logout{flex-shrink:0;padding:6px 10px;font-size:12px}.main{max-width:1180px;margin:0 auto;padding:34px 24px 96px}@media (width<=1120px){.nav-text{display:none}.nav-item{padding:8px 12px}.nav-icon{font-size:15px}.topbar-user,.topbar-date{display:none}}.view{display:none}.view.active{animation:.2s fadeIn;display:block}@keyframes fadeIn{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}.page-header{justify-content:space-between;align-items:flex-end;gap:16px;margin-bottom:34px;display:flex}.page-title{letter-spacing:-.035em;font-size:clamp(26px,3.2vw,40px);font-weight:700;line-height:1.05}.page-subtitle{color:var(--text2);font-size:13px;font-family:var(--mono);margin-top:8px}.btn{border-radius:var(--radius-sm);font-family:var(--sans);cursor:pointer;border:none;align-items:center;gap:6px;padding:8px 16px;font-size:13px;font-weight:500;transition:all .15s;display:inline-flex}.btn-primary{background:var(--accent);color:#fff}.btn-primary:hover{background:var(--accent2)}.btn-ghost{background:var(--bg3);color:var(--text1);border:1px solid var(--border)}.btn-ghost:hover{color:var(--text0);border-color:var(--border2)}.btn-icon{background:var(--bg3);color:var(--text1);border:1px solid var(--border);border-radius:var(--radius-sm);cursor:pointer;padding:7px}.btn-icon:hover{color:var(--text0);border-color:var(--border2)}.btn-danger{background:var(--red-dim);color:var(--red);border:1px solid #f8717133}.btn-danger:hover{background:#f8717133}.btn-lg{border-radius:999px;padding:13px 26px;font-size:14px;font-weight:600}.hero{max-width:820px;padding:clamp(48px,9vh,110px) 0 clamp(36px,5vh,56px)}.hero-eyebrow{font-family:var(--mono);letter-spacing:.22em;text-transform:uppercase;color:var(--text2);margin-bottom:22px;font-size:11px}.hero-title{letter-spacing:-.05em;font-size:clamp(42px,7.5vw,88px);font-weight:700;line-height:.98}.hero-accent{background:linear-gradient(100deg,var(--ds-accent),var(--ds-accent-2));color:#0000;-webkit-background-clip:text;background-clip:text}.hero-sub{color:var(--text1);max-width:520px;margin-top:24px;font-size:clamp(15px,1.6vw,19px);line-height:1.6}.hero-actions{flex-wrap:wrap;gap:12px;margin-top:34px;display:flex}.start-canvas{border:1px dashed var(--border2);border-radius:var(--radius-lg);background:linear-gradient(160deg,var(--ds-accent-muted),transparent 65%);aspect-ratio:16/9;justify-content:center;align-items:center;min-height:380px;max-height:56vh;margin-bottom:44px;display:flex;position:relative;overflow:hidden}.start-canvas.orb-live{background:0 0;border-color:#0000}#orb-canvas{touch-action:none;width:100%;height:100%;display:block;position:absolute;inset:0}.start-canvas.orb-live .start-canvas-inner{display:none}.start-canvas-inner{text-align:center;color:var(--text2);position:relative}.start-canvas-mark{color:var(--accent);margin-bottom:14px;font-size:38px;animation:4s ease-in-out infinite pulse-mark}@keyframes pulse-mark{0%,to{opacity:.55;transform:scale(1)}50%{opacity:1;transform:scale(1.12)}}@media (prefers-reduced-motion:reduce){.start-canvas-mark{animation:none}}.start-canvas-title{color:var(--text0);letter-spacing:-.02em;font-size:19px;font-weight:600}.start-canvas-note{font-family:var(--mono);letter-spacing:.14em;text-transform:uppercase;margin-top:8px;font-size:11px}.start-links{grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:12px;display:grid}.start-link{text-align:left;background:var(--bg1);border:1px solid var(--border);border-radius:var(--radius);cursor:pointer;font-family:var(--sans);color:var(--text0);flex-direction:column;align-items:flex-start;gap:2px;padding:18px 20px;transition:border-color .15s,transform .15s,box-shadow .15s;display:flex}.start-link:hover{border-color:var(--border2);box-shadow:var(--ds-shadow);transform:translateY(-2px)}.start-link-icon{color:var(--accent);margin-bottom:8px;font-size:17px}.start-link-value{letter-spacing:-.03em;font-size:26px;font-weight:700;line-height:1}.start-link-title{margin-top:6px;font-size:13px;font-weight:600}.start-link-note{font-family:var(--mono);color:var(--text2);font-size:10px}.section-title{color:var(--text2);text-transform:uppercase;letter-spacing:.12em;font-size:11px;font-weight:600;font-family:var(--mono);justify-content:space-between;align-items:center;gap:10px;margin:0 0 14px;display:flex}.section-title-right{text-transform:none;letter-spacing:.04em;opacity:.8;font-weight:400}.panel{background:var(--bg1);border:1px solid var(--border);border-radius:var(--radius);margin-bottom:16px;padding:20px 22px}.stat-grid{grid-template-columns:repeat(auto-fit,minmax(var(--stat-min,190px),1fr));gap:12px;margin-bottom:22px;display:grid}.stat-card{background:var(--bg1);border:1px solid var(--border);border-radius:var(--radius);padding:17px 19px;transition:border-color .15s,transform .15s}.stat-card.is-link{cursor:pointer}.stat-card.is-link:hover{border-color:var(--border2);transform:translateY(-2px)}.stat-card-head{align-items:center;gap:7px;margin-bottom:12px;display:flex}.stat-card-icon{color:var(--accent);font-size:13px;line-height:1}.stat-card-label{font-family:var(--mono);color:var(--text2);text-transform:uppercase;letter-spacing:.1em;font-size:10px}.stat-card-value{letter-spacing:-.035em;font-size:30px;font-weight:700;line-height:1}.stat-card-sub{color:var(--text2);margin-top:9px;font-size:11px;line-height:1.5}.stat-card-goal{font-family:var(--mono);margin-top:5px;display:block}.bar-track{background:var(--bg3);border-radius:3px;height:5px;overflow:hidden}.bar-fill{border-radius:3px;height:100%;transition:width .45s}.progress-row{align-items:center;gap:11px;padding:8px 0;display:flex}.progress-row+.progress-row{border-top:1px solid var(--border)}.progress-row-dot{border-radius:50%;flex-shrink:0;width:8px;height:8px}.progress-row-label{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;font-size:13px;font-weight:500;overflow:hidden}.progress-row-num{font-family:var(--mono);color:var(--text2);flex-shrink:0;font-size:11px}.progress-row-bar{flex-shrink:0;width:84px}.progress-row-pct{font-family:var(--mono);color:var(--text1);text-align:right;flex-shrink:0;min-width:38px;font-size:11px}.progress-row-extra{color:var(--amber);flex-shrink:0;font-size:11px}.bar-chart{width:100%;display:block;overflow:visible}.chart-label{font-family:var(--mono);fill:var(--text2);font-size:9px}.heat-row+.heat-row{border-top:1px solid var(--border);margin-top:16px;padding-top:16px}.heat-row-head{align-items:center;gap:8px;margin-bottom:8px;display:flex}.heat-row-dot{border-radius:50%;flex-shrink:0;width:8px;height:8px}.heat-row-name{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;font-size:13px;font-weight:500;overflow:hidden}.heat-row-meta{font-family:var(--mono);color:var(--text2);flex-shrink:0;font-size:10px}.heat-grid{grid-template-columns:repeat(auto-fill,minmax(11px,1fr));grid-auto-flow:row;gap:3px;display:grid}.heat-cell{aspect-ratio:1;border:1px solid var(--border);background:var(--bg3);opacity:.55;border-radius:3px;width:100%;transition:opacity .15s}.heat-cell.on{opacity:1;border-style:solid}.dash-cols{grid-template-columns:1.35fr 1fr;align-items:start;gap:16px;display:grid}.dash-cols-even{grid-template-columns:1fr 1fr}.dash-col{min-width:0}@media (width<=900px){.dash-cols,.dash-cols-even{grid-template-columns:1fr}}.dash-muted{color:var(--text2);font-size:12px;line-height:1.6}.dash-today-ring{align-items:center;gap:14px;margin-bottom:16px;display:flex}.dash-today-ring-text{line-height:1.3}.dash-today-ring-text strong{letter-spacing:-.03em;font-size:24px;font-weight:700;display:block}.dash-today-ring-text span{color:var(--text2);font-size:11px}.dash-today-sep{background:var(--border);height:1px;margin:16px 0}.dash-today-workout{align-items:center;gap:12px;display:flex}.dash-today-workout-icon{flex-shrink:0;font-size:22px}.dash-today-workout-name{color:var(--orange);font-size:14px;font-weight:600;line-height:1.3}.dash-check-list{gap:7px;display:grid}.dash-check-row{align-items:center;gap:10px;display:flex}.dash-check-dot{border:2px solid var(--border2);width:18px;height:18px;color:var(--ds-bg);border-radius:6px;flex-shrink:0;justify-content:center;align-items:center;font-size:10px;font-weight:700;display:flex}.dash-check-name{text-overflow:ellipsis;white-space:nowrap;min-width:0;font-size:13px;overflow:hidden}.dash-check-row.is-on .dash-check-name{color:var(--text2)}.dash-upcoming{gap:2px;display:grid}.dash-upcoming-row{flex-wrap:wrap;align-items:center;gap:9px;padding:9px 0;display:flex}.dash-upcoming-row+.dash-upcoming-row{border-top:1px solid var(--border)}.dash-upcoming-date{font-family:var(--mono);color:var(--text2);flex-shrink:0;font-size:11px}.dash-upcoming-title{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;font-size:13px;font-weight:500;overflow:hidden}.dash-more{font-family:var(--mono);color:var(--accent);cursor:pointer;padding-top:10px;font-size:11px}.dash-more:hover{text-decoration:underline}.chip-row{flex-wrap:wrap;gap:7px;display:flex}.dash-habits{gap:8px;display:grid}.dash-item{background:var(--bg3);border:1px solid var(--border);border-radius:var(--radius-sm);-webkit-user-select:none;user-select:none;transition:border-color .15s;overflow:hidden}.dash-item.done{border-color:#34d39947}.dash-item-header{cursor:pointer;align-items:center;gap:11px;padding:11px 14px;display:flex}.dash-item:hover .dash-item-header{background:var(--bg2)}.dash-item.done .dash-item-header{background:var(--green-dim)}.dash-cb{border:2px solid var(--border2);border-radius:7px;flex-shrink:0;justify-content:center;align-items:center;width:23px;height:23px;font-size:12px;transition:all .12s;display:flex}.dash-name{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;font-size:13px;font-weight:500;overflow:hidden}.dash-streak{font-family:var(--mono);color:var(--amber);flex-shrink:0;font-size:11px}.dash-expand-btn{color:var(--text2);cursor:pointer;background:var(--bg1);border:1px solid var(--border);font-size:10px;font-family:var(--mono);border-radius:20px;flex-shrink:0;padding:3px 7px;transition:color .12s}.dash-expand-btn:hover{color:var(--text0)}.dash-item-detail{border-top:1px solid var(--border);color:var(--text1);background:var(--bg1);padding:10px 14px 12px 48px;font-size:12px;line-height:1.6;display:none}.dash-item-detail.open{display:block}.detail-chip{font-family:var(--mono);background:var(--bg3);border:1px solid var(--border);color:var(--text2);border-radius:20px;margin-right:6px;padding:3px 9px;font-size:10px;display:inline-block}.todo-cb{border:2px solid var(--border2);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:20px;height:20px;margin-top:1px;font-size:10px;transition:all .12s;display:flex}.todo-body{flex:1;min-width:0}.todo-title{font-size:13px;font-weight:500;line-height:1.3}.todo-meta{flex-wrap:wrap;align-items:center;gap:7px;margin-top:4px;display:flex}.todo-tag{font-family:var(--mono);border-radius:20px;padding:2px 7px;font-size:10px;font-weight:500}.tag-schule{color:#60a5fa;background:#60a5fa1f}.tag-arbeit{color:#34d399;background:#34d3991f}.tag-termin{color:#fbbf24;background:#fbbf241f}.tag-privat{color:#a78bfa;background:#a78bfa1f}.tag-sonstiges{background:var(--bg3);color:var(--text2)}.prio-hoch{color:var(--red);font-family:var(--mono);font-size:10px}.prio-mittel{color:var(--amber);font-family:var(--mono);font-size:10px}.prio-niedrig{color:var(--text2);font-family:var(--mono);font-size:10px}.overdue-badge{color:var(--red);font-family:var(--mono);font-size:10px}.todo-card-date{font-family:var(--mono);color:var(--text2);font-size:11px}.month-nav{align-items:center;gap:12px;margin-bottom:20px;display:flex}.month-label{letter-spacing:-.01em;min-width:140px;font-size:15px;font-weight:600}.habit-table-wrap{background:var(--bg1);border:1px solid var(--border);border-radius:var(--radius);overflow-x:auto}table.habit-table{border-collapse:collapse;width:100%;min-width:700px}.habit-table thead th{font-family:var(--mono);color:var(--text2);text-align:center;border-bottom:1px solid var(--border);letter-spacing:.04em;padding:9px 3px;font-size:10px;font-weight:500}.habit-table thead th.habit-name-col{text-align:left;width:170px;padding-left:16px;font-size:11px}.habit-table thead .week-header{background:var(--bg2)}.habit-table tbody tr{border-bottom:1px solid var(--border)}.habit-table tbody tr:last-child{border-bottom:none}.habit-table tbody tr:hover td{background:var(--bg2)}.habit-table td{text-align:center;height:42px;padding:0}.habit-table td.name-cell{text-align:left;white-space:nowrap;padding:0 10px 0 16px;font-size:13px;font-weight:500}.habit-color-dot{vertical-align:middle;border-radius:50%;width:7px;height:7px;margin-right:7px;display:inline-block;position:relative;top:-1px}.cb-wrap{cursor:pointer;justify-content:center;align-items:center;height:42px;display:flex}.cb{border:1.5px solid var(--border2);background:0 0;border-radius:5px;flex-shrink:0;justify-content:center;align-items:center;width:21px;height:21px;font-size:11px;transition:all .12s;display:flex}.cb.checked{color:var(--ds-bg);border-color:#0000;font-weight:700;animation:.2s cubic-bezier(.4,0,.2,1) pop}@keyframes pop{0%{transform:scale(1)}50%{transform:scale(1.3)}to{transform:scale(1)}}.cb.future{border-color:var(--border);opacity:.3;cursor:default}.cb.workout-day{border-color:var(--orange);opacity:.6}td.today-col-td{background:var(--accent-dim2)}td.week-sep,th.week-sep{border-left:2px solid var(--border2)}.dow-sun{color:var(--red)!important}.dow-sat{color:var(--amber)!important}.stats-row td{font-family:var(--mono);color:var(--text2);border-top:1px solid var(--border);background:var(--bg2);padding:7px 3px;font-size:10px}.stats-row td.name-cell{font-size:10px}.workout-table-row td{background:#fb923c0a!important}.workout-table-row td.name-cell{color:var(--orange)}.month-stats-grid{max-width:620px}.todo-toolbar{flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:18px;display:flex}.filter-pill{cursor:pointer;border:1px solid var(--border);background:var(--bg3);color:var(--text1);font-size:12px;font-weight:500;font-family:var(--sans);border-radius:20px;padding:5px 13px;transition:all .15s}.filter-pill.active{background:var(--accent);color:#fff;border-color:var(--accent)}.filter-pill:hover:not(.active){border-color:var(--border2);color:var(--text0)}.todo-list{gap:10px;max-width:700px;display:grid}.todo-card{background:var(--bg1);border:1px solid var(--border);border-radius:var(--radius);align-items:flex-start;gap:13px;padding:15px 17px;transition:border-color .15s;display:flex}.todo-card:hover{border-color:var(--border2)}.todo-card.done-todo{opacity:.5}.todo-card.done-todo .todo-title{text-decoration:line-through}.todo-card.overdue{border-left:3px solid var(--red)}.todo-card-body{flex:1;min-width:0}.todo-card-title{margin-bottom:6px;font-size:14px;font-weight:500}.todo-card-meta{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.todo-card-actions{flex-shrink:0;align-items:center;gap:6px;margin-left:auto;display:flex}.workout-plan-header{justify-content:space-between;align-items:center;margin-bottom:20px;display:flex}.plan-selector{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.plan-badge{cursor:pointer;border:1px solid var(--border);background:var(--bg3);color:var(--text1);border-radius:20px;padding:5px 14px;font-size:12px;font-weight:500;transition:all .15s}.plan-badge.active{background:var(--orange);color:#fff;border-color:var(--orange)}.plan-badge:hover:not(.active){border-color:var(--border2);color:var(--text0)}.week-grid{grid-template-columns:repeat(7,1fr);gap:10px;margin-bottom:28px;display:grid}.day-card{background:var(--bg1);border:1px solid var(--border);border-radius:var(--radius);min-height:140px;padding:14px;transition:border-color .15s}.day-card.today-day{border-color:var(--orange);background:#fb923c0a}.day-card-head{justify-content:space-between;align-items:center;margin-bottom:10px;display:flex}.day-card-name{letter-spacing:.03em;font-size:12px;font-weight:600}.day-card-name.today-label{color:var(--orange)}.day-add-btn{color:var(--text2);cursor:pointer;background:0 0;border:none;padding:2px 5px;font-size:14px;line-height:1;transition:color .12s}.day-add-btn:hover{color:var(--text0)}.exercise-list{gap:5px;display:grid}.exercise-item{background:var(--bg2);border-radius:6px;align-items:center;gap:8px;padding:7px 10px;font-size:12px;display:flex}.exercise-item.done-ex{opacity:.5;text-decoration:line-through}.ex-check{border:1.5px solid var(--border2);cursor:pointer;border-radius:4px;flex-shrink:0;justify-content:center;align-items:center;width:16px;height:16px;font-size:9px;transition:all .12s;display:flex}.ex-check.checked-ex{background:var(--orange);color:var(--ds-bg);border-color:#0000;font-weight:700}.ex-name{flex:1;font-weight:500}.ex-sets{font-family:var(--mono);color:var(--text2);flex-shrink:0;font-size:10px}.ex-del{color:var(--text2);cursor:pointer;opacity:0;background:0 0;border:none;padding:1px 3px;font-size:11px;transition:opacity .12s}.exercise-item:hover .ex-del{opacity:1}.rest-day{color:var(--text2);text-align:center;font-size:11px;font-family:var(--mono);padding:16px 0}.today-workout-big{background:var(--bg1);border-radius:var(--radius);background:linear-gradient(135deg,#fb923c0f,#fbbf2408);border:1px solid #fb923c4d;max-width:700px;margin-bottom:20px;padding:18px 20px}.today-workout-title{color:var(--orange);align-items:center;gap:8px;margin-bottom:12px;font-size:14px;font-weight:600;display:flex}.today-ex-grid{gap:7px;display:grid}.today-ex-item{background:var(--bg2);cursor:pointer;border-radius:8px;align-items:center;gap:10px;padding:9px 12px;transition:background .12s;display:flex}.today-ex-item:hover{background:var(--bg3)}.today-ex-item.done-ex{opacity:.5}.today-ex-name{flex:1;font-size:13px;font-weight:500}.today-ex-sets{font-family:var(--mono);color:var(--text2);font-size:11px}.modal-overlay{z-index:100;background:#000000bf;justify-content:center;align-items:center;display:none;position:fixed;inset:0}.modal-overlay.open{display:flex}.modal{background:var(--bg1);border:1px solid var(--border2);border-radius:14px;width:420px;max-width:95vw;max-height:90vh;padding:26px;overflow-y:auto}.modal-title{margin-bottom:18px;font-size:16px;font-weight:600}.form-group{margin-bottom:13px}label.form-label{color:var(--text1);font-size:11px;font-family:var(--mono);letter-spacing:.04em;margin-bottom:5px;display:block}input.form-input,select.form-select,textarea.form-textarea{background:var(--bg2);border:1px solid var(--border);border-radius:var(--radius-sm);width:100%;color:var(--text0);font-family:var(--sans);outline:none;padding:9px 11px;font-size:13px;transition:border-color .15s}input.form-input:focus,select.form-select:focus,textarea.form-textarea:focus{border-color:var(--accent)}select.form-select option{background:var(--bg2)}textarea.form-textarea{resize:vertical;min-height:65px}.color-picker{flex-wrap:wrap;gap:8px;display:flex}.color-swatch{cursor:pointer;border:2px solid #0000;border-radius:50%;width:24px;height:24px;transition:border-color .12s,transform .12s}.color-swatch.selected{border-color:var(--text0);transform:scale(1.2)}.modal-actions{justify-content:flex-end;gap:8px;margin-top:22px;display:flex}.dow-toggle-wrap{flex-wrap:wrap;gap:6px;display:flex}.dow-toggle{cursor:pointer;border:1px solid var(--border);background:var(--bg3);color:var(--text1);font-size:12px;font-weight:500;font-family:var(--mono);border-radius:6px;padding:5px 10px;transition:all .12s}.dow-toggle.sel{background:var(--accent);color:#fff;border-color:var(--accent)}.manage-list{gap:9px;max-width:600px;display:grid}.manage-item{background:var(--bg1);border:1px solid var(--border);border-radius:var(--radius);align-items:center;gap:11px;padding:13px 17px;display:flex}.manage-item-detail{color:var(--text2);font-size:11px;font-family:var(--mono)}.empty-state{text-align:center;color:var(--text2);padding:48px 20px}.empty-icon{margin-bottom:10px;font-size:30px}.empty-state p{font-size:13px;line-height:1.7}.bottom-nav{background:color-mix(in srgb,var(--ds-bg) 88%,transparent);-webkit-backdrop-filter:blur(18px)saturate(150%);border-top:1px solid var(--border);padding:7px 0 max(7px, env(safe-area-inset-bottom));z-index:90;grid-template-columns:repeat(7,1fr);display:none;position:fixed;bottom:0;left:0;right:0}.bottom-nav-item{cursor:pointer;color:var(--text2);font-size:9px;font-weight:500;font-family:var(--sans);background:0 0;border:none;flex-direction:column;align-items:center;gap:3px;min-width:0;padding:5px 1px;transition:color .15s;display:flex}.bottom-nav-item span:last-child{text-overflow:ellipsis;white-space:nowrap;max-width:100%;overflow:hidden}.bottom-nav-item.active{color:var(--accent)}.bottom-nav-item:hover{color:var(--text1)}.bottom-nav-icon{font-size:16px;line-height:1}@media (width<=768px){.topbar{grid-template-columns:auto 1fr auto;gap:10px;padding:11px 14px}.topnav,.topbar-name{display:none}.topbar-view-title{display:block}.bottom-nav{display:grid}.main{padding:18px 16px max(88px, calc(66px + env(safe-area-inset-bottom))) 16px}.stat-grid{grid-template-columns:repeat(2,1fr);gap:10px}.stat-card{padding:14px 15px}.stat-card-value{font-size:24px}.panel{padding:16px}.start-canvas{aspect-ratio:4/3;min-height:260px}.habit-table-wrap{-webkit-overflow-scrolling:touch}.week-grid{grid-template-columns:repeat(2,1fr)}.page-header{flex-direction:column;align-items:flex-start;gap:12px}.todo-toolbar{gap:6px}.filter-pill{padding:4px 10px;font-size:11px}.progress-row-bar{width:56px}.modal{border-radius:20px 20px 0 0;width:100%;max-width:100%;max-height:85vh;position:fixed;bottom:0;left:0;right:0}.modal-overlay.open{align-items:flex-end}}@media (width<=1100px){.week-grid{grid-template-columns:repeat(4,1fr)}}.ern-day-nav{align-items:center;gap:12px;margin-bottom:22px;display:flex}.ern-day-label{text-align:center;letter-spacing:-.01em;flex:1;font-size:15px;font-weight:600}.macro-grid{grid-template-columns:repeat(4,1fr);gap:10px;max-width:700px;margin-bottom:24px;display:grid}.macro-card{background:var(--bg1);border:1px solid var(--border);border-radius:var(--radius);padding:14px 16px}.macro-label{font-family:var(--mono);color:var(--text2);text-transform:uppercase;letter-spacing:.08em;margin-bottom:6px;font-size:10px}.macro-val{letter-spacing:-.02em;font-size:22px;font-weight:700;line-height:1}.macro-goal{color:var(--text2);margin-top:2px;font-size:11px}.macro-bar-wrap{background:var(--bg3);border-radius:2px;height:4px;margin-top:8px;overflow:hidden}.macro-bar{border-radius:2px;height:100%;transition:width .4s}.meal-section{max-width:700px;margin-bottom:20px}.meal-header{justify-content:space-between;align-items:center;margin-bottom:10px;display:flex}.meal-title{letter-spacing:.02em;font-size:13px;font-weight:600}.meal-kcal{font-family:var(--mono);color:var(--text2);font-size:11px}.meal-items{gap:6px;display:grid}.food-item{background:var(--bg1);border:1px solid var(--border);border-radius:var(--radius-sm);align-items:center;gap:10px;padding:10px 14px;transition:border-color .12s;display:flex}.food-item:hover{border-color:var(--border2)}.food-name{flex:1;min-width:0;font-size:13px;font-weight:500}.food-macros{font-family:var(--mono);color:var(--text2);text-align:right;flex-shrink:0;font-size:10px;line-height:1.6}.food-del{color:var(--text2);cursor:pointer;opacity:0;background:0 0;border:none;padding:2px 4px;font-size:13px;transition:opacity .12s}.food-item:hover .food-del{opacity:1}.food-del:hover{color:var(--red)}.add-food-btn{border:1px dashed var(--border2);border-radius:var(--radius-sm);color:var(--text2);cursor:pointer;font-size:12px;font-family:var(--sans);background:0 0;align-items:center;gap:8px;width:100%;padding:9px 14px;transition:all .15s;display:flex}.add-food-btn:hover{color:var(--text0);border-color:var(--border)}.search-result-item{cursor:pointer;border-bottom:1px solid var(--border);padding:11px 14px;transition:background .12s}.search-result-item:hover{background:var(--bg2)}.search-result-item:last-child{border-bottom:none}.search-result-name{font-size:13px;font-weight:500}.search-result-meta{font-family:var(--mono);color:var(--text2);margin-top:2px;font-size:10px}.ern-modal{background:var(--bg1);border:1px solid var(--border2);border-radius:14px;width:440px;max-width:95vw;max-height:90vh;padding:24px;overflow-y:auto}.search-results-box{background:var(--bg0);border:1px solid var(--border);border-radius:var(--radius-sm);max-height:220px;margin-top:4px;overflow-y:auto}.ai-box{border-radius:var(--radius);background:linear-gradient(135deg,#7c6aff14,#34d3990d);border:1px solid #7c6aff33;max-width:700px;margin-bottom:20px;padding:16px 18px}.ai-box-title{color:var(--accent);align-items:center;gap:6px;margin-bottom:8px;font-size:12px;font-weight:600;display:flex}.ai-box-text{color:var(--text1);white-space:pre-wrap;font-size:13px;line-height:1.6}@media (width<=768px){.macro-grid{grid-template-columns:repeat(2,1fr)}}#auth-gate{z-index:200;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#08070fb8;display:none;position:fixed;inset:0}#auth-gate.open{display:block}:root.light #auth-gate{background:#f6f5fdbf}.auth-screen{justify-content:center;align-items:center;min-height:100vh;padding:20px;display:flex}.auth-card{background:var(--bg1);border:1px solid var(--border2);width:380px;max-width:100%;box-shadow:var(--ds-shadow);border-radius:14px;padding:32px;position:relative}.auth-close{width:30px;height:30px;color:var(--text2);cursor:pointer;font-size:22px;line-height:1;font-family:var(--sans);background:0 0;border:none;border-radius:8px;padding:0;transition:color .15s,background .15s;position:absolute;top:10px;right:12px}.auth-close:hover{color:var(--text0);background:var(--bg3)}.topbar-login{white-space:nowrap;flex-shrink:0;padding:6px 12px;font-size:12px}.auth-logo{letter-spacing:.04em;align-items:center;gap:10px;margin-bottom:24px;font-size:15px;font-weight:700;display:flex}.logo-dot{background:var(--accent);border-radius:50%;flex-shrink:0;width:8px;height:8px}.auth-error{color:var(--red);min-height:14px;margin:8px 0 0;font-size:12px}.auth-info{color:var(--text2);margin:0 0 8px;font-size:12px;line-height:1.5}.auth-toggle{color:var(--text2);text-align:center;margin-top:16px;font-size:12px}.auth-toggle a{color:var(--accent);cursor:pointer;text-decoration:none}.auth-section{display:none}.auth-section.active{display:block}.auth-btn-full{justify-content:center;width:100%}
