/* CoreDx — folha única. Paleta copiada do esboco.html (teal + forest + creme). */
:root{
  --primary:#0b8a7c; --primary-600:#097063; --primary-700:#0a5f55; --primary-50:#e5f0ed; --primary-100:#e5f0ed;
  --accent:#0fb89e;
  --forest:#12201c; --forest-2:#0d1813;
  --bg:#efede6; --surface:#fbfaf5; --surface-2:#f3efe6; --line:#e2ded4;
  --ink:#16211d; --ink-2:#41504a; --muted:#5a685f;
  --success:#0b8a7c; --success-bg:#e5f0ed; --error:#b23a2b; --error-bg:#f6e4e0;
  --warning:#a9772e; --warning-bg:#f3ead9;
}
*{box-sizing:border-box;} html,body{margin:0;padding:0;}
body{font:14px/1.5 "Inter",-apple-system,system-ui,sans-serif; background:var(--bg); color:var(--ink); -webkit-font-smoothing:antialiased;}
a{color:inherit; text-decoration:none;}

/* shell */
.app{display:flex; min-height:100vh;}
.sidebar{width:248px; flex-shrink:0; background:linear-gradient(180deg,var(--forest),var(--forest-2)); color:#cfe3dc; padding:20px 14px; position:sticky; top:0; height:100vh; overflow-y:auto; display:flex; flex-direction:column;}
.brand{font-size:22px; font-weight:800; color:#fff; padding:4px 10px 18px; display:flex; align-items:center; gap:8px;}
.brand-tag{background:var(--primary); color:#fff; font-size:11px; font-weight:700; padding:2px 6px; border-radius:6px;}
.nav-group-title{text-transform:uppercase; font-size:10px; letter-spacing:.06em; font-weight:700; color:#7fb3a8; margin:16px 10px 4px;}
.nav-item{display:flex; align-items:center; gap:10px; padding:9px 10px; border-radius:9px; color:#cfe3dc; margin-bottom:2px; font-weight:500;}
.nav-item:hover{background:rgba(255,255,255,.06); color:#fff;}
.nav-item.is-active{background:var(--primary); color:#fff; box-shadow:0 6px 16px rgba(15,184,158,.4);}
.nav-item.is-disabled{color:#4e8578;}
.nav-ico{width:18px; flex:0 0 18px; display:grid; place-items:center; opacity:.9;}
.soon{margin-left:auto; font-size:9px; background:rgba(255,255,255,.08); color:#7fb3a8; padding:1px 6px; border-radius:20px;}
.sidebar-foot{margin-top:auto; border-top:1px solid rgba(255,255,255,.08); padding-top:12px; font-size:12px; color:#7fb3a8;}
.main{flex:1; min-width:0;}
.topbar{display:flex; align-items:center; justify-content:space-between; padding:16px 28px; background:var(--surface); border-bottom:1px solid var(--line); position:sticky; top:0; z-index:5;}
.greet{font-size:18px; font-weight:700; margin:0;}
.greet small{display:block; font-size:12px; font-weight:400; color:var(--muted); margin-top:2px;}
.topbar-right{display:flex; align-items:center; gap:14px;}
.avatar{width:38px; height:38px; border-radius:50%; background:var(--primary-50); color:var(--primary-700); display:grid; place-items:center; font-weight:700;}
.content{padding:26px 28px; max-width:1100px;}

h1{font-size:22px; margin:0 0 12px;} h2{font-size:16px; margin:0 0 12px;}
.btn,button{display:inline-flex; align-items:center; gap:6px; padding:9px 16px; border-radius:10px; font-weight:600; font-size:14px; cursor:pointer; border:1px solid transparent; background:var(--primary); color:#fff; font-family:inherit;}
.btn:hover,button:hover{background:var(--primary-600);}
.btn-ghost{background:var(--surface); border-color:var(--line); color:var(--ink);}
.btn-dark{background:var(--forest);}
button.sign{background:var(--primary-700);}

/* cards / kpis */
.card{background:var(--surface); border:1px solid var(--line); border-radius:16px; padding:20px; margin-bottom:16px; box-shadow:0 1px 2px rgba(20,33,29,.05);}
.kpi-row{display:grid; grid-template-columns:repeat(auto-fit,minmax(170px,1fr)); gap:16px; margin-bottom:22px;}
.kpi{padding:18px;}
.kpi-ico{width:38px; height:38px; border-radius:10px; display:grid; place-items:center; margin-bottom:10px;}
.kpi-ico.green{background:var(--primary-100); color:var(--primary);} .kpi-ico.amber{background:var(--warning-bg); color:var(--warning);}
.kpi-ico.red{background:var(--error-bg); color:var(--error);} .kpi-ico.emerald{background:var(--primary-50); color:var(--primary-700);}
.kpi-label{font-size:11px; color:var(--muted); letter-spacing:.04em; font-weight:600; text-transform:uppercase;}
.kpi-value{font-size:24px; font-weight:800; margin:4px 0 0; color:var(--primary-700);}

/* toolbar / table */
.toolbar{display:flex; gap:10px; align-items:center; margin-bottom:16px; flex-wrap:wrap;}
.search{flex:1; min-width:200px; max-width:360px; padding:10px 12px; border:1px solid var(--line); border-radius:10px; font-size:14px; background:#fff; font-family:inherit;}
.chip{padding:7px 14px; border-radius:999px; border:1px solid var(--line); background:var(--surface); font-size:13px; font-weight:600; color:var(--ink-2); cursor:pointer;}
.chip.is-active{background:var(--primary); color:#fff; border-color:var(--primary);}
table{width:100%; border-collapse:collapse;}
th,td{text-align:left; padding:12px 10px; border-bottom:1px solid var(--line);}
th{color:var(--muted); font-size:12px; text-transform:uppercase; letter-spacing:.04em;}
tr:hover td{background:#f2f6f2;}
.pill{display:inline-block; padding:3px 10px; border-radius:20px; font-size:12px; font-weight:700;}
.sev-ok{background:var(--primary-100); color:var(--primary-700);} .sev-warn{background:var(--warning-bg); color:var(--warning);}
.sev-red{background:var(--error-bg); color:var(--error);} .sev-gray{background:#e9e5db; color:#5a685f;}
.st-assinado{background:var(--primary-100); color:var(--primary-700);} .st-rascunho{background:var(--warning-bg); color:var(--warning);}
.tp-ecg{background:var(--primary-50); color:var(--primary-700);} .tp-mapa{background:#e7eef0; color:#0a5f55;}
.gate0{background:var(--error-bg); color:var(--error); font-size:10px; font-weight:700; padding:2px 7px; border-radius:6px; margin-left:6px;}
.link-open{color:var(--primary-600); font-weight:600;}
.empty{text-align:center; padding:48px; color:var(--muted);}

/* forms */
label{display:block; font-size:13px; color:var(--muted); margin:10px 0 4px;}
input,textarea,select{width:100%; padding:10px 12px; border:1px solid var(--line); border-radius:10px; font:inherit; background:#fff;}
input:focus,textarea:focus,select:focus{outline:2px solid var(--primary-50); border-color:var(--primary);}
textarea{min-height:240px; font-family:ui-monospace,monospace; font-size:13px;}
.row{display:flex; gap:14px;} .row>div{flex:1;}

/* flags / badges */
.flag{padding:10px 14px; border-radius:10px; margin:6px 0; font-size:14px;}
.alerta{background:var(--error-bg); color:#8a1c1c;} .atencao{background:var(--warning-bg); color:#7a5600;}
.info{background:#eef2ef; color:var(--ink-2);} .normal{background:var(--primary-100); color:var(--primary-700);}
.diverg{background:#f6e4e0; color:#8a2a00; border-left:4px solid var(--error);}
.badge{font-size:12px; padding:2px 8px; border-radius:10px;}
.muted{color:var(--muted); font-size:13px;}
dl{display:grid; grid-template-columns:auto 1fr; gap:4px 16px;} dt{color:var(--muted);} dd{margin:0; font-weight:600;}

/* mobile: hambúrguer + sidebar off-canvas (escondidos no desktop) */
.hamb{display:none; align-items:center; background:none; border:none; color:var(--ink); padding:8px; margin-right:4px; cursor:pointer;}
.hamb:hover{background:rgba(0,0,0,.05);}
.nav-overlay{display:none;}

@media (max-width:1100px){ .kpi-row{grid-template-columns:repeat(2,1fr);} }
@media (max-width:820px){
  .hamb{display:inline-flex;}
  .sidebar{position:fixed; z-index:40; left:0; top:0; height:100dvh; transform:translateX(-100%);
           transition:transform .25s ease; box-shadow:0 0 40px rgba(4,20,15,.35);}
  .app.nav-open .sidebar{transform:translateX(0);}
  .nav-overlay{display:block; position:fixed; inset:0; z-index:35; background:rgba(4,20,15,.5);
               opacity:0; pointer-events:none; transition:opacity .25s;}
  .app.nav-open .nav-overlay{opacity:1; pointer-events:auto;}
  .nav-item{padding:12px;}                                   /* alvo de toque maior */
  .kpi-row{grid-template-columns:1fr 1fr;}
  .content{padding:16px calc(16px + env(safe-area-inset-right)) calc(16px + env(safe-area-inset-bottom)) calc(16px + env(safe-area-inset-left));}
  .topbar{padding:calc(env(safe-area-inset-top) + 12px) 16px 12px;}
  input,textarea,select,.search{font-size:16px;}            /* iOS não dá zoom ao focar */
  .card{overflow-x:auto;}                                    /* tabela larga rola no card */
}
@media (max-width:440px){ .kpi-row{grid-template-columns:1fr;} }   /* iPhone estreito: KPIs empilhados */
