body{
  background: radial-gradient(circle at top,#e0f2ff 0,#f8f9fa 40%,#f8f9fa 100%);
  min-height:100vh;
}

/* Karten / Container */
.card{
  border-radius:1rem;
  border:0;
  box-shadow:0 6px 18px rgba(15,23,42,.08);
}

/* Tabellen-Header */
table thead th{
  white-space:nowrap;
}

/* Überschriften-Abstand */
.card h1,
.card h2,
.card h3,
.card h4,
.card h5{
  letter-spacing:.01em;
}

/* Monats-Tabelle: luftiger + “Karten”-Look */
.table-month{
  border-collapse:separate;
  border-spacing:0 .4rem;
}

.table-month thead th{
  border-bottom:1px solid #dee2e6;
}

.table-month tbody tr.main-row{
  background:#ffffff;
  box-shadow:0 2px 6px rgba(15,23,42,.04);
}

.table-month tbody tr.main-row td{
  padding:.6rem .75rem;
  border-top:0;
}

.table-month tbody tr.detail-row>td{
  padding:.75rem .9rem;
  border-top:0;
  background:#f8fafc;
  border-radius:.75rem;
}

/* leichtes Highlight am Wochenende (Klasse .weekend wird im PHP gesetzt) */
.table-month tbody tr.weekend.main-row{
  background:#f1f5f9;
}
.table-month tbody tr.weekend.detail-row>td{
  background:#e5edf6;
}

/* kleine Chips / Badges (Flags, Tätigkeiten, etc.) */
.chip{
  display:inline-flex;
  align-items:center;
  gap:.25rem;
  border-radius:999px;
  padding:.1rem .55rem;
  border:1px solid #dee2e6;
  font-size:.75rem;
  background:#f8fafc;
}

.chip-icon{
  font-size:.8rem;
}

/* Wochenübersicht oben in der Monatsansicht */
.week-summary{
  display:flex;
  flex-wrap:wrap;
  gap:.5rem;
  margin-bottom:.75rem;
}

.week-chip{
  min-width:150px;
  border-radius:.75rem;
  background:#0f172a;
  color:#e5e7eb;
  padding:.4rem .6rem;
  font-size:.8rem;
}

.week-chip .week-label{
  font-weight:600;
}

.week-chip .week-date{
  opacity:.8;
}

.week-chip .week-balance.text-success{
  color:#22c55e!important;
}
.week-chip .week-balance.text-danger{
  color:#f97373!important;
}

/* Bild-Galerie */
.media-thumb{
  border-radius:.75rem;
  overflow:hidden;
  transition:transform .12s ease,box-shadow .12s ease;
}

.media-thumb-img{
  width:100%;
  height:130px;
  object-fit:cover;
  display:block;
}

.media-thumb:hover{
  transform:translateY(-2px);
  box-shadow:0 4px 12px rgba(15,23,42,.16);
}

/* Objekt-/Tätigkeitslisten */
.obj-list{margin:0;padding-left:1.1rem;}
.obj-name{font-weight:600;}

/* Mobile: etwas kompakter */
@media (max-width:576px){
  .card{
    border-radius:.75rem;
    box-shadow:0 4px 12px rgba(15,23,42,.08);
  }
  .table-month{
    font-size:.85rem;
  }
  .week-chip{
    min-width:135px;
    font-size:.75rem;
  }
  .media-thumb-img{
    height:110px;
  }
}

/* Druckansicht schlank halten */
@media print{
  body{background:white;}
  nav,footer,.btn,.form-control,.form-select{display:none!important;}
  .card{box-shadow:none;border:0;padding:0;}
  table{font-size:10px;}
  .table-month{
    border-collapse:collapse;
    border-spacing:0;
  }
}


/* ---- Global polish (Bootstrap-first, mobile-friendly) ---- */

.brand-mark{
  width:2.1rem;
  height:2.1rem;
  border-radius:0.8rem;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  background:rgba(13,110,253,.08);
  color:rgba(13,110,253,1);
}

.avatar-circle{
  width:2rem;
  height:2rem;
  border-radius:999px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  background:#0f172a;
  color:#e5e7eb;
}

/* Give content room for the mobile bottom bar */
@media (max-width: 991.98px){
  body{ padding-bottom: 4.6rem; }
}

.mobile-bottom-nav{
  position:fixed;
  left:0;
  right:0;
  bottom:0;
  z-index:1030;
}

/* ---- Colored object picker (dropdown without layout shift) ---- */
.object-picker{ position:relative; }

.object-picker .op-toggle{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:.5rem;
}

.object-picker .op-label{
  display:inline-flex;
  align-items:center;
  gap:.55rem;
  min-width:0;
}

.object-picker .op-name{
  display:block;
  min-width:0;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}

.object-picker .op-swatch{
  width:.9rem;
  height:.9rem;
  border-radius:.25rem;
  border:1px solid rgba(0,0,0,.15);
  background:transparent;
  flex:0 0 auto;
}

.object-picker-menu{
  position:absolute;
  top:calc(100% + .35rem);
  left:0;
  right:0;
  z-index:2000;
  background:#fff;
  border:1px solid #dee2e6;
  border-radius:.9rem;
  box-shadow:0 14px 30px rgba(15,23,42,.14);
  max-height:320px;
  overflow:auto;
}

.object-picker-menu .list-group-item{
  border:0;
}

.object-picker-menu .list-group-item:first-child{
  border-top-left-radius:.9rem;
  border-top-right-radius:.9rem;
}

.object-picker-menu .list-group-item:last-child{
  border-bottom-left-radius:.9rem;
  border-bottom-right-radius:.9rem;
}

@media print{
  .object-picker{ display:none!important; }
}

.mobile-bottom-nav .nav-btn{
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:.15rem;
  border:0;
  background:transparent;
  color:#475569;
  text-decoration:none;
  font-size:.75rem;
  padding:.15rem .5rem;
  min-width:4.0rem;
  border-radius:1rem;
}

.mobile-bottom-nav .nav-btn i{ font-size:1.25rem; }

.mobile-bottom-nav .nav-btn.active,
.mobile-bottom-nav .nav-btn:active,
.mobile-bottom-nav .nav-btn:focus{
  color:#0d6efd;
  background:rgba(13,110,253,.08);
}

/* Make cards feel consistent */
.card{
  overflow:hidden;
}

.card .card-header{
  background:transparent;
  border-bottom:1px solid rgba(0,0,0,.06);
}

/* Better table readability */
.table th, .table td{ vertical-align: middle; }

/* Object picker (custom control used in daily/quick entry) */
.object-picker{ position: relative; }
.object-picker .op-toggle{
  width:100%;
  text-align:left;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:.5rem;
}
.object-picker .op-label{
  display:flex;
  align-items:center;
  gap:.5rem;
  min-width:0;
}
.object-picker .op-name{
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.object-picker .op-swatch{
  width:.85rem;
  height:.85rem;
  border-radius:.25rem;
  border:1px solid rgba(0,0,0,.10);
  flex:0 0 auto;
}
.object-picker-menu{
  position:absolute;
  top:100%;
  left:0;
  right:0;
  z-index:1050;
  max-height:320px;
  overflow-y:auto;
  background:#fff;
  border:1px solid rgba(0,0,0,.12);
  border-radius:.75rem;
  box-shadow:0 10px 28px rgba(15,23,42,.18);
  padding:.35rem;
}
.object-picker-menu .list-group-item{ border-radius:.5rem; }
