:root{color-scheme:dark;--bg: #14161a;--card: #262a31;--surface-2: #323742;--text: #f2f4f6;--muted: #a9b0ba;--border: #434954;--accent: #dde2e8;--accent-strong: #f1f3f6;--on-accent: #14161a;--danger: #f1726b;--done: #46c97a;--warn: #f0c14b;--warn-bg: rgba(240, 193, 75, .13);--warn-border: rgba(240, 193, 75, .4);font-family:system-ui,-apple-system,Segoe UI,Roboto,Helvetica,Arial,sans-serif;color:var(--text)}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text)}h1,h2,h3{margin:0}.app{width:100%;margin:0;min-height:100dvh;display:flex;flex-direction:column}.bar{display:flex;align-items:baseline;gap:12px;padding:14px 20px;border-bottom:1px solid var(--border);background:repeating-linear-gradient(90deg,#ffffff06 0,#ffffff06 2px,#00000040 2px,#00000040 4px),#0c0d10}.brand{font-size:18px;letter-spacing:.5px}.sub{color:var(--muted);font-size:13px}.content{padding:20px;display:flex;flex-direction:column;gap:16px}.dash-top{display:flex;justify-content:space-between;align-items:flex-start;gap:12px}.dash-h1{font-size:22px;letter-spacing:.3px}.small{font-size:12.5px}.stat-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px}.stat-tile{background:var(--card);border:1px solid var(--border);border-radius:14px;padding:16px 18px;display:flex;flex-direction:column;gap:4px}.stat-num{font-size:30px;font-weight:800;line-height:1;color:var(--accent-strong)}.stat-lbl{font-size:11px;color:var(--muted);text-transform:uppercase;letter-spacing:.6px}.client-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:14px}.client-card{display:flex;align-items:center;gap:12px;text-align:left;position:relative;background:var(--surface-2);border:1px solid var(--border);border-radius:12px;padding:12px 14px;cursor:pointer;color:var(--text);font:inherit}.client-card:hover{border-color:var(--accent);background:#3a4049}.client-avatar{width:38px;height:38px;border-radius:50%;flex-shrink:0;background:var(--accent);color:var(--on-accent);font-weight:800;display:flex;align-items:center;justify-content:center}.client-card-info{display:flex;flex-direction:column;min-width:0}.client-card-name{font-weight:600}.client-card-email{font-size:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.badge-pending{position:absolute;top:8px;right:8px;font-size:10px;font-weight:700;color:var(--warn);background:var(--warn-bg);border:1px solid var(--warn-border);border-radius:999px;padding:2px 7px}.dash-layout{display:grid;grid-template-columns:210px 1fr;gap:16px;align-items:start}.sidebar{position:sticky;top:16px;background:var(--card);border:1px solid var(--border);border-radius:14px;padding:8px;display:flex;flex-direction:column;gap:2px;max-height:calc(100dvh - 120px);overflow-y:auto}.side-item{display:flex;align-items:center;gap:8px;width:100%;text-align:left;background:none;border:none;color:var(--text);font:inherit;font-size:14px;padding:9px 11px;border-radius:9px;cursor:pointer}.side-item:hover{background:var(--surface-2)}.side-item.active{background:var(--accent);color:var(--on-accent);font-weight:600}.side-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:1}.side-dot{width:7px;height:7px;border-radius:50%;background:var(--warn);flex-shrink:0}.side-sep{font-size:10px;text-transform:uppercase;letter-spacing:.6px;color:var(--muted);padding:10px 11px 4px}.side-msg{padding:4px 11px}.dash-main{min-width:0;display:flex;flex-direction:column;gap:16px}.summary-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:14px}.summary-card{display:flex;flex-direction:column;gap:5px;text-align:left;cursor:pointer;min-height:116px;background:var(--surface-2);border:1px solid var(--border);border-radius:12px;padding:14px 16px;color:var(--text);font:inherit}.summary-card:hover{border-color:var(--accent)}.summary-card.entry{border-style:dashed}.sc-title{font-size:15px;font-weight:700}.sc-line{font-size:12.5px;color:var(--muted)}.sc-cta{margin-top:auto;font-size:12px;font-weight:700;color:var(--accent-strong)}.summary-card.entry .sc-cta{color:var(--warn)}.ws-head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px}@media(max-width:720px){.dash-layout{grid-template-columns:1fr}.sidebar{position:static;flex-direction:row;max-height:none;overflow-x:auto;overflow-y:hidden}.side-sep{display:none}.side-item{flex-shrink:0}}.card{background:var(--card);border:1px solid var(--border);border-radius:14px;padding:18px;display:flex;flex-direction:column;gap:12px}.card.narrow{max-width:380px}.field{display:flex;flex-direction:column;gap:5px;font-size:12.5px;color:var(--muted)}.field>span{font-weight:600}.field input{font-size:15px;color:var(--text);padding:10px 11px;border:1px solid var(--border);border-radius:9px;background:var(--surface-2);width:100%}.field input:focus{outline:2px solid var(--accent);outline-offset:-1px}.btn{align-self:flex-start;background:var(--surface-2);border:1px solid var(--border);color:var(--text);padding:9px 16px;border-radius:9px;font-weight:600;font-size:14px;cursor:pointer}.btn:hover{background:#3a4049}.btn.primary{background:var(--accent);border-color:var(--accent);color:var(--on-accent)}.btn.primary:disabled{opacity:.45;cursor:default}.row{display:flex;align-items:center;gap:12px}.row.between{justify-content:space-between}.muted{color:var(--muted)}.error{color:var(--danger);font-size:13px}.client-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column}.client-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 4px;border-bottom:1px solid var(--border)}.client-row:last-child{border-bottom:none}.client-name{font-weight:600}.client-row.clickable{cursor:pointer;padding-left:8px;padding-right:8px;border-radius:8px}.client-row.clickable:hover{background:var(--surface-2)}.link-btn{align-self:flex-start;background:none;border:none;color:var(--muted);font:inherit;font-weight:600;cursor:pointer;padding:2px 0}.link-btn:hover{color:var(--text)}.base-edit{border-top:1px solid var(--border);padding-top:14px;display:flex;flex-direction:column;gap:10px}.base-edit h3{font-size:15px}.target-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}@media(max-width:520px){.target-grid{grid-template-columns:repeat(2,1fr)}}.plan-row{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;padding:7px 0;border-bottom:1px solid var(--border);font-size:14px}.plan-row:last-child{border-bottom:none}.plan-day{font-weight:600}.plan-macros{color:var(--muted)}.checkin-table{width:100%;border-collapse:collapse;font-size:14px}.checkin-table th{text-align:left;color:var(--muted);font-weight:600;padding:6px 8px;border-bottom:1px solid var(--border)}.checkin-table td{padding:6px 8px;border-bottom:1px solid var(--border)}.checkin-table tr:last-child td{border-bottom:none}.bd-label{font-size:12px;font-weight:600;color:var(--muted);margin-top:6px}.section{border-top:1px solid var(--border)}.section-head{width:100%;display:flex;align-items:baseline;gap:8px;background:none;border:none;color:var(--text);cursor:pointer;padding:12px 0;font:inherit;text-align:left}.section-caret{color:var(--muted);font-size:12px;transition:transform .15s}.section-caret.open{transform:rotate(90deg)}.section-title{font-size:15px;font-weight:700}.section-sub{font-size:12px;margin-left:auto}.section-body{padding-bottom:12px;display:flex;flex-direction:column;gap:10px}.graph-scroll{overflow-x:auto;-webkit-overflow-scrolling:touch;padding-bottom:4px}.progress-graph{display:block}.g-axis{stroke:var(--border);stroke-width:1}.g-lbl{fill:var(--muted);font-size:10px}.g-lbl.end{text-anchor:end}.g-lbl.start{text-anchor:start}.g-lbl.mid{text-anchor:middle}.g-cal-line{fill:none;stroke:#5b9bff;stroke-width:2}.g-cal-dot{fill:#5b9bff}.g-wt-line{fill:none;stroke:#f0c14b;stroke-width:2}.g-wt-dot{fill:#f0c14b}.graph-legend{display:flex;gap:16px;font-size:12px;color:var(--muted)}.graph-legend .lg{display:inline-block;width:14px;height:0;border-top:2px solid;vertical-align:middle;margin-right:5px}.graph-legend .lg.cal{border-color:#5b9bff}.graph-legend .lg.wt{border-color:#f0c14b}.g-sel-line{stroke:var(--border);stroke-width:1;stroke-dasharray:3 3}.g-cal-ring{fill:none;stroke:#5b9bff;stroke-width:2}.g-wt-ring{fill:none;stroke:#f0c14b;stroke-width:2}.g-tip-bg{fill:#0c0d10;stroke:var(--border);stroke-width:1}.g-tip-text{fill:var(--text);font-size:11px}.g-tip-text.head{fill:var(--muted);font-size:10px}.author-controls{display:flex;gap:12px;flex-wrap:wrap}.author-controls .field{flex:1 1 140px}.author-tabs{display:flex;gap:4px;border-bottom:1px solid var(--border);flex-wrap:wrap}.author-tabs .tab{background:none;border:none;border-bottom:2px solid transparent;color:var(--muted);font:inherit;font-weight:600;font-size:14px;padding:8px 12px;cursor:pointer;margin-bottom:-1px}.author-tabs .tab:hover{color:var(--text)}.author-tabs .tab.active{color:var(--text);border-bottom-color:var(--accent)}.seg-toggle{display:flex;border:1px solid var(--border);border-radius:9px;overflow:hidden;align-self:flex-start}.seg-toggle .seg{background:var(--surface-2);border:none;color:var(--muted);padding:8px 14px;font:inherit;font-weight:600;cursor:pointer}.seg-toggle .seg.active{background:var(--accent);color:var(--on-accent)}.author-day{border-top:1px solid var(--border);padding-top:12px;display:flex;flex-direction:column;gap:10px}.author-table{width:100%;border-collapse:collapse;font-size:13px}.author-table th{color:var(--muted);font-weight:600;padding:4px 6px;text-align:center}.author-table td{padding:3px 6px;text-align:center}.author-table th:first-child,.author-table td:first-child{text-align:left}.author-table input{width:56px;padding:6px;border:1px solid var(--border);border-radius:7px;background:var(--surface-2);color:var(--text);text-align:center;font-size:13px}.author-search{width:100%;padding:8px 10px;border:1px solid var(--border);border-radius:8px;background:var(--surface-2);color:var(--text);font:inherit}.food-checklist{max-height:240px;overflow-y:auto;border:1px solid var(--border);border-radius:8px;padding:4px;display:flex;flex-direction:column}.food-filters{display:flex;flex-wrap:wrap;gap:6px}.food-filter{background:var(--surface-2);border:1px solid var(--border);color:var(--muted);padding:5px 11px;border-radius:999px;font-size:12px;font-weight:600;cursor:pointer}.food-filter.active{background:var(--accent);color:var(--on-accent);border-color:var(--accent)}.food-check{display:flex;align-items:center;gap:8px;padding:6px;font-size:13px;cursor:pointer}.food-macro{margin-left:auto;font-size:11px;text-transform:capitalize}.preset-meal{border:1px solid var(--border);border-radius:9px;padding:10px;display:flex;flex-direction:column;gap:8px}.preset-head{display:flex;gap:8px;align-items:center}.preset-name{flex:1;padding:7px 9px;border:1px solid var(--border);border-radius:7px;background:var(--surface-2);color:var(--text);font:inherit}.preset-head select{padding:6px 8px;border:1px solid var(--border);border-radius:7px;background:var(--surface-2);color:var(--text);font:inherit;font-size:13px}.preset-option{font-size:12px;font-weight:700;color:var(--warn);padding:4px 8px;border:1px solid var(--warn-border);border-radius:999px;background:var(--warn-bg)}.preset-slotgroup{display:flex;flex-direction:column;gap:6px}.preset-foodrow{display:flex;align-items:center;gap:6px}.preset-foodrow select{flex:1;min-width:0;padding:6px 7px;border:1px solid var(--border);border-radius:7px;background:var(--surface-2);color:var(--text);font:inherit;font-size:13px}.preset-pct{width:46px;padding:6px 4px;border:1px solid var(--border);border-radius:7px;background:var(--surface-2);color:var(--text);text-align:center;font-size:12px}.preset-countwrap{display:flex;align-items:center;gap:4px}.preset-unit{font-size:11px;white-space:nowrap}.preset-grams{font-size:12px;font-weight:600;min-width:44px;text-align:right;color:var(--text)}.btn-add{align-self:flex-start;background:none;border:1px dashed var(--border);color:var(--muted);padding:5px 10px;border-radius:7px;font-size:12px;font-weight:600;cursor:pointer}.btn-add:hover{color:var(--text);border-color:var(--accent)}.preset-total{font-size:12.5px;font-weight:600;color:var(--text);border-top:1px solid var(--border);padding-top:8px;margin:4px 0 0}.coach-photos{display:flex;flex-direction:column;gap:14px}.coach-photo-day .muted{margin-bottom:6px}.photo-grid{display:flex;flex-wrap:wrap;gap:8px}.photo-thumb{display:block;width:104px;height:104px;border-radius:8px;overflow:hidden;border:1px solid var(--border);background:var(--card)}.photo-thumb img{width:100%;height:100%;object-fit:cover;display:block}.photo-ph{width:100%;height:100%;background:var(--card)}.photo-open{display:flex;align-items:center;justify-content:center;color:var(--muted);font-size:12px;text-decoration:none}
