/* PlanSécu — surcouche du thème Bootswatch Zephyr */
:root {
    --ps-radius: .75rem;
    --bs-body-font-family: 'Inter', system-ui, -apple-system, 'Segoe UI', Roboto, sans-serif;
}

body {
    font-family: var(--bs-body-font-family);
    background: #f5f7fb;
}

.card {
    border: 1px solid rgba(15, 23, 42, .06);
    border-radius: var(--ps-radius);
    box-shadow: 0 1px 2px rgba(15, 23, 42, .04);
}

.card-header:first-child { border-radius: var(--ps-radius) var(--ps-radius) 0 0; }

.brand-mark {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 2rem;
    height: 2rem;
    border-radius: .5rem;
    background: var(--bs-primary);
    color: #fff;
    font-size: 1.1rem;
}
.brand-mark-lg { width: 3.5rem; height: 3.5rem; font-size: 1.8rem; border-radius: .9rem; }

.login-page { background: linear-gradient(160deg, #eef2ff 0%, #f8fafc 60%); }

/* Indicateurs */
.stat-card .stat-label { font-size: .8rem; color: var(--bs-secondary-color); text-transform: uppercase; letter-spacing: .03em; }
.stat-card .stat-value { font-size: 1.9rem; font-weight: 700; line-height: 1.2; margin-top: .25rem; }
.stat-card.stat-alerte { border-color: rgba(var(--bs-warning-rgb), .6); background: rgba(var(--bs-warning-rgb), .08); }

.pastille {
    display: inline-block;
    width: .65rem;
    height: .65rem;
    border-radius: 50%;
    margin-right: .35rem;
    vertical-align: middle;
}

.table > :not(caption) > * > * { padding-top: .7rem; padding-bottom: .7rem; }

/* FullCalendar */
.fc { --fc-border-color: #e5e7eb; --fc-today-bg-color: rgba(59, 130, 246, .06); font-size: .9rem; }
.fc .fc-toolbar-title { font-size: 1.2rem; font-weight: 600; text-transform: capitalize; }
.fc .fc-button { text-transform: capitalize; }
.fc .fc-button-primary { background: var(--bs-primary); border-color: var(--bs-primary); }
.fc .fc-button-primary:not(:disabled).fc-button-active,
.fc .fc-button-primary:not(:disabled):active { background: #1e40af; border-color: #1e40af; }
.fc-event { cursor: pointer; }
.fc-event.statut-annulee { opacity: .55; text-decoration: line-through; }
.fc-event.statut-absent {
    background-image: repeating-linear-gradient(45deg, rgba(255,255,255,.35) 0 6px, transparent 6px 12px);
}
.fc-event.statut-effectuee { opacity: .85; }

/* Espace agent (mobile) */
.jour-titre { font-weight: 600; font-size: .95rem; color: var(--bs-secondary-color); text-transform: capitalize; }
.jour-titre.aujourdhui { color: var(--bs-primary); }
.mission-agent { border-left: 4px solid var(--bs-primary); }
.mission-agent.statut-annulee { border-left-color: var(--bs-secondary); opacity: .6; }
.creneau-badge { font-size: .95rem; font-weight: 600; background: #eef2ff; color: #1e3a8a; border-radius: .5rem; padding: .3rem .6rem; }

@media print {
    nav, .btn, form, .no-print { display: none !important; }
    body { background: #fff; }
    .card { box-shadow: none; border: 1px solid #ccc; }
}
