@font-face{font-family:Space Grotesk;font-weight:300;font-display:swap;src:url(/fonts/SpaceGrotesk-Light.ttf)format("truetype")}@font-face{font-family:Space Grotesk;font-weight:400;font-display:swap;src:url(/fonts/SpaceGrotesk-Regular.ttf)format("truetype")}@font-face{font-family:Space Grotesk;font-weight:500;font-display:swap;src:url(/fonts/SpaceGrotesk-Medium.ttf)format("truetype")}@font-face{font-family:Space Grotesk;font-weight:600;font-display:swap;src:url(/fonts/SpaceGrotesk-SemiBold.ttf)format("truetype")}@font-face{font-family:Space Grotesk;font-weight:700;font-display:swap;src:url(/fonts/SpaceGrotesk-Bold.ttf)format("truetype")}:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--ink:#244b52;--paper:#fff;--ink-muted:#244b528c;--ink-soft:#244b52bf;--ink-icon:#244b5280;--ink-half:#244b5280;--ink-placeholder:#244b5266;--ink-faint:#244b5273;--ink-disabled:#244b5233;--border:#244b52;--border-faint:#244b5240;--hairline:#244b521f;--hairline-soft:#244b5214;--divider:#244b5226;--row-hover:#244b5209;--row-pressed:#244b520f;--surface-unread:#244b520a;--surface-totals:#244b5208;--surface-inset:#244b5205;--surface-muted:#244b520f;--positive:#1f8a3b;--negative:#c8321f;--warning:#f59e0a;--abs-vacation:#3b82f5;--abs-sick:#f59e0a;--abs-parto:#ed4799;--abs-personal:#8c5cf5;--abs-other:#6b7380;--origin-system:#f59e0a;--origin-employee:#3b82f5;--origin-admin:#244b5259;--day-a:#0d9488;--day-a-soft:#0d94881f;--day-b:#4f46e5;--day-b-soft:#4f46e51f;--radius:8px;--radius-small:6px;--radius-tiny:4px;--radius-pill:28px;--bw:1px;--button-h:54px;--field-h:52px;--field-h-compact:44px;--tap:44px;--nav-pill-h:40px;--nav-bar-h:64px;--filter-bar-h:44px;--filter-control-h:32px;--list-row-h:54px;--round-button:36px;--action-tile-h:64px;--action-primary-h:58px;--day-tile-w:40px;--day-tile-h:56px;--switch-w:46px;--switch-h:28px;--switch-knob:20px;--seg-rail-h:38px;--button-h-small:36px;--toolbar-icon-w:30px;--avatar-large:96px;--avatar-medium:48px;--avatar-header:44px;--avatar-card:38px;--avatar-row:34px;--page-pad:24px;--page-top:48px;--page-bottom:40px;--content-max:1114px;--column-max:640px;--section-gap:28px;--section-gap-admin:24px;--label-gap:10px;--grid-gap:12px;--card-pad:16px;--stat-pad-v:18px;--stat-pad-h:20px;--row-pad-v:14px;--table-row-pad-v:10px;--table-row-pad-h:16px;--table-header-pad-v:12px;--font:"Space Grotesk", -apple-system, BlinkMacSystemFont, "Helvetica Neue", sans-serif;--ease-out:cubic-bezier(.2, .8, .2, 1);--ease-spring:cubic-bezier(.34, 1.4, .64, 1);--ease-css:cubic-bezier(.25, .1, .25, 1);--t-press:.14s;--t-color:.18s;--t-drop:.18s;--t-step:.3s;--t-message:.35s;--t-hero:.45s;--t-rise:.5s;--t-knob:.32s;--t-chevron:.2s;--safe-top:env(safe-area-inset-top,0px);--safe-bottom:env(safe-area-inset-bottom,0px);--safe-left:env(safe-area-inset-left,0px);--safe-right:env(safe-area-inset-right,0px)}.wide{--page-pad:40px;--page-top:40px;--section-gap-admin:28px}*,:before,:after{box-sizing:border-box}html,body,#root{height:100%}body{background:var(--paper);color:var(--ink);font-family:var(--font);-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent;text-rendering:optimizelegibility;font-variant-numeric:tabular-nums;margin:0;font-size:16px;line-height:1.28}button,input,select,textarea{font:inherit;color:inherit}button{cursor:pointer;background:0 0;border:0;padding:0}button:disabled{cursor:default}a{color:inherit;text-decoration:none}p,h1,h2,h3{margin:0}input::placeholder,textarea::placeholder{color:var(--ink-placeholder);opacity:1}:focus-visible{outline:2px solid var(--ink);outline-offset:2px}.hscroll{scrollbar-width:none;overflow-x:auto}.hscroll::-webkit-scrollbar{display:none}.sr-only{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}@keyframes riseIn{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes drop{0%{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:none}}@keyframes pulse{0%{background:#244b521c}to{background:#244b520d}}@keyframes shake{0%,to{transform:translate(0)}16%{transform:translate(8px)}33%{transform:translate(-8px)}50%{transform:translate(8px)}66%{transform:translate(-8px)}83%{transform:translate(4px)}}@keyframes spin{to{transform:rotate(360deg)}}@keyframes sheetUp{0%{transform:translateY(100%)}to{transform:none}}@keyframes modalIn{0%{opacity:0;transform:translateY(12px)scale(.98)}to{opacity:1;transform:none}}@keyframes dots{0%,80%,to{opacity:.2}40%{opacity:1}}.rise{animation:riseIn var(--t-rise) var(--ease-out) both}.fade{animation:fadeIn .3s var(--ease-out) both}.drop{animation:drop var(--t-drop) var(--ease-css) both}.shake{animation:.5s linear shake}.press{transition:transform var(--t-press) var(--ease-out)}.press:active:not(:disabled){transform:scale(.96)}.press-soft{transition:transform var(--t-press) var(--ease-out)}.press-soft:active:not(:disabled){transform:scale(.97)}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.001ms!important;animation-duration:.001ms!important;animation-delay:0s!important}}.spinner{border:2px solid;border-right-color:#0000;border-radius:50%;flex:none;width:16px;height:16px;animation:.7s linear infinite spin}.label{letter-spacing:.12em;text-transform:uppercase;color:var(--ink);font-size:13px;font-weight:300}.caption{color:var(--ink-muted);font-size:13px;font-weight:300}.caption-small{color:var(--ink-muted);font-size:12px;font-weight:300}.muted{color:var(--ink-muted)}.title{letter-spacing:-.01em;font-size:24px;font-weight:600}.wide .title-page{font-size:32px}.step-title{letter-spacing:-.01em;font-size:20px;font-weight:600}.title-small{letter-spacing:-.01em;font-size:22px;font-weight:600}.body{font-size:16px}.value{font-size:15px;font-weight:500}.row-name{font-size:14px;font-weight:500}.cell{font-size:14px}.positive{color:var(--positive)}.negative{color:var(--negative)}.btn{height:var(--button-h);border-radius:var(--radius);letter-spacing:.12em;text-transform:uppercase;white-space:nowrap;background:var(--ink);color:var(--paper);border:var(--bw) solid var(--ink);transition:transform var(--t-press) var(--ease-out), background var(--t-color), color var(--t-color), border-color var(--t-color);justify-content:center;align-items:center;gap:10px;padding:0 28px;font-size:16px;font-weight:500;display:inline-flex}.btn:active:not(:disabled){transform:scale(var(--press-scale,.96))}.btn.fills{width:100%;padding:0}.btn.secondary{background:var(--paper);color:var(--ink)}.btn.compact{height:var(--field-h-compact);letter-spacing:.1em;gap:8px;padding:0 18px;font-size:13px}.btn.small{height:var(--button-h-small);letter-spacing:.1em;gap:8px;padding:0 14px;font-size:12px}.btn.fills.compact,.btn.fills.small{padding:0}.btn:disabled:not(.loading){background:var(--paper);color:var(--ink-disabled);border-color:var(--border-faint)}.btn>.btn-text{padding-left:.12em}.btn.compact>.btn-text,.btn.small>.btn-text{padding-left:.1em}.card{background:var(--paper);border:var(--bw) solid var(--border);border-radius:var(--radius);padding:var(--card-pad);flex-direction:column;min-width:0;display:flex;overflow:hidden}.card.rows{padding:0 var(--card-pad)}.card.flush{padding:0}.sep{background:var(--hairline);flex:none;height:1px}.sep.row{background:var(--hairline-soft)}.sep.rule{background:var(--border)}.sep.bleed{margin:0 calc(-1 * var(--card-pad))}.section{gap:var(--label-gap);flex-direction:column;min-width:0;display:flex}.section-head{justify-content:space-between;align-items:baseline;gap:8px;display:flex}.data-row{padding:var(--row-pad-v) 0;align-items:center;gap:12px;display:flex;position:relative}.data-row.hl:before{content:"";inset:0 calc(-1 * var(--card-pad));background:var(--ink);z-index:0;position:absolute}.data-row>*{z-index:1;position:relative}.data-row .dr-main{flex-direction:column;flex:1;gap:3px;min-width:0;display:flex}.data-row .dr-title{align-items:center;gap:8px;font-size:16px;display:flex}.data-row.kv .dr-title{color:var(--ink-muted);font-size:14px;font-weight:300}.data-row.hl .dr-title{color:var(--paper);font-weight:600}.data-row .dr-sub{color:var(--ink-muted);font-size:13px;font-weight:300}.data-row.hl .dr-sub{color:#ffffffb3}.data-row .dr-value{white-space:nowrap;font-size:15px;font-weight:500}.data-row.hl .dr-value{color:var(--paper)}.dr-badge{letter-spacing:.1em;text-transform:uppercase;border:1px solid var(--border-faint);border-radius:var(--radius-tiny);color:var(--ink-muted);padding:2px 6px;font-size:11px;font-weight:300}.data-row.hl .dr-badge{border-color:var(--paper);color:var(--paper)}.list-row{height:var(--list-row-h);text-align:left;align-items:center;gap:12px;width:100%;font-size:16px;display:flex;position:relative}.list-row:before{content:"";inset:0 calc(-1 * var(--card-pad));transition:background var(--t-color);background:0 0;position:absolute}.list-row:active:before{background:var(--row-pressed)}@media (hover:hover){.list-row:hover:before{background:var(--row-hover)}}.list-row>*{position:relative}.list-row .lr-title{flex:1;min-width:0}.list-row .lr-value{color:var(--ink-muted);white-space:nowrap;text-overflow:ellipsis;font-size:14px;font-weight:300;overflow:hidden}.field{flex-direction:column;gap:8px;min-width:0;display:flex}.field.compact{gap:6px}.field.compact>.label{font-size:11px}.field-box{height:var(--field-h);border:var(--bw) solid var(--border);border-radius:var(--radius);background:var(--paper);box-shadow:0 0 0 0 var(--ink);transition:box-shadow var(--t-color);align-items:center;padding:0 4px 0 14px;display:flex}.field-box:focus-within{box-shadow:inset 0 0 0 1px var(--ink)}.field.compact .field-box{height:var(--field-h-compact);padding-left:12px}.field-box input,.field-box textarea,.field-box select{background:0 0;border:0;outline:0;flex:1;min-width:0;height:100%;padding:0;font-size:16px}.field.compact .field-box input{font-size:14px}.field-box.area{height:auto;padding:12px 14px}.field-box.area textarea{resize:vertical;min-height:88px;line-height:1.4}.field-button{width:var(--tap);height:var(--tap);flex:none;place-items:center;display:grid}.field-prefix{color:var(--ink);margin-right:8px;font-size:16px}.select-box{height:var(--field-h);border:var(--bw) solid var(--border);border-radius:var(--radius);text-align:left;align-items:center;gap:12px;width:100%;padding:0 14px;font-size:16px;display:flex}.field.compact .select-box{height:var(--field-h-compact);padding:0 12px;font-size:14px}.select-box .sb-text{white-space:nowrap;text-overflow:ellipsis;flex:1;min-width:0;overflow:hidden}.select-box .sb-text.placeholder{color:var(--ink-placeholder)}.date-box{position:relative}.date-box input{opacity:0;cursor:pointer;border:0;width:100%;height:100%;position:absolute;inset:0}.date-box input::-webkit-calendar-picker-indicator{opacity:0;cursor:pointer;width:100%;height:100%;position:absolute;inset:0}.toggle-row{text-align:left;width:100%;min-height:var(--list-row-h);align-items:center;gap:12px;display:flex}.toggle-row .tr-label{flex:1;min-width:0}.switch{width:var(--switch-w);height:var(--switch-h);border:1px solid var(--border);background:var(--paper);transition:background var(--t-color);border-radius:14px;flex:none;position:relative}.switch:after{content:"";width:var(--switch-knob);height:var(--switch-knob);background:var(--ink);transition:transform var(--t-knob) var(--ease-spring), background var(--t-color);border-radius:50%;position:absolute;top:3px;left:3px}.switch.on{background:var(--ink)}.switch.on:after{background:var(--paper);transform:translate(18px)}.segmented{border:1px solid var(--border);border-radius:var(--radius);gap:3px;padding:4px;display:flex;position:relative}.seg-pill{border-radius:var(--radius-small);background:var(--ink);z-index:0;transition:transform .2s ease-in-out,width .2s ease-in-out;position:absolute;top:4px;bottom:4px;left:0}.seg-opt{z-index:1;letter-spacing:.08em;text-transform:uppercase;white-space:nowrap;flex:1;height:38px;padding:0 10px;font-size:12px;font-weight:500;transition:color .2s ease-in-out;position:relative}.seg-opt.on{color:var(--paper)}.segrail{scrollbar-width:none;overflow-x:auto}.segrail::-webkit-scrollbar{display:none}.segrail .seg-opt{flex:1 0 auto}.kind-badge{letter-spacing:.08em;text-transform:uppercase;white-space:nowrap;border:1px solid var(--border);border-radius:var(--radius-tiny);flex:none;padding:4px 8px;font-size:11px;font-weight:500}.pill{border-radius:var(--radius-small);white-space:nowrap;border:1px solid var(--border);background:var(--ink);min-width:64px;color:var(--paper);justify-content:center;align-items:center;padding:6px 8px;font-size:12px;font-weight:500;display:inline-flex}.pill.fills{width:100%}.pill.off{background:var(--paper);color:var(--ink-half);border-color:var(--border-faint);font-weight:300}.pill.absence{background:var(--row-pressed);color:var(--ink)}.pill.hours{background:var(--paper);color:var(--ink);border-color:var(--border-faint)}.pill.empty{background:var(--paper);color:var(--ink-placeholder);border-color:var(--border-faint)}.decided{letter-spacing:.08em;text-transform:uppercase;white-space:nowrap;font-size:13px;font-weight:500}.avatar{border:1px solid var(--border);background:var(--paper);color:var(--ink);border-radius:50%;flex:none;place-items:center;font-weight:500;display:grid;position:relative;overflow:hidden}.avatar.inverted{background:var(--ink);color:var(--paper)}.avatar.on-dark{color:var(--paper);border-color:var(--paper);background:0 0}.avatar img{object-fit:cover;width:100%;height:100%;animation:fadeIn .25s var(--ease-out);position:absolute;inset:0}.tile{height:var(--action-tile-h);padding:0 var(--card-pad);border:1px solid var(--border);border-radius:var(--radius);background:var(--paper);color:var(--ink);text-align:left;letter-spacing:.02em;width:100%;transition:transform var(--t-press) var(--ease-out), background var(--t-color), color var(--t-color);align-items:center;gap:12px;font-size:14px;display:flex}.tile:active{background:var(--ink);color:var(--paper);transform:scale(.97)}@media (hover:hover){.tile:hover{background:var(--ink);color:var(--paper)}}.tile.admin{letter-spacing:0;font-weight:500}.tile.admin:active,.tile.admin:hover{background:var(--paper);color:var(--ink)}.tile-primary{height:var(--action-primary-h);background:var(--ink);width:100%;color:var(--paper);border-radius:var(--radius);letter-spacing:.12em;text-transform:uppercase;transition:transform var(--t-press) var(--ease-out);justify-content:center;align-items:center;gap:12px;font-size:14px;font-weight:500;display:flex}.tile-primary:active{transform:scale(.97)}.tile-primary.half{width:auto;padding:0 12px}.tile-primary.secondary{background:var(--paper);color:var(--ink);border:1px solid var(--border)}.live-dot{background:var(--positive);border-radius:50%;flex:none;animation:1.8s ease-in-out infinite livePulse;display:inline-block}@keyframes livePulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.45;transform:scale(1.6)}}@media (prefers-reduced-motion:reduce){.live-dot{animation:none}}.sectors-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;display:grid}.wide .sectors-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.stat{padding:var(--card-pad);border:1px solid var(--border);border-radius:var(--radius);background:var(--paper);flex-direction:column;gap:6px;min-width:0;height:100%;display:flex}.stat.admin{padding:var(--stat-pad-v) var(--stat-pad-h)}.stat .st-label{min-height:2.56em}.stat.admin .st-label{min-height:0}.stat .st-value{letter-spacing:-.02em;white-space:nowrap;text-overflow:ellipsis;font-weight:500;line-height:1;overflow:hidden}.stat .st-note{color:var(--ink-muted);min-height:1.28em;font-size:13px;font-weight:300}.grid-2{gap:var(--grid-gap);grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.grid-3{gap:var(--grid-gap);grid-template-columns:repeat(3,minmax(0,1fr));display:grid}.grid-4{gap:var(--grid-gap);grid-template-columns:repeat(4,minmax(0,1fr));display:grid}.table-card{border:1px solid var(--border);border-radius:var(--radius);background:var(--paper);overflow:hidden}.table-scroll{scrollbar-width:none;overflow-x:auto}.table-scroll::-webkit-scrollbar{display:none}.col-label{letter-spacing:.12em;text-transform:uppercase;white-space:nowrap;text-overflow:ellipsis;font-size:11px;font-weight:300;overflow:hidden}.t-head{padding:var(--table-header-pad-v) var(--table-row-pad-h)}.t-row{padding:var(--table-row-pad-v) var(--table-row-pad-h);text-align:left;width:100%;transition:background var(--t-color);display:block}.t-row.hl{background:var(--ink);color:var(--paper)}button.t-row:active{background:var(--row-pressed)}button.t-row.hl:active{background:#242424}@media (hover:hover){button.t-row:not(.hl):hover{background:var(--row-hover)}}.toolbar{height:var(--filter-bar-h);border:1px solid var(--border);border-radius:var(--radius);justify-content:space-between;align-items:center;gap:2px;min-width:0;padding:0 9px;display:flex}.toolbar>*{flex:none}.tb-divider{background:var(--divider);flex:none;width:1px;height:20px;margin:0 1px}.tb-icon{width:var(--toolbar-icon-w);height:var(--filter-control-h);border-radius:var(--radius-small);transition:transform var(--t-press) var(--ease-out);flex:none;place-items:center;display:grid;position:relative}.tb-icon:active{transform:scale(.96)}.tb-icon.filled{background:var(--ink);color:var(--paper)}.tb-icon .tb-dot{background:currentColor;border-radius:50%;width:6px;height:6px;position:absolute;top:4px;right:3px}.tb-segs{gap:2px;display:flex;position:relative}.tb-seg{height:var(--filter-control-h);border-radius:var(--radius-small);letter-spacing:.06em;text-transform:uppercase;white-space:nowrap;padding:0 7px;font-size:12px;font-weight:500;transition:background .2s ease-in-out,color .2s ease-in-out}.tb-seg.on{background:var(--ink);color:var(--paper)}.tb-period{align-items:center;gap:2px;display:flex}.tb-period .tp-label{text-align:center;white-space:nowrap;font-size:12px;font-weight:500}.tb-period button:disabled{opacity:.35}.tb-searchbox{width:100%;min-width:0;transition:gap .25s var(--ease-css);justify-content:center;align-items:center;gap:0;display:flex}.tb-searchbox.open{gap:4px}.tb-search{width:0;min-width:0;height:var(--filter-control-h);border-radius:var(--radius-small);opacity:0;transition:flex-grow .28s var(--ease-css), opacity .2s ease, padding .28s var(--ease-css);background:#244b520d;border:0;outline:0;flex:0 1 0;padding:0;font-size:13px}.tb-searchbox.open .tb-search{opacity:1;flex-grow:1;padding:0 8px}.chips{flex-wrap:wrap;gap:6px;display:flex}.chip{height:var(--filter-control-h);border:1px solid var(--border);white-space:nowrap;transition:background var(--t-color), color var(--t-color);border-radius:16px;padding:0 12px;font-size:13px}.chip.on{background:var(--ink);color:var(--paper)}.search-field{height:var(--field-h-compact);border:1px solid var(--border);border-radius:var(--radius);color:var(--ink-icon);align-items:center;gap:8px;padding:0 14px;display:flex}.search-field input{min-width:0;color:var(--ink);background:0 0;border:0;outline:0;flex:1;font-size:16px}.skeleton{border-radius:var(--radius-tiny);background:#244b521c;animation:.9s ease-in-out infinite alternate pulse}.empty-state{text-align:center;color:var(--ink-half);padding:40px;font-size:15px}.sheet-backdrop{z-index:100;background:#244b5247;justify-content:center;align-items:flex-end;animation:.2s both fadeIn;display:flex;position:fixed;inset:0}.sheet{background:var(--paper);width:100%;max-height:calc(100% - 24px - var(--safe-top));animation:sheetUp .32s var(--ease-out) both;padding-bottom:var(--safe-bottom);border-radius:20px 20px 0 0;flex-direction:column;display:flex;overflow:hidden}.sheet.medium{max-height:62%}.sheet.full{height:calc(100% - 24px - var(--safe-top))}.sheet-grip{background:#244b522e;border-radius:3px;flex:none;width:36px;height:5px;margin:6px auto 0}.sheet-body{flex:1;min-height:0;overflow-y:auto}.wide .sheet-backdrop,.sheet-backdrop.wide{align-items:center;padding:40px}.wide .sheet,.sheet-backdrop.wide .sheet{width:min(560px,100%);max-height:min(88vh,900px);animation:modalIn .28s var(--ease-out) both;border-radius:16px;height:auto}.sheet-backdrop.wide .sheet.large{width:min(720px,100%)}.sheet-backdrop.wide .sheet-grip{display:none}.sheet-head{flex:none;justify-content:space-between;align-items:center;padding:18px 20px 14px;display:flex}.page{padding:var(--page-top) calc(var(--page-pad) + var(--safe-right)) var(--page-bottom) calc(var(--page-pad) + var(--safe-left));max-width:var(--content-max);flex-direction:column;width:100%;margin:0 auto;display:flex}.compact-root .page{padding-top:max(var(--safe-top), var(--page-top) - var(--safe-top))}.page-head{margin-bottom:var(--gap);align-items:center;gap:8px;display:flex}.page-head .ph-titles{flex-direction:column;gap:2px;min-width:0;display:flex}.wide .page-head .ph-titles{gap:4px}.page-head h1{letter-spacing:-.01em;font-size:24px;font-weight:600}.wide .page-head h1{font-size:32px}.page-head .ph-sub{color:var(--ink-muted);font-size:13px;font-weight:300}.wide .page-head .ph-sub{font-size:15px}.page-head .ph-back{width:var(--tap);height:var(--tap);flex:none;place-items:center;margin-left:-12px;display:grid}.page-head .ph-trailing{align-items:center;gap:8px;margin-left:auto;display:flex}.page-content{gap:var(--gap);flex-direction:column;min-width:0;display:flex}.column{max-width:var(--column-max);width:100%}.bars{border-bottom:1px solid var(--border);align-items:flex-end;display:flex}.bar-col{flex-direction:column;flex:1;justify-content:flex-end;align-items:center;gap:6px;min-width:0;height:100%;display:flex}.bar-val{white-space:nowrap;font-size:11px}.bar{border-radius:var(--radius-tiny) var(--radius-tiny) 0 0;transform-origin:bottom;width:100%;animation:growBar .5s var(--ease-out) both}@keyframes growBar{0%{transform:scaleY(.02)}to{transform:none}}.bar-labels{display:flex}.bar-labels>div{white-space:nowrap;flex-direction:column;flex:1;align-items:center;gap:2px;min-width:0;display:flex;overflow:hidden}.bar-label{color:var(--ink-muted);font-size:11px;font-weight:300}.bar-sub{font-size:12px}.toast{left:50%;bottom:calc(24px + var(--safe-bottom));z-index:200;background:var(--ink);color:var(--paper);border-radius:var(--radius);animation:riseIn .3s var(--ease-out) both;max-width:calc(100% - 48px);padding:12px 18px;font-size:14px;position:fixed;transform:translate(-50%)}.row{align-items:center;display:flex}.col{flex-direction:column;display:flex}.grow{flex:1;min-width:0}.gap-4{gap:4px}.gap-6{gap:6px}.gap-8{gap:8px}.gap-10{gap:10px}.gap-12{gap:12px}.gap-16{gap:16px}.gap-20{gap:20px}.gap-24{gap:24px}.between{justify-content:space-between}.center{justify-content:center}.wrap{flex-wrap:wrap}.nowrap{white-space:nowrap}.ellipsis{white-space:nowrap;text-overflow:ellipsis;min-width:0;overflow:hidden}.right{text-align:right}.tabnum{font-variant-numeric:tabular-nums}.link-btn{text-underline-offset:3px;font-size:14px;text-decoration:underline}.error-text{color:var(--negative);font-size:14px}@media print{body{background:#fff}}.dialog-backdrop{z-index:150;background:#244b5247;place-items:center;padding:24px;animation:.18s both fadeIn;display:grid;position:fixed;inset:0}.dialog{background:var(--paper);border:1px solid var(--border);width:min(320px,100%);animation:modalIn .22s var(--ease-out) both;border-radius:14px;overflow:hidden}.dialog-text{text-align:center;flex-direction:column;gap:6px;padding:20px 18px 16px;display:flex}.dialog-title{font-size:17px;font-weight:600}.dialog-message{color:var(--ink-soft);font-size:14px;line-height:1.4}.dialog-actions{border-top:1px solid var(--hairline);display:flex}.dialog-actions.stacked{flex-direction:column}.dialog-btn{flex:1;height:46px;font-size:16px;font-weight:500}.dialog-actions:not(.stacked) .dialog-btn+.dialog-btn{border-left:1px solid var(--hairline)}.dialog-actions.stacked .dialog-btn+.dialog-btn{border-top:1px solid var(--hairline)}.dialog-btn.cancel{font-weight:400}.dialog-btn.destructive{color:var(--negative)}.dialog-btn:active{background:var(--row-pressed)}.login-root{min-height:100%;padding:calc(24px + var(--safe-top)) 0 calc(24px + var(--safe-bottom));flex-direction:column;align-items:center;display:flex}.login-form{flex-direction:column;gap:20px;width:100%;max-width:448px;margin:auto 0;padding:0 32px;display:flex}.wordmark{letter-spacing:.14em;margin-right:-.14em;font-size:22px;font-weight:600;display:inline-flex}.intro{background:var(--paper);cursor:pointer;z-index:10;place-items:center;display:grid;position:fixed;inset:0}.intro-stack{flex-direction:column;align-items:center;gap:18px;display:flex}.intro-word{margin-right:calc(-1 * var(--ls));letter-spacing:var(--ls);opacity:0;animation:introWord 4.2s var(--ease-out) .3s both;--ls:7.56px;font-size:54px;font-weight:700}.intro-line{background:var(--ink);width:56px;height:1px;animation:introLine 4.2s var(--ease-out) .3s both;transform:scaleX(0)}.intro-sub{letter-spacing:.08em;opacity:0;font-size:18px;font-weight:300;animation:4.2s .3s both introSub}@keyframes introWord{0%{opacity:0;letter-spacing:15.12px}20%{opacity:1;letter-spacing:7.56px}76%{opacity:1;letter-spacing:7.56px}92%,to{opacity:0;letter-spacing:12.1px}}@keyframes introLine{0%,15%{transform:scaleX(0)}41%,63%{transform:scaleX(1)}75%,to{transform:scaleX(0)}}@keyframes introSub{0%,31%{opacity:0}48%,55%{opacity:1}63%,to{opacity:0}}.topbar{z-index:50;height:var(--nav-bar-h);background:var(--paper);border-bottom:1px solid var(--hairline);align-items:center;padding:0 40px;display:flex;position:sticky;top:0}.tb-brand{border-right:1px solid var(--divider);align-items:center;gap:10px;height:32px;margin-right:10px;padding-right:18px;display:flex}.logo-mark{color:var(--ink);flex:none;display:inline-block}.tb-admin{letter-spacing:.14em;color:var(--ink-muted);font-size:9px;font-weight:300}.tb-nav{flex:1;gap:4px;min-width:0;display:flex}.nav-pill{height:var(--nav-pill-h);white-space:nowrap;transition:background var(--t-color), color var(--t-color);border-radius:20px;align-items:center;gap:8px;padding:0 14px;font-size:14px;display:inline-flex}.nav-pill.on{background:var(--ink);color:var(--paper);font-weight:500}@media (hover:hover){.nav-pill:not(.on):hover{background:var(--row-hover)}}.nav-count{background:var(--ink);min-width:20px;height:20px;color:var(--paper);border-radius:10px;place-items:center;padding:0 6px;font-size:11px;font-weight:600;display:inline-grid}.nav-pill.on .nav-count{background:var(--paper);color:var(--ink)}.tb-round{width:var(--nav-pill-h);height:var(--nav-pill-h);border-radius:50%;place-items:center;display:grid;position:relative}.tb-unread{background:var(--ink);min-width:18px;height:18px;color:var(--paper);border:2px solid var(--paper);box-sizing:content-box;font-variant-numeric:tabular-nums;border-radius:9px;place-items:center;padding:0 5px;font-size:10px;font-weight:600;line-height:1;display:grid;position:absolute;top:-2px;right:-4px}.menu-wrap{display:inline-flex;position:relative}.menu-pop{z-index:60;background:var(--paper);border:1px solid var(--border);border-radius:12px;min-width:232px;position:absolute;top:calc(100% + 6px);left:0;overflow:hidden;box-shadow:0 8px 24px #244b5214}.menu-pop.right{left:auto;right:0}.menu-pop.up{top:auto;bottom:calc(100% + 6px)}.menu-item{text-align:left;align-items:center;gap:12px;width:100%;height:44px;padding:0 14px;font-size:16px;display:flex}.menu-item+.menu-item{border-top:1px solid var(--hairline)}.menu-item:active{background:var(--row-pressed)}@media (hover:hover){.menu-item:hover{background:var(--row-hover)}}.assist-box{border:1px solid var(--border);border-radius:var(--radius-pill);background:var(--paper);align-items:flex-end;gap:8px;min-height:56px;padding:6px 6px 6px 14px;display:flex}.assist-box textarea{resize:none;background:0 0;border:0;outline:0;flex:1;min-width:0;min-height:44px;max-height:calc(6.75em + 22px);padding:11px 0;font-size:16px;line-height:1.35}.assist-send{background:var(--ink);width:44px;height:44px;color:var(--paper);transition:opacity var(--t-color), transform var(--t-press) var(--ease-out);border-radius:50%;flex:none;place-items:center;display:grid}.assist-send:disabled{opacity:.35}.assist-plus{place-items:center;width:40px;height:44px;margin-left:-8px;display:grid}.bubble-q{background:var(--ink);color:var(--paper);white-space:pre-wrap;word-break:break-word;border-radius:18px 18px 4px;padding:12px 16px;font-size:16px;line-height:1.3}.bubble-a{white-space:pre-wrap;word-break:break-word;-webkit-user-select:text;user-select:text;padding:4px 0;font-size:16px;line-height:1.45}.typing{gap:4px;padding:10px 0;display:flex}.typing span{background:var(--ink-faint);border-radius:3px;width:6px;height:6px;animation:1s ease-in-out infinite dots}.typing span:nth-child(2){animation-delay:.15s}.typing span:nth-child(3){animation-delay:.3s}.msg-in{animation:riseIn var(--t-message) ease-out both}.notif-toast{top:calc(12px + var(--safe-top));z-index:80;background:var(--paper);border:1px solid var(--border);border-radius:var(--radius);width:min(420px,100% - 32px);animation:notifIn .32s var(--ease-out) both;align-items:flex-start;display:flex;position:fixed;left:50%;transform:translate(-50%);box-shadow:0 6px 20px #244b5224}.notif-toast.at-right{animation-name:notifInRight;top:76px;left:auto;right:24px;transform:none}.notif-toast.leaving{animation:.25s ease-in both notifOut}.notif-toast-body{flex:1;align-items:flex-start;gap:12px;min-width:0;padding:12px 4px 12px 14px;display:flex}.notif-toast-title{white-space:nowrap;text-overflow:ellipsis;font-size:14px;font-weight:500;overflow:hidden}.notif-toast-text{color:var(--ink-soft);-webkit-line-clamp:2;-webkit-box-orient:vertical;font-size:13px;font-weight:300;display:-webkit-box;overflow:hidden}.notif-toast-close{width:32px;height:32px;color:var(--ink-muted);flex:none;place-items:center;margin:4px 4px 0 0;display:grid}@keyframes notifIn{0%{opacity:0;transform:translate(-50%,-16px)}to{opacity:1;transform:translate(-50%)}}@keyframes notifInRight{0%{opacity:0;transform:translateY(-16px)}to{opacity:1;transform:none}}@keyframes notifOut{to{opacity:0}}@media (prefers-reduced-motion:reduce){.notif-toast{animation:none}}.ab{width:100%}.ab-text{max-width:84%}.ab-heading{letter-spacing:-.01em;padding-top:6px;font-size:18px;font-weight:600}.ab-card{border:1px solid var(--border);border-radius:var(--radius);background:var(--paper);padding:14px 16px}.ab-more{border-top:1px solid var(--hairline);width:100%;min-height:44px;font-size:13px;font-weight:500;text-decoration:underline}.ab-stats{gap:var(--grid-gap);display:grid}.ab-stat{border:1px solid var(--border);border-radius:var(--radius);flex-direction:column;gap:8px;min-width:0;padding:14px 16px;display:flex}.ab-stat-value{letter-spacing:-.02em;white-space:nowrap;text-overflow:ellipsis;font-size:32px;font-weight:500;line-height:1;overflow:hidden}.ab-table{border-collapse:collapse;width:100%;font-size:14px}.ab-table th{padding:var(--table-header-pad-v) var(--table-row-pad-h);border-bottom:1px solid var(--border);text-align:left}.ab-table td{padding:10px var(--table-row-pad-h);border-bottom:1px solid var(--hairline-soft);white-space:nowrap;-webkit-user-select:text;user-select:text}.ab-table tr:last-child td{border-bottom:0}.ab-grid td{padding:6px 4px}.ab-grid td:first-child,.ab-grid th:first-child{padding-left:var(--table-row-pad-h);padding-right:12px}.ab-bar-row{grid-template-columns:minmax(72px,34%) 1fr auto;align-items:center;gap:10px;display:grid}.ab-bar-label{text-overflow:ellipsis;white-space:nowrap;font-size:14px;font-weight:500;overflow:hidden}.ab-bar-track{background:var(--row-pressed);border-radius:5px;height:10px;overflow:hidden}.ab-bar-fill{background:var(--ink);border-radius:5px;height:100%}.ab-bar-value{text-align:right;white-space:nowrap;min-width:52px;font-size:13px;font-weight:500}.ab-cols{align-items:flex-end;gap:8px;display:flex}.ab-col{flex-direction:column;flex:1;align-items:center;gap:6px;min-width:22px;display:flex}.ab-col-track{justify-content:center;align-items:flex-end;width:100%;height:120px;display:flex}.ab-col-fill{background:var(--ink);border-radius:4px 4px 0 0;width:100%;max-width:36px}.ab-col-value{white-space:nowrap;font-size:12px;font-weight:500}.ab-col-label{color:var(--ink-muted);white-space:nowrap;text-align:center;font-size:11px;font-weight:300}.ab-person{border-bottom:1px solid var(--hairline-soft);align-items:center;gap:12px;display:flex}.ab-person:last-child{border-bottom:0}.ab-person-name{text-overflow:ellipsis;white-space:nowrap;font-size:14px;font-weight:500;overflow:hidden}.ab-tl-track{background:var(--row-pressed);border-radius:4px;height:18px;position:relative}.ab-tl-grid{background:var(--hairline);width:1px;position:absolute;top:0;bottom:0}.ab-tl-span{background:var(--ink);border-radius:3px;position:absolute;top:3px;bottom:3px}.ab-tl-span.shift{background:var(--paper);border:1px solid var(--border)}.ab-tl-mark{background:var(--ink);border-radius:1px;width:2px;margin-left:-1px;position:absolute;top:-2px;bottom:-2px}.ab-tl-axis{height:16px;position:relative}.ab-tl-axis span{white-space:nowrap;position:absolute;transform:translate(-50%)}.ab-tl-axis span:first-child{transform:none}.ab-tl-axis span:last-child{transform:translate(-100%)}@keyframes stepInRight{0%{opacity:0;transform:translate(40px)}to{opacity:1;transform:none}}@keyframes stepInLeft{0%{opacity:0;transform:translate(-40px)}to{opacity:1;transform:none}}.step-in-right{animation:stepInRight var(--t-step) var(--ease-out) both}.step-in-left{animation:stepInLeft var(--t-step) var(--ease-out) both}.kpi-pager{scroll-snap-type:x mandatory;scrollbar-width:none;overscroll-behavior-x:contain;width:100%;margin:0 auto;display:flex;overflow-x:auto}.kpi-pager::-webkit-scrollbar{display:none}.kpi-page{scroll-snap-align:start;flex:0 0 100%;justify-content:center;display:flex}.sticky-col{z-index:2;background:var(--paper);flex:none;position:sticky;left:0}.t-row.hl .sticky-col,.hl-row .sticky-col{background:var(--ink)}.logi-cell{transition:background var(--t-color)}.logi-cell:active{filter:brightness(.94);background:var(--row-pressed)!important}@media (hover:hover){.logi-cell:hover{box-shadow:inset 0 0 0 1px var(--border-faint)}}.form-row>*{flex:1;min-width:0}[id^=q-]{scroll-margin-top:calc(24px + var(--safe-top))}.wide [id^=q-]{scroll-margin-top:89px}.logi-input{text-align:center;background:0 0;border:0;outline:0;width:100%;height:100%;min-height:40px;padding:0 4px;font-size:13px}.mc-head{background:var(--ink);color:var(--paper);grid-template-columns:repeat(7,minmax(0,1fr));display:grid}.mc-head>div{text-align:center;letter-spacing:.08em;text-transform:uppercase;padding:8px 4px;font-size:12px;font-weight:500}.mc-grid{grid-template-columns:repeat(7,minmax(0,1fr));display:grid}.mc-cell{text-align:left;border-right:1px solid var(--hairline);border-bottom:1px solid var(--hairline);min-width:0;min-height:64px;transition:background var(--t-color);flex-direction:column;padding:6px;display:flex}.wide .mc-cell{min-height:118px;padding:8px}.mc-cell:nth-child(7n){border-right:0}.mc-cell.out{background:var(--row-pressed)}.mc-cell.holiday{background:var(--surface-unread)}button.mc-cell:active{background:var(--row-pressed)}@media (hover:hover){button.mc-cell:hover{background:var(--row-hover)}}.mc-day{border-radius:11px;place-items:center;min-width:22px;height:22px;font-size:13px;font-weight:600;display:inline-grid}.mc-day.today{background:var(--ink);color:var(--paper)}.mc-holiday{letter-spacing:.06em;text-transform:uppercase;color:var(--ink-muted);font-size:10px;font-weight:300}.mc-line{color:var(--ink-soft);font-size:11px;line-height:1.35}.mc-line b{color:var(--ink);font-weight:600}.mc-away{border-radius:3px;padding:1px 4px;font-size:11px;line-height:1.35}.mc-count{color:var(--ink-muted);font-size:10px;font-weight:500}.mc-dot{border-radius:3px;align-self:center;width:6px;height:6px}table.ya{border-collapse:separate;border-spacing:0;min-width:100%;font-size:12px}.ya th,.ya td{text-align:center;border-bottom:1px solid var(--hairline-soft);height:30px;padding:0}.ya thead th{color:var(--ink-muted);border-bottom:1px solid var(--border);min-width:26px;height:34px;font-size:11px;font-weight:300}.ya .sticky-a{z-index:2;background:var(--paper);width:52px;min-width:52px;position:sticky;left:0}.ya .sticky-b{z-index:2;background:var(--paper);text-align:left;border-right:1px solid var(--border-faint);max-width:220px;padding:0 12px;position:sticky}.ya thead .ya-name{letter-spacing:.12em;text-transform:uppercase;color:var(--ink);font-size:11px;font-weight:300}th.ya-month{letter-spacing:.08em;vertical-align:middle;border-right:1px solid var(--hairline);font-size:12px;font-weight:600}tr.ya-first>*{border-top:1px solid var(--border)}tbody tr:first-child.ya-first>*{border-top:0}td.ya-name{font-size:13px;font-weight:500}td.ya-day{font-variant-numeric:tabular-nums;min-width:26px;color:var(--ink-soft)}td.ya-day.weekend{color:var(--ink);font-weight:700}td.ya-day.today{box-shadow:inset 0 0 0 2px var(--ink)}td.ya-void{background:var(--surface-inset)}.toolbar>.tb-slot{flex:auto;justify-content:center;align-items:center;min-width:0;display:flex}.field .field-box.area,.field.compact .field-box.area{align-items:stretch;height:auto}.daytype-mark{border-radius:var(--radius-tiny);color:var(--paper);flex:none;place-items:center;font-weight:700;line-height:1;display:inline-grid}.daytype-mark.daytype-a{background:var(--day-a)}.daytype-mark.daytype-b{background:var(--day-b)}.daytype-badge{border:1px solid;border-radius:14px;align-items:center;gap:6px;height:28px;padding:0 12px;font-size:13px;font-weight:500;display:inline-flex}.daytype-badge strong{font-weight:700}.daytype-badge.daytype-a{color:var(--day-a);background:var(--day-a-soft);border-color:var(--day-a)}.daytype-badge.daytype-b{color:var(--day-b);background:var(--day-b-soft);border-color:var(--day-b)}.tb-icon.labelled{align-items:center;gap:6px;width:auto;padding:0 10px;display:inline-flex}.tb-icon .tb-text{white-space:nowrap;font-size:12px;font-weight:500}.tb-icon.labelled .tb-dot{top:5px;right:4px}.tb-picker{height:var(--filter-control-h);border-radius:var(--radius-small);white-space:nowrap;align-items:center;gap:6px;padding:0 10px;font-size:12px;font-weight:500;display:inline-flex}.tb-picker:active{transform:scale(.97)}@media (hover:hover){.tb-picker:hover{background:var(--row-hover)}}.period-pop{min-width:200px;max-height:320px;overflow-y:auto}.period-pop .menu-item{height:40px;font-size:14px}.period-pop .menu-item.on{font-weight:600}.month-summary{border-bottom:1px solid var(--hairline-soft);scrollbar-width:none;grid-auto-columns:minmax(max-content,1fr);grid-auto-flow:column;gap:16px;padding:10px 0;display:grid;overflow-x:auto}.month-summary::-webkit-scrollbar{display:none}.req-plus{background:var(--ink);width:46px;height:46px;color:var(--paper);border-radius:8px;flex:none;place-items:center;display:grid}.punch-line{border:1px solid var(--border);border-radius:var(--radius);background:var(--paper);transition:opacity .18s}.punch-line-head{cursor:pointer;min-height:52px;padding:8px 12px}@media (hover:hover){.punch-line-head:hover{background:var(--row-hover)}}.mini-btn{border-radius:var(--radius-small);border:1px solid var(--border);background:var(--paper);height:30px;color:var(--ink);flex:none;place-items:center;padding:0 10px;font-size:13px;font-weight:500;display:inline-grid}.mini-btn.primary{background:var(--ink);color:var(--paper)}.mini-btn:disabled{opacity:.35}
