/* CoreDiet | CSS canônico da página paciente.php
 * Gerado pela auditoria estrutural em 2026-07-28.
 * Ordem original da cascata preservada.
 */

/* 1. inline de paciente.php */
:root{
      --cd-navy:#07182b;
      --cd-navy-2:#0b2745;
      --cd-blue:#2f8df0;
      --cd-blue-2:#1673ff;
      --cd-bg:#f4f7fb;
      --cd-card:#ffffff;
      --cd-line:#dfe8f2;
      --cd-muted:#64748b;
      --cd-soft:#f8fbff;
      --cd-green:#0fa76f;
      --cd-red:#e03131;
      --cd-orange:#f59e0b;
      --cd-shadow:0 8px 24px rgba(7,24,43,.055);
    }

    *{box-sizing:border-box}
    html,body{margin:0;min-height:100%;background:var(--cd-bg);font-family:'DM Sans',system-ui,-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;color:var(--cd-navy)}
    body{overflow-x:hidden}
    button,input,textarea,select{font-family:inherit}
    a{text-decoration:none;color:inherit}
    .hidden{display:none!important}

    .login-wrap{
      min-height:100vh;
      height:100vh;
      max-width:1420px;
      margin:0 auto;
      padding:20px 22px;
      display:grid;
      grid-template-columns:minmax(0,.95fr) minmax(420px,.88fr);
      gap:24px;
      align-items:stretch;
      background:
        radial-gradient(circle at 12% 10%,rgba(47,141,240,.12),transparent 32%),
        radial-gradient(circle at 86% 28%,rgba(15,167,111,.08),transparent 28%);
    }
    .login-hero,.login-box{
      background:rgba(255,255,255,.92);
      border:1px solid rgba(203,218,236,.84);
      border-radius:32px;
      box-shadow:var(--cd-shadow);
      overflow:hidden;
      backdrop-filter:blur(14px);
      min-height:0;
      max-height:calc(100vh - 40px);
    }
    .login-hero{
      min-height:0;
      padding:40px 42px;
      display:flex;
      flex-direction:column;
      justify-content:flex-start;
    }
    .login-eyebrow{display:block;margin-bottom:22px;color:var(--cd-blue);font-size:13px;font-weight:950;letter-spacing:.16em;text-transform:uppercase}
    .brand-logo{display:block;width:112px;height:auto;margin:0 0 38px}
    .login-hero h1{
      margin:0;
      font-family:'Sora',system-ui,-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;
      font-size:clamp(34px,5vw,66px);
      line-height:.94;
      letter-spacing:-.065em;
      font-weight:900;
      color:var(--cd-navy);
      max-width:720px;
    }
    .login-hero h1 em{display:block;font-family:'DM Sans',system-ui,sans-serif;font-style:italic;font-weight:400;letter-spacing:-.055em}
    .login-hero h1 span{color:var(--cd-blue)}
    .login-hero p{
      margin:22px 0 0;
      max-width:620px;
      color:#51637b;
      font-size:16px;
      line-height:1.5;
      font-weight:800;
      letter-spacing:-.01em;
    }
    .login-head{padding:34px 38px 24px;border-bottom:1px solid var(--cd-line)}
    .login-pill{display:inline-flex;align-items:center;gap:9px;height:39px;padding:0 17px;border:1px solid #cfdeef;background:rgba(255,255,255,.72);border-radius:999px;color:var(--cd-navy);font-size:13px;font-weight:950;letter-spacing:.075em;text-transform:uppercase;margin-bottom:18px;box-shadow:0 6px 18px rgba(7,24,43,.035)}
    .login-pill::before{content:'';width:10px;height:10px;border-radius:50%;background:#22c7a8;box-shadow:0 0 0 7px rgba(34,199,168,.13);flex:0 0 auto}
    .login-mini{display:block;font-size:13px;color:var(--cd-blue);text-transform:uppercase;letter-spacing:.12em;font-weight:950;margin-bottom:7px}
    .login-head h2{font-family:'Sora',system-ui,-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;margin:0;font-size:36px;line-height:1;letter-spacing:-.075em;font-weight:900;color:var(--cd-navy)}
    .login-head p{margin:12px 0 0;color:#607188;font-size:15px;line-height:1.42;font-weight:800}
    .login-body{padding:24px 38px 26px}
    .alert{display:none;margin:0 0 18px;padding:14px 16px;border-radius:17px;font-size:14px;line-height:1.45;font-weight:850}
    .alert.show{display:block}
    .alert.ok{background:#e9fbf2;border:1px solid #b9efd2;color:#08764a}
    .alert.erro{background:#fff1f1;border:1px solid #ffc5c5;color:#b91c1c}
    .alert.info{background:#eef6ff;border:1px solid #cfe4ff;color:#075eaa}
    .field{margin-bottom:17px}
    .field label{display:block;margin:0 0 8px;font-size:11px;font-weight:900;letter-spacing:.12em;text-transform:uppercase;color:#66758b}
    .input-wrap{position:relative}
    .input-wrap i{position:absolute;left:17px;top:50%;transform:translateY(-50%);color:#8da1b7;font-size:15px;pointer-events:none}
    .input-wrap input,.input-wrap textarea,.input-wrap select{
      width:100%;
      min-height:54px;
      border:1.5px solid #dbe7f4;
      border-radius:17px;
      background:#fff;
      padding:0 48px 0 46px;
      color:var(--cd-navy);
      font-size:14px;
      font-weight:800;
      outline:none;
      transition:.18s ease;
    }
    .input-wrap textarea{padding:15px 16px;min-height:120px;resize:vertical;line-height:1.55}
    .input-wrap input:focus,.input-wrap textarea:focus,.input-wrap select:focus{border-color:#8bc2ff;box-shadow:0 0 0 4px rgba(47,141,240,.12)}
    .toggle-pass{position:absolute;right:14px;top:50%;transform:translateY(-50%);width:32px;height:32px;border:0;background:transparent;color:#8da1b7;cursor:pointer}
    .form-row{display:flex;align-items:center;justify-content:space-between;gap:14px;margin:4px 0 16px;color:#62738a;font-size:12px;font-weight:800}
    .link-btn{border:0;background:transparent;color:var(--cd-blue-2);font-weight:900;cursor:pointer;padding:0;font-size:13px}
    .main-btn{
      width:100%;
      min-height:54px;
      border:0;
      border-radius:18px;
      background:var(--cd-navy);
      color:#fff;
      font-size:15px;
      font-weight:900;
      cursor:pointer;
      display:inline-flex;
      align-items:center;
      justify-content:center;
      gap:9px;
      box-shadow:0 18px 38px rgba(7,24,43,.17);
      transition:.18s ease;
    }
    .main-btn:hover{background:#041323;transform:translateY(-1px)}
    .main-btn:disabled{opacity:.65;cursor:not-allowed;transform:none}
    .under-text{text-align:center;color:#708096;font-size:12.5px;line-height:1.45;font-weight:750;margin:20px 0 0}

    .shell{min-height:100vh;display:grid;grid-template-columns:286px minmax(0,1fr);background:var(--cd-bg)}
    .sidebar{
      position:sticky;
      top:0;
      align-self:start;
      min-height:100vh;
      background:linear-gradient(180deg,#07182b 0%,#0a3765 100%);
      color:#fff;
      padding:24px 18px;
      box-shadow:16px 0 50px rgba(7,24,43,.18);
    }
    .side-logo{display:block;width:126px;height:auto;margin:0 0 20px 8px}
    .patient-card{
      display:flex;
      gap:12px;
      align-items:center;
      min-height:72px;
      padding:13px;
      border:1px solid rgba(255,255,255,.14);
      background:rgba(255,255,255,.08);
      border-radius:22px;
      margin-bottom:18px;
    }
    .avatar{
      width:44px;height:44px;border-radius:16px;
      background:rgba(47,141,240,.25);
      border:1px solid rgba(255,255,255,.18);
      color:#dbeafe;
      display:grid;
      place-items:center;
      font-weight:900;
      overflow:hidden;
      flex:0 0 auto;
    }
    .avatar img{width:100%;height:100%;object-fit:cover;display:block}
    .patient-card b{display:block;font-size:14px;line-height:1.15;font-weight:900;color:#fff}
    .patient-card span{display:block;margin-top:3px;color:#a9c0d9;font-size:11px;font-weight:800}
    .nav{display:grid;gap:7px}
    .nav button{
      width:100%;
      min-height:46px;
      border:0;
      border-radius:15px;
      background:transparent;
      color:#b8cbe0;
      display:flex;
      align-items:center;
      gap:12px;
      padding:0 14px;
      text-align:left;
      cursor:pointer;
      font-weight:850;
      font-size:13.5px;
      transition:.15s ease;
    }
    .nav button i{width:18px;text-align:center}
    .nav button:hover,.nav button.active{background:rgba(255,255,255,.13);color:#fff}
    .side-footer{margin-top:17px;padding-top:14px;border-top:1px solid rgba(255,255,255,.13)}
    .logout{color:#ffd6d6!important}

    .main{min-width:0;padding:18px 20px 28px}
    .topbar{
      min-height:72px;
      background:rgba(255,255,255,.96);
      border:1px solid var(--cd-line);
      border-radius:20px;
      box-shadow:var(--cd-shadow);
      padding:13px 16px;
      margin-bottom:12px;
      display:flex;
      align-items:center;
      justify-content:space-between;
      gap:16px;
    }
    .topbar h1{font-family:'Sora',system-ui,-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;margin:0;color:var(--cd-navy);font-size:21px;line-height:1.1;letter-spacing:-.035em;font-weight:750}
    .topbar p{margin:4px 0 0;color:#66758b;font-size:12.5px;line-height:1.35;font-weight:600}
    .top-actions{display:flex;gap:10px;align-items:center;flex-wrap:wrap}
    .small-btn{
      min-height:38px;
      border-radius:12px;
      border:1px solid #cfe0f2;
      background:#fff;
      color:var(--cd-navy);
      padding:0 13px;
      font-size:12px;
      font-weight:750;
      cursor:pointer;
      display:inline-flex;
      align-items:center;
      justify-content:center;
      gap:8px;
      transition:.16s ease;
    }
    .small-btn:hover{background:#f8fbff;transform:translateY(-1px)}
    .small-btn.primary{background:var(--cd-blue-2);border-color:var(--cd-blue-2);color:#fff}
    .small-btn.dark{background:var(--cd-navy);border-color:var(--cd-navy);color:#fff}
    .small-btn.green{background:var(--cd-green);border-color:var(--cd-green);color:#fff}
    .small-btn.red{background:#fff1f1;border-color:#fecaca;color:#b91c1c}
    .panel{display:none}
    .panel.active{display:block}
    .grid{display:grid;gap:16px}
    .grid.cards{grid-template-columns:repeat(4,minmax(0,1fr))}
    .grid.two{grid-template-columns:1.04fr .96fr}
    .card{
      background:#fff;
      border:1px solid var(--cd-line);
      border-radius:18px;
      box-shadow:0 4px 16px rgba(7,24,43,.035);
      padding:18px;
      overflow:hidden;
    }
    .metric small{display:block;text-transform:uppercase;letter-spacing:.08em;color:#7b8da4;font-size:10.5px;font-weight:900}
    .metric strong{display:block;margin-top:8px;font-size:30px;line-height:1;font-weight:900;color:#003b71}
    .metric span{display:block;margin-top:8px;color:#8190a5;font-size:12.5px;font-weight:800}
    .card-title{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-bottom:16px}
    .card-title h2,.card-title h3{font-family:'Sora',system-ui,-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;margin:0;color:var(--cd-navy);font-size:17px;line-height:1.18;font-weight:750;letter-spacing:-.025em}
    .card-title i{color:var(--cd-blue)}
    .empty{padding:30px;text-align:center;color:#8a9ab0;font-weight:850;background:#f8fbff;border:1px dashed #cad9ea;border-radius:22px}
    .muted{color:#728299;font-weight:750}
    .split-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:14px}
    .action-list{display:grid;gap:12px}
    .action-card{
      display:flex;justify-content:space-between;align-items:center;gap:12px;
      padding:16px;border:1px solid var(--cd-line);border-radius:20px;background:#fff;
    }
    .action-card b{display:block;font-size:14px;font-weight:900;color:var(--cd-navy)}
    .action-card span{display:block;margin-top:3px;font-size:12.5px;font-weight:750;color:#697a90;line-height:1.4}
    .badge{display:inline-flex;align-items:center;gap:6px;border-radius:999px;padding:7px 10px;font-size:10.5px;font-weight:900;white-space:nowrap}
    .badge.blue{background:#eaf4ff;color:#1267c7}
    .badge.green{background:#e9fbf2;color:#08764a}
    .badge.red{background:#fff1f1;color:#b91c1c}
    .badge.gray{background:#f1f5f9;color:#64748b}
    .badge.orange{background:#fff7ed;color:#b45309}

    .meal-card{border:1px solid var(--cd-line);border-radius:16px;background:#fff;overflow:hidden;margin-bottom:12px}
    .meal-head{display:flex;justify-content:space-between;gap:12px;align-items:center;padding:12px 14px;background:#f8fbff;border-bottom:1px solid var(--cd-line)}
    .meal-head h3{margin:0;font-size:14px;font-weight:750;color:var(--cd-navy)}
    .time-pill{display:inline-flex;align-items:center;gap:6px;background:#eaf4ff;color:var(--cd-blue-2);border-radius:999px;padding:6px 9px;font-size:10.5px;font-weight:750}
    .food-list{display:grid;padding:4px 14px 10px}
    .food-row{display:flex;justify-content:space-between;gap:12px;border-bottom:1px solid #eef2f7;padding:9px 0;font-size:12.5px;font-weight:650;color:#334155}
    .food-row:last-child{border-bottom:0}
    .qty{color:var(--cd-navy);background:#f1f5f9;border-radius:999px;padding:4px 8px;font-size:10.5px;font-weight:750;white-space:nowrap}
    .note{margin:0 18px 16px;padding:13px;border-radius:16px;background:#fff7ed;border-left:4px solid var(--cd-orange);color:#9a3412;font-size:12.5px;font-weight:750;line-height:1.5}
    .free-text{font-size:14.5px;line-height:1.75;color:#334155;font-weight:650}
    .free-text p{margin:0 0 12px}

    .diary-layout{display:grid;grid-template-columns:340px minmax(0,1fr);gap:16px}
    .diary-panel{background:#f8fbff;border:1px solid var(--cd-line);border-radius:24px;padding:16px}
    .upload-card{
      position:relative;
      min-height:104px;
      display:flex;
      flex-direction:column;
      justify-content:center;
      gap:8px;
      border:1.5px dashed #bcd0e6;
      border-radius:20px;
      background:#fff;
      padding:16px;
      cursor:pointer;
      transition:.16s ease;
      margin-bottom:12px;
    }
    .upload-card:hover{border-color:var(--cd-blue);background:#f7fbff}
    .upload-card input{position:absolute;inset:0;opacity:0;cursor:pointer}
    .upload-card b{font-size:13px;font-weight:900;color:var(--cd-navy)}
    .upload-card span{font-size:12px;font-weight:750;color:#6b7d93;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
    .diary-history{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
    .diary-item{border:1px solid var(--cd-line);border-radius:22px;background:#fff;overflow:hidden}
    .diary-img{height:160px;background:#edf4fb;display:grid;place-items:center;color:#91a4bb}
    .diary-img img{width:100%;height:100%;object-fit:cover;display:block}
    .diary-body{padding:14px}
    .diary-body b{display:block;font-size:14px;font-weight:900;color:var(--cd-navy)}
    .diary-body p{margin:7px 0 0;color:#52637a;font-size:12.5px;font-weight:750;line-height:1.45}
    .textarea-clean{
      width:100%;
      min-height:138px;
      border:1.5px solid var(--cd-line);
      border-radius:20px;
      padding:14px 15px;
      outline:none;
      font-weight:750;
      font-size:14px;
      line-height:1.55;
      resize:vertical;
      background:#fff;
    }

    .recipe-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
    .recipe-card{border:1px solid var(--cd-line);border-radius:26px;background:#fff;overflow:hidden;box-shadow:0 12px 34px rgba(7,24,43,.06)}
    .recipe-photo{height:180px;background:#edf4fb;display:grid;place-items:center;color:#8ea1b8}
    .recipe-photo img{width:100%;height:100%;object-fit:cover;display:block}
    .recipe-body{padding:16px}
    .recipe-body h3{margin:0;font-size:17px;font-weight:900;color:var(--cd-navy);letter-spacing:-.02em}
    .recipe-body p{margin:8px 0 0;color:#63758c;font-size:12.5px;line-height:1.45;font-weight:750}
    .recipe-meta{display:flex;gap:8px;flex-wrap:wrap;margin-top:12px}

    .feedback-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
    .feedback-card{border:1px solid var(--cd-line);border-radius:24px;background:#fff;padding:16px;display:grid;gap:10px}
    .feedback-card img{width:100%;max-height:180px;object-fit:cover;border-radius:18px;background:#edf4fb}
    .feedback-card b{font-size:15px;font-weight:900;color:var(--cd-navy)}
    .feedback-card p{margin:0;color:#52637a;font-size:13px;font-weight:750;line-height:1.5}
    .progress{height:12px;border-radius:999px;background:#e6eef7;overflow:hidden}
    .progress span{display:block;height:100%;border-radius:999px;background:linear-gradient(90deg,var(--cd-blue),#52b8ff);width:0}
    .chart{display:flex;align-items:flex-end;gap:8px;height:220px;padding:18px;border-radius:22px;background:#f8fbff;border:1px solid var(--cd-line);overflow:auto}
    .bar{min-width:42px;display:flex;flex-direction:column;align-items:center;justify-content:flex-end;height:100%;gap:8px}
    .bar span{width:100%;border-radius:10px 10px 4px 4px;background:linear-gradient(180deg,var(--cd-blue),var(--cd-navy));min-height:4px}
    .bar small{font-size:10px;color:#718097;font-weight:900;white-space:nowrap}

    .chat-shell{display:grid;grid-template-columns:minmax(0,1fr) 280px;gap:16px}
    .chat-box{height:540px;overflow:auto;border:1px solid var(--cd-line);border-radius:24px;background:#f8fbff;padding:18px;display:flex;flex-direction:column;gap:10px}
    .msg{max-width:72%;padding:12px 14px;border-radius:18px;font-size:13.5px;font-weight:750;line-height:1.45}
    .msg.paciente{align-self:flex-end;background:var(--cd-blue-2);color:#fff;border-bottom-right-radius:6px}
    .msg.nutri{align-self:flex-start;background:#fff;color:#22324a;border:1px solid var(--cd-line);border-bottom-left-radius:6px}
    .msg small{display:block;margin-top:5px;font-size:10px;opacity:.72;font-weight:800}
    .chat-form{display:grid;grid-template-columns:1fr 118px;gap:10px;margin-top:12px}
    .chat-form input{height:52px;border-radius:17px;border:1px solid var(--cd-line);padding:0 16px;font-weight:800;outline:none}

    .modal{position:fixed;inset:0;background:rgba(7,24,43,.62);backdrop-filter:blur(8px);z-index:9999;display:none;align-items:center;justify-content:center;padding:24px}
    .modal.open{display:flex}
    .modal-card{width:min(860px,100%);max-height:88vh;overflow:auto;background:#fff;border-radius:28px;border:1px solid var(--cd-line);box-shadow:0 30px 90px rgba(0,0,0,.24)}
    .modal-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:20px 22px;border-bottom:1px solid var(--cd-line)}
    .modal-head h3{margin:0;font-family:'Montserrat',system-ui,-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;font-size:22px;letter-spacing:-.04em;color:var(--cd-navy)}
    .modal-body{padding:22px}
    .modal-close{width:42px;height:42px;border-radius:14px;border:1px solid var(--cd-line);background:#fff;cursor:pointer;color:var(--cd-navy);font-weight:900}

    @media(max-width:1180px){
      .grid.cards{grid-template-columns:repeat(2,minmax(0,1fr))}
      .grid.two,.diary-layout,.chat-shell{grid-template-columns:1fr}
      .recipe-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
    }

    @media(min-width:941px){
      body.cd-login-mode{overflow-y:hidden}
    }
    @media(max-height:860px) and (min-width:941px){
      .login-wrap{padding:14px 18px;gap:18px;max-width:1320px}
      .login-hero,.login-box{max-height:calc(100vh - 28px)}
      .login-hero{padding:32px 34px}
      .login-eyebrow{margin-bottom:16px}
      .login-hero h1{font-size:clamp(32px,4vw,54px)}
      .login-hero p{margin-top:18px;font-size:14px;line-height:1.42}
      .login-head{padding:28px 32px 18px}
      .login-pill{height:36px;margin-bottom:14px;font-size:12px}
      .login-mini{font-size:12px;margin-bottom:5px}
      .login-head h2{font-size:32px}
      .login-head p{margin-top:10px;font-size:14px;line-height:1.35}
      .login-body{padding:18px 32px 20px}
      .field{margin-bottom:14px}
      .field label{margin-bottom:6px;font-size:10.5px}
      .input-wrap input,.input-wrap textarea,.input-wrap select{min-height:50px;font-size:13.5px}
      .form-row{margin:2px 0 14px;font-size:11.5px}
      .main-btn{min-height:50px;font-size:13.5px}
      .under-text{margin-top:14px;font-size:11.5px}
    }

    @media(max-width:940px){
      body{overflow-y:auto}
      .login-wrap{grid-template-columns:1fr;height:auto;min-height:100vh;padding:22px}
      .login-hero{min-height:auto}
      .shell{grid-template-columns:1fr}
      .sidebar{position:relative;min-height:auto}
      .nav{grid-template-columns:repeat(2,minmax(0,1fr))}
      .main{padding:18px}
      .feedback-grid,.diary-history,.recipe-grid{grid-template-columns:1fr}
    }
  
/* Desktop paciente — refinamento final */
.main{padding:16px 18px 24px}
.topbar{min-height:70px;border-radius:20px;padding:12px 16px;margin-bottom:12px}
.topbar h1{font-size:20px!important;letter-spacing:-.025em}
.topbar p{font-size:12px;margin-top:3px}
.card{border-radius:18px;padding:16px}
.card-title{margin-bottom:12px}
.card-title h2,.card-title h3{font-size:16px!important;letter-spacing:-.02em}
.small-btn{min-height:36px;border-radius:11px;font-size:11.5px;padding:0 12px}
.grid{gap:12px}
.grid.cards{grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}
.metric strong{font-size:24px!important}
.metric span{font-size:12px;margin-top:6px}
.sidebar{width:286px}
.nav button{min-height:42px;font-size:13px;border-radius:13px}
.patient-card span:empty{display:none}
.meal-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.meal-card{border-radius:16px;margin:0;box-shadow:0 3px 12px rgba(7,24,43,.025)}
.meal-head{padding:12px 14px}
.meal-head h3{font-size:14px}
.food-list{padding:4px 14px 10px}
.food-row{padding:9px 0;font-size:12.5px}
.qty{font-size:11px;padding:4px 8px}
.note{margin:0 14px 12px;font-size:12px;padding:10px}
.checkin-box{border-top:1px solid #eef2f7;background:#fbfdff;padding:10px 12px;display:grid;gap:9px}
.checkin-toggle{width:auto;min-width:132px;justify-self:end;justify-content:center;background:#eef5ff!important;border-color:#d8e8ff!important;color:#075fcc!important}
.checkin-form{display:none;grid-template-columns:1fr 1fr;gap:10px}
.checkin-form.open{display:grid}
.checkin-form textarea{grid-column:1/-1;width:100%;min-height:74px;border:1px solid var(--cd-line);border-radius:14px;padding:10px 12px;font-size:12.5px;font-weight:750;resize:vertical;outline:none}
.checkin-file{position:relative;min-height:46px;border:1px dashed #bfd0e4;border-radius:14px;background:#fff;display:flex;align-items:center;padding:0 12px;color:#66758b;font-size:12px;font-weight:850;overflow:hidden}
.checkin-file input{position:absolute;inset:0;opacity:0;cursor:pointer}
.checkin-actions{grid-column:1/-1;display:flex;gap:8px;align-items:center;justify-content:flex-end}
.checkin-status{font-size:11px;font-weight:900;color:#08764a}
.diary-layout{grid-template-columns:320px minmax(0,1fr)}
.diary-history{grid-template-columns:repeat(3,minmax(0,1fr))}
.diary-img{height:132px}
.diary-body{padding:12px}
.recipe-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}
.recipe-photo{height:138px}
.recipe-body{padding:13px}
.recipe-body h3{font-size:14.5px}
.recipe-body p{font-size:12px}
.feedback-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.feedback-card{border-radius:20px;padding:13px}
.chat-shell{display:block}
.chat-box{height:480px;border-radius:20px}
.msg{font-size:13px}
.shop-grid,.training-grid,.runner-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.shop-card,.training-card,.runner-card{border:1px solid var(--cd-line);border-radius:20px;background:#fff;padding:14px;box-shadow:0 10px 28px rgba(7,24,43,.05)}
.shop-card h3,.training-card h3,.runner-card h3{margin:0 0 10px;font-size:15px;color:var(--cd-navy);font-weight:900}
.shop-item,.training-item{display:flex;justify-content:space-between;gap:10px;border-top:1px solid #eef2f7;padding:9px 0;font-size:12.5px;font-weight:750;color:#334155}
.shop-item:first-of-type,.training-item:first-of-type{border-top:0}
@media(max-width:1180px){
  .meal-grid,.shop-grid,.training-grid,.runner-grid,.recipe-grid,.feedback-grid,.diary-history{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:760px){
  .meal-grid,.shop-grid,.training-grid,.runner-grid,.recipe-grid,.feedback-grid,.diary-history,.checkin-form{grid-template-columns:1fr}
  .checkin-toggle{width:100%;justify-self:stretch}
}


/* Ajustes solicitados — dieta, áudio, treino e receitas */
.note{
  background:#eef6ff!important;
  border-left-color:var(--cd-blue-2)!important;
  color:#0b4d87!important;
}
.recorder-row{
  grid-column:1/-1;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  min-height:46px;
  border:1px solid #cfe0f2;
  border-radius:14px;
  background:#fff;
  padding:8px 10px;
}
.record-btn{
  min-height:34px;
  border:0;
  border-radius:11px;
  background:#eef6ff;
  color:#0b4d87;
  font-size:12px;
  font-weight:900;
  padding:0 12px;
  cursor:pointer;
  display:inline-flex;
  align-items:center;
  gap:7px;
}
.record-btn.recording{background:#fff1f1;color:#b91c1c}
.record-state{
  font-size:11px;
  font-weight:900;
  color:#64748b;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.training-board{display:grid;gap:14px}
.training-plan{
  border:1px solid var(--cd-line);
  border-radius:24px;
  background:#fff;
  overflow:hidden;
  box-shadow:0 12px 34px rgba(7,24,43,.06);
}
.training-plan-head{
  display:flex;
  justify-content:space-between;
  gap:14px;
  align-items:flex-start;
  padding:16px 18px;
  background:linear-gradient(135deg,#07182b,#0b3765);
  color:#fff;
}
.training-plan-head h3{
  margin:0;
  color:#fff;
  font-size:18px;
  line-height:1.15;
  font-weight:950;
  letter-spacing:-.025em;
}
.training-plan-head span{
  display:block;
  margin-top:6px;
  color:#b9d4ef;
  font-size:12px;
  font-weight:800;
}
.training-progress{
  min-width:150px;
  text-align:right;
  font-size:12px;
  font-weight:900;
  color:#dbeafe;
}
.training-progress .progress{margin-top:8px;background:rgba(255,255,255,.18)}
.training-progress .progress span{background:#2f8df0}
.session-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;padding:14px}
.session-card{
  border:1px solid var(--cd-line);
  border-radius:20px;
  background:#fbfdff;
  overflow:hidden;
}
.session-head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  padding:13px 14px;
  border-bottom:1px solid #e7eef7;
  background:#fff;
}
.session-head h4{
  margin:0;
  font-size:15px;
  line-height:1.18;
  font-weight:950;
  color:var(--cd-navy);
  letter-spacing:-.018em;
}
.exercise-list{display:grid;gap:10px;padding:12px}
.exercise-card{
  display:grid;
  grid-template-columns:58px minmax(0,1fr) auto;
  gap:12px;
  align-items:center;
  border:1px solid #e5edf6;
  border-radius:17px;
  background:#fff;
  padding:10px;
}
.exercise-media{
  width:58px;
  height:58px;
  border-radius:15px;
  background:#eef6ff;
  overflow:hidden;
  display:grid;
  place-items:center;
  color:#2f8df0;
}
.exercise-media img{width:100%;height:100%;object-fit:cover;display:block}
.exercise-main b{
  display:block;
  font-size:13.5px;
  line-height:1.2;
  font-weight:950;
  color:var(--cd-navy);
}
.exercise-main .meta{
  display:flex;
  gap:6px;
  flex-wrap:wrap;
  margin-top:7px;
}
.exercise-main .meta span{
  display:inline-flex;
  align-items:center;
  min-height:24px;
  border-radius:999px;
  background:#f1f5f9;
  color:#40516a;
  padding:0 8px;
  font-size:10.5px;
  font-weight:900;
}
.exercise-action{
  width:38px;
  height:38px;
  border-radius:13px;
  border:1px solid #cfe0f2;
  background:#fff;
  color:#64748b;
  cursor:pointer;
  font-weight:900;
}
.exercise-action.done{background:#e9fbf2;border-color:#b9efd2;color:#08764a}
.recipe-grid{
  grid-template-columns:repeat(auto-fill,minmax(280px,340px))!important;
  align-items:start;
}
.recipe-card{
  border-radius:24px!important;
  box-shadow:0 14px 36px rgba(7,24,43,.07)!important;
}
.recipe-photo{height:150px!important}
.recipe-body{padding:14px!important}
.recipe-body h3{
  font-size:15.5px!important;
  line-height:1.22!important;
  letter-spacing:-.025em!important;
}
.recipe-body p{
  display:-webkit-box;
  -webkit-line-clamp:4;
  -webkit-box-orient:vertical;
  overflow:hidden;
  font-size:12px!important;
  line-height:1.45!important;
}
@media(max-width:1180px){
  .session-list{grid-template-columns:1fr}
}
@media(max-width:760px){
  .exercise-card{grid-template-columns:48px minmax(0,1fr)}
  .exercise-action{grid-column:1/-1;width:100%}
  .training-plan-head{display:block}
  .training-progress{text-align:left;margin-top:12px}
}


/* Menu lateral em ícones com tooltip */
.shell{grid-template-columns:82px minmax(0,1fr)!important}
.sidebar{width:82px!important;padding:18px 10px!important}
.side-logo{width:48px!important;height:48px!important;object-fit:contain;margin:0 auto 18px!important;padding:9px;border-radius:18px;background:rgba(255,255,255,.10);border:1px solid rgba(255,255,255,.13)}
.patient-card{justify-content:center;padding:8px!important;min-height:60px;margin-bottom:14px!important}
.patient-card>div:not(.avatar){display:none!important}
.avatar{width:44px!important;height:44px!important}
.nav{gap:8px!important}
.nav button{
  position:relative!important;
  width:52px!important;
  min-height:52px!important;
  padding:0!important;
  justify-content:center!important;
  border-radius:17px!important;
  font-size:0!important;
  margin:0 auto!important;
}
.nav button i{width:auto!important;font-size:17px!important}
.nav button::after{
  content:attr(data-tip);
  position:absolute;
  left:calc(100% + 12px);
  top:50%;
  transform:translateY(-50%) translateX(-4px);
  min-width:max-content;
  max-width:260px;
  padding:11px 13px;
  border-radius:14px;
  background:#07182b;
  color:#fff;
  font-size:12px;
  line-height:1;
  font-weight:900;
  letter-spacing:-.01em;
  box-shadow:0 18px 42px rgba(7,24,43,.22);
  opacity:0;
  pointer-events:none;
  visibility:hidden;
  transition:.16s ease;
  z-index:50;
}
.nav button::before{
  content:'';
  position:absolute;
  left:calc(100% + 5px);
  top:50%;
  transform:translateY(-50%);
  border-top:7px solid transparent;
  border-bottom:7px solid transparent;
  border-right:7px solid #07182b;
  opacity:0;
  visibility:hidden;
  transition:.16s ease;
  z-index:51;
}
.nav button:hover::after,.nav button:hover::before{opacity:1;visibility:visible;transform:translateY(-50%) translateX(0)}
.nav button:hover::before{transform:translateY(-50%)}
.side-footer{margin-top:14px!important;padding-top:12px!important}
.main{padding-left:18px!important}
@media(max-width:940px){
  .shell{grid-template-columns:1fr!important}
  .sidebar{width:auto!important}
  .side-logo{margin-left:0!important}
  .patient-card>div:not(.avatar){display:block!important}
  .patient-card{justify-content:flex-start!important}
  .nav{grid-template-columns:repeat(4,minmax(0,1fr))!important}
  .nav button{width:100%!important;font-size:12px!important}
  .nav button::before,.nav button::after{display:none!important}
}


.audio-pill{
  flex:1;
  min-width:0;
  height:38px;
  display:flex;
  align-items:center;
  gap:9px;
  border:1px solid #dbe7f4;
  border-radius:13px;
  background:#f8fbff;
  padding:0 8px 0 11px;
  color:#64748b;
}
.audio-pill.has-audio{
  background:#eef6ff;
  border-color:#b7d9ff;
  color:#0b4d87;
}
.audio-pill>i{font-size:13px;color:#2f8df0}
.audio-pill .record-state, .audio-pill span{
  flex:1;
  min-width:0;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
  font-size:11.5px;
  font-weight:900;
}
.audio-delete{
  width:30px;
  height:30px;
  border:0;
  border-radius:10px;
  background:#fff1f1;
  color:#b91c1c;
  display:none;
  align-items:center;
  justify-content:center;
  cursor:pointer;
}
.audio-pill.has-audio .audio-delete{display:flex}


/* Receitas - card sem texto sobre a imagem */
.recipe-card{
  display:flex!important;
  flex-direction:column!important;
  max-width:340px!important;
  min-height:0!important;
}
.recipe-photo{
  position:relative!important;
  flex:0 0 172px!important;
  height:172px!important;
  overflow:hidden!important;
  border-bottom:1px solid var(--cd-line)!important;
}
.recipe-body{
  position:relative!important;
  z-index:2!important;
  background:#fff!important;
  padding:15px 16px 16px!important;
}
.recipe-body h3{
  margin:0 0 8px!important;
  color:var(--cd-navy)!important;
}
.recipe-body p{margin:0!important;color:#5e7088!important}


/* Menu final — ícones compactos, fixo e sem rolagem própria */
.shell{
  display:block!important;
  min-height:100vh!important;
}
.sidebar{
  position:fixed!important;
  left:0!important;
  top:0!important;
  width:86px!important;
  height:100vh!important;
  min-height:0!important;
  overflow:visible!important;
  padding:14px 10px!important;
  z-index:40!important;
}
.main{
  margin-left:86px!important;
  padding-left:18px!important;
}
.side-logo{
  width:58px!important;
  height:58px!important;
  object-fit:contain!important;
  margin:0 auto 12px!important;
  padding:9px!important;
  border-radius:22px!important;
  background:rgba(255,255,255,.12)!important;
  border:1px solid rgba(255,255,255,.16)!important;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.12)!important;
}
.patient-card{
  width:58px!important;
  height:58px!important;
  min-height:58px!important;
  margin:0 auto 12px!important;
  padding:0!important;
  justify-content:center!important;
  border-radius:22px!important;
  background:rgba(255,255,255,.10)!important;
}
.patient-card>div:not(.avatar){
  display:none!important;
}
.avatar{
  width:50px!important;
  height:50px!important;
  border-radius:19px!important;
}
.nav{
  display:flex!important;
  flex-direction:column!important;
  align-items:center!important;
  gap:5px!important;
}
.nav button{
  position:relative!important;
  width:46px!important;
  min-height:40px!important;
  height:40px!important;
  padding:0!important;
  margin:0 auto!important;
  border-radius:15px!important;
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  font-size:0!important;
  color:#b8cbe0!important;
  background:transparent!important;
}
.nav button i{
  width:auto!important;
  font-size:16px!important;
}
.nav button.active{
  background:linear-gradient(135deg,#2f8df0,#1673ff)!important;
  color:#fff!important;
  box-shadow:0 10px 24px rgba(47,141,240,.30)!important;
}
.nav button:hover{
  background:rgba(255,255,255,.13)!important;
  color:#fff!important;
}
.nav button::after{
  content:attr(data-tip);
  position:absolute;
  left:calc(100% + 12px);
  top:50%;
  transform:translateY(-50%) translateX(-4px);
  min-width:max-content;
  max-width:260px;
  padding:10px 12px;
  border-radius:13px;
  background:#07182b;
  color:#fff;
  font-size:12px;
  line-height:1;
  font-weight:900;
  letter-spacing:-.01em;
  box-shadow:0 18px 42px rgba(7,24,43,.24);
  opacity:0;
  pointer-events:none;
  visibility:hidden;
  transition:.16s ease;
  z-index:99;
}
.nav button::before{
  content:'';
  position:absolute;
  left:calc(100% + 5px);
  top:50%;
  transform:translateY(-50%);
  border-top:7px solid transparent;
  border-bottom:7px solid transparent;
  border-right:7px solid #07182b;
  opacity:0;
  pointer-events:none;
  visibility:hidden;
  transition:.16s ease;
  z-index:100;
}
.nav button:hover::after,
.nav button:hover::before{
  opacity:1;
  visibility:visible;
  transform:translateY(-50%) translateX(0);
}
.nav button:hover::before{
  transform:translateY(-50%);
}
.side-footer{
  margin-top:8px!important;
  padding-top:8px!important;
  border-top:1px solid rgba(255,255,255,.12)!important;
}
.side-footer .nav button{
  width:46px!important;
  height:40px!important;
}
@media(max-height:760px){
  .side-logo{width:50px!important;height:50px!important;border-radius:19px!important;margin-bottom:8px!important}
  .patient-card{width:50px!important;height:50px!important;min-height:50px!important;border-radius:19px!important;margin-bottom:8px!important}
  .avatar{width:44px!important;height:44px!important;border-radius:17px!important}
  .nav{gap:3px!important}
  .nav button{width:42px!important;height:36px!important;min-height:36px!important}
  .nav button i{font-size:15px!important}
  .side-footer{margin-top:5px!important;padding-top:5px!important}
}
@media(max-width:940px){
  .shell{display:block!important}
  .sidebar{
    position:relative!important;
    width:auto!important;
    height:auto!important;
    padding:14px!important;
  }
  .main{margin-left:0!important;padding:18px!important}
  .side-logo{margin-left:0!important}
  .patient-card{
    width:auto!important;
    justify-content:flex-start!important;
    padding:8px!important;
  }
  .patient-card>div:not(.avatar){display:block!important}
  .nav{
    display:grid!important;
    grid-template-columns:repeat(4,minmax(0,1fr))!important;
  }
  .nav button{
    width:100%!important;
    font-size:12px!important;
  }
  .nav button::before,
  .nav button::after{display:none!important}
}


/* Menu paciente final */
.shell{
  display:block!important;
  min-height:100vh!important;
}
.sidebar{
  position:fixed!important;
  left:0!important;
  top:0!important;
  width:90px!important;
  height:100vh!important;
  min-height:0!important;
  overflow:visible!important;
  padding:14px 10px!important;
  z-index:50!important;
  display:flex!important;
  flex-direction:column!important;
  align-items:center!important;
  background:linear-gradient(180deg,#07182b 0%,#0b3765 100%)!important;
}
.main{
  margin-left:90px!important;
  padding-left:18px!important;
}
.side-logo{
  flex:0 0 auto!important;
  width:62px!important;
  height:62px!important;
  display:block!important;
  object-fit:contain!important;
  margin:0 auto 10px!important;
  padding:9px!important;
  border-radius:22px!important;
  background:rgba(255,255,255,.12)!important;
  border:1px solid rgba(255,255,255,.16)!important;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.12)!important;
}
.patient-card{
  flex:0 0 auto!important;
  width:62px!important;
  height:62px!important;
  min-height:62px!important;
  margin:0 auto 8px!important;
  padding:0!important;
  justify-content:center!important;
  align-items:center!important;
  border-radius:22px!important;
  background:rgba(255,255,255,.10)!important;
}
.patient-card>div:not(.avatar){
  display:none!important;
}
.avatar{
  width:54px!important;
  height:54px!important;
  border-radius:19px!important;
  display:grid!important;
  place-items:center!important;
}
.avatar img{
  width:100%!important;
  height:100%!important;
  object-fit:cover!important;
  display:block!important;
}
#nav.nav{
  flex:1 1 auto!important;
  width:100%!important;
  display:flex!important;
  flex-direction:column!important;
  align-items:center!important;
  justify-content:space-evenly!important;
  gap:0!important;
  min-height:0!important;
  padding:2px 0!important;
}
.side-footer{
  flex:0 0 auto!important;
  width:100%!important;
  margin:8px 0 0!important;
  padding:8px 0 0!important;
  border-top:1px solid rgba(255,255,255,.13)!important;
}
.side-footer .nav{
  display:flex!important;
  justify-content:center!important;
  align-items:center!important;
}
.nav button,
.side-footer .nav button{
  position:relative!important;
  width:48px!important;
  height:40px!important;
  min-height:40px!important;
  padding:0!important;
  margin:0 auto!important;
  border:0!important;
  border-radius:15px!important;
  display:grid!important;
  place-items:center!important;
  font-size:0!important;
  line-height:1!important;
  color:#b8cbe0!important;
  background:transparent!important;
  transform:none!important;
}
.nav button i,
.side-footer .nav button i{
  display:block!important;
  width:auto!important;
  height:auto!important;
  margin:0!important;
  padding:0!important;
  line-height:1!important;
  font-size:16px!important;
  text-align:center!important;
  position:static!important;
  transform:none!important;
}
.nav button i::before,
.side-footer .nav button i::before{
  display:block!important;
  line-height:1!important;
}
.nav button.active{
  width:50px!important;
  height:44px!important;
  border-radius:16px!important;
  background:linear-gradient(135deg,#2f8df0,#1673ff)!important;
  color:#fff!important;
  box-shadow:0 10px 24px rgba(47,141,240,.30)!important;
}
.nav button:hover{
  background:rgba(255,255,255,.13)!important;
  color:#fff!important;
}
.nav button::after,
.side-footer .nav button::after{
  content:attr(data-tip);
  position:absolute;
  left:calc(100% + 12px);
  top:50%;
  transform:translateY(-50%) translateX(-4px);
  min-width:max-content;
  max-width:260px;
  padding:10px 12px;
  border-radius:13px;
  background:#07182b;
  color:#fff;
  font-size:12px;
  line-height:1;
  font-weight:900;
  letter-spacing:-.01em;
  box-shadow:0 18px 42px rgba(7,24,43,.24);
  opacity:0;
  pointer-events:none;
  visibility:hidden;
  transition:.16s ease;
  z-index:99;
}
.nav button::before,
.side-footer .nav button::before{
  content:'';
  position:absolute;
  left:calc(100% + 5px);
  top:50%;
  transform:translateY(-50%);
  border-top:7px solid transparent;
  border-bottom:7px solid transparent;
  border-right:7px solid #07182b;
  opacity:0;
  pointer-events:none;
  visibility:hidden;
  transition:.16s ease;
  z-index:100;
}
.nav button:hover::after,
.nav button:hover::before,
.side-footer .nav button:hover::after,
.side-footer .nav button:hover::before{
  opacity:1;
  visibility:visible;
}
.nav button:hover::after,
.side-footer .nav button:hover::after{
  transform:translateY(-50%) translateX(0);
}
.nav button:hover::before,
.side-footer .nav button:hover::before{
  transform:translateY(-50%);
}
@media(max-height:760px){
  .sidebar{padding-top:8px!important;padding-bottom:8px!important}
  .side-logo{width:54px!important;height:54px!important;border-radius:20px!important;margin-bottom:6px!important}
  .patient-card{width:54px!important;height:54px!important;min-height:54px!important;border-radius:20px!important;margin-bottom:4px!important}
  .avatar{width:48px!important;height:48px!important;border-radius:18px!important}
  .nav button,.side-footer .nav button{width:44px!important;height:34px!important;min-height:34px!important;border-radius:13px!important}
  .nav button.active{width:46px!important;height:38px!important;border-radius:14px!important}
  .nav button i,.side-footer .nav button i{font-size:15px!important}
  .side-footer{margin-top:4px!important;padding-top:4px!important}
}
@media(max-width:940px){
  .shell{display:block!important}
  .sidebar{
    position:relative!important;
    width:auto!important;
    height:auto!important;
    padding:14px!important;
    display:block!important;
  }
  .main{margin-left:0!important;padding:18px!important}
  .side-logo{margin-left:0!important}
  .patient-card{
    width:auto!important;
    justify-content:flex-start!important;
    padding:8px!important;
  }
  .patient-card>div:not(.avatar){display:block!important}
  #nav.nav{
    display:grid!important;
    grid-template-columns:repeat(4,minmax(0,1fr))!important;
  }
  .nav button{
    width:100%!important;
    font-size:12px!important;
  }
  .nav button::before,
  .nav button::after{display:none!important}
}


/* Menu paciente — alinhamento real */
.shell{
  display:block!important;
  min-height:100vh!important;
}
.sidebar{
  position:fixed!important;
  inset:0 auto 0 0!important;
  width:88px!important;
  height:100vh!important;
  min-height:0!important;
  overflow:visible!important;
  padding:14px 10px!important;
  z-index:60!important;
  display:flex!important;
  flex-direction:column!important;
  align-items:center!important;
}
.main{
  margin-left:88px!important;
  padding-left:18px!important;
}
.side-logo{
  width:60px!important;
  height:60px!important;
  min-width:60px!important;
  min-height:60px!important;
  object-fit:contain!important;
  display:block!important;
  margin:0 auto 10px!important;
  padding:10px!important;
  border-radius:22px!important;
  background:rgba(255,255,255,.12)!important;
  border:1px solid rgba(255,255,255,.16)!important;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.12)!important;
}
.patient-card{
  width:60px!important;
  height:60px!important;
  min-height:60px!important;
  flex:0 0 60px!important;
  margin:0 auto 8px!important;
  padding:0!important;
  justify-content:center!important;
  align-items:center!important;
  border-radius:22px!important;
  background:rgba(255,255,255,.10)!important;
}
.patient-card>div:not(.avatar){
  display:none!important;
}
.avatar{
  width:52px!important;
  height:52px!important;
  min-width:52px!important;
  min-height:52px!important;
  border-radius:19px!important;
}
.avatar img{
  width:100%!important;
  height:100%!important;
  object-fit:cover!important;
}
#nav.nav{
  flex:1 1 auto!important;
  width:100%!important;
  min-height:0!important;
  display:flex!important;
  flex-direction:column!important;
  align-items:center!important;
  justify-content:space-evenly!important;
  gap:0!important;
  margin:0!important;
  padding:0!important;
}
.side-footer{
  width:100%!important;
  flex:0 0 auto!important;
  margin:8px 0 0!important;
  padding:8px 0 0!important;
  border-top:1px solid rgba(255,255,255,.13)!important;
}
.side-footer .nav{
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  padding:0!important;
  margin:0!important;
}
.nav button{
  position:relative!important;
  width:50px!important;
  height:42px!important;
  min-height:42px!important;
  flex:0 0 42px!important;
  padding:0!important;
  margin:0 auto!important;
  border:0!important;
  border-radius:16px!important;
  background:transparent!important;
  color:#b8cbe0!important;
  font-size:0!important;
  line-height:0!important;
  display:block!important;
  text-align:center!important;
}
.nav button i{
  position:absolute!important;
  left:50%!important;
  top:50%!important;
  transform:translate(-50%,-50%)!important;
  width:auto!important;
  height:auto!important;
  margin:0!important;
  padding:0!important;
  font-size:16px!important;
  line-height:1!important;
  display:block!important;
  text-align:center!important;
}
.nav button.active{
  background:linear-gradient(135deg,#2f8df0,#1673ff)!important;
  color:#fff!important;
  box-shadow:0 10px 24px rgba(47,141,240,.30)!important;
}
.nav button:hover{
  background:rgba(255,255,255,.13)!important;
  color:#fff!important;
}
.nav button::after{
  content:attr(data-tip);
  position:absolute;
  left:calc(100% + 12px);
  top:50%;
  transform:translateY(-50%) translateX(-4px);
  min-width:max-content;
  max-width:260px;
  padding:10px 12px;
  border-radius:13px;
  background:#07182b;
  color:#fff;
  font-size:12px;
  line-height:1;
  font-weight:900;
  letter-spacing:-.01em;
  box-shadow:0 18px 42px rgba(7,24,43,.24);
  opacity:0;
  pointer-events:none;
  visibility:hidden;
  transition:.16s ease;
  z-index:99;
}
.nav button::before{
  content:'';
  position:absolute;
  left:calc(100% + 5px);
  top:50%;
  transform:translateY(-50%);
  border-top:7px solid transparent;
  border-bottom:7px solid transparent;
  border-right:7px solid #07182b;
  opacity:0;
  pointer-events:none;
  visibility:hidden;
  transition:.16s ease;
  z-index:100;
}
.nav button:hover::after,
.nav button:hover::before{
  opacity:1;
  visibility:visible;
  transform:translateY(-50%) translateX(0);
}
.nav button:hover::before{
  transform:translateY(-50%);
}
@media(max-height:760px){
  .sidebar{padding-top:8px!important;padding-bottom:8px!important}
  .side-logo{width:52px!important;height:52px!important;min-width:52px!important;min-height:52px!important;border-radius:19px!important;margin-bottom:6px!important}
  .patient-card{width:52px!important;height:52px!important;min-height:52px!important;flex-basis:52px!important;border-radius:19px!important;margin-bottom:5px!important}
  .avatar{width:46px!important;height:46px!important;min-width:46px!important;min-height:46px!important;border-radius:17px!important}
  .nav button{width:46px!important;height:36px!important;min-height:36px!important;flex-basis:36px!important}
  .nav button i{font-size:15px!important}
  .side-footer{margin-top:5px!important;padding-top:5px!important}
}
@media(max-width:940px){
  .shell{display:block!important}
  .sidebar{
    position:relative!important;
    width:auto!important;
    height:auto!important;
    padding:14px!important;
  }
  .main{margin-left:0!important;padding:18px!important}
  .side-logo{margin-left:0!important}
  .patient-card{
    width:auto!important;
    justify-content:flex-start!important;
    padding:8px!important;
  }
  .patient-card>div:not(.avatar){display:block!important}
  #nav.nav{
    display:grid!important;
    grid-template-columns:repeat(4,minmax(0,1fr))!important;
  }
  .nav button{
    width:100%!important;
    font-size:12px!important;
  }
  .nav button::before,
  .nav button::after{display:none!important}
}


/* Avatar no topo e menu de configuração */
.patient-card{display:none!important}
.topbar{
  align-items:center!important;
}
.top-actions{
  display:flex!important;
  align-items:center!important;
  gap:10px!important;
}
.patient-top-menu{
  position:relative;
  display:flex;
  align-items:center;
}
.patient-top-btn{
  min-height:50px;
  border:1px solid #dbe7f4;
  border-radius:18px;
  background:#fff;
  padding:4px 8px 4px 14px;
  display:flex;
  align-items:center;
  gap:10px;
  cursor:pointer;
  box-shadow:0 10px 26px rgba(7,24,43,.06);
  color:var(--cd-navy);
}
.patient-top-text{
  display:flex;
  flex-direction:column;
  align-items:flex-end;
  gap:2px;
  line-height:1;
}
.patient-top-text b{
  max-width:180px;
  overflow:hidden;
  white-space:nowrap;
  text-overflow:ellipsis;
  font-size:12px;
  font-weight:950;
  letter-spacing:-.015em;
}
.patient-top-text em{
  max-width:180px;
  overflow:hidden;
  white-space:nowrap;
  text-overflow:ellipsis;
  font-style:normal;
  font-size:10.5px;
  font-weight:800;
  color:#64748b;
}
.top-avatar{
  width:42px!important;
  height:42px!important;
  min-width:42px!important;
  min-height:42px!important;
  border-radius:16px!important;
}
.patient-top-btn>i{
  font-size:10px;
  color:#64748b;
}
.patient-dropdown{
  position:absolute;
  top:calc(100% + 10px);
  right:0;
  width:190px;
  padding:8px;
  border-radius:18px;
  border:1px solid #dbe7f4;
  background:rgba(255,255,255,.96);
  box-shadow:0 22px 60px rgba(7,24,43,.16);
  opacity:0;
  visibility:hidden;
  transform:translateY(-6px);
  transition:.16s ease;
  z-index:100;
}
.patient-top-menu.open .patient-dropdown{
  opacity:1;
  visibility:visible;
  transform:translateY(0);
}
.patient-dropdown button{
  width:100%;
  min-height:42px;
  border:0;
  border-radius:13px;
  background:transparent;
  color:var(--cd-navy);
  display:flex;
  align-items:center;
  gap:10px;
  padding:0 10px;
  cursor:pointer;
  font-size:12px;
  font-weight:900;
  text-align:left;
}
.patient-dropdown button:hover{
  background:#eef6ff;
}
.profile-modal-card{
  width:min(560px,100%)!important;
}
.profile-tabs{
  display:flex;
  gap:8px;
  margin-bottom:18px;
  padding:6px;
  border:1px solid #dbe7f4;
  border-radius:18px;
  background:#f8fbff;
}
.profile-tabs button{
  flex:1;
  min-height:40px;
  border:0;
  border-radius:13px;
  background:transparent;
  color:#64748b;
  font-size:12px;
  font-weight:950;
  cursor:pointer;
}
.profile-tabs button.active{
  background:var(--cd-navy);
  color:#fff;
}
.profile-tab-panel{display:none}
.profile-tab-panel.active{display:block}
.profile-photo-preview{
  width:96px;
  height:96px;
  border-radius:30px;
  border:1px solid #dbe7f4;
  background:#eef6ff;
  display:grid;
  place-items:center;
  overflow:hidden;
  margin:0 auto 16px;
  color:#2f8df0;
  font-size:34px;
  font-weight:950;
}
.profile-photo-preview img{
  width:100%;
  height:100%;
  object-fit:cover;
  display:block;
}
.profile-upload{
  position:relative;
  min-height:72px;
  border:1.5px dashed #bfd0e4;
  border-radius:20px;
  background:#f8fbff;
  padding:14px 16px;
  display:flex;
  flex-direction:column;
  justify-content:center;
  gap:4px;
  margin-bottom:14px;
  cursor:pointer;
}
.profile-upload input{
  position:absolute;
  inset:0;
  opacity:0;
  cursor:pointer;
}
.profile-upload span{
  color:var(--cd-navy);
  font-size:13px;
  font-weight:950;
}
.profile-upload b{
  color:#64748b;
  font-size:12px;
  font-weight:800;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.profile-msg{
  margin-top:10px;
  min-height:18px;
  font-size:12px;
  font-weight:900;
  color:#08764a;
}
.profile-msg.err{color:#b91c1c}
@media(max-width:760px){
  .top-actions{justify-content:flex-end}
  .patient-top-text{display:none}
  .patient-top-btn{padding:4px 8px}
}


/* Menu sem foto lateral */
.sidebar{
  overflow:visible!important;
}
#nav.nav{
  flex:1 1 auto!important;
  justify-content:space-evenly!important;
  min-height:0!important;
}
.side-footer{
  flex:0 0 auto!important;
}


/* Topo paciente sem e-mail */
.patient-top-text{
  gap:0!important;
}
.patient-top-text b{
  max-width:260px!important;
  font-size:13px!important;
}
.patient-top-text em{display:none!important}


/* Fonte padrão CoreDiet na área desktop do paciente */
body,
button,
input,
textarea,
select,
.card,
.topbar,
.sidebar,
.patient-dropdown,
.modal-card,
.recipe-card,
.meal-card,
.training-plan,
.session-card,
.exercise-card{
  font-family:'DM Sans',system-ui,-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif!important;
}
h1,h2,h3,h4,h5,h6,
.login-hero h1,
.login-head h2,
.topbar h1,
.card-title h2,
.card-title h3,
.modal-head h3{
  font-family:'Sora',system-ui,-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif!important;
  letter-spacing:-.025em;
}
.fa-solid,
.fa-regular,
.fa-brands,
.fas,
.far,
.fab{
  font-family:"Font Awesome 6 Free"!important;
}
.fa-brands,
.fab{
  font-family:"Font Awesome 6 Brands"!important;
}


/* Chat desktop — cabe na tela sem rolagem gigante */
#view-chat > .card{
  height:calc(100vh - 172px)!important;
  min-height:480px!important;
  padding:16px!important;
  display:flex!important;
  flex-direction:column!important;
  overflow:hidden!important;
}
#view-chat .card-title{
  flex:0 0 auto!important;
  margin-bottom:12px!important;
}
#view-chat .chat-box{
  flex:1 1 auto!important;
  height:auto!important;
  min-height:0!important;
  max-height:none!important;
  border-radius:20px!important;
  padding:16px!important;
}
#view-chat .chat-form{
  flex:0 0 auto!important;
  margin-top:12px!important;
  display:grid!important;
  grid-template-columns:minmax(0,1fr) 74px!important;
  gap:10px!important;
}
#view-chat .chat-form input{
  height:48px!important;
  min-height:48px!important;
  border-radius:16px!important;
}
#view-chat .chat-form button{
  height:48px!important;
  min-height:48px!important;
  border-radius:16px!important;
  padding:0!important;
}
#view-chat .msg{
  max-width:520px!important;
}
@media(max-height:780px){
  #view-chat > .card{
    height:calc(100vh - 152px)!important;
    min-height:420px!important;
  }
  .topbar{
    min-height:68px!important;
    padding-top:12px!important;
    padding-bottom:12px!important;
  }
  #view-chat .chat-form input,
  #view-chat .chat-form button{
    height:44px!important;
    min-height:44px!important;
  }
}


/* CoreDiet | paciente.php mobile login sem rolagem */
@media (max-width:760px){
  body.cd-login-mode,
  body.cd-login-mode html{
    height:100dvh!important;
    overflow:hidden!important;
  }
  body.cd-login-mode{
    overflow:hidden!important;
  }
  body.cd-login-mode .login-wrap{
    height:100dvh!important;
    min-height:100dvh!important;
    max-height:100dvh!important;
    overflow:hidden!important;
    padding:10px 12px calc(10px + env(safe-area-inset-bottom,0px))!important;
    gap:10px!important;
    grid-template-columns:1fr!important;
    grid-template-rows:auto 1fr!important;
    align-content:start!important;
  }
  body.cd-login-mode .login-hero,
  body.cd-login-mode .login-box{
    max-height:none!important;
    min-height:0!important;
    border-radius:26px!important;
  }
  body.cd-login-mode .login-hero{
    padding:22px 24px 16px!important;
  }
  body.cd-login-mode .login-eyebrow{
    margin-bottom:14px!important;
    font-size:11px!important;
    letter-spacing:.14em!important;
  }
  body.cd-login-mode .login-hero h1{
    font-size:28px!important;
    line-height:.95!important;
    letter-spacing:-.06em!important;
  }
  body.cd-login-mode .login-hero p{
    margin-top:14px!important;
    font-size:14px!important;
    line-height:1.4!important;
  }
  body.cd-login-mode .login-head{
    padding:16px 20px 12px!important;
  }
  body.cd-login-mode .login-mini{
    margin-bottom:4px!important;
    font-size:10.5px!important;
  }
  body.cd-login-mode .login-head h2{
    font-size:24px!important;
    line-height:1!important;
  }
  body.cd-login-mode .login-head p{
    margin-top:8px!important;
    font-size:12.5px!important;
    line-height:1.32!important;
  }
  body.cd-login-mode .login-body{
    padding:14px 20px 16px!important;
  }
  body.cd-login-mode .field{
    margin-bottom:12px!important;
  }
  body.cd-login-mode .field label{
    margin-bottom:6px!important;
    font-size:10px!important;
  }
  body.cd-login-mode .input-wrap input,
  body.cd-login-mode .input-wrap textarea,
  body.cd-login-mode .input-wrap select{
    min-height:48px!important;
    border-radius:15px!important;
    font-size:13px!important;
    padding-left:42px!important;
  }
  body.cd-login-mode .input-wrap i{
    left:14px!important;
    font-size:13px!important;
  }
  body.cd-login-mode .toggle-pass{
    width:38px!important;
    height:38px!important;
    right:8px!important;
  }
  body.cd-login-mode .form-row{
    margin:0 0 12px!important;
    font-size:11px!important;
    line-height:1.28!important;
    gap:8px!important;
  }
  body.cd-login-mode .main-btn{
    min-height:48px!important;
    border-radius:15px!important;
    font-size:12.5px!important;
  }
  body.cd-login-mode .under-text{
    margin-top:12px!important;
    font-size:11px!important;
  }
}

@media (max-width:760px) and (max-height:820px){
  body.cd-login-mode .login-wrap{
    padding:8px 10px calc(8px + env(safe-area-inset-bottom,0px))!important;
    gap:8px!important;
  }
  body.cd-login-mode .login-hero{
    padding:18px 20px 12px!important;
  }
  body.cd-login-mode .login-hero h1{
    font-size:26px!important;
  }
  body.cd-login-mode .login-hero p{
    margin-top:10px!important;
    font-size:13px!important;
  }
  body.cd-login-mode .login-head{
    padding:14px 18px 10px!important;
  }
  body.cd-login-mode .login-body{
    padding:12px 18px 14px!important;
  }
  body.cd-login-mode .field{
    margin-bottom:10px!important;
  }
  body.cd-login-mode .input-wrap input,
  body.cd-login-mode .input-wrap textarea,
  body.cd-login-mode .input-wrap select,
  body.cd-login-mode .main-btn{
    min-height:44px!important;
  }
  body.cd-login-mode .form-row{
    margin-bottom:10px!important;
  }
}
