body {
    background: #f4f1f9;
}

.app-navbar {
    background: linear-gradient(90deg, #6a1b9a, #ad1457);
}

.text-light-50 {
    color: rgba(255,255,255,.75);
}

.login-wrapper {
    min-height: 100vh;
    display: flex;
    align-items: center;
    justify-content: center;
    background: linear-gradient(135deg, #6a1b9a, #ad1457);
}

.login-card {
    max-width: 380px;
    width: 100%;
    background: #fff;
    border-radius: 12px;
    padding: 2rem;
    box-shadow: 0 10px 30px rgba(0,0,0,.25);
}

.stat-card {
    border-radius: 12px;
    padding: 1.25rem;
    color: #fff;
    box-shadow: 0 4px 12px rgba(0,0,0,.12);
}

.stat-card .stat-value {
    font-size: 2rem;
    font-weight: 700;
}

.day-chip {
    display: inline-block;
    padding: 2px 10px;
    border-radius: 20px;
    color: #fff;
    font-size: 0.8rem;
    font-weight: 600;
}

.status-badge-in {
    background: #2e7d32;
    color: #fff;
    padding: 2px 10px;
    border-radius: 20px;
    font-size: 0.8rem;
}

.status-badge-out {
    background: #757575;
    color: #fff;
    padding: 2px 10px;
    border-radius: 20px;
    font-size: 0.8rem;
}

/* ---------- Scanner page ---------- */
.scanner-wrap {
    max-width: 480px;
    margin: 0 auto;
}

.mode-switch {
    display: flex;
    border-radius: 10px;
    overflow: hidden;
    margin-bottom: 1rem;
    border: 2px solid #6a1b9a;
}

.mode-switch button {
    flex: 1;
    padding: 14px;
    font-weight: 700;
    font-size: 1.05rem;
    border: none;
    background: #fff;
    color: #6a1b9a;
    cursor: pointer;
}

.mode-switch button.active-entry {
    background: #2e7d32;
    color: #fff;
}

.mode-switch button.active-exit {
    background: #1565c0;
    color: #fff;
}

#qr-reader {
    width: 100%;
    border-radius: 12px;
    overflow: hidden;
}

.result-banner {
    margin-top: 1rem;
    border-radius: 12px;
    padding: 1.25rem;
    text-align: center;
    color: #fff;
    font-weight: 600;
    display: none;
}

.result-banner.show {
    display: block;
    animation: pop .2s ease-out;
}

.result-banner.green { background: #2e7d32; }
.result-banner.red { background: #c62828; }
.result-banner.blue { background: #1565c0; }

.result-banner .rb-title {
    font-size: 1.4rem;
    margin-bottom: 4px;
}

.result-banner .rb-sub {
    font-weight: 400;
    opacity: .9;
}

@keyframes pop {
    from { transform: scale(.96); opacity: 0; }
    to { transform: scale(1); opacity: 1; }
}

.scan-count {
    font-size: .85rem;
    color: #666;
    text-align: center;
    margin-top: .5rem;
}
