:root {
    --pause-accent: #2a9d8f;
    --pause-accent-2: #7c5cbf;
}

body { background: var(--bs-tertiary-bg); min-height: 100vh; }

/* ----- Anneau du minuteur ----- */
.ring-wrap { position: relative; width: min(280px, 75vw); aspect-ratio: 1; }
.ring { width: 100%; height: 100%; transform: rotate(-90deg); }
.ring-bg { fill: none; stroke: var(--bs-secondary-bg); stroke-width: 12; }
.ring-fg {
    fill: none; stroke: var(--pause-accent); stroke-width: 12; stroke-linecap: round;
    transition: stroke-dashoffset 1s linear, stroke .3s;
}
.ring-fg.on-pause { stroke: var(--pause-accent-2); }
.ring-text {
    position: absolute; inset: 0; display: flex; flex-direction: column;
    align-items: center; justify-content: center;
}
.timer-card { border: 0; }

/* ----- Réglages ----- */
.preset.active { color: #fff; background: var(--bs-primary); }
.cat-tree { max-height: 320px; overflow: auto; padding: .5rem .75rem; border: 1px solid var(--bs-border-color); border-radius: .5rem; background: var(--bs-body-bg); }
.cat-tree .form-check { margin-bottom: .25rem; }
.cat-dot { display: inline-block; width: .7rem; height: .7rem; border-radius: 50%; vertical-align: middle; }

/* ----- Fenêtre de pause ----- */
.pause-content { border: 0; border-top: 6px solid var(--pause-accent-2); }
.pause-text { white-space: pre-line; font-size: 1.15rem; line-height: 1.7; }
.pause-img { max-height: 55vh; object-fit: contain; }
#pauseCat { color: #fff; font-weight: 500; }

/* ----- Administration ----- */
.admin-tree .cat-row { padding: .4rem .5rem; border-radius: .4rem; }
.admin-tree .cat-row:hover { background: var(--bs-secondary-bg); }
.admin-tree ul { list-style: none; padding-left: 1.5rem; margin: 0; }
.admin-tree > ul { padding-left: 0; }
.type-badge { min-width: 4.5rem; }
.table td { vertical-align: middle; }
#mediaPreview:empty { display: none; }

@media (max-width: 575.98px) {
    .display-5 { font-size: 2.4rem; }
    .modal-footer .btn { flex: 1 1 100%; }
}

/* ----- Pied de page : barre fine et discrète (moins haute que le menu du haut) ----- */
html, body { min-height: 100%; }
body { display: flex; flex-direction: column; min-height: 100vh; }
body > main { flex: 1 0 auto; width: 100%; }
.site-footer { font-size: .72rem; line-height: 1.2; color: var(--bs-secondary-color); }
.site-footer .container { min-height: 30px; padding-top: .35rem; padding-bottom: .35rem; }
.site-footer a, .site-footer a:visited { color: inherit !important; text-decoration: none !important; }
.site-footer a:hover { color: var(--pause-accent) !important; }
.footer-links { display: flex; flex-wrap: wrap; column-gap: .9rem; row-gap: .15rem; }
@media (max-width: 575.98px) { .site-footer .container { justify-content: center !important; } .footer-links { justify-content: center; } }
.legal-page h2 { font-size: 1.2rem; margin-top: 2rem; }
.legal-page h3 { font-size: 1rem; margin-top: 1.25rem; font-weight: 600; }
.legal-page p, .legal-page li { line-height: 1.65; }
.legal-page mark { background: #fff3cd; color: #664d03; }

/* ----- Blagues ----- */
.joke-box { background: rgba(255, 183, 3, .12); border: 1px dashed rgba(255, 183, 3, .7); border-radius: .75rem; padding: .75rem 1rem; }
.joke-punch { font-size: 1.1rem; font-weight: 600; color: var(--bs-emphasis-color); animation: pop .35s ease-out; }
@keyframes pop { from { transform: scale(.85); opacity: 0; } to { transform: scale(1); opacity: 1; } }

/* ----- Grandes pauses & activités multiples ----- */
.lb-card { background: var(--bs-body-bg); transition: border-color .2s; }
.lb-card.lb-on { border-color: var(--pause-accent) !important; box-shadow: 0 0 0 1px var(--pause-accent) inset; }
.lb-card .btn-group .btn { min-width: 2rem; }
.pause-card { border-left: 4px solid var(--pause-accent-2); }
.task-item { font-size: 1.05rem; padding: .25rem 0 .25rem 1.75rem; }
.task-item .form-check-input:checked + label { text-decoration: line-through; opacity: .6; }
