.coach-timer-modal {
    border: 0;
    border-radius: 22px;
    overflow: hidden;
    box-shadow: 0 24px 70px rgba(15, 23, 42, .3);
}

.coach-timer-kicker {
    color: #64748b;
    font-size: .72rem;
    font-weight: 800;
    letter-spacing: .09em;
    text-transform: uppercase;
}

.coach-timer-display {
    padding: 22px 16px 18px;
    border-radius: 18px;
    color: #fff;
    text-align: center;
    background: linear-gradient(145deg, #172033, #283750);
}

.coach-timer-status {
    min-height: 1.4em;
    color: #cbd5e1;
    font-size: .78rem;
    font-weight: 800;
    letter-spacing: .1em;
    text-transform: uppercase;
    transition: color .35s ease, transform .35s ease;
}

.coach-timer-clock {
    margin: 2px 0;
    font: 700 clamp(3.6rem, 17vw, 5.8rem)/1.05 ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;
    font-variant-numeric: tabular-nums;
    letter-spacing: -.08em;
    transition: transform .45s cubic-bezier(.2,.8,.2,1);
}

.coach-timer-next {
    min-height: 1.4em;
    max-height: 2rem;
    color: #fbbf24;
    font-weight: 650;
    opacity: 1;
    overflow: hidden;
    transform: translateY(0);
    transition: opacity .32s ease, transform .4s ease, max-height .4s ease, margin .4s ease;
}

.coach-timer-modal.is-merged .coach-timer-status { color:#fbbf24; transform:translateY(.2rem); }
.coach-timer-modal.is-merged .coach-timer-clock { transform:translateY(.25rem) scale(1.04); }
.coach-timer-modal.is-merged .coach-timer-next { max-height:0; min-height:0; margin:0; opacity:0; transform:translateY(-.65rem); }

.coach-timer-progress {
    height: 7px;
    margin: 12px 3px 20px;
    overflow: hidden;
    border-radius: 999px;
    background: #e2e8f0;
}

.coach-timer-progress span {
    display: block;
    width: 0;
    height: 100%;
    border-radius: inherit;
    background: linear-gradient(90deg, #f59e0b, #ef4444);
    transition: width .2s linear;
}

.coach-timer-settings .form-label { font-weight: 700; }
.coach-timer-info-btn { flex:0 0 46px; width:46px; padding-right:0; padding-left:0; font-size:1.15rem; }

.coach-timer-mode { display:grid; grid-template-columns:1fr 1fr; gap:4px; padding:4px; border-radius:13px; background:#e8edf3; }
.coach-timer-mode button { min-height:42px; border:0; border-radius:10px; background:transparent; color:#526174; font-weight:750; transition:background .2s ease,color .2s ease,box-shadow .2s ease; }
.coach-timer-mode button.active { background:#fff; color:#172033; box-shadow:0 2px 9px rgba(15,23,42,.12); }
.coach-timer-interval-toggle { min-height:46px; font-weight:750; }
.coach-timer-interval-toggle.active { border-color:#0d6efd; background:#eaf2ff; color:#084298; }
.coach-timer-modal.is-resting .coach-timer-display { background:linear-gradient(145deg,#4c1d95,#7e22ce); }

.coach-timer-infinite-row {
    display: flex;
    gap: 10px;
    align-items: flex-start;
    padding: 13px 14px 13px 3.2rem;
    border: 1px solid #dbe3ec;
    border-radius: 14px;
    background: #f8fafc;
}

.coach-timer-infinite-row .form-check-input { margin-left: -2.25rem; }
.coach-timer-infinite-row label span { display: block; color: #64748b; font-size: .83rem; }

.coach-timer-actions {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 10px;
}

.coach-timer-actions .btn { min-height: 52px; font-weight: 700; }
.coach-timer-actions .btn i { margin-right: 6px; }

.coach-timer-screen-actions { display: grid; }
.coach-timer-screen-actions .btn { min-height: 48px; font-weight: 700; }
.coach-timer-screen-status { min-height: 1.35em; color: #64748b; font-size: .85rem; text-align: center; }
.coach-timer-screen-status.is-success { color: #087443; font-weight: 700; }
.coach-timer-screen-status.is-error { color: #b42318; font-weight: 700; }

.coach-timer-modal.is-running .coach-timer-display { background: linear-gradient(145deg, #064e3b, #0f766e); }
.coach-timer-modal.is-running.is-resting .coach-timer-display { background: linear-gradient(145deg, #4c1d95, #7e22ce); }
.coach-timer-modal.is-paused .coach-timer-display { background: linear-gradient(145deg, #78350f, #b45309); }
.coach-timer-modal.is-finished .coach-timer-display { background: linear-gradient(145deg, #7f1d1d, #dc2626); }
.coach-timer-modal.is-finished .coach-timer-clock { animation: coach-timer-pulse .7s ease-in-out 3; }

.coach-timer-mini { position:fixed; right:15px; bottom:85px; left:15px; z-index:1040; display:grid; grid-template-columns:48px 1fr 48px; align-items:center; gap:8px; max-width:520px; min-height:64px; margin:0 auto; padding:8px 10px; color:#fff; background:linear-gradient(145deg,#064e3b,#0f766e); border:1px solid rgba(255,255,255,.24); border-radius:18px; box-shadow:0 10px 30px rgba(15,23,42,.3); backdrop-filter:blur(10px); transition:bottom .25s ease; }
.coach-timer-mini[hidden] { display:none; }
.coach-timer-mini.navbar-hidden { bottom:15px; }
.coach-timer-mini.is-paused { background:linear-gradient(145deg,#78350f,#b45309); }
.coach-timer-mini.is-resting { background:linear-gradient(145deg,#4c1d95,#7e22ce); }
.coach-timer-mini.is-finished { background:linear-gradient(145deg,#7f1d1d,#dc2626); }
.coach-timer-mini-expand,.coach-timer-mini-control { width:44px; height:44px; padding:0; color:#fff; background:rgba(255,255,255,.16); border:1px solid rgba(255,255,255,.3); border-radius:50%; font-size:1.55rem; line-height:1; }
.coach-timer-mini-time { min-width:0; text-align:center; line-height:1.05; cursor:pointer; border-radius:10px; }
.coach-timer-mini-time:focus-visible { outline:2px solid #fff; outline-offset:2px; }
.coach-timer-mini-time span { display:block; margin-bottom:2px; overflow:hidden; font-size:.72rem; font-weight:800; text-overflow:ellipsis; text-transform:uppercase; white-space:nowrap; }
.coach-timer-mini-time strong { display:block; font-size:1.85rem; font-variant-numeric:tabular-nums; letter-spacing:.03em; }
.coach-timer-mini .is-play { display:none; }
.coach-timer-mini.is-paused .is-play { display:block; }
.coach-timer-mini.is-paused .is-pause,.coach-timer-mini.is-finished .is-play,.coach-timer-mini.is-finished .is-pause { display:none; }

@media (min-width:992px) { .coach-timer-mini { bottom:18px; } }

@keyframes coach-timer-pulse { 50% { transform: scale(1.055); } }

@media (max-width: 575.98px) {
    #coachTimerModal .modal-dialog { margin: .6rem; }
    #coachTimerModal .modal-body { padding: 1rem; }
    .coach-timer-clock { font-size: clamp(3.2rem, 19vw, 4.7rem); }
}

@media (prefers-reduced-motion: reduce) {
    .coach-timer-progress span { transition: none; }
    .coach-timer-modal.is-finished .coach-timer-clock { animation: none; }
    .coach-timer-status, .coach-timer-clock, .coach-timer-next { transition:none; }
}
