:root{font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color-scheme:dark;font-synthesis:none}*{box-sizing:border-box}body{--bg:#11131a;--panel:#1a1d26;--text:#f1f0ed;--muted:#8f93a5;--line:#2d303c;--accent:#d4f58a;--ink:#18220d;--inset:#14171e;margin:0;background:var(--bg);color:var(--text);min-height:100vh}body[data-skin=paper]{color-scheme:light;--bg:#f3f1eb;--panel:#fffef9;--text:#242824;--muted:#70766e;--line:#dddfd5;--accent:#436847;--ink:#fff;--inset:#eeeee6}body[data-skin=forest]{--bg:#10221e;--panel:#18312b;--text:#edf4df;--muted:#9bb4a7;--line:#315046;--accent:#e5c887;--ink:#282514;--inset:#132721}button,input,select{font:inherit}button,a,input,select{-webkit-tap-highlight-color:transparent}button{cursor:pointer;border:1px solid var(--line);border-radius:12px;padding:12px 17px;background:var(--panel);color:var(--text);transition:filter .15s,transform .15s}button:hover{filter:brightness(1.12)}button:active{transform:translateY(1px)}button:disabled{opacity:.5;cursor:wait}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible{outline:2px solid var(--accent);outline-offset:3px}[hidden]{display:none!important}.shell{max-width:1440px;margin:auto;padding:0 52px}header{height:108px;display:flex;align-items:center;gap:28px;border-bottom:1px solid var(--line)}.brand{text-decoration:none;color:var(--text);font-size:34px;font-weight:750;letter-spacing:-2px;display:flex;align-items:center}.brand-icon{font-size:38px;color:var(--accent);margin-right:10px}.brand-dot{color:var(--accent)}.header-note{font-size:13px;color:var(--muted);border-left:1px solid var(--line);padding-left:28px}.account{margin-left:auto;display:flex;align-items:center;gap:16px;font-size:12px;color:var(--muted)}.account span{max-width:240px;overflow:hidden;text-overflow:ellipsis}.quiet{background:transparent;border-color:transparent;color:var(--muted)}.primary{background:var(--accent);color:var(--ink);border-color:var(--accent);font-weight:650}.full{width:100%;margin-top:10px}.eyebrow{font-size:10px;letter-spacing:2.2px;font-weight:650;color:var(--muted)}#auth{min-height:calc(100vh - 188px);display:grid;grid-template-columns:1.3fr 1fr;align-items:center;gap:100px;padding:65px 0}.intro h1{font-size:clamp(40px,4.5vw,70px);line-height:1.1;font-weight:550;letter-spacing:-3px;margin:28px 0}.intro em{font-style:normal;color:var(--accent)}.intro p{color:var(--muted);font-size:15px;line-height:1.9}.sample-time{font-variant-numeric:tabular-nums;font-size:100px;letter-spacing:-6px;font-weight:250;margin-top:20px}.sample-time span{color:var(--accent)}.feature-line{font-size:11px;color:var(--muted);margin-top:12px}.feature-line span{margin:0 12px}.auth-card{padding:36px;background:var(--panel);border:1px solid var(--line);border-radius:24px;max-width:430px}.auth-card h2{font-weight:500;font-size:27px;margin:18px 0 30px}label{display:block;font-size:12px;color:var(--muted);margin:18px 0}input,select{display:block;width:100%;padding:14px;border-radius:10px;border:1px solid var(--line);background:var(--inset);color:var(--text);margin-top:9px}input::placeholder{color:var(--muted);opacity:.65}.auth-switch{display:block;margin:18px auto;background:none;border:0;font-size:12px;padding:8px;color:var(--accent)}.muted{color:var(--muted)}.small{font-size:12px;line-height:1.7}.auth-card>.small{text-align:center}.workspace-title{display:flex;justify-content:space-between;align-items:center;padding:48px 0 35px}.workspace-title h1{font-size:40px;font-weight:500;letter-spacing:-1.5px;margin:12px 0 0}.sync{font-size:11px;color:var(--muted)}.sync.online:before{content:'●';color:var(--accent);margin-right:8px}.layout{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:34px;min-height:calc(100vh - 370px)}.section-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:18px}h2{font-size:16px;font-weight:550;margin:0}.section-heading h2 span{font-size:11px;border:1px solid var(--line);border-radius:6px;padding:3px 6px;margin-left:8px;color:var(--muted)}.section-heading .primary{font-size:12px}.timers{display:grid;gap:16px}.timer{background:var(--panel);border:1px solid var(--line);border-radius:20px;padding:24px 28px}.timer-top{display:flex;justify-content:space-between;align-items:start;gap:10px}.timer-name{font-size:16px;margin:0;overflow-wrap:anywhere}.badge{font-size:10px;text-transform:uppercase;letter-spacing:1px;color:var(--muted);margin-top:10px}.badge.running{color:var(--accent)}.timer-tools{display:flex}.timer-tools button{font-size:11px;padding:5px 9px}.digits{font-size:clamp(52px,6vw,88px);font-weight:300;letter-spacing:-3px;font-variant-numeric:tabular-nums;margin:22px 0 18px;line-height:1.1}.timer-bottom{display:flex;align-items:center;gap:10px}.timer-bottom button{min-width:100px;font-size:12px}.role{margin-left:auto;font-size:11px;color:var(--muted)}progress{display:block;width:100%;height:3px;appearance:none;border:0;background:var(--line);margin-top:24px;border-radius:2px;overflow:hidden}progress::-webkit-progress-bar{background:var(--line)}progress::-webkit-progress-value{background:var(--accent)}progress::-moz-progress-bar{background:var(--accent)}.panel{padding:24px;background:var(--panel);border:1px solid var(--line);border-radius:18px;margin-bottom:18px}.tiny{font-size:8px;letter-spacing:1px;color:var(--muted)}.preset-row{display:flex;align-items:center;border-bottom:1px solid var(--line);gap:2px}.preset{border:0;border-radius:0;background:none;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:18px 0;text-align:left;flex:1;min-width:0;font-size:12px}.preset span{overflow-wrap:anywhere}.preset strong{color:var(--accent);white-space:nowrap;font-weight:500}.preset-delete{padding:5px;font-size:10px}.add-preset{width:100%;border-style:dashed;background:none;margin-top:18px;font-size:11px;color:var(--muted)}.skins{display:flex;gap:8px;margin-top:20px}.skin{padding:7px;flex:1;font-size:10px;background:transparent}.skin[aria-pressed=true]{border-color:var(--accent)}.skin i{display:block;height:28px;border-radius:5px;margin-bottom:8px}.midnight i{background:linear-gradient(90deg,#11131a 65%,#d4f58a 65%)}.paper i{background:linear-gradient(90deg,#f3f1eb 65%,#436847 65%)}.forest i{background:linear-gradient(90deg,#10221e 65%,#e5c887 65%)}.note{display:flex;gap:14px;line-height:1.8;margin:24px 8px;color:var(--muted);font-size:12px}.note>span{color:var(--accent);font-size:25px}.note p{margin:0}.note small{font-size:10px}.empty{text-align:center;padding:65px 20px;border:1px dashed var(--line);border-radius:20px;color:var(--muted)}.empty-icon{font-size:55px;color:var(--accent);margin-bottom:20px}.empty h2{color:var(--text);font-size:20px}.empty p{font-size:13px;line-height:1.8}footer{margin-top:45px;height:65px;display:flex;justify-content:space-between;align-items:center;border-top:1px solid var(--line);font-size:9px;color:var(--muted);letter-spacing:1px}dialog{width:min(460px,calc(100% - 32px));border:1px solid var(--line);border-radius:22px;background:var(--panel);color:var(--text);padding:28px}dialog::backdrop{background:#0009;backdrop-filter:blur(5px)}.dialog-top{display:flex;justify-content:space-between;align-items:center}.dialog-top h2{font-size:22px}.duration-input{display:flex;gap:12px}.duration-input label{flex:1;min-width:0}.member{display:flex;align-items:center;justify-content:space-between;gap:8px;font-size:12px;border-top:1px solid var(--line);padding-top:14px;margin-top:14px;overflow-wrap:anywhere}.member small{display:block;color:var(--muted);margin-top:4px}#toast{position:fixed;bottom:28px;left:50%;transform:translateX(-50%);padding:16px 24px;background:var(--accent);color:var(--ink);border-radius:14px;font-size:13px;max-width:calc(100% - 30px);box-shadow:0 8px 40px #0004;z-index:20}#sound{font-size:12px;padding:0;text-align:left}@media(min-width:1500px){.shell{padding:0 70px}}@media(max-width:1000px){.shell{padding:0 28px}#auth{gap:40px}.layout{grid-template-columns:minmax(0,1fr) 270px;gap:20px}.timer{padding:22px}.role{font-size:10px}.timer-bottom button{min-width:70px;padding:10px}}@media(max-width:720px){.shell{padding:0 20px}header{height:80px;gap:12px}.header-note{display:none}.brand{font-size:29px}.account{gap:2px}.account span{max-width:135px;font-size:10px}.account button{padding:8px}#auth{grid-template-columns:1fr;padding:40px 0;gap:28px}.intro h1{font-size:44px;letter-spacing:-2px;margin:20px 0}.intro p{font-size:13px}.sample-time,.feature-line{display:none}.auth-card{max-width:none;padding:26px}.layout{grid-template-columns:1fr}.workspace-title{padding:32px 0}.workspace-title h1{font-size:33px}.workspace-title .eyebrow{font-size:8px}.sync{font-size:9px;max-width:100px;text-align:right}.digits{font-size:66px}.timer{padding:22px}.timer-tools button{padding:4px 7px}.timer-bottom{flex-wrap:wrap}.panel{padding:22px}.empty{padding:40px 15px}footer{letter-spacing:0;font-size:8px}.role{margin-left:auto}}
@media(max-width:720px){#auth{min-height:0}}
/* Dialogs share one spacing scale; controls and popup use the active skin. */
dialog{padding:28px;max-height:calc(100dvh - 32px);box-shadow:0 24px 80px #0003}
.dialog-top{gap:16px;margin-bottom:20px}
.dialog-top h2{line-height:1.3;letter-spacing:-.4px}
.dialog-top .close{width:32px;height:32px;flex:none;padding:0;display:grid;place-items:center;border-radius:8px}
#share-dialog>.small{margin:0 0 24px;line-height:1.65}
dialog form{display:grid;gap:20px}
#create-form .dialog-top{margin-bottom:4px}
dialog label{margin:0;font-size:12px;line-height:1.4}
dialog input:not([type=hidden]){min-height:48px;padding:12px 14px;margin-top:8px;font-size:14px;line-height:1.5}
dialog .full{margin:4px 0 0;min-height:48px;font-size:14px}
dialog input:focus-visible,#role-trigger:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.field-label{display:block;margin-bottom:8px;font-size:12px;line-height:1.4;color:var(--muted)}
.role-picker{position:relative}
#role-trigger{display:flex;align-items:center;justify-content:space-between;gap:16px;width:100%;min-height:48px;padding:12px 14px;border-radius:10px;background:var(--inset);font-size:14px;line-height:1.5;text-align:left}
#role-trigger:hover{filter:none;border-color:var(--muted)}
#role-trigger svg{flex:none;color:var(--muted);transition:transform .15s}
#role-trigger[aria-expanded=true]{border-color:var(--accent)}
#role-trigger[aria-expanded=true] svg{transform:rotate(180deg)}
#role-options{position:relative;margin-top:8px;padding:6px;border:1px solid var(--line);border-radius:12px;background:var(--inset);box-shadow:0 8px 24px #0000000d}
#role-options [role=option]{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px;border-radius:8px;cursor:pointer;outline:none;color:var(--text)}
#role-options [role=option]+[role=option]{margin-top:4px}
#role-options strong{display:block;font-size:13px;font-weight:550;line-height:1.4}
#role-options small{display:block;font-size:11px;line-height:1.5;color:var(--muted);margin-top:4px}
#role-options [role=option]:hover,#role-options [role=option]:focus{background:var(--panel);box-shadow:inset 0 0 0 1px var(--accent)}
#role-options [aria-selected=true]{background:var(--panel)}
.option-check{color:var(--accent);visibility:hidden;flex:none}
[aria-selected=true]>.option-check{visibility:visible}
.member{gap:16px;padding-top:16px;margin-top:20px;line-height:1.5}
.member .quiet{flex:none}
@media(max-width:480px){dialog{padding:24px 20px}.dialog-top h2{font-size:20px}}
/* Center the timer and place supporting controls below it. */
#workspace{padding-top:28px}
.layout{display:flex;flex-direction:column;gap:24px;min-height:0}
.timer-area>.section-heading{margin-bottom:20px}
.timer-area>.section-heading .sync{margin-left:auto;margin-right:12px}
.timer{padding:24px 28px 0;overflow:hidden}
.timer-top{display:grid;grid-template-columns:1fr minmax(0,2fr) 1fr;align-items:start;gap:16px}
.timer-title{text-align:center}
.timer-name{font-size:20px;font-weight:500}
.timer-top .role{margin:4px 0 0;text-align:left}
.timer-tools{justify-content:flex-end}
.timer-face{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px;width:100%;border:0;border-radius:16px;background:transparent;padding:32px 12px 20px;color:var(--text)}
button.timer-face:hover{filter:none;background:var(--inset)}
button.timer-face:focus-visible{outline-offset:-3px}
.timer-face .digits{display:block;margin:0;font-size:clamp(64px,10vw,148px);font-weight:300;letter-spacing:-.055em;line-height:1.1}
.face-action{display:inline-flex;align-items:center;justify-content:center;min-width:100px;padding:8px 18px;border-radius:24px;background:var(--accent);color:var(--ink);font-size:12px;font-weight:550}
.timer-bottom{justify-content:center;padding:0 0 20px;min-height:52px}
.timer-bottom:empty{display:none}
.timer-bottom .quiet{min-width:0;padding:8px 16px}
.timer progress{width:calc(100% + 56px);margin:0 -28px;height:3px}
.layout>aside{display:grid;grid-template-columns:minmax(0,2fr) minmax(240px,1fr);gap:20px;align-items:start}
.layout>aside>.panel{margin:0}
#presets{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.preset-row{border:1px solid var(--line);border-radius:12px;padding:0 12px;min-width:0}
.preset{flex-direction:column;align-items:flex-start;gap:8px;padding:16px 0}
.preset strong{font-size:20px;font-variant-numeric:tabular-nums}
.layout>aside>.note{display:none}
.layout>aside>#sound{align-self:center}
.layout>aside>.small{margin:0}
@media(max-width:720px){
 #workspace{padding-top:20px}
 .timer-area>.section-heading{flex-wrap:wrap;gap:12px}
 .timer-area>.section-heading .sync{margin:0 0 0 auto;max-width:none}
 .timer-area>.section-heading>.primary{padding:10px 12px}
 .timer{padding:20px 16px 0}
 .timer-top{grid-template-columns:1fr 1fr;gap:12px}
 .timer-title{grid-row:1;grid-column:1/-1}
 .timer-top .role{grid-row:2}
 .timer-tools{grid-row:2}
 .timer-name{font-size:18px}
 .timer-face{padding:24px 0 18px}
 .timer-face .digits{font-size:clamp(42px,12vw,86px)}
 .timer progress{width:calc(100% + 32px);margin:0 -16px}
 .layout>aside{grid-template-columns:1fr}
 #presets{grid-template-columns:repeat(auto-fit,minmax(125px,1fr))}
}
/* Compact wordmark with a geometric rhythm symbol. */
.brand{display:inline-flex;align-items:center;gap:11px;font-size:28px;font-weight:600;letter-spacing:-1px;line-height:1;text-decoration:none}
.brand-mark{display:block;flex:none;color:var(--accent)}
.brand-name{display:block;padding-bottom:2px}
@media(max-width:720px){.brand{font-size:25px;gap:9px}.brand-mark{width:29px;height:29px}}
.layout>aside>.push-panel{grid-column:1/-1}
.push-actions{display:flex;flex-wrap:wrap;gap:10px;margin:16px 0}
.push-actions button{font-size:12px}
.push-panel>.small:last-child{margin-bottom:0}
@media(max-width:480px){.push-actions{flex-direction:column}.push-actions button{width:100%}}
/* Full-card hit target. Independent controls stay above it. */
.timer{position:relative;isolation:isolate}
button.timer-face{position:static;transition:none}
button.timer-face::after{content:'';position:absolute;inset:0;border-radius:inherit;z-index:1;cursor:pointer}
button.timer-face:hover,button.timer-face:active{background:transparent;filter:none;transform:none}
button.timer-face:disabled{opacity:1;cursor:wait}
button.timer-face:disabled::after{cursor:wait}
button.timer-face:focus-visible{outline:none}
button.timer-face:focus-visible::after{outline:2px solid var(--accent);outline-offset:-4px;border-radius:20px}
.timer-tools button,.timer-bottom button{position:relative;z-index:2}
.timer::before{content:'';position:absolute;inset:0;border-radius:inherit;background:var(--accent);opacity:0;pointer-events:none;z-index:0}
.timer.pulsing::before{animation:timer-pulse 480ms cubic-bezier(.22,.7,.25,1)}
.face-action{min-height:34px;line-height:18px}
@keyframes timer-pulse{0%{opacity:0}30%{opacity:.12}100%{opacity:0}}
@media(prefers-reduced-motion:reduce){.timer.pulsing::before{animation-duration:120ms}}
/* The frame is one action; all secondary buttons are outside it. */
.timer-top{display:flex;justify-content:center}
.timer-title{width:100%;text-align:center}
.timer-face{padding-bottom:36px}
.timer-controls{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:16px;padding:10px 12px 0}
.timer-controls>.role{margin:0;justify-self:start}
.timer-controls>.timer-bottom{padding:0;min-height:36px;grid-column:2}
.timer-controls>.timer-tools{grid-column:3;justify-self:end}
.timer-controls button{transform:none}
.timer-controls button:active{transform:none}
@media(max-width:720px){.timer-controls{gap:8px;padding:8px 0 0}.timer-face{padding-bottom:28px}.timer-controls .timer-tools{grid-row:auto}.timer-controls>.role{font-size:10px}}
/* Mobile: prominent digits and a compact horizontal heading. */
@media(max-width:720px){
 .timer{container-type:inline-size;padding-top:12px}
 .timer-title{display:flex;align-items:center;justify-content:center;gap:14px;text-align:left}
 .timer-name{min-width:0;overflow-wrap:anywhere;line-height:1.3}
 .timer-title .badge{margin:0;flex:none;white-space:nowrap;font-size:9px;line-height:1.3}
 .timer-face{padding-top:16px;padding-bottom:24px}
 .timer-face .digits{font-size:min(24vw,27cqi);letter-spacing:-.055em;white-space:nowrap}
 .timer-face .digits[data-long=true]{font-size:min(24vw,23cqi)}
}
/* Document Picture-in-Picture uses the same skin and full-card interaction. */
.timer-controls>.timer-tools{flex-wrap:wrap}
.mini-window{min-height:100vh;margin:0}
.mini-shell{padding:12px;display:flex;flex-direction:column;gap:8px;min-height:100vh}
.mini-shell .timer{container-type:inline-size;padding:12px 12px 0;flex:1;display:flex;flex-direction:column;border-radius:16px}
.mini-shell .timer-title{display:flex;justify-content:center;align-items:center;gap:10px}
.mini-shell .timer-name{font-size:14px;line-height:1.3;max-width:65%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.mini-shell .badge{font-size:8px;margin:0;white-space:nowrap}
.mini-shell .timer-face{flex:1;padding:16px 0 20px;min-height:0}
.mini-shell .digits{font-size:27cqi;line-height:1;letter-spacing:-.055em}
.mini-shell .digits[data-long=true]{font-size:23cqi}
.mini-shell progress{width:calc(100% + 24px);margin:0 -12px}
.mini-controls{display:flex;justify-content:center;gap:16px}
.mini-controls button{font-size:11px;padding:5px 10px;transform:none}
.mini-status{font-size:11px;color:var(--muted);margin:0;text-align:center}
.mini-status:empty{display:none}
.mini-shell .readonly::after{cursor:default}
@media(max-width:480px){.timer-controls>.timer-tools{gap:2px}.timer-controls>.timer-tools button{font-size:10px;padding:5px 6px}}
.safe-toggle[aria-pressed=true]{color:var(--accent);background:var(--inset);border-color:var(--line)}
.safe-toggle:disabled{opacity:1;cursor:default}
.timer-controls>.timer-bottom{gap:8px;flex-wrap:wrap}
.mini-controls{flex-wrap:wrap;gap:4px}
.mini-controls .safe-toggle{font-size:10px}
/* Show the full track clearly, including the elapsed segment. */
.timer progress{height:4px;background:color-mix(in srgb,var(--accent) 28%,var(--panel))}
.timer progress::-webkit-progress-bar{background:color-mix(in srgb,var(--accent) 28%,var(--panel))}
@media(max-width:540px){.timer-controls{grid-template-columns:1fr 1fr}.timer-controls>.timer-bottom{grid-column:1/-1;grid-row:1}.timer-controls>.role{grid-row:2;grid-column:1}.timer-controls>.timer-tools{grid-row:2;grid-column:2}}
.share-inbox{padding:20px;border:1px solid var(--line);border-radius:16px;background:var(--panel);margin-bottom:24px}
.invitation{display:flex;align-items:center;justify-content:space-between;gap:20px;padding-top:16px;margin-top:16px;border-top:1px solid var(--line)}
.invitation-info{min-width:0;overflow-wrap:anywhere}.invitation-info strong{font-size:14px;font-weight:550}.invitation-info p{margin:6px 0 0}
.invitation-actions{display:flex;gap:8px;flex-wrap:wrap;flex:none}.invitation-actions button{font-size:12px}
.shared-heading{margin:32px 0 18px;font-size:16px;color:var(--muted)}
.layout>aside>.connections-panel{grid-column:1/-1}
.timer-controls>.role{overflow-wrap:anywhere;min-width:0}
@media(max-width:720px){header{height:auto;min-height:80px;flex-wrap:wrap;padding:16px 0}.account{flex-wrap:wrap;justify-content:flex-end}.account #share-account{font-size:10px}.invitation{align-items:stretch;flex-direction:column;gap:12px}.invitation-actions{flex-wrap:wrap}}
/* Compact empty state keeps shared timers within reach. */
.empty{padding:10px 16px;border-radius:16px}
.empty button{font-size:13px;padding:12px 16px}
@media(max-width:720px){
 header{flex-wrap:nowrap;gap:12px;align-items:center}
 .brand{flex-shrink:0}
 .account{display:grid;grid-template-columns:minmax(0,1fr) auto;column-gap:4px;row-gap:0;min-width:0;flex:1;justify-items:end}
 .account #email{grid-column:1;grid-row:1;max-width:100%;min-width:0;white-space:nowrap}
 .account #logout{grid-column:2;grid-row:1;font-size:12px;padding:8px 0 8px 6px}
 .account #share-account{grid-column:1 / -1;grid-row:2;font-size:10px;padding:4px 0 8px;white-space:nowrap}
 .empty{padding:10px 12px}
}

.account-directory{display:block;margin-top:24px;color:var(--accent)}.directory{margin-top:28px}.directory li{padding:10px 0;overflow-wrap:anywhere}.directory a{color:var(--accent)}
/* Fit the PiP viewport, including controls and transient status messages. */
.mini-window{height:100dvh;min-height:0;overflow:hidden}
.mini-shell{height:100%;min-height:0;padding:8px;gap:6px}
.mini-shell .timer{flex:1 1 0;min-height:0;container-type:size;padding-top:10px}
.mini-shell .timer-top{flex:none}
.mini-shell .timer-face{padding:4px 0;min-height:0;overflow:hidden}
.mini-shell .digits{font-size:min(27cqi,65cqh);margin:0;line-height:1}
.mini-shell .digits[data-long=true]{font-size:min(23cqi,65cqh)}
.mini-shell progress{flex:none}
.mini-controls{flex:none}
.mini-status{flex:none;max-height:2.6em;line-height:1.3;overflow:hidden;overflow-wrap:anywhere}

.timer-kind{display:flex;gap:16px;border:1px solid var(--line);border-radius:10px;margin:18px 0;padding:8px 12px}.timer-kind legend{font-size:12px;color:var(--muted)}.timer-kind label{display:flex;align-items:center;gap:6px;margin:5px 0}.timer-kind input{width:auto;margin:0;accent-color:var(--accent)}

/* Stable dialog geometry and keyboard-accessible segmented type choice. */
#create-dialog{user-select:none;caret-color:transparent}
#create-dialog input{user-select:text;caret-color:auto}
.timer-kind{display:grid;grid-template-columns:1fr 1fr;gap:4px;padding:5px;border:1px solid var(--line);background:var(--inset);border-radius:12px}
.timer-kind legend{padding:0 6px}
.timer-kind label{position:relative;display:block;margin:0;min-width:0;cursor:pointer}
.timer-kind input{position:absolute;opacity:0;width:1px;height:1px;padding:0;border:0;inset:50% auto auto 50%;pointer-events:none}
.timer-kind label span{display:flex;align-items:center;justify-content:center;min-height:40px;padding:8px;border:1px solid transparent;border-radius:8px;font-size:13px;line-height:20px;color:var(--muted);transition:background .2s,color .2s,border-color .2s}
.timer-kind input:checked+span{background:var(--panel);color:var(--text);border-color:var(--line);box-shadow:0 1px 3px #0001}
.timer-kind input:focus-visible+span{outline:2px solid var(--accent);outline-offset:1px}
.duration-stage{display:grid;align-items:center}
.duration-stage>.duration-input,.duration-stage>.stopwatch-hint{grid-area:1/1;min-width:0;transition:opacity .2s,transform .2s,visibility .2s}
.stopwatch-hint{margin:18px 0;font-size:13px;line-height:1.8;color:var(--muted);opacity:0;visibility:hidden;transform:translateY(4px)}
.duration-stage.is-stopwatch>.duration-input{opacity:0;visibility:hidden;transform:translateY(-4px);pointer-events:none}
.duration-stage.is-stopwatch>.stopwatch-hint{opacity:1;visibility:visible;transform:none}
@media(prefers-reduced-motion:reduce){.duration-stage>*,.timer-kind label span{transition:none}}

.timer.completed button.timer-face:disabled,.timer.completed button.timer-face:disabled::after{cursor:default}.timer.completed .badge{color:var(--accent)}.timer-controls button:disabled,.mini-controls button:disabled{cursor:default}

.timer.has-adjust{padding-right:100px}
.time-adjust{position:absolute;right:16px;top:50%;transform:translateY(-50%);display:grid;grid-template-columns:repeat(2,40px);gap:6px;z-index:3}
.time-adjust button{height:36px;padding:0;border-radius:7px;font-size:13px;font-variant-numeric:tabular-nums;background:var(--inset);transform:none}
.time-adjust button:disabled{cursor:default;opacity:.4}
.timer.has-adjust progress{position:absolute;bottom:0;left:0;width:100%;margin:0}
@media(max-width:720px){.timer.has-adjust{padding-right:70px}.time-adjust{right:12px;grid-template-columns:42px;gap:6px}.time-adjust button{height:30px}.timer.has-adjust .timer-face .digits{font-size:min(20vw,26cqi)}.timer.has-adjust .timer-face .digits[data-long=true]{font-size:min(17vw,22cqi)}.timer.has-adjust{min-height:190px}}

.timer-surface{position:relative}
@media(max-width:720px){
 .timer-surface:has(.time-adjust){display:grid;grid-template-columns:minmax(0,1fr) 84px;gap:10px;align-items:stretch}
 .timer-surface .timer.has-adjust{padding:14px 10px 0;min-height:210px;display:flex;flex-direction:column;min-width:0}
 .timer-surface .timer.has-adjust .timer-face{flex:1;display:flex;align-items:center;justify-content:center;padding:12px 0 18px;min-width:0}
 .timer-surface .time-adjust{position:static;transform:none;display:grid;grid-template-columns:1fr;grid-template-rows:repeat(4,minmax(45px,1fr));gap:10px}
 .timer-surface .time-adjust button{height:auto;min-height:45px;border:1.5px solid color-mix(in srgb,var(--accent) 55%,var(--line));border-radius:9px;font-size:15px;background:var(--panel)}
 .timer-surface .timer.has-adjust .timer-face .digits{font-size:min(18vw,23cqi)}
 .timer-surface .timer.has-adjust .timer-face .digits[data-long=true]{font-size:min(16vw,20cqi)}
 .timer-surface .timer-title{flex-wrap:wrap;gap:5px 10px}
}
@media(min-width:721px){
 .timer-surface:has(.time-adjust){display:grid;grid-template-columns:minmax(0,1fr) 68px;gap:12px;align-items:stretch}
 .timer-surface .timer.has-adjust{padding-right:28px;min-height:232px}
 .timer-surface .time-adjust{position:static;transform:none;display:grid;grid-template-columns:1fr;grid-template-rows:repeat(4,minmax(45px,1fr));gap:12px}
 .timer-surface .time-adjust button{height:auto;min-height:45px;border:1.5px solid color-mix(in srgb,var(--accent) 55%,var(--line));border-radius:9px;font-size:15px;background:var(--panel)}
}

.statistics-dialog{width:min(900px,calc(100% - 28px))}.activity-scroll{overflow-x:auto;padding:12px 0}.activity-year{width:max-content}.activity-grid{display:grid;grid-template-rows:repeat(7,12px);grid-auto-flow:column;grid-auto-columns:12px;gap:3px}.activity-cell{padding:0;border:0;border-radius:3px;min-width:0;background:var(--line)}.activity-months{display:grid;grid-auto-columns:15px;grid-auto-flow:column;font-size:10px;color:var(--muted);height:22px}.activity-legend{display:flex;align-items:center;gap:4px;justify-content:flex-end;font-size:10px;color:var(--muted)}.activity-legend i{width:12px;height:12px;border-radius:3px;background:var(--line)}[data-level="1"]{background:color-mix(in srgb,var(--accent) 25%,var(--line))}[data-level="2"]{background:color-mix(in srgb,var(--accent) 45%,var(--line))}[data-level="3"]{background:color-mix(in srgb,var(--accent) 70%,var(--line))}[data-level="4"]{background:var(--accent)}

.activity-legend i[data-level="1"]{background:color-mix(in srgb,var(--accent) 25%,var(--line))}.activity-legend i[data-level="2"]{background:color-mix(in srgb,var(--accent) 45%,var(--line))}.activity-legend i[data-level="3"]{background:color-mix(in srgb,var(--accent) 70%,var(--line))}.activity-legend i[data-level="4"]{background:var(--accent)}

.clock-label{margin-top:22px;font-size:13px;color:var(--text)}.clock-label span{display:block;margin-top:5px;font-size:11px;color:var(--muted)}
.clock-picker{display:flex;justify-content:center;align-items:center;gap:18px;margin:16px 0 4px;padding:12px 20px;background:var(--inset);border:1px solid var(--line);border-radius:16px;user-select:none}
.clock-unit{display:grid;justify-items:center;width:82px;gap:2px}.clock-unit button{width:64px;height:30px;padding:0;border:0;border-radius:8px;background:transparent;color:var(--muted);font-size:22px;line-height:1;transform:none;transition:background .2s,color .2s}.clock-unit button:hover{background:var(--panel);color:var(--accent)}
.clock-unit input{width:82px;margin:0;padding:6px 0;border:1px solid transparent;border-radius:10px;background:transparent;text-align:center;font-size:36px;line-height:1.2;font-weight:450;font-variant-numeric:tabular-nums;color:var(--text);transition:background .2s,border-color .2s}.clock-unit input:focus{background:var(--panel);border-color:var(--accent);outline:none}.clock-unit>span{font-size:10px;color:var(--muted);margin-top:4px}.clock-colon{font-size:30px;color:var(--muted);padding-bottom:18px}#clear-restart-at{display:block;margin:0 auto;font-size:11px;padding:8px 14px}
#timer-settings-form{gap:12px}#timer-settings-form>.small{margin:0;line-height:1.55}.clock-label{margin-top:0}.clock-picker{margin:0;padding:8px 16px}#timer-settings-dialog .clock-unit input{font-size:36px;line-height:1.2;padding:4px 0;margin:0;min-height:48px}#timer-settings-dialog #clear-restart-at{margin:0 auto;padding:4px 12px}

.clock-unit button{display:grid;place-items:center;font-size:0;touch-action:none;user-select:none}
.clock-unit button::before{content:'';width:7px;height:7px;border-top:2px solid currentColor;border-right:2px solid currentColor;transform:translateY(2px) rotate(-45deg)}
.clock-unit button[data-step="-1"]::before{transform:translateY(-2px) rotate(135deg)}
.clock-unit button.holding{background:var(--panel);color:var(--accent)}
.clock-unit button:focus-visible{outline:2px solid var(--accent);outline-offset:1px}

.clock-unit button::before{content:none}
.clock-unit button{display:flex;align-items:center;justify-content:center;line-height:0}
.clock-unit button svg{display:block;flex:none;pointer-events:none}
.clock-unit button[data-step="-1"] svg{transform:rotate(180deg)}
