: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; }
.schedule-badge { display:inline-flex; padding:.35rem .6rem; border-radius:999px; font-size:.76rem; font-weight:700; border:1px solid transparent; white-space:nowrap; }
.schedule-highlight { display:flex; flex-direction:column; gap:.15rem; padding:.75rem .9rem; border-radius:.8rem; border-left:5px solid; }
.schedule-highlight .schedule-label { font-size:.68rem; font-weight:700; letter-spacing:.05em; text-transform:uppercase; opacity:.72; }
.schedule-continuous_2 { color:#146c43; background:#e8f7ef; border-color:#198754; }
.schedule-split_4 { color:#7a4b00; background:#fff4db; border-color:#f0a500; }
.schedule-fixed_break_2 { color:#084298; background:#e7f1ff; border-color:#0d6efd; }
.employee-mobile-card { border-radius:1rem; overflow:hidden; }
.user-chip { display:inline-flex; flex-direction:column; justify-content:center; line-height:1.05; color:#fff; padding:.35rem .7rem; border-left:1px solid rgba(255,255,255,.3); cursor:default; }
.user-chip-label { font-size:.58rem; font-weight:700; letter-spacing:.08em; text-transform:uppercase; opacity:.7; margin-bottom:.15rem; }
.user-chip strong { font-size:.78rem; font-weight:700; }
@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; }.user-chip { width:100%; border-left:0; border-top:1px solid rgba(255,255,255,.25); padding:.75rem 0 .35rem; margin-top:.35rem; } }
