/* ============================================================
   Online Timer — modern, tool-specific styles on base.css.
   No :root / theme; consumes base tokens only.
   ============================================================ */

.tmr-tool { background: var(--bg); transition: background 0.5s; }
.tmr-tool .tool-instructions-wrapper { text-align: center; margin-bottom: 24px; }
.tmr-tool .tool-section-title {
    font-family: var(--font-head); font-weight: 800;
    font-size: clamp(1.6rem, 4vw, 2.4rem); color: var(--text);
    margin: 0 0 12px; letter-spacing: -0.3px;
}
.tmr-tool .text-primary-red { color: var(--accent-2); }
.tmr-tool .tool-section-texte {
    color: var(--text-muted); font-size: 0.95rem; line-height: 1.7;
    max-width: 720px; margin: 0 auto;
}

.tmr-stage {
    background: var(--panel-bg); border: 1px solid var(--panel-border);
    border-radius: var(--radius); box-shadow: var(--shadow-soft);
    padding: 36px 24px; max-width: 560px; margin: 0 auto; text-align: center;
}

/* Clock ring */
.tmr-clock { position: relative; width: 260px; height: 260px; margin: 0 auto 8px; }
.tmr-ring { width: 100%; height: 100%; display: block; }
.tmr-ring-bg { fill: none; stroke: var(--border-color); stroke-width: 10; }
.tmr-ring-fg {
    fill: none; stroke: var(--accent-2); stroke-width: 10; stroke-linecap: round;
    transition: stroke-dashoffset 0.25s linear, stroke 0.4s ease;
}
.tmr-running .tmr-ring-fg { stroke: var(--purple); }
.tmr-finished .tmr-ring-fg { stroke: var(--accent); }

.tmr-center {
    position: absolute; inset: 0; display: flex; flex-direction: column;
    align-items: center; justify-content: center; gap: 6px;
}
.tmr-display {
    font-family: var(--font-mono); font-weight: 800; color: var(--text);
    font-size: clamp(2.6rem, 12vw, 3.6rem); line-height: 1; letter-spacing: 0.01em;
    font-variant-numeric: tabular-nums;
}
.tmr-finished .tmr-display { color: var(--accent); animation: tmr-pulse 0.8s ease-in-out infinite; }
@keyframes tmr-pulse { 0%,100% { opacity: 1; } 50% { opacity: 0.35; } }
.tmr-status { font-size: 0.9rem; font-weight: 700; color: var(--accent); min-height: 1.1em; }

/* Controls */
.tmr-controls { display: flex; gap: 10px; justify-content: center; margin: 22px 0 20px; }
.tmr-start { min-width: 140px; }

/* Custom inputs */
.tmr-inputs { display: flex; align-items: flex-end; justify-content: center; gap: 6px; margin-bottom: 22px; }
.tmr-input-group { display: flex; flex-direction: column; align-items: center; gap: 4px; }
.tmr-input {
    width: 70px; text-align: center; padding: 10px 6px;
    background: var(--card-bg); color: var(--text);
    border: 1.5px solid var(--border-color); border-radius: var(--radius-sm);
    font-family: var(--font-mono); font-size: 1.3rem; font-weight: 700;
}
.tmr-input:focus { outline: none; border-color: var(--accent); box-shadow: 0 0 0 3px rgba(231,76,60,0.15); }
.tmr-input-label { font-size: 0.72rem; color: var(--text-muted); text-transform: uppercase; letter-spacing: 0.05em; }
.tmr-colon { font-size: 1.4rem; font-weight: 800; color: var(--text-muted); padding-bottom: 22px; }

/* Presets */
.tmr-presets { display: flex; flex-wrap: wrap; gap: 8px; justify-content: center; }
.tmr-preset {
    background: var(--card-bg); border: 1px solid var(--border-color); color: var(--text);
    border-radius: 999px; padding: 8px 16px; font-size: 0.88rem; font-weight: 700;
    cursor: pointer; transition: var(--transition); font-family: var(--font-head);
}
.tmr-preset:hover { background: var(--purple); border-color: var(--purple); color: #fff; transform: translateY(-2px); }

@media (max-width: 480px) {
    .tmr-clock { width: 220px; height: 220px; }
    .tmr-input { width: 60px; font-size: 1.1rem; }
}