/* UTIL-004 Countdown sự kiện — bổ sung cho bộ UI kit utilities.css. Font kế thừa Arial; tiêu đề 700; theme preset đạt tương phản AA. */
.ecx-layout{display:grid;grid-template-columns:1fr;gap:22px;align-items:start}
.ecx-layout>*{min-width:0}
.ecx-h{margin:0 0 14px!important;font-size:20px!important}
.ecx-fieldset{border:0;padding:0;margin:0 0 14px;min-width:0}
.ecx-fieldset .sou-check{padding:4px 0}
.ecx-fieldset>.sou-check{display:flex;margin:0;font-weight:400;font-size:inherit;color:var(--sou-text)}
.ecx-themes{margin:0}
.ecx-themes button{display:inline-flex;align-items:center;gap:8px;min-height:44px}
.ecx-swatch{display:inline-block;width:16px;height:16px;border-radius:50%;border:1px solid rgba(0,0,0,.25)}
.ecx-sw-ocean{background:#10245e}.ecx-sw-light{background:#f4f7ff}.ecx-sw-sunrise{background:#ffe7b3}.ecx-sw-night{background:#0d1117}
.ecx-units{display:flex;flex-wrap:wrap;gap:4px 18px}
.ecx-over{color:var(--sou-err)!important;font-weight:700}
.ecx-preview{--ecx-bg:#10245e;--ecx-fg:#fff;--ecx-cell:rgba(255,255,255,.1);--ecx-line:rgba(255,255,255,.22);--ecx-muted:#d6e0ff;--ecx-accent:#ffd166;position:relative;padding:26px 22px;border-radius:20px;background:var(--ecx-bg);color:var(--ecx-fg);text-align:center;outline:none}
.ecx-preview[data-theme=light]{--ecx-bg:#f4f7ff;--ecx-fg:#10245e;--ecx-cell:#fff;--ecx-line:#dce6ff;--ecx-muted:#4a5b84;--ecx-accent:#1948c6}
.ecx-preview[data-theme=sunrise]{--ecx-bg:#fff1d6;--ecx-fg:#4a2c00;--ecx-cell:#fffaf0;--ecx-line:#f0d39a;--ecx-muted:#6b4b00;--ecx-accent:#a1271b}
.ecx-preview[data-theme=night]{--ecx-bg:#0d1117;--ecx-fg:#f0f6fc;--ecx-cell:#161b22;--ecx-line:#30363d;--ecx-muted:#c9d1d9;--ecx-accent:#ffd166}
.ecx-kicker{margin:0 0 4px;color:var(--ecx-muted);font-size:14px;font-weight:700;letter-spacing:.06em;text-transform:uppercase}
.sou-page .ecx-title{margin:0 0 18px;color:var(--ecx-fg);font-size:28px;overflow-wrap:anywhere;unicode-bidi:plaintext}
.ecx-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}
.ecx-grid[data-count="1"]{grid-template-columns:minmax(0,1fr)}.ecx-grid[data-count="2"]{grid-template-columns:repeat(2,minmax(0,1fr))}.ecx-grid[data-count="3"]{grid-template-columns:repeat(3,minmax(0,1fr))}
.ecx-cell{display:flex;flex-direction:column;align-items:center;gap:4px;padding:16px 6px;border-radius:16px;background:var(--ecx-cell);border:1px solid var(--ecx-line);min-width:0}
.ecx-num{font-size:clamp(34px,6vw,60px);font-weight:700;line-height:1;font-variant-numeric:tabular-nums;color:var(--ecx-fg)}
.ecx-label{color:var(--ecx-muted);font-size:14px;font-weight:700}
.ecx-done{margin:18px 0 0;color:var(--ecx-accent);font-size:26px;font-weight:700;overflow-wrap:anywhere;unicode-bidi:plaintext}
.ecx-target{margin:18px 0 4px;font-weight:700;color:var(--ecx-fg);overflow-wrap:anywhere}
.ecx-local{margin:0;color:var(--ecx-muted);font-size:14px;overflow-wrap:anywhere}
.ecx-local:empty{display:none}
.ecx-preview .sou-status{text-align:left}
.ecx-actions{display:flex;flex-wrap:wrap;justify-content:center;gap:8px;margin-top:18px}
.ecx-actions .sou-button{min-height:44px;padding:8px 14px;font-size:15px}
.ecx-preview[data-theme=ocean] .ecx-actions .sou-button.ghost,.ecx-preview[data-theme=night] .ecx-actions .sou-button.ghost{background:transparent;border-color:var(--ecx-line);color:var(--ecx-fg)!important}
.ecx-preview[data-theme=ocean] .ecx-actions .sou-button:focus-visible,.ecx-preview[data-theme=night] .ecx-actions .sou-button:focus-visible{outline-color:#ffd166}
.ecx-warn{margin-top:14px;padding:14px 16px;border-radius:14px;background:var(--sou-warn-bg);color:#5a3a00;text-align:left}
.ecx-warn p{margin:0 0 8px}
.ecx-warn-title{font-weight:700}
.ecx-warn-actions{display:flex;flex-wrap:wrap;gap:8px}
.ecx-warn-actions .sou-button{min-height:44px}
.ecx-preview:fullscreen,.ecx-preview.sou-fullscreen{display:flex;flex-direction:column;justify-content:center;padding:4vh 5vw;border-radius:0;background:var(--ecx-bg)}
.ecx-preview:fullscreen .ecx-num,.ecx-preview.sou-fullscreen .ecx-num{font-size:min(13vw,24vh)}
.ecx-preview:fullscreen .ecx-title,.ecx-preview.sou-fullscreen .ecx-title{font-size:min(6vw,7vh)}
.ecx-preview:fullscreen .ecx-label,.ecx-preview.sou-fullscreen .ecx-label{font-size:min(3vw,3.4vh)}
.ecx-preview:fullscreen .ecx-done,.ecx-preview.sou-fullscreen .ecx-done{font-size:min(5vw,6vh)}
.ecx-preview:fullscreen .ecx-actions>:not([data-fullscreen]),.ecx-preview.sou-fullscreen .ecx-actions>:not([data-fullscreen]),.ecx-preview:fullscreen .ecx-warn,.ecx-preview.sou-fullscreen .ecx-warn,.ecx-preview:fullscreen .sou-status,.ecx-preview.sou-fullscreen .sou-status{display:none!important}
@media(min-width:1140px){.ecx-layout{grid-template-columns:minmax(0,440px) minmax(560px,1fr)}.ecx-preview{position:sticky;top:16px}}
@media(max-width:600px){.ecx-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.ecx-grid[data-count="3"]{grid-template-columns:repeat(3,minmax(0,1fr))}.ecx-preview{padding:20px 14px}.sou-page .ecx-title{font-size:22px}.ecx-num{font-size:40px}.ecx-actions .sou-button{flex:1 1 calc(50% - 8px)}}
@media(orientation:portrait) and (max-width:900px){.ecx-preview:fullscreen .ecx-grid,.ecx-preview.sou-fullscreen .ecx-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.ecx-preview:fullscreen .ecx-num,.ecx-preview.sou-fullscreen .ecx-num{font-size:min(20vw,14vh)}}
@media print{.ecx-form,.ecx-actions,.ecx-warn{display:none!important}.ecx-preview{background:#fff;color:#000;border:1px solid #999}}
[data-choice]+.sou-field-error{margin:-6px 0 14px}
.ecx .sou-toolbar .sou-button{min-height:44px}
