/* Klugwerk Praxis Spital · Internação e prescrição (31/10/2026). Complementa spital.css; prefixo .si-. */
.si h2 small { font-weight: 500; font-size: .82rem; }
.si-setor { display: flex; gap: 8px; align-items: baseline; flex-wrap: wrap; }

/* mapa de leitos */
.si-ocup { min-height: 132px; }
.si-ocup .si-nome { font-weight: 700; font-size: 1.02rem; line-height: 1.25; }
.si-ocup .si-al { padding: 4px 8px; font-size: .8rem; }
.si-pend { display: flex; flex-wrap: wrap; gap: 4px; }
.si-livre { justify-content: space-between; min-height: 132px; }
.si-livre .btn { align-self: flex-start; }

/* cabeçalho da ficha */
.si-cab { gap: 8px; }
.si-cab h1 { font-size: 1.3rem; }
.si-dados { display: flex; flex-wrap: wrap; gap: 4px 14px; color: var(--aco); font-size: .9rem; margin: 2px 0; }
.si-dados b { color: var(--tinta); }
.si-sem-al { font-size: .85rem; color: var(--aco); }
.si-txt-mal { color: var(--mal); font-weight: 600; }
.si-txt-at { color: var(--at); }

/* prescrição na tela */
.si-p-cab { display: flex; justify-content: space-between; gap: 10px; align-items: flex-start; flex-wrap: wrap; }
.si-p-cab > span { min-width: 0; flex: 1 1 240px; }
.si-p-cab small { display: block; color: var(--aco); }
.si-p-vig { border-left: 4px solid var(--ok); }
.sp-presc li.si-gr { counter-increment: none; padding: 10px 0 2px; border-bottom: 0; font-family: var(--f-tit); font-weight: 700; font-size: .82rem; text-transform: uppercase; letter-spacing: .05em; color: var(--aco); }
.sp-presc li.si-gr::before { content: none; }
.si-itens li.susp { text-decoration: none; }
.si-itens li.susp .si-it-v > span > b, .si-itens li.susp .si-it-v > span > i { text-decoration: line-through; color: var(--aco); }
.si-it-v { display: flex; justify-content: space-between; gap: 10px; align-items: flex-start; flex-wrap: wrap; }
.si-it-v > span { flex: 1 1 260px; min-width: 0; }
.si-it-v small { display: block; }
.si-susp { color: var(--mal); }

/* editor (gaveta) */
.si-escolha { display: grid; grid-template-columns: repeat(auto-fill, minmax(230px, 1fr)); gap: 8px; }
.si-mod { text-align: left; border: 1px solid var(--linha); background: var(--sup); border-radius: 8px; padding: 10px 12px; cursor: pointer; display: flex; flex-direction: column; gap: 2px; font: inherit; color: inherit; }
.si-mod:hover:not(:disabled) { border-color: var(--px); }
.si-mod:disabled { opacity: .55; cursor: not-allowed; }
.si-mod small { color: var(--aco); font-size: .8rem; }
.si-mod-pri { border-color: var(--px); background: var(--px-suave); }
.si-mod-pri b { color: var(--px); }
.si-grupo { border-top: 1px solid var(--linha); padding-top: 10px; display: flex; flex-direction: column; gap: 8px; }
.si-grupo > h3 { display: flex; justify-content: space-between; align-items: center; gap: 8px; }
.si-rap { display: flex; flex-wrap: wrap; gap: 6px; }
.si-it { border: 1px solid var(--linha); border-radius: 8px; padding: 10px; display: flex; flex-wrap: wrap; gap: 8px; align-items: end; background: var(--bg); }
.si-it-campos { display: flex; flex-wrap: wrap; gap: 8px; flex: 1 1 100%; min-width: 0; }
.si-it-campos .campo { flex: 1 1 120px; min-width: 0; }
.si-it-campos .campo.curto { flex: 0 1 96px; }
.si-it-campos .si-c-nome { flex: 3 1 260px; }
.si-it-campos .si-c-via { flex: 1 1 150px; }
.si-it-campos .si-c-freq { flex: 1 1 120px; }
.si-it-campos .si-c-hor { flex: 2 1 170px; }
.si-it-campos .si-c-obs { flex: 3 1 220px; }
.si-it-campos label { font-size: .78rem; color: var(--aco); }
.si-sn { display: inline-flex; gap: 6px; align-items: center; font-size: .88rem; }
.si-tirar { margin-left: auto; }
.si-al { flex: 1 1 100%; display: flex; flex-direction: column; gap: 6px; }
.si-al:empty { display: none; }
.si-al-it label { display: inline-flex; gap: 6px; align-items: center; font-weight: 500; margin-left: 4px; }
.si-selos { display: flex; gap: 6px; align-items: center; flex-wrap: wrap; }
.si-ref { display: block; }
.si-conf { display: flex; flex-direction: column; gap: 8px; }
.si-ed-acoes { position: sticky; bottom: -18px; background: var(--sup); padding: 10px 0; border-top: 1px solid var(--linha); }

/* checagem */
.si-legenda { display: flex; flex-wrap: wrap; gap: 6px; font-size: .78rem; }
.si-lg { border: 1px solid var(--linha); border-radius: 4px; padding: 1px 6px; }
.si-lg.feito { background: var(--ok-s); border-color: var(--ok); color: var(--ok); }
.si-lg.nao { background: var(--mal-s); border-color: var(--mal); color: var(--mal); }
.si-lg.atrasado { border-color: var(--at); color: var(--at); font-weight: 700; }
.si-lg.si-adi, .sp-aprazar button.si-adi { background: var(--at-s); border-color: var(--at); color: var(--at); }
.si-lg.si-agora, .sp-aprazar button.si-agora { border-color: var(--px); color: var(--px); box-shadow: inset 0 0 0 1px var(--px); font-weight: 700; }
.sp-aprazar button { min-height: 34px; min-width: 58px; }
.si-grade th, .si-grade td { vertical-align: middle; }
.si-grade td:first-child { min-width: 220px; }
.si-grade td small { display: block; color: var(--aco); }
.si-susp-l b { text-decoration: line-through; color: var(--aco); }
.si-hora-bloco { display: flex; flex-direction: column; gap: 2px; }
.si-hora-bloco h3 { padding-top: 6px; }
.si-hora-bloco .sp-lista > li > span { flex: 1 1 180px; }
.si-hora-bloco small { display: block; color: var(--aco); }
.si-so-cel { display: none; }
.si-ck-bts { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
.si-ck-bts .btn { justify-content: center; min-height: 44px; }

/* sinais vitais */
.si-sv-form { display: grid; grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); gap: 10px; }
.si-sv-form label { font-size: .84rem; }
.si-sv-ult { display: flex; flex-wrap: wrap; gap: 10px 16px; }
.si-sv-ult > div { display: flex; flex-direction: column; gap: 2px; }
.si-sv-ult small { color: var(--aco); font-size: .76rem; }
.si-svs { display: flex; flex-wrap: wrap; gap: 4px; margin-top: 4px; }
.si-sv { display: inline-block; font-size: .82rem; font-variant-numeric: tabular-nums; background: var(--bg); border: 1px solid var(--linha); border-radius: 4px; padding: 1px 7px; }
.si-sv.si-fora { background: var(--mal-s); border-color: var(--mal); color: var(--mal); font-weight: 700; }
.si-tl > li > span { flex: 1 1 100%; }
.si-txt { display: block; white-space: pre-wrap; margin-top: 4px; }

/* internar */
.si-res { display: flex; flex-direction: column; gap: 4px; margin-top: 6px; }
.si-res-b { text-align: left; border: 1px solid var(--linha); background: var(--sup); border-radius: 6px; padding: 7px 10px; cursor: pointer; font: inherit; color: inherit; }
.si-res-b:hover:not(:disabled) { border-color: var(--px); }
.si-res-b:disabled { opacity: .55; cursor: not-allowed; }
.si-res-b small { display: block; color: var(--aco); }
.si-escolhido { display: flex; flex-wrap: wrap; gap: 4px 10px; align-items: center; border: 1px solid var(--px); background: var(--px-suave); border-radius: 6px; padding: 8px 10px; }
.si-escolhido small { flex: 1 1 100%; color: var(--aco); order: 3; }
.si-escolhido .btn { margin-left: auto; }
.si-dh { display: flex; gap: 6px; }
.si-dh input[type=time] { max-width: 120px; }
.si-cidsug { display: flex; flex-wrap: wrap; gap: 4px; margin-top: 4px; }
.si-cidsug button { border: 1px dashed var(--px); background: none; color: var(--px); border-radius: 999px; padding: 3px 9px; font-size: .78rem; cursor: pointer; }
.si-equipe { border: 1px solid var(--linha); border-radius: 6px; padding: 8px 12px; display: flex; flex-direction: column; gap: 4px; }
.si-resumo > li > span { flex: 1 1 100%; }

/* documentos */
.si-doc-cab { text-align: center; display: flex; flex-direction: column; margin-bottom: 4px; }
.si-doc-cab b { font-family: var(--f-tit); font-size: 1.05rem; }
.si-doc-cab small { color: #555; }
.si-doc-pac { width: 100%; border-collapse: collapse; margin: 6px 0 12px; font-size: .9rem; }
.si-doc-pac td { border: 1px solid #ccc; padding: 4px 8px; vertical-align: top; }
.si-doc-pac small { display: block; color: #666; font-size: .72rem; text-transform: uppercase; letter-spacing: .04em; }
.si-doc .sp-presc li.si-gr { color: #333; }
.si-doc-val { font-size: .82rem; color: #555; margin-top: 10px; }
.si-pre { white-space: pre-wrap; }

@media (max-width: 700px) {
  .si-so-largo { display: none; }
  .si-so-cel { display: flex; flex-direction: column; gap: 8px; }
  .si-it-campos .campo.curto { flex: 1 1 90px; }
  .si-ck-bts { grid-template-columns: 1fr 1fr; }
  .si-cab h1 { font-size: 1.15rem; }
}
.si-cfg-l { flex-wrap: nowrap !important; }
.si-cfg-l input { min-width: 0; }
.si-cfg-l .si-cfg-k { flex: 0 1 140px; }
.si-doc-bts { margin-top: 6px; }
.sp-aprazar button.si-antes { opacity: .55; border-style: dashed; }
.si-lg.si-antes { border-style: dashed; opacity: .7; }
.si .sp-lista > li > span.pill, .si .sp-lista > li > span.acoes, .gaveta .sp-lista > li > span.acoes { flex: 0 0 auto; }
.si-it textarea { min-height: 0; }

/* mapa de leitos em quadrados (01/11/2026) */
.si-leg { display: flex; flex-wrap: wrap; gap: 6px 14px; font-size: .8rem; color: var(--aco); margin: 2px 0 4px; }
.si-leg span { display: inline-flex; align-items: center; gap: 6px; }
.si-leg i { width: 14px; height: 14px; border-radius: 4px; display: inline-block; border: 2px solid; }
.si-ala-c { display: flex; flex-direction: column; gap: 10px; }
.si-ala-quartos { flex-direction: row; flex-wrap: wrap; gap: 12px; }
.si-quarto { border: 1.5px dashed var(--linha); border-radius: 12px; padding: 8px; display: flex; flex-direction: column; gap: 6px; background: var(--bg); }
.si-quarto-n { font-weight: 700; font-size: .82rem; color: var(--aco); text-transform: uppercase; letter-spacing: .04em; }
.si-quarto-n small { font-weight: 600; text-transform: none; letter-spacing: 0; }
.si-qs { display: grid; grid-template-columns: repeat(auto-fill, 136px); gap: 10px; }
.si-quarto .si-qs { display: flex; flex-wrap: wrap; }
.si-q { width: 136px; min-width: 0; aspect-ratio: 1 / 1; border-radius: 12px; border: 2px solid; padding: 9px 10px; display: flex; flex-direction: column; align-items: flex-start; gap: 2px; text-align: left; font: inherit; color: var(--tinta); cursor: pointer; position: relative; transition: transform .08s, box-shadow .12s; }
.si-q:hover { transform: translateY(-1px); box-shadow: var(--sombra-l); }
.si-q:focus-visible { outline: 3px solid var(--ouro); outline-offset: 2px; }
.si-q-n { font: 700 .82rem/1.1 var(--f-tit, inherit); color: var(--aco); display: flex; gap: 4px; width: 100%; }
.si-q-sx { font-style: normal; margin-left: auto; font-size: .9rem; }
.si-q-p { font-size: .98rem; line-height: 1.15; margin-top: 4px; overflow: hidden; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; }
.si-q small { font-size: .74rem; color: var(--aco); }
.si-q-pe { margin-top: auto; display: flex; flex-direction: column; gap: 2px; width: 100%; }
.si-q-pe i { font-style: normal; font-size: .7rem; font-weight: 700; line-height: 1.15; }
.si-q-al { color: var(--mal); }
.si-q-livre { color: var(--ok); }
.si-q-livre, .si-leg .si-q-livre { }
.si-q-livre.si-q, .si-q.si-q-livre { background: var(--ok-s); border-color: #9fd2b3; border-style: dashed; }
.si-q.si-q-ocup { background: var(--px-suave); border-color: var(--px); }
.si-q.si-q-alta { background: #fff6d6; border-color: #e0a800; }
.si-q.si-q-at { background: var(--at-s); border-color: var(--at); }
.si-q.si-q-mal { background: var(--mal-s); border-color: var(--mal); }
.si-q.si-q-bloq { background: repeating-linear-gradient(45deg, #eceff3, #eceff3 8px, #e2e6ec 8px, #e2e6ec 16px); border-color: #b9c0cc; color: var(--aco); }
.si-q-at .si-q-st { color: var(--at); } .si-q-mal .si-q-st { color: var(--mal); } .si-q-alta .si-q-st { color: #8a6500; }
.si-leg .si-q-livre { background: var(--ok-s); border-color: #9fd2b3; } .si-leg .si-q-ocup { background: var(--px-suave); border-color: var(--px); } .si-leg .si-q-alta { background: #fff6d6; border-color: #e0a800; }
.si-leg .si-q-at { background: var(--at-s); border-color: var(--at); } .si-leg .si-q-mal { background: var(--mal-s); border-color: var(--mal); } .si-leg .si-q-bloq { background: #e2e6ec; border-color: #b9c0cc; }
@media (max-width: 640px) {
  .si-qs { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; }
  .si-q { width: auto; padding: 7px 8px; }
  .si-quarto { flex: 1 1 100%; }
  .si-quarto .si-qs { display: grid; }
  .si-q-p { font-size: .88rem; }
}

/* barra lateral do leito */
.si-pn-sub { color: var(--aco); margin: -6px 0 2px; font-size: .9rem; }
.si-pn-kpis { display: grid; grid-template-columns: repeat(auto-fit, minmax(120px, 1fr)); gap: 8px; }
.si-pn-kpis span { background: var(--bg); border-radius: 10px; padding: 8px 10px; display: flex; flex-direction: column; }
.si-pn-kpis small { color: var(--aco); font-size: .74rem; } .si-pn-kpis b { font-size: .92rem; }
.si-pn-sec { border-top: 1px solid var(--linha); padding-top: 10px; display: flex; flex-direction: column; gap: 6px; }
.si-pn-sec h3 { display: flex; justify-content: space-between; align-items: center; gap: 8px; margin: 0; font-size: .95rem; }
.si-pn-l { display: grid; grid-template-columns: 130px 1fr; gap: 8px; font-size: .9rem; }
.si-pn-l small { color: var(--aco); }
.si-pn-presc { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 4px; font-size: .88rem; }
.si-pn-presc small { color: var(--aco); }
.si-pn-txt { white-space: pre-wrap; font-size: .88rem; margin: 4px 0 0; }
.si-pn-mini { font-size: .86rem; color: var(--aco); margin: 0; }
.si-pn-livre { background: var(--ok-s); border: 2px dashed #9fd2b3; border-radius: 12px; padding: 16px; display: flex; flex-direction: column; gap: 4px; }
.si-pn-acoes { border-top: 1px solid var(--linha); padding-top: 12px; flex-wrap: wrap; }
@media (max-width: 640px) { .si-pn-l { grid-template-columns: 1fr; gap: 0; } }

/* modo TV do posto de enfermagem (01/11/2026) */
.kw-tv { position: fixed; inset: 0; z-index: 2147482000; background: #0b1730; color: #eef3fb; display: flex; flex-direction: column; font-family: inherit; overflow: hidden; }
.tv-top { display: flex; align-items: center; gap: 2vw; padding: 1.2vh 2vw; background: #0f2747; border-bottom: 2px solid #1d3a66; }
.tv-top > div:first-child { display: flex; flex-direction: column; } .tv-top > div:first-child b { font-size: clamp(20px, 2.2vw, 40px); } .tv-top > div:first-child span { font-size: clamp(12px, 1vw, 18px); opacity: .8; }
.tv-cont { display: flex; gap: 1.2vw; margin-left: auto; }
.tv-k { display: flex; flex-direction: column; align-items: center; font-weight: 800; font-size: clamp(22px, 2.4vw, 46px); line-height: 1; padding: .6vh 1vw; border-radius: 10px; background: #1a3a66; min-width: 6vw; }
.tv-k small { font-weight: 600; font-size: clamp(10px, .8vw, 15px); line-height: 1.2; opacity: .85; }
.tv-k.tv-mal { background: #b8321f; } .tv-k.tv-at { background: #b07a00; }
.tv-hora { font-weight: 800; font-size: clamp(26px, 3vw, 56px); line-height: 1; letter-spacing: .02em; }
.tv-sair { background: transparent; color: #cfdcf0; border: 1px solid #3a5a8a; border-radius: 8px; padding: 8px 12px; font: inherit; cursor: pointer; opacity: .6; }
.tv-g { flex: 1; display: grid; grid-template-columns: repeat(auto-fill, minmax(clamp(220px, 18vw, 380px), 1fr)); gap: 1vw; padding: 1.2vw 2vw; overflow: auto; align-content: start; }
.tv-c { background: #13284a; border: 3px solid #1d3a66; border-radius: 14px; padding: 1vh 1vw; display: flex; flex-direction: column; gap: .4vh; min-height: 16vh; }
.tv-c.tv-livre { opacity: .45; justify-content: center; }
.tv-c.tv-at { border-color: #e0a800; } .tv-c.tv-mal { border-color: #ff5a3c; animation: tvpisca 1.6s ease-in-out infinite; }
@keyframes tvpisca { 50% { box-shadow: 0 0 0 6px rgb(255 90 60 / .35); } }
.tv-l { font-weight: 800; font-size: clamp(16px, 1.3vw, 26px); line-height: 1.1; color: #8fc2ff; display: flex; justify-content: space-between; }
.tv-p { font-weight: 800; font-size: clamp(18px, 1.7vw, 34px); line-height: 1.1; }
.tv-s { font-size: clamp(12px, .95vw, 18px); opacity: .85; }
.tv-al { background: #b8321f; color: #fff; border-radius: 6px; padding: 2px 8px; font-weight: 800; font-size: clamp(12px, .95vw, 18px); align-self: flex-start; }
.tv-m { list-style: none; margin: .4vh 0 0; padding: 0; display: flex; flex-direction: column; gap: .3vh; font-size: clamp(13px, 1.05vw, 21px); }
.tv-m li { border-radius: 6px; padding: 2px 6px; } .tv-m li b { font-variant-numeric: tabular-nums; }
.tv-m small { opacity: .75; }
.tv-m .tv-atr { background: #b8321f; color: #fff; } .tv-m .tv-agora { background: #e0a800; color: #1b1300; } .tv-m .tv-ok { opacity: .7; }
.tv-sem { background: #6b4b00; border-radius: 6px; padding: 2px 8px; font-weight: 700; font-size: clamp(12px, .95vw, 18px); align-self: flex-start; }
.tv-rod { padding: 1vh 2vw; background: #0f2747; font-size: clamp(13px, 1.1vw, 22px); border-top: 2px solid #1d3a66; }
.si-ck-feito { font-size: 1.1rem; padding: 14px 22px; width: 100%; }
.si-ck-nao { border: 1px solid var(--linha); border-radius: 10px; padding: 8px 12px; }
.si-ck-nao summary { cursor: pointer; font-weight: 700; padding: 4px 0; }
.si-ck-nao[open] { display: flex; flex-direction: column; gap: 8px; }
.si-ck-bts .si-ck-feito { flex: 1 1 100%; }
.si-bh-form { display: flex; gap: 8px; align-items: flex-end; flex-wrap: wrap; } .si-bh-form .campo { flex: 1 1 160px; } .si-bh-form .campo.curto { flex: 0 1 90px; }

/* RPA (01/11/2026) */
.rp-g { grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)); }
.rp-c header { display: flex; justify-content: space-between; gap: 8px; align-items: flex-start; }
.rp-c header small { display: block; color: var(--aco); font-size: .82rem; }
.rp-c.rp-mal { border-color: var(--mal); box-shadow: inset 4px 0 0 var(--mal); }
.rp-c.rp-ok { box-shadow: inset 4px 0 0 var(--ok); }
.rp-ald { display: flex; gap: 10px; align-items: center; }
.rp-ald span:last-child { display: flex; flex-direction: column; } .rp-ald small { color: var(--aco); }
.rp-n { font-size: 2rem; font-weight: 800; min-width: 48px; height: 48px; border-radius: 12px; display: grid; place-items: center; background: var(--bg); }
.rp-n.ok { background: var(--ok-s); color: var(--ok); } .rp-n.mal { background: var(--at-s); color: var(--at); }
.rp-sv { margin: 0; font-size: .9rem; }
.rp-q { border: 1px solid var(--linha); border-radius: 10px; padding: 6px 10px; display: flex; flex-direction: column; gap: 4px; }
.rp-q legend { font-weight: 700; padding: 0 4px; } .rp-q label { display: flex; gap: 6px; align-items: baseline; font-size: .9rem; }

/* apoio à decisão: interações e TEV (01/11/2026) */
.sc-int { border: 1px solid var(--linha); border-radius: 10px; padding: 8px 10px; font-size: .9rem; margin-bottom: 6px; }
.sc-tev { display: flex; flex-direction: column; gap: 6px; } .sc-tev p { margin: 0; }
.sc-fat { display: flex; flex-direction: column; gap: 4px; padding: 6px 0; font-size: .9rem; } .sc-fat small { color: var(--aco); }
.sc-contra { border-top: 1px dashed var(--linha); margin-top: 6px; }

/* exames com um toque (01/11/2026) */
.sx-pain { display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: 8px; }
.sx-p { text-align: left; border: 1px solid var(--px); background: var(--px-suave); border-radius: 10px; padding: 10px 12px; cursor: pointer; font: inherit; color: inherit; display: flex; flex-direction: column; gap: 2px; }
.sx-p small { color: var(--aco); font-size: .78rem; }
.sx-chips { display: flex; flex-wrap: wrap; gap: 6px; }
.chip-btn.on { background: var(--px); color: var(--px-tinta); border-color: var(--px); }
.sx-pe { position: sticky; bottom: -18px; background: var(--sup); padding: 10px 0; display: flex; flex-direction: column; gap: 8px; border-top: 1px solid var(--linha); }
.sx-pe input { padding: 10px; border: 1px solid var(--linha); border-radius: 8px; font: inherit; }
.sx-pedir { font-size: 1.05rem; padding: 12px; }
.sx-lista li small { display: block; }
.tv-ex { background: #1d4f8a; border-radius: 6px; padding: 2px 8px; font-size: clamp(12px, .95vw, 18px); font-weight: 700; align-self: flex-start; }
.sc-ex, .rp-ex { border-top: 1px dashed var(--linha); padding-top: 6px; }
