/* --- Modern dark UI (v11) --- */
:root{
  --bg0:#0b0f14;
  --bg1:#0f1620;
  --card:rgba(16,20,28,.72);
  --card2:rgba(16,20,28,.86);
  --stroke:rgba(255,255,255,.10);
  --stroke2:rgba(255,255,255,.14);
  --text:#e8edf6;
  --muted:rgba(232,237,246,.65);
  --muted2:rgba(232,237,246,.45);
  --accent:#4f8cff;
  --accent2:#7c5cff;
  --shadow:0 18px 60px rgba(0,0,0,.55);
  --shadow2:0 10px 30px rgba(0,0,0,.45);
  --radius:18px;
  --radius2:24px;
}

html, body{
  height:100%;
  background:
    radial-gradient(1200px 800px at 15% -10%, rgba(79,140,255,.25), transparent 55%),
    radial-gradient(900px 600px at 85% 0%, rgba(124,92,255,.18), transparent 50%),
    radial-gradient(900px 600px at 50% 110%, rgba(79,140,255,.10), transparent 55%),
    linear-gradient(180deg, var(--bg0), var(--bg1));
  color:var(--text);
  font-family: ui-sans-serif, system-ui, -apple-system, Segoe UI, Roboto, Arial, "Apple Color Emoji","Segoe UI Emoji";
}

a{ color: var(--accent); }
a:hover{ color: #86b0ff; }

.container, .container-fluid{
  padding-left: 20px;
  padding-right: 20px;
}

/* Navbar */
.navbar{
  background: rgba(0,0,0,.35) !important;
  backdrop-filter: blur(14px);
  -webkit-backdrop-filter: blur(14px);
  border-bottom: 1px solid var(--stroke) !important;
}
.navbar .navbar-brand{
  font-weight: 700;
  letter-spacing: .2px;
}

/* Cards / tiles */
.card, .tile{
  background: var(--card) !important;
  border: 1px solid var(--stroke) !important;
  border-radius: var(--radius2) !important;
  box-shadow: var(--shadow2);
  backdrop-filter: blur(14px);
  -webkit-backdrop-filter: blur(14px);
}
.card .card-body{
  padding: 22px !important;
}
.tile{
  transition: transform .14s ease, border-color .14s ease, box-shadow .14s ease;
}
.tile:hover{
  transform: translateY(-2px);
  border-color: rgba(79,140,255,.35) !important;
  box-shadow: var(--shadow);
}

/* Buttons */
.btn{
  border-radius: 12px !important;
  padding: .55rem .9rem;
  font-weight: 600;
  letter-spacing: .15px;
}
.btn-primary{
  background: linear-gradient(135deg, var(--accent), var(--accent2)) !important;
  border: 0 !important;
  box-shadow: 0 10px 22px rgba(79,140,255,.18);
}
.btn-primary:hover{
  filter: brightness(1.06);
}
.btn-outline-secondary{
  border-color: var(--stroke2) !important;
  color: var(--text) !important;
  background: rgba(255,255,255,.03) !important;
}
.btn-outline-secondary:hover{
  background: rgba(255,255,255,.06) !important;
}
.btn-outline-danger, .btn-outline-warning, .btn-outline-info{
  border-color: var(--stroke2) !important;
}
.btn-sm{ padding: .42rem .72rem; border-radius: 11px !important; }

/* Forms */
.form-control, .form-select{
  background: rgba(255,255,255,.05) !important;
  border: 1px solid var(--stroke) !important;
  color: var(--text) !important;
  border-radius: 14px !important;
  padding: .65rem .85rem;
}
.form-control::placeholder{ color: rgba(232,237,246,.35); }
.form-control:focus, .form-select:focus{
  border-color: rgba(79,140,255,.55) !important;
  box-shadow: 0 0 0 .25rem rgba(79,140,255,.18) !important;
}
.form-label{
  color: var(--muted);
  font-weight: 600;
  font-size: .92rem;
  letter-spacing: .15px;
}
.form-check-input{
  background-color: rgba(255,255,255,.08);
  border: 1px solid var(--stroke);
}
.form-check-input:checked{
  background-color: var(--accent);
  border-color: rgba(79,140,255,.65);
}

/* Tables */
.table{
  border-color: var(--stroke) !important;
}
.table thead th{
  color: var(--muted);
  font-weight: 700;
  letter-spacing: .2px;
  border-bottom: 1px solid var(--stroke) !important;
}
.table-dark{
  --bs-table-bg: rgba(0,0,0,.10);
  --bs-table-striped-bg: rgba(255,255,255,.03);
  --bs-table-hover-bg: rgba(79,140,255,.08);
}

/* Alerts */
.alert{
  border-radius: 14px !important;
  border: 1px solid var(--stroke) !important;
  background: rgba(0,0,0,.18) !important;
}

/* FullCalendar (Outlook-ish) */
.fc{
  --fc-border-color: rgba(255,255,255,.08);
  --fc-page-bg-color: transparent;
  --fc-neutral-bg-color: rgba(255,255,255,.03);
  --fc-list-event-hover-bg-color: rgba(79,140,255,.10);
  --fc-today-bg-color: rgba(79,140,255,.08);
  color: var(--text);
}
.fc .fc-toolbar-title{
  font-size: 1.1rem;
  font-weight: 800;
  letter-spacing: .25px;
  color: var(--text);
}
.fc .fc-button{
  border: 1px solid var(--stroke) !important;
  background: rgba(255,255,255,.03) !important;
  color: var(--text) !important;
  border-radius: 12px !important;
  padding: .45rem .7rem !important;
  box-shadow: none !important;
}
.fc .fc-button:hover{
  background: rgba(255,255,255,.06) !important;
}
.fc .fc-button-primary:not(:disabled).fc-button-active,
.fc .fc-button-primary:not(:disabled):active{
  background: linear-gradient(135deg, rgba(79,140,255,.35), rgba(124,92,255,.25)) !important;
  border-color: rgba(79,140,255,.55) !important;
}
.fc .fc-col-header-cell-cushion{
  padding: 10px 6px;
  color: var(--muted);
  font-weight: 700;
  text-transform: uppercase;
  font-size: .78rem;
  letter-spacing: .6px;
}
.fc .fc-timegrid-slot-label, .fc .fc-timegrid-axis-cushion{
  color: var(--muted2);
  font-weight: 600;
}
.fc .fc-scrollgrid, .fc .fc-scrollgrid table{
  border-radius: var(--radius);
  overflow: hidden;
}
.fc .fc-daygrid-day-number{
  color: var(--muted);
  font-weight: 700;
}
.fc .fc-event{
  border: 0 !important;
  border-radius: 12px !important;
  padding: 2px 6px;
  background: linear-gradient(135deg, rgba(79,140,255,.85), rgba(124,92,255,.75)) !important;
  box-shadow: 0 10px 18px rgba(79,140,255,.12);
}
.fc .fc-event .fc-event-title{
  font-weight: 800;
  letter-spacing: .1px;
}
.fc .fc-event .fc-event-time{
  opacity: .9;
  font-weight: 700;
}
.fc .fc-list-day-cushion{
  background: rgba(255,255,255,.03) !important;
}
.fc .fc-list-event:hover td{
  background: rgba(79,140,255,.08) !important;
}

/* Calendar layout polish */
.calendar-wrap{
  gap: 18px;
}
.sidebar{
  position: sticky;
  top: 86px;
}

/* Subtle separators */
hr, .border-secondary{
  border-color: var(--stroke) !important;
}
.text-secondary{ color: var(--muted) !important; }

/* Make inputs and panels breathe on small screens */
@media (max-width: 992px){
  .sidebar{ position: static; top: auto; }
  .container, .container-fluid{ padding-left: 14px; padding-right: 14px; }
}


/* Layout v12 */
.calendar-wrap{ align-items: flex-start; }
.calendar-col .card{ min-height: 72vh; }
.sidebar-col{ position: relative; }
.sidebar{ position: sticky; top: 90px; }
@media (max-width: 991.98px){
  .sidebar{ position: static; top: auto; }
}


/* v12 extras */
body{ overflow-x: hidden; }
.card{ transition: border-color .18s ease, box-shadow .18s ease; }
.card:hover{ border-color: rgba(255,255,255,.14) !important; }

#calendar{ min-height: 72vh; }


/* Layout v13 (keep sidebar next to calendar) */
.calendar-wrap{ align-items: flex-start; }
.calendar-col, .sidebar-col{ min-width: 0; } /* allow flex items to shrink */
.calendar-card .card-body{ min-width: 0; overflow: hidden; }
#calendar, .fc, .fc-view-harness, .fc-scrollgrid, .fc-scrollgrid table{ min-width: 0 !important; }
.fc .fc-scroller{ overflow: auto !important; } /* if needed, scroll inside calendar instead of wrapping columns */
@media (max-width: 991.98px){
  .calendar-wrap.flex-lg-nowrap{ flex-wrap: wrap !important; }
}

/* Tiles */
.tiles-grid{
  display: grid;
  grid-template-columns: repeat(2, minmax(0,1fr));
  gap: 18px;
}
@media (max-width: 992px){
  .tiles-grid{ grid-template-columns: 1fr; }
}


/* === Dashboard tiles layout (modern grid) === */
.dashboard-tiles {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(320px, 1fr));
  gap: 16px;
  align-items: stretch;
}

.dashboard-tiles .tile {
  margin: 0;
}



/* === Dashboard tiles: tighter + aligned (override bootstrap cols) === */
.tiles-grid{
  display: grid;
  grid-template-columns: repeat(2, minmax(300px, 420px));
  gap: 14px;
  justify-content: center;
  align-items: stretch;
  margin-top: 8px;
}

.tiles-grid > .col-md-6{
  padding: 0 !important;
  margin: 0 !important;
  max-width: none !important;
  flex: none !important;
  width: auto !important;
}

.tiles-grid .tile{
  height: 100%;
}

@media (max-width: 900px){
  .tiles-grid{
    grid-template-columns: 1fr;
    justify-content: stretch;
  }
}
