/* UTIL-003 Đồng hồ hẹn giờ — kế thừa font Arial của bộ giao diện tiện ích. */
.ct-duration{min-width:0;margin:0 0 12px;padding:0;border:0}
.ct-hms{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;max-width:440px}
.ct-hms .sou-field{margin:0}
.sou-page .ct-hms input{text-align:center;font-size:22px;font-weight:700;font-variant-numeric:tabular-nums}
.ct .sou-presets button{min-height:44px;padding:8px 16px}
.ct-row{display:flex;flex-wrap:wrap;gap:0 24px;align-items:flex-start}
.ct-label-field{flex:1 1 280px;max-width:520px}
.ct-repeat{margin-top:30px}
.ct-actions{display:flex;flex-wrap:wrap;gap:10px;align-items:center}
.ct-actions [data-create]{min-width:180px}
.ct-count{color:var(--sou-muted);font-size:14px;font-weight:700}
.ct-settings{display:none;margin-top:14px;padding:16px;border:1px solid var(--sou-line);border-radius:16px;background:#fbfcff}
.ct-settings.is-open{display:block}
.ct-sheet-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:8px}
.ct-sheet-head h2{font-size:18px}
.ct-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:4px 16px}
.ct-grid>*{min-width:0}
.ct-settings .sou-check{align-items:center}
.ct-settings .sou-check input{margin:0}
.ct-settings .sou-toolbar .sou-button{min-height:44px}
.ct-sound-tools{margin:0 0 6px}
.ct-backdrop{display:none}
.ct-undo{margin:0 0 12px}
.ct-conflict p{margin:0 0 6px}
.ct-board{margin-top:22px}
.ct-board-head{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px;margin-bottom:12px}
.ct-board-head h2{font-size:20px}
.ct-board-head .sou-button{min-height:44px}
.ct-empty{margin:0;padding:18px;border:1px dashed #c9d7f3;border-radius:14px;background:#fbfcff}
.ct-alarm{position:sticky;top:0;z-index:5;display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px;margin:0 0 14px;padding:12px 14px;border-radius:14px;background:#a3241c;color:#fff;box-shadow:0 8px 24px rgba(163,36,28,.25)}
.ct-alarm-text{margin:0;font-size:18px;overflow-wrap:anywhere;unicode-bidi:plaintext}
.ct-alarm-text strong{color:#fff}
.ct-alarm-actions{display:flex;flex-wrap:wrap;gap:8px}
.ct-alarm .sou-button{min-height:46px;background:#fff;color:#8f1d16!important}
.ct-alarm .sou-button:hover{background:#ffe9e6}
.ct-alarm .sou-button.ghost{background:transparent;border:2px solid #fff;color:#fff!important}
.ct-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin:0;padding:0;list-style:none}
.ct-card{container-type:inline-size;display:flex;flex-direction:column;gap:8px;min-width:0;padding:16px;border:1px solid var(--sou-line);border-radius:16px;background:#fff}
.ct-card.is-featured{grid-column:1/-1;background:#f7f9fd}
.ct-card-head{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}
.sou-page .ct-name{margin:0;font-size:17px;overflow-wrap:anywhere;unicode-bidi:plaintext}
.ct-badge{flex:none;padding:3px 10px;border-radius:999px;background:var(--sou-soft);color:var(--sou-ink);font-size:13px;font-weight:700}
.ct-card[data-timer-state=running] .ct-badge{background:var(--sou-ok-bg);color:var(--sou-ok)}
.ct-card[data-timer-state=paused] .ct-badge{background:var(--sou-warn-bg);color:var(--sou-warn)}
.ct-card.is-alert .ct-badge{background:#a3241c;color:#fff}
.ct-card.is-alert{border-color:#e08a83;box-shadow:0 0 0 3px #fde8e6;animation:ct-pulse 1.4s ease-in-out infinite}
@keyframes ct-pulse{0%,100%{box-shadow:0 0 0 3px #fde8e6}50%{box-shadow:0 0 0 7px #f6c0ba}}
.ct-remaining{margin:0;font-weight:700;line-height:1.1;color:var(--sou-ink);white-space:nowrap;font-variant-numeric:tabular-nums;font-size:clamp(30px,10vw,52px);font-size:clamp(30px,20cqw,52px)}
.ct-remaining.is-long{font-size:clamp(20px,6vw,40px);font-size:clamp(20px,9cqw,40px)}
.ct-card.is-featured .ct-remaining{font-size:clamp(40px,16vw,110px);font-size:clamp(40px,22cqw,110px)}
.ct-card.is-featured .ct-remaining.is-long{font-size:clamp(22px,8vw,72px);font-size:clamp(22px,10cqw,72px)}
.ct-card[data-timer-state=done] .ct-remaining{color:var(--sou-muted)}
.ct-card .sou-progress>span{transition:none}
.ct-card.is-alert .sou-progress>span{background:#a3241c}
.ct-meta{margin:0;color:var(--sou-muted);font-size:14px}
.ct-card-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:4px}
.ct-card-actions .sou-button{min-height:44px;padding:8px 12px;font-size:14px}
.ct-card-actions .sou-button[aria-pressed=true]{background:var(--sou-soft);border-color:#9db6f3}
.ct-board.is-fs{min-height:100vh;padding:20px;overflow:auto;background:#fff}
.ct-board.is-fs .ct-card.is-featured .ct-remaining{font-size:min(20cqw,24vh)}
@media (max-width:860px){
 .ct-list{grid-template-columns:1fr}
 .ct-settings,.ct-settings.is-open{margin:0}
 .ct-settings.is-open{position:fixed;left:0;right:0;bottom:0;z-index:10001;max-height:86vh;overflow:auto;padding:16px 16px calc(20px + env(safe-area-inset-bottom));border-radius:18px 18px 0 0;background:#fff;box-shadow:0 -12px 40px rgba(16,36,94,.25)}
 .ct-backdrop{display:block;position:fixed;inset:0;z-index:10000;background:rgba(16,36,94,.45)}
 .ct-settings.is-open>.sou-status{position:sticky;bottom:0;margin:12px 0 0;box-shadow:0 -6px 18px rgba(16,36,94,.12)}
}
@media (max-width:600px){
 .ct-actions .sou-button{flex:1 1 100%}
 .ct-count{flex:1 1 100%}
 .ct-repeat{margin-top:0}
 .ct-alarm{flex-direction:column;align-items:stretch}
 .ct-alarm-actions .sou-button{flex:1 1 auto}
 .ct-card-actions .sou-button{flex:1 1 auto}
 .ct-settings .sou-toolbar .sou-button{flex:1 1 100%}
}
@media (prefers-reduced-motion:reduce){.ct-card.is-alert{animation:none}}
@media print{.ct-form,.ct-settings,.ct-card-actions,.ct-alarm-actions,.ct-board-head .sou-button{display:none!important}}
