/* HIROFLOW: warm surfaces, quiet depth, burgundy used in small areas. */
@media screen {
 #app label:has(>select,>textarea,>input:not([type=checkbox]):not([type=radio])),dialog:not(.report-dialog) label:has(>select,>textarea,>input:not([type=checkbox]):not([type=radio])){display:flex;flex-direction:column;gap:9px;min-width:0;line-height:1.65}
 #app label>select,#app label>textarea,dialog:not(.report-dialog) label>select,dialog:not(.report-dialog) label>textarea{width:100%;max-width:100%;box-sizing:border-box;min-width:0}
 #app .panelhead,dialog:not(.report-dialog) .panelhead{gap:22px;flex-wrap:wrap}.body-trend .panelhead label{min-width:190px;max-width:100%}.body-compare-heading label{display:grid;gap:9px}
 #bodyCompareTable .tablewrap{overflow-x:auto;border-radius:12px;border:1px solid #e4dfd7}#bodyCompareTable table{display:table;min-width:560px;width:100%;border-collapse:collapse}#bodyCompareTable thead{display:table-header-group;position:static;clip-path:none;width:auto;height:auto;overflow:visible}#bodyCompareTable tbody{display:table-row-group}#bodyCompareTable tr{display:table-row;padding:0;border:0;margin:0}#bodyCompareTable th,#bodyCompareTable td{display:table-cell;padding:16px 18px;min-height:0;line-height:1.6;text-align:left;white-space:nowrap;border-bottom:1px solid #ece8e0}#bodyCompareTable th{background:#f7f5f0;font-size:12px;font-weight:600}#bodyCompareTable td::before{display:none}#bodyCompareTable th:first-child,#bodyCompareTable td:first-child{position:sticky;left:0;background:#fcfbf8;z-index:1}#bodyCompareTable tr:last-child td{border-bottom:0}
 @media(max-width:650px){.body-trend .panelhead label{width:100%;min-width:0}#bodyCompareTable th,#bodyCompareTable td{padding:14px 16px}.body-compare-heading label{max-width:100%}}
}
@media screen {
 dialog#modal:focus{outline:none}
 .follow-complete{border-top:1px solid #e4dfd7;padding-top:24px;margin-top:24px;display:flex;align-items:center;justify-content:space-between;gap:24px}.follow-complete p{font-size:13px;line-height:1.7;color:#6b6c65;margin:8px 0 0}.follow-complete>button{flex-shrink:0}.follow-done-confirm{margin-top:20px;padding:24px;border:1px solid #d4c7b8;border-radius:16px;background:#f7f5f0}.follow-done-confirm .actions{justify-content:flex-end}.follow-done-confirm h2{font-size:19px}@media(max-width:600px){.follow-complete{flex-direction:column;align-items:stretch}.follow-done-confirm{padding:18px}}
:root{--ui-ink:#30322f;--ui-muted:#6b6b63;--ui-line:#e1ddd5;--ui-soft:#f7f5f0;--ui-radius:18px;--accent:#84252d;color:#30322f;background:#f7f5f0;font-family:Inter,-apple-system,BlinkMacSystemFont,'Hiragino Kaku Gothic ProN','Noto Sans JP',sans-serif}
body{background:#f7f5f0;color:#30322f;line-height:1.65;letter-spacing:.01em}p,.muted,#app .muted,small.sub,.sub{color:#6b6b63}h1,h2,h3{color:#30322f}button,input,textarea,select{color:#30322f}button{transition:background .15s,box-shadow .15s,border-color .15s}:is(button,input,select,textarea,summary,[role=listbox]):focus-visible{outline:2px solid #84252d!important;outline-offset:2px}button:disabled{opacity:.5}input[type=checkbox],input[type=radio],progress{accent-color:#84252d!important}
aside{background:#343532;border-right:1px solid #41423d;color:#f7f5f0}aside .brand{padding:18px 10px 26px}#nav{padding:8px 0;gap:7px}#nav button{color:#dfded7;font-weight:500;border:1px solid transparent;min-height:48px;line-height:1.6}#nav button.active{background:#f7f5f0;color:#30322f;border-color:#e4dfd5;box-shadow:0 3px 8px #00000014;font-weight:700}#nav button:hover:not(.active){background:#474843;color:white}#nav button[data-page=sessions]{margin-top:0}.sidefoot small{color:#c5c5bb}.dot{background:#b79c80}main>header{border-color:#dfdcd5;color:#727268}.avatar{background:#ebe6dc;color:#62594d}main>.demo{color:#6b6b63}.eyebrow{color:#777469}main>footer{border-color:#dfdcd5;color:#777469}
#app .panel,#app .card{border-color:#e1ddd5;box-shadow:0 2px 10px #30322f03;background:#fff;color:#30322f}#app .card:first-child{background:#fff;color:#30322f;border-top:3px solid #b79c80;padding-top:24px}#app .card label,#app .card:first-child label,#app .card .note,#app .card:first-child .note,#app .card .value small,#app .card:first-child .value small{color:#6b6b63}#app .card .value{color:#30322f;font-weight:650;letter-spacing:-.025em}#app .card .note{font-size:12px}#app .title{gap:20px;align-items:center;flex-wrap:wrap}#app .title p{color:#6b6b63;font-size:13px}
button.primary,#app .primary,#app .primary:hover,dialog:not(.report-dialog) .primary{background:#84252d;color:white;border:1px solid #84252d;box-shadow:0 2px 3px #84252d12}#app .primary:hover,dialog:not(.report-dialog) .primary:hover{background:#722129;border-color:#722129}button.secondary,#app .secondary,dialog:not(.report-dialog) .secondary{background:#fff;color:#454640;border-color:#d8d4cb;box-shadow:0 1px 2px #30322f06}#app .secondary:hover,dialog:not(.report-dialog) .secondary:hover{background:#f7f5f0;border-color:#b79c80}button.link,#app button.link,dialog button.link{color:#84252d}#app .actions button,dialog:not(.report-dialog) .actions button{min-height:46px}.customer-actions{justify-content:flex-start!important;margin:24px 0!important;padding:12px;background:#f5f3ee;border:1px solid #e4dfd7;border-radius:14px}.customer-actions .secondary{background:transparent!important;box-shadow:none!important}.customer-actions .primary{margin-right:auto}.customer-sales{margin-bottom:24px}.customer-basic{margin:18px 0;border-color:#e1ddd5}
#app :is(input,select,textarea),dialog:not(.report-dialog) :is(input,select,textarea){border-color:#d7d3ca;color:#30322f;background-color:white}#app :is(input,select,textarea)::placeholder,dialog :is(input,textarea)::placeholder{color:#838176}#app .formgrid label,dialog .formgrid label,.stackform>label,.session-note,.form-section label{color:#53554e;font-size:13px;line-height:1.65}.form-section label{display:flex;flex-direction:column;gap:8px;min-width:0}.form-section label small{font-size:11px;color:#6b6b63}.form-section legend,dialog:not(.report-dialog) .form-section legend{color:#41433c}.form-section,dialog:not(.report-dialog) .form-section{background:#faf9f6;border-color:#e1ddd5}.review-list dt{color:#6b6b63}.review-list dd{color:#30322f}.notice,#app .notice,dialog .notice{background:#f4f1e9;color:#5e5c52;border:1px solid #e7e1d4}.detailgrid div,dialog:not(.report-dialog) .detailgrid>div{background:#f7f5f0;color:#30322f}.detailgrid small{color:#6b6b63}.success-icon{background:#e9eee7;color:#44624b}
#app th{background:#f7f5f0;color:#65655d;font-weight:600}#app td{border-color:#e9e5de;color:#30322f}#app tbody tr:hover{background:#faf9f6}table td::before{color:#6b6b63}.empty{color:#777469}#app .activity-summary>button{border-color:#e1ddd5;gap:18px;color:#30322f}#app .activity-summary b{font-size:26px}.activity.green{color:#526b56}.activity.green i{background:#708875}.activity.yellow{color:#846122;background:transparent}.activity.yellow i{background:#b39152}.activity.red{color:#9b5852}.activity.red i{background:#b8766e}.activity.neutral{color:#79786e}.badge{background:#f0eee8;color:#67675e;border:1px solid transparent;border-radius:999px;padding:5px 11px;font-size:11px;display:inline-flex;align-items:center;gap:5px}.badge.settled{background:#edf2ec;color:#47664f;border-color:#dfe7dc}.badge.settled:before{content:'✓';font-weight:700}.badge.unsettled{background:#faf1df;color:#866222;border-color:#eddfbf}.badge.unsettled:before{content:'◷';font-weight:700}.badge.red{background:#f8eeeb;color:#95564d}.badge.gray{background:#efede7;color:#6b6b63}
#app .follow-card{padding:20px 22px;margin:14px 0;border:1px solid #e6d5cf;border-left:3px solid #be8d80;border-radius:14px;display:flex;gap:14px;align-items:center;flex-wrap:wrap}#app .follow-card .sub{width:100%;margin:0}#app .follow-card .activity{margin-left:auto}#app .follow-card .link{padding:2px 0;line-height:1.65}#app .chartbar>div,#app .bar div{background:#c9b7a4}#app .chartbar:nth-child(3n)>div,#app .bar:last-child div{background:#8d6261}#app .chartbar,#app .bar{color:#6b6b63}.track{background:#efebe4}.track span{background:#ad8d78}
.soft-tabs,#app .studio-tabs,.dossier-tabs,.segmented{display:flex;gap:6px;padding:6px;border:1px solid #e4dfd7;background:#eeeae2;border-radius:14px;flex-wrap:wrap;align-items:stretch}.soft-tabs button,#app .studio-tabs button,.dossier-tabs button,.segmented button{background:transparent;color:#67665e;border:1px solid transparent;border-radius:10px;padding:12px 18px;min-height:44px;font:600 14px/1.5 inherit;flex:1;white-space:nowrap;box-shadow:none}.soft-tabs button.active,#app .studio-tabs button.active,.dossier-tabs button.active,.segmented button.selected{background:linear-gradient(#fff,#fdfcf9);color:#30322f;border-color:#ded8cd;box-shadow:0 2px 4px #30322f12,0 1px 0 #fff inset;font-weight:700}.soft-tabs button:hover:not(.active),#app .studio-tabs button:hover:not(.active),.dossier-tabs button:hover:not(.active){background:#f5f2ec}.soft-tabs button.active:after{content:'';display:block;width:20px;height:2px;background:#b79c80;border-radius:2px;margin:5px auto -7px}.insight-tabs{margin-bottom:24px}.dossier-tabs{margin:24px 0}.segmented{flex-wrap:nowrap}.segmented button{padding:8px 16px}#app .customer-filters,#app .period{border-color:#e1ddd5}
#app .studio-top,#app #studioWorkout .exercise-editor,#app .exercise-search,#app .menu-builder{border-color:#e1ddd5}#app #studioDossier{background:#faf8f3;border-color:#e4ded3}#app #studioDossier .goal-preview>div,.goal-preview>div{background:#fff;border:1px solid #e8e3d9}.goal-preview span{color:#6b6b63}#app .menu-builder>summary{color:#454640}#app .studio-top .studio-toolbar{border-color:#e1ddd5}#app #studioSave{color:#686c60}#app .workout-metrics,.quota-strip{background:#f1eee6;color:#30322f;border:1px solid #dfd7c8;box-shadow:0 1px 3px #30322f05}#app .workout-metrics small,.quota-month,.quota-plan,.quota-strip small{color:#68665c}.quota-strip strong{font-size:26px}.quota-dots .used{background:#ddd4c5;color:#5b4a3d}.quota-dots .remaining{border-color:#c9bca8;background:#faf8f4}.quota-card,.quota-empty,.quota-once{background:#f6f3ed;color:#454640;border-color:#ddd5c7}.quota-card small,.quota-detail,.quota-once b{color:#6b6559}.quota-track{background:#e6e0d5}.quota-track i{background:#ac8b71}.client-start,.studio-clients .client-start{color:#30322f;border-color:#ded8cc!important}.client-start span{color:#6b6559}.client-start:hover,.studio-clients .client-start:hover{background:#faf8f3;border-color:#b79c80!important}.session-history,.memo-card,.workout-history,.metric-values span{background:#f7f5ef;border-color:#e1ddd5}.session-history summary b{color:#6c6151}.rest-timer .link{color:#84252d}#app .workout-set,dialog .workout-set{background:#faf9f6;border-color:#e8e3da}#app .workout-set input{background:white}#app .workout-set:has(.set-done input:checked),dialog .workout-set:has(.set-done input:checked){background:#f1f3ed;border-color:#dce1d4}.set-index{color:#78766a}.set-timer,.remove-set{color:#6b6559;border-color:#ded8cc;background:#f8f6f0}#app .complete-exercise,dialog .complete-exercise{background:#f7f5ef;color:#555c4d;border-color:#d9d7ca}#app .complete-exercise.all-complete,.exercise-footer .all-complete{background:#e7ece1;color:#4e624c;border-color:#ced8c5}#app .exercise-choice,.exercise-choice{background:#f8f6f1;color:#454640;border-color:#dfd7ca}.chip-field span{color:#625d52;background:#faf8f3;border-color:#dfd7ca}.chip-field input:checked+span{background:#eee4dc;color:#64383a;border-color:#b79988;box-shadow:0 2px 4px #30322f09}.favorite-toggle{background:#f3efe6;color:#8d795d}.favorite-toggle[aria-pressed=true]{background:#f4e8cb;color:#8b6a2e}#modal .library-row-actions .exercise-added,#app .exercise-choice.exercise-added{background:#e8ede1;color:#4d6148;border-color:#cdd9c4}#modal .library-row.exercise-row-added{background:#f3f5ee}.goal-card,.note-card{background:#fbfaf7;border-color:#e1ddd5}.goal-card.achieved{background:#f0f3eb}.note-links a,.attachment{color:#84252d}.note-card small{color:#6b6b63}.photo-add{background:#efe9df;color:#65594b}.photo-grid img,.photo-compare img{background:#f3f0e9}
#app #studioDossier .follow-reminder{background:#faf6ec;border-color:#e6d8ba;color:#6b5c3f}#app #studioDossier .follow-item{border-color:#e7dfcf;color:#30322f;padding:16px 18px}#app #studioDossier .follow-item:hover{background:#fffdf8;border-color:#c7b18b}.follow-count{background:#eee5d3;color:#75613d}.follow-hint{color:#746a56}.follow-arrow{color:#9e8150}#app .studio-bottom{border-color:#ded7ca}
#vaultStatus{background:transparent;border:0;border-bottom:1px solid #e3ded4;color:#6b6b63;border-radius:0;padding:9px 0 15px}#vaultStatus>button{color:#746455}#vaultStatus[data-state=error]{padding:14px;background:#fbede9;color:#924b42;border:1px solid #ebcfc5;border-radius:12px}.backup-row{background:#f6f3ec}.backup-row small{color:#6b6b63}dialog:not(.report-dialog){color:#30322f;border-color:#ded8cc;box-shadow:0 24px 80px #30322f26}dialog::backdrop{background:#30322f55;backdrop-filter:blur(4px)}#toast{background:#41433d;color:#fff;box-shadow:0 6px 20px #30322f20;border-radius:12px;max-width:calc(100vw - 32px);z-index:1001}#dateCalendar{color:#30322f;background:#fffdf8}.calendar-grid button{color:#5e5c52;background:#f3efe6}.calendar-grid button[aria-pressed=true]{background:#84252d;color:white}.wheel-frame{background:#f6f2eb}.wheel-frame:before{background:#e9dfd0}.wheel-item{color:#858071}.wheel-item[aria-selected=true]{color:#30322f}.wheel-group>b{color:#6b6b63}.plan-history small{color:#6b6b63}.plan-scheduled{color:#84644e!important}#restAlarm{background:#f4ead3;color:#5e5138;border:1px solid #dbc7a0;box-shadow:0 8px 30px #30322f20}#restAlarm button{background:#84252d;color:#fff}#mobileNav{border-color:#e1ddd5;background:#fcfbf7;box-shadow:0 -3px 18px #30322f08}#mobileNav button{color:#67665e}#mobileNav .mobile-main,#mobileNav .mobile-main.active{background:#84252d;color:#fff}#mobileNav .active{background:#ede7dc;box-shadow:inset 0 -2px #b79c80}#mobileMenu{background:#f7f5f0;color:#30322f;border-color:#d8d0c1}
.startup{display:flex;flex-direction:column;align-items:center;text-align:center;max-width:440px;margin:18vh auto;padding:56px 32px;border:0;background:transparent;box-shadow:none}.startup p{font-size:13px;margin-top:24px;color:#777166}.loading-orbit{display:block;position:relative;width:52px;height:52px;border-radius:50%;border:2px solid #e7dfd3;border-top-color:#84252d;animation:orbit 1.25s linear infinite}.loading-orbit:after{content:'';position:absolute;inset:10px;border:1px solid #b79c80;border-radius:50%;border-left-color:transparent;animation:orbit 2s linear reverse infinite}@keyframes orbit{to{transform:rotate(360deg)}}
.insight-filters{display:grid;grid-template-columns:repeat(4,minmax(120px,1fr)) auto;gap:14px;align-items:end;background:#fff;border:1px solid #e1ddd5;border-radius:14px;padding:18px;margin-top:16px}.insight-filters label,.sales-filter label{display:grid;gap:7px;font-size:12px;color:#6b6b63}.insight-filters select{width:100%}.insight-grid{display:grid;grid-template-columns:1fr 1fr;gap:24px;margin-top:24px}.ranking{display:grid;gap:22px;padding-top:12px}.rank-row{display:grid;grid-template-columns:1fr auto;gap:10px 20px;font-size:13px}.rank-row b{font-variant-numeric:tabular-nums;font-weight:650}.rank-row small{font-size:11px;color:#787368;font-weight:400}.rank-track{grid-column:1/-1;height:6px;background:#f1eee7;border-radius:8px;overflow:hidden}.rank-track i{display:block;height:100%;background:#b3947f;border-radius:8px}.rank-row:nth-child(1) .rank-track i{background:#945d60}.revenue-cards{grid-template-columns:repeat(3,1fr)!important}.sales-filter{display:flex;align-items:end!important;justify-content:space-between;margin:24px 0!important;gap:18px;flex-wrap:wrap}.sales-filter label{min-width:230px}.sale-amount{font-size:34px;font-weight:650;margin:22px 0;display:flex;align-items:center;gap:20px}.sales-dialog{width:min(800px,96vw)}.form-section .muted{grid-column:1/-1;margin:0}.form-section [hidden]{display:none!important}.customer-actions button{flex:0 1 auto}.insight-tabs button{font-size:13px}#app[data-view=stats] .card .value small{font-size:11px}.insight-tabs+.period{margin-top:20px}
@media(max-width:1100px){.insight-filters{grid-template-columns:repeat(2,minmax(0,1fr))}#app .customer-filters .filters:first-child{grid-template-columns:repeat(2,minmax(0,1fr))}.insight-tabs{gap:5px}.insight-tabs button{flex:1 1 40%;padding:12px 10px}}
@media(max-width:650px){.insight-grid{grid-template-columns:1fr;gap:18px}.revenue-cards{grid-template-columns:1fr!important}#app .card .value{font-size:28px}.soft-tabs{width:100%;box-sizing:border-box}.soft-tabs button,.dossier-tabs button{padding:10px 12px;font-size:12px;white-space:normal}.insight-filters{padding:16px;gap:14px}.sales-filter label{width:100%}.form-section,dialog:not(.report-dialog) .form-section{grid-template-columns:1fr}.customer-actions{padding:10px;gap:10px!important;display:grid!important;grid-template-columns:1fr 1fr!important}.customer-actions .primary{grid-column:1/-1;margin:0}.customer-actions button{font-size:12px!important;padding:10px!important}.follow-card{padding:18px!important}#app .follow-card .activity{margin-left:0}.quota-strip strong{font-size:24px}#app .title{align-items:flex-start}.startup{margin:15vh 16px}.sale-amount{font-size:28px}#app .tablewrap td{overflow-wrap:anywhere}.sales-dialog{width:calc(100vw - 24px)}.soft-tabs{overflow-x:auto}.insight-tabs button{flex:1 1 40%}}
@media(prefers-reduced-motion:reduce){.loading-orbit,.loading-orbit:after{animation:none}button{transition:none}}
}
@media screen {
 .customer-actions{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px!important}.customer-actions button{width:100%;white-space:normal}
 .dossier-tabs{flex-wrap:wrap;gap:6px}.baseline-summary{background:#f5f1eb;border:1px solid #e8e1d7;border-radius:16px;padding:24px;margin:20px 0 28px}.baseline-summary h3{margin:8px 0 14px}.baseline-summary small{color:#6b6c65;line-height:1.7}
 .body-compare-heading{display:flex;align-items:center;justify-content:space-between;gap:24px;margin:28px 0 16px}.body-compare-heading label{max-width:350px;width:100%;font-size:13px}.body-trend{border:1px solid #e4dfd7;border-radius:16px;padding:24px}.body-trend svg{width:100%;max-height:300px}.body-trend svg text{font-size:12px;fill:#60615c}
 .body-photo-compare{display:grid;grid-template-columns:1fr 1fr;gap:24px}.body-photo-compare section{min-width:0}.body-photos{display:grid;grid-template-columns:repeat(auto-fit,minmax(100px,1fr));gap:12px}.body-photos img{width:100%;height:200px;object-fit:contain;border:1px solid #e4dfd7;background:#f7f5f0;border-radius:12px}.body-photos a{font-size:12px;text-align:center;display:grid;gap:8px;color:#63645d}.body-photos .check-label{font-size:12px}
 #studioBody .panel>button{margin-bottom:12px}#baselineForm .measure-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}.body-trend label{font-size:13px}
 @media(max-width:600px){.customer-actions{grid-template-columns:1fr}.body-compare-heading{align-items:stretch;flex-direction:column;gap:8px}.body-photo-compare{gap:12px}.body-photos{grid-template-columns:1fr}.body-photos img{height:150px}.body-trend{padding:16px}#baselineForm .measure-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.baseline-summary{padding:18px}.dossier-tabs button{font-size:12px!important;padding:10px 12px!important}}
}

@media screen and (max-width:1100px){#mobileNav{grid-template-columns:repeat(5,minmax(0,1fr));gap:4px}#mobileNav button{min-width:0}#mobileNav span{font-size:10px;white-space:nowrap}}

/* Main navigation: a fixed icon column and consistent optical alignment. */
@media screen {
 aside{background:linear-gradient(160deg,#3b3c38,#2e302c);border-right:1px solid #484942}
 #nav{gap:8px;padding:8px 0;margin:0}
 #nav button,#nav button[data-page=sessions]{position:relative;display:grid;grid-template-columns:32px minmax(0,1fr);align-items:center;column-gap:12px;width:100%;height:54px;min-height:54px;padding:10px 14px;margin:0;border:1px solid transparent;border-radius:12px;font-size:13px;font-weight:550;line-height:1.5;letter-spacing:.025em;white-space:nowrap;filter:none}
 #nav .nav-icon{display:grid;place-items:center;width:32px;height:32px;border-radius:9px;background:#ffffff08;color:#c9c7bc}
 #nav .nav-icon svg{display:block;width:20px;height:20px}
 #nav .nav-label{text-align:left}
 #nav button.active{background:linear-gradient(145deg,#fffefa,#eee9df);border-color:#e4dccc;color:#30322f;box-shadow:0 4px 12px #11130f26,inset 0 1px 0 #fff;font-weight:650}
 #nav button.active:before{content:'';position:absolute;left:0;top:17px;bottom:17px;width:3px;border-radius:0 3px 3px 0;background:#84252d}
 #nav button.active .nav-icon{background:#84252d09;color:#84252d}
 #nav button:hover:not(.active){background:#ffffff0b;border-color:#ffffff12;color:#fffefa}
 #nav button:hover:not(.active) .nav-icon{color:#ece4d7}
 #mobileNav svg{display:block;flex-shrink:0;width:21px;height:21px}
 .session-launch{padding-top:24px;margin-top:24px;border-top:1px solid #ffffff14;flex-shrink:0;width:100%}
 #studioNavStart{display:grid;grid-template-columns:32px minmax(0,1fr) 12px;align-items:center;gap:10px;width:100%;padding:15px 12px;min-height:76px;margin:0;border:1px solid #a85b61;border-radius:15px;background:linear-gradient(135deg,#98404a,#76212c);color:#fff8f3;text-align:left;box-shadow:0 6px 18px #17110f35,inset 0 1px 0 #ffffff25;filter:none}
 #studioNavStart:hover{background:linear-gradient(135deg,#a34a54,#842b36);box-shadow:0 8px 22px #17110f45}
 #studioNavStart .launch-icon{display:grid;place-items:center;width:32px;height:32px;color:#f0d6c7}
 #studioNavStart .launch-icon svg{width:27px;height:27px}
 #studioNavStart b{display:block;font-size:13px;font-weight:650;letter-spacing:.04em;white-space:nowrap}
 #studioNavStart small{display:block;font-size:10px;color:#edc9c6;margin-top:4px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
 #studioNavStart .launch-arrow{color:#edc9c6;font-size:17px}
 #studioNavStart.active{border-color:#d1a499;box-shadow:0 6px 18px #17110f35,inset 0 -3px 0 #d1a499}
 .form-section[hidden]{display:none!important}
 @media(min-width:1101px) and (pointer:fine){aside{width:244px;padding:24px 16px;overflow-y:auto}aside .brand{padding:12px 14px 24px;flex-shrink:0}aside .sidefoot{padding:24px 14px 0}main{margin-left:244px;width:calc(100% - 244px)}}
 @media(min-width:1101px) and (max-height:800px) and (pointer:fine){aside{padding-top:18px;padding-bottom:18px}aside .brand{padding:8px 14px 18px}aside .brand-crop{max-width:120px}#nav{gap:6px}#nav button,#nav button[data-page=sessions]{height:48px;min-height:48px}.session-launch{margin-top:18px;padding-top:18px}aside .sidefoot{padding-top:18px}}
 @media(max-width:1100px),(any-pointer:coarse){aside.menu-open #nav{gap:8px}#nav button,#nav button[data-page=sessions]{height:56px;min-height:56px;padding:10px;column-gap:9px;font-size:12px;white-space:normal}.session-launch{display:none}aside.menu-open .session-launch{display:block;margin-top:12px;padding-bottom:16px}#mobileNav{grid-template-columns:repeat(5,minmax(0,1fr))}#mobileNav .mobile-main{transform:translateY(-7px);border-radius:14px;box-shadow:0 3px 8px #84252d20}}
}

/* Shared field rhythm and workout blocks. */
@media screen {
 #app .period{display:grid;grid-template-columns:minmax(240px,1.4fr) minmax(160px,1fr) minmax(190px,1fr);gap:20px;align-items:end;padding:20px}
 .period-mode{display:grid;gap:9px;min-width:0}.period-mode>span{font-size:12px;color:#6b6b63}
 #app .period label{display:grid;gap:9px;min-width:0;margin:0}
 #app .period :is(input,select){height:48px;width:100%;min-width:0;margin:0}
 #app .period .segmented{height:48px;padding:4px;gap:4px}
 #app .period .segmented button{min-height:38px;height:38px;padding:7px 14px}
 .panelhead label,.compare-controls label,.record-row label{display:grid;gap:9px;min-width:0}
 .panelhead h2,.panelhead h3{margin:0}.panelhead label select{margin:0}
 .body-data-section{margin-top:28px}.body-data-section>h3{font-size:18px;margin:0 0 18px}
 #app .filters :is(input,select),dialog .filters :is(input,select){min-height:48px}
 :is(#app,dialog) :is(input,select,textarea){max-width:100%}
 :is(#app,dialog) label:has(>input:not([type=checkbox]):not([type=radio])),:is(#app,dialog) label:has(>select){min-width:0}
 .session-end-actions{display:flex;align-items:center;gap:14px;margin-left:auto}
 #app .studio-bottom{flex-wrap:wrap}.session-end-actions #studioDiscard{min-width:90px}
 #app .exercise-footer,dialog .exercise-footer{display:flex;flex-wrap:wrap;align-items:flex-start;gap:16px}
 .set-actions{display:flex;gap:10px;align-items:center;flex-wrap:wrap;flex:1;min-width:0}
 .method-button{border:1px solid #dbc8c5;border-radius:9px;background:#fcf7f5;color:#79383e;font-size:12px;padding:11px 14px;min-height:44px;line-height:1.5}
 .method-button:hover{background:#f3e6e3}.set-actions .add-set{flex-shrink:0}
 #app .set-entry.workout-set,dialog .set-entry.workout-set{display:grid;grid-template-columns:20px repeat(var(--set-fields,3),minmax(62px,1fr)) 68px 42px 36px 32px;align-items:end;gap:12px}
 #app .set-entry label,dialog .set-entry label{display:flex;flex-direction:column;gap:9px;margin:0;font-size:12px;min-width:0}
 #app .set-entry input:not([type=checkbox]),dialog .set-entry input:not([type=checkbox]){width:100%;height:46px;padding:10px!important;min-width:0}
 .set-entry .set-index{align-self:center;font-size:12px}
 #app .set-partial,dialog .set-partial,#app .set-done,dialog .set-done{align-items:center;justify-content:end}
 .set-entry :is([data-done],[data-partial]){appearance:auto;width:24px;height:24px;margin:11px 0;accent-color:#84252d}
 .set-entry .set-timer,.set-entry .remove-set{width:100%;min-width:0;height:46px;margin:0;padding:8px;border-radius:9px}
 #app .drop-set,dialog .drop-set{border:1px solid #d9c5bf;border-radius:14px;padding:18px;background:#fdfaf8;margin:0}
 .drop-set .panelhead{gap:12px;margin:0;align-items:center}.drop-set>p{margin:12px 0 18px}
 .drop-stages{display:grid;gap:10px}.drop-footer,.cycle-footer{display:flex;align-items:end;flex-wrap:wrap;gap:14px;margin-top:18px}
 .drop-footer label,.cycle-footer label{display:grid;gap:9px;font-size:12px}.drop-footer input,.cycle-footer input{width:155px}
 #app .drop-stages .workout-set,dialog .drop-stages .workout-set{grid-template-columns:22px repeat(var(--set-fields,2),minmax(62px,1fr)) 74px 44px 32px}
 #app .workout-group,dialog .workout-group{border-top:4px solid #9a5b60!important;background:#fffdfb}
 .group-heading{display:flex;align-items:center;gap:14px;flex-wrap:wrap;margin-bottom:24px}.group-heading>div:first-child{flex:1;min-width:180px}
 .group-heading p{font-size:12px;margin:10px 0 0}.method-badge{display:inline-block;color:#84252d;font-size:18px;font-weight:700}
 .group-members{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin-bottom:20px}
 .group-member{display:flex;gap:10px;align-items:end;min-width:0}.group-member label{display:grid;gap:9px;font-size:12px;flex:1;min-width:0}.group-member input{width:100%}.group-member .exercise-order{flex-wrap:wrap;margin:0}
 .group-member .exercise-order button{padding:8px;min-width:34px;min-height:46px}.group-member .exercise-order .link{width:100%;min-height:32px}
 .workout-cycles{display:grid;gap:20px;margin-top:24px}.workout-cycle{background:#f8f5ef;border:1px solid #e3dbd0;border-radius:14px;padding:20px}
 .cycle-heading{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-bottom:18px}.cycle-heading h3{margin:0;color:#665144;font-size:15px}
 .cycle-sets{display:grid;gap:16px}.cycle-member-set>strong{font-size:13px;display:block;margin:0 0 10px;overflow-wrap:anywhere}
 #app .cycle-member-set>.workout-set,dialog .cycle-member-set>.workout-set{grid-template-columns:22px repeat(var(--set-fields,2),minmax(62px,1fr)) 74px 44px}
 .group-choices{display:grid;gap:22px;margin:24px 0}.group-choice{display:grid;grid-template-columns:1fr 1fr;gap:16px}.group-choice label{display:grid;gap:9px;font-size:13px;min-width:0}.group-choice input,.group-choice select{width:100%}
 .workout-report-table{overflow-x:auto}.workout-report-table table{min-width:540px}.workout-report-table td{line-height:1.6;white-space:normal}
 #app .dossier-summary .actions{grid-template-columns:repeat(2,minmax(0,1fr))}
 @media(max-width:1250px){.group-members{grid-template-columns:1fr}.set-actions{flex-basis:100%}#app .exercise-footer .complete-exercise{margin-left:auto}}
 @media(max-width:800px){#app .period{grid-template-columns:1fr 1fr;gap:18px}.period-mode{grid-column:1/-1}#app .period .segmented{width:100%}
 #app .set-entry.workout-set,dialog .set-entry.workout-set{grid-template-columns:20px repeat(var(--set-fields,3),minmax(0,1fr));gap:12px;padding:14px 12px}
 #app .set-entry .set-partial,dialog .set-entry .set-partial{grid-column:2;flex-direction:row;justify-content:flex-start;gap:8px}
 #app .set-entry .set-done,dialog .set-entry .set-done{flex-direction:row;gap:8px}
 .set-entry :is([data-done],[data-partial]){margin:4px 0}.set-entry .set-timer,.set-entry .remove-set{width:38px;height:38px;justify-self:end}
 #app .drop-stages .workout-set,dialog .drop-stages .workout-set,#app .cycle-member-set>.workout-set,dialog .cycle-member-set>.workout-set{grid-template-columns:20px repeat(var(--set-fields,2),minmax(0,1fr))}
 .workout-cycle{padding:16px}.group-choice{grid-template-columns:1fr}.group-heading .exercise-order{margin-left:auto}.drop-footer label,.cycle-footer label{flex:1}.drop-footer input,.cycle-footer input{width:100%}
 }
 @media(max-width:500px){#app .period{grid-template-columns:1fr}.period-mode{grid-column:auto}#app .period .segmented button{padding:7px 10px}
 #app .set-entry.workout-set,dialog .set-entry.workout-set{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
 .set-entry .set-index{grid-column:1/-1;text-align:left;font-weight:600}
 #app .set-entry .set-partial,dialog .set-entry .set-partial{grid-column:auto}
 #app .drop-stages .workout-set,dialog .drop-stages .workout-set,#app .cycle-member-set>.workout-set,dialog .cycle-member-set>.workout-set{grid-template-columns:repeat(2,minmax(0,1fr))}
 #app .studio-bottom #studioPDF{width:100%}.session-end-actions{width:100%;display:grid;grid-template-columns:1fr 1.5fr}
 .method-button{flex:1 1 45%;font-size:11px;padding:10px}.set-actions .add-set{width:100%}.group-member{align-items:stretch;flex-direction:column}.group-member .exercise-order{justify-content:flex-end}
 .workout-cycle{padding:14px}.drop-set{padding:14px!important}.group-heading>div:first-child{min-width:0;flex-basis:100%}
 }
}
@media print{.workout-report-table{overflow:visible}.workout-report-table table{min-width:0}.workout-report-table th,.workout-report-table td{font-size:10px;white-space:normal;padding:7px} .report-exercise{break-inside:auto} .report-exercise h3{break-after:avoid} .workout-report-table tr{break-inside:avoid} .workout-report-table thead{display:table-header-group}}

@media(max-width:500px){.dossier-tabs{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}.dossier-tabs button{white-space:nowrap;min-height:44px}.workout-group-dialog .panelhead{flex-wrap:wrap}}

/* PR and completion share one aligned control group at every width. */
#app .set-entry.workout-set,dialog .set-entry.workout-set{grid-template-columns:20px repeat(var(--set-fields,3),minmax(62px,1fr)) 112px 36px 32px}
#app .drop-stages .workout-set,dialog .drop-stages .workout-set{grid-template-columns:22px repeat(var(--set-fields,2),minmax(62px,1fr)) 112px 32px}
#app .cycle-member-set>.workout-set,dialog .cycle-member-set>.workout-set{grid-template-columns:22px repeat(var(--set-fields,2),minmax(62px,1fr)) 112px}
.set-checks{display:grid;grid-template-columns:repeat(2,50px);gap:12px;align-self:end}
:is(#app,dialog) .set-entry .set-checks label{display:grid!important;grid-template-rows:20px 46px;gap:9px;align-items:center;justify-content:stretch;text-align:center;line-height:20px;grid-column:auto}
.set-check-control{height:46px;display:flex;align-items:center;justify-content:center}
:is(#app,dialog) .set-entry .set-checks input[type=checkbox]{width:24px!important;height:24px!important;min-width:24px;min-height:24px;margin:0!important}
@media(max-width:800px){:is(#app,dialog) .set-entry.workout-set,:is(#app,dialog) .drop-stages .workout-set,:is(#app,dialog) .cycle-member-set>.workout-set{grid-template-columns:20px repeat(var(--set-fields,3),minmax(0,1fr))}.set-checks{grid-column:2/-1;justify-self:end}}
@media(max-width:500px){:is(#app,dialog) .set-entry.workout-set,:is(#app,dialog) .drop-stages .workout-set,:is(#app,dialog) .cycle-member-set>.workout-set{grid-template-columns:repeat(2,minmax(0,1fr))}.set-checks{grid-column:1/-1}.set-entry .set-timer,.set-entry .remove-set{justify-self:end}}

.plan-select-native{display:none!important}
:is(#app,dialog) label:has(>.plan-select-button){display:flex;flex-direction:column;gap:9px;min-width:0}
.plan-select-button{width:100%;min-width:0;min-height:46px;background:#fff;border:1px solid #d8d3c9;border-radius:10px;padding:10px 42px 10px 14px;font:inherit;font-size:15px;line-height:1.5;text-align:left;position:relative;color:#30322f;box-sizing:border-box}
.plan-select-button:after{content:'';position:absolute;right:17px;top:calc(50% - 5px);width:8px;height:8px;border-right:2px solid #587066;border-bottom:2px solid #587066;transform:rotate(45deg)}
.plan-select-button[aria-expanded=true]{border-color:#b79c80;box-shadow:0 0 0 2px #b79c8040}
.plan-options{position:fixed;inset:auto;margin:0;padding:6px;border:1px solid #d8d3c9;border-radius:12px;background:#fff;color:#30322f;box-shadow:0 12px 35px #30322f26;overflow:auto;box-sizing:border-box;font:15px/1.5 system-ui,sans-serif}
.plan-options [role=option]{box-sizing:border-box;min-height:48px;height:48px;padding:12px 34px 12px 14px;display:flex;align-items:center;white-space:nowrap;border-radius:7px;cursor:pointer;position:relative;line-height:24px}
.plan-options [role=option]:hover,.plan-options [role=option].focused{background:#f2ede5}
.plan-options [aria-selected=true]{color:#84252d;font-weight:700;background:#f8efed}
.plan-options [aria-selected=true]:after{content:'✓';position:absolute;right:12px}
.plan-options [aria-disabled=true]{opacity:.5;cursor:default}
/* Grid gaps supply section spacing once, without stacked fieldset margins. */
:is(#app,dialog:not(.report-dialog)) .stackform>.form-section{margin:0}

.drop-footer>.set-timer{width:46px;flex:0 0 46px;height:46px}

/* Persistent workout progress stays with the session actions, in two compact rows. */
#app .studio-bottom{display:grid;grid-template-columns:minmax(0,1fr);gap:10px;padding:12px 18px;bottom:8px}
#app .studio-status{display:flex;align-items:center;justify-content:space-between;gap:12px;border-bottom:1px solid #e8e2d8;padding-bottom:10px}
#app .studio-progress{display:flex;align-items:center;gap:22px;min-width:0}
#app .studio-volume{display:flex;align-items:baseline;gap:10px;white-space:nowrap}
#app .studio-volume small{font-size:11px;color:#6b6b63}
#app .studio-volume strong{font-size:20px;line-height:1.3;font-variant-numeric:tabular-nums}
#app .studio-status #workoutCount{font-size:12px;color:#69675f;line-height:1.5}
#app .studio-status .rest-timer{display:flex;flex-direction:row;align-items:center;flex-shrink:0;gap:12px;padding:4px 10px;border:1px solid transparent;border-radius:9px;font-size:14px;color:#69675f}
#app .studio-status .rest-timer output{font-variant-numeric:tabular-nums;white-space:nowrap;min-width:86px}
#app .studio-status .rest-timer.is-running{background:#fbefed;border-color:#dfbdbb;color:#84252d;font-weight:700}
#app .studio-status #studioStop{min-height:36px;min-width:44px;padding:4px;font-size:12px}
#app .studio-actions{display:flex;align-items:center;justify-content:space-between;gap:12px}
#app .studio-actions .session-end-actions{display:flex;width:auto;gap:12px;margin-left:auto}
#app .studio-actions button{min-height:44px;padding:10px 18px}
#app .studio-actions #studioPDF{width:auto}
:is(#app,dialog) .exercise-number{display:inline-flex;align-items:center;justify-content:center;min-width:28px;height:28px;padding:0 6px;margin-right:9px;border-radius:8px;background:#84252d;color:#fff;font-size:15px;font-weight:700;line-height:1;vertical-align:middle;font-variant-numeric:tabular-nums;box-sizing:border-box}
:is(#app,dialog) .exercise-label{display:flex;align-items:center;min-height:28px}
:is(#app,dialog) :is(.set-timer,.cycle-timer).timer-running{background:#84252d;color:#fff;border-color:#84252d;box-shadow:0 0 0 3px #84252d24}
html:has(.studio-bottom){scroll-padding-bottom:170px}
#studioWorkout :is(input,textarea,button){scroll-margin-bottom:170px}
/* The alarm uses the top layer so it remains centered above any open dialog. */
#restAlarm{position:fixed;inset:0;transform:none;margin:auto;width:min(360px,calc(100vw - 32px));height:fit-content;max-height:calc(100dvh - 32px);padding:18px 20px;border-radius:14px;box-sizing:border-box;gap:20px;overflow:auto}
#restAlarm:not([open]){display:none}
#restAlarm strong{display:block;font-size:22px;line-height:1.3}
#restAlarm small{font-size:12px;line-height:1.6;margin-top:6px}
#restAlarm button{min-width:76px;min-height:44px;padding:10px 18px;font-size:14px;flex-shrink:0}
#restAlarm::backdrop{background:#30322f26;backdrop-filter:none}
@media(max-width:1100px),(any-pointer:coarse){
 #app .studio-bottom{bottom:calc(80px + env(safe-area-inset-bottom))}
 html:has(.studio-bottom){scroll-padding-bottom:calc(250px + env(safe-area-inset-bottom))}
 #studioWorkout :is(input,textarea,button){scroll-margin-bottom:calc(250px + env(safe-area-inset-bottom))}
}
@media(max-width:650px){
 #app .studio-bottom{padding:10px 12px;gap:8px}
 #app .studio-status{gap:8px;padding-bottom:8px}
 #app .studio-progress{flex-direction:column;align-items:flex-start;gap:2px}
 #app .studio-volume{gap:6px}
 #app .studio-volume small{font-size:10px}
 #app .studio-volume strong{font-size:17px}
 #app .studio-status #workoutCount{font-size:10px}
 #app .studio-status .rest-timer{gap:4px;padding:3px 5px;font-size:13px}
 #app .studio-status .rest-timer output{min-width:77px}
 #app .studio-status #studioStop{min-height:40px;min-width:40px;font-size:11px}
 #app .studio-actions{gap:8px}
 #app .studio-actions .session-end-actions{gap:8px;flex:1}
 #app .studio-actions button{flex:0 1 auto;min-height:44px;padding:8px 10px;font-size:11px;white-space:nowrap}
 #app .studio-actions #studioPDF{width:auto;flex:1}
 #app .studio-actions #studioDiscard{min-width:52px}
 #app .studio-actions #studioFinish{flex:1}
 .pdf-desktop{display:none}
 #restAlarm{padding:16px 18px;gap:16px}
}
@media print{.studio-bottom{display:none!important}}
@media(max-width:650px){
 .drop-footer>.add-drop-stage{flex-basis:100%;width:100%}
 .drop-footer>label,.cycle-footer>label{flex:1 1 130px;min-width:120px}
}
#workoutCount{display:flex;flex-wrap:wrap;gap:2px 10px}
#workoutCount>span{white-space:nowrap}
