:root{color-scheme:dark;--bg:#101617;--surface:#182122;--line:#2a3738;--text:#eef3ee;--muted:#a0b0a9;--green:#b5dcb3;--amber:#f0c37b;--red:#f28e82;font-family:system-ui,-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);min-width:280px}button,input,select{font:inherit}button,a,input,select{touch-action:manipulation}button{cursor:pointer;color:var(--text);background:#253132;border:1px solid #3a4949;border-radius:9px;padding:11px 16px;transition:background .15s}button:hover{background:#354647}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid var(--green);outline-offset:3px}button:disabled{opacity:.5;cursor:wait}a{color:var(--green);text-decoration:none}a:hover{text-decoration:underline}.shell{max-width:1180px;margin:auto;padding:32px 46px;min-height:100dvh;display:flex;flex-direction:column}header{display:flex;align-items:center;justify-content:space-between;gap:14px}.brand{display:flex;align-items:center;gap:12px;font-size:13px;letter-spacing:.14em;color:var(--text);font-weight:650}.brand:hover{text-decoration:none}.mark{font-size:43px;line-height:1;color:var(--green)}.brand-sub{display:block;color:var(--muted);font-size:9px;letter-spacing:.19em;margin-top:3px}.header-right{display:flex;align-items:center;gap:14px}.connection{font-size:11px;color:var(--muted)}.connection::before{content:'';display:inline-block;width:6px;height:6px;border-radius:50%;background:var(--green);margin-right:7px}.connection.offline{color:var(--amber)}.connection.offline::before{background:var(--amber)}.quiet,.icon-button{background:transparent;border-color:var(--line);font-size:12px}.icon-button{font-size:21px;padding:5px 10px}.clock{margin:auto 0;padding:55px 0 38px;text-align:center}.eyebrow{display:flex;justify-content:center;gap:16px;color:var(--muted);font-size:11px;letter-spacing:.14em;text-transform:uppercase}.eyebrow span+span{border-left:1px solid var(--line);padding-left:16px}.phase{display:inline-block;border:1px solid #37483d;color:var(--green);border-radius:30px;padding:6px 13px;margin:28px 0 14px;font-size:11px;letter-spacing:.07em;text-transform:uppercase}h1{font-size:clamp(21px,3.6vw,40px);font-weight:450;letter-spacing:-.035em;margin:0 auto;max-width:900px;text-wrap:balance}.timer{font-size:clamp(76px,18vw,212px);font-weight:550;line-height:1.18;letter-spacing:-.065em;font-variant-numeric:tabular-nums;color:var(--green);margin:10px 0}.timer-caption{font-size:14px;color:var(--muted);margin:0 0 32px}.progress{height:3px;background:var(--line);max-width:700px;margin:0 auto 25px;border-radius:3px;overflow:hidden}.progress>div{background:var(--green);height:100%;width:0;transition:width .5s linear}.clock-details{display:flex;text-align:left;justify-content:space-between;gap:30px;max-width:700px;margin:auto}.clock-details>div{min-width:90px}.clock-details .next{flex:1}.clock-details span{display:block;color:var(--muted);font-size:9px;letter-spacing:.13em;margin-bottom:7px}.clock-details strong{font-size:14px;font-weight:450}.clock-details>div:last-child{text-align:right}footer{display:flex;justify-content:space-between;align-items:center;border-top:1px solid var(--line);padding-top:20px;color:var(--muted);gap:15px;font-size:11px}footer>div{display:flex;gap:8px}.text-button{border:0;background:none;color:var(--muted);font-size:12px;padding:7px 9px}.notice{border-left:2px solid var(--amber);color:var(--amber);font-size:12px;line-height:1.5;padding:8px 12px;margin-bottom:20px;background:#231f18}.demo-banner{margin-top:24px;background:#2d291c;border:1px solid #55472b;border-radius:8px;padding:11px 14px;font-size:11px;display:flex;justify-content:space-between;gap:10px;color:var(--amber)}.demo-banner a{color:var(--amber)}[hidden]{display:none!important}body.overdue .timer,body.overdue .phase{color:var(--red)}body.overdue .progress>div{background:var(--red)}body.warning .timer{color:var(--amber)}dialog{width:min(520px,calc(100vw - 28px));max-height:90dvh;border:1px solid #435252;background:var(--surface);color:var(--text);border-radius:18px;padding:26px;box-shadow:0 30px 120px #0008}dialog.wide{width:min(760px,calc(100vw - 28px))}dialog::backdrop{background:#050c0cbf;backdrop-filter:blur(5px)}.dialog-head{display:flex;align-items:center;justify-content:space-between;gap:15px;margin-bottom:12px}h2{font-size:23px;font-weight:500;letter-spacing:-.025em;margin:0}.close{font-size:26px;border:0;background:none;padding:0 8px;color:var(--muted)}dialog p{color:var(--muted);font-size:14px;line-height:1.6}label{display:block;font-size:13px;color:var(--muted);margin:18px 0 12px}input,select{display:block;width:100%;padding:12px;background:#101819;color:var(--text);border:1px solid #465656;border-radius:8px;margin-top:8px}input[type=number]{min-width:72px}button.primary{background:var(--green);color:#142518;border:0;font-weight:600;margin:10px 0}.danger{color:var(--red)}.button-row{display:flex;gap:8px;flex-wrap:wrap;margin:12px 0}.button-row button{font-size:12px}.help{font-size:12px!important}.error{color:var(--red)!important;min-height:1em}.qr{display:block;margin:24px auto;background:white;border-radius:12px}#share-link{display:block;overflow-wrap:anywhere;text-align:center;font-size:13px}details{border-top:1px solid var(--line);margin-top:20px;padding-top:18px}summary{cursor:pointer;font-size:14px;color:var(--green)}.program-row{display:grid;grid-template-columns:58px 1fr 70px;align-items:center;gap:15px;padding:15px 0;border-bottom:1px solid var(--line);font-size:13px}.program-row.active{color:var(--green)}.program-row small{color:var(--muted);display:block;margin-top:5px;font-size:11px}.program-row.editing{grid-template-columns:1fr 85px 36px;gap:10px}.program-row.editing button{padding:8px}.program-row input{margin:0}.program-row .duration{text-align:right;color:var(--muted)}#source-link{font-size:12px}#toast{position:fixed;bottom:25px;left:50%;transform:translateX(-50%);background:var(--green);color:#132419;padding:13px 24px;border-radius:10px;box-shadow:0 8px 40px #0006;max-width:90vw;font-size:13px;z-index:10}
@media(min-width:1500px){.shell{max-width:1400px}.timer{font-size:250px}.clock-details,.progress{max-width:950px}h1{font-size:48px}}
@media(max-width:600px){.shell{padding:20px}.header-right{gap:8px}.connection{font-size:0}.connection::before{margin:0}.brand{font-size:11px}.mark{font-size:33px}.clock{padding:35px 0 28px}.timer{font-size:clamp(78px,23vw,135px)}.eyebrow{font-size:9px;gap:8px}.eyebrow span+span{padding-left:8px}.phase{margin-top:22px}h1{font-size:25px}.clock-details{gap:14px}.clock-details strong{font-size:12px}.clock-details .next{min-width:0}.clock-details>div{min-width:65px}.timer-caption{font-size:12px;margin-bottom:24px}footer{flex-wrap:wrap;justify-content:center;gap:10px;padding-top:12px}footer>span{display:none}.demo-banner{flex-direction:column;font-size:10px}.program-row{gap:10px;grid-template-columns:45px 1fr 55px}}
@media(max-height:530px){.shell{padding:12px 18px}.brand-sub{display:none}.mark{font-size:28px}.clock{padding:14px 0}.phase{margin:10px 0 8px;padding:3px 9px}.eyebrow{font-size:9px}h1{font-size:20px}.timer{font-size:clamp(62px,20vh,105px);margin:2px 0}.timer-caption{margin:0 0 10px}.progress{margin-bottom:12px}.clock-details strong{font-size:12px}.clock-details span{font-size:8px;margin-bottom:3px}.notice{font-size:10px;margin-bottom:8px;padding:4px 8px}.demo-banner{margin-top:8px;padding:5px 10px}footer{padding-top:7px}.connection{font-size:0}}
@media(prefers-reduced-motion:reduce){*{transition:none!important}}

.overtime-message{color:var(--red);font-size:14px;margin:-18px 0 22px;font-weight:600}body.overdue .timer-caption{color:var(--muted)}.operator-bar{display:flex;align-items:center;justify-content:space-between;gap:18px;border-top:1px solid var(--line);padding:14px 0}.operator-bar span{display:block;color:var(--muted);font-size:9px;letter-spacing:.1em;margin-bottom:4px}.operator-bar strong{font-size:13px;font-weight:450}.operator-bar .primary{flex-shrink:0;font-size:13px;margin:0}@media(max-width:600px){.operator-bar{flex-direction:column;align-items:stretch;gap:9px}.operator-bar>div{display:none}.operator-bar .primary{width:100%;padding:12px}}@media(max-height:530px){.operator-bar{padding:8px 0}.operator-bar .primary{padding:8px;font-size:12px}.overtime-message{margin:-3px 0 10px;font-size:12px}}
