:root{--bg:#f5f7f6;--card:#fff;--ink:#17231f;--muted:#68756f;--brand:#197a59;--brand2:#dff3e9;--danger:#b53030;--line:#dde5e1;--shadow:0 8px 28px rgba(23,35,31,.07)}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font:16px/1.5 system-ui,-apple-system,Segoe UI,sans-serif}a{color:var(--brand);text-decoration:none}a:hover{text-decoration:underline}.topbar{height:70px;background:#123c30;color:#fff;display:flex;align-items:center;padding:0 max(20px,calc((100vw - 1180px)/2));gap:28px}.brand{color:#fff;font-size:24px;font-weight:800;white-space:nowrap}.brand span{font-size:16px;font-weight:600}.topbar nav{display:flex;align-items:center;gap:22px;margin-left:auto}.topbar nav a,.topbar .link{color:#eaf7f1}.topbar form{margin:0}.menu-toggle{display:none;margin-left:auto;background:transparent;padding:6px}.container{width:min(1180px,calc(100% - 32px));margin:34px auto;min-height:calc(100vh - 164px)}.auth-container{display:grid;place-items:center}.card{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:24px;box-shadow:var(--shadow);margin-bottom:20px}.auth-card{width:min(440px,100%)}h1{font-size:clamp(28px,4vw,42px);line-height:1.1;margin:.2em 0 .6em}h2{margin-top:0;font-size:22px}h3{margin:.7em 0 .25em}.page-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:22px}.page-head h1{margin:0}.eyebrow{text-transform:uppercase;letter-spacing:.12em;color:var(--brand);font-weight:800;font-size:12px}.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:20px}.stats .card{display:flex;flex-direction:column}.stats span,.muted{color:var(--muted)}.stats strong{font-size:24px;margin:8px 0}.shortcuts a{color:var(--ink);display:flex;flex-direction:column}.shortcuts span{color:var(--muted);margin-top:8px}.profile-grid{grid-template-columns:minmax(240px,1fr) 3fr}.wide{grid-column:auto}.avatar{display:block;width:180px;height:180px;border-radius:50%;object-fit:cover;margin:10px auto 20px}.goal-photo{display:block;max-width:320px;max-height:320px;object-fit:cover;border-radius:12px;margin:15px 0}.photo-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:20px}.photo-grid img{width:100%;height:250px;object-fit:cover;border-radius:10px}.form-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:16px}.full{grid-column:1/-1}.inline-form{display:flex;align-items:end;gap:14px;flex-wrap:wrap}.inline-form label{flex:1;min-width:150px}label{display:block;font-weight:650;margin-bottom:14px}label small{font-weight:400;color:var(--muted)}input,select,textarea{display:block;width:100%;margin-top:6px;padding:11px 12px;border:1px solid #bbc9c2;border-radius:8px;background:#fff;color:var(--ink);font:inherit}textarea{resize:vertical}button,.button{display:inline-block;border:0;border-radius:8px;background:var(--brand);color:#fff;padding:11px 17px;font:inherit;font-weight:700;cursor:pointer}.button:hover{color:#fff;text-decoration:none;filter:brightness(.93)}button.secondary{background:#eef2f0;color:var(--ink)}button.link{background:none;padding:0;color:var(--brand);font-weight:500}.danger{color:var(--danger)!important}.actions{display:flex;align-items:center;gap:14px;flex-wrap:wrap}.actions form{margin:0}.tabs{display:flex;gap:8px;overflow-x:auto;margin-bottom:20px}.tabs a{padding:8px 13px;background:#e9efec;border-radius:999px;white-space:nowrap;color:var(--ink)}.tabs a.active{background:var(--brand);color:#fff}.alert{padding:13px 16px;border-radius:9px;margin-bottom:18px}.alert.success{background:#dcf5e8;color:#14563f}.alert.error{background:#fbe2e2;color:#872626}.table-wrap{overflow-x:auto}table{width:100%;border-collapse:collapse}th,td{text-align:left;padding:12px;border-bottom:1px solid var(--line)}th{color:var(--muted);font-size:13px;text-transform:uppercase}.badge{display:inline-block;background:var(--brand2);color:#155b44;border-radius:999px;padding:4px 9px;font-size:12px;font-weight:800}.badge.active{background:#d8f4e1}.badge.archived{background:#e5e5e5;color:#555}.badge.paused{background:#fff1c8;color:#735700}.availability>div{display:grid;grid-template-columns:180px 130px 1fr;gap:15px;align-items:center;padding:10px 0;border-bottom:1px solid var(--line)}.check{display:inline-flex;align-items:center;gap:8px;margin-right:18px;font-weight:500}.check input{width:auto;margin:0}.checks{display:flex;flex-wrap:wrap;gap:12px}fieldset{border:1px solid var(--line);border-radius:10px;padding:16px;margin:18px 0}legend{font-weight:750;padding:0 6px}.file-list{list-style:none;padding:0}.file-list li{display:flex;gap:15px;align-items:center;padding:10px;border-bottom:1px solid var(--line)}.file-list li span{margin-left:auto;color:var(--muted)}.answer{padding:12px 0;border-bottom:1px solid var(--line)}.empty{text-align:center;padding:70px 20px}.empty>div{font-size:48px}.exercise-grid details{border-top:1px solid var(--line);padding-top:12px}footer{text-align:center;color:var(--muted);padding:20px}.menu-toggle{border:0;color:#fff}
@media(max-width:760px){.menu-toggle{display:block}.topbar nav{display:none;position:absolute;top:70px;left:0;right:0;background:#123c30;padding:20px;z-index:10;flex-direction:column;align-items:flex-start}.topbar nav.open{display:flex}.container{margin-top:22px}.profile-grid,.form-grid{grid-template-columns:1fr}.availability>div{grid-template-columns:1fr}.page-head{align-items:flex-start;gap:15px}.brand span{display:none}.card{padding:18px}.table-wrap table{min-width:650px}}
.program-list{display:grid;gap:10px}.program-row{display:grid;grid-template-columns:60px 1fr auto;gap:14px;align-items:center;padding:14px;border:1px solid var(--line);border-radius:10px;color:var(--ink)}.program-row:hover{text-decoration:none;background:#f7faf8}.program-row small{display:block;color:var(--muted)}.version{display:grid;place-items:center;width:46px;height:46px;border-radius:50%;background:var(--brand2);font-weight:800}.program-day>header{display:flex;justify-content:space-between;gap:20px;border-bottom:1px solid var(--line);margin-bottom:12px}.day-order{font-size:12px;color:var(--muted);text-transform:uppercase}.prescription-list{padding-left:28px}.prescription-list>li{padding:14px 4px;border-bottom:1px solid var(--line);display:flex;justify-content:space-between;gap:20px}.prescription-list p{margin:.25em 0}.editor{margin-top:16px;background:#f7faf8;border-radius:10px;padding:12px}.editor>summary,.scheduler>summary{cursor:pointer;font-weight:800}.target-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-top:16px}.span-2{grid-column:span 2}.program-actions{margin-bottom:25px}.calendar-head{justify-content:center;gap:30px}.button.secondary{background:#e7eeea;color:var(--ink)}.calendar{display:grid;grid-template-columns:repeat(7,1fr)}.weekdays b{text-align:center;padding:8px;color:var(--muted)}.month-grid{border-left:1px solid var(--line);border-top:1px solid var(--line);background:#fff}.calendar-day{min-height:125px;padding:7px;border-right:1px solid var(--line);border-bottom:1px solid var(--line)}.calendar-day.outside{background:#f2f3f2;color:#a5ada9}.calendar-day.today{box-shadow:inset 0 0 0 2px var(--brand)}.day-number{display:block;font-weight:800;margin-bottom:5px}.calendar-event{display:block;background:#e8eef5;color:#263b53;border-left:3px solid #587694;border-radius:5px;padding:5px;margin:4px 0;font-size:12px}.calendar-event small{display:block}.calendar-event.rescheduled{background:#fff1c8;border-color:#ae7e00;color:#665000}.calendar-event.cancelled{background:#eee;color:#666;border-color:#999;text-decoration:line-through}.workout-detail>ol{padding-left:30px}.workout-detail li{padding:10px}.target-summary{font-weight:750;color:var(--brand)}
@media(max-width:760px){.target-grid{grid-template-columns:1fr 1fr}.calendar.weekdays{display:none}.calendar.month-grid{display:block;border:0;background:transparent}.calendar-day{min-height:0;border:0;border-bottom:1px solid var(--line);padding:12px;background:#fff!important}.calendar-day.outside:not(:has(.calendar-event)),.calendar-day:not(:has(.calendar-event)){display:none}.calendar-day.today{box-shadow:inset 3px 0 var(--brand)}.program-row{grid-template-columns:50px 1fr}.program-row .badge{grid-column:2}.program-day>header,.prescription-list>li{flex-direction:column}.span-2{grid-column:1/-1}}
.workout-cta{display:block;width:min(520px,100%);margin:20px auto;padding:18px;text-align:center;text-transform:uppercase;font-size:20px}.workout-choice{max-width:850px;margin:8vh auto;text-align:center}.workout-choice>p:not(.eyebrow){font-size:22px}.choice-grid{display:grid;grid-template-columns:1fr 1fr;gap:22px;margin:35px 0}.choice-grid button{width:100%;min-height:150px;font-size:24px;text-transform:uppercase}.choice-grid small{display:block;font-size:15px;text-transform:none;margin-top:10px}.live-shell{max-width:1050px;margin:0 auto}.live-header,.live-nav,.live-footer{display:flex;justify-content:space-between;align-items:center;gap:18px;padding:14px 4px;font-size:18px}.live-panel{background:#fff;border:1px solid var(--line);border-radius:20px;padding:clamp(22px,5vw,55px);box-shadow:var(--shadow)}.live-panel>h1{font-size:clamp(38px,7vw,76px);text-transform:uppercase;margin:.1em 0 .35em}.live-target{display:flex;flex-direction:column;background:var(--brand2);border-radius:14px;padding:18px 22px;margin-bottom:25px}.live-target span{text-transform:uppercase;font-size:13px;letter-spacing:.12em}.live-target strong{font-size:clamp(21px,3vw,32px)}.live-fields{display:grid;grid-template-columns:repeat(2,1fr);gap:16px}.live-fields label{font-size:18px}.live-fields label>span{font-size:13px;color:var(--muted)}.live-fields input{font-size:28px;min-height:64px}.live-fields textarea{font-size:19px}.live-fields button,.live-primary,.live-secondary,.live-complete,.live-extra{grid-column:1/-1;width:100%;min-height:72px;font-size:clamp(18px,3vw,26px);text-transform:uppercase}.live-primary{background:#e25d2f}.live-complete{background:#237a49}.live-extra{background:#e7eeea;color:var(--ink)}.live-danger{background:#fff;color:#a52f2f;border:1px solid #d86a6a;margin-top:12px}.completed-sets{margin-top:28px}.live-set-editor{border-top:1px solid var(--line);padding:10px 0}.live-set-editor summary{cursor:pointer;display:grid;grid-template-columns:auto 1fr auto;gap:12px;align-items:center;font-size:18px}.live-set-editor summary span{color:var(--muted)}.live-set-editor summary em{color:var(--brand);font-style:normal;font-weight:750}.live-set-editor .live-fields{padding:18px 0}.rest-panel{text-align:center;background:#173e34;color:#fff;border-radius:18px;padding:25px;margin:20px 0}.rest-panel>p{text-transform:uppercase;letter-spacing:.15em;font-size:20px;margin:0}.timer-value{font-variant-numeric:tabular-nums;font-size:clamp(72px,14vw,150px);font-weight:800;line-height:1.1}.timer-status{font-size:20px;margin-bottom:20px}.rest-panel.rest-finished{background:#3f4b48}.live-secondary{background:#fff;color:#173e34}.during-rest{border:2px solid var(--line);border-radius:14px;padding:20px}.live-next{text-align:center;padding:35px 0}.live-next .button,.live-next form{display:block;margin:14px auto}.live-next .button{padding:20px}.exercise-help{margin-top:30px;border-top:1px solid var(--line);padding-top:16px}.exercise-help summary{cursor:pointer;font-weight:750}.live-footer{justify-content:center}.post-exercise h2{font-size:28px}.post-set{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;border-top:1px solid var(--line);padding:18px 0}.post-set .set-label{grid-column:1/-1;font-size:20px;font-weight:800}.post-set button{align-self:end}.difficulty-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:10px;margin:20px 0}.difficulty-grid label{border:1px solid var(--line);border-radius:9px;padding:14px;text-align:center}.difficulty-grid input{width:auto;display:inline}.compare{display:grid;grid-template-columns:1fr 1fr;gap:20px}.compare>div{background:#f5f7f6;border-radius:10px;padding:16px}.compare span{text-transform:uppercase;color:var(--muted);font-size:12px;font-weight:800}.badge.in_progress{background:#dbeafe;color:#174582}.badge.completed{background:#d9f7df;color:#1c6231}.badge.skipped{background:#fde4e4;color:#8b2929}.calendar-event.in_progress{background:#dbeafe;border-color:#2563a8}.calendar-event.completed{background:#d9f7df;border-color:#258843}.calendar-event.skipped{background:#fde4e4;border-color:#b83838;text-decoration:line-through}
@media(max-width:900px){.post-set{grid-template-columns:1fr 1fr}.difficulty-grid{grid-template-columns:1fr 1fr}.choice-grid{grid-template-columns:1fr}.live-panel{border-radius:12px}.compare{grid-template-columns:1fr}}
@media(max-width:520px){.live-fields,.post-set{grid-template-columns:1fr}.live-fields .span-2{grid-column:1}.live-header{font-size:14px}.live-panel>h1{font-size:36px}.timer-value{font-size:72px}.live-nav a{padding:12px}.difficulty-grid{grid-template-columns:1fr}}
.calendar-event.partial{background:#ffead1;border-color:#c46a13;color:#713a08}.calendar-event.check-event{background:#eee8fa;border-color:#7452a6;color:#49336d}.calendar-event.check-event.completed{background:#dcd2ef;border-color:#5d3b8f;color:#3f2862}.calendar-event.check-event.rescheduled{background:#fff1c8;border-color:#ae7e00;color:#665000}.calendar-event.check-event.skipped{background:#f4dce7;border-color:#a33e69;color:#762545;text-decoration:line-through}.calendar-event.check-event.cancelled{background:#eee;color:#666;border-color:#999;text-decoration:line-through}.badge.rescheduled{background:#fff1c8;color:#665000}.badge.skipped{background:#fde4e4;color:#8b2929}.checkpoint-create-grid{grid-template-columns:1fr 1fr}.measurement-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:12px;margin-bottom:18px}.measurement-grid label span{color:var(--muted);font-size:12px}.photo-protocol{background:#f3f6f5;border-radius:10px;padding:14px;margin-bottom:18px}.photo-protocol ul{margin-bottom:0}.checkpoint-photo-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.checkpoint-photo-grid article,.checkpoint-photo-grid>div{min-width:0}.checkpoint-photo-grid img,.photo-pair img{width:100%;aspect-ratio:3/4;object-fit:cover;border-radius:10px}.photo-missing{display:grid;place-items:center;min-height:180px;background:#eef1f0;color:var(--muted);border-radius:10px;text-align:center;padding:15px}.progress-filters{display:flex;align-items:end;gap:16px}.progress-filters label{flex:1}.progress-nav{position:sticky;top:72px;z-index:4;display:flex;gap:8px;background:#f5f7f6;padding:10px 0;margin-bottom:24px}.progress-nav a{background:#fff;border:1px solid var(--line);border-radius:999px;padding:9px 16px}.section-head{display:flex;justify-content:space-between;align-items:center}.body-progress{grid-template-columns:repeat(5,1fr)}.body-progress strong{display:block;font-size:21px}.charts-grid{grid-template-columns:1fr 1fr}.progress-chart{width:100%;height:auto;overflow:visible}.progress-chart line{stroke:#bdc9c4;stroke-width:1}.progress-chart polyline{fill:none;stroke:#187052;stroke-width:4;stroke-linecap:round;stroke-linejoin:round}.progress-chart circle{fill:#e25d2f;stroke:#fff;stroke-width:2}.progress-chart text{fill:#52645e;font-size:12px}.chart-empty{min-height:180px;display:grid;place-items:center;color:var(--muted)}#prestazioni,#costanza,#foto{scroll-margin-top:130px;margin-top:38px}.photo-history{display:grid;gap:16px}.checkpoint-photo-grid.compact img{aspect-ratio:3/4}.photo-compare>section{margin-top:24px}.photo-pair{display:grid;grid-template-columns:1fr 1fr;gap:18px}.dashboard-progress{grid-template-columns:1fr 1fr;margin:20px 0}
@media(max-width:900px){.measurement-grid{grid-template-columns:repeat(3,1fr)}.body-progress{grid-template-columns:repeat(3,1fr)}.checkpoint-create-grid{grid-template-columns:1fr}}
@media(max-width:760px){.checkpoint-photo-grid,.charts-grid,.dashboard-progress{grid-template-columns:1fr}.progress-filters{align-items:stretch;flex-direction:column}.progress-nav{overflow-x:auto}.body-progress{grid-template-columns:1fr 1fr}.photo-pair{grid-template-columns:1fr}.photo-pair img{aspect-ratio:3/4}.measurement-grid{grid-template-columns:1fr 1fr}}
@media(max-width:520px){.body-progress,.measurement-grid{grid-template-columns:1fr}.progress-nav a{white-space:nowrap}.checkpoint-photo-grid.compact{grid-template-columns:1fr}}
.phase5-dashboard{max-width:980px;margin:auto}.journey-strip{display:flex;justify-content:space-between;align-items:center;background:#173e34;color:#fff}.journey-strip a{color:#fff}.dashboard-focus{padding:clamp(24px,5vw,52px)}.dashboard-focus h2{font-size:clamp(28px,5vw,46px)}.dashboard-sections,.journey-current,.decision-grid,.modify-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px}.journey-summary{display:flex;justify-content:space-between;align-items:center;gap:24px}.journey-summary h2{margin-bottom:4px}.decision-card{max-width:860px;margin:auto}.decision-grid details>summary{list-style:none;text-align:center;cursor:pointer}.danger-zone{margin-top:24px;padding-top:20px;border-top:1px solid var(--line)}.modify-grid>a{color:var(--ink)}.modify-grid>a:hover{text-decoration:none;border-color:var(--brand)}.status-actions{margin-top:26px;padding-top:20px;border-top:1px solid var(--line)}.before-after{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin:20px 0}.before-after>div{background:#f4f7f5;border-radius:12px;padding:18px}.before-after span,.impact-grid span{display:block;color:var(--muted);text-transform:uppercase;font-size:12px;font-weight:800}.impact-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin:24px 0}.impact-grid>div{padding:18px;background:#eef4f1;border-radius:10px}.impact-grid strong{display:block;font-size:28px}.timeline{position:relative;max-width:850px}.timeline-item{display:grid;grid-template-columns:130px 1fr;gap:24px}.timeline-item time{font-weight:800;color:var(--brand)}.timeline-item h2{font-size:19px}.wizard-steps{display:grid;grid-template-columns:repeat(10,1fr);gap:6px;margin-bottom:22px;overflow-x:auto}.wizard-steps a{min-width:82px;padding:9px 6px;border-radius:9px;text-align:center;background:#e9efec;color:var(--ink)}.wizard-steps a b,.wizard-steps a span{display:block}.wizard-steps a span{font-size:11px}.wizard-steps a.active{background:var(--brand);color:#fff}.wizard-panel{min-height:300px}.wizard-next{margin-top:35px;padding-top:20px;border-top:1px solid var(--line)}.calendar-event.suspended,.badge.suspended{background:#e8e8e8;border-color:#777;color:#555}.journey-actions{margin-bottom:20px}
@media(max-width:900px){.wizard-steps{grid-template-columns:repeat(5,1fr)}.impact-grid{grid-template-columns:1fr 1fr 1fr}}
@media(max-width:760px){.dashboard-sections,.journey-current,.decision-grid,.modify-grid,.before-after{grid-template-columns:1fr}.journey-strip,.journey-summary{align-items:flex-start;flex-direction:column}.impact-grid{grid-template-columns:1fr}.timeline-item{grid-template-columns:1fr;gap:5px}.wizard-steps{grid-template-columns:repeat(10,82px)}.preview-summary .actions>*{width:100%;text-align:center}}
.ai-orb{display:grid;place-items:center;width:54px;height:54px;border-radius:18px;background:linear-gradient(135deg,#173e34,#2aa879);color:#fff;font-weight:900;box-shadow:0 8px 24px rgba(25,122,89,.25)}.ai-hero{display:flex;justify-content:space-between;align-items:center;gap:30px;background:linear-gradient(135deg,#eefaf5,#fff)}.ai-hero>div:first-child{display:grid;grid-template-columns:auto 1fr;gap:0 18px;align-items:center}.ai-hero h2,.ai-hero p{grid-column:2}.ai-levels{display:flex;gap:8px;flex-wrap:wrap}.ai-levels span,.ai-levels b{padding:8px 12px;border-radius:999px;background:#e6f2ed;font-size:13px}.ai-levels b{background:#173e34;color:#fff}.ai-actions{grid-template-columns:repeat(3,1fr)}.ai-dashboard-card,.checkpoint-ai{display:flex;justify-content:space-between;align-items:center;gap:20px}.ai-dashboard-card>div,.checkpoint-ai>div{flex:1}.ai-insight{border-left:5px solid var(--brand)}.program-preview-ai{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:18px}.program-preview-ai .card{margin:0}.program-preview-ai ol{padding-left:22px}.program-preview-ai li{padding:10px 0;border-bottom:1px solid var(--line)}.program-preview-ai li span{display:block;color:var(--muted)}.ai-motivation{grid-column:1/-1;font-size:18px}.proposal-list{display:grid;gap:16px}.proposal-change{display:grid;grid-template-columns:1fr auto 1fr;gap:20px;align-items:center;padding:16px;background:#f4f7f5;border-radius:12px}.proposal-change div{display:flex;flex-direction:column}.proposal-change small{color:var(--muted);text-transform:uppercase}.decision-actions{justify-content:flex-end;position:sticky;bottom:12px;background:#fff;padding:14px;border-radius:12px;box-shadow:var(--shadow)}.ai-metric-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:14px}.ai-metric-grid article{display:flex;flex-direction:column}.ai-metric-grid strong{font-size:28px;color:var(--brand)}.assistant-thread{min-height:320px}.assistant-empty{text-align:center;display:grid;place-items:center}.message{max-width:78%;padding:14px 18px;border-radius:14px;margin:12px 0}.message.user{margin-left:auto;background:#173e34;color:#fff}.message.assistant{background:#e8f3ee}.message p{margin:.3em 0}.assistant-form{position:sticky;bottom:10px}.checkpoint-ai{background:linear-gradient(135deg,#eefaf5,#fff)}
@media(max-width:900px){.ai-actions{grid-template-columns:1fr 1fr}.ai-hero{align-items:flex-start;flex-direction:column}.proposal-change{grid-template-columns:1fr}.proposal-change>strong{transform:rotate(90deg);justify-self:start}}
@media(max-width:600px){.ai-actions{grid-template-columns:1fr}.ai-dashboard-card,.checkpoint-ai{align-items:flex-start;flex-direction:column}.message{max-width:92%}.decision-actions{position:static}.ai-hero>div:first-child{display:block}.ai-hero h2{margin-top:14px}}
.admin-topbar{background:#172033}.admin-nav{display:flex;gap:.45rem;overflow-x:auto;margin:0 0 1.5rem;padding:.55rem;border-radius:14px;background:#172033}.admin-nav a{color:#fff;white-space:nowrap;padding:.65rem .85rem;border-radius:9px;text-decoration:none}.admin-nav a:hover{background:#2c3955}.admin-kpis{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem;margin-bottom:1.5rem}.admin-kpis article{display:flex;flex-direction:column;gap:.35rem}.admin-kpis strong{font-size:clamp(1.7rem,4vw,2.5rem);color:#293f88}.filter-bar{display:grid;grid-template-columns:2fr 1fr 1fr auto;align-items:end;gap:1rem}.table-wrap{overflow-x:auto}.table-wrap table{min-width:760px;width:100%;border-collapse:collapse}.table-wrap th,.table-wrap td{text-align:left;padding:.75rem;border-bottom:1px solid #e3e7ef;vertical-align:top}.table-wrap td small{display:block;color:#687188}.admin-detail{grid-template-columns:repeat(3,1fr)}.admin-preview{display:block;max-width:100%;max-height:320px;object-fit:contain;border-radius:12px;background:#eef1f6}.admin-gallery{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:1rem}.admin-gallery img{width:100%;height:180px;object-fit:contain;background:#eef1f6;border-radius:10px}.content-admin-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:1rem}.admin-content form{margin-top:1rem}.status-dot{display:inline-block;width:.7rem;height:.7rem;border-radius:50%;background:#d18c24}.status-dot.ok{background:#23965b}.badge.review{background:#fff1cc;color:#7b5700}.badge.removed,.badge.disabled{background:#ffe1e1;color:#8a1f1f}.badge.ok{background:#ddf5e7;color:#176c42}.period-tabs{display:flex;gap:.5rem;margin-bottom:1rem;overflow:auto}.period-tabs a{white-space:nowrap;padding:.6rem .9rem;border:1px solid #ccd3df;border-radius:999px;text-decoration:none}.period-tabs a.active{background:#293f88;color:#fff}.system-grid{grid-template-columns:repeat(3,1fr)}dl{display:grid;grid-template-columns:auto 1fr;gap:.4rem 1rem}dt{font-weight:700}dd{margin:0}
@media(max-width:900px){.admin-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}.admin-detail,.system-grid{grid-template-columns:1fr}.filter-bar{grid-template-columns:1fr 1fr}.filter-bar button{width:100%}}
@media(max-width:520px){.admin-kpis,.filter-bar{grid-template-columns:1fr}.admin-nav{margin-inline:-.5rem}.table-wrap{margin-inline:-.25rem}.content-admin-grid{grid-template-columns:1fr}}

/* Rifinitura pre-collaudo: controlli coerenti, focus accessibile e branding. */
:root{--control-height:46px;--shadow:0 10px 30px rgba(23,35,31,.075)}
input:not([type="checkbox"]):not([type="radio"]),select,button,.button{min-height:var(--control-height)}
input,select,textarea,button,.button{transition:border-color .18s ease,box-shadow .18s ease,background-color .18s ease,transform .18s ease}
input:focus,select:focus,textarea:focus{outline:0;border-color:var(--brand);box-shadow:0 0 0 3px rgba(25,122,89,.16)}
a:focus-visible,button:focus-visible,summary:focus-visible{outline:3px solid rgba(43,184,134,.65);outline-offset:3px}
button:hover,.button:hover{transform:translateY(-1px)}button:active,.button:active{transform:none}
.topbar nav a{padding:9px 11px;border-radius:9px}.topbar nav a.active,.topbar nav a[aria-current="page"]{background:#fff;color:#123c30;text-decoration:none;box-shadow:0 0 0 2px rgba(255,255,255,.22)}.topbar nav a.admin-switch{border-left:1px solid rgba(255,255,255,.28);border-radius:0;padding-left:18px}.breadcrumbs{display:flex;align-items:center;gap:.55rem;margin:-.5rem 0 1.25rem;color:var(--muted);font-size:.92rem}.breadcrumbs a{font-weight:700}.breadcrumbs span[aria-current="page"]{color:var(--ink)}.context-banner{border-left:5px solid var(--brand);background:#edf8f3}.scope-choices{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem}.scope-choices a,.scope-choices button{height:100%;text-align:left}.danger-zone{border:1px solid #efb8b8;background:#fff8f8}.exercise-picker-results{display:grid;gap:.5rem;max-height:280px;overflow:auto;border:1px solid var(--line);border-radius:10px;padding:.65rem}.exercise-option{display:flex;align-items:flex-start;gap:.7rem;padding:.65rem;border-radius:8px}.exercise-option:hover{background:var(--brand2)}.exercise-option input{width:auto;margin:.25rem 0}.reset-preview-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.admin-nav a.active,.admin-nav a[aria-current="page"]{background:#fff;color:#172033}.temporary-availability{border-left:5px solid #d18c24}@media(max-width:760px){.scope-choices,.reset-preview-grid{grid-template-columns:1fr}.breadcrumbs{overflow-x:auto;white-space:nowrap}.topbar nav a.admin-switch{border-left:0;padding-left:11px}}
.inline-form>label,.filter-bar>label,.progress-filters>label{margin-bottom:0}.inline-form,.filter-bar,.progress-filters{align-items:end}
.inline-form input:not([type="hidden"]),.inline-form select,.inline-form>button,.filter-bar input:not([type="hidden"]),.filter-bar select,.filter-bar>button,.progress-filters input,.progress-filters select,.progress-filters>button{height:var(--control-height)}
.form-grid>button{align-self:end;justify-self:start}.card{box-shadow:var(--shadow)}.card:hover{border-color:#cbd9d2}
tbody tr:hover{background:#f6faf8}.alert{border:1px solid transparent;box-shadow:0 5px 16px rgba(23,35,31,.06)}.alert.success{border-color:#b7e6ce}.alert.error{border-color:#efbcbc}
.brand{display:flex;align-items:center;gap:10px}.brand img{width:auto;max-width:150px;height:42px;object-fit:contain}.brand-mark{display:grid!important;place-items:center;width:36px;height:36px;border-radius:10px;background:rgba(255,255,255,.16);font-size:18px!important;font-weight:850!important}.topbar nav a,.topbar .link{display:inline-flex;align-items:center;gap:6px}.topbar nav a:hover{color:#fff;text-decoration:none}
.auth-card{text-align:left;padding:clamp(24px,5vw,38px)}.auth-logo{display:block;max-width:210px;max-height:80px;object-fit:contain;margin:0 auto 24px}.auth-wordmark{text-align:center;color:var(--brand);font-weight:850;font-size:20px;margin-bottom:22px}
.branding-card{max-width:850px}.branding-preview{display:flex;align-items:center;gap:18px;margin-top:12px;padding:12px;background:#f4f7f5;border-radius:10px}.branding-preview img{max-width:190px;max-height:80px;object-fit:contain}.favicon-preview img{width:48px;height:48px}.branding-preview .check{margin:0}
.fa-solid{width:1.05em;text-align:center}
@media(max-width:760px){.brand img{max-width:120px}.topbar nav a,.topbar .link{min-height:40px}.form-grid>button{width:100%}.branding-preview{align-items:flex-start;flex-direction:column}}

/* Public authentication pages */
body.auth-public{min-height:100vh;background:linear-gradient(135deg,#f8f5ed 0%,#f4f5ee 48%,#e7f2ec 100%);color:#10231d}
.auth-public-header{width:min(1180px,calc(100% - 48px));height:84px;margin:auto;display:flex;align-items:center;justify-content:space-between;gap:24px}
.auth-public-brand{display:flex;align-items:center;gap:11px;color:#10231d;font-size:19px;font-weight:850}
.auth-public-brand:hover,.auth-public-back:hover{text-decoration:none}
.auth-public-brand>span{display:grid;place-items:center;width:38px;height:38px;border-radius:12px;background:var(--brand);color:#fff;font-weight:900}
.auth-public-brand img{display:block;max-width:190px;max-height:54px;object-fit:contain}
.auth-public-back{display:flex;align-items:center;gap:8px;color:#42574f;font-size:14px;font-weight:750}
.auth-public .auth-container{display:block;width:min(1180px,calc(100% - 48px));min-height:auto;margin:20px auto 0}
.auth-public .auth-container>.alert{width:min(540px,100%);margin:0 0 18px auto}
.auth-shell{display:grid;grid-template-columns:minmax(0,1.08fr) minmax(390px,.92fr);align-items:stretch;overflow:hidden;border:1px solid rgba(255,255,255,.75);border-radius:28px;background:rgba(255,255,255,.6);box-shadow:0 30px 90px rgba(18,56,45,.14)}
.auth-story{position:relative;min-height:650px;overflow:hidden;padding:64px 58px;color:#fff;background:linear-gradient(145deg,#103b30 0%,#0d4a39 58%,color-mix(in srgb,var(--brand) 78%,#143c31) 100%)}
.auth-story:before,.auth-story:after{content:"";position:absolute;border-radius:50%;border:1px solid rgba(255,255,255,.08)}
.auth-story:before{width:440px;height:440px;left:-230px;top:-235px}.auth-story:after{width:520px;height:520px;right:-285px;bottom:-315px}
.auth-story-kicker{position:relative;z-index:1;color:#acd8c6;font-size:11px;font-weight:850;letter-spacing:.16em}
.auth-story h1{position:relative;z-index:1;max-width:540px;margin:20px 0 18px;color:#fff;font:500 clamp(44px,4.5vw,68px)/1.02 Georgia,"Times New Roman",serif;letter-spacing:-.04em}
.auth-story>p{position:relative;z-index:1;max-width:540px;margin:0;color:#c5d9d1;font-size:17px;line-height:1.7}
.auth-story-points{position:relative;z-index:1;display:flex;flex-wrap:wrap;gap:10px;margin-top:28px}
.auth-story-points span{display:inline-flex;align-items:center;gap:8px;padding:8px 11px;border:1px solid rgba(255,255,255,.12);border-radius:999px;background:rgba(255,255,255,.06);color:#dfede7;font-size:12px;font-weight:650}
.auth-story-points i{color:#8fd0b6}
.auth-story-art{position:absolute;z-index:1;right:45px;bottom:45px;width:min(390px,72%)}
.auth-art-card{position:relative;padding:23px 24px;border:1px solid rgba(255,255,255,.65);border-radius:19px;background:#fff;color:#17362d;box-shadow:0 22px 55px rgba(3,25,18,.28);transform:rotate(-2deg)}
.auth-art-card small{display:block;color:#82928b;font-size:9px;font-weight:850;letter-spacing:.13em}.auth-art-card strong{display:block;margin:4px 0 15px;font-size:19px}.auth-art-card>span{display:flex;align-items:center;gap:9px;padding:13px;border-radius:11px;background:#e8f4ee;color:#185c46;font-size:13px;font-weight:800}
.auth-art-card>div{height:50px;margin-top:15px;display:flex;align-items:end;gap:8px}.auth-art-card>div i{display:block;flex:1;height:42%;border-radius:4px 4px 0 0;background:#bbdccd}.auth-art-card>div i:nth-child(2){height:68%}.auth-art-card>div i:nth-child(3){height:55%}.auth-art-card>div i:nth-child(4){height:82%}.auth-art-card>div i:nth-child(5){height:70%;background:var(--brand)}
.auth-art-badge{position:absolute;right:-18px;top:-19px;display:flex;align-items:center;gap:7px;padding:10px 13px;border-radius:12px;background:#fff;color:#25483d;box-shadow:0 13px 30px rgba(4,31,22,.2);font-size:11px;font-weight:800}.auth-art-badge i{display:grid;place-items:center;width:24px;height:24px;border-radius:50%;background:#e9f5ef;color:var(--brand)}
.auth-public .auth-card{width:auto;margin:0;padding:58px 56px;border:0;border-radius:0;background:#fff;box-shadow:none}
.auth-public .auth-card:hover{border-color:transparent}
.auth-card-heading>span{color:var(--brand);font-size:11px;font-weight:850;letter-spacing:.15em}.auth-card-heading h2{margin:8px 0 8px;font-size:clamp(31px,3vw,42px);line-height:1.1}.auth-card-heading p{margin:0 0 30px;color:#697870}
.auth-public .auth-card label{margin-bottom:17px;color:#2b3e37;font-size:14px}
.auth-public .auth-card input{margin-top:7px;padding:13px 14px;border-color:#cbd7d1;border-radius:10px;background:#fbfcfb}
.auth-public .auth-card input:focus{outline:3px solid color-mix(in srgb,var(--brand) 15%,transparent);border-color:var(--brand)}
.auth-submit{display:flex;width:100%;align-items:center;justify-content:center;gap:10px;margin-top:7px;padding:14px 18px;border-radius:10px;box-shadow:0 12px 26px color-mix(in srgb,var(--brand) 22%,transparent)}
.auth-recaptcha{max-width:100%;overflow:hidden;margin:3px 0 17px}.auth-help-links{display:flex;justify-content:space-between;gap:15px;margin-top:17px;font-size:13px}.auth-switch{margin:24px 0 0;padding-top:20px;border-top:1px solid #e6ece9;text-align:center;color:#6c7b74;font-size:14px}.auth-switch a,.auth-help-links a{font-weight:750}
.auth-page-footer{display:flex;justify-content:center;flex-wrap:wrap;gap:12px 28px;padding:28px 15px;color:#718078;font-size:12px}.auth-page-footer a{color:#4a6057;font-weight:700}
body.auth-public>footer{display:none}
.language-menu{position:relative;display:inline-block;margin:0}.language-menu summary{display:grid;place-items:center;width:40px;height:36px;padding:6px;border:1px solid rgba(100,125,115,.28);border-radius:999px;background:rgba(255,255,255,.76);list-style:none;cursor:pointer;user-select:none}.language-menu summary::-webkit-details-marker{display:none}.language-flag{display:block;width:23px;height:16px;border-radius:2px;object-fit:cover;box-shadow:0 0 0 1px rgba(20,35,30,.14)}.language-options{position:absolute;right:0;top:calc(100% + 8px);z-index:60;display:none;min-width:155px;padding:6px;border:1px solid var(--line);border-radius:12px;background:#fff;box-shadow:0 14px 38px rgba(20,48,39,.18)}.language-menu[open]>.language-options,.language-menu:hover>.language-options,.language-menu:focus-within>.language-options{display:grid}.language-options a{display:grid!important;grid-template-columns:27px 1fr;align-items:center;gap:9px;min-height:40px;padding:7px 9px!important;border-radius:8px;color:var(--ink)!important;font-size:13px;font-weight:750;white-space:nowrap}.language-options a:hover{background:var(--brand2);text-decoration:none}.auth-public-tools{display:flex;align-items:center;gap:20px}.topbar .language-menu summary{border-color:rgba(255,255,255,.2);background:rgba(255,255,255,.08)}
.preferred-language-field{display:flex;flex-direction:column;margin-bottom:14px;font-weight:650}.preferred-language-field>.field-label{margin-bottom:6px}.preferred-language-field>small{margin-top:5px;color:var(--muted);font-weight:400}.preferred-language-picker{position:relative}.preferred-language-picker summary{display:grid;grid-template-columns:27px 1fr auto;align-items:center;gap:9px;min-height:47px;padding:10px 12px;border:1px solid #bbc9c2;border-radius:8px;background:#fff;list-style:none;cursor:pointer}.preferred-language-picker summary::-webkit-details-marker{display:none}.preferred-language-picker summary i{font-size:10px;transition:transform .18s}.preferred-language-picker[open] summary i{transform:rotate(180deg)}.preferred-language-options{position:absolute;left:0;right:0;top:calc(100% + 6px);z-index:45;display:none;padding:6px;border:1px solid var(--line);border-radius:10px;background:#fff;box-shadow:0 12px 30px rgba(20,48,39,.16)}.preferred-language-picker[open]>.preferred-language-options{display:grid}.preferred-language-options label{display:grid;grid-template-columns:27px 1fr;align-items:center;gap:9px;margin:0;padding:9px;border-radius:7px;cursor:pointer}.preferred-language-options label:hover,.preferred-language-options label:has(input:checked){background:var(--brand2)}.preferred-language-options input{position:absolute;width:1px;height:1px;margin:0;opacity:0;pointer-events:none}
.language-options a.current{background:var(--brand2)}
@media(max-width:1100px){.topbar nav{gap:10px}.topbar nav>a{padding-inline:8px}}
@media(max-width:900px){.auth-shell{grid-template-columns:1fr}.auth-story{min-height:480px;padding:48px}.auth-story h1{max-width:680px}.auth-story>p{max-width:620px}.auth-story-art{width:330px}.auth-public .auth-card{padding:48px}}
@media(max-width:620px){.auth-public-header{width:calc(100% - 28px);height:70px}.auth-public-brand img{max-width:130px;max-height:42px}.auth-public-brand strong{font-size:15px}.auth-public-back{display:none}.auth-public-tools{gap:8px}.auth-public .auth-container{width:calc(100% - 24px);margin-top:10px}.auth-shell{border-radius:20px}.auth-story{min-height:0;padding:38px 27px 30px}.auth-story h1{font-size:41px}.auth-story>p{font-size:15px}.auth-story-points{display:none}.auth-story-art{position:relative;right:auto;bottom:auto;width:250px;margin:28px auto 0}.auth-art-card{padding:15px 17px}.auth-art-card>div{display:none}.auth-art-badge{right:-8px}.auth-public .auth-card{padding:35px 24px}.auth-card-heading p{margin-bottom:24px}.auth-help-links{flex-direction:column;text-align:center}.auth-recaptcha{margin-left:-3px}.auth-page-footer{flex-direction:column;align-items:center;text-align:center}}
.profile-readiness{padding:.65rem 1rem;border-radius:999px;font-weight:800}.profile-readiness.ready{background:#d9f7df;color:#176c42}.profile-readiness.incomplete{background:#fff1cc;color:#735700}.profile-sections{display:flex;gap:.5rem;overflow-x:auto;margin-bottom:1.4rem}.profile-sections a{white-space:nowrap;padding:.6rem .85rem;border:1px solid var(--line);background:#fff;border-radius:999px}.profile-current-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}.profile-current-grid>.card:first-child{grid-column:1/-1}.goal-current-photo{display:block;width:100%;max-width:280px;max-height:260px;object-fit:contain;border-radius:12px;margin:1rem 0}.missing-card ul{list-style:none;padding:0}.missing-card li{display:flex;justify-content:space-between;align-items:center;gap:1rem;padding:.75rem 0;border-bottom:1px solid var(--line)}.profile-drift{border-left:5px solid #d18c24}.profile-snapshot-summary{max-width:850px}.profile-snapshot-summary dl{grid-template-columns:180px 1fr}.diff-list{display:grid;gap:12px}.diff-list article{display:grid;grid-template-columns:1fr 1fr 1fr;gap:1rem;padding:1rem;background:#f4f7f5;border-radius:10px}.diff-list article div{display:flex;flex-direction:column}.diff-list span{font-size:12px;text-transform:uppercase;color:var(--muted)}
@media(max-width:760px){.profile-current-grid{grid-template-columns:1fr}.profile-current-grid>.card:first-child{grid-column:auto}.profile-readiness{border-radius:10px}.diff-list article{grid-template-columns:1fr}.profile-snapshot-summary dl{grid-template-columns:1fr}.missing-card li{align-items:flex-start;flex-direction:column}}
.profile-dashboard-strip{display:grid;grid-template-columns:1fr 1fr auto;align-items:center;gap:1rem}.profile-dashboard-strip p{margin:0 0 .25rem}@media(max-width:760px){.profile-dashboard-strip{grid-template-columns:1fr}}
.import-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px}.import-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-bottom:20px}.import-stats article span{display:block;color:var(--muted);font-size:12px;text-transform:uppercase;font-weight:800}.import-stats article strong{display:block;font-size:20px;margin-top:6px}.mapping-list{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-bottom:18px}.import-confirm{border-color:var(--brand)}
@media(max-width:760px){.import-grid,.import-stats,.mapping-list{grid-template-columns:1fr}.import-stats article{padding:16px}}
@media(max-width:980px){.menu-toggle{display:block}.topbar nav{display:none;position:absolute;top:70px;left:0;right:0;background:#123c30;padding:20px;z-index:20;flex-direction:column;align-items:flex-start}.topbar nav.open{display:flex}}
.sr-only{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}
.profile-shell{display:grid;grid-template-columns:220px minmax(0,1fr);gap:1.25rem;align-items:start}.profile-sidebar{display:flex;flex-direction:column;gap:.25rem;position:sticky;top:5.5rem;background:var(--surface,#fff);border:1px solid var(--border,#dfe5e2);border-radius:16px;padding:.65rem}.profile-sidebar a{display:block;padding:.7rem .8rem;border-radius:10px;text-decoration:none;color:inherit}.profile-sidebar a:hover,.profile-sidebar a.active{background:var(--primary-soft,#eaf5ef);color:var(--primary,#176b45);font-weight:700}.profile-content{min-width:0}
.profile-completeness{border-left:5px solid #d18c24}.profile-completeness-copy{display:flex;flex-direction:column;gap:.2rem}.profile-completeness ul{margin:.75rem 0;padding-left:1.25rem}.profile-completeness-progress{display:grid;gap:.3rem}.profile-completeness progress{display:block;width:100%;height:.8rem}.profile-completeness small{color:var(--muted)}
.progress-chart[data-progress-chart]{height:300px;overflow:hidden}.progress-chart .chart-loading{min-height:300px;display:grid;place-items:center;color:var(--muted)}
@media(max-width:760px){.profile-shell{display:block}.profile-sidebar{position:static;display:flex;flex-direction:row;overflow-x:auto;margin-bottom:1rem;scroll-snap-type:x proximity}.profile-sidebar a{flex:0 0 auto;white-space:nowrap;scroll-snap-align:start}}

/* Phase 2: authenticated application shell and dashboard */
body.app-authenticated{background:#f3f6f4}.app-shell{min-height:100vh}.app-sidebar{position:fixed;inset:0 auto 0 0;z-index:30;display:flex;width:264px;flex-direction:column;padding:26px 18px 20px;background:linear-gradient(175deg,#123c30 0%,#0d2d25 100%);color:#fff;box-shadow:8px 0 32px rgba(13,45,37,.08)}.app-sidebar-brand,.app-mobile-brand{display:flex;align-items:center;gap:12px;color:inherit;text-decoration:none;min-width:0}.app-sidebar-brand:hover,.app-mobile-brand:hover{text-decoration:none}.app-sidebar-brand img{width:42px;height:42px;border-radius:11px;object-fit:contain;background:#fff}.app-sidebar-brand .brand-mark,.app-mobile-brand .brand-mark{display:grid;place-items:center;width:40px;height:40px;border-radius:11px;background:#fff;color:var(--brand);font-size:20px;font-weight:900}.app-sidebar-brand strong{overflow:hidden;font-size:18px;text-overflow:ellipsis;white-space:nowrap}.primary-navigation{display:grid;gap:7px;margin-top:42px}.primary-navigation a{display:flex;align-items:center;gap:14px;min-height:48px;padding:0 15px;border-radius:12px;color:#c8ddd5;font-weight:720;transition:background .16s,color .16s,transform .16s}.primary-navigation a i{width:20px;text-align:center;font-size:17px}.primary-navigation a:hover{background:rgba(255,255,255,.08);color:#fff;text-decoration:none;transform:translateX(2px)}.primary-navigation a.active{background:#fff;color:#155e47;box-shadow:0 8px 24px rgba(0,0,0,.14)}.app-sidebar-footer{display:grid;gap:12px;margin-top:auto}.sidebar-admin-link,.sidebar-logout{display:flex;width:100%;align-items:center;gap:10px;padding:9px 11px;border-radius:9px;color:#c8ddd5;background:transparent;font-size:13px;font-weight:650}.sidebar-admin-link:hover,.sidebar-logout:hover{background:rgba(255,255,255,.08);color:#fff;text-decoration:none}.sidebar-account{display:grid;grid-template-columns:36px minmax(0,1fr) auto;align-items:center;gap:10px;padding:13px 10px;border-top:1px solid rgba(255,255,255,.12);border-bottom:1px solid rgba(255,255,255,.12)}.sidebar-avatar{display:grid;place-items:center;width:36px;height:36px;border-radius:50%;background:#2d8d6d;color:#fff;font-weight:850}.sidebar-account>span:nth-child(2){min-width:0}.sidebar-account strong,.sidebar-account small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sidebar-account strong{font-size:13px}.sidebar-account small{color:#a9c6bb;font-size:10px}.sidebar-account .language-menu summary{width:34px;height:32px;background:rgba(255,255,255,.08);border-color:rgba(255,255,255,.15)}.app-main{min-height:100vh;margin-left:264px}.app-content.container{width:min(1440px,calc(100% - 64px));min-height:100vh;margin:0 auto;padding:38px 0 48px}.app-mobile-header,.mobile-bottom-nav{display:none}
.fitness-dashboard{display:grid;gap:20px;max-width:1280px;margin:0 auto}.dashboard-welcome{display:flex;align-items:end;justify-content:space-between;gap:18px;padding:3px 2px 4px}.dashboard-welcome p{margin:0 0 3px;color:var(--brand);font-size:12px;font-weight:850;letter-spacing:.12em;text-transform:uppercase}.dashboard-welcome h1{margin:0;font-size:clamp(28px,3vw,40px)}.dashboard-welcome time{color:var(--muted);font-weight:700}.dashboard-card{position:relative;min-width:0;margin:0;padding:24px;border:1px solid #dae5e0;border-radius:18px;background:#fff;box-shadow:0 10px 32px rgba(15,54,43,.06)}.dashboard-card h2{margin:8px 0;font-size:clamp(20px,2vw,26px)}.dashboard-card p{color:var(--muted)}.dashboard-card-icon{display:grid;flex:0 0 auto;place-items:center;width:43px;height:43px;border-radius:13px;background:#e4f4ed;color:#187052;font-size:18px}.dashboard-card-label{margin:0!important;color:#496159!important;font-size:12px;font-weight:850;letter-spacing:.1em;text-transform:uppercase}.dashboard-card-head{display:flex;align-items:center;gap:12px;margin-bottom:15px}.dashboard-today{display:flex;align-items:center;gap:22px;padding:28px 30px;background:linear-gradient(112deg,#123c30,#1d7057);color:#fff;border:0}.dashboard-today .dashboard-card-icon{width:58px;height:58px;background:rgba(255,255,255,.13);color:#fff;font-size:23px}.dashboard-today .dashboard-card-label,.dashboard-today p{color:#d6e8e1!important}.dashboard-today h2{margin:5px 0 7px;font-size:clamp(25px,3vw,35px)}.dashboard-card-body{flex:1}.dashboard-meta{display:flex;flex-wrap:wrap;gap:8px 20px;margin:0 0 17px}.dashboard-meta span{white-space:nowrap}.dashboard-meta i{margin-right:5px}.dashboard-primary-action{background:#f47b45;color:#fff}.dashboard-today .dashboard-text-link{color:#fff}.dashboard-grid{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:20px}.dashboard-grid>.dashboard-card{grid-column:span 4;display:flex;flex-direction:column}.dashboard-grid>.dashboard-goal{grid-column:span 6}.dashboard-grid>.dashboard-calendar-progress{grid-column:span 6}.dashboard-grid>.dashboard-checkpoint,.dashboard-grid>.dashboard-improvement{grid-column:span 6}.dashboard-card .dashboard-text-link{display:inline-flex;align-items:center;gap:7px;margin-top:auto;padding-top:17px;font-weight:800}.dashboard-goal-photo{width:100%;max-width:340px;max-height:210px;margin:12px 0 15px;border-radius:13px;object-fit:cover}.dashboard-progress-value{display:flex;align-items:end;gap:12px;margin:7px 0 18px}.dashboard-progress-value strong{font-size:42px;line-height:1}.dashboard-progress-value span{color:var(--muted);font-size:14px}.dashboard-calendar-progress progress{width:100%;height:12px;overflow:hidden;border:0;border-radius:999px;background:#e5ebe8}.dashboard-calendar-progress progress::-webkit-progress-bar{background:#e5ebe8;border-radius:999px}.dashboard-calendar-progress progress::-webkit-progress-value{background:#2a9b72;border-radius:999px}.dashboard-calendar-progress progress::-moz-progress-bar{background:#2a9b72;border-radius:999px}.dashboard-date{display:flex;align-items:center;gap:8px}.dashboard-improvement{background:linear-gradient(145deg,#fff,#f2faf6)}.improvement-value{margin:4px 0!important;color:#1d7d5c!important;font-size:31px;font-weight:900}.dashboard-empty-value{margin:8px 0 4px;color:#5d6d67;font-size:18px;font-weight:750}
@media(max-width:1100px){.app-sidebar{width:224px}.app-main{margin-left:224px}.app-content.container{width:calc(100% - 40px)}.dashboard-grid>.dashboard-card{grid-column:span 6}}
@media(max-width:820px){body.app-authenticated{padding-bottom:72px}.app-sidebar{display:none}.app-main{margin-left:0}.app-mobile-header{position:sticky;top:0;z-index:25;display:flex;height:64px;align-items:center;justify-content:space-between;padding:0 18px;border-bottom:1px solid var(--line);background:rgba(255,255,255,.96);backdrop-filter:blur(12px)}.app-mobile-brand{color:var(--ink)}.app-mobile-brand img{width:36px;height:36px;object-fit:contain}.app-mobile-brand strong{max-width:180px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.app-mobile-tools{display:flex;align-items:center;gap:10px}.app-mobile-tools>a{display:grid;place-items:center;width:38px;height:38px;color:#36544a;font-size:23px}.app-content.container{width:calc(100% - 28px);padding:22px 0 30px}.mobile-bottom-nav{position:fixed;inset:auto 0 0;z-index:40;display:grid;grid-template-columns:repeat(5,1fr);height:70px;padding:6px max(7px,env(safe-area-inset-right)) calc(6px + env(safe-area-inset-bottom)) max(7px,env(safe-area-inset-left));border-top:1px solid #d9e2de;background:rgba(255,255,255,.97);box-shadow:0 -8px 24px rgba(19,55,44,.08);backdrop-filter:blur(12px)}.mobile-bottom-nav a{display:flex;min-width:0;flex-direction:column;align-items:center;justify-content:center;gap:3px;border-radius:10px;color:#687a73;font-size:10px;font-weight:760;line-height:1.1}.mobile-bottom-nav a i{font-size:18px}.mobile-bottom-nav a:hover{text-decoration:none}.mobile-bottom-nav a.active{color:#176d50;background:#e9f5ef}.dashboard-welcome{align-items:flex-start}.dashboard-grid{grid-template-columns:1fr}.dashboard-grid>.dashboard-card{grid-column:1}.profile-sidebar{top:1rem}}
@media(max-width:560px){.dashboard-welcome time{display:none}.dashboard-today{align-items:flex-start;padding:23px 20px}.dashboard-today>.dashboard-card-icon{display:none}.dashboard-card{padding:20px}.dashboard-meta{gap:7px 13px}.dashboard-primary-action{width:100%;text-align:center}.dashboard-progress-value{align-items:flex-start;flex-direction:column}.app-mobile-brand strong{max-width:130px}}

/* Phase 3: weekly schedule board and exercise editor */
.schedule-page{display:grid;gap:22px}.schedule-header{display:flex;align-items:end;justify-content:space-between;gap:20px}.schedule-header h1{margin:3px 0 5px}.schedule-header p{margin:0;color:var(--muted)}.schedule-board{display:grid;grid-template-columns:repeat(7,minmax(235px,1fr));gap:14px;overflow-x:auto;padding:3px 2px 18px;scroll-snap-type:x proximity}.schedule-column{display:flex;min-height:490px;flex-direction:column;border:1px solid #dce5e1;border-radius:17px;background:#edf2ef;scroll-snap-align:start}.schedule-column>header{display:flex;align-items:center;justify-content:space-between;padding:17px 15px 13px}.schedule-column>header span{color:#75847e;font-size:10px;font-weight:850;letter-spacing:.1em;text-transform:uppercase}.schedule-column>header h2{margin:2px 0 0;font-size:17px}.schedule-add{display:grid;width:34px;height:34px;place-items:center;padding:0;border-radius:10px;background:#fff;color:#176d50;box-shadow:0 4px 14px rgba(18,60,48,.08)}.schedule-dropzone{display:grid;align-content:start;gap:10px;min-height:365px;padding:0 10px 10px}.schedule-exercise{position:relative;display:grid;grid-template-columns:18px minmax(0,1fr) 30px;gap:7px;padding:14px 10px;border:1px solid #d9e3de;border-left:4px solid #2a9b72;border-radius:13px;background:#fff;box-shadow:0 5px 16px rgba(15,54,43,.06);cursor:grab}.schedule-exercise.is-incomplete{border-left-color:#e18a31}.schedule-exercise.dragging{opacity:.45}.schedule-column.drag-over{outline:3px solid rgba(25,122,89,.2);outline-offset:-3px}.schedule-drag{padding-top:2px;color:#a3afa9;cursor:grab}.schedule-exercise-main h3{margin:0 0 4px;font-size:14px;line-height:1.25}.schedule-exercise-main p{margin:0;color:#65756e;font-size:12px}.schedule-icons{display:flex;gap:6px;margin-top:9px}.schedule-icons span{display:grid;width:24px;height:22px;place-items:center;border-radius:7px;background:#eef5f1;color:#417060;font-size:10px}.schedule-card-menu{display:grid;width:29px;height:29px;place-items:center;padding:0;border-radius:8px;background:#edf4f1;color:#256c53;font-size:11px}.schedule-card-actions{grid-column:2/4;display:flex;gap:11px;padding-top:7px;border-top:1px solid #edf1ef}.schedule-card-actions form{margin:0}.schedule-card-actions button{padding:2px 3px}.schedule-move-fallback{grid-column:1/-1;display:flex;align-items:center;gap:6px}.schedule-move-fallback label{flex:1;margin:0}.schedule-move-fallback select{margin:0;padding:6px 8px;font-size:11px}.schedule-move-fallback button{padding:4px;font-size:11px}.schedule-empty-day{display:grid;min-height:150px;place-items:center;align-content:center;gap:8px;padding:20px;color:#85938d;text-align:center;font-size:12px}.schedule-empty-day i{font-size:22px}.schedule-column>footer{margin-top:auto;padding:12px 14px;border-top:1px solid #dce5e1}.schedule-column>footer form{margin:0}.schedule-column>footer button{width:100%;padding:5px;color:#61726b;font-size:11px}.schedule-column.is-rest{background:repeating-linear-gradient(135deg,#f0f2f1,#f0f2f1 9px,#ecefed 9px,#ecefed 18px)}
.exercise-modal{width:min(1080px,calc(100% - 34px));max-height:min(760px,calc(100vh - 34px));padding:0;border:0;border-radius:21px;background:#fff;box-shadow:0 30px 90px rgba(8,39,29,.3)}.exercise-modal::backdrop{background:rgba(8,25,20,.58);backdrop-filter:blur(3px)}.exercise-modal-close{position:absolute;right:14px;top:14px;z-index:4;display:grid;width:38px;height:38px;place-items:center;padding:0;border-radius:50%;background:#eef2f0;color:#38564c}.exercise-modal-layout{display:grid;grid-template-columns:minmax(280px,38%) minmax(0,1fr);min-height:650px}.exercise-modal-layout>aside{overflow-y:auto;padding:28px 22px;border-right:1px solid var(--line);background:#f5f8f6}.exercise-modal-layout>aside h2{padding-right:40px}.exercise-search{position:relative;margin-bottom:12px}.exercise-search i{position:absolute;left:13px;top:19px;color:#718079}.exercise-search input{padding-left:38px}.exercise-equipment-hint{padding:10px;border-radius:9px;background:#fff4d8;color:#705412;font-size:11px}.exercise-library{display:grid;max-height:355px;gap:6px;overflow-y:auto;padding-right:3px}.exercise-library>button{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:10px;border:1px solid transparent;border-radius:10px;background:#fff;color:var(--ink);text-align:left}.exercise-library>button:hover,.exercise-library>button.selected{border-color:#70b59b;background:#eaf6f0}.exercise-library>button span{min-width:0}.exercise-library b,.exercise-library small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.exercise-library small{color:var(--muted);font-size:10px}.exercise-library em{color:#237758;font-size:9px;font-style:normal;font-weight:850;text-transform:uppercase}.personal-exercise{margin-top:14px;padding-top:12px;border-top:1px solid var(--line)}.personal-exercise summary{cursor:pointer;color:var(--brand);font-weight:800}.personal-exercise form{margin-top:13px}.personal-exercise label{font-size:12px}.personal-matches{display:flex;flex-wrap:wrap;gap:5px;margin:-7px 0 10px}.personal-matches span{padding:4px 7px;border-radius:999px;background:#fff0ce;color:#72540b;font-size:10px}.exercise-config{overflow-y:auto;padding:34px}.exercise-config-head>span{color:var(--brand);font-size:11px;font-weight:850;letter-spacing:.1em;text-transform:uppercase}.exercise-config-head h2{margin:5px 0 3px}.exercise-metrics-note{min-height:24px;color:#6a7a73;font-size:12px}.set-targets{display:grid;gap:9px;margin:15px 0}.set-target-row{display:grid;grid-template-columns:31px repeat(4,minmax(85px,1fr)) 28px;align-items:end;gap:8px;padding:10px;border-radius:11px;background:#f3f6f4}.set-target-row>strong{align-self:center;display:grid;width:28px;height:28px;place-items:center;border-radius:50%;background:#173e34;color:#fff;font-size:11px}.set-target-row label{margin:0;font-size:10px}.set-target-row input{margin-top:3px;padding:8px;font-size:12px}.set-target-row>button{align-self:center;padding:5px}.input-suffix{position:relative}.input-suffix input{padding-right:38px}.input-suffix span{position:absolute;right:9px;top:50%;color:#829088;font-size:10px;transform:translateY(-50%)}.add-set{margin:0 0 20px}.exercise-save{min-width:160px}.exercise-config textarea{min-height:80px}
@media(max-width:900px){.schedule-board{grid-template-columns:repeat(7,minmax(250px,78vw))}.exercise-modal{width:calc(100% - 20px);max-height:calc(100vh - 20px)}.exercise-modal-layout{grid-template-columns:1fr;min-height:0}.exercise-modal-layout>aside{max-height:330px;border-right:0;border-bottom:1px solid var(--line)}.exercise-config{padding:24px 20px}.set-target-row{grid-template-columns:28px 1fr 1fr}.set-target-row>button{grid-column:3}.exercise-library{max-height:180px}}
@media(max-width:520px){.schedule-header{align-items:flex-start;flex-direction:column}.schedule-column{min-height:430px}.set-target-row{grid-template-columns:28px 1fr}.set-target-row>button{grid-column:2}.exercise-modal-layout>aside{padding:22px 16px}.exercise-config{padding:22px 16px}.exercise-modal-close{right:8px;top:8px}}

/* Phase 4: calendar */
.calendar-page{max-width:1280px;margin:0 auto}.calendar-page-head{display:flex;align-items:flex-start;justify-content:space-between;gap:24px;margin-bottom:22px}.calendar-page-head h1{margin:2px 0 5px;font-size:clamp(30px,4vw,44px)}.calendar-page-head>div>p:last-child{margin:0;color:var(--muted)}.calendar-apply{width:min(470px,100%);margin:0;padding:0}.calendar-apply>summary{display:flex;align-items:center;gap:9px;padding:15px 18px;cursor:pointer;font-weight:850;color:var(--brand)}.calendar-apply[open]>summary{border-bottom:1px solid var(--line)}.calendar-apply form{padding:18px}.calendar-apply-note{margin:0;padding:11px 13px;border-radius:10px;background:#edf6f2;color:#3f5e54;font-size:13px}.calendar-apply-note i{margin-right:6px;color:var(--brand)}.calendar-month-nav{display:flex;align-items:center;justify-content:center;gap:24px;margin:18px 0 10px}.calendar-month-nav h2{min-width:220px;margin:0;text-align:center;font-size:24px;text-transform:capitalize}.calendar-nav-button{display:grid;place-items:center;width:40px;height:40px;border:1px solid var(--line);border-radius:12px;background:#fff;color:var(--ink)}.calendar-nav-button:hover{text-decoration:none;border-color:var(--brand);color:var(--brand)}.calendar-legend{display:flex;justify-content:flex-end;gap:18px;margin:0 2px 12px;color:var(--muted);font-size:13px;font-weight:750}.calendar-legend span{display:flex;align-items:center;gap:7px}.calendar-dot{width:9px;height:9px;border-radius:50%}.workout-dot{background:#2b7a60}.check-dot{background:#7956a8}.calendar.weekdays{border:1px solid var(--line);border-bottom:0;border-radius:14px 14px 0 0;background:#f4f7f5}.weekdays b{padding:11px 8px;font-size:12px;letter-spacing:.06em}.calendar.month-grid{border-radius:0 0 14px 14px;overflow:hidden;box-shadow:0 12px 34px rgba(18,55,44,.06)}.calendar-day{min-width:0;min-height:145px;padding:8px;background:#fff;transition:.15s background,.15s box-shadow}.calendar-day>header{display:flex;align-items:center;justify-content:space-between;margin-bottom:6px}.calendar-day>header small{padding:2px 6px;border-radius:99px;background:#e3f3eb;color:var(--brand);font-size:9px;font-weight:850;text-transform:uppercase}.calendar-day.is-drop-target{background:#e7f5ee;box-shadow:inset 0 0 0 2px var(--brand)}.calendar-day-events{display:grid;gap:5px}.calendar-event{position:relative;display:block;margin:0;padding:0;border:1px solid #cfe0d9;border-left:4px solid #2b7a60;border-radius:8px;background:#edf6f2;color:#1f4d3e;font-size:12px;overflow:visible}.calendar-event.is-movable{cursor:grab}.calendar-event.is-dragging{opacity:.38}.calendar-event-link{display:block;padding:7px 8px;color:inherit}.calendar-event-link:hover{text-decoration:none}.calendar-event-link b,.calendar-event-link small{display:block;overflow:hidden;text-overflow:ellipsis}.calendar-event-link small{margin-top:2px;color:inherit;opacity:.75}.calendar-event.check-event{border-color:#d9d0e8;border-left-color:#7956a8;background:#f1ecf8;color:#4f3870}.calendar-move-fallback{border-top:1px solid rgba(20,70,52,.12)}.calendar-move-fallback>summary{padding:5px 8px;cursor:pointer;font-weight:800;list-style:none}.calendar-move-fallback>summary::-webkit-details-marker{display:none}.calendar-move-fallback form{position:absolute;z-index:8;top:calc(100% + 5px);left:0;width:220px;padding:11px;border:1px solid var(--line);border-radius:10px;background:#fff;box-shadow:0 15px 35px rgba(15,48,38,.18)}.calendar-move-fallback label span{display:block;margin-bottom:4px;color:var(--muted);font-size:11px}.calendar-move-fallback button{width:100%;margin-top:7px;padding:8px}.calendar-drag-help{margin:12px 2px 0;color:var(--muted);font-size:13px}.calendar-drag-help i{margin-right:5px}
@media(max-width:900px){.calendar-page-head{flex-direction:column}.calendar-apply{width:100%}.calendar-day{min-height:125px}.calendar-event-link{padding:6px}}
@media(max-width:760px){.calendar-month-nav{margin-top:8px}.calendar-month-nav h2{min-width:170px;font-size:20px}.calendar-legend{justify-content:flex-start}.calendar.month-grid{display:grid;grid-template-columns:1fr;gap:10px;overflow:visible;box-shadow:none}.calendar-day{display:none!important;min-height:0;border:1px solid var(--line)!important;border-radius:12px;padding:12px;background:#fff!important}.calendar-day:has(.calendar-event),.calendar-day.today{display:block!important}.calendar-day.outside:not(:has(.calendar-event)){display:none!important}.calendar-day.today{box-shadow:inset 3px 0 var(--brand)}.calendar-move-fallback form{position:static;width:100%;margin:3px 0 8px;box-shadow:none}.calendar-drag-help{display:none}}
