:root {
    --timbrapp-blue: #0d6efd;
    --timbrapp-charcoal: #212529;
    --timbrapp-primary: #0d6efd;
    --timbrapp-secondary: #6c757d;
}

body {
    min-height: 100vh;
}

.login-shell {
    min-height: calc(100vh - 11rem);
}

.login-card {
    border-radius: 1.25rem;
}

.brand-mark {
    display: grid;
    place-items: center;
    width: 3.5rem;
    height: 3.5rem;
    border-radius: 1rem;
    background: var(--timbrapp-blue);
    color: #fff;
    font-size: 1.75rem;
    font-weight: 700;
}

.login-brand-logo { width:min(100%, 22rem); height:9rem; object-fit:contain; }
.navbar .tenant-logo { background:#fff; }

.status-card {
    border-radius: 1rem;
}

.status-dot {
    display: inline-block;
    width: 0.8rem;
    height: 0.8rem;
    border-radius: 50%;
    box-shadow: 0 0 0 0.3rem rgba(25, 135, 84, 0.12);
}

.kpi-card { background:#fff; border-radius:.9rem; padding:1rem; height:100%; box-shadow:0 .125rem .5rem rgba(0,0,0,.06); display:flex; flex-direction:column; }
.kpi-card strong { font-size:1.35rem; }
.kpi-card span { color:#6c757d; font-size:.78rem; }
.status-badge { display:inline-flex; align-items:center; gap:.25rem; margin:.15rem; padding:.25rem .5rem; border-radius:999px; font-size:.78rem; font-weight:600; border:1px solid transparent; }
.status-success { color:#146c43; background:#d1e7dd; }.status-primary { color:#084298; background:#cfe2ff; }.status-danger { color:#842029; background:#f8d7da; }.status-secondary { color:#41464b; background:#e2e3e5; }.status-warning { color:#664d03; background:#fff3cd; }.status-purple { color:#59359a; background:#eee5ff; }
.text-purple { color:#6f42c1; }
.tenant-brand { font-size:.7rem; font-weight:500; padding:.2rem .45rem; border:1px solid rgba(255,255,255,.35); border-radius:999px; vertical-align:middle; }
.tenant-navbar { background:linear-gradient(105deg, var(--timbrapp-primary), color-mix(in srgb, var(--timbrapp-primary), #000 35%))!important; }
.tenant-logo { width:2rem; height:2rem; object-fit:contain; background:#fff; border-radius:.4rem; padding:.15rem; }
.btn-primary { --bs-btn-bg:var(--timbrapp-primary); --bs-btn-border-color:var(--timbrapp-primary); --bs-btn-hover-bg:color-mix(in srgb, var(--timbrapp-primary), #000 15%); --bs-btn-hover-border-color:color-mix(in srgb, var(--timbrapp-primary), #000 15%); }
.text-primary { color:var(--timbrapp-primary)!important; }
.tenant-card { transition:transform .15s ease, box-shadow .15s ease; }.tenant-card:hover { transform:translateY(-2px); box-shadow:0 .5rem 1.25rem rgba(0,0,0,.1)!important; }
.tenant-avatar { width:2.8rem; height:2.8rem; border-radius:.85rem; display:grid; place-items:center; background:#e7f1ff; color:#0d6efd; font-size:1.2rem; font-weight:700; }
.mini-stat { padding:.7rem; background:#f8f9fa; border-radius:.7rem; display:flex; flex-direction:column; text-align:center; }.mini-stat strong { font-size:1.1rem; }.mini-stat span { color:#6c757d; font-size:.68rem; }
.timeline { border-left:3px solid #dee2e6; padding-left:1.25rem; }.timeline-item { position:relative; margin-bottom:1rem; }.timeline-item:before { content:""; position:absolute; left:-1.72rem; top:1.25rem; width:.8rem; height:.8rem; background:#0d6efd; border:3px solid #fff; border-radius:50%; box-shadow:0 0 0 1px #adb5bd; }.timeline-item.cancelled { opacity:.62; text-decoration:line-through; }.timeline-item.cancelled .btn,.timeline-item.cancelled details { text-decoration:none; }
@media (max-width: 575.98px) { main.container { padding-left:.75rem; padding-right:.75rem; }.navbar .container { gap:.5rem; }.navbar .d-flex { gap:.6rem!important; }.attendance-cards .card { border-left:4px solid #0d6efd!important; } }
