@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:red;--color-bg-blink-start:maroon;--color-bg-blink-end:#9f9f00;--color-bg-edit-form:#0000001a;--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:#000;--color-text-primary:#ffffffde;--color-text-button:#fff;--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:#fff;--color-border:#555;--color-border-light:#ddd;--color-border-lighter:#eee;--color-border-white:#fff;--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:#ffd43b66;--color-overrun:#ac0000;--color-subinterval-a:#0000001f;--color-subinterval-b:#0000000f;--color-outline-editable:#ffffffe6;--color-current-time:#ffd43b;--color-stats-default:#000;--color-stats-elapsed:#ffffff80;--color-debug-finished-bg:#004600;--color-debug-active-bg:#fff3cd;--color-debug-active-outline:#ffeaa7;--color-input-bg:#ffffffe6;--color-input-text:#333;--color-delete-hover-bg:#f00c}[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:#2e344080;--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:#ebcb8b66;--color-overrun:#bf616a;--color-subinterval-a:#2e34404d;--color-subinterval-b:#2e344026;--color-outline-editable:#eceff4e6;--color-current-time:#ebcb8b;--color-stats-default:#2e3440;--color-stats-elapsed:#eceff480;--color-debug-finished-bg:#4c566a;--color-debug-active-bg:#ebcb8b33;--color-debug-active-outline:#ebcb8b;--color-input-bg:#eceff4e6;--color-input-text:#2e3440;--color-delete-hover-bg:#bf616acc}.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-variant-numeric:tabular-nums;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark;color:var(--color-text-primary);background-color:var(--color-bg-body);font-synthesis:none;font-family:Inter Tight,system-ui,Avenir,Helvetica,Arial,sans-serif;line-height:1.3}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial}}button,input,select,textarea{font-family:inherit}body{padding:1.25rem}a{color:var(--color-accent);-webkit-text-decoration:inherit;text-decoration:inherit;font-weight:500}a:hover{color:var(--color-accent-hover)}h1{margin-top:0;line-height:1.1}body,h2,h3{margin:0}.controls--tighter{margin-bottom:.5rem!important}.fw-900{font-weight:900!important}.app{margin:0 auto;padding-inline:2rem}button{-webkit-user-select:none;user-select:none;background-color:var(--color-bg-button);min-width:9ch;color:var(--color-text-button);border:0;border-radius:.5rem;outline:0;padding:.5rem 1rem;font-size:1rem;font-weight:600;transition:background-color .15s,color .15s,opacity .2s,filter .2s}button:not(:disabled){cursor:pointer}button:disabled{opacity:.2;cursor:not-allowed}button:disabled svg{filter:grayscale()}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:.75s infinite alternate blink}.button-group{justify-content:center;display:flex}.button-group>button{flex-basis:max-content;min-width:auto;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-left:none;border-top-left-radius:0;border-bottom-left-radius:0}.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{flex-wrap:wrap;justify-content:center;align-items:baseline;gap:.625rem;margin-bottom:1.25rem;display:flex}.timeline{background-color:var(--color-timeline-bg);grid-template-columns:repeat(var(--total-minutes),1fr);-webkit-user-select:none;user-select:none;opacity:.9;outline:0;min-height:6rem;margin-top:3rem;margin-bottom:3rem;font-weight:700;display:grid}.timeline:focus-visible{opacity:1}.timeline__period{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);grid-template-columns:subgrid;grid-template-rows:subgrid;display:grid;position:relative}.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{width:calc(var(--elapsed-minutes)/var(--period-minutes)*100%);-webkit-backdrop-filter:brightness(.3)saturate(1.3);backdrop-filter:brightness(.3)saturate(1.3);position:absolute;top:0;bottom:0;left:0}.timeline__current-time{--line-overshoot:24px;width:100%;top:calc(-1*var(--line-overshoot));bottom:calc(-1*var(--line-overshoot));padding-block:var(--line-overshoot);border-right:2px solid var(--color-current-time);color:var(--color-current-time);position:absolute;left:0}.timeline__text{z-index:2;grid-column:1/-1;justify-self:start;width:100%;min-width:min-content;padding:.25rem 0;font-size:.75rem;line-height:1.3}.timeline__note{text-align:left;padding-inline:.4rem;font-weight:400}.timeline__end-time,.timeline__start-time{opacity:.5;text-align:right;font-variant-numeric:tabular-nums;font-size:.625rem;line-height:.95;position:absolute;top:100%;translate:0 30%}.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{text-align:left;margin-left:.2rem;position:absolute;bottom:100%}.timeline__period--active .timeline__period-duration{top:0;bottom:auto}.timeline__elapsed{text-align:left;width:max-content;font-size:1rem;display:block;position:absolute;right:0;transform:translate(calc(50% + 1px))}.timeline__elapsed--clock{bottom:0}.timeline__elapsed--period{font-size:.75rem;bottom:calc(100% - .375rem)}.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));z-index:-1;grid-area:1/1/2/-1}.timeline__userintended{z-index:-1;grid-row:1/2;grid-template-columns:subgrid;grid-column-start:var(--userintended-minutes);background-color:var(--color-overrun);grid-column-end:-1;display:grid}.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{background-color:var(--color-bg-edit-form);flex-direction:column;gap:.5rem;padding:.5rem;display:flex}.timeline__edit-row{flex-flow:row;justify-content:space-between;align-items:center;gap:.5rem;display:flex}button.button-group-item{background:var(--color-bg-button-inactive);color:var(--color-text-button-inactive);padding:.375rem 1ch;font-family:inherit;transition:background-color .15s,color .15s}.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);color:var(--color-input-text);border:0;padding:.375rem .5rem}.timeline__edit-note{flex:1;min-width:100px;padding:.375rem}.timeline__add-period{z-index:20;opacity:0;background-color:var(--color-icon-success);outline:2px solid var(--color-bg-body);border-radius:50%;width:1.5rem;min-width:auto;height:1.5rem;padding:0;font-size:.5rem;line-height:1;transition:opacity .1s,background-color .15s;position:absolute;top:50%;left:100%;translate:-50% -50%}.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{--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));margin-bottom:1rem;font-weight:700}.stats-bars{grid-template-columns:repeat(var(--total-width),1fr);grid-template-rows:repeat(3,1fr);height:4rem;display:grid}.stats-bar,.stats-elapsed{align-content:end;font-size:.75rem}.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{border:1px solid var(--color-border-white);grid-row:1/4}.stats-bar--current{z-index:1;grid-row:2/3}.stats-elapsed{-webkit-backdrop-filter:brightness(.3)saturate(1.3);backdrop-filter:brightness(.3)saturate(1.3);height:100%;position:absolute;top:0}.stats-bar--break .stats-elapsed{border-left:2px solid var(--color-border-white);width:var(--break-percentage);right:0}.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{border-right:2px solid var(--color-border-white);width:var(--work-percentage);left:0}.stats-elapsed--none{display:none}.stats-projected{pointer-events:none;height:100%;position:absolute;top:0}.stats-bar--work .stats-projected{width:calc(var(--work-projected)/var(--work-planned)*100%);border-right:2px solid var(--color-border-white);left:0}.stats-projected-text{opacity:.75;width:max-content;color:var(--color-text-on-bg);position:relative;top:-100%;left:100%}.stats-bar--work .stats-projected-text{text-align:right}.stats-text{color:var(--color-text-on-bg);padding:.125rem}.stats-elapsed-text{color:var(--color-text-on-bg);position:relative;top:-100%}.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{grid-template-columns:-webkit-min-content repeat(5,-webkit-min-content);grid-template-columns:min-content repeat(5,min-content);gap:.25rem 2rem;display:grid}.debugging-info .tempPeriod{display:contents}.debugging-info .tempPeriod__data{text-wrap:nowrap;padding:.25rem;font-size:.75rem}.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{grid-template-columns:repeat(6,-webkit-min-content);grid-template-columns:repeat(6,min-content);gap:.25rem 1rem;font-size:.75rem;display:grid}.debugging-info .sound-notifications__header{font-weight:700;display:contents}.debugging-info .sound-notifications__header span{border-bottom:1px solid var(--color-border-light);padding:.25rem}.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{text-wrap:nowrap;border-bottom:1px solid var(--color-border-lighter);padding:.25rem}.debugging-info .sound-notifications__row code{min-width:auto}.debugging-info .sound-playback-log{grid-template-columns:repeat(5,-webkit-min-content);grid-template-columns:repeat(5,min-content);gap:.25rem 1rem;margin-top:.5rem;font-size:.75rem;display:grid}.debugging-info .sound-playback-log__header{font-weight:700;display:contents}.debugging-info .sound-playback-log__header span{border-bottom:1px solid var(--color-border-light);padding:.25rem}.debugging-info .sound-playback-log__row{display:contents}.debugging-info .sound-playback-log__row code,.debugging-info .sound-playback-log__row span{text-wrap:nowrap;border-bottom:1px solid var(--color-border-lighter);padding:.25rem}.debugging-info .sound-playback-log__row code{min-width:auto}.durations-config{border:1px solid var(--color-border);background:var(--color-bg-edit-form);border-radius:.5rem;flex-direction:column;gap:.75rem;max-width:32rem;margin:0 auto 1.25rem;padding:1rem;display:flex}.durations-config__list{flex-wrap:wrap;gap:.5rem;display:flex}.durations-config__chip{background:var(--color-bg-button-inactive);min-width:auto;color:var(--color-text-button-inactive);padding:.375rem .875rem;font-weight:400}.durations-config__chip--active{background:var(--color-accent);color:var(--color-text-on-bg);font-weight:600}.durations-config__chip--add{font-style:italic}.durations-config__close{margin-left:auto}.durations-config__label{color:var(--color-text-muted);align-items:center;font-size:.85rem;display:flex}.durations-config__editor{flex-direction:column;gap:.5rem;display:flex}.durations-config__textarea{box-sizing:border-box;resize:none;border:1px solid var(--color-border);background:var(--color-input-bg);width:100%;min-height:2.5rem;color:var(--color-input-text);border-radius:.5rem;padding:.5rem .75rem;font-family:monospace;font-size:.95rem;line-height:1;overflow:hidden}.durations-config__textarea:focus-visible{outline:2px solid var(--color-accent);outline-offset:-2px}.durations-config__textarea[readonly]{opacity:.7;cursor:default}.durations-config__name{box-sizing:border-box;border:1px solid var(--color-border);background:var(--color-input-bg);width:100%;color:var(--color-input-text);border-radius:.5rem;padding:.5rem .75rem;font-size:.95rem;font-weight:600}.durations-config__name:focus-visible{outline:2px solid var(--color-accent);outline-offset:-2px}.durations-config__name[readonly]{opacity:.7;cursor:default}.durations-config__actions{justify-content:flex-end;gap:.5rem;display:flex}.config-toggle--open,.durations-config__edit--active{background:var(--color-bg-button-active)}.durations-config__delete:not(:disabled):hover{background:var(--color-delete-hover-bg)}.build-info{color:var(--color-text-muted);-webkit-user-select:none;user-select:none;pointer-events:auto;cursor:default;z-index:1000;font-size:1.5rem;font-weight:700;position:absolute;top:.5rem;right:.5rem}.top-controls{z-index:1000;gap:.5rem;display:flex;position:absolute;top:1rem;left:1rem}.top-controls__button{background:var(--color-bg-button);width:2.5rem;height:2.5rem;color:var(--color-text-button);border:1px solid var(--color-border);cursor:pointer;opacity:.6;border-radius:50%;justify-content:center;align-items:center;min-width:auto;padding:0;font-size:1.2rem;transition:opacity .2s,background-color .2s;display:flex}.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)}
