:root{--bg:#14161A;--surface:#1C1F25;--surface-alt:#23262E;--line:#2C2F37;--ink:#F1EFEA;--muted:#8D93A0;--brass:#C7A245;--brass-dim:#4A4021;--rust:#B5563C;padding-top:env(safe-area-inset-top, 0px);padding-bottom:env(safe-area-inset-bottom, 0px)}*{margin:0;padding:0;box-sizing:border-box}html,body{background:#14161A;height:100%}body{font-family:'Inter', sans-serif;-webkit-tap-highlight-color:transparent;overscroll-behavior-y:none}.font-display{font-family:'Oswald', sans-serif}::-webkit-scrollbar{display:none}*{scrollbar-width:none}.weekstrip{padding-top:env(safe-area-inset-top, 0px)}input[type=number]::-webkit-inner-spin-button,input[type=number]::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}input[type=number]{appearance:textfield;-moz-appearance:textfield}body.app-body{color:var(--ink);font-family:'Inter', sans-serif}.app-shell{min-height:100vh;display:flex;flex-direction:column}.app-header{position:sticky;top:0;z-index:20;padding-top:0.75rem;background:color-mix(in srgb, var(--bg) 95%, transparent);backdrop-filter:blur(8px);border-bottom:1px solid var(--line)}.app-title-row,.week-strip,.tab-bar,.controls-bar,.history-panel,.rotation-note,.workout-content,.progress-panel,.off-schedule-banner{padding-left:1rem;padding-right:1rem}.app-title-row{display:flex;align-items:baseline;justify-content:space-between;margin-bottom:0.75rem}.app-title-row h1{display:flex;align-items:center;gap:0.5rem;margin:0;color:var(--ink);font-family:'Oswald', sans-serif;font-size:1.5rem;letter-spacing:0.025em}.app-title-row svg,.control-button svg,.rest-icon svg{width:1.25rem;height:1.25rem;color:var(--brass)}.date-label,.week-day-date,.control-hint,.history-note,.empty-session,.rest-copy,.notice-detail{color:var(--muted)}.date-label{font-size:0.75rem}.week-strip{display:flex;gap:0.5rem;overflow-x:auto;padding-bottom:0.25rem;margin:0 -0.25rem}.week-day{flex:0 0 auto;min-width:58px;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:0.5rem 0.75rem;border:1px solid var(--line);border-radius:0.75rem;background:var(--surface);color:var(--muted);cursor:pointer}.week-day.is-today{border-color:var(--brass);background:color-mix(in srgb, var(--brass-dim) 40%, transparent)}.week-day.is-selected{border-color:color-mix(in srgb, var(--ink) 50%, transparent)}.week-day-name,.tab-button,.rest-screen h2,.exercise-card h4,.group-heading h3,.app-title-row h1{font-family:'Oswald', sans-serif}.week-day-name{font-size:0.75rem;letter-spacing:0.025em}.week-day.is-today .week-day-name,.week-day.is-today .week-day-workout{color:var(--brass)}.week-day-workout,.week-day-date{margin-top:0.125rem;font-size:0.6875rem}.week-day-date{font-size:0.5625rem;opacity:0.7}.tab-bar-wrap{margin-top:0.75rem}.tab-bar{display:flex;gap:0.25rem;border-bottom:1px solid var(--line)}.tab-button{position:relative;flex:1;padding:0.75rem 0;border:0;background:transparent;color:var(--muted);font-size:0.875rem;letter-spacing:0.025em;cursor:pointer}.tab-button.is-active{color:var(--ink)}.tab-indicator{position:absolute;right:0.5rem;bottom:-1px;left:0.5rem;height:2px;border-radius:999px;background:var(--brass)}.rotation-note{padding-top:0.375rem;padding-bottom:0;color:color-mix(in srgb, var(--muted) 70%, transparent);font-size:0.625rem}.off-schedule-banner{display:flex;align-items:center;gap:0.5rem;margin-top:0.75rem;padding-top:0.5rem;padding-bottom:0.5rem;border:1px solid color-mix(in srgb, var(--ink) 20%, transparent);border-radius:0.5rem;background:var(--surface);color:var(--muted);font-size:0.75rem}.off-schedule-banner p{margin:0}.banner-marker,.group-marker{flex-shrink:0;background:color-mix(in srgb, var(--ink) 50%, transparent)}.banner-marker{width:0.375rem;height:0.375rem;border-radius:50%}.emphasis{color:var(--ink);font-weight:500}.rest-screen{display:flex;flex-direction:column;align-items:center;padding:3.5rem 1.5rem;text-align:center}.rest-icon{display:flex;align-items:center;justify-content:center;width:4rem;height:4rem;margin-bottom:1.25rem;border:1px solid var(--line);border-radius:50%;background:var(--surface-alt)}.rest-icon svg{width:1.75rem;height:1.75rem}.rest-screen h2{margin:0 0 0.5rem;color:var(--ink);font-size:1.5rem}.rest-copy{max-width:280px;margin:0 0 2rem;font-size:0.875rem;line-height:1.625}.rest-actions,.exercise-fields,.notice-actions,.reset-actions{display:flex;gap:0.5rem}button{font:inherit}.secondary-button,.outline-action,.primary-action,.danger-action,.reset-button,.control-button{border-radius:0.5rem;cursor:pointer}.secondary-button,.outline-action{border:1px solid var(--line);background:var(--surface);color:var(--ink)}.secondary-button{padding:0.5rem 1rem;font-size:0.875rem}.secondary-button:hover,.control-button:hover,.reset-button:hover{border-color:var(--brass)}.exercise-card{padding:0.75rem 1rem;border:1px solid var(--line);border-radius:0.75rem;background:var(--surface)}.exercise-card.is-complete{border-color:color-mix(in srgb, var(--brass) 60%, transparent);background:color-mix(in srgb, var(--brass-dim) 20%, transparent)}.exercise-header{display:flex;align-items:flex-start;justify-content:space-between;gap:0.75rem}.exercise-card h4{margin:0;padding-right:0.25rem;color:var(--ink);font-size:0.9375rem;line-height:1.375}.check-button{flex-shrink:0;display:flex;align-items:center;justify-content:center;width:2.25rem;height:2.25rem;border:1px solid var(--line);border-radius:50%;background:var(--surface-alt);color:transparent;cursor:pointer}.check-button svg{width:1.125rem;height:1.125rem}.check-button.is-complete{border-color:var(--brass);background:var(--brass);color:var(--bg)}.exercise-fields{margin-top:0.75rem}.field-group{flex:1}.field-group label{display:block;margin-bottom:0.25rem;color:var(--muted);font-size:0.6875rem}.exercise-input{width:100%;padding:0.5rem 0.625rem;border:1px solid var(--line);border-radius:0.5rem;background:var(--surface-alt);color:var(--ink);font-size:0.875rem}.exercise-input:focus{outline:none;border-color:var(--brass)}.muscle-group{margin-bottom:1.25rem}.group-heading{display:flex;align-items:center;gap:0.5rem;margin-bottom:0.5rem}.group-marker{width:0.25rem;height:1rem;border-radius:999px;background:var(--brass)}.group-heading h3{margin:0;color:var(--ink);font-family:'Inter', sans-serif;font-size:0.875rem;font-weight:600}.exercise-list{display:flex;flex-direction:column;gap:0.5rem}.progress-panel{padding-top:1rem;padding-bottom:0.25rem}.progress-label{display:flex;justify-content:space-between;margin-bottom:0.375rem;color:var(--muted);font-size:0.75rem}.progress-track{height:0.375rem;overflow:hidden;border-radius:999px;background:var(--surface-alt)}.progress-value{height:100%;border-radius:999px;background:var(--brass);transition:width 300ms ease}.app-main{flex:1;padding-bottom:7rem}.workout-content{padding-top:0.5rem}.history-panel{padding-bottom:0.75rem}.history-list{overflow:hidden;border:1px solid var(--line);border-radius:0.75rem;background:var(--surface)}.history-row{display:flex;align-items:center;justify-content:space-between;gap:0.75rem;padding:0.625rem 0.75rem;border-bottom:1px solid var(--line)}.history-row:last-child{border-bottom:0}.history-date,.history-sessions{display:flex;align-items:center;gap:0.5rem;min-width:0}.history-date span:first-child{width:2rem;flex-shrink:0;color:var(--muted);font-family:'Oswald', sans-serif;font-size:0.75rem}.history-date span:first-child.is-today{color:var(--brass)}.history-date span:last-child,.empty-session,.history-note{font-size:0.6875rem}.history-sessions{justify-content:flex-end}.session-badge{flex-shrink:0;padding:0.125rem 0.5rem;border:1px solid var(--line);border-radius:999px;color:var(--ink);font-size:0.6875rem}.session-badge.is-complete{border-color:color-mix(in srgb, var(--brass) 60%, transparent);background:color-mix(in srgb, var(--brass-dim) 30%, transparent);color:var(--brass)}.history-note{margin:0.5rem 0 0}.controls-bar{padding-bottom:0.75rem}.control-grid{display:grid;grid-template-columns:repeat(4, minmax(0, 1fr));gap:0.5rem}.control-button{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:0.25rem;min-height:3.5rem;padding:0.5rem;border:1px solid var(--line);background:var(--surface);color:var(--ink);font-size:0.625rem;line-height:1.1}.control-button.is-active{border-color:var(--brass);background:color-mix(in srgb, var(--brass-dim) 20%, transparent)}.control-button.is-danger:hover{border-color:var(--rust)}.file-input{display:none}.control-hint{margin:0.5rem 0 0;font-size:0.6875rem}.notice{margin-top:0.5rem;padding:0.75rem;border-radius:0.5rem;font-size:0.75rem}.notice p{margin:0}.notice-error{display:flex;align-items:flex-start;justify-content:space-between;gap:0.5rem;border:1px solid color-mix(in srgb, var(--rust) 50%, transparent);background:color-mix(in srgb, var(--rust) 10%, transparent)}.notice-warning{border:1px solid color-mix(in srgb, var(--brass) 50%, transparent);background:color-mix(in srgb, var(--brass-dim) 20%, transparent)}.notice-neutral{border:1px solid var(--line);background:var(--surface)}.notice-accent{color:var(--brass)}.notice-detail{margin-top:0.25rem !important;margin-bottom:0.75rem !important;font-size:0.6875rem}.notice-dismiss{flex-shrink:0;border:0;background:transparent;color:var(--muted);cursor:pointer;font-size:0.75rem}.notice-actions{margin-top:0.5rem}.outline-action,.primary-action,.danger-action{flex:1;padding:0.5rem;font-size:0.75rem;font-weight:500}.primary-action{border:0;background:var(--brass);color:var(--bg);font-weight:600}.danger-action{border:1px solid var(--rust);background:transparent;color:var(--rust);font-weight:600}.danger-filled{border:0;background:var(--rust);color:var(--ink)}.notice-wide-action{width:100%;margin-bottom:0.5rem}.reset-bar{position:fixed;right:0;bottom:0;left:0;z-index:20;padding:0.75rem 1rem;padding-bottom:calc(env(safe-area-inset-bottom, 0px) + 0.75rem);border-top:1px solid var(--line);background:color-mix(in srgb, var(--bg) 95%, transparent);backdrop-filter:blur(8px)}.reset-button{width:100%;padding:0.75rem;border:1px solid var(--line);background:transparent;color:var(--muted);font-size:0.875rem;font-weight:500}.reset-button:hover{border-color:var(--rust);color:var(--rust)}.reset-action{padding-top:0.75rem;padding-bottom:0.75rem}@media (max-width: 768px){.history-sessions{overflow-x:auto}.control-grid{gap:0.375rem}}