:root{--ink:#1C2A2B;--ink2:#4A5657;--ground:#F2F5F5;--line:#E0E7E7;--accent:#2B7A7C;--accentTint:#E3F0F0;--brand:#45999A;--deep:#1E4E50;--coral:#E8967B;--coralDark:#B4583C;--coralTint:#FBEAE3;--blue:#1F5F8B;--blueTint:#E3EEF6;--green:#2F6B4F;--greenTint:#E3F1E9;--orangeTint:#FFF4E5;--red:#B42335;--redTint:#FBE9EB}
*{box-sizing:border-box}
html,body{margin:0;min-height:100%;background:var(--ground);font-family:Nunito,system-ui,-apple-system,"Segoe UI",sans-serif;color:var(--ink);-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent}
button{font:inherit;cursor:pointer;color:inherit}
a{color:var(--blue)}
img{max-width:100%}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
.muted{color:var(--ink2)}
.center{text-align:center}
.loading{min-height:100vh;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:18px;color:var(--ink2);font-weight:700}
.spin{width:36px;height:36px;border-radius:999px;border:4px solid var(--accentTint);border-top-color:var(--accent);animation:sp 1s linear infinite}
@keyframes sp{to{transform:rotate(360deg)}}

/* ---------- elementos comuns ---------- */
.card{background:#fff;border-radius:28px;padding:20px;box-shadow:0 1px 2px rgba(28,32,36,.06);display:flex;flex-direction:column;gap:14px}
.h1{margin:0;font-size:34px;font-weight:800;letter-spacing:-.02em;line-height:1.08}
.h2{margin:0;font-size:20px;font-weight:800}
.btn{display:flex;align-items:center;justify-content:center;gap:10px;min-height:60px;border:0;border-radius:20px;font-size:18px;font-weight:700;padding:0 16px;text-decoration:none;text-align:center}
.btn:disabled{opacity:.55;cursor:default}
.btn-accent{background:var(--accent);color:#fff}
.btn-dark{background:var(--ink);color:#fff}
.btn-coral{background:var(--coralDark);color:#fff}
.btn-out{background:#fff;color:var(--ink);border:2px solid #8C93A0}
.btn-blue-out{background:#fff;color:var(--blue);border:2px solid var(--blue)}
.btn-red-out{background:#fff;color:var(--red);border:2px solid var(--red)}
.btn-sm{min-height:44px;font-size:15px;border-radius:14px;padding:0 14px}
.chip{display:inline-flex;align-items:center;gap:6px;font-size:14px;font-weight:700;padding:6px 12px;border-radius:999px;white-space:nowrap}
.row{display:flex;align-items:center;gap:12px}
.sep{border-top:1px solid #EEF0F3;padding-top:12px}
.grid2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.tile{background:#fff;border:0;border-radius:26px;padding:16px;min-height:170px;box-shadow:0 1px 2px rgba(28,32,36,.06);display:flex;flex-direction:column;gap:8px;text-align:left;color:var(--ink)}
.tile-head{display:flex;justify-content:space-between;align-items:center;font-size:18px;font-weight:800}
.chev{width:30px;height:30px;border-radius:999px;background:#EEF0F3;display:flex;align-items:center;justify-content:center;color:var(--ink2)}
.switch{width:64px;height:40px;flex:none;border:0;border-radius:999px;padding:4px;display:flex}
.switch span{width:32px;height:32px;border-radius:999px;background:#fff;display:block;box-shadow:0 1px 3px rgba(28,32,36,.3)}
.feel-btn{display:flex;align-items:center;gap:10px;min-height:68px;padding:0 10px;border-radius:20px;background:#fff;border:2px solid var(--line);font-size:16px;font-weight:700;text-align:left;color:var(--ink)}
.feel-btn[aria-pressed="true"]{border:3px solid var(--ink);background:#EEF0F3}
.sym{display:inline-flex;align-items:center;gap:6px;min-height:46px;padding:0 14px;border-radius:999px;border:2px solid #C9CED6;background:#fff;color:var(--ink);font-size:15px;font-weight:700}
.sym[aria-pressed="true"]{background:var(--ink);border-color:var(--ink);color:#fff}
.field{display:flex;flex-direction:column;gap:6px;font-size:15px;font-weight:700;color:var(--ink2)}
.field input,.field select,.field textarea{min-height:56px;border:2px solid #8C93A0;border-radius:14px;padding:0 14px;font:inherit;font-size:19px;font-weight:700;color:var(--ink);background:#fff;min-width:0;width:100%}
.field textarea{padding:10px 12px;font-size:16px;font-weight:500;min-height:90px}
.field input:focus,.field select:focus,.field textarea:focus,.dfield input:focus,.dfield select:focus,.dfield textarea:focus{outline:3px solid var(--accentTint);border-color:var(--accent)}
.err{background:var(--redTint);color:#7A1220;border-radius:14px;padding:12px 14px;font-weight:700;font-size:15px}
.ok{background:var(--greenTint);color:#1E4A35;border-radius:14px;padding:12px 14px;font-weight:700;font-size:15px}
.toast{position:fixed;left:50%;bottom:calc(100px + env(safe-area-inset-bottom));transform:translateX(-50%);z-index:90;background:var(--ink);color:#fff;padding:14px 20px;border-radius:16px;font-weight:700;box-shadow:0 10px 30px rgba(0,0,0,.25);max-width:92vw;text-align:center}
.devby{display:flex;align-items:center;justify-content:center;gap:8px;opacity:.42;padding:18px 0 6px;font-size:11px;letter-spacing:.06em;text-transform:uppercase;color:var(--ink2);font-weight:700;user-select:none}
.devby img{height:22px;width:auto;display:block}
.brandbar{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:2px 4px 10px;border-bottom:1px solid var(--line);margin-bottom:2px}
.avatar{width:46px;height:46px;flex:none;border-radius:999px;background:var(--coralTint);border:3px solid #fff;box-shadow:0 2px 8px rgba(28,42,43,.12);color:var(--coralDark);display:flex;align-items:center;justify-content:center;font-weight:800;font-size:16px}
.banner{position:fixed;left:50%;transform:translateX(-50%);width:min(500px,calc(100% - 20px));top:calc(10px + env(safe-area-inset-top));z-index:80;display:flex;gap:12px;padding:14px;border-radius:22px;background:rgba(28,32,36,.96);color:#fff;box-shadow:0 12px 30px rgba(0,0,0,.3);border:0;text-align:left;animation:drop .35s ease-out}
@keyframes drop{from{transform:translate(-50%,-140%)}to{transform:translate(-50%,0)}}

/* ---------- app do paciente / cuidador ---------- */
.papp{max-width:520px;margin:0 auto;min-height:100vh;position:relative}
.pscroll{padding:calc(18px + env(safe-area-inset-top)) 16px calc(124px + env(safe-area-inset-bottom));display:flex;flex-direction:column;gap:16px}
.tabbar{position:fixed;left:50%;transform:translateX(-50%);width:min(492px,calc(100% - 24px));bottom:calc(12px + env(safe-area-inset-bottom));z-index:40;background:rgba(255,255,255,.96);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);border:1px solid var(--line);border-radius:999px;box-shadow:0 8px 24px rgba(28,32,36,.14);padding:6px;display:grid;gap:4px}
.tabbar button{border:0;background:transparent;border-radius:999px;display:flex;flex-direction:column;align-items:center;gap:2px;padding:9px 0 8px;color:var(--ink2);font-size:12px;font-weight:700;min-width:0;position:relative}
.tabbar button[aria-current="page"]{background:var(--accentTint);color:var(--accent)}
.dot{position:absolute;top:6px;right:calc(50% - 20px);width:10px;height:10px;border-radius:99px;background:var(--coralDark);border:2px solid #fff}
.dose{display:flex;align-items:center;gap:12px;padding:12px;border-radius:20px;background:var(--ground)}
.dose.feito{background:var(--blueTint)}
.medpic{width:84px;height:62px;flex:none;border-radius:14px;background:#fff;display:flex;align-items:center;justify-content:center;overflow:hidden}
.medpic img{width:100%;height:100%;object-fit:contain}
.bignum{font-size:44px;font-weight:800;letter-spacing:-.02em;line-height:1}
.ebpage{width:100%;border-radius:12px;box-shadow:0 6px 20px rgba(28,42,43,.18);background:#fff;display:block}
.chap{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:14px 4px;border:0;border-top:1px solid #EEF0F3;background:transparent;text-align:left;font-size:16px;font-weight:700;color:var(--ink);width:100%}
.login-wrap{max-width:460px;margin:0 auto;min-height:100vh;padding:calc(48px + env(safe-area-inset-top)) 22px 30px;display:flex;flex-direction:column;gap:24px}

/* ---------- painel do médico ---------- */
.dash{width:100%;min-height:100vh;display:flex;flex-wrap:wrap;background:var(--ground)}
.dside{flex:0 0 250px;background:var(--deep);color:#E6EAF2;padding:26px 16px;display:flex;flex-direction:column;gap:28px;position:sticky;top:0;height:100vh;overflow-y:auto}
.dside nav{display:flex;flex-direction:column;gap:4px}
.dside nav button{display:flex;align-items:center;gap:12px;padding:12px;border-radius:10px;border:0;background:transparent;color:#C3CAD6;font-size:14px;font-weight:600;text-align:left}
.dside nav button[aria-current="page"]{background:rgba(255,255,255,.12);color:#fff;font-weight:700}
.badge{margin-left:auto;background:var(--coral);color:#fff;font-size:11px;font-weight:800;padding:2px 8px;border-radius:999px}
.dmain{flex:1 1 560px;min-width:0;padding:30px 34px 44px;display:flex;flex-direction:column;gap:22px;max-width:1280px}
.dcard{background:#fff;border:1px solid #E3E8EF;border-radius:20px;padding:22px;display:flex;flex-direction:column;gap:14px;min-width:0}
.dcard h2{margin:0;font-size:18px;font-weight:800}
.kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:14px}
.kpi{background:#fff;border:1px solid #E3E8EF;border-radius:18px;padding:18px 20px;display:flex;flex-direction:column;gap:8px;text-align:left;font:inherit;color:inherit}
.kpi b{font-size:32px;font-weight:800;letter-spacing:-.03em;line-height:1}
.drow{display:flex;align-items:center;gap:14px;padding:12px 6px;border-top:1px solid #EEF1F5;background:transparent;border-left:0;border-right:0;border-bottom:0;text-align:left;color:var(--ink);width:100%}
.av img,.avatar img{width:100%;height:100%;object-fit:cover;border-radius:999px;display:block}
.avatar{overflow:hidden;padding:0}
.av{overflow:hidden;width:40px;height:40px;flex:none;border-radius:999px;background:#EEF2F8;color:#2A3A55;display:flex;align-items:center;justify-content:center;font-size:13px;font-weight:800}
.attn{display:flex;gap:12px;padding:14px;border-radius:14px;background:#FBF6F2;border:0;text-align:left;color:var(--ink);width:100%}
.attn.novo{background:var(--coralTint);outline:2px solid var(--coralDark)}
.pickbtn{min-height:36px;padding:0 12px;border-radius:9px;border:1px solid #D5D9DF;background:#fff;font-size:13px;font-weight:700;color:var(--ink);display:inline-flex;align-items:center;gap:6px;text-decoration:none}
.pickbtn[aria-pressed="true"]{background:var(--ink);border-color:var(--ink);color:#fff}
.pickbtn.danger{color:var(--red);border-color:#E9B5BD}
.swatch{width:32px;height:32px;border-radius:999px;border:2px solid #8C93A0}
.swatch[aria-pressed="true"]{box-shadow:0 0 0 3px #fff,0 0 0 5px var(--ink)}
.dfield{display:flex;flex-direction:column;gap:6px;font-size:13px;font-weight:700;color:#3B4556;min-width:0}
.dfield input,.dfield select,.dfield textarea{height:44px;border:1px solid #CFD7E2;border-radius:10px;padding:0 12px;font:inherit;font-size:15px;font-weight:600;color:var(--ink);background:#fff;min-width:0;width:100%}
.dfield textarea{height:auto;min-height:84px;padding:10px 12px;resize:vertical;font-weight:500}
.dfield small{font-weight:500;color:#6A7385}
.fgrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:12px}
.tabs{display:flex;gap:6px;flex-wrap:wrap;border-bottom:1px solid #E3E8EF;padding-bottom:10px}
.tabs button{border:0;background:transparent;border-radius:10px;padding:10px 14px;font-weight:700;font-size:14px;color:#556070}
.tabs button[aria-current="page"]{background:var(--accentTint);color:var(--accent)}
table.t{width:100%;border-collapse:collapse;font-size:14px}
table.t th{text-align:left;color:#556070;font-size:12px;text-transform:uppercase;letter-spacing:.06em;padding:10px 8px;font-weight:700}
table.t td{padding:12px 8px;border-top:1px solid #EEF1F5;vertical-align:middle}
table.t tr.click{cursor:pointer}
table.t tr.click:hover td{background:#F7FAFA}
.bar{width:90px;height:8px;border-radius:99px;background:#EEF1F5;overflow:hidden;display:block}
.bar span{display:block;height:8px}
.cred{display:flex;flex-direction:column;gap:12px;padding:18px;border-radius:16px;background:var(--accentTint);border:2px solid var(--accent)}
.cred code{font-size:20px;font-weight:800;background:#fff;padding:4px 10px;border-radius:8px;letter-spacing:.04em}
.modal-bg{position:fixed;inset:0;z-index:70;background:rgba(14,30,31,.45);display:flex;align-items:flex-start;justify-content:center;padding:40px 16px;overflow-y:auto}
.modal{background:#fff;border-radius:20px;padding:24px;width:min(640px,100%);display:flex;flex-direction:column;gap:14px;box-shadow:0 20px 60px rgba(0,0,0,.25)}
.modal h2{margin:0;font-size:20px;font-weight:800}
.empty{padding:18px;border-radius:14px;background:#F7F8FA;color:#556070;font-size:14px;text-align:center}
@media (max-width:820px){
  .dside{flex:1 1 100%;height:auto;position:relative;padding:14px 12px;gap:12px}
  .dside nav{flex-direction:row;overflow-x:auto}
  .dside nav button{white-space:nowrap}
  .dme{display:none!important}
  .dmain{padding:20px 14px 40px}
}
@media print{.dside,.tabbar,.noprint{display:none!important}}
