:root{color-scheme:dark;--background:#101211;--hero-background:#f45100;--ink:#f6f8ef;--mint:#fff2d8;--muted:#b4bcb4;--line:#303530;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;background:var(--background);color:var(--ink);-webkit-text-size-adjust:100%;font-synthesis:none}
@font-face{font-family:CadenceDisplay;src:url('./fonts/BarlowCondensed-ExtraBoldItalic.ttf') format('truetype');font-style:italic;font-weight:800;font-display:swap}
*{box-sizing:border-box}
body{margin:0;background:var(--background)}
button,input{font:inherit}
button{cursor:pointer;-webkit-tap-highlight-color:transparent;touch-action:manipulation}
button:focus-visible,input:focus-visible{outline:2px solid var(--mint);outline-offset:4px}
button:disabled{opacity:.45;cursor:default}
[hidden]{display:none!important}
.app{--gutter:22px;width:min(100%,440px);margin:0 auto;padding:0 var(--gutter) calc(28px + env(safe-area-inset-bottom))}
.hero{background:var(--hero-background);color:#fff2d8;margin:0 calc(-1 * var(--gutter));padding:calc(27px + env(safe-area-inset-top)) var(--gutter) 20px}
.mast{display:flex;justify-content:space-between;align-items:flex-start;position:relative;min-height:62px;margin-bottom:12px}
.identity{min-width:0;padding-right:44px}
.wordmark{display:block;font-size:10px;letter-spacing:2.6px;font-weight:750;color:var(--mint);margin-top:6px}
.mark{background:var(--mint);color:#101211;border:0;border-radius:50%;width:32px;height:32px;display:grid;place-items:center;font-size:21px;position:absolute;right:0;top:0}
.mark::after{content:"";position:absolute;inset:-6px}
.brand{text-align:center}
.mascot-frame{position:relative;width:180px;height:180px;overflow:hidden;margin:0 auto}
.mascot{display:block;width:180px;height:180px;object-fit:contain}
h1{font-family:CadenceDisplay,'Arial Narrow',sans-serif;font-style:italic;font-size:48px;line-height:1;font-weight:800;letter-spacing:.3px;margin:0;text-align:left}
.wordmark-art{display:block;width:220px;height:40px;object-fit:contain;object-position:left center}
.monthbar{display:flex;align-items:center;justify-content:space-between;gap:6px;padding-top:21px;margin:0 0 18px}
.month{padding:4px 0;border:0;background:transparent;color:var(--ink);font-size:18px;font-weight:650;letter-spacing:-.5px;text-align:left;min-height:44px}
.navigation{display:flex;align-items:center;gap:5px;flex-shrink:0}
.arrow{width:36px;min-height:40px;border:1px solid #333b34;border-radius:8px;background:#1c211d;color:var(--ink);font-size:24px;line-height:1}
.today-button{min-height:40px;background:transparent;border:0;padding:0 5px;font-size:11px;color:var(--muted)}
.week,.days{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:5px}
.week span{text-align:center;font-size:11px;color:#a5b0a6;padding-bottom:12px}
.day{position:relative;isolation:isolate;min-width:0;height:57px;border:0;padding:0;background:#202521;border-radius:8px;color:var(--ink);display:flex;align-items:center;justify-content:center}
.day[aria-pressed=true]{outline:2px solid #f9fff4;outline-offset:1px}
.day[aria-current=date] .number{text-decoration:underline;text-underline-offset:4px}
.number{position:relative;z-index:1;font-size:13px;font-weight:650;line-height:1;display:grid;place-items:center;min-width:24px;height:24px;border-radius:5px;color:var(--on,var(--ink))}
.day.multiple .number{background:#101211;color:#f6f8ef}
.fills{display:flex;position:absolute;inset:0;overflow:hidden;border-radius:inherit;z-index:-1;pointer-events:none}
.fill{flex:1;background:var(--c);min-width:0}
.categories{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:5px;padding:4px;background:#1c211e;border-radius:9px;margin-bottom:12px}
.category{border:0;border-radius:6px;background:transparent;color:#bfc9bf;min-height:40px;font-size:11px;font-weight:750;letter-spacing:1.3px;display:flex;align-items:center;justify-content:center;gap:8px}
.category[aria-pressed=true]{background:#414842;color:#f6f8ef;box-shadow:inset 0 0 0 1px #788078}
.category-count{font-size:11px;letter-spacing:0}
.choices{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;min-height:52px;align-content:start}
.choice{height:22px;min-width:0;border:0;border-radius:7px;padding:0 16px;background:var(--c);color:#fff;font-size:11px;font-weight:700;line-height:1;position:relative;display:flex;align-items:center;justify-content:center;text-align:center;white-space:nowrap}
.choice[aria-pressed=true]{outline:2px solid #f7ffef;outline-offset:2px}
.tick{position:absolute;right:5px;top:50%;transform:translateY(-50%);width:9px;font-size:10px;line-height:1;text-align:center}
.legacy-choices{display:flex;gap:6px;flex-wrap:wrap}
.legacy{border:0;border-radius:5px;padding:8px 12px;background:var(--c);color:#fff;font-size:11px;font-weight:700;margin-top:10px;min-height:30px}
.choice,.legacy{text-shadow:0 1px 2px #000c,0 0 1px #0009}
.error{font-size:13px;color:#ffb1a9;line-height:1.5;margin:18px 0 0}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}
dialog{width:min(92vw,410px);max-height:85dvh;overflow:auto;background:#181d19;color:var(--ink);border:1px solid #3a443c;border-radius:18px;padding:22px;box-shadow:0 20px 80px #0008}
dialog::backdrop{background:#000b}
#workout-dialog{padding-bottom:calc(22px + env(safe-area-inset-bottom));width:min(94vw,410px)}
#done-workouts{margin-top:22px;background:#e3e6e2;color:#171c18;border-color:#e3e6e2}
.dialog-heading{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:15px}
.dialog-heading h2{font-size:20px;margin:0;letter-spacing:-.5px}
.close{border:0;background:transparent;color:var(--muted);width:36px;height:36px;font-size:26px;line-height:1}
.settings-note{font-size:13px;color:#bcc8be;line-height:1.6;margin:0 0 16px}
.settings-actions{display:flex;flex-direction:column;gap:9px;margin-top:14px}
.settings-button{border:1px solid #3a443c;color:var(--ink);background:#252e27;border-radius:9px;padding:12px 14px;min-height:44px;font-size:13px;text-align:left;display:flex;justify-content:space-between;align-items:center;width:100%}
.settings-button.primary{background:var(--mint);color:#101211;border-color:var(--mint);justify-content:center;font-weight:650}
#backup-status{margin-top:12px}
.install-help{border-top:1px solid var(--line);padding-top:18px;margin-top:22px}
.install-help h3{font-size:15px;margin:0 0 10px}
.install-help ol{padding-left:19px;color:#bcc8be;font-size:13px;line-height:1.7;margin:0 0 15px}
.install-help li{padding-left:3px;margin-bottom:5px}
#month-form{display:flex;flex-direction:column;gap:12px}
#month-form label{color:var(--muted);font-size:13px}
#month-input{width:100%;min-width:0;background:#252e27;border:1px solid #49554c;color:var(--ink);padding:12px;border-radius:8px;font-size:16px;min-height:46px}
@media(max-width:380px){.app{--gutter:14px}.days,.week{gap:4px}.month{font-size:16px}.navigation{gap:3px}.arrow{width:30px}.today-button{padding:0 3px}.choice{padding:0 12px}.tick{right:3px}}
@media(display-mode:standalone){.hero{padding-top:calc(20px + env(safe-area-inset-top))}}

/* v8: approved Sauge identity and viewport-fitting calendar. */
:root{--hero-background:linear-gradient(115deg,#3660d4 0%,#669fa4 48%,#7ba786 100%)}
.app{height:100svh;height:100dvh;min-height:480px;display:flex;flex-direction:column;padding-bottom:calc(16px + env(safe-area-inset-bottom))}
.hero{height:calc(clamp(120px,25dvh,180px) + env(safe-area-inset-top));flex:none;display:flex;align-items:center;padding:env(safe-area-inset-top) var(--gutter) 0}
.mast{width:100%;align-items:center;min-height:0;margin:0;gap:14px}
.identity{padding-right:0}
h1{font-size:47px;letter-spacing:.6px}
.cadence-name{display:inline-flex;align-items:baseline;white-space:nowrap}
.bare-a{display:inline-block;flex:none;width:.47em;height:.73em;margin:0 .015em;background:currentColor;transform:skewX(-8deg);clip-path:polygon(0 100%,34% 0,59% 0,100% 100%,72% 100%,48% 28%,23% 100%)}
.wordmark{margin-top:10px;letter-spacing:3px}
.mark{position:relative;top:auto;right:auto;background:transparent;color:#fff6e7;border-radius:0;width:68px;height:54px;flex:none;padding:0}
.rhythm-logo{display:block;position:relative;width:68px;height:44px;transform:rotate(-4deg)}
.rhythm-logo span{position:absolute;display:block;background:currentColor;height:18%;border-radius:8px;transform:skewX(-24deg)}
.rhythm-logo span:nth-child(1){top:0;left:24%;width:68%}
.rhythm-logo span:nth-child(2){top:41%;left:0;width:100%}
.rhythm-logo span:nth-child(3){top:82%;left:8%;width:68%}
.calendar{flex:1;min-height:0;display:flex;flex-direction:column}
.monthbar{flex:none;padding-top:13px;margin-bottom:10px}
.week{flex:none}
.week span{padding-bottom:10px}
.days{flex:1;min-height:0;grid-template-rows:repeat(var(--weeks,6),minmax(0,1fr))}
.day{height:auto;min-height:0}
.day[aria-pressed=true]{outline-offset:-2px}
@media(max-width:360px){h1{font-size:42px}.mark{width:54px}.rhythm-logo{width:54px;height:35px}}
@media(display-mode:standalone){.hero{padding-top:env(safe-area-inset-top)}}

/* v10: colored picker, All by default, readable text without shadows. */
@font-face{font-family:Manrope;src:url('./fonts/Manrope-Bold.ttf') format('truetype');font-style:normal;font-weight:700;font-display:swap}
.categories{grid-template-columns:repeat(4,minmax(0,1fr))}
.category{letter-spacing:.8px;gap:4px}
.choice,.legacy{font-family:Manrope,sans-serif;color:var(--on);text-shadow:none;font-weight:700}
.choice{height:39px;padding:0 7px;font-size:11px;letter-spacing:-.2px;white-space:normal;line-height:1.1}
.choice .tick:empty{display:none}
.selected-workouts{display:grid;gap:8px}
.selected-workouts:not(:empty){margin-bottom:18px}
.selected-workout{display:flex;align-items:center;justify-content:space-between;gap:10px;min-height:76px;padding:16px;background:var(--c);color:var(--on);border-radius:12px;font-size:30px;font-weight:700;line-height:1.1;letter-spacing:-.7px}
.selected-workout button{width:34px;height:34px;background:transparent;border:0;color:inherit;font-size:26px;flex:none}
.choose-workouts{font-size:23px;font-weight:650;letter-spacing:-.6px;margin:0 0 17px}
.selected-workouts:not(:empty)+.choose-workouts{font-size:15px;letter-spacing:0;color:#c7cfc8}
#workout-dialog{padding:17px;max-height:calc(100dvh - 24px)}
#workout-dialog .dialog-heading h2{font-size:13px;letter-spacing:0;color:#bcc5be}
#done-workouts{margin-top:16px}
