﻿/* Extra UI helpers */
.mc-container{ max-width: 1180px; }
img{ max-width: 100%; height: auto; }

.mc-ghost-btn{
  border: 1px solid rgba(255,255,255,.24);
  background: transparent;
  color: rgba(255,255,255,.92);
}
.mc-ghost-btn:hover{
  border-color: rgba(157,207,212,.45);
  background: rgba(157,207,212,.12);
}

.mc-card-icon{
  width: 44px; height: 44px;
  border-radius: 14px;
  background: rgba(157,207,212,.22);
  display:flex; align-items:center; justify-content:center;
  color: #16373C;
}

.mc-soft{
  background: #FBFDFD;
  border: 1px solid var(--mc-border);
  border-radius: 16px;
}

.mc-table thead th{
  color: var(--mc-muted);
  font-weight: 700;
  background: #FBFDFD;
  border-bottom: 1px solid var(--mc-border);
}

.mc-pill{
  padding: .25rem .6rem;
  border-radius: 999px;
  font-weight: 700;
  font-size: .78rem;
  display:inline-block;
}
.mc-pill.ok{ background: rgba(85,179,107,.18); color:#1F6B33; }
.mc-pill.warn{ background: rgba(242,201,76,.22); color:#7A5A00; }
.mc-pill.bad{ background: rgba(224,82,82,.18); color:#7A1A1A; }

/* Planos table polish: keeps action buttons on one line and row height stable */
.mc-plans-table td,
.mc-plans-table th{
  vertical-align: middle;
}

.mc-row-actions--plans{
  display: flex;
  justify-content: flex-end;
  align-items: center;
  gap: .35rem;
  flex-wrap: nowrap;
  white-space: nowrap;
}

.mc-row-actions--plans form{
  margin: 0;
}

.mc-row-actions--plans .btn.btn-sm{
  padding: .16rem .42rem;
  line-height: 1.2;
}

.mc-row-actions{
  display: flex;
  justify-content: flex-end;
  align-items: center;
  gap: .35rem;
  flex-wrap: nowrap;
  white-space: nowrap;
}

.mc-row-actions form{
  margin: 0;
}

.mc-row-actions .btn.btn-sm{
  padding: .16rem .42rem;
  line-height: 1.2;
}

.mc-row-actions--staff .btn-outline-warning{
  white-space: nowrap;
}

/* Brand helpers */
.mc-brand-icon{
  width: 42px;
  height: 42px;
  border-radius: 14px;
  background: rgba(157,207,212,.18);
  color: #EAF2F1;
  display:flex;
  align-items:center;
  justify-content:center;
  font-weight: 700;
  letter-spacing: .4px;
}

.mc-logo{
  width: 34px;
  height: 34px;
  border-radius: 10px;
  background: var(--mc-primary);
  color: #113238;
  display:flex;
  align-items:center;
  justify-content:center;
  font-weight: 700;
  letter-spacing: .4px;
}

.mc-logo-lockup{
  display:flex;
  align-items:center;
  gap: .6rem;
}
.mc-logo-symbol{
  height: 34px;
  width: auto;
}
.mc-logo-wordmark{
  height: 24px;
  width: auto;
}
.mc-logo-full{
  height: 36px !important;
  width: auto;
  max-height: 36px !important;
  max-width: 180px;
  display: block;
}
.mc-logo-type{
  font-family: var(--mc-font-display);
  font-weight: 600;
  letter-spacing: .22em;
  text-transform: uppercase;
  font-size: .9rem;
}

.mc-auth{
  background: radial-gradient(420px 220px at 12% 12%, rgba(157,207,212,.18), transparent 60%), var(--mc-bg);
}

.mc-hero-title{
  text-transform: uppercase;
  letter-spacing: .08em;
}
.mc-hero-title span{ color: var(--mc-primary); }
.mc-hero-subtitle{ color: rgba(255,255,255,.72); }

.mc-feature-icon{
  width: 56px;
  height: 56px;
  border-radius: 16px;
  background: rgba(157,207,212,.18);
  color: #183B3F;
  display:flex;
  align-items:center;
  justify-content:center;
  font-size: 1.35rem;
}

.mc-cta{
  border-radius: 24px;
  background: linear-gradient(120deg, rgba(22,34,31,.98), rgba(30,46,42,.98));
  color: #F4F7F6;
  position: relative;
  overflow: hidden;
  border: 1px solid rgba(255,255,255,.08);
}
.mc-cta::before{
  content:"";
  position:absolute; inset:0;
  background: radial-gradient(320px 160px at 12% 18%, rgba(157,207,212,.22), transparent 65%);
  opacity: .9;
  pointer-events:none;
}
.mc-cta > *{ position: relative; z-index: 1; }

/* Calendar */
.mc-calendar{
  display:flex;
  flex-direction:column;
  gap: 12px;
  padding: 12px;
  border-radius: 18px;
  background: linear-gradient(180deg, #FFFFFF, #F6FAF9);
  border: 1px solid var(--mc-border);
}
.mc-calendar-row{
  display:grid;
  grid-template-columns: repeat(7, 1fr);
  gap: 12px;
}
.mc-calendar-head div{
  font-size: .7rem;
  text-transform: uppercase;
  letter-spacing: .14em;
  color: var(--mc-muted);
  font-weight: 700;
  text-align: center;
  padding: .35rem 0;
  border-radius: 10px;
  background: rgba(157,207,212,.16);
}
.mc-calendar-cell{
  min-height: 120px;
  border: 1px solid rgba(20,54,56,.08);
  border-radius: 16px;
  background: #fff;
  padding: .6rem .65rem .5rem;
  position: relative;
  display:flex;
  flex-direction:column;
  gap: 4px;
  transition: transform .15s ease, box-shadow .15s ease, border-color .15s ease;
}
.mc-calendar-cell:not(.is-empty):hover{
  transform: translateY(-1px);
  border-color: rgba(122,186,195,.45);
  box-shadow: 0 10px 20px rgba(12,23,21,.12);
}
.mc-calendar-cell.is-empty{
  background: #F4F8F7;
  border-style: dashed;
  box-shadow: none;
}
.mc-calendar-cell.is-today{
  border-color: rgba(122,186,195,.85);
  box-shadow: 0 12px 24px rgba(157,207,212,.22);
}
.mc-calendar-cell.is-selected{
  background: linear-gradient(180deg, rgba(157,207,212,.18), #FFFFFF 70%);
  border-color: rgba(122,186,195,.55);
}
.mc-calendar-cell.is-selected .mc-calendar-date{
  background: #143638;
  color: #F6FAF9;
}
.mc-calendar-date{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width: 28px;
  height: 28px;
  border-radius: 999px;
  font-weight: 700;
  color: #143638;
  background: rgba(157,207,212,.22);
  text-decoration: none;
}
.mc-calendar-date:hover{
  background: rgba(157,207,212,.35);
  color: #0E2426;
}
.mc-calendar-event{
  font-size: .72rem;
  padding: .25rem .45rem;
  border-radius: 10px;
  background: rgba(157,207,212,.16);
  border: 1px solid rgba(157,207,212,.35);
  color: #1B3639;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.mc-calendar-more{
  font-size: .7rem;
  color: var(--mc-muted);
  font-weight: 600;
}
@media (max-width: 992px){
  .mc-calendar{ gap: 8px; padding: 8px; }
  .mc-calendar-row{ gap: 8px; }
  .mc-calendar-cell{ min-height: 96px; padding: .5rem; }
  .mc-calendar-head div{ font-size: .66rem; letter-spacing: .12em; }
}

/* Forms */
.form-stack p{ margin-bottom: 1rem; }
.form-stack label{
  display:block;
  font-weight: 600;
  margin-bottom: .35rem;
}
.form-stack input[type="text"],
.form-stack input[type="email"],
.form-stack input[type="number"],
.form-stack input[type="date"],
.form-stack input[type="datetime-local"],
.form-stack input[type="password"],
.form-stack input[type="search"],
.form-stack input[type="url"],
.form-stack select,
.form-stack textarea{
  width: 100%;
  padding: .6rem .75rem;
  border: 1px solid var(--mc-border);
  border-radius: 12px;
  background: #fff;
  min-height: 46px;
}
.form-stack input:focus,
.form-stack select:focus,
.form-stack textarea:focus{
  border-color: rgba(122,186,195,.9);
  box-shadow: 0 0 0 .25rem rgba(157,207,212,.25);
  outline: none;
}
.mc-form-field{
  display: flex;
  flex-direction: column;
  gap: .35rem;
}
.mc-form-field label{
  margin-bottom: 0;
}
.mc-form-field--toggle .mb-2{
  margin-bottom: 0;
}
.mc-form-field--toggle .btn-group{
  margin-top: .35rem;
  width: 100%;
}
.mc-form-field--toggle .btn{
  flex: 1 1 0;
}
.form-stack textarea.mc-textarea-compact{
  min-height: 46px;
  height: 46px;
  resize: vertical;
}

/* Autocomplete */
.mc-autocomplete{ position: relative; }
.mc-autocomplete-list{
  position: absolute;
  top: calc(100% + 6px);
  left: 0;
  right: 0;
  z-index: 10;
  background: #FBFDFD;
  border: 1px solid var(--mc-border);
  border-radius: 14px;
  box-shadow: 0 12px 26px rgba(12,23,21,.10);
  max-height: 240px;
  overflow-y: auto;
  display: none;
  padding: 0;
}
.mc-autocomplete-list.show{ display: block; }
.mc-autocomplete-item{
  display: block;
  width: 100%;
  text-align: left;
  border: 0;
  background: transparent;
  padding: 8px 12px;
  border-radius: 0;
  font-size: 0.95rem;
  color: var(--mc-text);
  cursor: pointer;
  line-height: 1.25;
  font-family: var(--mc-font-base);
  appearance: none;
  -webkit-appearance: none;
}
.mc-autocomplete-item + .mc-autocomplete-item{
  border-top: 1px solid var(--mc-border);
}
.mc-autocomplete-item:hover,
.mc-autocomplete-item.active{
  background: rgba(157,207,212,.18);
  color: #143638;
}
.mc-autocomplete-empty{
  padding: 8px 12px;
  color: var(--mc-muted);
  font-size: 0.9rem;
}

/* Make sidebar scrollable if needed */
.mc-sidebar .mc-nav-wrap{ overflow:auto; max-height: calc(100vh - 120px); }

/* Responsive: collapse sidebar */
@media (max-width: 992px){
  .mc-sidebar{ position: fixed; left:-280px; top:0; z-index: 1030; transition: left .2s; }
  .mc-sidebar.open{ left:0; }
  .mc-backdrop{ display:none; }
  .mc-backdrop.show{
    display:block; position: fixed; inset:0; background: rgba(0,0,0,.35); z-index: 1029;
  }
}
