.project-counter{display:flex;flex-direction:column;width:100%;gap:var(--s-4);padding-block:var(--s-6);color:var(--ink);font-family:var(--font-ui)}.project-counter__head{display:flex;align-items:center;gap:var(--s-2);min-width:0}.project-counter__part{flex:1;min-width:0;min-height:var(--control-h);padding:0 var(--s-3);border:var(--b-strong);border-radius:var(--radius-sm);background:transparent;color:var(--ink);font:inherit;font-size:var(--t-body)}.project-counter__title{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:var(--t-body);font-weight:var(--w-semibold)}.project-counter__temporary{flex:none;font-size:var(--t-caption);color:var(--text-muted)}.project-counter__modes{display:flex;flex-wrap:wrap;justify-content:center;gap:var(--s-2)}.project-counter__modes button,.project-counter__dialog-actions button{min-width:var(--target-min);min-height:var(--target-min);padding:var(--s-2) var(--s-3);border:0;border-radius:var(--radius-sm);background:transparent;color:var(--ink);font:inherit;font-size:var(--t-body);cursor:pointer}.project-counter__modes [aria-pressed=true]{background:var(--accent-weak);font-weight:var(--w-semibold)}.project-counter__number{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--s-2);min-width:var(--target-min);min-height:var(--target-min);width:100%;border:0;padding:var(--s-4) 0;background:transparent;color:var(--ink);font:inherit;cursor:pointer}.project-counter__label{font-size:var(--t-body);color:var(--text-muted)}.project-counter__number strong{font-size:clamp(3rem,8vw,3.5rem);font-weight:var(--w-bold);line-height:var(--lh-tight);font-variant-numeric:tabular-nums;overflow-wrap:anywhere}.project-counter__controls{display:flex;justify-content:center;gap:var(--s-6)}.project-counter__controls button{display:grid;place-items:center;flex:none;width:calc(var(--target-min) + var(--s-3));height:calc(var(--target-min) + var(--s-3));min-height:calc(var(--target-min) + var(--s-3));padding:0;border:var(--b-strong);border-radius:var(--radius-sm);background:transparent;color:var(--ink);cursor:pointer}.project-counter__controls .project-counter__plus{background:var(--accent);border-color:var(--accent);color:var(--on-accent)}.project-counter button:disabled{opacity:.55;cursor:default}.project-counter :is(button,select,input):focus-visible{outline:2px solid var(--accent);outline-offset:2px}.project-counter--compact{gap:var(--s-2);padding-block:0}.project-counter--compact .project-counter__number{padding-block:var(--s-1);gap:var(--s-1)}.project-counter--compact .project-counter__label{display:none}.project-counter--compact .project-counter__number strong{font-size:2.5rem}.project-counter--compact .project-counter__controls{gap:var(--s-4)}.project-counter__dialog{box-sizing:border-box;margin:auto;width:min(360px,calc(100% - var(--s-8)));max-height:calc(100dvh - var(--s-8) - env(safe-area-inset-bottom));padding:var(--s-6);border:var(--b-hairline);border-radius:var(--radius-popover);background:var(--paper);color:var(--ink);box-shadow:var(--shadow-lg);overflow-y:auto;font-family:var(--font-ui);font-size:var(--t-body)}.project-counter__dialog::backdrop{background:color-mix(in srgb,var(--ink) 40%,transparent)}.project-counter__dialog form{display:grid;gap:var(--s-3)}.project-counter__dialog input{width:100%;min-height:var(--control-h);padding:var(--s-2) var(--s-3);border:var(--b-strong);border-radius:var(--radius-sm);background:transparent;color:var(--ink);font:inherit}.project-counter__dialog p{color:var(--error)}.project-counter__dialog-actions{display:flex;justify-content:flex-end;gap:var(--s-2)}@media(prefers-reduced-motion:reduce){.project-counter *,.project-counter__dialog *{animation:none!important;transition:none!important}}.repeat-counter{width:100%}.repeat-counter__modes{display:flex;width:fit-content;max-width:100%;margin:var(--s-4) auto;gap:var(--s-2)}.repeat-counter__mode{flex:0 1 auto;min-width:88px;min-height:44px;padding:var(--s-2) var(--s-3);background:transparent;border:1px solid transparent;border-radius:999px;cursor:pointer;font:inherit;color:var(--text-muted);overflow-wrap:anywhere}.repeat-counter__mode--on{background:var(--accent-weak);border-color:var(--accent-line);color:var(--ink);font-weight:600}.repeat-counter__controls{display:flex;align-items:center;justify-content:center;gap:var(--s-4)}.repeat-counter__display{text-align:center}.repeat-counter__num{font:700 clamp(2.25rem,8vw,3.25rem)/1 var(--font-ui);color:var(--ink)}.repeat-counter__numunit{font-size:var(--t-body);color:var(--text-muted)}.repeat-counter__pm{display:grid;place-items:center;flex-shrink:0;width:56px;height:56px;border:var(--b-strong);border-radius:var(--radius-sm);background:var(--paper);font:inherit;font-size:var(--t-h3);color:var(--ink);cursor:pointer}.repeat-counter__pm--plus{border-color:var(--accent);color:var(--accent)}.repeat-counter__pm:disabled{opacity:.4;cursor:not-allowed}.repeat-counter__sub{margin-top:var(--s-3);text-align:center;color:var(--text-muted)}.repeat-counter__settings{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:var(--s-3);margin-top:var(--s-4)}.repeat-counter__unit{display:flex;flex-wrap:wrap;justify-content:center;align-items:center;max-width:100%;gap:var(--s-3);color:var(--text-muted)}.repeat-counter__unit span{min-width:0;overflow-wrap:anywhere}.repeat-counter__unit input{flex:0 0 auto;width:calc(4ch + var(--s-2) * 2 + 1.5em + 2px);min-width:72px;min-height:48px;box-sizing:border-box;padding:var(--s-2);border:var(--b-strong);border-radius:var(--radius-sm);font:inherit;color:var(--ink);background:var(--paper);text-align:center}.repeat-counter__restart{display:inline-flex;align-items:center;justify-content:center;min-height:44px;min-width:44px;max-width:100%;border:0;padding:var(--s-2);background:transparent;color:var(--text-muted);font:inherit;cursor:pointer;text-decoration:underline;text-underline-offset:2px;overflow-wrap:anywhere}.repeat-counter__error{color:var(--error);text-align:center;margin-top:var(--s-3)}.repeat-counter button:focus-visible,.repeat-counter__unit input:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
