:root{font-family:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;font-size:16px;color-scheme:dark;--bg:#0F1115;--surface:#171A21;--surface-2:#20242C;--border:#2C323C;--text:#F3F4F6;--text-muted:#A7AFBA;--muted:#737C89;--accent:#4F8CFF;--accent-hover:#6AA0FF;--success:#35C46A;--warning:#F2B84B;--danger:#E65B5B;--accent-soft:color-mix(in srgb,var(--accent) 12%,var(--surface));--success-soft:color-mix(in srgb,var(--success) 12%,var(--surface));--warning-soft:color-mix(in srgb,var(--warning) 12%,var(--surface));--danger-soft:color-mix(in srgb,var(--danger) 10%,var(--surface));color:var(--text);background:var(--bg)}*{box-sizing:border-box}body{margin:0}button,input,select,textarea{font:inherit}button,a,input,select,textarea{outline-offset:3px}button{cursor:pointer;border:1px solid var(--border);border-radius:10px;padding:10px 15px;background:var(--surface);color:var(--text);font-weight:600}button:hover{background:var(--surface-2)}button:disabled{opacity:.5;cursor:wait}button.primary{background:var(--accent);color:var(--text);border-color:var(--accent)}button.lime{background:var(--accent);border-color:var(--accent);color:var(--text)}button.danger{color:var(--danger);background:transparent;border-color:var(--danger)}input,select,textarea{width:100%;border:1px solid var(--border);background:var(--surface);border-radius:8px;padding:11px;color:var(--text)}input[type=checkbox]{width:20px;height:20px;accent-color:var(--accent)}textarea{min-height:140px;resize:vertical;line-height:1.6}label{display:grid;gap:7px;font-size:14px;font-weight:600}h1{font-size:32px;letter-spacing:-1px;margin:0}h2{font-size:21px;margin:0 0 20px}h3{font-size:17px;margin:0 0 10px}p{line-height:1.55}.muted{color:var(--muted);font-size:14px}.small{font-size:14px}.brand{font-size:29px;letter-spacing:-1.5px;font-weight:850}.brand span{font-weight:450}.layout{display:grid;grid-template-columns:230px minmax(0,1fr);min-height:100vh}.sidebar{background:var(--surface);color:var(--text);padding:28px 18px;display:flex;flex-direction:column;position:sticky;top:0;height:100vh}.sidebar .brand{padding:0 13px 30px}.nav{display:grid;gap:5px}.nav button{border:0;background:transparent;color:var(--text-muted);text-align:left;font-size:15px;padding:13px 14px}.nav button.active{color:var(--text);background:var(--accent)}.sidefoot{margin-top:auto;padding:25px 12px 0;border-top:1px solid var(--border);color:var(--text-muted);font-size:14px}.sidefoot strong{display:block;color:var(--text);margin-bottom:8px}.sidefoot button{margin-top:16px;color:var(--text-muted);background:transparent;border-color:var(--border)}.main{padding:32px 40px 60px;max-width:1700px;width:100%;margin:auto}.topbar{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:28px}.eyebrow{font-size:13px;letter-spacing:1.5px;text-transform:uppercase;color:var(--muted);margin-bottom:8px}.actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin:20px 0 24px}.stat{padding:21px;background:var(--surface);border:1px solid var(--border);border-radius:14px}.stat .value{font-size:30px;letter-spacing:-1px;font-weight:700;margin:10px 0 4px}.stat:first-child{background:var(--accent-soft);color:var(--text)}.stat:first-child .muted{color:var(--text-muted)}.card{background:var(--surface);border:1px solid var(--border);border-radius:14px;padding:24px;margin-bottom:20px;min-width:0}.card-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:22px}.card-head h2{margin:0}.grid2{display:grid;grid-template-columns:1fr 1fr;gap:20px}.grid3{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.empty{text-align:center;padding:48px 20px;color:var(--muted)}.empty strong{display:block;font-size:20px;color:var(--accent);margin-bottom:8px}.table-wrap{overflow:auto}table{width:100%;border-collapse:collapse;font-size:14px}th{text-align:left;font-size:12px;letter-spacing:.6px;text-transform:uppercase;color:var(--muted);padding:13px 12px;border-bottom:1px solid var(--border)}td{padding:15px 12px;border-bottom:1px solid var(--border);vertical-align:middle}td .actions button{padding:7px 10px;font-size:13px}td strong{display:block;font-size:15px}.badge{display:inline-block;padding:5px 9px;border-radius:6px;font-size:12px;font-weight:600;background:var(--success-soft);color:var(--success)}.badge.warning{background:var(--warning-soft);color:var(--warning)}.badge.red{background:var(--danger-soft);color:var(--danger)}.pill{font-size:13px;border-radius:20px;border:1px solid var(--border);padding:6px 12px;white-space:nowrap}.timeline{display:grid;gap:0}.slot{display:grid;grid-template-columns:65px minmax(0,1fr);gap:16px;min-height:76px;padding:12px 0;border-bottom:1px solid var(--border)}.slot-time{font-variant-numeric:tabular-nums;color:var(--muted);font-size:14px;padding-top:13px}.appointment{display:flex;align-items:center;justify-content:space-between;gap:14px;background:var(--surface-2);border:1px solid var(--border);border-left:4px solid var(--accent);padding:13px 17px;border-radius:8px}.appointment.pending{border-left-color:var(--warning);background:var(--warning-soft)}.appointment strong{display:block}.appointment .muted{margin-top:4px}.free-slot{color:var(--text-muted);display:flex;align-items:center;font-size:14px}.day-select{width:170px}.weekstrip{display:grid;grid-template-columns:repeat(7,1fr);gap:6px;margin-bottom:20px}.weekstrip button{font-size:13px;padding:12px 4px;font-weight:500}.weekstrip button b{display:block;font-size:19px;margin-top:4px}.weekstrip button.active{background:var(--accent);color:var(--text);border-color:var(--accent)}.info{background:var(--accent-soft);border:1px solid var(--border);border-radius:10px;padding:14px 17px;font-size:14px;line-height:1.6;margin-bottom:18px}.warn{background:var(--warning-soft);border-color:var(--warning)}.row{display:flex;justify-content:space-between;align-items:center;gap:15px;padding:14px 0;border-bottom:1px solid var(--border)}.row:last-child{border-bottom:0}.price{font-size:30px;font-weight:750;margin:15px 0}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}.full{grid-column:1/-1}.check{display:flex;align-items:center;gap:9px;font-weight:500}.form-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:24px}.rule-text{white-space:pre-wrap;line-height:1.75;font-size:16px}.report-text{white-space:pre-wrap;line-height:1.6;font-size:15px}.photos{display:flex;gap:10px;flex-wrap:wrap;margin-top:15px}.photos figure{margin:0}.photos img{width:120px;height:140px;object-fit:cover;border-radius:8px}.photos button{display:block;width:100%;font-size:12px;padding:6px}.login{max-width:430px;margin:12vh auto;padding:36px;background:var(--surface);border:1px solid var(--border);border-radius:18px}.login .brand{margin-bottom:24px}.login h1{font-size:24px;margin-bottom:8px}.login form{display:grid;gap:22px;margin-top:25px}.login .primary{padding:14px}.error{color:var(--danger);font-size:14px;min-height:20px}.loading{text-align:center;padding:18vh 20px;font-size:36px;font-weight:800}.loading p{font-size:16px;font-weight:400;color:var(--muted)}dialog{border:1px solid var(--border);border-radius:16px;padding:28px;width:min(660px,94vw);max-height:90vh;box-shadow:0 30px 100px #00000030}dialog::backdrop{background:#00000080;backdrop-filter:blur(3px)}dialog .close{float:right;padding:4px 10px;margin-top:-4px}dialog h2{padding-right:40px;margin-bottom:24px}#toast{position:fixed;bottom:24px;left:50%;transform:translateX(-50%);padding:14px 22px;max-width:90vw;background:var(--surface-2);color:var(--text);border-radius:10px;box-shadow:0 5px 30px #00000020;z-index:50;display:none}.status-line{font-size:13px;color:var(--muted);margin-top:10px}a{color:var(--accent)}.program-card{white-space:pre-wrap;font-size:15px;line-height:1.6}.schedule-row{display:grid;grid-template-columns:100px 1fr 1fr 1.3fr 65px;align-items:center;gap:12px;margin-bottom:12px}.schedule-row label{font-size:12px}.calendar-exception{background:var(--warning-soft);padding:8px 12px;border-radius:8px;font-size:13px}.filter{max-width:290px}.money{font-variant-numeric:tabular-nums;white-space:nowrap}@media(max-width:1100px){.main{padding:28px 22px}.layout{grid-template-columns:190px minmax(0,1fr)}.sidebar{padding:24px 12px}.stats{grid-template-columns:repeat(2,1fr)}.grid2,.grid3{grid-template-columns:1fr}}@media(max-width:720px){.layout{display:block}.sidebar{position:relative;height:auto;padding:16px}.sidebar .brand{padding:0 0 12px;font-size:25px}.nav{display:flex;overflow-x:auto;gap:5px;padding-bottom:4px}.nav button{white-space:nowrap;padding:10px 12px;font-size:14px}.sidefoot{display:none}.main{padding:22px 14px}.topbar{align-items:flex-start;flex-direction:column;gap:15px}.topbar h1{font-size:28px}.stats{gap:9px}.stat{padding:16px}.stat .value{font-size:26px}.card{padding:18px 14px}.card-head{align-items:flex-start;flex-wrap:wrap}.appointment{align-items:flex-start;flex-direction:column;padding:12px}.slot{grid-template-columns:47px minmax(0,1fr);gap:7px}.form-grid{grid-template-columns:1fr}.schedule-row{grid-template-columns:1fr 1fr;gap:8px;padding:15px 0;border-bottom:1px solid var(--border)}.schedule-row strong{grid-column:1/-1}.weekstrip{gap:3px}.weekstrip button{padding:9px 1px;font-size:12px}.weekstrip button b{font-size:17px}.login{margin:7vh 14px;padding:26px}.day-select{width:154px}dialog{padding:22px 16px}}

.weight-chart{width:100%;overflow:auto}.weight-chart svg{display:block;width:100%;min-width:550px;height:auto}.photo-pair{display:grid;grid-template-columns:1fr 1fr;gap:16px}.photo-pair figure{margin:0;min-width:0;background:var(--surface-2);border-radius:12px;padding:12px}.photo-pair img{display:block;width:100%;max-height:560px;object-fit:contain;margin-top:10px}.photo-pair figcaption,.photos figcaption{font-size:14px;margin:5px 0}.pdf-link{display:block;padding:22px;border:1px solid var(--border);border-radius:8px}.photo-pair .empty{padding:24px 8px;font-size:14px}@media(max-width:720px){.photo-pair{gap:8px}.photo-pair figure{padding:6px}}

.client-prices{border-top:1px solid var(--border);margin-top:24px;padding-top:20px}.client-prices>button{margin-top:16px}.mailing-entry{border-top:1px solid var(--border);padding:24px 0}.mailing-photo{display:block;max-width:100%;width:320px;max-height:360px;object-fit:contain;border-radius:12px;margin:12px 0}.mailing-preview{padding:16px;background:var(--surface-2);border-radius:12px;margin:16px 0}.mailing-counts{flex-wrap:wrap;margin-top:16px}.program-status{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:0 0 20px}.program-status>div{padding:14px;background:var(--surface-2);border-radius:9px}.program-status span,.program-status strong{display:block}.program-status strong{margin-top:6px}.training-program-card details{border-top:1px solid var(--border);padding:14px 0}.training-program-card summary{cursor:pointer;font-weight:700}.training-program-card details .program-card{padding:14px 0 2px}.program-actions{margin-top:18px}.training-day{border:1px solid var(--border);border-radius:12px;padding:18px;margin:18px 0;display:grid;gap:15px}.training-day .card-head{margin-bottom:0}.client-program{border-top:1px solid var(--border);margin-top:22px;padding:20px 0 10px}@media(max-width:720px){.program-status{grid-template-columns:1fr}.training-day{padding:14px}.training-day .card-head .actions button{padding:7px 10px}}

.client-summary{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin:16px 0}.client-summary strong{display:block;margin-top:5px;overflow-wrap:anywhere}.progress-report{border-top:1px solid var(--border);padding:14px 0}.progress-report summary,details.card>summary{cursor:pointer;font-weight:650;line-height:1.6}details.card>summary{font-size:20px;margin-bottom:12px}.progress-report .report-text{padding:14px 0}.weight-chart svg{min-width:0}.client-summary+.actions{flex-wrap:wrap}@media(max-width:720px){.client-summary{grid-template-columns:1fr}.photo-pair{grid-template-columns:1fr}.weight-chart svg{min-width:320px}}

/* Compact program editor: native details keep keyboard/touch disclosure accessible. */
button{background:var(--surface-2)}button.primary,button.lime{color:var(--bg)}
button.primary:hover,button.lime:hover{background:var(--accent-hover);border-color:var(--accent-hover)}
button.danger:hover{background:var(--danger-soft)}
button:focus-visible,summary:focus-visible,a:focus-visible{outline:2px solid var(--accent)}
input:focus,select:focus,textarea:focus{outline:2px solid var(--accent-soft);border-color:var(--accent)}
input,select,textarea{background:var(--surface-2)}
dialog{background:var(--surface);color:var(--text);box-shadow:0 12px 36px #00000030}
.weight-chart svg{min-width:0}.weight-chart svg text{fill:var(--text-muted)}
#plan-editor{--editor-radius:10px;min-width:0}
#plan-editor .form-grid{gap:10px;grid-template-columns:repeat(2,minmax(0,1fr))}
#plan-editor label{gap:5px;font-size:13px;min-width:0}
#plan-editor input,#plan-editor textarea,#plan-editor select{min-width:0;max-width:100%;padding:9px 10px}
#plan-editor textarea{min-height:64px;line-height:1.4}
#plan-editor .plan-import textarea{min-height:110px;max-height:260px}
#plan-editor .plan-metadata{margin-bottom:14px}
.plan-day-shell{position:relative;border:1px solid var(--border);border-radius:var(--editor-radius);margin:8px 0;background:var(--surface)}
.plan-day>summary{display:flex;flex-direction:column;gap:3px;cursor:pointer;padding:12px 54px 12px 12px;min-height:54px;font-weight:650}
.plan-day>summary::-webkit-details-marker,.exercise-editor>summary::-webkit-details-marker,.plan-menu>summary::-webkit-details-marker{display:none}
.plan-day>summary::before{content:'›';position:absolute;right:52px;top:14px;color:var(--text-muted)}
.plan-day[open]>summary::before{content:'⌄'}
.plan-day-content{padding:0 12px 12px;min-width:0}
.plan-import{margin:10px 0;border:1px solid var(--border);border-radius:8px;padding:0 10px;background:var(--surface-2)}
.plan-import>summary{cursor:pointer;min-height:44px;padding:12px 0;font-size:14px;color:var(--accent-hover)}
.plan-import .actions{gap:6px;padding:8px 0 10px}.plan-import button{font-size:13px;padding:8px;min-height:44px}
.plan-import .plan-secondary{font-size:12px;font-weight:500;background:transparent;border-color:transparent;color:var(--text-muted)}
.exercise-card{position:relative;border:1px solid var(--border);border-radius:var(--editor-radius);margin:8px 0;background:var(--surface-2);min-width:0}
.exercise-editor>summary{display:grid;gap:3px;cursor:pointer;padding:10px 48px 10px 10px;min-height:60px;list-style:none}
.exercise-editor>summary strong{font-size:14px;line-height:1.4;font-weight:650;overflow-wrap:anywhere}
.exercise-editor>summary .muted{font-size:13px;color:var(--text-muted)}
.exercise-comment{color:var(--muted);font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}
.exercise-edit-label{font-size:12px;color:var(--accent-hover)}.exercise-media{font-size:12px}
.exercise-editor>.form-grid{padding:0 10px 12px}
.plan-menu{position:absolute;right:4px;top:4px;z-index:2}
.plan-menu[open]{z-index:5}
.plan-menu>summary{display:flex;align-items:center;justify-content:center;width:44px;height:44px;cursor:pointer;list-style:none;font-size:25px;border-radius:8px;color:var(--text-muted)}
.plan-menu>summary:hover,.plan-menu[open]>summary{background:var(--surface-2);color:var(--accent-hover)}
.plan-menu-items{position:absolute;right:0;top:44px;width:min(220px,calc(94vw - 42px));padding:5px;border:1px solid var(--border);background:var(--surface-2);border-radius:10px;box-shadow:0 8px 20px #00000030;display:grid;gap:2px}
.plan-menu-items button{width:100%;min-height:44px;text-align:left;font-size:13px;padding:8px 10px;background:transparent;border-color:transparent;font-weight:500}
.plan-menu-items button:hover{background:var(--surface)}
.plan-add-actions{display:flex;gap:8px;align-items:flex-start;flex-wrap:wrap;margin-top:8px}
.plan-add-actions>button,.plan-source-block>summary{min-height:44px;padding:10px;font-size:13px;border:1px solid var(--border);border-radius:8px;font-weight:500;cursor:pointer;color:var(--text-muted)}
.plan-source-block{min-width:0;flex:1}.plan-source-block>summary{width:fit-content;list-style:none}
.plan-source-block[open]{flex-basis:100%}.plan-source-block label{margin-top:10px}
.source-exercises{display:flex;gap:6px;flex-wrap:wrap}.source-exercises h4{width:100%}.source-exercises button{min-height:44px;max-width:100%;overflow-wrap:anywhere;font-size:13px}
#plan-editor .plan-save{position:sticky;bottom:-28px;padding:12px 0;margin-top:12px;background:var(--surface);border-top:1px solid var(--border);z-index:6;flex-wrap:wrap}
#plan-editor .plan-save button{min-height:44px;max-width:100%;font-size:14px}
#plan-editor summary{overflow-wrap:anywhere}#plan-editor .error:empty{min-height:0}
@media(max-width:720px){#plan-editor .plan-save{bottom:-22px}#plan-editor .plan-save .primary{flex:1}#plan-editor .form-grid{grid-template-columns:1fr}#plan-editor .plan-metadata{gap:8px}.plan-day-content{padding:0 10px 10px}}


/* Compact package controls share the existing modal and save lifecycle. */
.package-modes{display:flex;gap:8px}.package-modes button{flex:1;min-height:44px}
.package-stepper{display:grid;grid-template-columns:44px minmax(0,1fr) 44px;gap:10px;margin-top:8px}
.package-stepper button{padding:8px;min-height:44px;font-size:22px}.package-stepper input{min-width:0;text-align:center}
