:root{
  --app-bg: #f6f7fb;
  --app-surface: #ffffff;
  --app-surface-2: #f8fafc;
  --app-border: rgba(15, 23, 42, .10);
  --app-text: #0f172a;
  --app-muted: rgba(15, 23, 42, .70);
  --app-shadow: 0 10px 30px rgba(15, 23, 42, .08);
}

html, body { height: 100%; }

body{
  font-family: 'Poppins', system-ui, -apple-system, "Segoe UI", Roboto, Arial, sans-serif;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  color: var(--app-text);
  background:
    radial-gradient(900px 500px at 20% 0%, rgba(13,110,253,.10), transparent 55%),
    radial-gradient(900px 500px at 80% 0%, rgba(255,145,0,.10), transparent 55%),
    var(--app-bg);
}

a { text-decoration: none; }

/* Navbar */
.navbar.app-nav{
  background: rgba(255,255,255,.85) !important;
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
  border-bottom: 1px solid var(--app-border);
}
.navbar.app-nav .navbar-brand{
  font-weight: 800;
  letter-spacing: .2px;
}
.navbar.app-nav .nav-link{
  color: rgba(15, 23, 42, .78) !important;
  font-weight: 600;
  border-radius: 999px;
  padding: .45rem .9rem;
  margin: .15rem .1rem;
}
.navbar.app-nav .nav-link:hover{
  background: rgba(13,110,253,.10);
  color: #0b5ed7 !important;
}
.navbar.app-nav .nav-link.active{
  background: rgba(13,110,253,.14);
  color: #0b5ed7 !important;
}

/* Main layout */
main.app-main{
  max-width: 1600px;
}

/* Cards */
.card{
  border: 1px solid var(--app-border);
  border-radius: 1.25rem;
  box-shadow: var(--app-shadow);
}
.card .card-title{ font-weight: 700; }

/* Inputs */
.form-control, .form-select{
  border-radius: .95rem;
  border-color: rgba(15, 23, 42, .14);
}
.form-control:focus, .form-select:focus{
  box-shadow: 0 0 0 .25rem rgba(13,110,253,.15);
}

/* Buttons */
.btn{
  border-radius: .95rem;
  font-weight: 600;
}
.btn.btn-sm{ border-radius: .85rem; }

/* Tables */
.table thead th{
  font-size: .85rem;
  color: rgba(15, 23, 42, .65);
  text-transform: uppercase;
  letter-spacing: .04em;
}
.table tbody tr:hover{
  background: rgba(13,110,253,.04);
}

/* Alerts -> softer */
.alert{
  border-radius: 1rem;
  border: 1px solid var(--app-border);
}

/* Kalender: scroll container + sticky header on desktop */
@media (min-width: 992px){
  .calendar-desktop .table-responsive{
    max-height: 74vh;
    overflow: auto;
    border-radius: 1rem;
    border: 1px solid var(--app-border);
    background: var(--app-surface);
  }
  .calendar-desktop table thead th{
    position: sticky;
    top: 0;
    z-index: 3;
    background: var(--app-surface);
  }
}

/* Sticky columns: add subtle divider shadow */
.sticky-col{
  box-shadow: 10px 0 18px -16px rgba(15,23,42,.35);
}
.sticky-col-2{
  box-shadow: 10px 0 18px -16px rgba(15,23,42,.25);
}

/* Bulk bar as modern toolbar */
.bulk-bar{
  background: rgba(255,255,255,.85);
  backdrop-filter: blur(8px);
  border-radius: 1.25rem !important;
  box-shadow: var(--app-shadow);
}

/* Badges */
.badge{ border-radius: 999px; font-weight: 700; }

/* Small helper */
.text-muted{ color: var(--app-muted) !important; }

/* Kalender: aktueller Tag rot umranden */
.table-fixed th.cell.is-today,
.table-fixed td.cell.is-today {
  outline: 2px solid red;
  outline-offset: -2px;
  background: rgba(255, 0, 0, 0.06);
}
.table-fixed th.cell.is-today{ font-weight: 700; }
.day-card.is-today {
  outline: 2px solid red;
  outline-offset: -2px;
  background: rgba(255, 0, 0, 0.06);
}
