/* FitCoach v21: v20 parity + mobile-first enhancements */
:root{--v21-sage:#476457;--v21-soft:#e8efea;--v21-line:#e4dfd7;--v21-ink:#27312d;--v21-muted:#7d8782;--v21-panel:#fffefa;--v21-sand:#efe6d8;--v21-coral:#c98272;--v21-amber:#d6a85e;--v21-blue:#7d9db3;--v21-teal:#6f9d94;--v21-rest:#e8e2d8}.v21-section{border-top:1px solid var(--v21-line);padding-top:12px;margin-top:12px}.v21-section:first-child{border-top:0;padding-top:0;margin-top:0}.v21-head{display:flex;align-items:center;justify-content:space-between;gap:8px;flex-wrap:wrap;margin-bottom:8px}.v21-head h2,.v21-head h3{margin:0}.v21-sub{font-size:10px;color:var(--v21-muted);line-height:1.4}.v21-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.v21-grid.two{grid-template-columns:repeat(2,minmax(0,1fr))}.v21-grid.four{grid-template-columns:repeat(4,minmax(0,1fr))}.v21-field{min-width:0}.v21-field label{display:block;color:var(--v21-muted);font-size:9px;margin-bottom:3px}.v21-field input,.v21-field select,.v21-field textarea{width:100%;border:1px solid var(--v21-line);background:#fff;border-radius:9px;padding:8px 9px;font-size:12px}.v21-field textarea{min-height:58px;resize:vertical}.v21-field.wide{grid-column:span 2}.v21-field.full{grid-column:1/-1}.v21-actions{display:flex;gap:6px;align-items:center;flex-wrap:wrap;margin-top:8px}.v21-card{border:1px solid var(--v21-line);border-radius:12px;background:#fff;padding:10px}.v21-soft{background:#faf8f4}.v21-note{border:1px solid #cdd9d3;background:var(--v21-soft);color:#3f5a4e;border-radius:10px;padding:8px 10px;font-size:10px;line-height:1.45}.v21-pills{display:flex;gap:6px;flex-wrap:wrap}.v21-pill{font-size:9px;padding:4px 7px;border-radius:999px;background:var(--v21-soft);color:var(--v21-sage)}.v21-checkgrid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}.v21-check{display:flex;gap:7px;align-items:flex-start;border:1px solid var(--v21-line);border-radius:9px;background:#fff;padding:7px 8px;font-size:10px;line-height:1.3}.v21-check input{margin-top:1px}.v21-details{border:1px solid var(--v21-line);border-radius:11px;background:#fbfaf7;margin:7px 0;overflow:hidden}.v21-details>summary{list-style:none;cursor:pointer;padding:9px 10px;font-size:11px;font-weight:700}.v21-details>summary::-webkit-details-marker{display:none}.v21-details[open]>summary{border-bottom:1px solid var(--v21-line)}.v21-details-body{padding:9px}.v21-health-read{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.v21-read{border:1px solid var(--v21-line);border-radius:10px;background:#fbfaf7;padding:9px}.v21-read span{display:block;color:var(--v21-muted);font-size:9px}.v21-read b,.v21-read div{display:block;font-size:12px;margin-top:3px;line-height:1.4}.v21-pregnancy{border:1px solid #c8d8d0;border-radius:13px;background:#f3f7f4;padding:10px}.v21-pregnancy.on{box-shadow:inset 4px 0 0 var(--v21-sage)}
.v21-nut-top{display:grid;grid-template-columns:190px 1fr;gap:12px;align-items:center;margin:9px 0 12px}.v21-donut-wrap{display:grid;place-items:center}.v21-donut{width:168px;height:168px;border-radius:50%;position:relative;display:grid;place-items:center;box-shadow:inset 0 0 0 1px rgba(0,0,0,.04)}.v21-donut:after{content:'';position:absolute;inset:24px;border-radius:50%;background:var(--v21-panel);box-shadow:0 0 0 1px var(--v21-line)}.v21-donut-center{position:relative;z-index:1;text-align:center}.v21-donut-center b{display:block;font-size:23px}.v21-donut-center span{display:block;font-size:9px;color:var(--v21-muted);margin-top:2px}.v21-legend{display:flex;gap:6px;flex-wrap:wrap;margin-top:7px;justify-content:center}.v21-legend span{font-size:8px;color:var(--v21-muted);display:flex;align-items:center;gap:3px}.v21-dot{width:7px;height:7px;border-radius:50%;display:inline-block}.v21-dot.breakfast{background:var(--v21-sage)}.v21-dot.lunch{background:var(--v21-coral)}.v21-dot.dinner{background:var(--v21-amber)}.v21-dot.snack{background:var(--v21-blue)}.v21-dot.drinks{background:var(--v21-teal)}.v21-dot.rest{background:var(--v21-rest)}.v21-nut-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:7px}.v21-kpi{border:1px solid var(--v21-line);background:#faf8f4;border-radius:10px;padding:8px}.v21-kpi span{display:block;color:var(--v21-muted);font-size:8px}.v21-kpi b{display:block;font-size:15px;margin-top:3px}.v21-food-layout{display:grid;grid-template-columns:1.15fr .85fr;gap:12px}.v21-results{border:1px solid var(--v21-line);border-radius:11px;background:#fff;max-height:330px;overflow:auto}.v21-food-row{display:block;width:100%;border:0;border-bottom:1px solid var(--v21-line);background:#fff;text-align:left;padding:8px 9px;color:var(--v21-ink)}.v21-food-row:last-child{border-bottom:0}.v21-food-row:hover,.v21-food-row.on{background:#f7f8f5}.v21-food-row b{display:block;font-size:11px}.v21-food-row small{display:block;color:var(--v21-muted);font-size:9px;margin-top:2px}.v21-portion{border:1px solid var(--v21-line);border-radius:12px;background:#faf8f4;padding:11px}.v21-portion-total{font-size:27px;font-weight:900;margin:8px 0 2px}.v21-barcode-box{border:1px dashed #bfcac5;border-radius:11px;background:#fbfaf7;padding:9px;margin:8px 0}.v21-barcode-row{display:grid;grid-template-columns:1fr auto auto;gap:6px;align-items:end}.v21-video{width:100%;max-height:260px;background:#111;border-radius:10px;display:none;margin-top:8px}.v21-meal{border:1px solid var(--v21-line);border-radius:10px;padding:8px 9px;margin:6px 0;background:#fff}.v21-meal h4{margin:0 0 4px;color:var(--v21-sage);font-size:11px}.v21-foodline{display:grid;grid-template-columns:1fr auto;gap:8px;align-items:center;padding:5px 0;border-bottom:1px solid #eee9e2}.v21-foodline:last-child{border-bottom:0}.v21-foodline b{font-size:11px}.v21-foodline small{display:block;color:var(--v21-muted);font-size:9px}.v21-custom{border:1px solid var(--v21-line);border-radius:12px;background:#fbfaf7;padding:10px;margin-top:10px}
.v21-activity-form{display:grid;grid-template-columns:180px 1fr;gap:10px;align-items:start}.v21-activity-preview{border:1px solid var(--v21-line);border-radius:12px;background:#faf8f4;padding:10px}.v21-activity-list{display:grid;gap:7px;margin-top:10px}.v21-activity-row{border:1px solid var(--v21-line);border-radius:11px;background:#fff;padding:9px}.v21-activity-row .top{display:flex;justify-content:space-between;gap:8px}.v21-activity-row b{font-size:12px}.v21-activity-row small{display:block;color:var(--v21-muted);font-size:9px;margin-top:3px}.v21-activity-meta{display:flex;gap:5px;flex-wrap:wrap;margin-top:6px}.v21-activity-meta span{font-size:8px;background:var(--v21-soft);padding:4px 6px;border-radius:999px}
.v21-photo-upload{border:1px solid var(--v21-line);border-radius:12px;background:#faf8f4;padding:10px}.v21-photo-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.v21-photo{border:1px solid var(--v21-line);border-radius:11px;background:#fff;overflow:hidden}.v21-photo img{width:100%;aspect-ratio:3/4;object-fit:cover;display:block;background:#eee}.v21-photo .meta{padding:7px}.v21-photo .meta b{font-size:10px}.v21-photo .meta small{display:block;color:var(--v21-muted);font-size:8px;margin-top:2px}.v21-compare{display:grid;grid-template-columns:1fr 1fr;gap:9px;margin-top:9px}.v21-compare-card{border:1px solid var(--v21-line);border-radius:12px;overflow:hidden;background:#fff}.v21-compare-card img{width:100%;aspect-ratio:3/4;object-fit:cover;display:block}.v21-compare-card .cap{padding:8px;font-size:10px}.v21-progress-layout{display:grid;grid-template-columns:1.05fr .95fr;gap:12px}.v21-spark{width:100%;height:130px;color:var(--v21-sage)}
.v21-cal-toolbar{display:flex;justify-content:space-between;gap:8px;align-items:end;flex-wrap:wrap;margin-bottom:9px}.v21-cal-controls{display:flex;gap:5px;align-items:center;flex-wrap:wrap}.v21-cal-controls .on{background:var(--v21-sage);border-color:var(--v21-sage);color:#fff}.v21-day{display:grid;grid-template-columns:62px 1fr;border:1px solid var(--v21-line);border-radius:11px;overflow:hidden;background:#fff}.v21-hour{min-height:46px;padding:7px;border-right:1px solid var(--v21-line);border-bottom:1px solid var(--v21-line);font-size:9px;color:var(--v21-muted)}.v21-hour-events{min-height:46px;padding:4px;border-bottom:1px solid var(--v21-line)}.v21-event{border:1px solid #cbd8d1;background:var(--v21-soft);border-radius:8px;padding:5px 6px;margin:2px;font-size:9px;cursor:pointer}.v21-event b{display:block;font-size:10px}.v21-week{display:grid;grid-template-columns:repeat(7,minmax(130px,1fr));gap:6px;overflow:auto}.v21-week-col{border:1px solid var(--v21-line);border-radius:10px;background:#fff;min-height:190px;padding:6px}.v21-week-head{font-size:9px;color:var(--v21-muted);margin-bottom:5px}.v21-week-head b{display:block;color:var(--v21-ink);font-size:11px}.v21-month{display:grid;grid-template-columns:repeat(7,minmax(92px,1fr));gap:1px;background:var(--v21-line);border:1px solid var(--v21-line);border-radius:11px;overflow:auto}.v21-weekday,.v21-month-cell{background:#fff;min-width:92px}.v21-weekday{padding:5px;text-align:center;color:var(--v21-muted);font-size:9px}.v21-month-cell{min-height:100px;padding:5px}.v21-month-cell.other{opacity:.45}.v21-month-cell.today{box-shadow:inset 0 0 0 2px #a8bdb3}.v21-daynum{font-size:10px;font-weight:700;margin-bottom:3px}
.v21-report-toolbar{display:grid;grid-template-columns:1.2fr repeat(2,150px) auto;gap:7px;align-items:end}.v21-report-summary{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:7px}.v21-report-day{border:1px solid var(--v21-line);border-radius:10px;background:#fff;margin:6px 0}.v21-report-day>summary{list-style:none;cursor:pointer;padding:8px 9px;display:grid;grid-template-columns:100px 1fr auto;gap:7px}.v21-report-day>summary::-webkit-details-marker{display:none}.v21-report-day[open]>summary{border-bottom:1px solid var(--v21-line)}.v21-report-body{padding:8px}.v21-report-line{display:grid;grid-template-columns:1fr auto;gap:7px;padding:4px 0;border-bottom:1px solid #eee9e2;font-size:10px}.v21-comments{display:grid;grid-template-columns:1fr 1fr;gap:8px}.v21-foodbase-toolbar{display:grid;grid-template-columns:1fr 230px;gap:8px}.v21-foodbase-row{display:grid;grid-template-columns:1.5fr .9fr .7fr .7fr .7fr .7fr;gap:8px;padding:7px 0;border-bottom:1px solid var(--v21-line);font-size:10px}.v21-db-kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}
@media(max-width:1000px){.v21-grid,.v21-checkgrid{grid-template-columns:repeat(2,1fr)}.v21-nut-top{grid-template-columns:160px 1fr}.v21-nut-kpis,.v21-report-summary,.v21-db-kpis{grid-template-columns:repeat(2,1fr)}.v21-food-layout,.v21-progress-layout{grid-template-columns:1fr}.v21-photo-grid{grid-template-columns:repeat(2,1fr)}.v21-report-toolbar{grid-template-columns:1fr 1fr}.v21-report-toolbar>button{grid-column:1/-1}}
@media(max-width:850px){.v21-section{margin-top:9px;padding-top:9px}.v21-card{padding:8px}.v21-field input,.v21-field select,.v21-field textarea{padding:7px 8px}.v21-field textarea{min-height:45px}.v21-check{padding:7px}.v21-nut-top{grid-template-columns:1fr}.v21-donut{width:150px;height:150px}.v21-nut-kpis{grid-template-columns:repeat(2,1fr)}.v21-activity-form{grid-template-columns:1fr}.v21-week{grid-template-columns:repeat(7,145px)}.v21-report-day>summary{grid-template-columns:1fr}.v21-foodbase-row{grid-template-columns:1.4fr .8fr .6fr .6fr}.v21-foodbase-row>*:nth-child(n+5){display:none}}
@media(max-width:560px){.main{padding-left:9px!important;padding-right:9px!important}.card{padding:10px!important;border-radius:13px!important}.v21-grid,.v21-grid.two,.v21-grid.four{grid-template-columns:repeat(2,minmax(0,1fr))}.v21-field.wide{grid-column:1/-1}.v21-checkgrid{grid-template-columns:1fr 1fr}.v21-health-read{grid-template-columns:1fr 1fr}.v21-nut-top{gap:7px}.v21-donut{width:142px;height:142px}.v21-donut:after{inset:21px}.v21-food-layout{gap:8px}.v21-barcode-row{grid-template-columns:1fr 1fr}.v21-barcode-row .v21-barcode-input{grid-column:1/-1}.v21-portion-total{font-size:24px}.v21-photo-grid{grid-template-columns:1fr 1fr}.v21-compare{grid-template-columns:1fr 1fr}.v21-cal-toolbar{align-items:stretch}.v21-cal-controls{overflow:auto;flex-wrap:nowrap;padding-bottom:3px}.v21-cal-controls .btn{white-space:nowrap}.v21-month{grid-template-columns:repeat(7,88px)}.v21-month-cell,.v21-weekday{min-width:88px}.v21-report-toolbar{grid-template-columns:1fr 1fr}.v21-comments{grid-template-columns:1fr}.v21-db-kpis{grid-template-columns:1fr 1fr}.v21-foodbase-toolbar{grid-template-columns:1fr}.v21-foodbase-row{grid-template-columns:1.4fr .8fr .7fr}.v21-foodbase-row>*:nth-child(n+4){display:none}}
