:root{--red:#eb1c24;--red-hi:#ff3a41;--red-dim:#eb1c2424;--red-line:#eb1c2457;--gold:#ffca18;--gold-dim:#ffca181f;--gold-line:#ffca184d;--club:#7d6be0;--ink:#0c0a0b;--panel:#171416;--panel-2:#221e21;--fill:#2c272a;--line:#ffffff17;--txt:#f7f5f5;--txt-2:#9c9498;--txt-3:#6b6469;--good:#31c77c;--good-dim:#31c77c24;--warn:#f2a93b;--warn-dim:#f2a93b24;--bad:#ff4e4e;--bad-dim:#ff4e4e24;--r:13px;--f:-apple-system, "SF Pro Text", "Segoe UI", system-ui, sans-serif;--fd:-apple-system, "SF Pro Display", "Segoe UI", system-ui, sans-serif;--fm:ui-monospace, "SF Mono", Menlo, monospace;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*{box-sizing:border-box;margin:0;padding:0}body{font-family:var(--f);background:var(--ink);color:var(--txt);-webkit-font-smoothing:antialiased;min-height:100vh;font-size:14px;line-height:1.55}@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}button,input,select,textarea{font-family:inherit;font-size:inherit;color:inherit}button{cursor:pointer;background:0 0;border:0}a{color:var(--red-hi);text-decoration:none}:focus-visible{outline:2px solid var(--gold);outline-offset:2px;border-radius:4px}.mono{font-family:var(--fm);font-variant-numeric:tabular-nums}.eyebrow{font-family:var(--fm);letter-spacing:.14em;text-transform:uppercase;color:var(--txt-3);font-size:10.5px;font-weight:600}.shell{grid-template-columns:232px 1fr;min-height:100vh;display:grid}@media (width<=860px){.shell{grid-template-columns:1fr}}.side{border-right:1px solid var(--line);flex-direction:column;gap:2px;padding:18px 0 20px;display:flex}.brand{align-items:center;gap:10px;padding:0 18px 18px;display:flex}.brand svg{width:auto;height:30px;display:block}.brand span{font-family:var(--fd);letter-spacing:.22em;text-transform:uppercase;font-size:12px;font-weight:800}.nav-item{color:var(--txt-2);text-align:left;align-items:center;gap:9px;width:100%;padding:9px 18px;font-size:13.5px;display:flex}.nav-item.on{background:var(--red-dim);color:var(--txt);box-shadow:inset 2px 0 0 var(--red)}.nav-item.refresh{color:var(--txt-3);margin-top:10px;font-size:12.5px}.nav-item.refresh:hover{color:var(--txt)}.nav-item .count{font-family:var(--fm);color:var(--txt-3);margin-left:auto;font-size:11px}.side-foot{border-top:1px solid var(--line);margin-top:auto;padding:14px 18px 0}.side-foot .who{color:var(--txt-2);font-size:12px}.side-foot button{color:var(--txt-3);margin-top:6px;font-size:12px}.side-foot .foot-link{color:var(--txt-3);margin-top:8px;font-size:12px;display:block}.side-foot .foot-link:hover,.side-foot .foot-link.active{color:var(--txt)}.side-foot button{display:block}.main{min-width:0;padding:26px 30px 60px}@media (width<=640px){.main{padding:20px 16px 48px}}.page-head{flex-direction:column;gap:4px;margin-bottom:20px;display:flex}.page-head h1{font-family:var(--fd);letter-spacing:-.03em;font-size:24px;font-weight:800}.page-head p{color:var(--txt-2);font-size:13px}.card{border:1px solid var(--line);border-radius:var(--r);background:var(--panel);overflow:hidden}.card+.card{margin-top:12px}.card-head{border-bottom:1px solid var(--line);align-items:center;gap:10px;padding:13px 16px;display:flex}.card-head .nm{flex:1;font-size:14px;font-weight:700}.card-head .tm{font-family:var(--fm);color:var(--txt-3);font-size:11px}.card-body{flex-direction:column;gap:11px;padding:14px 16px;display:flex}.card-body p{font-size:13.5px}.card-body p b{color:var(--txt)}.tier-escalate{border-color:var(--bad)}.tier-propose{border-color:var(--warn)}.tag{font-family:var(--fm);letter-spacing:.1em;text-transform:uppercase;background:var(--fill);color:var(--txt-2);white-space:nowrap;border-radius:5px;padding:3px 8px;font-size:10px;font-weight:600}.tag.escalate{background:var(--bad-dim);color:var(--bad)}.tag.propose{background:var(--warn-dim);color:var(--warn)}.tag.act{background:var(--good-dim);color:var(--good)}.rule{color:var(--txt-3);background:var(--panel-2);border:1px solid var(--line);border-radius:8px;align-items:center;gap:9px;padding:8px 11px;font-size:11.5px;display:flex}.rule i{border-radius:2px;flex:none;width:7px;height:7px;display:block}.grid{background:var(--line);border:1px solid var(--line);border-radius:10px;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:1px;display:grid;overflow:hidden}.grid .cell{background:var(--panel-2);flex-direction:column;gap:2px;padding:10px 12px;display:flex}.grid .cell .k{letter-spacing:.11em;text-transform:uppercase;color:var(--txt-3);font-size:9.5px;font-weight:700}.grid .cell .v{font-family:var(--fm);font-size:13px}.row{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.btn{border:1px solid var(--line);background:var(--panel-2);color:var(--txt);border-radius:9px;padding:9px 16px;font-size:13px;font-weight:600}.btn:hover{border-color:#ffffff38}.btn.go{background:var(--good);border-color:var(--good);color:var(--ink)}.btn.primary{background:var(--red);border-color:var(--red);color:#fff}.btn.quiet{color:var(--txt-3)}.btn:disabled{opacity:.45;cursor:not-allowed}.field{flex-direction:column;gap:5px;display:flex}.field label{color:var(--txt-2);font-size:12px}.input{background:var(--panel-2);border:1px solid var(--line);border-radius:9px;width:100%;padding:10px 12px;font-size:13.5px}.input::placeholder{color:var(--txt-3)}.input:focus{border-color:var(--red-line);outline:none}.list{border:1px solid var(--line);border-radius:var(--r);overflow:hidden}.list-row{background:var(--panel);text-align:left;width:100%;color:var(--txt);align-items:center;gap:12px;padding:13px 16px;display:flex}.list-row+.list-row{border-top:1px solid var(--line)}.list-row:hover{background:var(--panel-2)}.avatar{background:var(--fill);width:30px;height:30px;font-family:var(--fd);border-radius:15px;flex:none;justify-content:center;align-items:center;font-size:11px;font-weight:800;display:flex}.list-row .nm{font-size:13.5px;font-weight:600}.list-row .sub{color:var(--txt-3);font-size:11.5px}.thread{flex-direction:column;gap:12px;max-height:420px;padding:16px;display:flex;overflow-y:auto}.bubble{border-radius:13px;max-width:74%;padding:10px 13px;font-size:13.5px;line-height:1.5}.bubble.athlete{background:var(--panel-2);border:1px solid var(--line);align-self:flex-start}.bubble.assistant{border:1px solid var(--line);align-self:flex-start}.bubble.coach{background:var(--red);color:#fff;align-self:flex-end}.bubble .who{font-family:var(--fm);letter-spacing:.12em;text-transform:uppercase;color:var(--txt-3);margin-bottom:4px;font-size:9.5px}.empty{text-align:center;color:var(--txt-3);padding:40px 20px;font-size:13px}.notice{color:var(--txt-2);background:var(--panel);border:1px solid var(--line);border-left:2px solid var(--gold);border-radius:0 11px 11px 0;margin-bottom:16px;padding:12px 15px;font-size:12.5px;line-height:1.6}.error{border-left-color:var(--bad);color:var(--txt)}.signin{place-items:center;min-height:100vh;padding:24px;display:grid}.signin .box{flex-direction:column;gap:16px;width:100%;max-width:380px;display:flex}.signin .box h1{font-family:var(--fd);letter-spacing:-.03em;font-size:26px;font-weight:800}.bubble.held{outline:1px solid var(--red)}.ctx{z-index:60;background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:4px;position:fixed;box-shadow:0 12px 28px #00000080}.ctx button{text-align:left;white-space:nowrap;width:100%;color:var(--txt);border-radius:7px;padding:7px 12px;font-size:13px;display:block}.ctx button:hover{background:var(--panel-2)}.ctx button.danger{color:var(--bad)}.sheet-scrim{z-index:50;background:#0009;place-items:start center;padding:40px 20px;display:grid;position:fixed;inset:0;overflow-y:auto}.sheet{background:var(--panel);border:1px solid var(--line);border-radius:var(--r);width:100%;max-width:620px;overflow:hidden}.presc{border:1px solid var(--line);border-radius:10px;flex-direction:column;gap:9px;padding:11px;display:flex}.presc-grid{grid-template-columns:repeat(auto-fit,minmax(78px,1fr));gap:8px;display:grid}.presc-grid .input{padding:7px 9px;font-size:12.5px}.tabs{border-bottom:1px solid var(--line);gap:4px;margin-bottom:18px;display:flex}.tabs button{color:var(--txt-2);border-bottom:2px solid #0000;margin-bottom:-1px;padding:9px 14px;font-size:13.5px}.tabs button.on{color:var(--txt);border-bottom-color:var(--red)}select.input{appearance:none;background-image:none}.media{background:var(--panel-2);border-radius:10px;width:260px;max-width:100%;margin-top:8px;display:block}audio.media{width:260px}.composer{border-top:1px solid var(--line);flex-direction:column;gap:10px;padding:14px 16px;display:flex}.composer .notice{margin-bottom:0}.composer .attach .btn{align-items:center;gap:7px;padding:7px 12px;font-size:12.5px;display:inline-flex}.composer .attach .btn svg{color:var(--txt-2)}.composer .attach .btn:disabled svg{color:var(--txt-3)}.capture{border:1px solid var(--line);background:var(--panel-2);border-radius:11px;flex-direction:column;gap:10px;padding:11px;display:flex}.capture img,.capture video{background:var(--ink);border-radius:9px;width:100%;max-width:320px;display:block}.capture audio{width:100%;max-width:320px}.live{color:var(--txt-2);flex:1;align-items:center;gap:8px;font-size:12.5px;display:inline-flex}.live i{background:var(--bad);border-radius:4px;flex:none;width:8px;height:8px;animation:1.2s ease-in-out infinite pulse}@keyframes pulse{50%{opacity:.25}}.bubble .dur{font-family:var(--fm);color:var(--txt-3);margin-top:4px;font-size:10.5px;display:block}.bubble.coach .dur{color:#ffffffb8}.chart-body{flex-direction:column;gap:12px;padding:14px 16px 12px;display:flex}.chart-headline{align-items:baseline;gap:10px;display:flex}.chart-headline .big{letter-spacing:-.02em;font-size:26px;font-weight:800}.chart-headline .trend{font-size:12px;font-weight:700}.chart-bars{align-items:flex-end;gap:4px;display:flex}.bar-col{flex-direction:column;flex:1 1 0;align-items:center;gap:4px;min-width:0;display:flex}.bar-value{color:var(--txt-2);white-space:nowrap;height:13px;font-size:10px}.bar-track{width:100%;height:var(--chart-h,140px);background:linear-gradient(var(--panel-2), var(--panel-2)) no-repeat center / 100% 1px;border-radius:4px;align-items:flex-end;display:flex}.bar-stack{border-radius:4px 4px 2px 2px;flex-direction:column-reverse;width:100%;min-height:1px;display:flex;overflow:hidden}.bar-stack.provisional{opacity:.45}.bar-seg{width:100%;min-height:0}.bar-label{color:var(--txt-2);white-space:nowrap;font-size:10.5px}.bar-sub{color:var(--txt-3);white-space:nowrap;font-size:9.5px}.chart-line{flex-direction:column;gap:6px;display:flex}.line-plot{height:var(--chart-h,140px);border:1px solid var(--line);background:var(--panel-2);border-radius:8px;position:relative}.line-svg{width:100%;height:100%;display:block;position:absolute;inset:0}.line-rail{opacity:.75;pointer-events:none;border-top:1px solid;position:absolute;left:0;right:0;transform:translateY(-.5px)}.line-rail.dashed{border-top-style:dashed}.line-rail span{letter-spacing:.06em;text-transform:uppercase;font-size:9.5px;position:absolute;top:-14px;right:5px}.line-head{width:7px;height:7px;box-shadow:0 0 0 3px var(--panel-2);border-radius:4px;position:absolute;transform:translate(-50%,-50%)}.line-max,.line-min{color:var(--txt-3);font-size:9.5px;position:absolute;left:6px}.line-max{top:4px}.line-min{bottom:4px}.line-axis{color:var(--txt-3);justify-content:space-between;font-size:9.5px;display:flex}.chart-legend{color:var(--txt-2);flex-wrap:wrap;gap:4px 14px;font-size:11px;display:flex}.chart-legend span{align-items:center;gap:6px;display:inline-flex}.chart-legend i{border-radius:2px;flex:none;width:8px;height:8px;display:block}.chart-legend b{color:var(--txt);font-weight:600}.chart-grid{grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:12px;display:grid}.chart-grid>.card+.card{margin-top:0}.cal-bar{align-items:center;gap:8px;margin-bottom:14px;display:flex}.cal-bar .month{font-family:var(--fd);min-width:132px;font-size:15px;font-weight:700}.cal{background:var(--line);border:1px solid var(--line);border-radius:var(--r);grid-template-columns:repeat(7,minmax(0,1fr));gap:1px;display:grid;overflow:hidden}.cal .wd{background:var(--panel);font-family:var(--fm);letter-spacing:.12em;text-transform:uppercase;color:var(--txt-3);padding:7px 8px;font-size:9.5px;font-weight:600}.cal-day{background:var(--panel);text-align:left;width:100%;min-height:92px;color:var(--txt);border-left:2px solid #0000;flex-direction:column;gap:4px;padding:6px 7px 7px;display:flex}.cal-day:hover{background:var(--panel-2)}.cal-day.out{opacity:.32}.cal-day.sel{background:var(--panel-2);box-shadow:inset 0 0 0 1px var(--red-line)}.cal-day .dnum{font-family:var(--fm);color:var(--txt-2);align-items:center;gap:5px;font-size:11.5px;display:flex}.cal-day.today .dnum{color:var(--txt);font-weight:700}.cal-day.today .dnum:before{content:"";background:var(--red);border-radius:3px;flex:none;width:5px;height:5px}.cal-day.s-trained{border-left-color:var(--good)}.cal-day.s-partial{border-left-color:var(--warn)}.cal-day.s-missed{border-left-color:var(--bad);background:var(--bad-dim)}.cal-day.s-planned{border-left-color:var(--txt-3)}.cal-day.s-rest{border-left-color:#0000}.cal-chip{background:var(--fill);color:var(--txt-2);border-left:2px solid var(--txt-3);text-overflow:ellipsis;white-space:nowrap;border-radius:4px;padding:2px 5px;font-size:10px;line-height:1.35;overflow:hidden}.cal-chip.done{color:var(--txt)}.cal-chip.club{border-left-color:var(--club)}.cal-chip.endurance{border-left-color:var(--gold)}.cal-chip.strength,.cal-chip.power{border-left-color:var(--red)}.cal-chip.off{border:1px dashed var(--line);border-left:2px solid var(--gold);background:0 0}.cal-marks{align-items:center;gap:4px;margin-top:auto;display:flex}.cal-marks i{border-radius:3px;flex:none;width:6px;height:6px;display:block}.cal-marks .mono{color:var(--txt-3);margin-left:auto;font-size:9px}.cal-key{color:var(--txt-3);flex-wrap:wrap;gap:6px 16px;margin-top:12px;font-size:11px;display:flex}.cal-key span{align-items:center;gap:6px;display:inline-flex}.cal-key i{border-radius:2px;width:3px;height:12px;display:block}@media (width<=720px){.cal-day{min-height:68px}.cal-chip{font-size:9px}}.ex-grid{grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:12px;display:grid}.ex-card{border:1px solid var(--line);border-radius:var(--r);background:var(--panel);color:var(--txt);flex-direction:column;display:flex;overflow:hidden}.ex-card:hover{border-color:#ffffff38}.ex-thumb{aspect-ratio:4/3;background:var(--panel-2);color:var(--txt-3);justify-content:center;align-items:center;font-size:11.5px;display:flex;overflow:hidden}.ex-thumb img{object-fit:cover;width:100%;height:100%;display:block}.ex-body{flex-direction:column;gap:4px;padding:11px 13px 13px;display:flex}.ex-body .nm{font-size:14px;font-weight:700}.ex-body .sub{color:var(--txt-3);font-size:11.5px}.ex-flags{gap:6px;margin-top:4px;display:flex}.ex-flags:empty{display:none}.ex-form{flex-direction:column;gap:12px;max-width:760px;display:flex}.ex-form .card+.card{margin-top:0}.ex-two{grid-template-columns:1fr 1fr;gap:12px;display:grid}@media (width<=640px){.ex-two{grid-template-columns:1fr}}textarea.input{resize:vertical;font-family:var(--f);line-height:1.5}.check{color:var(--txt-2);align-items:center;gap:8px;font-size:13px;display:flex}.check input{accent-color:var(--red)}.chips{flex-wrap:wrap;gap:6px;display:flex}.chip{border:1px solid var(--line);background:var(--panel-2);color:var(--txt-2);border-radius:999px;align-items:center;gap:6px;padding:5px 10px;font-size:12px;display:inline-flex}.chip:hover{border-color:#ffffff38}.chip.on{background:var(--red-dim);border-color:var(--red-line);color:var(--txt)}.chip.on2{background:var(--gold-dim);border-color:var(--gold-line);color:var(--txt)}.chip button{color:var(--txt-3);font-size:14px;line-height:1}.ex-images{grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:10px;display:grid}.ex-image{flex-direction:column;gap:6px;display:flex}.ex-image .ex-thumb{border:1px solid var(--line);border-radius:9px}.ex-add{aspect-ratio:4/3;border:1px dashed var(--line);color:var(--txt-2);cursor:pointer;border-radius:9px;justify-content:center;align-items:center;font-size:12.5px;display:flex}.ex-add:hover{border-color:var(--red-line);color:var(--txt)}.btn.small{padding:4px 9px;font-size:11.5px}.ex-actions{margin-top:4px}
