:root{
  --radius: 16px;
  --shadow: 0 18px 45px rgba(15,23,42,.08);
  --shadow2: 0 10px 30px rgba(15,23,42,.10);
}

* { font-family: Inter, system-ui, -apple-system, Segoe UI, Roboto, Arial, sans-serif; }

.navbar-vertical.navbar-dark{
  background: radial-gradient(1200px 600px at 20% -10%, rgba(99,102,241,.35), transparent 60%),
              radial-gradient(900px 450px at 80% 0%, rgba(37,99,235,.35), transparent 55%),
              linear-gradient(180deg, #0b1220, #0f172a);
}

.page-wrapper{
  background:
    radial-gradient(1200px 600px at 10% -10%, rgba(37,99,235,.10), transparent 55%),
    radial-gradient(1000px 520px at 90% 0%, rgba(99,102,241,.10), transparent 55%),
    #f5f7fb;
}

.card{
  border-radius: var(--radius) !important;
  box-shadow: var(--shadow);
  border: 1px solid rgba(15,23,42,.08);
}

.card:hover{ box-shadow: var(--shadow2); transition: box-shadow .18s ease; }

.btn{ border-radius: 14px !important; font-weight: 600; }
.form-control, .form-select{ border-radius: 14px !important; border: 1px solid rgba(15,23,42,.12) !important; }

.table{ border-radius: 14px; overflow: hidden; }

.kpi{ position: relative; overflow: hidden; }
.kpi:before{
  content:"";
  position:absolute;
  inset:-2px;
  background: radial-gradient(500px 220px at 20% 0%, rgba(37,99,235,.18), transparent 60%),
              radial-gradient(500px 220px at 80% 0%, rgba(99,102,241,.18), transparent 60%);
  pointer-events:none;
}
.kpi .card-body{ position:relative; }

.toast-container{ z-index: 9999; }

.quick-hours{ display:flex; gap:6px; justify-content:flex-end; flex-wrap:wrap; }
.quick-hours button{ padding:.15rem .45rem; border-radius:999px; }

.day-closed{
  opacity:.7;
  filter: grayscale(.15);
}
.badge-soft{
  background: rgba(37,99,235,.10);
  color: rgb(37,99,235);
  border: 1px solid rgba(37,99,235,.18);
}

.calendar-grid{
  display:grid;
  grid-template-columns: repeat(7, 1fr);
  gap:10px;
}
.cal-cell{
  border-radius: 16px;
  padding: 10px;
  border: 1px solid rgba(15,23,42,.08);
  background: rgba(255,255,255,.85);
  min-height: 92px;
  box-shadow: 0 6px 20px rgba(15,23,42,.06);
}
.cal-cell.muted{ opacity:.55; }
.cal-top{ display:flex; justify-content:space-between; align-items:center; }
.cal-day{ font-weight:800; }
.cal-hours{ font-weight:700; }
.cal-missing{ border-style:dashed; opacity:.6; }
