@font-face{font-family:'Source Sans 3';src:url('./fonts/sourcesans3_300.ttf');font-weight:300}@font-face{font-family:'Source Sans 3';src:url('./fonts/sourcesans3_400.ttf');font-weight:400}@font-face{font-family:'Source Sans 3';src:url('./fonts/sourcesans3_500.ttf');font-weight:500}
:root{font-family:'Source Sans 3',system-ui,sans-serif;color-scheme:dark;--bg:#101512;--panel:#1b241e;--panel2:#243027;--line:#344038;--text:#f2f6eb;--muted:#a7b5a9;--accent:#d8ef73;--accent-text:#172013;--danger:#ff7774;--radius:22px}
body[data-theme=black]{--bg:#000;--panel:#131713;--panel2:#202720;--line:#354037;--text:#fff;--muted:#b6c1b7;--accent:#d9f174}
body[data-theme=light]{color-scheme:light;--bg:#f7f8ef;--panel:#fff;--panel2:#eef2e3;--line:#d9e0cf;--text:#1b2b21;--muted:#63766a;--accent:#9ec535;--accent-text:#172013}
body[data-theme=sky]{color-scheme:light;--bg:#eef7fa;--panel:#fff;--panel2:#e5f2f7;--line:#cde1e9;--text:#163145;--muted:#607d8a;--accent:#9bdcec;--accent-text:#14313a}
.shell.chat-shell{height:100dvh;min-height:0;display:flex;flex-direction:column;overflow:hidden}
.chat-shell .chat-header,.battle-shell .chat-header{flex:none;padding-bottom:12px}
.chat-top{display:flex;align-items:center;gap:10px;min-height:48px}
.chat-identity{display:flex;align-items:center;gap:10px;min-width:0;flex:1}
.chat-identity .avatar{width:42px;height:42px;flex:none;font-size:21px}
.chat-identity-copy{min-width:0}
.chat-identity h1{font-size:20px;line-height:1.1;margin:0 0 3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.chat-identity p{font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.chat-back{flex:none;min-height:42px;min-width:76px;padding:9px 15px;display:inline-flex;align-items:center;justify-content:center;white-space:nowrap}
.chat-back svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.header-refresh{flex:none;min-height:36px;padding:7px 12px;color:var(--accent);background:transparent;font-size:13px}
.editor-tools{display:flex;justify-content:flex-end;margin:0 0 14px}
.editor-tools .danger{min-height:38px;padding:7px 12px;font-size:13px}
.template-wheels,.live-set-wheels{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:2px;margin:14px 0;align-items:start}
.template-wheels{grid-template-columns:1fr 1.15fr 1fr}
.template-wheels>*+*,.live-set-wheels>*+*{position:relative}
.template-wheels>*+*::before,.live-set-wheels>*+*::before{content:"";position:absolute;left:-1.5px;top:10px;bottom:10px;width:1px;border-radius:1px;pointer-events:none;background:linear-gradient(transparent,color-mix(in srgb,var(--line) 80%,var(--muted)) 20%,color-mix(in srgb,var(--line) 80%,var(--muted)) 80%,transparent)}
.number-wheel{text-align:center;min-width:0}
.wheel-heading{display:flex;align-items:center;justify-content:center;gap:2px;color:var(--muted);font-size:12px;line-height:1.2;min-height:44px}
.wheel-heading>span{min-width:0;text-align:center}
.template-wheels .wheel-line,.live-set-wheels .wheel-line{display:flex;flex-direction:column;gap:0}
.template-wheels .wheel-center,.live-set-wheels .wheel-center{order:1;width:100%}
.template-wheels .wheel-arrow,.live-set-wheels .wheel-arrow{width:100%;min-width:44px}
.template-wheels .wheel-arrow[data-dir="1"],.live-set-wheels .wheel-arrow[data-dir="1"]{order:0}
.template-wheels .wheel-arrow[data-dir="-1"],.live-set-wheels .wheel-arrow[data-dir="-1"]{order:2}
.template-wheels .wheel-arrow svg,.live-set-wheels .wheel-arrow svg{width:24px;height:24px;transform:scaleY(.55)}
.wheel-line{display:grid;grid-template-columns:32px minmax(0,1fr) 32px;align-items:center;gap:1px}
.wheel-arrow{width:32px;height:44px;display:grid;place-items:center;padding:0;border:0;background:transparent;color:var(--muted)}
.wheel-arrow svg{width:17px;height:17px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.wheel-center{display:grid;justify-items:center;min-width:0;touch-action:none}
.wheel-neighbor{color:var(--muted);font-size:12px;line-height:18px;height:18px}
.wheel-center input{width:100%;height:43px;min-height:43px;border:0;background:transparent;border-radius:0;padding:0;text-align:center;font-size:27px;font-weight:300;line-height:43px;appearance:textfield}
.wheel-center input::-webkit-inner-spin-button,.wheel-center input::-webkit-outer-spin-button{appearance:none;margin:0}
.weight-step-control{position:relative;display:grid;justify-items:center;flex:none}
.weight-step-label{border:0;background:transparent;color:var(--accent);font-size:12px;min-height:44px;min-width:44px;padding:2px 4px}
.weight-step-wheel{position:absolute;z-index:30;top:100%;left:50%;transform:translateX(-50%);width:154px;background:var(--panel2);border:1px solid var(--line);border-radius:17px;padding:10px;box-shadow:0 12px 32px #0005;display:grid;justify-items:center;gap:2px;color:var(--text);touch-action:none}
.weight-step-wheel button{border:0;background:transparent;color:var(--muted);font-size:13px;padding:3px 12px;min-height:44px;width:100%}
.weight-step-wheel .weight-step-current{font-size:26px;font-weight:300;color:var(--accent)}
.weight-step-wheel small{font-size:11px;color:var(--muted)}
.exercise-picker-results{max-height:350px;overflow-y:auto;overscroll-behavior:contain;touch-action:pan-y}
.template-save-fab{position:fixed;z-index:35;right:max(20px,calc((100vw - 520px)/2 + 20px));bottom:calc(18px + env(safe-area-inset-bottom));width:58px;height:58px;min-height:58px;border-radius:19px;padding:0;display:grid;place-items:center;box-shadow:0 10px 28px #0007}
.template-save-fab svg{width:24px;height:24px}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.live-set{border:1px solid var(--line);border-radius:17px;background:var(--panel);padding:9px 10px;margin:9px 0}
.live-set.done{opacity:.62}
.live-set-head{display:flex;justify-content:space-between;align-items:center;color:var(--muted);font-size:13px}
.live-set-wheels{margin:2px 0 0}
.live-set-tabs{display:flex;gap:7px;overflow-x:auto;margin:14px -18px 0;padding:0 18px;scrollbar-width:none}
.live-set-tabs::-webkit-scrollbar{display:none}
.live-set-tabs button{flex:none;min-height:35px;border:1px solid var(--line);border-radius:12px;background:transparent;color:var(--muted);padding:6px 11px;font-size:13px}
.live-set-tabs button.active{background:var(--panel2);color:var(--text);border-color:var(--accent)}
.live-exercise-heading{text-align:center;display:grid;justify-items:center;gap:4px;min-width:0}
.live-exercise-heading h2{font-size:20px;margin:0}
.live-exercise-heading .exercise-thumb{width:48px;height:48px}
.live-progress{text-align:center;margin:8px 0 0}
.live-remove-set{border:0;background:transparent;color:var(--danger);font-size:12px;padding:6px}
.mood-picker{margin:20px 0 12px;text-align:center}
.mood-picker>span{display:block;color:var(--muted);font-size:13px;margin-bottom:7px}
.mood-picker>div{display:flex;justify-content:space-around;gap:5px}
.mood-picker button{width:48px;height:43px;border:1px solid var(--line);border-radius:13px;background:var(--panel);font-size:21px}
.mood-picker button.active{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 17%,var(--panel))}
.plan-time-wheels{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;margin:12px 0 20px}
.calendar-cell{position:relative;min-width:0}
.calendar-cell .day{width:100%}
.calendar-day-menu{top:calc(100% + 4px);left:0;min-width:190px}
.calendar-day-menu.align-right{left:auto;right:0}
.avatar-crop-preview{position:relative;width:240px;height:240px;margin:18px auto;border:2px solid var(--accent);border-radius:50%;overflow:hidden;background:var(--panel2);touch-action:none;cursor:grab}
.avatar-crop-preview:active{cursor:grabbing}
.avatar-crop-preview img{position:absolute;left:50%;top:50%;max-width:none;transform-origin:center;translate:-50% -50%;pointer-events:none;user-select:none}
.history-set summary{cursor:pointer;list-style:none;display:grid;gap:3px}
.history-set summary::-webkit-details-marker{display:none}
.history-set summary strong{font-weight:500}
.history-set summary small{color:var(--muted)}
.nav button{position:relative}
.nav-badge{position:absolute;top:2px;left:calc(50% + 7px);min-width:17px;height:17px;border-radius:9px;background:var(--danger);color:#fff;font-size:10px;font-weight:600;line-height:17px;padding:0 3px}
.nav-badge[hidden]{display:none}
.template-order-list>[data-order-key],.live-order-list>[data-order-key]{position:relative}
.template-order-list.reordering .draft-exercise>*:not(summary),.template-order-list.reordering .draft-order{display:none}
.template-order-list.reordering .draft-exercise summary{list-style:none}
.template-order-list.reordering .draft-exercise summary::-webkit-details-marker{display:none}
.template-order-list .held,.live-order-list .held{z-index:5;box-shadow:0 15px 30px #0008;border-color:var(--accent);opacity:.96}
.wheel-neighbor.ten-minute{font-weight:700;color:var(--text);font-size:14px}
.chart-axis{stroke:var(--line)}
.chart-trace{stroke:var(--accent);stroke-dasharray:1200;stroke-dashoffset:1200;animation:chart-draw 1s ease-out forwards}
.chart-dot{fill:var(--accent);opacity:0;animation:chart-dot-in .3s ease-out forwards}
.chart-dot.selected{stroke:var(--text);stroke-width:2}
[data-chart-plot]{touch-action:pan-y}
@keyframes chart-draw{to{stroke-dashoffset:0}}
@keyframes chart-dot-in{to{opacity:1}}
@media(prefers-reduced-motion:reduce){.chart-trace,.chart-dot{animation:none;stroke-dashoffset:0;opacity:1}}
.diary-context{display:flex;justify-content:space-between;align-items:center;gap:12px;margin:0 2px 13px;color:var(--muted);font-size:13px}
.diary-context strong{color:var(--accent);font-weight:500;font-size:14px}
.diary-shell #calendar{padding:13px;margin-bottom:8px}
.diary-shell #calendar .day{min-height:54px}
.diary-shell .section-title{margin-top:15px}
.sport-picker{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin:13px 0 16px}
.sport-choice{min-width:0;min-height:75px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;padding:8px 3px;border:1px solid var(--line);border-radius:15px;background:var(--panel);color:var(--text);font-size:12px;text-align:center}
.sport-choice .sport-icon{width:22px;height:22px;color:var(--sport);margin:0}
.sport-choice-body{font-size:23px;line-height:22px;color:var(--accent)}
.sport-choice.active{border-color:var(--sport,var(--accent));background:color-mix(in srgb,var(--sport,var(--accent)) 18%,var(--panel));box-shadow:inset 0 0 0 1px var(--sport,var(--accent))}
.sport-choice.active span:last-child{font-weight:500}
.training-template-card{margin:9px 0;border:1px solid var(--line);border-radius:18px;background:var(--panel);overflow:hidden}
.training-template-open{display:flex;align-items:center;gap:12px;width:100%;padding:13px;border:0;background:transparent;color:var(--text);text-align:left}
.training-template-copy{display:grid;gap:3px;min-width:0;flex:1}
.training-template-copy strong{font-size:17px;font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.training-template-copy small{font-size:12px;color:var(--muted)}
.training-template-actions{display:flex;justify-content:flex-end;gap:2px;padding:0 10px 8px}
.training-template-actions button{border:0;border-radius:10px;background:transparent;color:var(--accent);padding:7px 9px;font-size:13px}
.training-template-actions button.remove{color:var(--danger);background:color-mix(in srgb,var(--danger) 12%,transparent)}
.draft-order{display:flex;align-items:center;justify-content:flex-end;gap:7px;margin-top:10px}
.draft-order span{margin-right:auto}
.metric-picker{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px;margin:11px 0 16px}
.metric-picker button{min-width:0;min-height:40px;white-space:normal;line-height:1.15}
.progress-range{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-bottom:14px}
.progress-range .field{min-width:0;margin:0}
.progress-range input{min-width:0;padding:10px 6px;font-size:13px}
.progress-range>.secondary{grid-column:1/-1;min-height:40px}
.progress-period-picker{display:grid;gap:8px;margin:14px 0}
.progress-period-presets{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:4px}
.progress-period-presets .pill{min-width:0;min-height:42px;padding:8px 4px;font-size:12px;justify-content:center}
.progress-period-picker>.secondary{min-height:44px}
.live-order-row{display:flex;align-items:center;gap:7px;padding:10px 0;border-bottom:1px solid var(--line)}
.live-order-row strong{min-width:0;flex:1;font-size:14px;font-weight:500}
.live-order-row .pill{min-width:38px;padding:7px}
.live-order-number{color:var(--accent);font-size:13px}
.chat-leave{border:0;background:none;color:var(--muted);padding:0;text-decoration:underline;font-size:12px}
.chat-mode{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:4px;margin-top:15px;padding:4px;background:var(--panel2);border:1px solid var(--line);border-radius:17px}
.chat-mode button{min-width:0;min-height:44px;padding:6px;border:0;border-radius:13px;background:transparent;color:var(--muted);font-size:14px;font-weight:500;text-align:center;white-space:nowrap}
.chat-mode button.active{background:var(--accent);color:var(--accent-text);box-shadow:0 2px 10px #0004}
.chat-mode button:focus-visible,.chat-back:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.chat-messages{flex:1;min-height:0;overflow-y:auto;overscroll-behavior:contain;padding:4px 2px 12px}
.chat-shell .chat-form{position:relative;bottom:auto;flex:none;margin:0 -16px;padding:10px 16px 12px;background:var(--bg);border-top:1px solid var(--line)}
.chat-shell .chat-form input{min-width:0}
.battle-message{border:0;background:none;color:var(--accent);font:inherit;text-align:left;padding:0}
.shell.battle-shell{height:100dvh;min-height:0;display:flex;flex-direction:column;overflow:hidden}
.battle-body{flex:1;min-height:0;overflow-y:auto;display:flex;flex-direction:column;justify-content:center}
.battle-card{padding:23px;border-radius:23px;background:var(--panel);border:1px solid var(--line);text-align:center}
.battle-title{font-size:29px;line-height:1.15;font-weight:300;margin:9px 0}
.battle-compare{display:grid;grid-template-columns:1fr 30px 1fr;gap:8px;align-items:center;margin:28px 0}
.battle-side{text-align:left;min-width:0}
.battle-side:last-child{text-align:right}
.battle-side strong{display:block;font-size:24px;font-weight:400;white-space:nowrap}
.battle-bar{height:7px;border-radius:10px;background:var(--line);overflow:hidden;margin-top:8px}
.battle-bar span{display:block;height:100%;border-radius:10px;background:var(--accent)}
.battle-side:last-child .battle-bar span{background:#bca3f7}
.battle-actions{display:grid;gap:9px;padding:12px 0}
.battle-body{justify-content:flex-start;padding:8px 0 14px}
.battle-arena{text-align:center}
.battle-arena-title{color:var(--accent);font-weight:500;font-size:13px;letter-spacing:.13em}
.battle-arena-sub{color:var(--muted);font-size:12px;margin:6px 0 22px}
.battle-fighters{display:grid;grid-template-columns:1fr 44px 1fr;align-items:center;margin-bottom:20px}
.battle-fighters>div{min-width:0}.battle-fighters b{color:var(--muted);font-size:17px}
.battle-fighters strong,.battle-fighters small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.battle-fighters strong{font-size:14px;font-weight:500}.battle-fighters small{font-size:11px;color:var(--muted)}
.battle-portrait{width:64px;height:64px;border:2px solid var(--accent);border-radius:50%;background:var(--panel2);color:var(--accent);display:grid;place-items:center;margin:0 auto 8px;font-size:20px}
.battle-portrait.rival{border-color:#bca3f7;color:#bca3f7}
.battle-scoreboard{border:1px solid var(--line);border-radius:18px;background:var(--panel);overflow:hidden}
.battle-scoreboard-head{padding:12px;background:var(--panel2);font-size:11px;letter-spacing:.11em;color:var(--muted)}
.battle-metric{display:grid;grid-template-columns:minmax(0,1fr) 102px minmax(0,1fr);gap:6px;align-items:center;padding:13px 10px;border-top:1px solid var(--line)}
.battle-metric-side{min-width:0}.battle-metric-side.left{text-align:right}.battle-metric-side.right{text-align:left}
.battle-metric-side strong{font-size:clamp(11px,3.6vw,15px);font-weight:500;white-space:nowrap;font-variant-numeric:tabular-nums}
.battle-metric-label{font-size:12px;line-height:1.15;overflow-wrap:anywhere}.battle-metric-label small{display:block;color:var(--muted);font-size:10px;margin-top:3px}
.battle-metric-track{height:7px;margin-top:7px;border-radius:9px;background:var(--line);display:flex;overflow:hidden}
.battle-metric-track span{height:100%;border-radius:9px;background:var(--accent)}
.battle-metric-side.left .battle-metric-track span{margin-left:auto}.battle-metric-side.right .battle-metric-track span{background:#bca3f7}
.battle-hint{color:var(--muted);font-size:11px;margin:14px 4px 0}
body[data-theme=black]{--bg:#000;--panel:#131713;--panel2:#202720;--line:#354037;--text:#fff;--muted:#b6c1b7;--accent:#d9f174}
body[data-theme=light]{color-scheme:light;--bg:#f7f8ef;--panel:#fff;--panel2:#eef2e3;--line:#d9e0cf;--text:#1b2b21;--muted:#63766a;--accent:#9ec535;--accent-text:#172013}
body[data-theme=sky]{color-scheme:light;--bg:#eef7fa;--panel:#fff;--panel2:#e5f2f7;--line:#cde1e9;--text:#163145;--muted:#607d8a;--accent:#9bdcec;--accent-text:#14313a}
*{box-sizing:border-box}html,body{margin:0;min-height:100%;background:var(--bg);color:var(--text)}body{font-size:16px;font-weight:400}button,input,select,textarea{font:inherit}button{cursor:pointer}button:disabled{opacity:.45;cursor:not-allowed}input,select,textarea{color:var(--text);background:var(--panel2);border:1px solid var(--line);border-radius:14px;padding:13px 14px;min-height:48px;outline:none;width:100%}input:focus,select:focus,textarea:focus{border-color:var(--accent)}textarea{resize:vertical}input[type=checkbox]{width:auto;min-height:0;accent-color:var(--accent)}input[type=date],input[type=time]{color-scheme:dark}a{color:var(--accent)}.shell{width:min(100%,520px);min-height:100dvh;margin:auto;padding:0 16px calc(94px + env(safe-area-inset-bottom));position:relative}.hero{padding:26px 4px 18px}.eyebrow{color:var(--accent);font-size:12px;letter-spacing:.14em;text-transform:uppercase;font-weight:500}.hero h1{font-size:34px;line-height:1.05;letter-spacing:-.035em;font-weight:300;margin:8px 0 4px}.hero p{color:var(--muted);margin:0;font-size:14px}.topline{display:flex;align-items:center;justify-content:space-between;gap:12px}.round-icon{background:var(--panel);border:1px solid var(--line);border-radius:50%;color:var(--text);width:42px;height:42px;display:grid;place-items:center;font-size:23px}.card{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:17px;margin-bottom:12px}.card h2,.card h3{font-weight:400;margin:0}.card h2{font-size:20px}.card h3{font-size:17px}.muted{color:var(--muted)}.small{font-size:13px}.spaced{display:flex;justify-content:space-between;align-items:center;gap:10px}.row{display:flex;align-items:center;gap:10px}.wrap{flex-wrap:wrap}.stack{display:grid;gap:12px}.gap8{gap:8px}.mt8{margin-top:8px}.mt12{margin-top:12px}.mt20{margin-top:20px}.section-title{font-size:14px;color:var(--muted);letter-spacing:.03em;margin:23px 3px 10px}.pill{border-radius:100px;border:1px solid var(--line);background:var(--panel2);color:var(--text);padding:7px 12px;font-size:13px;white-space:nowrap}.pill.active{background:var(--accent);border-color:var(--accent);color:var(--accent-text)}.primary,.secondary,.danger{border-radius:15px;min-height:46px;padding:10px 16px;font-weight:500}.primary{background:var(--accent);border:1px solid var(--accent);color:var(--accent-text)}.secondary{background:var(--panel2);border:1px solid var(--line);color:var(--text)}.danger{background:rgba(255,119,116,.12);border:1px solid rgba(255,119,116,.35);color:var(--danger)}.full{width:100%}.icon-btn{border:0;background:transparent;color:var(--muted);padding:7px;font-size:20px}.nav{position:fixed;z-index:20;bottom:0;left:50%;transform:translateX(-50%);width:min(100%,520px);height:calc(74px + env(safe-area-inset-bottom));padding:7px 8px env(safe-area-inset-bottom);background:rgba(20,29,23,.97);border-top:1px solid var(--line);display:grid;grid-template-columns:repeat(5,1fr);backdrop-filter:blur(20px)}.nav button{border:0;background:none;color:var(--muted);display:grid;place-content:center;gap:2px;text-align:center;font-size:11px;font-weight:400}.nav button.active{color:var(--accent)}.nav svg{width:22px;height:22px;stroke:currentColor;fill:none;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;margin:auto}.fab{position:fixed;z-index:15;bottom:calc(88px + env(safe-area-inset-bottom));right:max(18px,calc((100vw - 520px)/2 + 18px));width:58px;height:58px;border-radius:19px;border:0;background:var(--accent);color:var(--accent-text);font-size:32px;font-weight:300;box-shadow:0 10px 28px #0007}.sport-badge{width:38px;height:38px;flex:none;display:grid;place-items:center;border-radius:13px;font-size:21px;background:color-mix(in srgb,var(--sport) 20%,transparent);color:var(--sport)}.sport-strength{--sport:#f67f78}.sport-workout{--sport:#e98875}.sport-running{--sport:#dced69}.sport-swimming{--sport:#7dc8eb}.sport-cycling{--sport:#bca3f7}.sport-walking{--sport:#efb179}.sport-other{--sport:#a8cbb8}.item{display:flex;align-items:center;gap:12px;width:100%;text-align:left;background:var(--panel);border:1px solid var(--line);color:var(--text);border-radius:18px;padding:12px;margin:7px 0}.item main{min-width:0;flex:1}.item strong{font-weight:500}.item small{display:block;color:var(--muted);font-size:13px;margin-top:2px}.item .chevron{font-size:21px;color:var(--muted)}.calendar-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}.calendar-head h2{font-size:20px;font-weight:400;margin:0}.calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:3px}.weekday{text-align:center;font-size:12px;color:var(--muted);padding:4px 0}.weekday.weekend{color:#e5aa83}.day{min-height:62px;border:1px solid transparent;border-radius:13px;background:transparent;color:var(--text);display:flex;flex-direction:column;align-items:center;padding:4px 1px;gap:2px}.day.other{opacity:.35}.day.today{border-color:var(--accent)}.day.selected{background:var(--accent);color:var(--accent-text)}.day .num{height:24px;line-height:24px;font-size:17px}.day .dots{height:22px;display:flex;align-items:flex-start;justify-content:center;flex-wrap:wrap;gap:1px;font-size:11px;line-height:12px;max-width:100%}.floating-menu{position:absolute;z-index:12;background:var(--panel2);border:1px solid var(--line);border-radius:15px;box-shadow:0 15px 35px #0007;padding:6px;min-width:180px}.floating-menu button{background:none;border:0;color:var(--text);width:100%;text-align:left;padding:10px;border-radius:9px}.floating-menu button:hover{background:var(--line)}.weekend .num{color:#e5aa83}.day.selected .num{color:var(--accent-text)}.sheet-backdrop{position:fixed;inset:0;background:#0009;z-index:40;display:flex;align-items:end;justify-content:center}.sheet{width:min(100%,520px);max-height:91dvh;overflow:auto;background:var(--bg);border:1px solid var(--line);border-radius:25px 25px 0 0;padding:19px 18px calc(22px + env(safe-area-inset-bottom));box-shadow:0 -20px 50px #0005}.sheet h2{font-size:25px;font-weight:300;margin:2px 0 15px}.sheet .grab{width:42px;height:4px;background:var(--line);border-radius:4px;margin:0 auto 16px}.field{display:grid;gap:5px;margin:11px 0}.field label{color:var(--muted);font-size:13px}.field-inline{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.set-row{display:grid;grid-template-columns:30px 1fr 1fr 40px;gap:7px;align-items:center;margin:7px 0}.set-row input{text-align:center;padding:8px 3px}.set-row.done{opacity:.48}.set-row.done input{text-decoration:line-through}.check{width:38px;height:40px;border:1px solid var(--line);border-radius:12px;background:var(--panel2);color:var(--accent);font-size:18px}.check.done{background:var(--accent);color:var(--accent-text)}.chip-scroll{display:flex;gap:7px;overflow:auto;margin:10px -16px 15px;padding:0 16px;scrollbar-width:none}.chip-scroll::-webkit-scrollbar{display:none}.stat-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.stat{background:var(--panel2);border-radius:13px;padding:11px}.stat b{display:block;font-size:21px;font-weight:400}.stat span{color:var(--muted);font-size:12px}.chart{background:var(--panel);border:1px solid var(--line);border-radius:20px;padding:12px}.chart svg{display:block;width:100%;height:auto}.legend-row{display:flex;justify-content:space-between;color:var(--muted);font-size:12px}.empty{text-align:center;color:var(--muted);padding:27px 10px}.login{min-height:100dvh;display:flex;flex-direction:column;justify-content:center;padding-bottom:env(safe-area-inset-bottom)}.login-mark{width:70px;height:70px;border-radius:22px;background:var(--accent);display:grid;place-items:center;color:var(--accent-text);font-size:42px;margin-bottom:25px}.login h1{font-size:47px;font-weight:300;letter-spacing:-.05em;margin:0}.login p{color:var(--muted)}.login form{margin-top:24px}.alert{background:rgba(255,119,116,.13);border:1px solid rgba(255,119,116,.4);color:#ffb6b2;border-radius:12px;padding:10px;margin-top:10px}.avatar{width:48px;height:48px;border-radius:50%;background:var(--panel2);display:grid;place-items:center;color:var(--accent);font-size:23px;overflow:hidden}.avatar img{width:100%;height:100%;object-fit:cover}.bubble{max-width:85%;padding:10px 13px;border-radius:16px;background:var(--panel2);margin:8px 0}.bubble.mine{margin-left:auto;background:#30442e}.chat-form{display:flex;gap:7px;position:sticky;bottom:0;background:var(--bg);padding:8px 0}.chat-form button{width:50px;flex:none}.live-banner{position:sticky;z-index:10;top:0;background:#402824;border:1px solid #a55246;color:#ffdbd4;border-radius:15px;margin:8px 0;padding:10px;display:flex;align-items:center;justify-content:space-between}.red-dot{width:9px;height:9px;background:#ff6a5c;border-radius:50%;display:inline-block;animation:pulse 1.3s infinite}@keyframes pulse{50%{opacity:.2}}#toast{position:fixed;z-index:100;bottom:calc(85px + env(safe-area-inset-bottom));left:50%;transform:translateX(-50%);background:#364235;color:white;border-radius:12px;padding:10px 15px;max-width:90%;display:none;box-shadow:0 10px 30px #0007}@media(min-width:700px){.shell{border-left:1px solid var(--line);border-right:1px solid var(--line)}}

.title-identity{display:flex;align-items:center;gap:12px;min-width:0}.title-identity .avatar{flex:none}.avatar img,.battle-portrait img{width:100%;height:100%;object-fit:cover;border-radius:inherit;display:block}.battle-portrait{overflow:hidden}.group-rank .avatar{width:30px;height:30px;flex:none;font-size:14px}.group-rank{gap:8px;align-items:center}.group-rank>span:not(.avatar):not(.premium-avatar-wrap){flex:1}
.diary-account-button{display:grid;place-items:center;padding:0;border:0;background:none;color:inherit;min-width:44px;min-height:44px;flex:none}

.free-slots-banner{padding:12px;margin:4px 0 8px}.free-slots-banner p{margin:4px 0 8px}.free-slots-banner>div{display:flex;gap:8px}.free-slots-banner button{flex:1;font-size:13px;padding:8px;min-width:0}.free-slot-row{display:flex;gap:10px;align-items:center;padding:8px 0;font-size:14px;overflow-wrap:anywhere}.free-slot-row input{width:22px;flex:none}.expiry-crown{font-size:28px;color:var(--accent)}
#test-environment{position:fixed;top:0;left:0;right:0;height:24px;z-index:250;text-align:center;font-size:11px;line-height:24px;background:#423713;color:#fff0b5}.test-environment{padding-top:24px}.test-environment .plus-payment-backdrop{top:24px}.test-environment .live-session-header{top:24px}

.expiry-crown svg{width:28px;height:28px}.plus-payment-dialog h3{font-size:20px;margin:8px 0}
.workout-summary-heading{display:flex;align-items:center;justify-content:space-between;gap:8px}.workout-summary-heading h2{flex:1;min-width:0}.workout-summary-heading .round-icon{flex-shrink:0}
.workout-summary-dialog{width:min(480px,calc(100vw - 24px));max-width:min(480px,calc(100vw - 24px));height:94dvh;max-height:94dvh;padding:0;border:1px solid color-mix(in srgb,var(--line) 50%,transparent);border-radius:28px;background:var(--panel);color:var(--text);overflow:hidden;box-shadow:0 20px 70px #0006}
.workout-summary-dialog .secondary,.summary-friends .secondary{color:var(--accent);background:transparent}.workout-summary-dialog [data-summary-save]{color:var(--text)}.workout-summary-dialog .summary-style-choice{font-weight:500}.summary-color-dialog{max-width:min(300px,calc(100vw - 48px))}
.workout-summary-dialog::backdrop{background:#0009}.workout-summary-dialog[open]{display:flex;flex-direction:column}.workout-summary-dialog header{padding:16px;flex-shrink:0}.workout-summary-dialog h2{font-size:24px;line-height:32px;font-weight:300;letter-spacing:-.5px;margin:0}.summary-subtitle{font-size:12px;line-height:18px;color:var(--muted);margin:0;white-space:nowrap;text-overflow:ellipsis;overflow:hidden}
.workout-summary-scroll{overflow-y:auto;overscroll-behavior:contain;min-height:0;padding:0 16px 8px;flex:1}.workout-summary-styles{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-bottom:8px}.workout-summary-dialog .summary-style-choice{display:flex;align-items:center;gap:10px;padding:10px;min-width:0;height:64px;border:1px solid color-mix(in srgb,var(--line) 50%,transparent);border-radius:16px;background:var(--panel2);color:var(--text);font-size:12px;line-height:16px;text-align:left}.summary-mini{width:24px;height:38px;flex-shrink:0;color:var(--muted)}.summary-style-choice.active{border:2px solid var(--accent);background:color-mix(in srgb,var(--accent) 12%,transparent)}.summary-style-choice.active .summary-mini{color:var(--accent)}
.summary-photo-tools{display:flex;align-items:center;gap:8px;margin:8px 0}.workout-summary-dialog .summary-photo-tools button{height:44px;min-height:44px;padding:0 12px;font-size:14px;border-radius:100px}.summary-photo-tools [data-summary-photo]{flex:1;min-width:0}.workout-summary-dialog .summary-photo-tools [data-summary-remove]{width:44px;flex:0 0 44px;padding:10px}.workout-summary-dialog button .ui-icon{width:20px;height:20px;flex-shrink:0}.workout-summary-dialog button{display:flex;align-items:center;justify-content:center;gap:6px;min-height:44px}.summary-text-button{border:0;background:transparent;color:var(--accent);padding:0 6px;font-size:14px;border-radius:100px}.workout-summary-preview{aspect-ratio:9/16;width:min(100%,202.5px);margin:auto;border-radius:20px;overflow:hidden;background:repeating-conic-gradient(#363a40 0% 25%,#25292e 0% 50%) 0 0/16px 16px}.workout-summary-preview canvas{display:block;width:100%;height:100%;touch-action:none;cursor:move}.summary-hint{font-size:12px;line-height:18px;margin:8px 0 0}
.workout-summary-dialog footer{padding:10px 16px;display:grid;gap:4px;flex-shrink:0;border-top:1px solid color-mix(in srgb,var(--line) 30%,transparent)}.summary-send-tools{display:flex;align-items:center;gap:8px}.workout-summary-dialog .summary-send-tools button{height:48px;border-radius:100px}.summary-send-tools [data-summary-ritm]{flex:1}.summary-send-tools .round-icon{width:48px;flex:0 0 48px;padding:12px}.workout-summary-dialog [hidden]{display:none!important}.summary-friends button{margin-top:6px}.summary-notice:empty{display:none}.summary-notice{color:var(--accent)}
.summary-controls{display:grid;gap:8px}.summary-metrics-anchor>button{height:44px;justify-content:space-between;padding:0 12px;font-size:12px;border-radius:100px}.summary-metrics-popup{position:absolute;z-index:5;width:232px;padding:8px 0;border-radius:8px;background:var(--panel2);box-shadow:0 8px 28px #0008}.summary-metrics-popup label,.summary-outline{display:flex;align-items:center;gap:12px;min-height:48px;padding:0 16px;font-size:14px;cursor:pointer}.workout-summary-dialog input[type=checkbox]{width:18px;height:18px;min-width:18px;flex:0 0 18px;margin:0;padding:0;accent-color:var(--accent)}.summary-colors{display:flex;align-items:center;gap:4px;height:44px}.summary-colors>span{flex:1;min-width:0;font-size:12px;line-height:16px}.workout-summary-dialog .summary-colors button{width:44px;height:44px;flex:0 0 44px;min-height:44px;padding:0;border-radius:100px;border:1px solid var(--line);background:transparent}.summary-color i{width:28px;height:28px;border-radius:50%;background:var(--swatch)}.workout-summary-dialog .summary-color.active{border:2px solid var(--accent)}.summary-outline{padding:0 12px;gap:18px}.summary-color-dialog{width:min(300px,calc(100vw - 48px));padding:24px;border:0;border-radius:28px;background:var(--panel);color:var(--text)}.summary-color-dialog::backdrop{background:#0009}.summary-color-dialog h2{font-size:24px;line-height:32px;font-weight:300;margin:0 0 16px}.summary-color-sample{height:44px;border-radius:12px;margin-bottom:8px}.summary-color-dialog label{display:block;font-size:12px;line-height:18px}.summary-color-dialog input[type=range]{display:block;width:100%;height:40px;margin:0;padding:0;accent-color:var(--accent)}.summary-color-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:16px}.summary-color-actions button{height:44px;padding:0 12px}.summary-friends{width:min(360px,calc(100vw - 48px));max-height:calc(100dvh - 48px);overflow:auto;padding:24px;background:var(--panel);color:var(--text);border:0;border-radius:28px}.summary-friends::backdrop{background:#0009}.summary-friends button{width:100%;height:48px;border-radius:100px}.summary-friends h3{font-size:24px;line-height:32px;font-weight:300;margin:0 0 16px}

/* Summary editor: compact controls, measured preview, short-screen fallback. */
.workout-summary-dialog .workout-summary-preview{align-self:center}
.workout-summary-dialog:focus{outline:none}.workout-summary-dialog button:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.workout-summary-dialog .summary-style-choice{justify-content:flex-start}.workout-summary-dialog [data-summary-custom-color],.workout-summary-dialog [data-summary-remove]{color:var(--text)}.workout-summary-dialog input[type=checkbox]{appearance:none;position:relative;background:transparent;border:2px solid var(--muted);border-radius:2px}.workout-summary-dialog input[type=checkbox]:checked{background:var(--accent);border-color:var(--accent)}.workout-summary-dialog input[type=checkbox]:checked::after{content:"";position:absolute;width:5px;height:9px;border:solid var(--accent-text);border-width:0 2px 2px 0;left:4px;top:0;transform:rotate(45deg)}
.workout-summary-styles{column-gap:8px;row-gap:4px}.summary-outline{line-height:22px}.workout-summary-dialog .summary-photo-tools button,.workout-summary-dialog .summary-send-tools button,.workout-summary-dialog .summary-text-button{font-size:14px;line-height:20px;font-weight:400}.workout-summary-dialog .summary-photo-tools .ui-icon{width:18px;height:18px}.workout-summary-dialog [data-summary-remove] .ui-icon{width:20px;height:20px}.workout-summary-dialog [data-summary-share] .ui-icon,.workout-summary-dialog [data-summary-save] .ui-icon{width:22px;height:22px}.workout-summary-dialog footer{border-top:0}
.workout-summary-dialog header{padding:10px 16px}.workout-summary-scroll{display:flex;flex-direction:column;gap:4px;padding:0 16px 4px}.workout-summary-scroll>div,.workout-summary-scroll>p{flex:none;margin:0}.workout-summary-styles{gap:4px}.workout-summary-dialog .summary-style-choice{height:48px;padding:6px;gap:8px}.summary-mini{width:20px;height:30px}.summary-controls{gap:4px}.summary-metrics-anchor>button{height:40px;min-height:40px}.summary-colors{height:40px}.workout-summary-dialog .summary-colors button{height:40px;min-height:40px;width:40px;flex-basis:40px}.summary-color i{width:26px;height:26px}.summary-outline{height:40px;min-height:40px}.workout-summary-dialog .summary-photo-tools button{height:40px;min-height:40px}.workout-summary-dialog .summary-photo-tools [data-summary-remove]{width:40px;flex-basis:40px}.workout-summary-preview{position:relative;min-height:180px;max-height:300px;aspect-ratio:9/16;flex-shrink:0}.summary-hint{margin:0;line-height:18px}.workout-summary-dialog footer{padding:6px 16px}.workout-summary-dialog .summary-send-tools button{height:40px;min-height:40px}.summary-send-tools .round-icon{width:40px;flex-basis:40px;padding:9px}.workout-summary-dialog [data-summary-close]{height:40px;min-height:40px}.summary-notice{margin:0}.summary-scale-handles{position:absolute;pointer-events:none;border:1px solid white}.summary-scale-handles i{position:absolute;width:8px;height:8px;border-radius:50%;background:white;transform:translate(-50%,-50%)}.summary-scale-handles i:nth-child(1){left:0;top:0}.summary-scale-handles i:nth-child(2){left:100%;top:0}.summary-scale-handles i:nth-child(3){left:0;top:100%}.summary-scale-handles i:nth-child(4){left:100%;top:100%}

/* One short scroll switches between styles and the full-height photo editor. */
.workout-summary-dialog .workout-summary-scroll{gap:0;padding:0;scrollbar-width:none}
.workout-summary-scroll::-webkit-scrollbar{display:none}
.summary-style-panel{display:flex;flex-direction:column;gap:4px;padding:0 16px 4px;flex:none}
.summary-style-panel .workout-summary-styles{margin:0;column-gap:8px;row-gap:4px}
.summary-editor{width:100%;flex:none;min-height:0}
.summary-editor-inner{display:flex;flex-direction:column;gap:4px;height:100%;overflow-y:auto;overscroll-behavior:auto;padding:0 16px 4px;scrollbar-width:none}
.summary-editor-inner>div,.summary-editor-inner>p{flex:none;margin:0}
.workout-summary-dialog .workout-summary-preview{min-height:140px;max-height:720px;align-self:center}
.workout-summary-dialog .summary-photo-tools button{height:32px;min-height:32px;padding:0 10px;font-size:12px;line-height:16px}
.workout-summary-dialog .summary-photo-tools [data-summary-photo]{flex:none}
.workout-summary-dialog .summary-photo-tools [data-summary-remove]{width:32px;flex-basis:32px;padding:6px}
.workout-summary-dialog .summary-photo-tools [data-summary-reset]{margin-left:auto}
body[data-theme-collection] .workout-summary-dialog .secondary:not(.danger),body[data-theme-collection] .summary-friends .secondary:not(.danger){color:var(--accent);border-color:var(--line)}
body[data-theme-collection] .workout-summary-dialog .secondary[data-summary-save],body[data-theme-collection] .workout-summary-dialog .secondary[data-summary-remove],body[data-theme-collection] .workout-summary-dialog .secondary[data-summary-custom-color]{color:var(--text)}
