html{
  font-size: var(--cmo-font-size-root);
}

body{
  background-color: var(--cmo-bg);
  color: var(--cmo-text);
  font-size: .92rem;
  line-height: var(--cmo-line-height);
}

h1, .h1{ font-size: 1.5rem; }
h2, .h2{ font-size: 1.3rem; }
h3, .h3{ font-size: 1.15rem; }
h4, .h4{ font-size: 1.02rem; }
h5, .h5{ font-size: .95rem; }
h6, .h6{ font-size: .88rem; }

p,
.form-label,
.btn,
.dropdown-item,
.nav-link,
.navbar-text,
.page-link,
.form-control,
.form-select{
  font-size: .88rem;
}

.small,
small{
  font-size: .78rem !important;
}

.btn{
  padding: .38rem .72rem;
  line-height: 1.2;
  border-radius: .72rem;
  font-weight: 600;
  transition:
    background-color .18s ease,
    border-color .18s ease,
    color .18s ease,
    box-shadow .18s ease,
    transform .12s ease;
}

.btn:hover{
  transform: translateY(-1px);
}

.btn:active{
  transform: translateY(0);
}

.btn:focus-visible,
.form-control:focus,
.form-select:focus,
.page-link:focus{
  box-shadow: 0 0 0 .22rem rgba(31, 95, 153, .14);
}

.btn-sm{
  padding: .24rem .52rem;
  font-size: .78rem;
  border-radius: .62rem;
}

.btn-primary{
  background-color: var(--cmo-primary);
  border-color: var(--cmo-primary);
  color: #fff;
}

.btn-primary:hover,
.btn-primary:focus{
  background-color: var(--cmo-primary-dark);
  border-color: var(--cmo-primary-dark);
  color: #fff;
}

.btn-outline-primary{
  color: var(--cmo-primary);
  border-color: #c7daec;
  background-color: #fff;
}

.btn-outline-primary:hover,
.btn-outline-primary:focus,
.btn-outline-primary:active{
  color: #fff;
  border-color: var(--cmo-primary);
  background-color: var(--cmo-primary);
}

.btn-outline-secondary{
  color: var(--cmo-text-soft);
  border-color: #d5e0ea;
  background-color: #fff;
}

.btn-outline-secondary:hover,
.btn-outline-secondary:focus{
  color: var(--cmo-text);
  border-color: #c7d6e3;
  background-color: #f7fafd;
}

.btn-outline-danger{
  color: var(--cmo-danger);
  border-color: #ebc4c4;
  background-color: #fff;
}

.btn-outline-danger:hover,
.btn-outline-danger:focus{
  color: #fff;
  border-color: var(--cmo-danger);
  background-color: var(--cmo-danger);
}

.form-control,
.form-select{
  min-height: 36px;
  padding: .38rem .68rem;
  border-radius: .72rem;
  border-color: #d6e3ef;
  background-color: #fff;
}

.form-control::placeholder{
  color: #7d92a5;
}

.form-control:hover,
.form-select:hover{
  border-color: #bfd3e6;
}

.table{
  font-size: .84rem;
  color: var(--cmo-text);
}

.table > :not(caption) > * > *{
  padding: .52rem .65rem;
}

.table thead th{
  font-size: .78rem;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: .03em;
  color: #5e788f;
  border-bottom-width: 1px;
}

.table-hover > tbody > tr{
  transition: background-color .14s ease;
}

.table-hover > tbody > tr:hover{
  background-color: #f7fbff;
}

.card{
  border: 1px solid var(--cmo-border);
  border-radius: .9rem;
  box-shadow: var(--cmo-card-shadow-soft);
}

footer{
  color: var(--cmo-soft-gray);
  font-size: .82rem;
}

/* Maggie voice assistant */
.navbar-maggie-wrap{
  position: relative;
}

.navbar-maggie-btn{
  border: 1px solid rgba(255,255,255,.24);
  background: rgba(255,255,255,.10);
  color: rgba(255,255,255,.92);
  border-radius: 999px;
  min-height: 34px;
  padding: .28rem .68rem;
  display: inline-flex;
  align-items: center;
  gap: .35rem;
  font-weight: 700;
  line-height: 1.1;
}

.navbar-maggie-btn:hover,
.navbar-maggie-btn:focus{
  color: #fff;
  background: rgba(255,255,255,.18);
  border-color: rgba(255,255,255,.34);
}

.navbar-maggie-btn:disabled{
  opacity: .9;
}

.navbar-maggie-btn.maggie-voice-listening{
  background: rgba(255,255,255,.25);
  box-shadow: 0 0 0 .18rem rgba(255,255,255,.16);
}

.navbar-maggie-btn.maggie-voice-listening .bi-mic{
  animation: maggiePulse 1s infinite ease-in-out;
}

.navbar-maggie-label{
  font-size: .82rem;
}





@keyframes maggiePulse{
  0%, 100%{ transform: scale(1); }
  50%{ transform: scale(1.18); }
}


/* Maggie commands directory */
.maggie-commands-modal{
  border: 1px solid #d8e7f4;
  border-radius: 1rem;
  box-shadow: 0 22px 60px rgba(11, 32, 52, .22);
}

.maggie-commands-modal .modal-header{
  background: linear-gradient(180deg, #f3f9ff 0%, #eaf4ff 100%);
  border-bottom: 1px solid #d8e7f4;
}

.maggie-commands-modal .modal-title{
  color: var(--cmo-primary-dark);
  font-weight: 850;
  display: inline-flex;
  align-items: center;
  gap: .45rem;
}

.maggie-commands-grid{
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: .9rem;
}

.maggie-command-group{
  border: 1px solid #dbe8f3;
  border-radius: .9rem;
  padding: .85rem;
  background: #fbfdff;
}

.maggie-command-group h6{
  color: #5e788f;
  text-transform: uppercase;
  letter-spacing: .04em;
  font-weight: 850;
  margin-bottom: .55rem;
}

.maggie-command-group code{
  display: inline-block;
  margin: .18rem 0;
  padding: .18rem .42rem;
  border-radius: .45rem;
  background: #eef6ff;
  color: #174d78;
  font-size: .78rem;
  white-space: normal;
}

@media (max-width: 767.98px){
  .maggie-commands-grid{
    grid-template-columns: 1fr;
  }
}


@media (max-width: 991.98px){
  .navbar-maggie-btn{
    width: 100%;
    justify-content: center;
  }
}

/* Maggie continuous listening state */
.navbar-maggie-btn.maggie-voice-enabled{
  background: rgba(25, 135, 84, .25);
  border-color: rgba(174, 230, 196, .75);
  color: #fff;
}

.navbar-maggie-btn.maggie-voice-disabled{
  background: rgba(255,255,255,.08);
  border-color: rgba(255,255,255,.18);
  color: rgba(255,255,255,.68);
}

.navbar-maggie-btn.maggie-voice-enabled .bi-mic{
  color: #c9f7d8;
}

.navbar-maggie-btn.maggie-voice-disabled .bi-mic{
  color: rgba(255,255,255,.62);
}

/* Confirmaciones globales MedicalDev */
.app-confirm-modal{
  overflow:hidden;
  border:1px solid #d7e5f1;
  border-radius:1rem;
  box-shadow:0 24px 70px rgba(15,45,70,.24);
}

.app-confirm-modal-header{
  gap:.7rem;
  background:linear-gradient(180deg,#f7fbff 0%,#edf6fd 100%);
  border-bottom-color:#dce9f3;
}

.app-confirm-icon{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  flex:0 0 2rem;
  width:2rem;
  height:2rem;
  border-radius:50%;
  background:#dceeff;
  color:var(--cmo-primary-dark);
  font-size:1rem;
}

.app-confirm-modal .modal-title{
  color:var(--cmo-primary-dark);
  font-weight:850;
}

.app-confirm-message{
  color:#344d63;
  line-height:1.55;
  white-space:pre-line;
}

#appConfirmModal[data-tone="danger"] .app-confirm-modal-header{
  background:linear-gradient(180deg,#fff8f8 0%,#fff0f0 100%);
}

#appConfirmModal[data-tone="danger"] .app-confirm-icon{
  background:#ffe1e1;
  color:#b42318;
}

#appConfirmModal[data-tone="danger"] .modal-title{
  color:#8f1d16;
}
