:root{font-family:Arial,Helvetica,sans-serif;color:#fff;background:#0c0c0e;color-scheme:dark;--red:#ee303d;--line:#343439;--text-size:28px;--card-pad:24px}
*{box-sizing:border-box}body{margin:0;min-width:320px}button,select,a{-webkit-tap-highlight-color:transparent;touch-action:manipulation}button,select{font:inherit}button{cursor:pointer}button,a,select{outline-offset:4px}button:focus-visible,a:focus-visible,select:focus-visible{outline:3px solid #fff}button:disabled,select:disabled{opacity:.45;cursor:default}[hidden]{display:none!important}
.tv-shell{height:100vh;height:100dvh;display:flex;flex-direction:column;padding:16px 28px;gap:12px}.toolbar{display:flex;align-items:end;gap:12px;flex-wrap:wrap;padding:0 0 16px;border-bottom:1px solid var(--line)}.toolbar label{font-size:12px;font-weight:700;color:#b7b7bf;display:grid;gap:5px}.toolbar select{height:43px;max-width:100%;min-width:90px;color:#fff;background:#1c1c21;border:1px solid #5a5a64;border-radius:4px;padding:8px 10px;font-size:15px}.class-control{flex:1;min-width:220px}.toolbar button,.back-link,.screen-footer button{display:inline-flex;align-items:center;justify-content:center;min-height:43px;border:1px solid #54545e;background:#1c1c21;color:#fff;border-radius:4px;padding:10px 14px;font-size:14px;font-weight:700;text-decoration:none;white-space:nowrap}.toolbar button:hover,.back-link:hover,.screen-footer button:hover{background:#303037}.toolbar .primary{background:var(--red);border-color:var(--red)}.text-controls{display:flex;gap:5px}.toolbar .text-controls button{padding:8px 11px;font-size:18px}
.tv-screen{flex:1;min-height:0;display:flex;flex-direction:column;gap:20px;overflow:hidden}.screen-heading{display:flex;align-items:center;justify-content:space-between;gap:28px;flex-shrink:0}.workout-heading{min-width:0}.workout-meta{font-weight:800;color:#ff6571;letter-spacing:.12em;font-size:clamp(12px,1vw,20px);margin:2px 0 10px}h1{font-size:clamp(26px,3.2vw,64px);line-height:1.02;letter-spacing:-.035em;margin:0;font-weight:900;overflow-wrap:anywhere}.tv-brand{display:flex;align-items:center;gap:12px;flex-shrink:0}.tv-brand img{width:clamp(45px,5vw,94px);height:auto;object-fit:contain}.tv-brand span{font-weight:900;line-height:1.1;font-size:clamp(16px,1.5vw,30px)}.tv-brand b{color:var(--red)}.tv-brand small{display:block;font-size:clamp(9px,.62vw,13px);letter-spacing:.07em;color:#b9b9c1;margin-top:8px}
.tv-deck{flex:1;min-height:0;display:grid;grid-template-columns:repeat(var(--columns,3),minmax(0,1fr));gap:20px;align-items:stretch;position:relative}.tv-card{min-width:0;min-height:0;background:#18181d;border:1px solid var(--line);border-top:4px solid var(--red);border-radius:5px;padding:var(--card-pad);font-size:var(--text-size);overflow:hidden}.tv-card-head{display:flex;align-items:start;gap:.5em;margin:0 0 .6em}.section-letter{background:var(--red);font-weight:900;flex-shrink:0;display:grid;place-items:center;width:1.65em;height:1.65em;border-radius:3px;font-size:1.05em}.tv-card h2{margin:0;line-height:1.16;font-size:1.08em;font-weight:900;overflow-wrap:anywhere;align-self:center}.continued{display:block;color:#babac4;letter-spacing:.04em;text-transform:uppercase;font-size:.48em;margin-top:.5em}.tv-card-body{display:grid;gap:.24em}.tv-row{font-size:1em;margin:0;line-height:1.24;overflow-wrap:anywhere;padding:.22em 0}.tv-row.movement{border-bottom:1px solid #33333a}.tv-row.movement:last-child{border-bottom:0}.tv-row.prescription{font-weight:800;color:#ff7b86;line-height:1.2;padding-bottom:.45em}.tv-row.backdown{margin-top:.4em;padding-top:.6em;border-top:2px solid #44444d;color:#ff7b86;font-weight:800}.tv-row.rest{margin-top:.3em;border-left:4px solid var(--red);padding:.4em .6em;background:#27272f;font-weight:800}.tv-row.note{color:#c1c1ca;font-size:.86em}.tv-deck.section-view .tv-card-body{max-width:1450px}.tv-deck.section-view .tv-card{padding:var(--card-pad) max(var(--card-pad),3vw)}
.screen-footer{display:flex;align-items:center;justify-content:space-between;gap:15px;border-top:1px solid var(--line);padding-top:12px;flex-shrink:0}.footer-label{font-size:clamp(12px,1vw,18px);font-weight:900;letter-spacing:.06em}.footer-label span{color:#ff6571;margin-left:12px}.page-controls{display:flex;align-items:center;gap:16px}.page-controls>span{font-size:14px;color:#bfc0c8;min-width:82px;text-align:center}.screen-footer button{min-height:38px;padding:8px 13px}.display-tip{font-size:12px;line-height:1.4;color:#b5b5bf;margin:0;flex-shrink:0}.tv-status{font-size:13px;color:#ff9ba4;margin:0;flex-shrink:0}.tv-status:empty{display:none}.loading,.load-error{align-self:center;justify-self:center;grid-column:1/-1;text-align:center;font-size:22px;line-height:1.5}.load-error button{background:var(--red);border:0;color:white;font:inherit;border-radius:4px;padding:10px 24px;cursor:pointer}.load-error a{color:white}.controls-hidden .toolbar,.controls-hidden .display-tip{display:none}.controls-hidden .tv-shell{padding:22px 32px;gap:0}.controls-hidden .tv-screen{gap:24px}
.footer-label #footer-mode{margin:0;color:#fff}.poster-mode .screen-heading{display:none}.poster-mode .tv-deck{display:flex;align-items:center;justify-content:center;background:#050506}.poster-image{display:block;max-width:100%;max-height:100%;width:100%;height:100%;object-fit:contain}.poster-mode .footer-label{min-width:0;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;max-width:62%}.poster-mode.controls-hidden .tv-shell{padding:12px 18px}.poster-mode.controls-hidden .screen-footer{opacity:.55}.poster-mode.controls-hidden .screen-footer:focus-within,.poster-mode.controls-hidden .screen-footer:hover{opacity:1}
dialog{color:#fff;background:#101014;border:1px solid #585861;border-radius:8px;width:min(1200px,calc(100% - 32px));height:min(850px,calc(100dvh - 32px));padding:24px;overflow:auto}dialog::backdrop{background:#000d}.picker-header{display:flex;justify-content:space-between;align-items:start;gap:16px}.picker-header h2{font-size:32px;margin:0}.picker-header p:last-child{color:#bcbcc5;margin:10px 0 18px;font-size:14px}.picker-header button{min-height:42px;padding:10px 18px;background:#28282f;border:1px solid #5b5b66;border-radius:4px;color:#fff;font:inherit;cursor:pointer}.search-label{font-size:14px;font-weight:700;display:grid;gap:8px;margin-bottom:24px}.search-label input{background:#1c1c22;color:white;min-height:46px;border:1px solid #585861;border-radius:4px;padding:10px 14px;font:inherit;width:100%}.design-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}.design-tile{text-align:left;border:1px solid #42424b;border-radius:5px;background:#1b1b21;color:white;padding:0;overflow:hidden;display:flex;flex-direction:column;font:inherit;cursor:pointer}.design-tile[aria-pressed=true]{border:2px solid var(--red)}.design-tile img{width:100%;height:170px;object-fit:contain;background:#050506}.design-tile span{font-size:15px;font-weight:700;padding:12px 14px;line-height:1.4}.design-tile small{color:#b0b0bb;font-weight:400;display:block;margin-top:6px}.design-tile:hover{border-color:#fff}.empty-designs{grid-column:1/-1;color:#bcbcc5;text-align:center;padding:40px 0}
@media(max-width:700px){.design-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.design-tile img{height:135px}.poster-mode .footer-label{max-width:calc(100% - 130px)}dialog{padding:18px}.picker-header h2{font-size:26px}}
@media(min-width:2200px){.tv-shell{padding:28px 44px}.toolbar label,.toolbar select,.toolbar button,.back-link,.screen-footer button,.page-controls>span{font-size:20px}.tv-brand small{font-size:17px}.display-tip{font-size:16px}.toolbar select{height:52px}}
@media(max-width:1000px){.tv-shell{padding:14px 20px}.toolbar{gap:8px;padding-bottom:12px}.tv-screen{gap:14px}.tv-deck{gap:14px}.tv-brand small{display:none}.toolbar button,.back-link{padding:10px}.tv-brand{gap:6px}}
@media(max-width:640px){.tv-shell{padding:12px;min-height:650px;height:max(100dvh,650px)}.class-control{min-width:180px}.toolbar select{font-size:14px}.toolbar>label:last-of-type{flex:1}.screen-heading{gap:12px}.tv-brand span{display:none}.tv-brand img{width:48px}.workout-meta{font-size:11px;line-height:1.4;margin-bottom:6px}h1{font-size:27px}.tv-deck{gap:10px}.screen-footer{flex-wrap:wrap;gap:10px}.footer-label{flex:1}.page-controls{gap:8px;order:3;flex-basis:100%;justify-content:center}.controls-hidden .tv-shell{padding:14px;min-height:0;height:100dvh}.controls-hidden .tv-screen{gap:14px}.display-tip{font-size:11px}}
@media(max-height:550px) and (min-width:641px){.tv-shell{padding:10px 18px}.toolbar{gap:8px;padding-bottom:8px}.toolbar label{font-size:10px}.toolbar select,.toolbar button,.back-link{height:34px;min-height:34px;font-size:12px;padding:6px 9px}.workout-meta{margin-bottom:5px;font-size:11px}h1{font-size:27px}.tv-brand img{width:45px}.tv-brand span{font-size:16px}.tv-brand small,.display-tip{display:none}.tv-screen{gap:10px}.screen-footer{padding-top:7px}.screen-footer button{min-height:30px;padding:5px 9px;font-size:12px}.controls-hidden .tv-shell{padding:12px 18px}.controls-hidden .tv-screen{gap:12px}}

/* Fill the 55-inch TV viewport, with proportional type at Full HD and 4K. */
body.controls-hidden{overflow:hidden}
.controls-hidden .tv-shell{width:100vw;height:100vh;height:100dvh;min-height:0;padding:0;gap:0}
.controls-hidden .tv-screen{width:100%;height:100%;padding:clamp(12px,1.3vw,48px);gap:clamp(12px,1.25vw,44px)}
.controls-hidden .tv-deck{gap:clamp(12px,1.1vw,40px)}
.controls-hidden h1{font-size:clamp(32px,3.1vw,132px)}
.controls-hidden .workout-meta{font-size:clamp(12px,1vw,42px)}
.controls-hidden .tv-brand span{font-size:clamp(16px,1.5vw,62px)}
.controls-hidden .tv-brand img{width:clamp(45px,5vw,188px)}
.controls-hidden .tv-brand small{font-size:clamp(10px,.7vw,28px)}
.controls-hidden .footer-label{font-size:clamp(12px,1vw,40px)}
.poster-mode.controls-hidden .tv-screen{padding:0;gap:0;position:relative}
.poster-mode.controls-hidden .screen-footer{position:absolute;bottom:0;left:0;right:0;padding:12px 20px;background:#0c0c0ee8;opacity:0}
.poster-mode.controls-hidden .screen-footer:hover,.poster-mode.controls-hidden .screen-footer:focus-within{opacity:1}
@media(max-width:640px){.controls-hidden h1{font-size:27px}.controls-hidden .tv-brand img{width:48px}.controls-hidden .tv-screen{gap:14px;padding:14px}}

/* Follow Safari's visible viewport when its address bar changes height. */
.tv-shell,.controls-hidden .tv-shell{height:var(--tv-height,100dvh)}
.controls-hidden .tv-status{font-size:clamp(12px,.9vw,26px);line-height:1.4}

/* The workout clock remains visible when presentation controls are hidden. */
.workout-clock{display:flex;align-items:center;gap:22px;padding:12px 18px;border:1px solid #555;border-left:6px solid var(--red);background:#101014;flex-shrink:0}.clock-face{min-width:190px;display:grid;text-align:center;gap:3px}.clock-face output{font-size:clamp(42px,5vw,100px);font-weight:900;line-height:1;font-variant-numeric:tabular-nums}.clock-face>span{font-size:12px;letter-spacing:.08em;color:#ccc}.clock-setup{flex:1;min-width:0}.clock-setup label{display:grid;gap:3px;font-size:11px;color:#ccc}.clock-setup select,.clock-setup input{background:#232329;color:white;border:1px solid #666;border-radius:4px;padding:5px;min-height:32px;max-width:100%;font:inherit;font-size:14px}.clock-setup>label select{width:100%}.clock-fields{display:flex;gap:8px;margin-top:6px}.clock-fields input{width:64px}.clock-setup p{margin:5px 0 0;color:#ccc;font-size:11px}.clock-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px}.clock-actions button{min-width:72px;min-height:44px;padding:8px;font-weight:800;background:#25252c;border:1px solid #888;color:white;border-radius:4px;font-size:16px}.clock-actions #clock-start{background:var(--red);border-color:var(--red)}.clock-actions label{grid-column:1/-1;font-size:12px}.clock-running{border-color:var(--red)}.clock-running .clock-fields,.clock-running .clock-setup>label,.clock-running #clock-note{display:none}.clock-running .clock-face{flex:1}.controls-hidden .workout-clock{padding:8px 16px}.controls-hidden .tv-screen{gap:12px}@media(max-width:760px){.workout-clock{gap:10px;padding:8px;flex-wrap:wrap}.clock-face{min-width:130px}.clock-setup{min-width:200px}.clock-actions{display:flex;align-items:center}.clock-fields{flex-wrap:wrap}.clock-face output{font-size:44px}}@media(max-height:650px){.workout-clock{padding:5px 12px;gap:14px}.clock-face output{font-size:44px}.clock-setup p{display:none}.clock-fields{margin-top:3px}.clock-setup select,.clock-setup input{min-height:27px;padding:3px}.tv-screen{gap:10px}.controls-hidden .tv-screen{gap:8px}}

/* Keep the time centered independently of the widths of its controls. */
.workout-clock{display:grid;grid-template-columns:minmax(0,1fr) minmax(190px,auto) minmax(0,1fr);grid-template-areas:"setup face actions"}
.clock-face{grid-area:face;justify-self:center;max-width:32vw}
.clock-setup{grid-area:setup;min-width:0}
.clock-actions{grid-area:actions;justify-self:end}
@media(max-width:760px){
 .workout-clock{grid-template-columns:minmax(0,1fr) minmax(0,1fr);grid-template-areas:"face face" "setup actions"}
 .clock-face{max-width:100%;width:100%}
 .clock-setup{min-width:0}
 .clock-actions{display:grid;grid-template-columns:1fr 1fr}
 .clock-fields input{width:56px}
}

/* Refined Rhino timer bar. */
.workout-clock{border:1px solid #36363e;border-top:3px solid var(--red);border-radius:10px;background:linear-gradient(110deg,#19191f,#101014 50%,#19191f);padding:14px 20px;gap:24px;box-shadow:0 6px 20px #0003}
.clock-face{padding:2px 22px;border-inline:1px solid #383840;min-width:230px;gap:7px}
.clock-face output{font-family:Arial,Helvetica,sans-serif;font-size:clamp(52px,5.5vw,104px);letter-spacing:-.035em;color:#fff;text-shadow:0 2px 12px #0006}
.clock-face #clock-phase{font-weight:800;font-size:11px;letter-spacing:.18em;color:#ff6975}
.clock-face #clock-round{font-size:12px;font-weight:700;letter-spacing:.03em;line-height:1.4}
.clock-setup label{font-size:11px;font-weight:700;letter-spacing:.025em}
.clock-setup select,.clock-setup input{border-color:#474750;border-radius:6px;background:#202026}
.clock-fields{gap:10px;margin-top:8px}
.clock-setup p{line-height:1.4;color:#a9a9b4;max-width:420px}
.clock-actions{gap:10px}
.clock-actions button{border-radius:7px;min-height:48px;min-width:88px;border-color:#52525d;transition:background .15s}
.clock-actions #clock-start{box-shadow:0 3px 12px #ee303d22}
.clock-actions button:hover{filter:brightness(1.12)}
.clock-actions label{color:#b6b6c0;justify-self:end}
.clock-running .clock-face{border-color:#ee303d55}
@media(max-height:650px){.workout-clock,.controls-hidden .workout-clock{padding:6px 14px}.clock-face{gap:3px;min-width:190px}.clock-face output{font-size:48px}.clock-actions button{min-height:42px}}
@media(max-width:760px){.workout-clock{gap:12px;padding:10px 12px}.clock-face{border:0;border-bottom:1px solid #383840;padding:2px 0 10px;min-width:0}.clock-face output{font-size:52px}.clock-actions button{min-width:64px}.clock-setup p{font-size:10px}}

.section-navigation{display:flex;align-items:center;gap:10px;flex-shrink:0;flex-wrap:wrap}
.section-navigation button{background:#24242c;border:1px solid #53535e;border-radius:6px;color:#fff;font:inherit;font-size:14px;font-weight:700;min-height:44px;padding:8px 16px}
.section-navigation #section-next{background:var(--red);border-color:var(--red)}
.section-navigation #section-current{flex:1;font-weight:800;font-size:clamp(15px,1.5vw,28px)}
.guided-workout .clock-face #clock-round{font-size:clamp(16px,1.4vw,28px)}
.guided-workout .clock-face{max-width:42vw}
.guided-workout .tv-deck.section-view .tv-card-body{gap:.35em}
@media(max-width:760px){.section-navigation #section-current{order:-1;flex-basis:100%}.guided-workout .clock-face{max-width:100%}}

/* Starting the TV workout shows only the full workout and centered clock. */
.clock-reveal{display:none}
.workout-playing .screen-heading,.workout-playing .screen-footer,.workout-playing .section-navigation,.workout-playing .clock-setup,.workout-playing .clock-actions,.workout-playing .tv-status{display:none!important}
.workout-playing .workout-clock{grid-template-columns:1fr;grid-template-areas:"face";padding:8px 16px}
.workout-playing .clock-face{max-width:100%;min-width:0;border:0}
.workout-playing .clock-face output{font-size:clamp(64px,7vw,130px)}
.workout-playing .clock-face #clock-round{font-size:clamp(18px,1.7vw,34px)}
.workout-playing .tv-shell{padding:12px 20px}
.workout-playing .tv-screen{gap:12px}
.workout-playing .clock-reveal{display:block;position:absolute;right:24px;top:16px;z-index:5;opacity:0;background:#202026;color:#fff;border:1px solid #777;border-radius:6px;padding:12px;font:inherit}
.workout-playing .clock-reveal:focus-visible{opacity:1}
@media(max-height:650px){.workout-playing .clock-face output{font-size:56px}.workout-playing .clock-face{gap:3px}.workout-playing .clock-face #clock-round{font-size:18px}}

.section-navigation #section-next{font-size:clamp(18px,1.5vw,28px);min-height:54px;padding:12px 24px}
.workout-playing .tv-card{border-radius:8px}
.workout-playing .tv-card h2{letter-spacing:-.02em}
@media(max-height:650px){.section-navigation #section-next{min-height:44px;padding:8px 16px;font-size:18px}}

/* Real training photos, shaded for clear workout lettering. */
.tv-screen{background-image:linear-gradient(90deg,rgba(5,5,9,.72),rgba(5,5,9,.48)),var(--workout-photo,url("photos/strength-squat.jpg"));background-size:cover;background-position:center,center 35%;border-radius:8px;padding:16px;isolation:isolate}
.tv-card{background:rgba(12,12,17,.76);border-color:rgba(255,255,255,.18);border-top-color:var(--red);text-shadow:0 2px 5px #000}
.workout-clock{background:rgba(12,12,17,.88)}
.workout-playing .clock-face::after{content:"RHINO FITNESS";font-size:12px;font-weight:900;letter-spacing:.2em;color:#ff6975;margin-top:3px}
.poster-mode .tv-screen{background-image:none;padding:0}
@media(max-height:650px){.tv-screen{padding:10px}.workout-playing .clock-face::after{font-size:11px;margin-top:0}}

.clock-preparing .clock-face output{color:#ff6975}
.clock-preparing #clock-phase{color:#fff}
