/* Corpo em Foco — Ritual de Progresso */
:root{--ink:#173c3b;--petrol:#0f5b5b;--sand:#f5f2e9;--paper:#fffdf8;--line:#e8e5dc;--muted:#77817d;--sage:#b8cbb7;--coral:#f47e63;--shadow:0 16px 45px rgba(32,63,57,.08);font-family:'DM Sans',sans-serif}*{box-sizing:border-box}html,body{overflow-x:hidden;max-width:100%}body{margin:0;background:var(--sand);color:var(--ink)}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit}button{cursor:pointer}.app-shell{display:flex;min-height:100vh}.sidebar{width:240px;background:var(--petrol);color:#eff5ed;padding:34px 24px;display:flex;flex-direction:column;position:fixed;inset:0 auto 0 0}.logo{display:flex;align-items:center;gap:11px;font-size:14px;letter-spacing:.1em}.logo b{display:block;font-size:13px}.logo small{display:block;font-size:9px;letter-spacing:.25em;color:#b7d1c6;margin-top:2px}.logo-symbol,.brand-mark{display:grid;place-items:center;width:36px;height:36px;border-radius:50%;background:#d9e8ce;color:var(--petrol);font-size:24px;font-weight:700}.sidebar nav{display:grid;gap:7px;margin-top:76px}.sidebar nav a,.sidebar nav button{padding:12px 13px;border-radius:10px;color:#c0d4cb;font-size:14px;background:none;border:0;text-align:left;width:100%;font-family:inherit;cursor:pointer}.sidebar nav a.active,.sidebar nav a:hover,.sidebar nav button:hover{background:#1c6c68;color:#fff}.sidebar-foot{margin-top:auto}.tiny{font-size:11px;line-height:1.5}.sidebar .tiny{color:#98bcb0}.logout{font-size:13px;text-decoration:underline;color:#eef6ed}.main{margin-left:240px;width:calc(100% - 240px);max-width:1400px;padding:42px 5vw 72px;min-width:0}.topbar{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;flex-wrap:wrap}.topbar-left{display:flex;flex-direction:column;gap:4px}.topbar-user{display:flex;align-items:center;gap:14px}.avatar{width:48px;height:48px;border-radius:50%;object-fit:cover;border:2px solid var(--petrol);flex-shrink:0}.avatar-placeholder{width:48px;height:48px;border-radius:50%;background:var(--petrol);color:#fff;display:grid;place-items:center;font-size:20px;font-weight:700;flex-shrink:0;border:2px solid var(--petrol)}.topbar h1{margin:0;font:700 clamp(28px,3.2vw,43px)/1.1 Fraunces,serif;letter-spacing:-.03em}.eyebrow{font-size:10px;letter-spacing:.19em;color:#85918b;font-weight:700;margin:0 0 6px}.light{color:#aad1c3}.section-head{display:flex;align-items:end;justify-content:space-between;gap:20px;margin:52px 0 18px;flex-wrap:wrap}.section-head.minor{margin:0 0 16px}.section-head h2{font:700 27px Fraunces,serif}.section-head h3{font:700 21px Fraunces,serif}.section-head-actions{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.muted{color:var(--muted);font-size:13px;line-height:1.6}.muted.small{font-size:12px;margin:2px 0 12px}.date-picker label{font-size:11px;color:var(--muted);display:grid;gap:5px}.date-picker input,input,select,textarea{border:1px solid var(--line);background:#fffefa;border-radius:9px;padding:11px 12px;color:var(--ink);outline:none;width:100%}.date-picker input:focus,input:focus,select:focus,textarea:focus{border-color:var(--petrol);box-shadow:0 0 0 3px rgba(15,91,91,.1)}.hero-grid{display:grid;grid-template-columns:1.7fr 1fr;gap:18px;margin-top:34px}.hero-card,.goal-card,.metric,.panel{background:var(--paper);border:1px solid rgba(231,228,218,.8);box-shadow:var(--shadow);border-radius:18px}.hero-card{background:var(--petrol);color:#f6f7ef;padding:31px;min-height:255px;display:flex;justify-content:space-between;overflow:hidden;position:relative}.hero-card:after{content:'';position:absolute;width:260px;height:260px;border:1px solid rgba(191,220,202,.25);border-radius:50%;right:-80px;bottom:-130px}.hero-card h2{font:600 clamp(28px,3.4vw,48px)/.98 Fraunces,serif;letter-spacing:-.04em}.hero-copy{color:#bed6cd;font-size:13px;margin:16px 0 22px}.btn{border:0;border-radius:9px;padding:12px 16px;font-weight:700;font-size:13px;transition:transform .16s,box-shadow .16s;display:inline-flex;align-items:center;gap:6px;white-space:nowrap}.btn:active{transform:scale(.97)}.btn.sm{padding:9px 13px;font-size:12px;border-radius:8px}.btn.outline{background:transparent;color:var(--petrol);border:1px solid var(--line)}.primary{background:var(--petrol);color:#fff}.light-btn{background:#e9f1dd;color:var(--petrol)}.full{width:100%;justify-content:center}.hero-orbit{align-self:flex-end;text-align:center;border:1px solid rgba(221,239,225,.35);width:126px;height:126px;border-radius:50%;display:grid;place-content:center;position:relative;z-index:1}.hero-orbit span{font:600 39px Fraunces,serif}.hero-orbit small{font-size:8px;letter-spacing:.13em;color:#acd0c0}.goal-card{padding:24px}.card-heading{font-size:13px;align-items:center}.card-heading a{margin-left:auto;color:var(--coral);font-size:12px;text-decoration:underline}.icon{display:grid;place-items:center;border-radius:50%;width:29px;height:29px;margin-right:8px;font-weight:bold}.coral{background:#fce2d7;color:#c55c43}.goal-card h3{font:600 41px Fraunces,serif;margin-top:30px}.goal-card h3 small{font:400 16px 'DM Sans'}.progress,.mini-bar{height:7px;background:#ecede5;border-radius:10px;overflow:hidden;margin:16px 0 11px}.progress span,.mini-bar i{height:100%;display:block;background:var(--coral);border-radius:inherit}.metric-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:15px;margin-top:18px}.metric{padding:19px;position:relative;min-height:133px}.metric-shortcut{cursor:pointer;transition:transform .15s ease,box-shadow .15s ease}.metric-shortcut:hover,.metric-shortcut:focus{transform:translateY(-3px);box-shadow:0 18px 35px rgba(32,63,57,.14);outline:2px solid rgba(15,91,91,.22);outline-offset:2px}.metric-label{display:block;color:var(--muted);font-size:12px}.metric strong{font:600 31px Fraunces,serif;display:inline-block;margin:18px 3px 4px 0}.metric small{font-size:11px;color:var(--muted)}.metric-icon{position:absolute;right:17px;top:18px;color:var(--coral);font-size:22px}.metric-icon.sage{color:#7da47f}.metric-icon.blue{color:var(--petrol)}.mini-bar{margin:0;height:5px}.mini-bar i{background:var(--sage)}.pill{font-size:11px;color:var(--muted);border:1px solid var(--line);padding:7px 10px;border-radius:20px;white-space:nowrap}.content-grid,.form-grid{display:grid;grid-template-columns:1.7fr 1fr;gap:18px}.panel{padding:24px;min-width:0}.chart-panel{min-height:290px}.chart-wrap{position:relative;height:250px;margin-top:6px}.empty{position:absolute;inset:0;display:grid;place-items:center;color:var(--muted);font-size:13px;text-align:center;padding:20px}.form-card{min-width:0}.form-card h3{font:600 23px Fraunces,serif}.form-card form{display:grid;gap:12px;margin-top:21px;max-width:100%;min-width:0}.form-card label,.profile-fields label,.auth-card label,.modal-fieldset label{display:grid;gap:5px;font-size:11px;color:var(--muted);font-weight:600}.two{display:grid;grid-template-columns:1fr 1fr;gap:10px}.file-label{padding:10px;border:1px dashed #cfd6c9;border-radius:9px}.file-label input{border:0;background:transparent;padding:4px 0}.log-list{display:grid;gap:10px;margin-top:24px}.log-list.compact{max-height:320px;overflow-y:auto}.log-item{display:flex;align-items:center;gap:10px;border-top:1px solid var(--line);padding-top:10px;font-size:12px;min-width:0}.log-item div{display:grid;gap:3px;flex:1;min-width:0}.log-item small{font-size:11px;color:var(--muted);overflow-wrap:anywhere}.log-item strong{font-size:11px;white-space:nowrap}.dot{width:9px;height:9px;border-radius:50%;flex-shrink:0}.sage-dot{background:#89ad83}.coral-dot{background:var(--coral)}.profile-fields{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin:16px 0}.profile-fields label:has(textarea),.profile-fields label:has(input[type=file]){grid-column:1/-1}.alert{padding:12px 16px;border-radius:10px;margin:20px 0;font-size:13px}.success{background:#dcebd9;color:#316139}.danger{background:#fbe0d8;color:#8b3e2e}.auth{display:grid;place-items:center;min-height:100vh;background:radial-gradient(circle at 80% 10%,#d9e8d2,transparent 35%),var(--sand)}.auth-card{width:min(100% - 32px,420px);background:var(--paper);padding:40px;border-radius:20px;box-shadow:var(--shadow)}.brand-mark{margin-bottom:30px}.auth-card h1{font:600 38px Fraunces,serif;line-height:1.03;margin-bottom:12px}.auth-card form{display:grid;gap:15px;margin-top:26px}.auth-card .tiny{color:var(--muted);margin-top:18px}.auth-card input{width:100%}

/* Ações de item */
.log-img{width:40px;height:40px;border-radius:6px;object-fit:cover;background:#eee;flex-shrink:0}
.log-actions{margin-left:auto;display:flex;gap:8px;flex-shrink:0}
.btn-icon{background:none;border:none;padding:4px;cursor:pointer;opacity:.6;font-size:14px;line-height:1}
.btn-icon:hover{opacity:1}
.btn-icon.delete{color:var(--coral)}

/* Dica do dia */
.insight-card{background:var(--petrol);color:#fff;padding:20px;border-radius:16px;margin-bottom:20px}
.insight-card h4{margin:0 0 8px;color:var(--coral);font-family:Fraunces,serif;font-size:15px}
.insight-card p{margin:0;font-size:13px;opacity:.9;line-height:1.5}

/* Modais */
.modal{display:none;position:fixed;inset:0;background:rgba(23,60,59,.45);z-index:1000;align-items:center;justify-content:center;backdrop-filter:blur(4px);padding:24px}
.modal.active{display:flex}
.modal-content{background:var(--paper);border-radius:20px;width:min(100%,450px);box-shadow:var(--shadow);max-height:88vh;display:flex;flex-direction:column}
.modal-content.modal-lg{width:min(100%,620px)}
.modal-head{display:flex;justify-content:space-between;align-items:center;padding:24px 26px 0}
.modal-head h3{font:600 20px Fraunces,serif}
.modal-close{font-size:24px;cursor:pointer;border:none;background:none;color:var(--muted);line-height:1;padding:4px}
.modal-body{padding:20px 26px 26px;overflow-y:auto}
.modal-body form{display:grid;gap:14px}
.modal-fieldset{border:1px solid var(--line);border-radius:14px;padding:16px;display:grid;gap:12px}
.fieldset-title{margin:0;font:700 12px/1 'DM Sans';letter-spacing:.05em;text-transform:uppercase;color:var(--petrol)}
body.modal-open{overflow:hidden}

/* ============================================================
   EVOLUÇÃO MINI (PEQUENO)
   ============================================================ */
.evolution-mini{background:var(--paper);border-radius:14px;padding:12px 16px;border:1px solid rgba(231,228,218,.8);box-shadow:var(--shadow);margin:12px 0}
.evolution-mini-header{margin-bottom:6px}
.evolution-mini-header .eyebrow{font-size:9px;margin:0}
.evolution-mini-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.evolution-mini-card{position:relative;border-radius:10px;overflow:hidden;aspect-ratio:4/5;background:#e7e8df;border:1px solid var(--line);cursor:pointer;transition:transform .2s ease}
.evolution-mini-card:hover{transform:scale(1.02)}
.evolution-mini-card img{width:100%;height:100%;object-fit:cover;display:block}
.evolution-mini-label{position:absolute;bottom:0;left:0;right:0;padding:12px 10px 8px;background:linear-gradient(transparent,rgba(0,0,0,.6));color:#fff;display:flex;justify-content:space-between;align-items:end}
.evolution-mini-label .label{font-weight:700;font-size:9px;letter-spacing:.08em}
.evolution-mini-label .date{font-size:8px;opacity:.8}

/* ============================================================
   SALDO CALÓRICO
   ============================================================ */
.caloric-balance{background:var(--paper);border-radius:14px;padding:16px;border:1px solid rgba(231,228,218,.8);box-shadow:var(--shadow);margin:12px 0}
.caloric-balance-header{margin-bottom:10px}
.caloric-balance-header .eyebrow{font-size:9px;margin:0}
.caloric-balance-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}
.balance-item{background:var(--sand);border-radius:10px;padding:12px 14px;border:1px solid var(--line);text-align:center}
.balance-item .balance-label{display:block;font-size:9px;text-transform:uppercase;letter-spacing:.05em;color:var(--muted);font-weight:600}
.balance-item strong{display:block;font:600 20px/1.2 Fraunces,serif;margin:4px 0 2px}
.balance-item small{font-size:9px;color:var(--muted);display:block}
.balance-result{border-width:2px}
.balance-result.excedente{border-color:#d99272}
.balance-result.excedente strong{color:#d99272}
.balance-result.equilibrio{border-color:#789c7a}
.balance-result.equilibrio strong{color:#789c7a}
.balance-result.deficit{border-color:#4e98ba}
.balance-result.deficit strong{color:#4e98ba}
.caloric-note{font-size:10px;color:var(--muted);margin-top:10px;text-align:center;font-style:italic}

/* ============================================================
   GALERIA
   ============================================================ */
.gallery-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:14px;margin-top:16px}
.gallery-item{position:relative;border-radius:14px;overflow:hidden;aspect-ratio:1;background:var(--paper);border:1px solid var(--line);margin:0;cursor:pointer}
.gallery-item img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .25s ease}
.gallery-item:hover img{transform:scale(1.05)}
.gallery-item figcaption{position:absolute;left:0;right:0;bottom:0;padding:16px 10px 8px;background:linear-gradient(transparent,rgba(11,30,29,.82));color:#fff;font-size:10.5px;line-height:1.3}

/* ============================================================
   FOTOS DE EVOLUÇÃO
   ============================================================ */
.body-photo-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(130px,1fr));gap:12px;margin-top:12px}
.body-photo-grid figure{margin:0;position:relative;overflow:hidden;border-radius:14px;background:#e7e8df;border:1px solid var(--line);cursor:pointer}
.body-photo-grid img{width:100%;aspect-ratio:3/4;object-fit:cover;display:block;transition:transform .25s ease}
.body-photo-grid figure:hover img{transform:scale(1.04)}
.body-photo-grid figcaption{padding:8px;font-size:10.5px;color:var(--muted);background:var(--paper);border-top:1px solid var(--line)}
.no-body-photo{display:grid;gap:6px;padding:25px;border:1px dashed #cfd6c9;border-radius:14px;color:var(--muted);font-size:13px}

/* ============================================================
   LIGHTBOX COM NAVEGAÇÃO
   ============================================================ */
.photo-viewer{display:none;position:fixed;inset:0;z-index:2000;padding:30px;background:rgba(9,25,24,.92);align-items:center;justify-content:center;flex-direction:column}
.photo-viewer.active{display:flex}
.photo-viewer img{max-width:min(92vw,800px);max-height:80vh;object-fit:contain;border-radius:8px}
.photo-viewer .viewer-caption{color:#f2f5ef;font-size:13px;margin-top:14px;text-align:center;opacity:.85}
.photo-viewer .viewer-counter{color:#f2f5ef;font-size:11px;margin-top:6px;opacity:.6;text-align:center}
.photo-viewer button.modal-close{position:absolute;top:18px;right:24px;border:0;background:transparent;color:#fff;font-size:38px;line-height:1;cursor:pointer;z-index:10}

.lightbox-nav{position:absolute;top:50%;transform:translateY(-50%);background:rgba(255,255,255,.12);color:#fff;border:1px solid rgba(255,255,255,.15);border-radius:50%;width:44px;height:44px;font-size:24px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .2s ease;z-index:5}
.lightbox-nav:hover{background:rgba(255,255,255,.25)}
.lightbox-prev{left:16px}
.lightbox-next{right:16px}

/* ============================================================
   PAINEL DIÁRIO
   ============================================================ */
.text-link{display:inline-block;margin-top:6px;color:var(--petrol);font-size:13px;font-weight:700;text-decoration:underline}
.inline-form{display:inline!important;margin:0!important}
.form-card .quick-water{display:flex;gap:9px;margin:14px 0}
.quick-water form{display:block;margin:0}
.quick-water button{border:1px solid #c9dad0;background:#edf4e8;color:var(--petrol);font-size:12px;font-weight:700;border-radius:9px;padding:8px 11px}
.water-form{grid-template-columns:1fr auto;align-items:end}
.water-total{display:flex;align-items:baseline;gap:7px;border-radius:10px;background:#edf4e8;color:var(--petrol);padding:10px 12px;margin:12px 0}
.water-total b{font:600 24px Fraunces,serif}
.water-total span{font-size:12px}
.water-log{display:flex!important;align-items:center;justify-content:space-between;border-top:1px solid var(--line);padding:8px 0!important;margin:0!important;font-size:12px;color:var(--muted)}
.form-card hr{border:0;border-top:1px solid var(--line);margin:22px 0}
.empty-copy{padding:10px 0}

/* Nutrição e IA */
.ai-insight{display:flex;justify-content:space-between;align-items:center;gap:18px}.ai-insight>div{min-width:0}.ai-tip-button{flex-shrink:0}.nutrition-section{margin:34px 0 8px}.nutrition-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px}.nutrient-card{background:var(--paper);border:1px solid var(--line);border-radius:15px;padding:16px;box-shadow:var(--shadow);min-width:0}.nutrient-card span{font-size:12px;font-weight:700;display:block;white-space:nowrap}.nutrient-card b{font:600 27px Fraunces,serif;display:block;margin:15px 0 2px}.nutrient-card small{font-size:10px;color:var(--muted);white-space:nowrap}.nutrient-card .progress{height:5px;margin:13px 0 0}.nutrient-card .progress i{height:100%;display:block;border-radius:inherit;background:#789c7a}.nutrient-card.carbs .progress i{background:#e5a44c}.nutrient-card.fat .progress i{background:#d99272}.nutrient-card.fiber .progress i{background:#70a58e}.nutrient-card.water .progress i{background:#4e98ba}.nutrition-note{margin:14px 2px 0;color:var(--muted);font-size:12px;line-height:1.5}.estimate-result{min-height:18px;margin:0!important;padding:0;color:var(--petrol);font-size:12px;line-height:1.45}.ai-estimate{justify-content:center}.ai-estimate:disabled,.ai-tip-button:disabled{opacity:.65;cursor:wait}
.photo-actions{display:grid;grid-template-columns:1fr 1fr;gap:10px}.photo-actions .file-label{margin:0;min-height:72px;display:grid;align-content:center}.camera-label{border-color:#8cb7a9;background:#f1f7f1;color:var(--petrol)!important}.camera-label:before{content:'📷';font-size:18px;float:right}.camera-label input{margin-top:4px}

/* ============================================================
   RESPONSIVO
   ============================================================ */
@media(max-width:1000px){
  .hero-grid,.content-grid,.form-grid{grid-template-columns:1fr}
  .metric-grid{grid-template-columns:repeat(2,1fr)}
  .nutrition-grid{grid-template-columns:repeat(3,1fr)}
  .main{padding-left:28px;padding-right:28px}
  .caloric-balance-grid{grid-template-columns:repeat(2,1fr)}
}

@media(max-width:700px){
  body{padding-bottom:72px}
  
  /* BARRA INFERIOR */
  .sidebar{position:fixed;z-index:200;width:100%;height:68px;padding:6px 6px env(safe-area-inset-bottom);display:block;inset:auto 0 0;background:rgba(15,91,91,.98);border-top:1px solid rgba(255,255,255,.12);backdrop-filter:blur(8px)}
  .sidebar .logo,.sidebar-foot{display:none}
  .sidebar nav{display:flex;justify-content:space-around;gap:0;margin:0;overflow:visible;height:100%;align-items:center}
  .sidebar nav a,.sidebar nav button{display:grid;place-items:center;gap:2px;min-width:54px;padding:4px 6px;color:#cfe0d8;font-size:8px;line-height:1.05;text-align:center;white-space:normal;border-radius:8px}
  .sidebar nav a span,.sidebar nav button span{font-size:20px;line-height:1}
  .sidebar nav a.active,.sidebar nav a:hover,.sidebar nav button:hover{background:rgba(255,255,255,.12);color:#fff}
  
  .app-shell{display:block}
  .main{margin-left:0;width:100%;padding:16px 14px 80px}
  
  .topbar{flex-wrap:wrap;gap:10px}
  .topbar-user{gap:10px}
  .avatar,.avatar-placeholder{width:40px;height:40px;font-size:16px}
  .topbar h1{font-size:28px}
  .date-picker{width:100%}
  .date-picker input{max-width:none;width:100%}
  
  .hero-card{min-height:240px;padding:20px}
  .hero-orbit{width:80px;height:80px}
  .hero-orbit span{font-size:24px}
  .hero-card h2{font-size:30px}
  
  .metric-grid{grid-template-columns:repeat(2,1fr);gap:10px}
  .metric{padding:14px;min-height:100px}
  .metric strong{font-size:24px;margin:10px 2px 2px 0}
  
  .profile-fields{grid-template-columns:1fr}
  .photo-actions{grid-template-columns:1fr 1fr}
  .photo-actions .file-label{font-size:10px;min-height:60px}
  .nutrition-grid{grid-template-columns:repeat(2,1fr)}
  .nutrient-card:last-child{grid-column:1/-1}
  
  .ai-insight{align-items:flex-start;flex-direction:column}
  .ai-tip-button{width:100%;justify-content:center}
  
  .section-head{margin-top:30px}
  .panel{padding:16px}
  .water-form{grid-template-columns:1fr}
  .log-item{align-items:flex-start}
  .log-actions{flex:none}
  
  .gallery-grid{grid-template-columns:repeat(2,1fr);gap:10px}
  .gallery-item figcaption{font-size:9px;padding:10px 8px 6px}
  
  .body-photo-grid{grid-template-columns:repeat(2,1fr)}
  .modal-content{max-height:92vh;width:min(100% - 16px,450px)}
  
  .evolution-mini{padding:10px 12px}
  .evolution-mini-grid{gap:8px}
  .evolution-mini-label .label{font-size:8px}
  .evolution-mini-label .date{font-size:7px}
  
  .caloric-balance{padding:12px}
  .caloric-balance-grid{grid-template-columns:1fr 1fr;gap:8px}
  .balance-item{padding:10px}
  .balance-item strong{font-size:17px}
  .balance-item .balance-label{font-size:8px}
  .balance-item small{font-size:8px}
  
  .photo-viewer{padding:12px}
  .photo-viewer img{max-height:70vh;max-width:95vw}
  .photo-viewer .viewer-caption{font-size:11px}
  .photo-viewer button.modal-close{top:8px;right:12px;font-size:28px}
  .lightbox-nav{width:34px;height:34px;font-size:18px}
  .lightbox-prev{left:6px}
  .lightbox-next{right:6px}
  
  .two{grid-template-columns:1fr}
}