@keyframes blink{0%{background-color:var(--color-bg-blink-start)}to{background-color:var(--color-bg-blink-end)}}:root,[data-theme=default]{--color-bg-body:#242424;--color-bg-button:#3d3d3d;--color-bg-button-hover:#464646;--color-bg-highlighted:#ff0000;--color-bg-blink-start:#800000;--color-bg-blink-end:#9f9f00;--color-bg-edit-form:rgba(0, 0, 0, .1);--color-bg-button-inactive:#999;--color-bg-button-inactive-hover:#aaa;--color-bg-button-semiactive:#666;--color-bg-button-semiactive-hover:#555;--color-bg-button-active:#464646;--color-bg-button-active-hover:#444;--color-bg-button-focus:#5c9eff;--color-text-button-focus:#000000;--color-text-primary:rgba(255, 255, 255, .87);--color-text-button:#ffffff;--color-text-button-inactive:#333;--color-text-muted:#ccc;--color-text-subtle:#aaa;--color-text-button-sm:#e0e0e0;--color-text-button-xs:#d0d0d0;--color-period-work:#4caf50;--color-period-break:#00bfff;--color-period-fun:#bc9600;--color-text-on-bg:#ffffff;--color-border:#555;--color-border-light:#ddd;--color-border-lighter:#eee;--color-border-white:#ffffff;--color-accent:#646cff;--color-accent-hover:#535bf2;--color-success:#27ae60;--color-success-alt:#2d8f47;--color-warning:#e67e22;--color-error:#e74c3c;--color-info:#2196f3;--color-icon-danger:#ff6b6b;--color-icon-success:#51cf66;--color-icon-warning:#ffd43b;--color-icon-navigate:#74c0fc;--color-icon-special:#da77f2;--color-timeline-bg:skyblue;--color-elapsed-overlay:rgba(255, 212, 59, .4);--color-overrun:#ac0000;--color-subinterval-a:rgb(0 0 0 / 12%);--color-subinterval-b:rgb(0 0 0 / 6%);--color-outline-editable:rgb(255 255 255 / 90%);--color-current-time:#ffd43b;--color-stats-default:#000000;--color-stats-elapsed:rgba(255, 255, 255, .5);--color-debug-finished-bg:rgb(0, 70, 0);--color-debug-active-bg:#fff3cd;--color-debug-active-outline:#ffeaa7;--color-input-bg:rgba(255, 255, 255, .9);--color-input-text:#333;--color-delete-hover-bg:rgba(255, 0, 0, .8)}[data-theme=nord]{--color-bg-body:#242933;--color-bg-button:#3b4252;--color-bg-button-hover:#434c5e;--color-bg-highlighted:#bf616a;--color-bg-blink-start:#a54e56;--color-bg-blink-end:#ebcb8b;--color-bg-edit-form:rgba(46, 52, 64, .5);--color-bg-button-inactive:#4c566a;--color-bg-button-inactive-hover:#5c6778;--color-bg-button-semiactive:#434c5e;--color-bg-button-semiactive-hover:#3b4252;--color-bg-button-active:#5e81ac;--color-bg-button-active-hover:#81a1c1;--color-bg-button-focus:#88c0d0;--color-text-button-focus:#2e3440;--color-text-primary:#eceff4;--color-text-button:#eceff4;--color-text-button-inactive:#d8dee9;--color-text-muted:#d8dee9;--color-text-subtle:#4c566a;--color-text-button-sm:#e5e9f0;--color-text-button-xs:#d8dee9;--color-period-work:#a3be8c;--color-period-break:#88c0d0;--color-period-fun:#ebcb8b;--color-text-on-bg:#2e3440;--color-border:#4c566a;--color-border-light:#d8dee9;--color-border-lighter:#e5e9f0;--color-border-white:#eceff4;--color-accent:#81a1c1;--color-accent-hover:#88c0d0;--color-success:#a3be8c;--color-success-alt:#8fbcbb;--color-warning:#d08770;--color-error:#bf616a;--color-info:#81a1c1;--color-icon-danger:#bf616a;--color-icon-success:#a3be8c;--color-icon-warning:#ebcb8b;--color-icon-navigate:#81a1c1;--color-icon-special:#b48ead;--color-timeline-bg:#5e81ac;--color-elapsed-overlay:rgba(235, 203, 139, .4);--color-overrun:#bf616a;--color-subinterval-a:rgba(46, 52, 64, .3);--color-subinterval-b:rgba(46, 52, 64, .15);--color-outline-editable:rgba(236, 239, 244, .9);--color-current-time:#ebcb8b;--color-stats-default:#2e3440;--color-stats-elapsed:rgba(236, 239, 244, .5);--color-debug-finished-bg:#4c566a;--color-debug-active-bg:rgba(235, 203, 139, .2);--color-debug-active-outline:#ebcb8b;--color-input-bg:rgba(236, 239, 244, .9);--color-input-text:#2e3440;--color-delete-hover-bg:rgba(191, 97, 106, .8)}.status--future{color:var(--color-text-subtle)}.status--active{color:var(--color-warning);font-weight:700}.status--played{color:var(--color-success)}.status--inactive{color:var(--color-text-muted)}.status--error{color:var(--color-error)}.status--success{color:var(--color-success);font-weight:700}.status--info{color:var(--color-info)}.status--winner{color:var(--color-success-alt);font-weight:700}.status--competitors{color:var(--color-text-subtle);font-style:italic}.row--highlight{background:var(--color-info)}.icon--danger{color:var(--color-icon-danger)}.icon--success{color:var(--color-icon-success)}.icon--warning{color:var(--color-icon-warning)}.icon--navigate{color:var(--color-icon-navigate)}.icon--special{color:var(--color-icon-special)}button:not(:disabled):hover .icon--danger,button:not(:disabled):hover .icon--navigate,button:not(:disabled):hover .icon--special,button:not(:disabled):hover .icon--success,button:not(:disabled):hover .icon--warning{color:inherit}*,:after,:before{box-sizing:border-box}:root{font-family:Inter Tight,system-ui,Avenir,Helvetica,Arial,sans-serif;font-variant-numeric:tabular-nums;line-height:1.3;color-scheme:light dark;color:var(--color-text-primary);background-color:var(--color-bg-body);font-synthesis:none}button,input,select,textarea{font-family:inherit}body{padding:1.25rem}a{font-weight:500;color:var(--color-accent);text-decoration:inherit}a:hover{color:var(--color-accent-hover)}h1{line-height:1.1;margin-top:0}body,h2,h3{margin:0}.controls--tighter{margin-bottom:.5rem!important}.fw-900{font-weight:900!important}.app{padding-inline:2rem;margin:0 auto}button{border-radius:.5rem;border:0;font-size:1rem;font-weight:600;transition:background-color .15s,color .15s,opacity .2s,filter .2s;padding:.5rem 1rem;min-width:9ch;-webkit-user-select:none;-moz-user-select:none;user-select:none;background-color:var(--color-bg-button);color:var(--color-text-button);outline:0}button:not(:disabled){cursor:pointer}button:disabled{opacity:.2;cursor:not-allowed}button:disabled svg{filter:grayscale(100%)}button.button-group-item.button-group-item--active:not(:disabled):hover,button.button-group-item.button-group-item--semiactive:not(:disabled):hover,button:not(:disabled):hover{background-color:var(--color-bg-button-focus);color:var(--color-text-button-focus)}button:not(:disabled):focus-visible{outline:2px solid var(--color-bg-button-focus);outline-offset:-2px}button.highlighted{background-color:var(--color-bg-highlighted);animation:blink .75s infinite alternate}.button-group{display:flex;justify-content:center}.button-group>button{min-width:auto;flex-basis:max-content;padding-inline:1.5ch}.button-group>button:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.button-group>button:not(:last-child){border-top-right-radius:0;border-bottom-right-radius:0}.button-group>button.button--sm{color:var(--color-text-button-sm);font-weight:400}.button-group>button.button--xs{color:var(--color-text-button-xs);font-size:.625rem}.button-group--connected{border-radius:.5rem;overflow:hidden}.button-group--connected>button{border-radius:0}.button-group--connected>button:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0;border-left:none}.button-group--connected>button:not(:last-child){border-right:none;border-top-right-radius:0;border-bottom-right-radius:0}.button-group--tight>button{padding-inline:1ch}.controls{display:flex;gap:.625rem;flex-wrap:wrap;margin-bottom:1.25rem;align-items:baseline;justify-content:center}.timeline{background-color:var(--color-timeline-bg);font-weight:700;min-height:6rem;margin-top:3rem;margin-bottom:3rem;display:grid;grid-template-columns:repeat(var(--total-minutes),1fr);-webkit-user-select:none;-moz-user-select:none;user-select:none;outline:0;opacity:.9}.timeline:focus-visible{opacity:1}.timeline__period{position:relative;color:var(--color-text-button);border-right:1px solid var(--color-border-white);background-color:var(--period-bg, var(--color-text-button));grid-column-start:span var(--period-minutes);display:grid;grid-template-columns:subgrid;grid-template-rows:subgrid}.timeline__period[style*="--period-minutes: 0"]{display:none}.timeline__period--work{--period-bg:var(--color-period-work)}.timeline__period--break{--period-bg:var(--color-period-break)}.timeline__period--fun{--period-bg:var(--color-period-fun)}.timeline__period--active{outline:2px solid var(--color-border-white);z-index:1}.timeline__elapsed-time{position:absolute;width:calc(var(--elapsed-minutes)/var(--period-minutes)*100%);top:0;bottom:0;left:0;-webkit-backdrop-filter:brightness(.3) saturate(1.3);backdrop-filter:brightness(.3) saturate(1.3)}.timeline__current-time{--line-overshoot:24px;position:absolute;width:100%;top:calc(-1*var(--line-overshoot));bottom:calc(-1*var(--line-overshoot));left:0;padding-block:var(--line-overshoot);border-right:2px solid var(--color-current-time);color:var(--color-current-time)}.timeline__text{font-size:.75rem;line-height:1.3;width:100%;min-width:-webkit-min-content;min-width:-moz-min-content;min-width:min-content;padding:.25rem 0;justify-self:start;grid-column:1/-1;z-index:2}.timeline__note{padding-inline:.4rem;font-weight:400;text-align:left}.timeline__end-time,.timeline__start-time{position:absolute;font-size:.625rem;translate:0 30%;opacity:50%;top:100%;line-height:.95;text-align:right;font-variant-numeric:tabular-nums}.timeline__start-time{left:0}.timeline__end-time{grid-column-end:-1;right:0}.timeline__period:not(:last-child) .timeline__end-time{translate:50% 30%}.timeline__period-duration{position:absolute;bottom:100%;margin-left:.2rem;text-align:left}.timeline__period--active .timeline__period-duration{top:0;bottom:auto}.timeline__elapsed{font-size:1rem;width:-webkit-max-content;width:-moz-max-content;width:max-content;text-align:left;display:block;position:absolute;right:0;transform:translate(calc(50% + 1px))}.timeline__elapsed--clock{bottom:0}.timeline__elapsed--period{bottom:calc(100% - .375rem);font-size:.75rem}.timeline__elapsed--total{top:0}.timeline__symbol{vertical-align:middle}.timeline__symbol svg{width:.5em;margin:0 -.1em}.timeline__subinterval{--subinterval-minutes:12;--subinterval-color-a:var(--color-subinterval-a);--subinterval-color-b:var(--color-subinterval-b);--subinterval-width:calc(100% / var(--period-minutes) * var(--subinterval-minutes));background-image:repeating-linear-gradient(to right,var(--subinterval-color-a)0 var(--subinterval-width),var(--subinterval-color-b) var(--subinterval-width) calc(var(--subinterval-width)*2));grid-column:1/-1;grid-row:1/2;z-index:-1}.timeline__userintended{display:grid;grid-row:1/2;z-index:-1;grid-template-columns:subgrid;grid-column-start:var(--userintended-minutes);grid-column-end:-1;background-color:var(--color-overrun)}.timeline__period--editable{cursor:pointer}.timeline__period--editable:hover{outline:4px solid var(--color-outline-editable);z-index:10}.timeline__period--editing{z-index:10;outline:4px solid var(--color-border-white)}.timeline__edit-form{display:flex;flex-direction:column;gap:.5rem;padding:.5rem;background-color:var(--color-bg-edit-form)}.timeline__edit-row{display:flex;flex-direction:row;flex-wrap:nowrap;align-items:center;justify-content:space-between;gap:.5rem}button.button-group-item{background:var(--color-bg-button-inactive);color:var(--color-text-button-inactive);transition:background-color .15s,color .15s;padding:.375rem 1ch;font-family:inherit}.button-group--tight button.button-group-item{padding-inline:.5ch}button.button-group-item:not(:disabled):hover{background-color:var(--color-bg-button-focus);color:var(--color-text-button-focus);z-index:30}button.button-group-item:not(:disabled):focus-visible{outline:2px solid var(--color-bg-button-focus);outline-offset:-2px;z-index:30}button.button-group-item.button-group-item--semiactive{background-color:var(--color-bg-button-semiactive);color:var(--color-text-button)}button.button-group-item.button-group-item--active{background-color:var(--color-bg-button-active);color:var(--color-text-button)}.timeline__edit-duration,.timeline__edit-note{background:var(--color-input-bg);border:0;padding:.375rem .5rem;color:var(--color-input-text)}.timeline__edit-note{padding:.375rem;flex:1;min-width:100px}.timeline__add-period{position:absolute;left:100%;top:50%;translate:-50% -50%;width:1.5rem;height:1.5rem;padding:0;min-width:auto;border-radius:50%;font-size:.5rem;line-height:1;transition:opacity .1s ease,background-color .15s;z-index:20;opacity:0;background-color:var(--color-icon-success);outline:2px solid var(--color-bg-body)}.timeline__period:hover .timeline__add-period{opacity:.5}.timeline__period:hover .timeline__add-period:hover{opacity:1}.timeline__add-period:not(:disabled):focus,.timeline__add-period:not(:disabled):hover{background-color:var(--color-icon-success);outline:2px solid var(--color-bg-body)}.timeline__add-period .icon--success{color:var(--color-text-button)}.stats{font-weight:700;margin-bottom:1rem;--break-max:max(var(--break-original), var(--break-planned));--break-percentage:calc(var(--break-elapsed) / var(--break-planned) * 100%);--fun-max:max(var(--fun-original), var(--fun-planned));--fun-percentage:calc(var(--fun-elapsed) / var(--fun-planned) * 100%);--work-max:max(var(--work-original), var(--work-planned));--work-percentage:calc(var(--work-elapsed) / var(--work-planned) * 100%);--total-width:calc(var(--break-max) + var(--fun-max) + var(--work-max));--middle-line-left:var(--break-max);--middle-line-right:calc(var(--break-max) + var(--fun-max))}.stats-bars{display:grid;grid-template-columns:repeat(var(--total-width),1fr);grid-template-rows:repeat(3,1fr);height:4rem}.stats-bar,.stats-elapsed{font-size:.75rem;align-content:end}.stats-bar{background-color:var(--color-stats-default);position:relative}.stats-bar--break{text-align:left;background-color:var(--color-period-break);grid-column-end:var(--middle-line-left)}.stats-bar--break.stats-bar--original{grid-column-start:calc(var(--middle-line-left) - var(--break-original) + 1)}.stats-bar--break.stats-bar--current{grid-column-start:calc(var(--middle-line-left) - var(--break-planned) + 1)}.stats-bar--fun{text-align:center;background-color:var(--color-period-fun);grid-column-start:var(--middle-line-left);grid-column-end:var(--middle-line-right)}.stats-bar--fun.stats-bar--original{grid-column-start:calc(var(--middle-line-left) + var(--fun-max) - var(--fun-original));grid-column-end:calc(var(--middle-line-right) - var(--fun-max) + var(--fun-original))}.stats-bar--fun.stats-bar--current{grid-column-start:calc(var(--middle-line-left) + var(--fun-max) - var(--fun-planned));grid-column-end:calc(var(--middle-line-right) - var(--fun-max) + var(--fun-planned))}.stats-bar--work{text-align:right;background-color:var(--color-period-work);grid-column-start:var(--middle-line-right)}.stats-bar--work.stats-bar--original{grid-column-end:calc(var(--middle-line-right) + var(--work-original) + 1)}.stats-bar--work.stats-bar--current{grid-column-end:calc(var(--middle-line-right) + var(--work-planned) + 1)}.stats-bar--current,.stats-bar--original{grid-row:1/4;border:1px solid var(--color-border-white)}.stats-bar--current{grid-row:2/3;z-index:1}.stats-elapsed{position:absolute;top:0;height:100%;-webkit-backdrop-filter:brightness(.3) saturate(1.3);backdrop-filter:brightness(.3) saturate(1.3)}.stats-bar--break .stats-elapsed{right:0;border-left:2px solid var(--color-border-white);width:var(--break-percentage)}.stats-bar--fun .stats-elapsed{left:calc((100% - var(--fun-percentage))/2);border-right:2px solid var(--color-border-white);border-left:2px solid var(--color-border-white);width:var(--fun-percentage)}.stats-bar--work .stats-elapsed{left:0;border-right:2px solid var(--color-border-white);width:var(--work-percentage)}.stats-elapsed--none{display:none}.stats-text{padding:.125rem;color:var(--color-text-on-bg)}.stats-elapsed-text{position:relative;top:-100%;color:var(--color-text-on-bg)}.stats-bar--break .stats-elapsed-text{position:absolute;right:100%}.stats-bar--fun .stats-elapsed-text{text-align:center}.stats-bar--work .stats-elapsed-text{text-align:right}.debugging-info code{min-width:24ch;display:inline-block}.debugging-info .tempPeriods{display:grid;grid-template-columns:-webkit-min-content repeat(5,-webkit-min-content);grid-template-columns:min-content repeat(5,min-content);gap:.25rem 2rem}.debugging-info .tempPeriod{display:contents}.debugging-info .tempPeriod__data{padding:.25rem;font-size:.75rem;text-wrap:nowrap}.tempPeriod--current .debugging-info .tempPeriod__data{outline:2px solid var(--color-border-white)}.tempPeriod--finished .debugging-info .tempPeriod__data{background-color:var(--color-debug-finished-bg);color:var(--color-text-button)}.debugging-info .sound-notifications{display:grid;grid-template-columns:repeat(6,-webkit-min-content);grid-template-columns:repeat(6,min-content);gap:.25rem 1rem;font-size:.75rem}.debugging-info .sound-notifications__header{display:contents;font-weight:700}.debugging-info .sound-notifications__header span{padding:.25rem;border-bottom:1px solid var(--color-border-light)}.debugging-info .sound-notifications__row{display:contents}.debugging-info .sound-notifications__row--active code,.debugging-info .sound-notifications__row--active span{background-color:var(--color-debug-active-bg);outline:1px solid var(--color-debug-active-outline)}.debugging-info .sound-notifications__row code,.debugging-info .sound-notifications__row span{padding:.25rem;text-wrap:nowrap;border-bottom:1px solid var(--color-border-lighter)}.debugging-info .sound-notifications__row code{min-width:auto}.debugging-info .sound-playback-log{display:grid;grid-template-columns:repeat(5,-webkit-min-content);grid-template-columns:repeat(5,min-content);gap:.25rem 1rem;font-size:.75rem;margin-top:.5rem}.debugging-info .sound-playback-log__header{display:contents;font-weight:700}.debugging-info .sound-playback-log__header span{padding:.25rem;border-bottom:1px solid var(--color-border-light)}.debugging-info .sound-playback-log__row{display:contents}.debugging-info .sound-playback-log__row code,.debugging-info .sound-playback-log__row span{padding:.25rem;text-wrap:nowrap;border-bottom:1px solid var(--color-border-lighter)}.debugging-info .sound-playback-log__row code{min-width:auto}.build-info{position:absolute;top:.5rem;right:.5rem;color:var(--color-text-muted);font-size:1.5rem;font-weight:700;-webkit-user-select:none;-moz-user-select:none;user-select:none;pointer-events:auto;cursor:default;z-index:1000}.top-controls{position:absolute;top:1rem;left:1rem;display:flex;gap:.5rem;z-index:1000}.top-controls__button{width:2.5rem;height:2.5rem;border-radius:50%;background:var(--color-bg-button);color:var(--color-text-button);border:1px solid var(--color-border);cursor:pointer;font-size:1.2rem;opacity:.6;transition:opacity .2s,background-color .2s;min-width:auto;padding:0;display:flex;align-items:center;justify-content:center}.top-controls__button:hover{opacity:1;background:var(--color-bg-button-hover);border-color:var(--color-accent)}.top-controls__button--active{opacity:1;background:var(--color-accent)}
