:root{--ink:#10302F;--ink-2:#1A4644;--brand:#0F8B7D;--brand-d:#0B6E63;--amber:#F2A93B;--paper:#F4F7F6;--line:#DFE7E5}
body{font-family:'Figtree',system-ui,sans-serif;background:var(--paper);color:#17302E}
.btn-brand{background:var(--brand);border-color:var(--brand);color:#fff;font-weight:600}
.btn-brand:hover,.btn-brand:focus{background:var(--brand-d);border-color:var(--brand-d);color:#fff}
.form-control:focus,.form-select:focus{border-color:var(--brand);box-shadow:0 0 0 .2rem rgba(15,139,125,.18)}

/* login */
.login-wrap{min-height:100vh;display:grid;grid-template-columns:minmax(0,5fr) minmax(0,6fr)}
.login-side{background:var(--ink);color:#fff;padding:3rem;display:flex;flex-direction:column;justify-content:space-between}
.login-side h1{font-size:2.6rem;font-weight:700;margin-bottom:.5rem}
.login-side p{max-width:22rem;opacity:.8;font-size:1.1rem}
.login-form{display:flex;align-items:center;justify-content:center;padding:2rem}
.login-form form{width:100%;max-width:22rem}
@media(max-width:768px){.login-wrap{grid-template-columns:1fr}.login-side{padding:1.5rem;gap:1rem}.login-side h1{font-size:1.6rem}.login-side small{display:none}}

/* shell */
.shell{display:flex;min-height:100vh}
.sidebar{width:15.5rem;background:var(--ink);color:#fff;display:flex;flex-direction:column;position:sticky;top:0;height:100vh;flex-shrink:0}
.brand{font-weight:700;font-size:1.2rem;padding:1.4rem 1.4rem 1rem}
.brand i{color:var(--amber);margin-right:.4rem}
.sidebar nav{padding:.5rem .8rem;flex:1}
.sidebar nav a{display:flex;align-items:center;gap:.8rem;color:#C9DAD7;text-decoration:none;padding:.65rem .8rem;border-radius:.5rem;margin-bottom:.15rem}
.sidebar nav a i{width:1.2rem;text-align:center}
.sidebar nav a:hover{background:var(--ink-2);color:#fff}
.sidebar nav a.active{background:var(--brand);color:#fff;font-weight:600}
.user{display:flex;align-items:center;gap:.7rem;padding:1rem 1.2rem;border-top:1px solid rgba(255,255,255,.12)}
.avatar{width:2.2rem;height:2.2rem;border-radius:50%;background:var(--ink-2);display:grid;place-items:center}
.content{flex:1;min-width:0;padding:2rem}
@media(max-width:991px){.sidebar{position:fixed;z-index:1040;left:-16rem;transition:left .2s}.sidebar.open{left:0}.content{padding:1rem}}

/* agenda */
.panel{background:#fff;border:1px solid var(--line);border-radius:.75rem;overflow:hidden}
.toolbar{display:flex;flex-wrap:wrap;gap:.5rem;align-items:center;padding:.9rem 1rem;border-bottom:1px solid var(--line)}
.toolbar .btn-light{border:1px solid var(--line)}
.table thead th{font-weight:600;font-size:.85rem;color:#5B706D;background:#FAFCFB;border-bottom:1px solid var(--line)}
#tbody tr{cursor:pointer}
#tbody tr.sel>*{background:#E3F4F1!important;box-shadow:none}
.st{display:inline-block;padding:.2rem .6rem;border-radius:2rem;font-size:.8rem;font-weight:600}
.st-Agendado{background:#E8EEF0;color:#46606A}.st-Confirmado{background:#DCEEFF;color:#1B5E9A}
.st-Aguardando{background:#FFF0D1;color:#8A5A00}.st-Ematendimento{background:#D5F3EE;color:#0B6E63}
.st-Atendido{background:#DDF5DD;color:#25692A}.st-Faltou,.st-Cancelado{background:#FBE0E0;color:#9A2B2B}
.select2-container--bootstrap-5 .select2-selection{min-height:38px}

/* paciente */
.foto-box{width:20rem;max-width:100%;aspect-ratio:1;background:#EEF3F2;border:1px dashed #B7C7C4;border-radius:.75rem;display:grid;place-items:center;overflow:hidden;color:#9DB1AE;font-size:5rem}
.foto-box img,.foto-box video{width:100%;height:100%;object-fit:cover}
.nav-tabs .nav-link{color:#4F6663}.nav-tabs .nav-link.active{color:var(--brand-d);font-weight:600}
.btn-check:checked+.btn-outline-secondary{background:var(--brand);border-color:var(--brand);color:#fff}

/* notas e imagens */
.thumb{position:relative;aspect-ratio:1;border-radius:.5rem;overflow:hidden;background:#EEF3F2}
.thumb img{width:100%;height:100%;object-fit:cover}
.thumb button{position:absolute;top:.3rem;right:.3rem}
#listaNotas .active{background:#E3F4F1;border-color:var(--brand);color:inherit}
.st-Realizado{background:#DDF5DD;color:#25692A}

/* atendimento */
.at-head{display:flex;gap:1.2rem;align-items:flex-start;padding:1.2rem 1.5rem;background:#E3F4F1;border-bottom:1px solid var(--line)}
.at-foto{width:6.5rem;height:6.5rem;flex-shrink:0;border-radius:.6rem;background:#C9DAD7;display:grid;place-items:center;color:#fff;font-size:2.5rem;overflow:hidden}
.at-foto img{width:100%;height:100%;object-fit:cover}
.at-nome{font-size:1.6rem;font-weight:700;font-style:italic;margin:0 0 .3rem}
#modalAt textarea{resize:vertical}

/* diálogos e mudança de status */
.swal2-popup{font-family:'Figtree',system-ui,sans-serif;border-radius:1rem}
.swal2-title{font-weight:700;font-size:1.35rem}
.status-lista{display:flex;flex-direction:column;gap:.5rem;text-align:left}
.status-op{display:flex;align-items:center;gap:.9rem;width:100%;padding:.7rem .9rem;background:#fff;border:1px solid var(--line);border-radius:.7rem;font-family:inherit;color:inherit;transition:.15s}
.status-op:hover:not(:disabled){border-color:var(--brand);background:#F4FAF9;transform:translateY(-1px)}
.status-op:disabled{opacity:.4;cursor:not-allowed}
.status-op .ic{width:2.5rem;height:2.5rem;border-radius:.6rem;display:grid;place-items:center;font-size:1.05rem;flex-shrink:0}
.status-op .tx{flex:1;display:flex;flex-direction:column;line-height:1.25}
.status-op .tx small{color:#6A7C79}
.status-op .seta{color:#9DB1AE;font-size:.8rem}

/* marca Cuidae */
.brand{display:flex;align-items:center;gap:.65rem;font-size:1.45rem;padding:1.3rem 1.2rem 1rem}
.wordmark{font-weight:700;letter-spacing:-.035em;text-transform:lowercase}
.wordmark span{color:var(--amber)}
.login-side h1.wordmark{font-size:3.2rem;margin:1rem 0 .4rem}
@media(max-width:768px){.login-side h1.wordmark{font-size:2rem;margin:.5rem 0 0}}
.clinica-nome{padding:0 1.4rem .6rem;margin-top:-.5rem;font-size:.8rem;color:#9DB8B4;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}

/* login: painel lateral */
.login-side{position:relative;overflow:hidden;isolation:isolate;background:linear-gradient(155deg,#0A3F3B 0%,#10302F 50%,#0B5A52 120%);padding:3rem 3.2rem;gap:2rem}
.ls-glow{position:absolute;border-radius:50%;filter:blur(70px);z-index:-1;pointer-events:none}
.ls-glow-a{width:22rem;height:22rem;background:#19B5A3;opacity:.28;top:-7rem;right:-6rem}
.ls-glow-b{width:18rem;height:18rem;background:#F2A93B;opacity:.14;bottom:-6rem;left:-5rem}
.ls-ring{position:absolute;width:36rem;max-width:none;right:-11rem;bottom:-9rem;color:rgba(255,255,255,.06);z-index:-1;pointer-events:none}
.ls-brand{display:flex;align-items:center;gap:.8rem}
.ls-brand .wordmark{font-size:2rem}
.ls-main{max-width:27rem}
.ls-title{font-size:2.6rem;line-height:1.12;font-weight:700;letter-spacing:-.03em;margin:0 0 1rem}
.ls-title em{font-style:normal;color:var(--amber)}
.login-side .ls-sub{opacity:.78;font-size:1.05rem;line-height:1.55;max-width:none;margin-bottom:2rem}
.ls-feat{list-style:none;padding:0;margin:0;display:grid;gap:.85rem}
.ls-feat li{display:flex;gap:.9rem;align-items:center;padding:.8rem 1rem;border-radius:.9rem;background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.1);backdrop-filter:blur(6px)}
.ls-feat .ic{width:2.5rem;height:2.5rem;border-radius:.7rem;display:grid;place-items:center;background:rgba(95,211,192,.18);color:#7BE3D2;flex-shrink:0}
.ls-feat strong{display:block;font-weight:600}
.ls-feat small{display:block;opacity:.7;line-height:1.35}
.ls-foot{opacity:.55}
@media(max-width:768px){
  .login-side{padding:1.4rem;gap:.8rem}
  .ls-brand .wordmark{font-size:1.6rem}.ls-brand svg{width:36px;height:36px}
  .ls-title{font-size:1.25rem;margin:0}.ls-sub,.ls-feat,.ls-foot,.ls-ring{display:none}
}
