:root{--bg: #f4f4f1;--surface: #ffffff;--surface-2: #f7f7f4;--line: #e7e6e1;--line-strong: #d6d4cc;--ink: #141414;--ink-2: #44433e;--muted: #74736b;--accent: #f5b31c;--on-accent: #111111;--accent-ink: #8a5a00;--accent-soft: #fdf4dc;--accent-soft-2: #f7e2a8;--warn: #c2410c;--warn-ink: #7c2d0a;--warn-soft: #fff1ea;--warn-line: #f8cdb6;--info-ink: #5c3d00;--danger: #c2333a;--danger-soft: #fdeeee;--ok: #157f4f;--ok-soft: #e7f6ee;--weekend: #fafaf7;--topbar-bg: rgba(255, 255, 255, .94);--tabbar-bg: rgba(255, 255, 255, .96);--hover: rgba(0, 0, 0, .045);--overlay: rgba(10, 10, 10, .4);--toast-bg: #141414;--toast-ink: #ffffff;--thumb: #ffffff;--radius: 14px;--radius-sm: 10px;--shadow: 0 1px 2px rgba(20, 20, 20, .05), 0 2px 8px rgba(20, 20, 20, .04);--shadow-lg: 0 10px 40px rgba(20, 20, 20, .2);--dock-shadow: 0 4px 20px rgba(20, 20, 20, .12);--safe-bottom: env(safe-area-inset-bottom, 0px);--safe-top: env(safe-area-inset-top, 0px);--font: -apple-system, BlinkMacSystemFont, "SF Pro Text", "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;color-scheme:light}:root[data-theme=dark]{--bg: #0a0a0a;--surface: #161616;--surface-2: #1e1e1e;--line: #2a2a2a;--line-strong: #3a3a3a;--ink: #f3f3ef;--ink-2: #cfcec8;--muted: #94938b;--accent: #f5b31c;--on-accent: #111111;--accent-ink: #f7c04a;--accent-soft: rgba(245, 179, 28, .13);--accent-soft-2: rgba(245, 179, 28, .3);--warn: #ff8a4c;--warn-ink: #ffd3bb;--warn-soft: rgba(255, 138, 76, .12);--warn-line: rgba(255, 138, 76, .35);--info-ink: #f9dc9a;--danger: #ff6b6b;--danger-soft: rgba(255, 107, 107, .14);--ok: #4ade80;--ok-soft: rgba(74, 222, 128, .12);--weekend: #121212;--topbar-bg: rgba(10, 10, 10, .92);--tabbar-bg: rgba(22, 22, 22, .96);--hover: rgba(255, 255, 255, .06);--overlay: rgba(0, 0, 0, .6);--toast-bg: #f3f3ef;--toast-ink: #111111;--thumb: #f3f3ef;--shadow: 0 1px 2px rgba(0, 0, 0, .5);--shadow-lg: 0 10px 40px rgba(0, 0, 0, .7);--dock-shadow: 0 4px 24px rgba(0, 0, 0, .6);color-scheme:dark}*{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{margin:0;background:var(--bg);color:var(--ink);font-family:var(--font);font-size:16px;line-height:1.4;-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent;overflow-x:hidden}button,input,select,textarea{font:inherit;color:inherit}button{cursor:pointer}button:disabled{cursor:default;opacity:.5}:focus-visible{outline:2px solid var(--accent-ink);outline-offset:2px}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.muted{color:var(--muted)}.small{font-size:13px}.error{color:var(--danger)}.warn{color:var(--warn)}.tnum,.stat__value,.daycard__total,.week__sum,.dock__value,.c-num,.subtotal strong,.recap strong{font-variant-numeric:tabular-nums}.app{min-height:100vh;min-height:100dvh}.topbar{position:sticky;top:0;z-index:20;background:var(--topbar-bg);backdrop-filter:saturate(1.4) blur(12px);-webkit-backdrop-filter:saturate(1.4) blur(12px);border-bottom:1px solid var(--line);padding-top:var(--safe-top)}.topbar__inner,.topbar__month,.content{max-width:1180px;margin:0 auto;padding-left:16px;padding-right:16px}.topbar__inner{display:flex;align-items:center;gap:12px;height:48px}.topbar__month{padding-bottom:10px}.brand{display:flex;align-items:center;gap:8px;font-weight:650;font-size:15px;letter-spacing:-.01em}.brand__logo{display:grid;place-items:center;width:28px;height:28px;border-radius:8px;background:var(--accent);color:var(--on-accent)}.save{margin-left:auto;font-size:12.5px;color:var(--muted);display:inline-flex;align-items:center;gap:4px;white-space:nowrap}.save--ok{color:var(--ok)}.save--pending{color:var(--muted)}.save--error{color:var(--danger);font-weight:600}.content{padding-top:14px;padding-bottom:calc(150px + var(--safe-bottom));display:flex;flex-direction:column;gap:14px}.app--desktop .content{padding-bottom:48px}.monthnav{position:relative;display:flex;align-items:center;gap:4px}.monthnav__label{flex:1;min-width:0;display:inline-flex;align-items:center;justify-content:center;gap:6px;height:40px;border:0;background:transparent;border-radius:var(--radius-sm);font-size:20px;font-weight:700;letter-spacing:-.02em;white-space:nowrap;padding:0 4px}@media(max-width:899px){.monthnav__label{font-size:18px}.monthnav__today{padding:0 10px}}.monthnav__label:hover{background:var(--hover)}.monthnav__today{margin-left:4px}.app--desktop .monthnav{max-width:520px}.icon-btn{display:inline-grid;place-items:center;width:40px;height:40px;flex:none;border:0;border-radius:var(--radius-sm);background:transparent;color:var(--ink-2)}.icon-btn:hover{background:var(--hover)}.picker{position:absolute;z-index:30;top:46px;left:50%;transform:translate(-50%);width:min(340px,calc(100vw - 32px));background:var(--surface);border-radius:var(--radius);box-shadow:var(--shadow-lg);border:1px solid var(--line);padding:10px}.picker__year{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px}.picker__yearinput{width:90px;text-align:center;font-size:18px;font-weight:700;border:0;background:transparent}.picker__grid{display:grid;grid-template-columns:repeat(4,1fr);gap:6px}.picker__month{height:42px;border:1px solid transparent;background:var(--surface-2);border-radius:var(--radius-sm);font-size:14px;font-weight:550;text-transform:capitalize}.picker__month.is-current{border-color:var(--accent-soft-2);color:var(--accent-ink)}.picker__month.is-selected{background:var(--accent);color:var(--on-accent)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;height:44px;padding:0 16px;border-radius:12px;border:1px solid transparent;font-weight:600;font-size:15px;white-space:nowrap}.btn--sm{height:34px;padding:0 12px;font-size:14px;border-radius:10px}.btn--block{width:100%}.btn--primary{background:var(--accent);color:var(--on-accent)}.btn--primary:hover:not(:disabled){filter:brightness(.95)}.btn--soft{background:var(--accent-soft);color:var(--accent-ink)}.btn--soft:hover:not(:disabled){background:var(--accent-soft-2)}.btn--ghost{background:var(--surface);border-color:var(--line-strong);color:var(--ink)}.btn--ghost:hover:not(:disabled){background:var(--surface-2)}.btn--danger{background:var(--danger);color:#fff}.btn-row{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}.linkish{border:0;background:none;padding:0;color:var(--accent-ink);font-weight:550;text-align:left}.linkish:hover{text-decoration:underline}.link-danger{border:0;background:none;color:var(--danger);font-weight:550;padding:6px 0;align-self:flex-start}.card{background:var(--surface);border-radius:var(--radius);box-shadow:var(--shadow);padding:16px}.card__title{margin:0 0 8px;font-size:16px;font-weight:650;letter-spacing:-.01em}.card p{margin:6px 0}.cards3{display:grid;grid-template-columns:1.4fr 1fr 1fr;gap:10px}.stat{background:var(--surface);border-radius:var(--radius);box-shadow:var(--shadow);padding:12px 14px;min-width:0}.stat__label{font-size:12.5px;color:var(--muted);font-weight:550}.stat__value{font-size:26px;font-weight:700;letter-spacing:-.02em;margin-top:2px}.stat__hint{font-size:11.5px;color:var(--muted)}.stat--main .stat__value{color:var(--accent-ink)}.stat--warn .stat__value{color:var(--warn)}.stat__goal{font-size:11.5px;color:var(--muted);margin-top:4px}.bar{height:5px;border-radius:3px;background:var(--accent-soft-2);overflow:hidden;margin-bottom:4px}.bar__fill{height:100%;background:var(--accent)}.weeks{display:flex;flex-direction:column;gap:12px}.week{background:var(--surface);border-radius:var(--radius);box-shadow:var(--shadow);overflow:hidden}.week--current{box-shadow:var(--shadow),0 0 0 1.5px var(--accent-soft-2)}.week__head{width:100%;display:flex;align-items:center;gap:8px;padding:12px 14px;border:0;background:transparent;text-align:left}.week__chev{display:inline-grid;color:var(--muted);transition:transform .15s ease}.week__chev.is-open{transform:rotate(90deg)}.week__title{font-weight:650}.week__range{color:var(--muted);font-size:14px;flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.week__sum{font-weight:650}.week__body{border-top:1px solid var(--line)}.daycard{width:100%;display:flex;align-items:center;gap:12px;padding:10px 14px;border:0;border-bottom:1px solid var(--line);background:var(--surface);text-align:left;min-height:60px}.daycard:active{background:var(--surface-2)}.daycard.is-weekend{background:var(--weekend)}.daycard__date{flex:none;width:46px;height:46px;border-radius:12px;display:flex;flex-direction:column;align-items:center;justify-content:center;background:var(--surface-2);border:1px solid var(--line)}.daycard.is-weekend .daycard__date{background:transparent;border-style:dashed}.daycard__wd{font-size:11px;color:var(--muted);font-weight:600;text-transform:uppercase;letter-spacing:.03em;line-height:1.1}.daycard__d{font-size:18px;font-weight:700;line-height:1.1}.daycard.is-today .daycard__date{background:var(--accent);border-color:var(--accent)}.daycard.is-today .daycard__wd,.daycard.is-today .daycard__d{color:var(--on-accent)}.daycard__mid{flex:1;min-width:0;display:flex;flex-direction:column;gap:1px}.daycard__times{font-size:15px;font-weight:550;font-variant-numeric:tabular-nums;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.daycard__status{font-size:13px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.daycard__pause{color:var(--muted);font-weight:400}.daycard__comment{font-size:12.5px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.daycard__total{flex:none;font-size:17px;font-weight:700;min-width:52px;text-align:right}.daycard.state--empty .daycard__total{color:var(--line-strong);font-weight:500}.daycard.state--incomplete .daycard__status,.daycard.state--invalid .daycard__status{color:var(--warn);font-weight:600}.daycard.state--incomplete .daycard__total,.daycard.state--invalid .daycard__total{color:var(--warn)}.daycard.state--off .daycard__status{color:var(--ink-2);font-weight:600}.daycard.is-today.state--empty .daycard__status{color:var(--accent-ink);font-weight:600}.subtotal{padding:10px 14px 12px;background:var(--surface-2)}.subtotal__main{display:flex;justify-content:space-between;gap:12px;font-size:14px;color:var(--ink-2);font-weight:550}.subtotal__main strong{color:var(--ink);font-size:15px}.subtotal__secondary{font-size:12px;color:var(--muted);margin-top:3px}.chip{display:inline-flex;align-items:center;height:22px;padding:0 8px;border-radius:11px;font-size:12px;font-weight:600;white-space:nowrap}.chip--warn{background:var(--warn-soft);color:var(--warn)}.chip--accent{background:var(--accent-soft);color:var(--accent-ink)}.tag{display:inline-block;padding:1px 7px;border-radius:6px;background:var(--surface-2);font-size:12px;font-weight:600;color:var(--ink-2)}.tag--warn{background:var(--warn-soft);color:var(--warn)}.notice{display:flex;gap:10px;align-items:flex-start;padding:12px;border-radius:var(--radius-sm);font-size:14px;margin-top:10px}.notice p{margin:0 0 4px}.notice ul{margin:4px 0 0;padding-left:18px}.notice>svg{flex:none;margin-top:1px}.notice--warn{background:var(--warn-soft);border:1px solid var(--warn-line);color:var(--warn-ink)}.notice--warn>svg{color:var(--warn)}.notice--info{background:var(--accent-soft);color:var(--info-ink)}.notice--info>svg{color:var(--accent)}.bottom{position:fixed;left:0;right:0;bottom:0;z-index:25}.dock{display:flex;align-items:center;gap:10px;justify-content:space-between;margin:0 10px 8px;padding:8px 8px 8px 14px;background:var(--surface);border-radius:16px;box-shadow:var(--dock-shadow);border:1px solid var(--line)}.dock__total{display:flex;flex-direction:column;min-width:0}.dock__label{font-size:12px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.dock__value{font-size:20px;font-weight:700;letter-spacing:-.02em}.dock .btn{height:42px;padding:0 12px;font-size:14px}.tabbar{display:grid;grid-template-columns:repeat(3,1fr);background:var(--tabbar-bg);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border-top:1px solid var(--line);padding-bottom:var(--safe-bottom)}.tabbar__item{display:flex;flex-direction:column;align-items:center;gap:2px;padding:7px 0 6px;border:0;background:transparent;color:var(--muted);font-size:11px;font-weight:600}.tabbar__item.is-active{color:var(--accent-ink)}.toptabs{display:flex;gap:4px;margin-left:24px}.toptab{height:34px;padding:0 14px;border:0;border-radius:9px;background:transparent;font-weight:600;color:var(--ink-2)}.toptab:hover{background:var(--hover)}.toptab.is-active{background:var(--surface);color:var(--accent-ink);box-shadow:var(--shadow)}.overlay{position:fixed;inset:0;z-index:50;background:var(--overlay);display:flex;align-items:flex-end;justify-content:center}.sheet{width:100%;max-width:560px;max-height:calc(100dvh - 24px - var(--safe-top));background:var(--surface);border-radius:20px 20px 0 0;box-shadow:var(--shadow-lg);display:flex;flex-direction:column}.sheet__head{display:flex;align-items:center;gap:8px;padding:14px 10px 10px 18px;border-bottom:1px solid var(--line)}.sheet__title{flex:1;min-width:0;font-weight:700;font-size:17px;letter-spacing:-.01em}.sheet__body{padding:16px 18px;overflow-y:auto;display:flex;flex-direction:column;gap:14px;overscroll-behavior:contain}.sheet__foot{padding:10px 14px calc(10px + var(--safe-bottom));border-top:1px solid var(--line)}@media(min-width:640px){.overlay{align-items:center}.sheet{border-radius:20px;max-height:90vh}.sheet__foot{padding-bottom:12px}}.editor__title{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.editor__foot{display:flex;gap:8px;justify-content:space-between}.editor__foot .btn--primary{flex:1}.editor__foot .btn--ghost{padding:0 10px}.editor__offnote{margin:0;padding:12px;background:var(--surface-2);border-radius:var(--radius-sm)}.segmented{display:grid;grid-template-columns:repeat(5,1fr);gap:2px;padding:3px;background:var(--surface-2);border:1px solid var(--line);border-radius:12px}.segmented__item{height:34px;border:0;background:transparent;border-radius:9px;font-size:13px;font-weight:600;color:var(--ink-2);padding:0 2px}.segmented__item.is-active{background:var(--surface);color:var(--accent-ink);box-shadow:0 1px 3px #0000001a}.tgrid{display:grid;grid-template-columns:1fr 1fr;gap:10px}@media(max-width:330px){.tgrid{grid-template-columns:1fr}}.tfield{display:flex;flex-direction:column;gap:4px;min-width:0}.tfield__label{font-size:13px;font-weight:600;color:var(--ink-2)}.tfield__row{position:relative;display:block}.tfield__input{width:100%;height:52px;padding:0 34px 0 12px;border:1px solid var(--line-strong);border-radius:12px;background:var(--surface);font-size:22px;font-weight:650;font-variant-numeric:tabular-nums;-webkit-appearance:none;appearance:none;text-align:left}.tfield__input::-webkit-date-and-time-value{text-align:left}.tfield__input.is-empty{color:var(--muted);font-weight:450;background:var(--surface-2)}.tfield__input:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft-2)}.tfield__clear{position:absolute;right:6px;top:50%;transform:translateY(-50%);width:26px;height:26px;border-radius:13px;border:0;background:var(--surface-2);color:var(--muted);display:grid;place-items:center}.pausebox{display:flex;flex-direction:column;gap:10px;padding:12px;border-radius:12px;background:var(--surface-2)}.pausebox .tfield__input{background:var(--surface)}.switch{display:inline-flex;align-items:center;gap:10px;font-weight:600;font-size:15px;cursor:pointer;-webkit-user-select:none;user-select:none}.switch input{position:absolute;opacity:0;pointer-events:none}.switch__track{width:46px;height:28px;border-radius:14px;background:var(--line-strong);position:relative;transition:background .15s;flex:none}.switch__thumb{position:absolute;top:3px;left:3px;width:22px;height:22px;border-radius:11px;background:var(--thumb);box-shadow:0 1px 3px #00000040;transition:transform .15s}.switch input:checked+.switch__track{background:var(--accent)}.switch input:checked+.switch__track .switch__thumb{transform:translate(18px)}.switch input:focus-visible+.switch__track{outline:2px solid var(--accent);outline-offset:2px}.editor__total{display:flex;align-items:center;justify-content:space-between;padding:12px 14px;border-radius:12px;border:1px solid var(--line)}.editor__totallabel{font-size:13px;color:var(--muted);font-weight:550}.editor__state{font-size:14px;font-weight:600}.editor__totalvalue{font-size:28px;font-weight:700;letter-spacing:-.02em;font-variant-numeric:tabular-nums}.editor__total.state--complete{background:var(--accent-soft);border-color:transparent}.editor__total.state--complete .editor__totalvalue{color:var(--accent-ink)}.editor__total.state--incomplete .editor__state,.editor__total.state--invalid .editor__state{color:var(--warn)}.editor__total+.notice{margin-top:-6px}.field{display:flex;flex-direction:column;gap:5px;margin:8px 0}.field__label{font-size:13px;font-weight:600;color:var(--ink-2)}.field__hint{font-size:12.5px;color:var(--muted)}.field input,.field select,.field textarea{width:100%;min-height:44px;padding:10px 12px;border:1px solid var(--line-strong);border-radius:12px;background:var(--surface);font-size:16px}.field textarea{resize:vertical}.field input:focus,.field select:focus,.field textarea:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft-2)}.form-row--2{display:grid;grid-template-columns:1fr 1fr;gap:10px}.confirm{display:flex;flex-direction:column;gap:8px;padding:12px;border-radius:12px;background:var(--danger-soft);font-size:14px}.confirm__actions{display:flex;gap:8px;justify-content:flex-end}.kv{list-style:none;margin:0;padding:0}.kv li{display:flex;justify-content:space-between;padding:7px 0;border-bottom:1px solid var(--line);font-size:14.5px}.choices{display:flex;flex-direction:column;gap:8px}.choice{display:flex;gap:10px;align-items:flex-start;padding:12px;border:1px solid var(--line-strong);border-radius:12px;cursor:pointer}.choice>span{display:flex;flex-direction:column;gap:2px}.choice.is-active{border-color:var(--accent);background:var(--accent-soft)}.choice input{margin-top:3px;accent-color:var(--accent)}.confirm-check{display:flex;gap:10px;align-items:flex-start;font-size:14px;padding:10px 12px;background:var(--danger-soft);border-radius:12px}.steps{margin:4px 0;padding-left:20px}.steps li{margin:4px 0}.toast{position:fixed;left:50%;transform:translate(-50%);bottom:calc(150px + var(--safe-bottom));z-index:60;background:var(--toast-bg);color:var(--toast-ink);padding:10px 16px;border-radius:12px;font-size:14px;font-weight:550;box-shadow:var(--shadow-lg);max-width:calc(100vw - 32px)}.app--desktop .toast{bottom:24px}.dtable-wrap{padding:0;overflow:hidden}.dtable{width:100%;border-collapse:collapse;font-size:14px}.dtable th{background:var(--surface-2);color:var(--ink-2);font-size:12px;font-weight:650;text-transform:uppercase;letter-spacing:.03em;text-align:left;padding:9px 6px;border-bottom:1px solid var(--line-strong)}.dtable td{padding:3px 6px;border-bottom:1px solid var(--line);height:40px}.dtable .c-week{width:52px;text-align:center;vertical-align:top;padding-top:12px}.dtable td.c-week{background:var(--surface-2);font-weight:700;color:var(--accent-ink);border-right:1px solid var(--line)}.dtable .c-date{width:112px;white-space:nowrap}.dtable .c-date .linkish{color:var(--ink);font-weight:600}.dtable .c-nb{width:60px;text-align:center}.dtable .c-num{width:110px;text-align:right;padding-right:12px;white-space:nowrap}.dtable .c-comment{min-width:160px}.dtable input[type=time],.dtable input[type=text],.dtable select{width:100%;height:32px;padding:0 6px;border:1px solid transparent;border-radius:8px;background:transparent;font-size:14px;font-variant-numeric:tabular-nums}.dtable input[type=time]{min-width:96px}.dtable select{min-width:92px}.dtable input:hover:not(:disabled),.dtable select:hover{border-color:var(--line-strong);background:var(--surface)}.dtable input:focus,.dtable select:focus{outline:none;border-color:var(--accent);background:var(--surface);box-shadow:0 0 0 3px var(--accent-soft-2)}.dtable input:disabled{opacity:.35}.dtable input[type=checkbox]{width:18px;height:18px;accent-color:var(--accent)}.dtable tr.is-weekend td:not(.c-week){background:var(--weekend)}.dtable tr.is-today td:not(.c-week){background:var(--accent-soft)}.dtable tr.is-today .c-date .linkish{color:var(--accent-ink)}.dtable tr.state--incomplete td.c-num,.dtable tr.state--invalid td.c-num{color:var(--warn)}.dtable__sub td{background:var(--surface-2);font-weight:600;color:var(--ink-2);font-size:13.5px;border-bottom:2px solid var(--line-strong)}.dtable__sub td.c-num strong{color:var(--ink);font-size:14.5px}.dtable tfoot td{padding:12px 6px;font-weight:700;font-size:15px;border-top:1px solid var(--line-strong)}.dtable tfoot td.c-num{color:var(--accent-ink);font-size:17px;padding-right:12px}.export-row{display:flex;justify-content:flex-end}.app--desktop .cards3{grid-template-columns:repeat(3,minmax(0,260px))}@media(max-width:380px){.stat__value{font-size:22px}.monthnav__label{font-size:16.5px}.dock .btn{font-size:13px;padding:0 10px}.segmented__item{font-size:12px}}.weeks__bar{display:flex;justify-content:space-between;align-items:center;padding:0 4px;margin-bottom:-4px}.week__head{align-items:flex-start}.week__chev{margin-top:1px}.week__info{flex:1;min-width:0;display:flex;flex-direction:column;gap:6px}.week__line{display:flex;align-items:center;gap:8px;min-width:0}.week__meta{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.week__count{font-size:12.5px;color:var(--muted)}.week:not(.is-open) .week__head{padding-bottom:11px}.week__sum{margin-top:1px}.chip{background:var(--surface-2);color:var(--ink-2);gap:4px}.chip--ok{background:var(--ok-soft);color:var(--ok)}.dots{display:inline-flex;gap:3px}.dot{width:18px;height:18px;border-radius:5px;display:inline-grid;place-items:center;font-size:9.5px;font-weight:700;background:var(--surface-2);color:var(--muted);border:1px solid var(--line)}.dot--complete{background:var(--accent);border-color:var(--accent);color:var(--on-accent)}.dot--incomplete,.dot--invalid{background:var(--warn-soft);border-color:var(--warn-line);color:var(--warn)}.dot--off{background:var(--accent-soft);border-color:var(--accent-soft-2);color:var(--accent-ink)}.dot--out{opacity:.35;border-style:dashed;background:transparent}.dot--today{box-shadow:0 0 0 1.5px var(--surface),0 0 0 3px var(--accent)}.recap{display:flex;flex-direction:column;gap:14px}.recap__hero{display:flex;justify-content:space-between;align-items:flex-start;gap:12px}.recap__eyebrow{font-size:12.5px;font-weight:650;color:var(--muted);text-transform:uppercase;letter-spacing:.04em}.recap__total{font-size:34px;font-weight:750;letter-spacing:-.03em;color:var(--accent-ink);font-variant-numeric:tabular-nums;line-height:1.15;margin-top:2px}.recap__sub{font-size:14px;color:var(--ink-2)}.wbars{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:2px}.wbars__row{width:100%;display:grid;grid-template-columns:74px 1fr auto;align-items:center;gap:12px;padding:9px 8px;margin:0 -8px;width:calc(100% + 16px);border:0;border-radius:10px;background:transparent;text-align:left}button.wbars__row:hover,button.wbars__row:active{background:var(--surface-2)}.wbars__label{display:flex;flex-direction:column;line-height:1.2}.wbars__week{font-weight:700;font-size:14.5px}.wbars__range{font-size:12px;color:var(--muted);white-space:nowrap}.wbars__mid{display:flex;flex-direction:column;gap:4px;min-width:0}.wbars__track{display:block;height:8px;border-radius:4px;background:var(--surface-2);overflow:hidden}.wbars__fill{display:block;height:100%;border-radius:4px;background:linear-gradient(90deg,#f9cd5c,var(--accent));min-width:0}.wbars__note{font-size:12px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.wbars__value{font-size:15.5px;font-variant-numeric:tabular-nums}.recap__off{display:flex;gap:6px;flex-wrap:wrap}.recap__todo{border-radius:12px;background:var(--warn-soft);border:1px solid var(--warn-line);overflow:hidden}.recap__todotitle{display:flex;align-items:center;gap:6px;padding:10px 12px;font-weight:650;font-size:14px;color:var(--warn)}.todo{width:100%;display:grid;grid-template-columns:1fr auto;column-gap:8px;align-items:center;padding:9px 12px;border:0;border-top:1px solid var(--warn-line);background:transparent;text-align:left;color:var(--warn-ink)}button.todo:active,button.todo:hover{background:var(--hover)}.todo>svg{grid-row:span 2;color:var(--warn)}.todo__date{font-weight:600;font-size:14px}.todo__issue{font-size:12.5px;opacity:.85}.notice--archive{background:var(--surface);border:1px solid var(--line-strong);color:var(--ink-2);margin-top:0}.notice--archive>svg{color:var(--accent)}.years{display:flex;flex-direction:column;gap:8px;margin-top:8px}.year{border:1px solid var(--line);border-radius:12px;overflow:hidden}.year--archived{background:var(--surface-2)}.year__head{width:100%;display:flex;align-items:center;gap:8px;padding:12px;border:0;background:transparent;text-align:left}.year__title{font-size:17px;font-weight:700}.year__total{margin-left:auto;font-weight:700;font-variant-numeric:tabular-nums}.year__body{padding:0 12px 12px;display:flex;flex-direction:column;gap:8px}.year__body p{margin:0}.months{list-style:none;margin:0;padding:0}.months__row{width:100%;display:grid;grid-template-columns:88px 1fr 64px;gap:10px;align-items:center;padding:6px 4px;border:0;border-radius:8px;background:transparent;text-align:left;font-size:14px}.months__row:hover{background:var(--surface-2)}.months__row.is-empty{color:var(--muted)}.months__name{text-transform:capitalize}.months__value{text-align:right;font-variant-numeric:tabular-nums;font-weight:600}.months__row.is-empty .months__value{font-weight:400}.months__warn{color:var(--warn);margin-right:4px;font-weight:800}.year__archivebox{padding:10px 12px;border-radius:10px;background:var(--accent-soft);display:flex;flex-direction:column;gap:8px}.year__archivebox .btn-row{margin-top:0;justify-content:flex-end}.year__archivebox .btn{align-self:flex-start}.year__archivelink{display:inline-flex;align-items:center;gap:6px;align-self:flex-start;padding:4px 0}.btn__sub{font-weight:450;font-size:12.5px;opacity:.8}.btn--soft:has(.btn__sub){flex-wrap:wrap;height:auto;min-height:44px;padding-top:8px;padding-bottom:8px;row-gap:0}.btn--soft .btn__sub{flex-basis:100%;text-align:center}.segmented.is-disabled{opacity:.6}.tfield__input:disabled,.field textarea:disabled{opacity:.7}.dtable__weekhead td{padding:0;height:auto;background:var(--surface);border-bottom:1px solid var(--line)}.dtable__week.is-open .dtable__weekhead td{background:var(--surface-2)}.dtable__week.is-current .dtable__weekhead td{box-shadow:inset 3px 0 0 var(--accent)}.dtable__weekbtn{width:100%;display:flex;align-items:center;gap:10px;padding:11px 14px;border:0;background:transparent;text-align:left;font-size:14px}.dtable__weekbtn:hover{background:var(--accent-soft)}.dtable__range{color:var(--muted);font-size:13.5px;min-width:70px}.dtable__weeksum{margin-left:auto;font-weight:700;font-size:15px;font-variant-numeric:tabular-nums}.dtable .c-date{padding-left:38px}.dtable input[type=time]::-webkit-calendar-picker-indicator{opacity:.25;cursor:pointer}.dtable tr:hover input[type=time]::-webkit-calendar-picker-indicator{opacity:.6}.weeks__bar{margin-bottom:-6px}.pillbtn{height:30px;padding:0 12px;border-radius:15px;border:1px solid var(--line-strong);background:var(--surface);color:var(--accent-ink);font-size:13px;font-weight:600}.pillbtn:active{background:var(--accent-soft)}.app:not(.app--desktop) .topbar__inner,.app:not(.app--desktop) .topbar__month,.app:not(.app--desktop) .content{max-width:680px}.app:not(.app--desktop) .bottom .dock,.app:not(.app--desktop) .tabbar{max-width:680px;margin-left:auto;margin-right:auto}.app:not(.app--desktop) .bottom .dock{margin-bottom:8px}@media(min-width:700px){.app:not(.app--desktop) .bottom .dock{margin-left:auto;margin-right:auto}}.tfield__row{display:block;position:relative}.tfield__placeholder{position:absolute;left:12px;top:50%;transform:translateY(-50%);pointer-events:none;display:inline-flex;align-items:center;gap:6px;color:var(--muted);font-size:15px;font-weight:500}.tfield__input.is-empty{color:transparent}.tfield__input.is-empty:focus{color:var(--ink)}.tfield__input.is-empty:focus+.tfield__placeholder{display:none}.daycard,.week__head,.tabbar__item,.wbars__row,.todo,.months__row{touch-action:manipulation}.week__head{min-height:52px}.week__meta .dots{margin-right:2px}@media(max-width:380px){.dot{width:16px;height:16px;font-size:9px}.week__count{font-size:12px}}.todo__date,.todo__issue{grid-column:1}.todo>svg{grid-column:2;grid-row:1 / span 2}.app--desktop .recap{max-width:760px}.dtable__sub td:first-child,.dtable tfoot td:first-child{padding-left:38px}@media(max-width:560px){.stat__label{font-size:11.5px;line-height:1.25;min-height:2.5em}.stat{padding:10px 12px}.stat__value{font-size:24px}}.tfield__input::-webkit-calendar-picker-indicator{position:absolute;inset:0;width:auto;height:auto;opacity:0;cursor:pointer}html{background:var(--bg);touch-action:manipulation;overscroll-behavior:none;height:100%}body{overscroll-behavior:none;min-height:100%}@media(pointer:coarse){input,select,textarea{font-size:max(16px,1em)}}.topbar{background:var(--topbar-bg)}.app:not(.app--desktop) .content{padding-left:max(16px,env(safe-area-inset-left));padding-right:max(16px,env(safe-area-inset-right))}.brand__logo--img{width:30px;height:30px;border-radius:8px;background:#000;object-fit:cover}.segmented--3{grid-template-columns:repeat(3,1fr)}.segmented--3 .segmented__item{height:38px;font-size:14px}.clock{background:var(--surface);border-radius:18px;box-shadow:var(--shadow);padding:14px 16px 16px;border:1px solid var(--line);display:flex;flex-direction:column;gap:10px}.clock--working{border-color:var(--accent);box-shadow:var(--shadow),0 0 0 3px var(--accent-soft)}.clock--paused{border-color:var(--warn-line)}.clock__top{display:flex;align-items:center;justify-content:space-between;gap:8px}.clock__day{display:flex;flex-direction:column;line-height:1.2}.clock__eyebrow{font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--accent-ink)}.clock__date{font-weight:650;font-size:15px}.clock__edit{border:0;background:transparent;color:var(--muted);font-size:13.5px;font-weight:600;display:inline-flex;align-items:center;gap:2px;padding:6px 4px}.clock__main{display:flex;align-items:baseline;justify-content:space-between;gap:12px;flex-wrap:wrap}.clock__time{font-size:44px;font-weight:750;letter-spacing:-.03em;font-variant-numeric:tabular-nums;line-height:1}.clock--idle .clock__time{color:var(--muted)}.clock__status{display:inline-flex;align-items:center;gap:7px;font-size:14px;color:var(--ink-2);font-weight:550}.clock__dot{width:9px;height:9px;border-radius:50%;background:var(--ok);box-shadow:0 0 0 4px var(--ok-soft)}.clock__dot--paused{background:var(--warn);box-shadow:0 0 0 4px var(--warn-soft)}.clock__actions{display:flex;gap:10px}.clock__actions .btn--xl{flex:1}.btn--xl{height:54px;font-size:17px;border-radius:14px}.clock__note{margin:0;font-size:13.5px;color:var(--muted);display:inline-flex;align-items:center;gap:6px}.banner{display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding:12px 14px;border-radius:14px;background:var(--surface);border:1px solid var(--line);box-shadow:var(--shadow);font-size:14px}.banner>svg{color:var(--accent-ink);flex:none}.banner--update{border-color:var(--accent)}.banner--update>span{flex:1;min-width:160px}.banner__text{flex:1;min-width:180px;display:flex;flex-direction:column}.banner__text span{color:var(--muted);font-size:13px}.banner__actions{display:flex;gap:8px}.toast{display:flex;align-items:center;gap:14px}.toast__undo{border:0;background:transparent;color:var(--accent);font-weight:750;font-size:14px;padding:4px 2px}:root:not([data-theme=dark]) .toast__undo{color:#f5b31c}[data-theme=dark] .toast__undo{color:#8a5a00}.editor__swipe{display:flex;flex-direction:column;gap:14px}.quickfill{display:flex;flex-direction:column;gap:6px}.quickfill__label{font-size:12.5px;font-weight:650;color:var(--muted);text-transform:uppercase;letter-spacing:.04em}.quickfill__list{display:flex;gap:8px;overflow-x:auto;padding-bottom:2px;scrollbar-width:none}.quickfill__list::-webkit-scrollbar{display:none}.qchip{flex:none;display:flex;flex-direction:column;align-items:flex-start;gap:1px;text-align:left;padding:9px 12px;border-radius:12px;border:1px solid var(--accent-soft-2);background:var(--accent-soft);max-width:240px}.qchip strong{font-size:14px;display:inline-flex;align-items:center;gap:5px}.qchip span{font-size:12px;color:var(--ink-2);white-space:nowrap}.qchip--ghost{background:var(--surface);border-color:var(--line-strong)}.nextday{margin-top:-4px;padding:8px 12px;border-radius:12px;border:1px dashed transparent}.nextday.is-on{background:var(--accent-soft)}.nextday.is-suggested:not(.is-on){border-color:var(--warn-line);background:var(--warn-soft)}.switch__text{display:flex;flex-direction:column;line-height:1.2}.switch__hint{font-size:12px;font-weight:450;color:var(--muted)}.pauserow{display:flex;flex-direction:column;gap:6px}.pauserow+.pauserow{padding-top:10px;border-top:1px dashed var(--line-strong)}.pauserow__head{font-size:12.5px;font-weight:700;color:var(--ink-2)}.pauserow__remove{align-self:flex-end;border:0;background:transparent;color:var(--danger);font-size:13px;font-weight:600;display:inline-flex;align-items:center;gap:4px;padding:2px 0}.pausebox__add{align-self:flex-start;padding:4px 0}.editor__actions{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap}.editor__swipehint{margin:0;text-align:center}.app--desktop .editor__swipehint{display:none}@media(hover:hover)and (pointer:fine){.editor__swipehint{display:none}}.namebox{display:flex;gap:8px;flex-wrap:wrap;align-items:center}.namebox input{flex:1;min-width:160px;height:38px;padding:0 10px;border:1px solid var(--line-strong);border-radius:10px;background:var(--surface);font-size:16px}.tpl-list{list-style:none;margin:0;padding:0}.tpl-list li{display:flex;align-items:center;gap:8px;padding:8px 0;border-bottom:1px solid var(--line)}.tpl-list li:last-child{border-bottom:0}.tpl-list__text{flex:1;display:flex;flex-direction:column}.cellwrap{display:flex;align-items:center;gap:4px}.tag--link{border:0;cursor:pointer;background:var(--accent-soft);color:var(--accent-ink)}.viewswitch{display:inline-grid;grid-template-columns:repeat(3,auto);gap:2px;padding:3px;background:var(--surface-2);border:1px solid var(--line);border-radius:11px;margin-left:auto}.viewswitch__item{height:30px;padding:0 12px;border:0;border-radius:8px;background:transparent;font-size:13.5px;font-weight:650;color:var(--ink-2)}.viewswitch__item.is-active{background:var(--accent);color:var(--on-accent);box-shadow:0 1px 3px #0000001f}.viewswitch+.save{margin-left:8px}.app--desktop .topbar__month{display:flex;align-items:center;gap:16px}.app--desktop .topbar__month .viewswitch{margin-left:0}.app--desktop .topbar__month .monthnav{flex:1;max-width:560px}.save__dot{display:inline-block;width:8px;height:8px;border-radius:50%;background:var(--muted);animation:none}@media(max-width:380px){.viewswitch__item{padding:0 9px;font-size:13px}}.periodnav__label{position:relative;flex:1;min-width:0;height:44px;border-radius:var(--radius-sm);display:flex;flex-direction:column;align-items:center;justify-content:center;line-height:1.15}.periodnav__main{display:inline-flex;align-items:center;gap:4px;font-size:17px;font-weight:700;letter-spacing:-.01em;white-space:nowrap}.periodnav__sub{font-size:12px;color:var(--muted);font-weight:550}.periodnav__picker{position:absolute;inset:0;width:100%;height:100%;opacity:0;cursor:pointer;border:0;-webkit-appearance:none;appearance:none;font-size:16px}.periodnav__picker::-webkit-calendar-picker-indicator{position:absolute;inset:0;width:auto;height:auto;cursor:pointer}.periodnav__label:hover{background:var(--hover)}.strip{display:grid;grid-template-columns:repeat(7,1fr);gap:5px}.strip__day{display:flex;flex-direction:column;align-items:center;gap:1px;padding:7px 0 6px;border-radius:12px;border:1px solid var(--line);background:var(--surface);min-width:0}.strip__day.is-weekend{background:var(--weekend)}.strip__wd{font-size:11px;font-weight:700;color:var(--muted)}.strip__num{font-size:17px;font-weight:700}.strip__val{font-size:10.5px;font-weight:650;min-height:14px;color:var(--ink-2);font-variant-numeric:tabular-nums;white-space:nowrap}.strip__day.state--complete .strip__val{color:var(--accent-ink)}.strip__day.state--incomplete .strip__val,.strip__day.state--invalid .strip__val{color:var(--warn);font-weight:800}.strip__day.is-today{border-color:var(--accent)}.strip__day.is-selected{background:var(--accent);border-color:var(--accent)}.strip__day.is-selected .strip__wd,.strip__day.is-selected .strip__num,.strip__day.is-selected .strip__val{color:var(--on-accent)}.daydetail{display:flex;flex-direction:column;gap:12px}.daydetail__head{display:flex;align-items:center;justify-content:space-between;gap:8px}.daydetail__head .card__title,.daydetail__empty{margin:0}.daydetail__grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:0}.daydetail__grid>div{background:var(--surface-2);border-radius:12px;padding:10px 12px}.daydetail__grid dt{font-size:12px;color:var(--muted);font-weight:600}.daydetail__grid dd{margin:2px 0 0;font-size:20px;font-weight:700;font-variant-numeric:tabular-nums}.daydetail__grid dd small{font-size:13px;font-weight:600;color:var(--accent-ink)}.daydetail__wide{grid-column:1 / -1}.daydetail__wide dd{font-size:15px;display:flex;flex-wrap:wrap;gap:6px 12px;align-items:baseline}.daydetail__pause{font-variant-numeric:tabular-nums}.daydetail__total{display:flex;align-items:baseline;justify-content:space-between;padding:12px 14px;border-radius:12px;background:var(--accent-soft)}.daydetail__total span{font-weight:600;color:var(--ink-2)}.daydetail__total strong{font-size:28px;font-variant-numeric:tabular-nums;color:var(--accent-ink)}.daydetail__comment{margin:0;font-style:italic;color:var(--ink-2)}.weekview__note{display:flex;align-items:center;gap:6px;margin:0}.weekview{margin-top:0}.segmented--mini{display:inline-grid;grid-template-columns:repeat(2,auto)}.segmented--mini .segmented__item{height:30px;padding:0 12px;font-size:13px;display:inline-flex;align-items:center;gap:5px}.cal{padding:10px 8px 12px}.cal__grid{display:grid;grid-template-columns:26px repeat(7,1fr);gap:4px;margin-bottom:4px}.cal__grid--head{margin-bottom:6px}.cal__head{text-align:center;font-size:12px;font-weight:700;color:var(--muted)}.cal__head.is-weekend{color:var(--ink-2)}.cal__wk{font-size:10px;font-weight:700;color:var(--muted);display:flex;align-items:center;justify-content:center}.cal__cell{aspect-ratio:1 / 1.08;min-width:0;border-radius:10px;border:1px solid var(--line);background:var(--surface);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;padding:2px}.cal__cell.is-out{border:0;background:transparent;color:var(--line-strong);font-size:12px}.cal__cell.is-weekend{background:var(--weekend)}.cal__num{font-size:15px;font-weight:700;line-height:1}.cal__val{font-size:10.5px;font-weight:700;line-height:1.1;font-variant-numeric:tabular-nums;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}.cal__cell.state--complete{background:var(--accent-soft);border-color:var(--accent-soft-2)}.cal__cell.state--complete .cal__val{color:var(--accent-ink)}.cal__cell.state--incomplete,.cal__cell.state--invalid{background:var(--warn-soft);border-color:var(--warn-line)}.cal__cell.state--incomplete .cal__val,.cal__cell.state--invalid .cal__val{color:var(--warn)}.cal__cell.state--off .cal__val{color:var(--muted);font-weight:600}.cal__cell.is-today{box-shadow:0 0 0 2px var(--accent);border-color:var(--accent)}.cal__cell:active{transform:scale(.97)}.cal__legend{display:flex;gap:14px;flex-wrap:wrap;justify-content:center;margin-top:8px;font-size:12px;color:var(--muted)}.cal__legend span{display:inline-flex;align-items:center;gap:5px}.lg{width:10px;height:10px;border-radius:3px;display:inline-block}.lg--complete{background:var(--accent-soft-2);border:1px solid var(--accent)}.lg--pending{background:var(--warn-soft);border:1px solid var(--warn)}.lg--off{background:var(--surface-2);border:1px solid var(--line-strong)}.app--desktop .cal__cell{aspect-ratio:auto;height:74px}.app--desktop .cal__num{font-size:17px}.app--desktop .cal__val{font-size:13px}.accent{color:var(--accent-ink);font-weight:700}.cal__cell.state--running{background:var(--accent-soft);border-color:var(--accent);border-style:dashed}.cal__cell.state--running .cal__val{color:var(--accent-ink)}.cal__cell.state--incomplete .cal__val,.cal__cell.state--invalid .cal__val{font-size:14px;font-weight:900}.cal__cell.state--running .cal__val{font-size:12px}.filecard{display:flex;align-items:center;gap:12px;padding:12px;border-radius:14px;background:var(--surface-2);border:1px solid var(--line)}.filecard__icon{width:44px;height:44px;border-radius:12px;display:grid;place-items:center;background:var(--accent);color:var(--on-accent);flex:none}.filecard__text{display:flex;flex-direction:column;min-width:0}.filecard__text strong{font-size:14.5px;overflow-wrap:anywhere}.exportactions{display:flex;flex-direction:column;gap:10px}.exportactions .linkish{align-self:center;padding:2px 0}.tip p{margin:0 0 6px}.tip p:last-child{margin:0}.folderrow{display:flex;gap:12px;align-items:flex-start}.folderrow>svg{color:var(--accent-ink);flex:none;margin-top:2px}.folderrow__text{display:flex;flex-direction:column;gap:2px}.segmented--theme{grid-template-columns:2fr 1fr 1fr}.segmented--theme .segmented__item{height:40px;display:inline-flex;align-items:center;justify-content:center;font-size:14px}:root{--t-travail: #f5b31c;--t-travail-soft: rgba(245, 179, 28, .16);--t-repos: #64748b;--t-repos-soft: rgba(100, 116, 139, .14);--t-conge: #16a34a;--t-conge-soft: rgba(22, 163, 74, .14);--t-ferie: #db2777;--t-ferie-soft: rgba(219, 39, 119, .13);--t-absence: #0e7490;--t-absence-soft: rgba(14, 116, 144, .14);--t-weekend: #a0522d;--t-weekend-soft: rgba(160, 82, 45, .13);--oncall: #7c3aed;--oncall-soft: rgba(124, 58, 237, .14);--oncall-ink: #6d28d9}:root[data-theme=dark]{--t-travail-soft: rgba(245, 179, 28, .2);--t-repos: #94a3b8;--t-repos-soft: rgba(148, 163, 184, .16);--t-conge: #4ade80;--t-conge-soft: rgba(74, 222, 128, .15);--t-ferie: #f472b6;--t-ferie-soft: rgba(244, 114, 182, .16);--t-absence: #22d3ee;--t-absence-soft: rgba(34, 211, 238, .14);--t-weekend: #e0a07a;--t-weekend-soft: rgba(224, 160, 122, .15);--oncall: #a78bfa;--oncall-soft: rgba(167, 139, 250, .2);--oncall-ink: #c4b5fd}.daycard.type--repos .daycard__date,.cal__cell.type--repos,.strip__day.type--repos{background:var(--t-repos-soft);border-color:color-mix(in srgb,var(--t-repos) 35%,transparent)}.daycard.type--conge .daycard__date,.cal__cell.type--conge,.strip__day.type--conge{background:var(--t-conge-soft);border-color:color-mix(in srgb,var(--t-conge) 35%,transparent)}.daycard.type--ferie .daycard__date,.cal__cell.type--ferie,.strip__day.type--ferie{background:var(--t-ferie-soft);border-color:color-mix(in srgb,var(--t-ferie) 35%,transparent)}.daycard.type--absence .daycard__date,.cal__cell.type--absence,.strip__day.type--absence{background:var(--t-absence-soft);border-color:color-mix(in srgb,var(--t-absence) 35%,transparent)}.daycard.type--travail.state--complete .daycard__date{background:var(--t-travail-soft);border-color:color-mix(in srgb,var(--t-travail) 40%,transparent)}.cal__cell.type--conge .cal__val{color:var(--t-conge)}.cal__cell.type--ferie .cal__val{color:var(--t-ferie)}.cal__cell.type--absence .cal__val{color:var(--t-absence)}.cal__cell.type--repos .cal__val{color:var(--t-repos)}.daycard.is-oncall .daycard__date,.cal__cell.is-oncall,.strip__day.is-oncall{background:var(--oncall-soft);border-color:color-mix(in srgb,var(--oncall) 55%,transparent);border-style:solid}.daycard.is-oncall .daycard__wd,.cal__cell.is-oncall .cal__val{color:var(--oncall-ink)}.strip__day.is-oncall.is-selected{background:var(--oncall);border-color:var(--oncall)}.strip__day.is-oncall.is-selected .strip__wd,.strip__day.is-oncall.is-selected .strip__num,.strip__day.is-oncall.is-selected .strip__val{color:#fff}.cal__cell{position:relative}.cal__oncall{position:absolute;top:3px;right:4px;font-size:9px;font-weight:800;color:#fff;background:var(--oncall);width:14px;height:14px;border-radius:4px;display:grid;place-items:center;line-height:1}.oncall-badge{flex:none;align-self:center;font-size:11px;font-weight:750;color:var(--oncall-ink);background:var(--oncall-soft);border:1px solid color-mix(in srgb,var(--oncall) 40%,transparent);padding:2px 7px;border-radius:8px;margin-left:-4px}.oncall-badge--sm{margin-left:6px;padding:0 5px;font-size:10px}.oncall-text{color:var(--oncall-ink);font-weight:650}.tag--oncall{background:var(--oncall-soft);color:var(--oncall-ink)}.oncall-banner{display:flex;align-items:center;gap:6px;padding:8px 12px;border-radius:10px;background:var(--oncall-soft);color:var(--oncall-ink);font-weight:650;font-size:14px}.oncallbox{padding:8px 12px;border-radius:12px;border:1px solid var(--line)}.oncallbox.is-on{background:var(--oncall-soft);border-color:color-mix(in srgb,var(--oncall) 45%,transparent)}.oncallbox .switch input:checked+.switch__track{background:var(--oncall)}.dtable tr.is-oncall td{background:var(--oncall-soft)!important}.typedot{display:inline-block;width:7px;height:7px;border-radius:50%;margin-right:4px;vertical-align:1px}.typedot--travail{background:var(--t-travail)}.typedot--repos{background:var(--t-repos)}.typedot--conge{background:var(--t-conge)}.typedot--ferie{background:var(--t-ferie)}.typedot--absence{background:var(--t-absence)}.lg--repos{background:var(--t-repos-soft);border:1px solid var(--t-repos)}.lg--conge{background:var(--t-conge-soft);border:1px solid var(--t-conge)}.lg--ferie{background:var(--t-ferie-soft);border:1px solid var(--t-ferie)}.lg--absence{background:var(--t-absence-soft);border:1px solid var(--t-absence)}.lg--oncall{background:var(--oncall-soft);border:1px solid var(--oncall)}@media(max-width:380px){.segmented__item .typedot{display:none}}.cal__oncall{top:2px;right:2px;width:12px;height:12px;font-size:8px;border-radius:3px}.daycard.is-today .daycard__date{background:var(--accent-soft);border-color:var(--accent);box-shadow:0 0 0 1.5px var(--accent)}.daycard.is-today .daycard__wd{color:var(--accent-ink)}.daycard.is-today .daycard__d{color:var(--ink)}.strip__day.is-selected{background:var(--accent-soft);border-color:var(--accent);box-shadow:0 0 0 2px var(--accent)}.strip__day.is-selected .strip__wd{color:var(--accent-ink)}.strip__day.is-selected .strip__num{color:var(--ink)}.strip__day.is-selected .strip__val{color:var(--accent-ink)}.strip__day.type--travail.state--complete{background:var(--t-travail-soft);border-color:color-mix(in srgb,var(--t-travail) 40%,transparent)}.daycard.type--repos .daycard__date,.strip__day.type--repos,.cal__cell.type--repos{background:var(--t-repos-soft)}.daycard.type--conge .daycard__date,.strip__day.type--conge,.cal__cell.type--conge{background:var(--t-conge-soft)}.daycard.type--ferie .daycard__date,.strip__day.type--ferie,.cal__cell.type--ferie{background:var(--t-ferie-soft)}.daycard.type--absence .daycard__date,.strip__day.type--absence,.cal__cell.type--absence{background:var(--t-absence-soft)}.daycard.is-today.type--repos .daycard__date,.strip__day.is-selected.type--repos,.cal__cell.is-today.type--repos{border-color:var(--t-repos);box-shadow:0 0 0 2px var(--t-repos)}.daycard.is-today.type--conge .daycard__date,.strip__day.is-selected.type--conge,.cal__cell.is-today.type--conge{border-color:var(--t-conge);box-shadow:0 0 0 2px var(--t-conge)}.daycard.is-today.type--ferie .daycard__date,.strip__day.is-selected.type--ferie,.cal__cell.is-today.type--ferie{border-color:var(--t-ferie);box-shadow:0 0 0 2px var(--t-ferie)}.daycard.is-today.type--absence .daycard__date,.strip__day.is-selected.type--absence,.cal__cell.is-today.type--absence{border-color:var(--t-absence);box-shadow:0 0 0 2px var(--t-absence)}.daycard.is-oncall .daycard__date,.strip__day.is-oncall,.cal__cell.is-oncall{background:var(--oncall-soft);border-color:color-mix(in srgb,var(--oncall) 55%,transparent)}.daycard.is-today.is-oncall .daycard__date,.strip__day.is-oncall.is-selected,.cal__cell.is-today.is-oncall{background:var(--oncall-soft);border-color:var(--oncall);box-shadow:0 0 0 2px var(--oncall)}.daycard.is-oncall .daycard__wd,.strip__day.is-oncall .strip__wd,.strip__day.is-oncall .strip__val,.strip__day.is-oncall.is-selected .strip__wd,.strip__day.is-oncall.is-selected .strip__val{color:var(--oncall-ink)}.strip__day.is-oncall.is-selected .strip__num{color:var(--ink)}.cal__cell.is-today.is-oncall .cal__val{color:var(--oncall-ink)}.daydetail.type--oncall{box-shadow:var(--shadow),inset 0 3px 0 var(--oncall)}.clock.clock--oncall{background:linear-gradient(var(--oncall-soft),var(--oncall-soft)),var(--surface);border-color:color-mix(in srgb,var(--oncall) 55%,transparent)}.clock.clock--oncall.clock--working{box-shadow:var(--shadow),0 0 0 3px var(--oncall-soft)}.clock--oncall .clock__eyebrow{color:var(--oncall-ink)}.daycard.is-oncall{background:linear-gradient(90deg,var(--oncall-soft),transparent 70%),var(--surface)}.daycard__holiday{font-size:12.5px;font-weight:650;color:var(--t-ferie)}.holiday-banner{padding:8px 12px;border-radius:10px;background:var(--t-ferie-soft);color:var(--t-ferie);font-weight:650;font-size:14px}.tabbar{grid-template-columns:none;grid-auto-flow:column;grid-auto-columns:1fr}.tabbar__item span{white-space:nowrap}@media(max-width:380px){.tabbar__item{font-size:10px}}.settings-switch{margin-top:12px;padding-top:12px;border-top:1px solid var(--line);display:flex;width:100%}:root{--c-travail: #d18f00;--c-astreinte: #7c3aed;--c-conge: #1e9e4a;--c-repos: #4f6bb8;--c-ferie: #e0457b;--c-absence: #0e94c4;--c-weekend: #a0522d;--c-muted: #d9d6cc;--chart-grid: #ece9e2}:root[data-theme=dark]{--c-travail: #b88312;--c-astreinte: #9070ee;--c-conge: #2ca557;--c-repos: #6683d4;--c-ferie: #db5687;--c-absence: #1d98c0;--c-weekend: #b8693f;--c-muted: #3b3b39;--chart-grid: #262626}.c--travail{background:var(--c-travail)}.c--astreinte{background:var(--c-astreinte)}.c--conge{background:var(--c-conge)}.c--repos{background:var(--c-repos)}.c--ferie{background:var(--c-ferie)}.c--absence{background:var(--c-absence)}.c--weekend{background:var(--c-weekend)}.dash{display:flex;flex-direction:column;gap:14px}.dash__hero{display:flex;flex-direction:column;gap:4px}.dash__eyebrow{font-size:12.5px;font-weight:650;color:var(--muted);text-transform:uppercase;letter-spacing:.04em}.dash__hero-value{font-size:56px;font-weight:750;letter-spacing:-.03em;line-height:1.05;color:var(--ink)}.dash__warn{align-self:flex-start;margin-top:8px;display:inline-flex;align-items:center;gap:6px;border:1px solid var(--warn-line);background:var(--warn-soft);color:var(--warn-ink);border-radius:10px;padding:6px 10px;font-size:13px;font-weight:600}.delta{font-size:13.5px;font-weight:600;color:var(--ink-2)}.delta__vs{font-weight:450;color:var(--muted)}.dash__tiles{display:grid;grid-template-columns:1fr 1fr;gap:10px}.tile{background:var(--surface);border-radius:var(--radius);box-shadow:var(--shadow);padding:12px 14px;display:flex;flex-direction:column;gap:2px;min-width:0}.tile__label{font-size:12.5px;color:var(--muted);font-weight:600;display:inline-flex;align-items:center;gap:6px}.tile__value{font-size:26px;font-weight:720;letter-spacing:-.02em;color:var(--ink)}.tile__sub{font-size:12px;color:var(--muted)}.tile .delta{font-size:12px}.dash__cardhead{display:flex;align-items:baseline;justify-content:space-between;gap:8px;flex-wrap:wrap;margin-bottom:6px}.dash__cardhead .card__title{margin:0}.dash__minis{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:8px;padding-top:10px;border-top:1px solid var(--line)}.dash__minis>div{display:flex;flex-direction:column;min-width:0}.dash__minis span{font-size:11.5px;color:var(--muted);font-weight:600}.dash__minis strong{font-size:17px;color:var(--ink)}.dash__minis small{font-size:11px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.chart{position:relative}.chart__svg{width:100%;height:auto;display:block;overflow:visible}.chart__grid{stroke:var(--chart-grid);stroke-width:1}.chart__tick{font-size:9.5px;fill:var(--muted);font-variant-numeric:tabular-nums}.chart__x{font-size:10.5px;fill:var(--muted);font-weight:600}.chart__x.is-accent{fill:var(--ink);font-weight:800}.chart__value{font-size:10px;fill:var(--ink-2);font-weight:700}.chart__bar{fill:var(--c-muted);transition:opacity .15s}.chart__bar.is-accent{fill:var(--c-travail)}.chart__bar.is-hover{opacity:.8}.chart__hit{fill:transparent;cursor:pointer;outline:none}.chart__hit:focus-visible{stroke:var(--accent-ink);stroke-width:1.5}.chart__tip{position:absolute;top:0;transform:translate(-50%);pointer-events:none;background:var(--toast-bg);color:var(--toast-ink);border-radius:8px;padding:5px 9px;display:flex;flex-direction:column;align-items:center;font-size:11.5px;white-space:nowrap;box-shadow:var(--shadow-lg)}.chart__tip strong{font-size:14px}.kindbar{display:flex;gap:2px;height:28px;border-radius:6px;overflow:hidden}.kindbar__part{min-width:6px;display:flex;align-items:center;padding-left:6px;border-radius:4px;cursor:pointer;outline:none}.kindbar__part.is-hover,.kindbar__part:focus-visible{filter:brightness(1.08);box-shadow:inset 0 0 0 2px #fff9}.kindbar__label{font-size:12px;font-weight:700;color:#fff;white-space:nowrap}.kindbar__part.c--travail .kindbar__label{color:#0b0b0b}.kindbar__tip{margin:8px 0 0;font-size:13px;color:var(--ink-2)}.legend{list-style:none;margin:10px 0 0;padding:0;display:flex;flex-wrap:wrap;gap:6px 14px;font-size:12.5px;color:var(--ink-2)}.legend li{display:inline-flex;align-items:center;gap:6px}.legend__sw{width:10px;height:10px;border-radius:3px;display:inline-block}.cmp{width:100%;border-collapse:collapse;font-size:13.5px}.cmp th,.cmp td{padding:7px 4px;border-bottom:1px solid var(--line);text-align:right;font-variant-numeric:tabular-nums}.cmp thead th{font-size:11.5px;text-transform:uppercase;letter-spacing:.03em;color:var(--muted);font-weight:650}.cmp th[scope=row],.cmp thead th:first-child{text-align:left;font-weight:550;color:var(--ink-2)}.cmp tbody tr:last-child th,.cmp tbody tr:last-child td{border-bottom:0}.app--desktop .dash{display:grid;grid-template-columns:1fr 1fr;align-items:start}.app--desktop .dash__hero,.app--desktop .dash__tiles{grid-column:span 1}.app--desktop .dash__tiles{grid-template-columns:1fr 1fr}.data-head{display:flex;align-items:baseline;justify-content:space-between;gap:8px;flex-wrap:wrap;margin-bottom:8px}.data-head .card__title{margin:0}.data-head .save{margin-left:0}.topbar__inner .viewswitch{margin-left:auto}.tl__bg{fill:transparent}.tl__row.is-weekend .tl__bg{fill:var(--weekend)}.tl__row.is-sel .tl__bg{fill:var(--accent-soft)}.tl__wd{font-size:8.5px;fill:var(--muted);font-weight:600}.tl__day{font-size:9.5px;fill:var(--ink-2);font-weight:650;font-variant-numeric:tabular-nums}.tl__row.is-today .tl__day,.tl__row.is-today .tl__wd{fill:var(--accent-ink);font-weight:800}.tl__off{font-size:8.5px;fill:var(--muted);font-style:italic}.tl__off.is-todo{fill:var(--warn);font-style:normal;font-weight:600}.tl__span{stroke:var(--muted);stroke-width:1;stroke-dasharray:2 2}.tl__bar{fill:var(--c-travail)}.tl__bar.is-oncall{fill:var(--c-astreinte)}.tl__tip{margin:8px 0 0;font-size:13px;color:var(--ink-2);min-height:2.6em;line-height:1.35}.legend__line{width:14px;height:0;border-top:1.5px dashed var(--muted);display:inline-block}.minis{display:grid;grid-template-columns:1fr 1fr;gap:12px 10px}.mini{display:flex;flex-direction:column;min-width:0;padding:10px 12px;background:var(--surface-2);border-radius:var(--radius-sm)}.mini span{font-size:11.5px;color:var(--muted);font-weight:600}.mini strong{font-size:22px;font-weight:720;letter-spacing:-.02em;color:var(--ink);font-variant-numeric:tabular-nums}.mini small{font-size:11.5px;color:var(--muted)}.pill{font-size:12px;font-weight:700;padding:3px 9px;border-radius:999px;white-space:nowrap}.pill--ok{background:var(--ok-soft);color:var(--ok)}.pill--warn{background:var(--warn-soft);color:var(--warn)}.checks{list-style:none;margin:4px 0 0;padding:0}.check{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:10px;padding:10px 0;border-bottom:1px solid var(--line)}.check:last-child{border-bottom:0}.check__icon{width:26px;height:26px;border-radius:50%;display:grid;place-items:center}.check.is-ok .check__icon{background:var(--ok-soft);color:var(--ok)}.check.is-warn .check__icon{background:var(--warn-soft);color:var(--warn)}.check__body{display:flex;flex-direction:column;min-width:0}.check__title{font-size:13.5px;font-weight:600;color:var(--ink)}.check__detail{font-size:12px;color:var(--muted)}.check.is-warn .check__detail{color:var(--warn-ink)}.check__value{font-size:16px;font-weight:720;font-variant-numeric:tabular-nums;color:var(--ink);white-space:nowrap}.linkbtn{background:none;border:0;padding:6px 0 0;color:var(--accent-ink);font-weight:650;display:inline-flex;align-items:center;gap:6px;cursor:pointer;font-size:13px}.limits-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.app--desktop .dash__full{grid-column:1 / -1}.numfield{display:flex;align-items:center;gap:6px}.numfield input{width:100%;min-width:0}.numfield__unit{font-weight:650;color:var(--muted)}.dash__hero-value--label{font-size:30px;padding:6px 0 4px;color:var(--ink-2)}.daycard.type--weekend .daycard__date,.cal__cell.type--weekend,.strip__day.type--weekend{background:var(--t-weekend-soft);border-color:color-mix(in srgb,var(--t-weekend) 35%,transparent)}.cal__cell.type--weekend .cal__val{color:var(--t-weekend)}.typedot--weekend{background:var(--t-weekend)}.lg--weekend{background:var(--t-weekend-soft);border:1px solid var(--t-weekend)}.daycard.type--weekend .daycard__date,.strip__day.type--weekend,.cal__cell.type--weekend{background:var(--t-weekend-soft)}.daycard.is-today.type--weekend .daycard__date,.strip__day.is-selected.type--weekend,.cal__cell.is-today.type--weekend{border-color:var(--t-weekend);box-shadow:0 0 0 2px var(--t-weekend)}.segmented--status{grid-template-columns:repeat(3,1fr)}.segmented--status .segmented__item{display:inline-flex;align-items:center;justify-content:center;gap:6px;height:36px}
