:root{--bg: #f4f7f5;--surface: #ffffff;--surface-2: #f6f8f7;--border: #e6ebe8;--text: #1f2a26;--muted: #7b8a83;--primary: #12a074;--primary-strong: #0c7f5b;--primary-soft: #e2f3ec;--accent: #f2884b;--danger: #d8574a;--draft: #c98a1e;--draft-soft: #fdf3dd;--validated: #12a074;--meal-breakfast: #f3c23e;--meal-snack: #ef8f4c;--meal-lunch: #5cb85c;--meal-snack-pm: #9b7fd4;--meal-dinner: #4f8fdb;--radius: 18px;--shadow-sm: 0 1px 2px rgba(20, 40, 33, .05);--shadow: 0 2px 6px rgba(20, 40, 33, .06), 0 12px 32px rgba(20, 40, 33, .07);--shadow-lg: 0 8px 40px rgba(20, 40, 33, .12);--font: "Inter", system-ui, -apple-system, "Segoe UI", "Helvetica Neue", Arial, sans-serif}*{box-sizing:border-box}body{margin:0;font-family:var(--font);color:var(--text);background:radial-gradient(1200px 500px at 100% -10%,#e6f4ee 0%,transparent 60%),radial-gradient(900px 500px at -10% 10%,#fdeee2 0%,transparent 55%),var(--bg);background-attachment:fixed;line-height:1.55;-webkit-font-smoothing:antialiased}h1,h2,h3{margin:0;font-weight:700;letter-spacing:-.02em}.muted{color:var(--muted);font-size:.9rem}.btn{border:1px solid transparent;border-radius:12px;padding:.6rem 1.15rem;font:inherit;font-weight:650;cursor:pointer;transition:transform .08s ease,box-shadow .15s,background .15s,border-color .15s,opacity .15s}.btn:not(:disabled):active{transform:translateY(1px)}.btn:disabled{opacity:.5;cursor:default}.btn--primary{background:linear-gradient(135deg,var(--primary) 0%,var(--primary-strong) 100%);color:#fff;box-shadow:0 4px 14px #12a07447}.btn--primary:not(:disabled):hover{box-shadow:0 6px 20px #12a07461}.btn--ghost{background:transparent;border-color:var(--border);color:var(--text)}.btn--ghost:not(:disabled):hover{background:var(--surface-2)}.btn--sm{padding:.35rem .7rem;font-size:.85rem}.field{display:flex;flex-direction:column;gap:.35rem;font-size:.9rem}.field>span{color:var(--muted);font-weight:600}.field input,.field select,.food-search input,.analysis-card__editor{border:1px solid var(--border);border-radius:12px;padding:.6rem .75rem;font:inherit;background:var(--surface);color:var(--text);transition:border-color .15s,box-shadow .15s}.field input:focus,.field select:focus,.food-search input:focus,.analysis-card__editor:focus,.entry-form input:focus,.date-picker:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-soft)}.week-bar{margin-bottom:.9rem}.week-nav{display:flex;align-items:center;justify-content:space-between;gap:.6rem;margin-bottom:.55rem}.week-nav__arrow{flex:none;width:2rem;height:2rem;display:inline-flex;align-items:center;justify-content:center;font-size:1.2rem;line-height:1;border:1px solid var(--border);background:var(--surface);color:var(--text);border-radius:10px;cursor:pointer;transition:border-color .15s,color .15s,background .15s}.week-nav__arrow:hover{border-color:var(--primary);color:var(--primary-strong)}.week-nav__label{font-weight:600;color:var(--muted);text-transform:capitalize;font-size:.9rem}.day-tabs{display:grid;grid-template-columns:repeat(7,1fr);gap:.35rem}.day-tab{display:flex;flex-direction:column;align-items:center;gap:.1rem;padding:.45rem .2rem;border:1px solid var(--border);background:var(--surface);border-radius:12px;cursor:pointer;transition:all .15s}.day-tab__dow{font-size:.68rem;font-weight:600;text-transform:uppercase;letter-spacing:.03em;color:var(--muted)}.day-tab__num{font-size:1.05rem;font-weight:700;color:var(--text)}.day-tab:hover,.day-tab--today{border-color:var(--primary)}.day-tab--active{background:var(--primary);border-color:var(--primary);box-shadow:0 6px 16px var(--primary-soft)}.day-tab--active .day-tab__dow,.day-tab--active .day-tab__num{color:#fff}.form-error{color:var(--danger);font-size:.88rem;margin:.25rem 0 0}.form-success{color:var(--primary-strong);font-size:.88rem;margin:.25rem 0 0}.app-shell{min-height:100vh}.app-header{position:sticky;top:0;z-index:20;display:flex;align-items:center;justify-content:space-between;padding:.85rem 1.5rem;background:#ffffffd1;-webkit-backdrop-filter:saturate(1.4) blur(10px);backdrop-filter:saturate(1.4) blur(10px);border-bottom:1px solid var(--border)}.brand{font-size:1.35rem;font-weight:800;color:var(--primary);text-decoration:none;letter-spacing:-.02em}.brand span{color:var(--accent)}.app-header__left{display:flex;align-items:center;gap:1.75rem}.app-nav{display:flex;gap:.35rem}.app-nav__link{padding:.4rem .75rem;border-radius:8px;text-decoration:none;color:var(--muted);font-weight:600;font-size:.92rem}.app-nav__link:hover{background:var(--surface-2);color:var(--text)}.app-nav__link.active{background:var(--primary-soft);color:var(--primary-strong)}.app-header__right{display:flex;align-items:center;gap:1rem}.coach-name{font-weight:600;color:var(--text);text-decoration:none}.coach-name:hover{color:var(--primary-strong)}.app-main{max-width:1080px;margin:0 auto;padding:1.75rem 1.5rem 3rem}.fullscreen-loader{display:grid;place-items:center;min-height:100vh;color:var(--muted)}.page{display:flex;flex-direction:column;gap:1.25rem}.page__header h1{font-size:1.75rem}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);padding:1.4rem 1.5rem;display:flex;flex-direction:column;gap:1rem}.card__title{font-size:1.15rem}.card__header{display:flex;align-items:center;justify-content:space-between;gap:1rem}.back-link{color:var(--muted);text-decoration:none;font-size:.9rem}.back-link:hover{color:var(--primary)}.inline-form{display:flex;flex-wrap:wrap;align-items:flex-end;gap:1rem}.inline-form .field{flex:1 1 180px}.tracker{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:1rem;margin-bottom:1rem}.tracker__field{display:flex;flex-direction:column;gap:.4rem;padding:.8rem;background:var(--surface-2);border-radius:12px}.tracker__field-head{display:flex;align-items:center;gap:.4rem;font-weight:600;font-size:.9rem}.tracker__icon{font-size:1.05rem}.tracker__input-row{display:flex;align-items:center;gap:.4rem;flex-wrap:wrap}.tracker__input-row input{width:4.5rem;flex:none}.tracker__unit{color:var(--muted);font-size:.85rem}.tracker__target{font-size:.78rem;color:var(--muted);background:var(--surface);border-radius:999px;padding:.1rem .5rem}.tracker__target--ok{color:var(--primary-strong);background:var(--primary-soft);font-weight:600}.mood{display:flex;align-items:center;gap:.6rem}.mood__face{font-size:1.6rem;line-height:1}.mood input[type=range]{flex:1;accent-color:var(--primary)}.mood__val{font-weight:700;min-width:2ch;text-align:right;color:var(--primary-strong)}.week-review{display:flex;flex-direction:column;gap:1rem;margin-bottom:1rem}.week-review__weights{display:flex;align-items:flex-end;gap:1rem;flex-wrap:wrap}.week-review__weights .field{flex:1 1 140px}.week-review__note{width:100%;resize:vertical}.weight-delta{font-weight:700;padding:.35rem .7rem;border-radius:999px;background:var(--surface-2);color:var(--muted);white-space:nowrap}.weight-delta--down{background:var(--primary-soft);color:var(--primary-strong)}.weight-delta--up{background:#fdecec;color:#c9392f}.cliente-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.5rem}.cliente-list__item{display:flex;align-items:center;justify-content:space-between;padding:.85rem 1rem;border:1px solid var(--border);border-radius:14px;text-decoration:none;color:var(--text);background:var(--surface);transition:border-color .15s,transform .1s,box-shadow .15s}.cliente-list__item:hover{border-color:var(--primary);transform:translateY(-1px);box-shadow:var(--shadow)}.cliente-list__name{font-weight:650}.cliente-list__email{color:var(--muted);font-size:.88rem}.nutrition{display:flex;flex-wrap:wrap;gap:.6rem;margin:0}.nutrition__item{background:var(--surface-2);border:1px solid var(--border);border-radius:10px;padding:.4rem .7rem;min-width:84px}.nutrition__item dt{color:var(--muted);font-size:.72rem;text-transform:uppercase;letter-spacing:.04em}.nutrition__item dd{margin:.1rem 0 0;font-weight:650}.nutrition__unit{font-weight:400;color:var(--muted);font-size:.8rem}.detail-grid{display:grid;grid-template-columns:1fr;gap:1.25rem}@media (min-width: 900px){.detail-grid{grid-template-columns:1.6fr 1fr;align-items:start}}.detail-grid__main{display:flex;flex-direction:column;gap:1.25rem}.day-total{background:var(--primary-soft);border-radius:10px;padding:.75rem .9rem;display:flex;flex-direction:column;gap:.5rem}.day-total__label{font-weight:650;color:var(--primary-strong);font-size:.9rem}.day-total .nutrition__item{background:var(--surface)}.meal-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.75rem}.meal-list__item{border:1px solid var(--border);border-radius:12px;padding:.9rem;display:flex;flex-direction:column;gap:.6rem}.meal-list__head{display:flex;align-items:baseline;justify-content:space-between;gap:.5rem}.meal-list__type{font-weight:650}.meal-list__foods{list-style:none;margin:0;padding:0;color:var(--text);font-size:.9rem;display:flex;flex-direction:column;gap:.15rem}.meal-composer{display:flex;flex-direction:column;gap:1rem}.meal-composer__meta{display:flex;flex-wrap:wrap;gap:1rem}.meal-composer__meta .field{flex:1 1 200px}.food-search{position:relative}.food-search input{width:100%}.food-search__results{list-style:none;margin:.4rem 0 0;padding:.3rem;border:1px solid var(--border);border-radius:10px;background:var(--surface);box-shadow:var(--shadow);max-height:260px;overflow-y:auto}.food-search__option{width:100%;display:flex;align-items:center;justify-content:space-between;gap:.5rem;background:transparent;border:none;border-radius:8px;padding:.5rem .6rem;font:inherit;cursor:pointer;text-align:left}.food-search__option:hover{background:var(--primary-soft)}.meal-lines{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.5rem}.meal-lines__row{display:flex;align-items:center;gap:.6rem;flex-wrap:wrap}.meal-lines__name{flex:1 1 160px;font-weight:600}.meal-lines__grams{width:90px}.analysis-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.75rem}.analysis-card{border:1px solid var(--border);border-radius:12px;padding:.9rem;display:flex;flex-direction:column;gap:.6rem}.analysis-card--draft{background:var(--draft-soft)}.analysis-card__head{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap}.analysis-card__content{margin:0}.analysis-card__editor{width:100%;resize:vertical}.analysis-card__edit{margin:.2rem 0 .1rem}.analysis-card__edit>summary{cursor:pointer;font-size:.82rem;color:var(--muted);-webkit-user-select:none;user-select:none}.analysis-card__edit[open]>summary{margin-bottom:.4rem}.markdown{font-size:.92rem;line-height:1.55}.markdown>:first-child{margin-top:0}.markdown>:last-child{margin-bottom:0}.markdown p{margin:0 0 .6rem}.markdown h1,.markdown h2,.markdown h3,.markdown h4{margin:.9rem 0 .4rem;line-height:1.25;font-weight:700}.markdown h1{font-size:1.1rem}.markdown h2{font-size:1.02rem}.markdown h3,.markdown h4{font-size:.95rem}.markdown ul,.markdown ol{margin:0 0 .6rem;padding-left:1.2rem}.markdown li{margin:.15rem 0}.markdown li::marker{color:var(--primary)}.markdown strong{font-weight:700;color:var(--text)}.markdown a{color:var(--primary)}.markdown code{background:var(--primary-soft);padding:.05rem .3rem;border-radius:6px;font-size:.86em}.markdown blockquote{margin:.4rem 0;padding-left:.8rem;border-left:3px solid var(--primary-soft);color:var(--muted)}.markdown hr{border:none;border-top:1px solid var(--border);margin:.8rem 0}.badge{font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.04em;padding:.2rem .55rem;border-radius:999px}.badge--draft{background:var(--draft);color:#fff}.badge--validated{background:var(--validated);color:#fff}.date-picker{border:1px solid var(--border);border-radius:10px;padding:.45rem .7rem;font:inherit;background:var(--surface)}.gauge{padding:1rem 1.15rem;border-radius:16px;background:linear-gradient(180deg,var(--surface) 0%,var(--surface-2) 100%);border:1px solid var(--border)}.gauge__row{display:flex;align-items:baseline;justify-content:space-between;gap:1rem;margin-bottom:.7rem}.gauge__value{font-size:2rem;font-weight:800;letter-spacing:-.03em;line-height:1}.gauge__value span{font-size:.95rem;font-weight:600;color:var(--muted);letter-spacing:0}.gauge__target{color:var(--muted);font-weight:600;font-size:.9rem}.gauge__track{position:relative;height:12px;border-radius:999px;background:#e9eeeb;overflow:hidden}.gauge__zone{position:absolute;top:0;bottom:0;background:repeating-linear-gradient(45deg,rgba(18,160,116,.14),rgba(18,160,116,.14) 6px,transparent 6px,transparent 12px)}.gauge__fill{position:absolute;top:0;bottom:0;left:0;border-radius:999px;background:linear-gradient(90deg,var(--primary) 0%,var(--primary-strong) 100%);transition:width .4s ease}.gauge--below .gauge__fill{background:linear-gradient(90deg,#f0b34a,var(--draft))}.gauge--above .gauge__fill{background:linear-gradient(90deg,#ec7c6d,var(--danger))}.gauge--below .gauge__value{color:var(--draft)}.gauge--in .gauge__value{color:var(--primary-strong)}.gauge--above .gauge__value{color:var(--danger)}.slot{margin-top:.9rem;padding:.85rem .95rem;border-radius:14px;background:var(--surface);border:1px solid var(--border);border-left:4px solid var(--slot-color, var(--border))}.slot--breakfast{--slot-color: var(--meal-breakfast)}.slot--snack{--slot-color: var(--meal-snack)}.slot--lunch{--slot-color: var(--meal-lunch)}.slot--snack_pm{--slot-color: var(--meal-snack-pm)}.slot--dinner{--slot-color: var(--meal-dinner)}.slot__head{display:flex;align-items:center;gap:.5rem;font-weight:700;margin-bottom:.55rem}.slot__icon{display:inline-grid;place-items:center;width:1.9rem;height:1.9rem;border-radius:9px;background:color-mix(in srgb,var(--slot-color) 22%,white);font-size:1rem}.slot__entries{list-style:none;margin:0 0 .6rem;padding:0;display:flex;flex-direction:column;gap:.35rem}.slot__entries li{display:flex;align-items:center;gap:.6rem;padding:.45rem .65rem;background:var(--surface-2);border-radius:10px}.slot__label{flex:1;font-weight:500}.slot__prot{font-weight:700;color:var(--primary-strong);background:var(--primary-soft);padding:.1rem .5rem;border-radius:999px;font-size:.85rem}.icon-btn{flex:none;width:1.7rem;height:1.7rem;display:inline-flex;align-items:center;justify-content:center;border:none;border-radius:8px;background:transparent;color:var(--muted);font-size:.9rem;cursor:pointer;transition:background .15s,color .15s}.icon-btn:hover{background:var(--surface-3, rgba(0, 0, 0, .06));color:var(--text)}.icon-btn--danger:hover{background:#fdecec;color:#c9392f}.icon-btn--ok{color:var(--primary-strong)}.icon-btn--ok:hover{background:var(--primary-soft)}.icon-btn:disabled{opacity:.5;cursor:default}.slot__entry--edit{gap:.4rem}.slot__edit-label{flex:1;min-width:0}.slot__edit-prot{width:5rem;flex:none}.entry-form{display:flex;gap:.4rem;align-items:flex-start}.entry-form__food{position:relative;flex:1}.entry-form__food input{width:100%;border:1px solid var(--border);border-radius:8px;padding:.45rem .6rem;font:inherit}.entry-form__grams{width:62px}.entry-form__protein{width:78px}.entry-form input[type=number]{border:1px solid var(--border);border-radius:8px;padding:.45rem .5rem;font:inherit}.entry-form__suggestions{position:absolute;z-index:10;left:0;right:0;top:calc(100% + 2px);list-style:none;margin:0;padding:.3rem;background:var(--surface);border:1px solid var(--border);border-radius:10px;box-shadow:var(--shadow);max-height:240px;overflow-y:auto}.entry-form__suggestions button{width:100%;display:flex;justify-content:space-between;gap:.5rem;background:transparent;border:none;border-radius:6px;padding:.4rem .5rem;font:inherit;cursor:pointer;text-align:left}.entry-form__suggestions button:hover{background:var(--primary-soft)}.recipe-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.5rem}.recipe-list__item{display:flex;align-items:baseline;justify-content:space-between;gap:.5rem;padding:.6rem .8rem;border:1px solid var(--border);border-radius:10px;background:var(--surface-2)}.recipe-list__name{font-weight:600}.shopping-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column}.shopping-list__item{display:flex;align-items:center;justify-content:space-between;gap:.5rem;padding:.6rem .2rem;border-bottom:1px solid var(--border)}.shopping-list__item:last-child{border-bottom:none}.shopping-list__qty{font-weight:650;color:var(--primary-strong)}.auth-screen{min-height:100vh;display:grid;place-items:center;padding:1.5rem;background:linear-gradient(160deg,var(--primary-soft),var(--bg))}.auth-card{width:min(380px,100%);background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);padding:2rem 1.75rem;display:flex;flex-direction:column;gap:1rem}.auth-card__brand{font-size:1.7rem;color:var(--primary);text-align:center}.auth-card__brand span{color:var(--accent)}.auth-card__subtitle{margin:-.5rem 0 .5rem;text-align:center;color:var(--muted)}.auth-card__alt{margin:.2rem 0 0;text-align:center;font-size:.88rem;color:var(--muted)}.auth-card__alt a{color:var(--primary-strong);font-weight:600}.account-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:1.25rem;align-items:start}.profile{margin:0 0 1rem}.profile__row{display:flex;justify-content:space-between;gap:1rem;padding:.5rem 0;border-bottom:1px solid var(--border)}.profile__row dt{color:var(--muted)}.profile__row dd{margin:0;font-weight:600}.stack-form{display:flex;flex-direction:column;gap:.8rem}.stack-form .btn{align-self:flex-start}.access-status{display:flex;align-items:center;gap:.4rem;flex-wrap:wrap;margin:0 0 .9rem}.access-actions{margin:0 0 .9rem}.impersonation-banner{display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap;padding:.6rem 1.5rem;background:var(--accent);color:#fff;font-size:.9rem;font-weight:500}.impersonation-banner strong{font-weight:700}.impersonation-banner .btn--ghost{color:#fff;border-color:#fff9}.impersonation-banner .btn--ghost:hover{background:#ffffff26}
