:root{--wol-green:#0f6b6d;--wol-green-dark:#0a5557;--wol-green-soft:#e8f3f2;--wol-text:#183034;--wol-muted:#66777a;--wol-border:#d9e2e2;--wol-bg:#f7f9f9;--wol-warn:#9b6415;--wol-red:#a43d3d;--wol-amber:#b57712;--wol-good:#26734d}
.wol-app{box-sizing:border-box;color:var(--wol-text);font:inherit;max-width:1100px;margin:0 auto}.wol-app *{box-sizing:border-box}.wol-app h2,.wol-app h3,.wol-app h4{color:var(--wol-text);margin-top:0}.wol-app a{color:var(--wol-green-dark)}
.wol-card{background:#fff;border:1px solid var(--wol-border);border-radius:12px;padding:18px;margin:0 0 16px}.wol-hero{display:flex;align-items:center;justify-content:space-between;gap:16px;background:var(--wol-green-soft);border:1px solid var(--wol-border);border-radius:14px;padding:20px;margin-bottom:16px}.wol-hero h2{margin:2px 0 4px}.wol-kicker{display:block;color:var(--wol-green);font-size:.78rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase}.wol-muted,.wol-app small{color:var(--wol-muted)}
.wol-btn,.wol-app button.wol-btn,.wol-app a.wol-btn{appearance:none;border:1px solid var(--wol-green)!important;background:var(--wol-green)!important;color:#fff!important;border-radius:8px;padding:10px 14px;font-weight:700;line-height:1.2;text-decoration:none;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:42px;box-shadow:none!important}.wol-btn:hover,.wol-btn:focus{background:var(--wol-green-dark)!important;border-color:var(--wol-green-dark)!important;color:#fff!important}.wol-btn-secondary,.wol-app a.wol-btn-secondary{background:#fff!important;color:var(--wol-green-dark)!important}.wol-btn-small{font-size:.85rem;padding:7px 10px;min-height:36px}.wol-btn:disabled,.wol-arrow:disabled{opacity:.42;cursor:not-allowed}
.wol-app input,.wol-app select,.wol-app textarea{width:100%;border:1px solid #bccaca;border-radius:7px;background:#fff;color:var(--wol-text);padding:9px 10px;font:inherit;min-height:42px}.wol-app textarea{min-height:78px}.wol-app input[type=checkbox]{width:auto;min-height:0}.wol-app input[type=range]{padding:0;border:0;min-height:30px}.wol-app label{display:grid;gap:5px;font-weight:650;font-size:.92rem}.wol-check{display:flex!important;align-items:center;gap:8px!important;font-weight:500!important}.wol-inline-form{display:flex;flex-wrap:wrap;align-items:end;gap:12px}.wol-inline-form>label{flex:1 1 180px}.wol-grid-2,.wol-grid-3{display:grid;gap:14px}.wol-grid-2{grid-template-columns:repeat(2,minmax(0,1fr))}.wol-grid-3{grid-template-columns:repeat(3,minmax(0,1fr))}.wol-section-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px}
.wol-dashboard-links,.wol-coach-grid,.wol-metric-grid,.wol-pred-grid,.wol-video-grid{display:grid;gap:12px}.wol-dashboard-links{grid-template-columns:repeat(3,minmax(0,1fr))}.wol-coach-grid,.wol-metric-grid,.wol-pred-grid{grid-template-columns:repeat(auto-fit,minmax(170px,1fr))}.wol-link-card,.wol-athlete-tile{text-decoration:none!important}.wol-athlete-tile,.wol-metric{border:1px solid var(--wol-border);border-radius:10px;padding:13px;background:var(--wol-bg);display:grid;gap:4px}.wol-metric strong{font-size:1.25rem}.wol-achievement{display:flex;justify-content:space-between;align-items:center;gap:18px}.wol-star-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:3px;min-width:96px;text-align:center;font-size:1.1rem}.wol-star-grid .filled{color:var(--wol-green)}.wol-star-grid .empty{color:#c7d0d0}
.wol-session-head{display:flex;justify-content:space-between;align-items:flex-start;gap:15px;margin-bottom:14px}.wol-session-duration{white-space:nowrap;color:var(--wol-muted)}.wol-session-shell.is-gated{opacity:.38;pointer-events:none}.wol-session-nav{display:grid;grid-template-columns:48px 1fr 48px;align-items:center;gap:8px;margin:0 0 10px}.wol-nav-label{text-align:center;font-size:1.15rem}.wol-arrow{border:0!important;background:var(--wol-green)!important;color:#fff!important;border-radius:8px;min-width:44px;min-height:44px;font-size:1.3rem;cursor:pointer}.wol-restbar{position:sticky;top:8px;z-index:20;display:flex;align-items:center;gap:8px;flex-wrap:wrap;background:#fff;border:2px solid var(--wol-green);border-radius:10px;padding:9px 11px;margin-bottom:12px}.wol-restbar[hidden]{display:none}.wol-rest-time{font-size:1.35rem;color:var(--wol-green);margin-right:auto}.wol-restbar select{width:auto;min-width:120px}.wol-panel{background:#fff;border:1px solid var(--wol-border);border-radius:12px;padding:16px}.wol-panel[hidden]{display:none}.wol-ex-head{display:grid;gap:8px;margin-bottom:10px}.wol-ex-head h3{margin:0}.wol-cue{border-left:4px solid var(--wol-green);background:var(--wol-green-soft);padding:9px 11px;border-radius:0 8px 8px 0}.wol-cue span{display:block;font-size:.72rem;font-weight:800;text-transform:uppercase;color:var(--wol-green)}.wol-support,.wol-substitute{border-top:1px solid var(--wol-border);padding:9px 0}.wol-support summary,.wol-substitute summary{cursor:pointer;font-weight:700;color:var(--wol-green-dark)}
.wol-block{border-top:1px solid var(--wol-border);padding:13px 0}.wol-block:first-child{border-top:0}.wol-block.is-working{border-left:3px solid var(--wol-green);padding-left:10px}.wol-block-head{display:flex;gap:8px;align-items:baseline;flex-wrap:wrap;margin-bottom:8px}.wol-pct,.wol-kg{font-weight:800;color:var(--wol-green)}.wol-set-row{border:1px solid var(--wol-border);background:var(--wol-bg);border-radius:9px;padding:10px;margin:8px 0;display:grid;gap:9px}.wol-set-row.is-done{opacity:.68}.wol-set-main{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.wol-set-no{font-weight:800}.wol-set-main label{display:flex;align-items:center;gap:6px;font-weight:500}.wol-set-main input{width:86px}.wol-rep-count{color:var(--wol-green);font-size:1.12rem}.wol-reps{display:flex;flex-wrap:wrap;gap:7px}.wol-rep{width:40px;height:40px;border-radius:50%;border:2px solid #9aabab;background:#fff;color:var(--wol-text);font-weight:800;cursor:pointer}.wol-rep.hit{background:var(--wol-green);border-color:var(--wol-green);color:#fff}.wol-rep.miss{background:var(--wol-red);border-color:var(--wol-red);color:#fff}.wol-override{background:#fff3df;border:1px solid #e4c590;border-radius:8px;padding:9px}
.wol-warmup-panel{display:grid;gap:14px}.wol-warmup-list{display:grid;gap:8px}.wol-warm-component{border-bottom:1px solid var(--wol-border);padding:10px 0;display:flex;align-items:center;gap:8px;flex-wrap:wrap}.wol-warm-reps{font-size:1.15rem;font-weight:850;color:var(--wol-green)}.wol-aero{margin-left:auto;display:flex;gap:8px;align-items:center}.wol-aero-time,.wol-cooldown-time{font-size:1.35rem;color:var(--wol-green);font-variant-numeric:tabular-nums}.wol-finish{display:grid;gap:12px}.wol-video-upload{border-top:1px solid var(--wol-border);padding-top:12px;display:grid;gap:9px}.wol-video-upload select{max-width:360px}.wol-session-summary{margin-top:12px}.wol-stack{display:flex;height:18px;border-radius:999px;overflow:hidden;background:#e8eded}.wol-stack .seg{display:block}.wol-stack .warmup{background:#82999a}.wol-stack .technical{background:#5c8f91}.wol-stack .working{background:#0f6b6d}.wol-stack .physical{background:#547366}.wol-stack .accessories{background:#8c7b63}.wol-stack .conditioning{background:#607d98}.wol-session-summary ul{list-style:none;padding:0;margin:8px 0}.wol-session-summary li{display:flex;justify-content:space-between;border-bottom:1px solid var(--wol-border);padding:5px 0}
.wol-bar-wrap{display:flex;align-items:center;justify-content:center;height:34px;margin:5px 0 8px;overflow:hidden}.wol-bar-line{height:4px;background:#666;min-width:46px;flex:1;max-width:110px}.wol-sleeve{width:18px;height:6px;background:#888}.wol-plate{display:inline-block;width:7px;height:29px;border-radius:2px;border:1px solid rgba(0,0,0,.18);margin:0 1px}.p-red{background:#d64242}.p-blue{background:#3378bd}.p-yellow{background:#e4bd37}.p-green{background:#3c9a5b}.p-white{background:#eee}.p-black{background:#222}.p-redsmall{background:#d64242;height:18px!important}
.wol-readiness-gate{border:2px solid var(--wol-green)}.wol-readiness-form input[type=range]+small{display:flex;justify-content:space-between}.wol-readiness-strip{display:flex;gap:8px;overflow-x:auto;padding-bottom:4px}.wol-ready-dot{min-width:62px;border:1px solid var(--wol-border);border-radius:8px;padding:7px;text-align:center}.wol-ready-dot.green{border-color:#75a98c;background:#eef8f2}.wol-ready-dot.amber{border-color:#d8ae61;background:#fff7e7}.wol-ready-dot.red{border-color:#d59090;background:#fff0f0}.wol-ready-dot span,.wol-ready-dot b{display:block}
.wol-message{border-left:4px solid var(--wol-border);padding:7px 10px;margin:8px 0}.wol-message.high{border-left-color:var(--wol-red);background:#fff4f4}.wol-message small{display:block}.wol-insights{background:#f7faf9;border-radius:8px;padding:10px;margin-top:10px}.wol-calendar-row{display:grid;grid-template-columns:minmax(160px,1fr) minmax(120px,.6fr);gap:5px 12px;border-bottom:1px solid var(--wol-border);padding:10px 0}.wol-calendar-row small{grid-column:1/-1}.wol-calendar-row.is-comp strong{color:var(--wol-green-dark)}
.wol-table-wrap{overflow-x:auto}.wol-table{width:100%;border-collapse:collapse}.wol-table td,.wol-table th{padding:8px;border-bottom:1px solid var(--wol-border);text-align:left}.wol-video-grid{grid-template-columns:repeat(auto-fit,minmax(210px,1fr))}.wol-video-card{border:1px solid var(--wol-border);border-radius:9px;padding:9px;display:grid;gap:7px}.wol-video-card video{width:100%;background:#000;border-radius:6px;max-height:240px}.wol-video-actions,.wol-retained-row{display:flex;align-items:center;justify-content:space-between;gap:8px;flex-wrap:wrap}.wol-retained-row{padding:8px 0;border-bottom:1px solid var(--wol-border)}
.wol-modal[hidden]{display:none}.wol-modal{position:fixed;inset:0;background:rgba(18,34,36,.55);z-index:9999;display:grid;place-items:center;padding:16px}.wol-modal-card{width:min(520px,100%);background:#fff;border-radius:12px;padding:20px;position:relative}.wol-modal-close{position:absolute;right:10px;top:8px;border:0;background:transparent;font-size:1.6rem;color:var(--wol-text);cursor:pointer}.wol-toast{position:fixed;right:16px;bottom:16px;z-index:10000;background:#173f41;color:#fff;padding:10px 14px;border-radius:8px;max-width:360px}.wol-toast.bad{background:#8c3030}.wol-toast.warn{background:#8a611b}.pb-celebrate{animation:wolPulse .35s ease-in-out 3}@keyframes wolPulse{50%{transform:scale(1.01)}}
@media(max-width:760px){.wol-grid-2,.wol-grid-3,.wol-dashboard-links{grid-template-columns:1fr}.wol-hero,.wol-session-head,.wol-achievement{align-items:flex-start;flex-direction:column}.wol-card,.wol-panel{padding:13px}.wol-restbar{top:4px}.wol-restbar .wol-btn{padding:8px 10px;min-height:38px}.wol-set-main{align-items:flex-end}.wol-aero{margin-left:0;width:100%;flex-wrap:wrap}.wol-calendar-row{grid-template-columns:1fr}.wol-calendar-row small{grid-column:auto}.wol-video-grid{grid-template-columns:1fr}}
.wol-stars{display:grid;grid-template-columns:repeat(4,22px);grid-template-rows:repeat(2,22px);gap:3px;align-items:center;justify-items:center;min-width:97px;font-size:1.05rem;line-height:1}.wol-stars .on{color:var(--wol-green)}.wol-stars .off{color:#c7d0d0}
/* v0.2.0 exact plate-loading visual (Asylum v1.0.9 loading rules, compact WOL renderer) */
.wol-load-visual{margin:4px 0 8px;max-width:620px}.wol-load-svg{display:block;width:100%;height:auto;max-height:118px;overflow:visible}.wol-plate-label{font-size:10px;font-weight:800;fill:var(--wol-text)}.wol-load-total{font-size:13px;font-weight:800;fill:var(--wol-green-dark)}.wol-load-error{color:var(--wol-muted)}
.wol-comp-class small{font-weight:400;color:var(--wol-muted)}
.wol-add-warmup{margin-top:14px;padding:10px;border-top:1px dashed var(--wol-border);display:flex;gap:8px;align-items:end;flex-wrap:wrap}.wol-add-warmup>strong{flex:1 0 100%;color:var(--wol-green-dark)}.wol-add-warmup label{display:grid;gap:4px;min-width:90px}.wol-add-warmup input{width:100px}.wol-add-warmup small{flex:1 0 100%}

/* v0.2.2 page-specific member interfaces */
.wol-profile-card{max-width:980px;margin-inline:auto}.wol-profile-form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.wol-profile-form>label{display:flex;flex-direction:column;gap:7px}.wol-profile-form label small,.wol-muted{color:#667085;font-size:.86rem;line-height:1.4}.wol-profile-form .wol-check{flex-direction:row;align-items:center;align-self:center}.wol-profile-save{grid-column:1/-1;display:flex;align-items:center;gap:12px;padding-top:4px}.wol-profile-form.is-readonly{opacity:.92}
.wol-program-hero h2{margin-bottom:8px}.wol-comp-countdown{display:flex;justify-content:space-between;gap:12px;align-items:center;margin-top:16px;padding:12px 14px;border:1px solid #dde2e8;border-radius:10px}.wol-program-session{display:flex;justify-content:space-between;align-items:center;gap:18px;padding:16px 0;border-top:1px solid #e7eaee}.wol-program-session:first-of-type{border-top:0}.wol-program-session p{margin:.35rem 0}.wol-program-session.is-locked{opacity:.62}.wol-lock{font-size:.88rem;font-weight:600}.wol-upcoming-row{display:grid;grid-template-columns:110px 1fr;gap:16px;padding:12px 0;border-top:1px solid #e7eaee}.wol-upcoming-row:first-of-type{border-top:0}
.wol-metric-tile-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin-top:16px}.wol-metric-tile{appearance:none;border:1px solid #dde2e8;border-radius:12px;background:#fff;padding:14px;text-align:left;display:flex;flex-direction:column;gap:7px;cursor:pointer;min-width:0}.wol-metric-tile:hover{border-color:#98a2b3}.wol-metric-tile>span{font-size:.84rem;font-weight:700;color:#475467}.wol-metric-tile>strong{font-size:1.35rem}.wol-metric-tile>small{font-size:.78rem;color:#667085}.wol-spark{width:100%;height:54px;overflow:visible}.wol-spark polyline{stroke:currentColor;stroke-width:2}.wol-spark-empty{height:54px;display:flex;align-items:center;color:#98a2b3;font-size:.8rem}.wol-metric-tile .is-up{color:#18794e}.wol-metric-tile .is-down{color:#b42318}.wol-gauge-track{height:18px;border-radius:999px;background:#eaecf0;overflow:hidden;margin:18px 0 8px}.wol-gauge-track span{display:block;height:100%;background:currentColor;border-radius:999px}.wol-gauge-labels{display:grid;grid-template-columns:1fr 1fr 1fr;align-items:center;font-size:.84rem}.wol-gauge-labels strong{text-align:center;font-size:1rem}.wol-gauge-labels span:last-child{text-align:right}.wol-heatmap{display:flex;flex-wrap:wrap;gap:8px;margin-top:14px}.wol-heat{padding:9px 12px;border-radius:8px;font-size:.8rem;font-weight:700;border:1px solid transparent}.wol-heat.is-green{background:#e7f6ec;border-color:#a6d9b5}.wol-heat.is-amber{background:#fff3cd;border-color:#e7c86c}.wol-heat.is-neutral{background:#f2f4f7;border-color:#d0d5dd;color:#667085}
@media(max-width:800px){.wol-profile-form,.wol-metric-tile-grid{grid-template-columns:1fr}.wol-program-session{align-items:flex-start;flex-direction:column}.wol-upcoming-row{grid-template-columns:1fr;gap:4px}.wol-comp-countdown{align-items:flex-start;flex-direction:column}}
.wol-metric-tile-wrap{min-width:0}.wol-metric-detail{grid-column:1/-1;margin-top:8px;padding:14px;border:1px solid #e4e7ec;border-radius:12px;background:#f8fafc}.wol-metric-detail-head{display:flex;justify-content:space-between;gap:12px;margin-bottom:8px}.wol-metric-history-list{display:grid;gap:0;margin-top:10px}.wol-metric-history-list>div{display:grid;grid-template-columns:1fr auto minmax(100px,.7fr);gap:12px;padding:8px 0;border-top:1px solid #e4e7ec;align-items:center}.wol-metric-history-list small{text-align:right;color:#667085}
@media(max-width:800px){.wol-metric-history-list>div{grid-template-columns:1fr auto}.wol-metric-history-list small{grid-column:1/-1;text-align:left}}
