@keyframes enter{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}.enter,.stagger>*{animation:enter var(--dur-slow) var(--ease-out) backwards}.stagger>:nth-child(2){animation-delay:40ms}.stagger>:nth-child(3){animation-delay:80ms}.stagger>:nth-child(4){animation-delay:.12s}.stagger>:nth-child(5){animation-delay:.16s}.stagger>:nth-child(6){animation-delay:.2s}.stagger>:nth-child(7){animation-delay:.24s}.stagger>:nth-child(n+8){animation-delay:.28s}:where(a,button,summary,[role=button],[tabindex]):focus-visible{outline:2px solid var(--accent-text);outline-offset:2px}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:1ms!important;animation-duration:1ms!important;animation-iteration-count:1!important;animation-delay:0s!important}}*{box-sizing:border-box;margin:0;padding:0}html{height:100%}html,body{max-width:100vw;overflow-x:clip}body{min-height:100%;color:var(--text);background:var(--bg);font-family:var(--font-geist-sans), var(--font-heebo), -apple-system, BlinkMacSystemFont, "Segoe UI", "Noto Sans Hebrew", Roboto, Helvetica, Arial, sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}a{color:inherit;text-decoration:none}h1{letter-spacing:-.01em;font-size:22px;font-weight:700}h2{font-size:15px;font-weight:600}.muted{color:var(--muted);font-size:13px}.eyebrow{letter-spacing:.07em;text-transform:uppercase;color:var(--muted);font-size:11px;font-weight:700}.shell{min-height:100vh;display:flex}.sidebar{background:var(--card);border-inline-end:1px solid var(--border);flex-direction:column;flex-shrink:0;align-self:flex-start;gap:18px;width:240px;height:100dvh;padding:20px 14px 16px;display:flex;position:sticky;top:0;overflow-y:auto}.sidebar-brand{letter-spacing:-.01em;align-items:center;gap:9px;padding:0 8px;font-size:16px;font-weight:700;display:flex}.sidebar-brand-mark{flex-shrink:0;width:36px;height:auto}.sidebar-business{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface-2);align-items:center;gap:10px;min-width:0;padding:10px;display:flex}.avatar{background:var(--accent-soft);width:32px;height:32px;color:var(--accent-text);border-radius:50%;flex-shrink:0;place-items:center;font-size:13px;font-weight:700;display:grid}.sidebar-business-text{flex-direction:column;min-width:0;display:flex}.sidebar-business-name{white-space:nowrap;text-overflow:ellipsis;font-size:13.5px;font-weight:600;overflow:hidden}.sidebar-business-role{color:var(--muted);font-size:12px}.sidebar-nav{flex-direction:column;gap:2px;display:flex;position:relative}.sidebar-link{z-index:1;border-radius:var(--radius-sm);width:100%;font:inherit;color:var(--muted);text-align:start;cursor:pointer;transition:background-color var(--dur-fast) var(--ease-out), color var(--dur-fast) var(--ease-out);background:0 0;border:none;align-items:center;gap:10px;padding:9px 12px;font-size:14px;font-weight:500;display:flex;position:relative}.sidebar-icon{flex-shrink:0;width:18px;height:18px}.sidebar-link:hover{background:var(--row-hover);color:var(--text)}.sidebar-link.active{background:var(--accent-soft);color:var(--accent-text);font-weight:600}.sidebar-pill{border-radius:var(--radius-sm);background:var(--accent-soft);opacity:0;pointer-events:none;width:0;height:0;position:absolute;top:0;left:0}.sidebar-pill:before{content:"";inset-inline-start:0;background:var(--accent);border-radius:3px;width:3px;position:absolute;top:9px;bottom:9px}.sidebar-sliding .sidebar-pill{transition:transform var(--dur) var(--ease-out), width var(--dur) var(--ease-out), height var(--dur) var(--ease-out)}.sidebar-sliding .sidebar-link.active{background:0 0}.topbar,.sheet-backdrop,.sidebar-close{display:none}.skeleton{background:var(--border);border-radius:6px;animation:1.2s ease-in-out infinite skeleton-pulse}.skeleton-header{align-items:center;gap:14px;margin-bottom:24px;display:flex}.skeleton-icon{border-radius:var(--radius);flex-shrink:0;width:42px;height:42px}.skeleton-header-text{flex-direction:column;flex:1;gap:8px;display:flex}.skeleton-title{background:var(--border-strong);border-radius:8px;width:240px;max-width:60%;height:24px}.skeleton-subtitle{width:320px;max-width:75%;height:12px}.skeleton-lines{flex-direction:column;gap:14px;display:flex}.skeleton-line{height:12px}.skeleton-line-heading{width:35%;height:16px;margin-bottom:4px}.skeleton-line-short{width:60%}@keyframes skeleton-pulse{50%{opacity:.55}}@media (prefers-reduced-motion:reduce){.skeleton{animation:none}}.sidebar-footer{border-top:1px solid var(--border);margin-top:auto;padding-top:12px}.main{flex:1;min-width:0;padding:32px 40px}.page-header{align-items:center;gap:14px;margin-bottom:24px;display:flex}.page-header-icon{border-radius:var(--radius);background:var(--accent-soft);width:42px;height:42px;color:var(--accent-text);flex-shrink:0;place-items:center;display:grid}.page-header-icon svg{width:21px;height:21px}.page-header-text{min-width:0}.page-header h1{letter-spacing:-.015em;font-size:24px;font-weight:700;line-height:1.2}.page-header-sub{color:var(--muted);margin-top:3px;font-size:14px}.page-header-actions{gap:8px;margin-inline-start:auto;display:flex}.page-enter{animation:enter var(--dur-slow) var(--ease-out) backwards}.toast-region{z-index:80;pointer-events:none;flex-direction:column;gap:8px;width:min(380px,100vw - 32px);display:flex;position:fixed;inset-block-end:20px;inset-inline-end:20px}.toast{--toast-accent:var(--accent);pointer-events:auto;padding:12px;border:1px solid var(--border);border-inline-start:3px solid var(--toast-accent);border-radius:var(--radius);background:var(--card);box-shadow:var(--elev-3);color:var(--text);animation:toast-in var(--dur-slow) var(--ease-out) both;align-items:flex-start;gap:10px;padding-inline-start:14px;font-size:14px;display:flex}.toast-success{--toast-accent:var(--success)}.toast-error{--toast-accent:var(--error)}.toast.leaving{animation:toast-out var(--dur) var(--ease-in-out) both}.toast-icon{width:18px;height:18px;color:var(--toast-accent);flex-shrink:0;margin-top:1px}.toast-message{flex:1;line-height:1.45}.toast-close{width:24px;height:24px;color:var(--muted);cursor:pointer;transition:background-color var(--dur-fast), color var(--dur-fast);background:0 0;border:none;border-radius:6px;flex-shrink:0;place-items:center;display:grid}.toast-close:hover{background:var(--row-hover);color:var(--text)}.toast-close svg{width:16px;height:16px}@keyframes toast-in{0%{opacity:0;transform:translateY(10px)scale(.98)}to{opacity:1;transform:none}}@keyframes toast-out{to{opacity:0;transform:translateY(6px)scale(.98)}}@media (max-width:768px){.toast-region{width:auto;inset-block-end:16px;inset-inline:16px}}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.btn-icon{border-radius:var(--radius-sm);width:32px;height:32px;color:var(--muted);cursor:pointer;transition:background-color var(--dur-fast) var(--ease-out), color var(--dur-fast) var(--ease-out), border-color var(--dur-fast) var(--ease-out);background:0 0;border:1px solid #0000;place-items:center;padding:0;display:inline-grid}.btn-icon:hover,.btn-icon[aria-expanded=true]{background:var(--row-hover);border-color:var(--border);color:var(--text)}.btn-icon svg{width:18px;height:18px}.btn-icon:disabled{opacity:.5;cursor:not-allowed}.btn-icon-danger:hover{background:var(--error-bg);color:var(--error);border-color:#0000}.btn-danger-solid{background:var(--error);color:var(--card);border-color:#0000}.btn-danger-solid:hover{background:var(--error);filter:brightness(1.08)}.row-menu{flex-direction:column;gap:2px;display:flex}.row-menu-item{border-radius:var(--radius-sm);width:100%;color:var(--text);font:inherit;text-align:start;cursor:pointer;transition:background-color var(--dur-fast) var(--ease-out);background:0 0;border:none;align-items:center;gap:10px;padding:8px 10px;font-size:14px;display:flex}.row-menu-item:hover,.row-menu-item:focus-visible{background:var(--row-hover);outline:none}.row-menu-item svg{width:16px;height:16px;color:var(--muted);flex-shrink:0}.row-menu-item.danger,.row-menu-item.danger svg{color:var(--error)}.row-menu-item.danger:hover,.row-menu-item.danger:focus-visible{background:var(--error-bg)}.row-menu-confirm p{margin-bottom:10px;font-size:14px;line-height:1.45}.row-menu-confirm-actions{gap:8px;display:flex}.cal-popover{animation:pop-in var(--dur) var(--ease-out) backwards;white-space:normal;text-align:start}@keyframes pop-in{0%{opacity:0;transform:translateY(-4px)scale(.98)}}.empty{text-align:center;flex-direction:column;align-items:center;gap:6px;padding:32px 16px;display:flex}.empty-compact{padding:18px 12px}.empty-icon{background:var(--accent-soft);width:44px;height:44px;color:var(--accent-text);border-radius:50%;place-items:center;margin-bottom:6px;display:grid}.empty-icon svg{width:22px;height:22px}.empty-title{color:var(--text);font-size:15px;font-weight:600}.empty-hint{max-width:360px;color:var(--muted);font-size:13px}.empty-action{margin-top:8px}.table td.empty-cell{padding:0}.table tbody tr:hover td.empty-cell{background:0 0}.date-input{min-width:200px;position:relative}.date-input-face{cursor:pointer;text-align:start;align-items:center;gap:8px;display:flex}.date-input-face svg{width:16px;height:16px;color:var(--muted);flex-shrink:0}.date-input-placeholder{color:var(--muted)}.date-input-native{opacity:0;pointer-events:none;position:absolute;inset:0}.person{align-items:center;gap:10px;font-weight:500;display:inline-flex}.avatar-sm{width:28px;height:28px;font-size:11.5px}.phone{font-family:var(--font-geist-mono), ui-monospace, monospace;color:var(--muted);white-space:nowrap;font-size:13px}.role-chips{flex-wrap:wrap;gap:4px;display:flex}.role-chip{background:color-mix(in srgb, var(--role,var(--muted)) 14%, transparent);color:var(--text);border-radius:999px;align-items:center;gap:5px;padding:2px 8px;font-size:12px;font-weight:500;display:inline-flex}.role-chip:before{content:"";background:var(--role,var(--muted));border-radius:50%;width:6px;height:6px}.table td.actions-cell{white-space:nowrap;text-align:end;width:1%}.workers-table td,.roles-table td,.closed-dates-table td{vertical-align:middle}.card-hover{transition:box-shadow var(--dur) var(--ease-out), border-color var(--dur) var(--ease-out)}.card-hover:hover{border-color:var(--border-strong);box-shadow:var(--elev-2)}@media (max-width:768px){.workers-table thead{display:none}.workers-table,.workers-table tbody{display:block}.workers-table tr{border-bottom:1px solid var(--border);grid-template-columns:1fr auto;align-items:center;gap:6px 12px;padding:12px 14px;display:grid}.table.workers-table td{border:none;padding:0;display:block}.workers-table td.actions-cell{grid-area:1/2}.workers-table td.phone-cell,.workers-table td.roles-cell,.workers-table td.status-cell{grid-column:1/-1}.workers-table tbody tr:hover td{background:0 0}}.centered-shell{background:radial-gradient(ellipse 900px 520px at 50% -8%, var(--accent-soft), transparent 65%), var(--bg);flex-direction:column;justify-content:center;align-items:center;gap:28px;min-height:100vh;padding:20px;display:flex}.login-brand{flex-direction:column;align-items:center;gap:8px;display:flex}.login-logo{width:132px;height:auto}.login-wordmark{letter-spacing:-.02em;color:var(--text);font-size:30px;font-weight:800}.login-card{box-shadow:var(--shadow-md);padding:32px 30px;position:relative}.login-card:before{content:"";inset-inline:0;background:var(--accent-gradient-solid);border-radius:14px 14px 0 0;height:3px;position:absolute;top:0}@media (max-width:768px){.shell{flex-direction:column;min-height:auto}.topbar{z-index:40;background:color-mix(in srgb, var(--card) 88%, transparent);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-bottom:1px solid var(--border);letter-spacing:-.01em;align-items:center;gap:9px;height:56px;padding-inline:16px 12px;font-weight:700;display:flex;position:sticky;top:0}.topbar img{width:30px;height:auto}.topbar-menu{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--card);width:40px;height:40px;color:var(--text);cursor:pointer;place-items:center;margin-inline-start:auto;display:grid}.topbar-menu svg{width:20px;height:20px}.sidebar{z-index:60;width:min(300px,86vw);height:100dvh;box-shadow:var(--elev-3);visibility:hidden;transition:transform var(--dur) var(--ease-out), visibility 0s linear var(--dur);align-self:auto;position:fixed;inset-block:0;inset-inline-start:0;transform:translate(-100%)}[dir=rtl] .sidebar{transform:translate(100%)}.sidebar.open,[dir=rtl] .sidebar.open{visibility:visible;transition:transform var(--dur) var(--ease-out), visibility 0s;transform:none}.sheet-backdrop{z-index:50;opacity:0;pointer-events:none;transition:opacity var(--dur) var(--ease-out);background:#00000073;display:block;position:fixed;inset:0}.sheet-backdrop.open{opacity:1;pointer-events:auto}.sidebar-close{top:16px;border-radius:var(--radius-sm);width:36px;height:36px;color:var(--muted);cursor:pointer;background:0 0;border:none;place-items:center;display:grid;position:absolute;inset-inline-end:12px}.sidebar-close svg{width:20px;height:20px}.main{padding:20px 16px}.page-header{margin-bottom:18px}.page-header h1{font-size:20px}}.location-map{z-index:0;border:1px solid var(--border);background:var(--surface-2);border-radius:10px;width:100%;height:380px;position:relative;overflow:hidden}@media (max-width:768px){.location-map{height:300px}}.location-pin span{background:var(--accent);border:3px solid #fff;border-radius:50% 50% 50% 0;width:26px;height:26px;display:block;transform:rotate(-45deg);box-shadow:0 2px 6px #00000059}.location-result{text-align:start;border:1px solid var(--border);background:var(--card);color:var(--text);font:inherit;cursor:pointer;border-radius:8px;padding:8px 10px;font-size:13px}.location-result:hover{background:var(--row-hover)}.location-result.active{border-color:var(--accent)}.card{background:var(--card);border:1px solid var(--border);box-shadow:var(--elev-1);border-radius:14px}.card-hero{background:var(--card-hero-bg);box-shadow:var(--shadow-md), var(--card-glow)}.card-padded{padding:20px 24px}.card+.card{margin-top:20px}.card-header{justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:12px;display:flex}.card-header h2{margin-bottom:4px}.card-header .muted{margin-bottom:0}.stat-grid{grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px;margin-bottom:20px;display:grid}.stat-tile{background:var(--card);border:1px solid var(--border);box-shadow:var(--shadow-sm);border-radius:14px;padding:16px 18px}.stat-tile-value{font-variant-numeric:tabular-nums;font-size:26px;font-weight:700;line-height:1.1}.stat-tile-label{color:var(--muted);margin-top:4px;font-size:13px}.stat-tile-sub{color:var(--muted);margin-top:2px;font-size:12px}.report-head{flex-wrap:wrap;align-items:center;gap:10px 18px;display:flex}.note-line{color:var(--muted);align-items:flex-start;gap:8px;margin:0;font-size:13px;line-height:1.5;display:flex}.note-line svg{fill:none;stroke:currentColor;stroke-width:1.6px;stroke-linecap:round;stroke-linejoin:round;flex-shrink:0;width:16px;height:16px;margin-top:1px}.note-line-check svg{stroke:var(--success)}.chart-legend{color:var(--muted);flex-wrap:wrap;gap:6px 16px;margin:0;padding:0;font-size:13px;list-style:none;display:flex}.chart-legend li{align-items:center;gap:6px;display:inline-flex}.chart-swatch{border-radius:2px;flex-shrink:0;width:10px;height:10px}.chart-tooltip{z-index:5;border:1px solid var(--border);background:var(--card);min-width:140px;box-shadow:var(--shadow-md);white-space:nowrap;pointer-events:none;border-radius:8px;padding:8px 10px;font-size:12px;position:absolute;transform:translate(-50%,calc(-100% - 12px))}.chart-tooltip-title{margin-bottom:4px;font-weight:600}.chart-tooltip-row{align-items:center;gap:6px;line-height:1.6;display:flex}.chart-tooltip-row span:last-child{color:var(--muted)}.chart-line-key{border-radius:1px;flex-shrink:0;width:12px;height:2px}.bar-chart{position:relative}.bar-row{border-radius:6px;outline:none;grid-template-columns:minmax(80px,150px) 1fr;align-items:center;gap:12px;padding:5px 6px;display:grid}.bar-row:not(.bar-axis):hover,.bar-row:focus-visible{background:var(--row-hover)}.bar-row:focus-visible{box-shadow:inset 0 0 0 2px var(--accent)}.bar-label{text-overflow:ellipsis;white-space:nowrap;font-size:13px;overflow:hidden}.bar-plot{flex-direction:column;gap:2px;min-height:14px;margin-inline-end:52px;display:flex;position:relative}.bar-grid{background:var(--chart-grid);width:1px;position:absolute;top:-5px;bottom:-5px}.bar-grid:first-child{background:var(--chart-axis)}.bar-track{height:10px;position:relative}.bar-chart[data-series="1"] .bar-track{height:14px}.bar{border-start-end-radius:4px;border-end-end-radius:4px;transition:filter .12s;position:absolute;inset-block:0;inset-inline-start:0}.bar-row:hover .bar,.bar-row:focus-visible .bar{filter:brightness(1.1)}.bar-value{color:var(--muted);white-space:nowrap;font-variant-numeric:tabular-nums;margin-inline-start:6px;font-size:11px;position:absolute;top:50%;transform:translateY(-50%)}.bar-axis .bar-plot{min-height:16px}.bar-tick{white-space:nowrap;color:var(--muted);font-variant-numeric:tabular-nums;font-size:11px;position:absolute;top:0;transform:translate(-50%)}[dir=rtl] .bar-tick{transform:translate(50%)}.segment-legend{grid-template-columns:repeat(4,max-content);justify-content:start;align-items:center;gap:7px 22px;margin:0;padding:0;font-size:13px;list-style:none;display:grid}.segment-legend li{display:contents}.segment-legend-name{align-items:center;gap:8px;display:inline-flex}.segment-legend-value{font-variant-numeric:tabular-nums;text-align:end;font-weight:600}.segment-legend-share,.segment-legend-extra{color:var(--muted);font-variant-numeric:tabular-nums;text-align:end}.donut{flex-wrap:wrap;align-items:center;gap:18px 28px;display:flex;position:relative}.donut-ring{flex-shrink:0;width:168px;height:168px}.donut-seg{fill:none;stroke-width:16px;outline:none;transition:filter .12s,stroke-width .12s,stroke-dasharray .42s cubic-bezier(.2,.8,.2,1),stroke-dashoffset .42s cubic-bezier(.2,.8,.2,1)}@media (prefers-reduced-motion:reduce){.donut-seg{transition:none}}.donut-seg:hover,.donut-seg:focus-visible{filter:brightness(1.12);stroke-width:19px}.donut-total{text-anchor:middle;fill:var(--text);font-size:16px;font-weight:700}.donut-total-label{text-anchor:middle;fill:var(--muted);font-size:8.5px}@media (max-width:560px){.donut{justify-content:center}}.heatmap-box{position:relative}.heatmap-scroll{overflow-x:auto}.heatmap{border-collapse:separate;border-spacing:3px;font-size:12px}.heatmap th{color:var(--muted);text-align:center;white-space:nowrap;padding:4px 6px;font-weight:500}.heatmap th[scope=row]{text-overflow:ellipsis;text-align:start;max-width:150px;color:var(--text);overflow:hidden}.heat{text-align:center;font-variant-numeric:tabular-nums;min-width:58px;height:32px;color:var(--text);background:var(--surface-2);border-radius:4px;outline:none;font-weight:600;transition:background-color .3s,color .3s}@media (prefers-reduced-motion:reduce){.heat{transition:none}}.heat:focus-visible{box-shadow:0 0 0 2px var(--accent)}.heat-0{color:var(--muted);font-weight:400}.heat-1{background:var(--seq-1)}.heat-2{background:var(--seq-2)}.heat-3{background:var(--seq-3)}.heat-4{background:var(--seq-4);color:var(--heat-ink-strong)}.heat-5{background:var(--seq-5);color:var(--heat-ink-strong)}.heat-scale{color:var(--muted);align-items:center;gap:4px;margin-top:10px;font-size:12px;display:flex}.heat-swatch{border-radius:2px;width:18px;height:10px}.heat-scale span:first-child{margin-inline-end:4px}.heat-scale span:last-child{margin-inline-start:4px}.meter{background:var(--meter-track);border-radius:999px;height:10px;overflow:hidden}.meter-fill{background:var(--series-1);border-radius:999px;height:100%;display:block}.meter-fill-over{background:var(--warning)}.meter-caption{align-items:baseline;gap:8px;margin:8px 0 0;font-size:14px;display:flex}.name-chips{flex-wrap:wrap;gap:6px;margin:0;padding:0;list-style:none;display:flex}.name-chips li{background:var(--surface-2);border-radius:999px;padding:3px 10px;font-size:13px}.attention-grid{grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:12px;display:grid}.attention-item{border:1px solid var(--border);border-radius:10px;padding:12px 14px}.attention-head{align-items:center;gap:8px;margin-bottom:8px;display:flex}.attention-head h3{margin:0;font-size:14px}.attention-head .badge{margin-inline-start:auto}.attention-item ul{margin:0;padding-inline-start:18px;font-size:13px;line-height:1.6}.table-compact th,.table-compact td{padding:6px 8px}.table td.num{font-variant-numeric:tabular-nums}.day-card-header{justify-content:space-between;align-items:center;gap:10px;margin-bottom:4px;display:flex}.shift-list{flex-direction:column;display:flex}.shift-row{flex-wrap:wrap;align-items:center;gap:12px;padding:10px 0;display:flex}.shift-row+.shift-row{border-top:1px solid var(--border)}.shift-row-label{min-width:150px;font-weight:600}.shift-row-assigned{flex:1;min-width:120px}.shift-group{border-inline-start:2px solid var(--border);padding-inline-start:14px}.shift-group-title{letter-spacing:.04em;text-transform:uppercase;color:var(--accent-text);margin-bottom:8px;font-size:12px;font-weight:700}.role-block{padding:10px 0}.role-block+.role-block{border-top:1px solid var(--border)}.role-block-header{flex-wrap:wrap;align-items:center;gap:10px;margin-bottom:8px;display:flex}.role-block-name{font-weight:600}.panel{background:var(--surface-2);border-radius:10px;padding:16px}.card:has(>table){overflow-x:auto}.stack{flex-direction:column;gap:14px;display:flex}.row{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.field{flex-direction:column;gap:6px;display:flex}.row>.field{flex:160px}.label{color:var(--muted);font-size:13px;font-weight:600}.input{border:1px solid var(--border);background:var(--input-bg);color:var(--text);border-radius:8px;width:100%;padding:9px 12px;font-size:14px;transition:border-color .12s,box-shadow .12s}.input:hover{border-color:var(--border-strong)}.input:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft);outline:none}.input-with-addon{position:relative}.input-with-addon .input{padding-inline-start:26px}.input-addon{inset-inline-start:10px;color:var(--muted);pointer-events:none;font-size:14px;position:absolute;top:50%;transform:translateY(-50%)}.btn{border:1px solid var(--border);background:var(--card);color:var(--text);cursor:pointer;box-shadow:var(--shadow-sm);border-radius:9px;justify-content:center;align-items:center;gap:8px;padding:8px 16px;font-size:14px;font-weight:600;transition:background-color .12s,border-color .12s,transform .12s,filter .12s;display:inline-flex}.btn svg{flex-shrink:0;width:16px;height:16px}.btn:hover{background:var(--row-hover);border-color:var(--border-strong)}.btn:active{transform:translateY(1px)}.btn-primary{background:var(--accent-gradient-solid);color:var(--accent-fg);box-shadow:var(--shadow-sm), var(--card-border-glow);border-color:#0000}.btn-primary:hover{filter:brightness(1.1)}.btn-ghost{box-shadow:none;color:var(--muted);background:0 0;border-color:#0000}.btn-ghost:hover{background:var(--row-hover);color:var(--text)}.btn-danger{color:var(--error)}.btn-full{width:100%}.btn-sm{padding:5px 11px;font-size:13px}.btn:disabled{opacity:.6;cursor:not-allowed;transform:none}.tabs{border-bottom:1px solid var(--border);gap:22px;margin-bottom:22px;display:flex;position:relative;overflow-x:auto}.tab{color:var(--muted);white-space:nowrap;border-bottom:2px solid #0000;padding:0 0 11px;font-size:14px;font-weight:600;transition:color .12s,border-color .12s}.tab:hover{color:var(--text)}.tab.active{color:var(--accent-text);border-color:var(--accent)}.tabs-bar{background:var(--accent);opacity:0;pointer-events:none;border-radius:2px;width:0;height:2px;position:absolute;top:0;left:0}.tabs-sliding .tabs-bar{transition:transform .24s cubic-bezier(.2,.8,.2,1),width .24s cubic-bezier(.2,.8,.2,1)}.tabs-sliding .tab.active{border-color:#0000}@media (prefers-reduced-motion:reduce){.tabs-sliding .tabs-bar{transition:none}}.segmented{background:var(--surface-2);border-radius:10px;gap:2px;padding:3px;display:inline-flex}.segmented-option{color:var(--muted);cursor:pointer;background:0 0;border:none;border-radius:7px;padding:7px 14px;font-size:13px;font-weight:600;transition:background-color .12s,color .12s,box-shadow .12s}.segmented-option:hover{color:var(--text)}.segmented-option.active{background:var(--card);color:var(--text);box-shadow:var(--shadow-sm)}.segmented-option:disabled{opacity:.6;cursor:not-allowed}.segmented-slider{position:relative}.segmented-slider .segmented-option{z-index:1;position:relative}.segmented-thumb{background:var(--card);width:0;height:0;box-shadow:var(--shadow-sm);opacity:0;border-radius:7px;position:absolute;top:0;left:0}.segmented-sliding .segmented-thumb{transition:transform .24s cubic-bezier(.2,.8,.2,1),width .24s cubic-bezier(.2,.8,.2,1),height .24s cubic-bezier(.2,.8,.2,1)}.segmented-sliding .segmented-option.active{box-shadow:none;background:0 0}@media (prefers-reduced-motion:reduce){.segmented-sliding .segmented-thumb{transition:none}}.disclosure+.disclosure{border-top:1px solid var(--border);margin-top:14px;padding-top:14px}.disclosure-trigger{width:100%;color:inherit;font:inherit;text-align:start;cursor:pointer;background:0 0;border:none;justify-content:space-between;align-items:center;gap:12px;margin:0;padding:0;display:flex}.disclosure-title{font-size:15px;font-weight:600;display:block}.disclosure-summary{margin-top:2px;display:block}.disclosure-chevron{width:18px;height:18px;color:var(--muted);flex-shrink:0;transition:transform .2s}.disclosure-chevron[data-open=true]{transform:rotate(180deg)}.disclosure-body-wrap{grid-template-rows:0fr;transition:grid-template-rows .22s;display:grid}.disclosure-body-wrap[data-open=true]{grid-template-rows:1fr}.disclosure-body-inner{overflow:hidden}.disclosure-body-pad{padding-top:16px}.table{border-collapse:collapse;width:100%}.table th,.table td{text-align:start;vertical-align:top;border-bottom:1px solid var(--border);padding:10px 16px;font-size:14px}.grid-checkbox{width:16px;height:16px;accent-color:var(--accent);cursor:pointer}.table th{color:var(--muted);text-transform:uppercase;letter-spacing:.04em;font-size:12px;font-weight:600}.table tr:last-child td{border-bottom:none}.table tbody tr:hover td{background:var(--row-hover)}.table td.empty-state{text-align:center;padding:28px 16px;font-size:13px}.role-name-cell{align-items:center;gap:10px;font-weight:500;display:inline-flex}.role-swatch{border:1px solid var(--border-strong);cursor:pointer;border-radius:6px;flex-shrink:0;width:22px;height:22px;padding:0}.role-swatch:hover,.role-swatch:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.role-swatch-current{outline:2px solid var(--text);outline-offset:2px}.role-swatch-taken{opacity:.6}.role-color-preview{margin:10px 0 14px}.role-color-channels{flex-direction:column;gap:8px;margin-bottom:12px;display:flex}.role-color-channel{color:var(--muted);grid-template-columns:52px 1fr 64px;align-items:center;gap:8px;font-size:13px;display:grid}.role-color-channel input[type=range]{width:100%;accent-color:var(--accent)}.role-color-channel .input{padding:4px 6px;font-size:13px}.role-color-hex{font-family:var(--font-geist-mono), ui-monospace, monospace;grid-column:2/4}.role-color-presets{flex-wrap:wrap;gap:8px;margin:6px 0 12px;display:flex}.role-color-warn{background:var(--warning-bg);color:var(--text);border-radius:6px;margin:0 0 8px;padding:6px 8px;font-size:12px}.role-color-actions{justify-content:flex-end;gap:8px;margin-top:4px;display:flex}.badge{border-radius:999px;padding:2px 9px;font-size:12px;font-weight:600;display:inline-block}.badge-success{background:var(--success-bg);color:var(--success)}.badge-muted{background:var(--row-hover);color:var(--muted)}.badge-warning{background:var(--warning-bg);color:var(--text)}.banner{border-radius:10px;padding:10px 16px;font-size:14px}.banner-error{background:var(--error-bg);color:var(--error)}.banner-success{background:var(--success-bg);color:var(--success)}.switch{border:1px solid var(--border-strong);background:var(--switch-off);cursor:pointer;border-radius:6px;flex-shrink:0;width:44px;height:24px;padding:0;transition:background .2s,border-color .2s,filter .2s;display:inline-block;position:relative}.switch:hover{border-color:var(--accent)}.switch:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.switch[aria-checked=true]{background:var(--accent-gradient-solid);border-color:#0000}.switch[aria-checked=true]:hover{filter:brightness(1.1)}.switch-knob{top:2px;background:var(--switch-knob);width:18px;height:18px;box-shadow:var(--shadow-sm);border-radius:4px;place-items:center;transition:transform .22s cubic-bezier(.34,1.56,.64,1),width .12s;display:grid;position:absolute;inset-inline-start:2px}.switch[aria-checked=true] .switch-knob{transform:translate(20px)}[dir=rtl] .switch[aria-checked=true] .switch-knob{transform:translate(-20px)}.switch:not([aria-disabled]):active .switch-knob{width:22px}.switch[aria-checked=true]:not([aria-disabled]):active .switch-knob{transform:translate(16px)}[dir=rtl] .switch[aria-checked=true]:not([aria-disabled]):active .switch-knob{transform:translate(-16px)}.switch-knob svg{fill:none;width:10px;height:10px;stroke:var(--accent);stroke-width:1.8px;stroke-linecap:round;stroke-linejoin:round}.switch.switch-locked,.switch.switch-locked:hover,.switch.switch-locked[aria-checked=true]{cursor:not-allowed;filter:none;border:1px dashed var(--border-strong);background:repeating-linear-gradient(-45deg, var(--surface-2) 0 4px, var(--border) 4px 8px)}.switch-locked .switch-knob svg{stroke:var(--muted);stroke-width:1.5px}.switch-pending{cursor:progress}.switch-pending .switch-knob{animation:.9s ease-in-out infinite switch-pulse}@keyframes switch-pulse{50%{opacity:.55}}@media (prefers-reduced-motion:reduce){.switch-pending .switch-knob{animation:none}*{transition-duration:.01ms!important}}.cal-toolbar{flex-wrap:wrap;align-items:center;gap:10px 16px;display:flex}.cal-switch{border:1px solid var(--border);background:var(--surface-2);border-radius:999px;grid-template-columns:1fr 1fr;padding:3px;display:inline-grid;position:relative}.cal-switch-pill{top:3px;bottom:3px;background:var(--card);width:calc(50% - 3px);box-shadow:var(--shadow-sm);border-radius:999px;transition:inset-inline-start .28s cubic-bezier(.2,.8,.2,1);position:absolute;inset-inline-start:3px}.cal-switch[data-active=upcoming] .cal-switch-pill{inset-inline-start:50%}.cal-switch-btn{z-index:1;color:var(--muted);text-align:center;border-radius:999px;padding:6px 18px;font-size:14px;font-weight:600;text-decoration:none;transition:color .2s;position:relative}.cal-switch-btn:hover,.cal-switch-btn.is-active{color:var(--text)}.cal-scroll{padding-bottom:6px;transition:opacity .18s;overflow-x:auto}.cal-switching{opacity:.45}.cal-enter-next{animation:.32s cubic-bezier(.2,.8,.2,1) cal-enter-next}.cal-enter-prev{animation:.32s cubic-bezier(.2,.8,.2,1) cal-enter-prev}@keyframes cal-enter-next{0%{opacity:0;transform:translate(28px)}}@keyframes cal-enter-prev{0%{opacity:0;transform:translate(-28px)}}[dir=rtl] .cal-enter-next{animation-name:cal-enter-prev}[dir=rtl] .cal-enter-prev{animation-name:cal-enter-next}@media (prefers-reduced-motion:reduce){.cal-enter-next,.cal-enter-prev{animation:none}.cal-switch-pill,.cal-scroll{transition:none}}.cal-layout{align-items:flex-start;gap:6px;min-width:1120px;display:flex}.cal-team{flex:0 0 190px}@media (max-width:768px){.cal-team{order:2}}.cal-grid{flex:1;grid-template-columns:repeat(7,minmax(125px,1fr));gap:14px 4px;display:grid}.cal-grid>*{grid-column:var(--col);grid-row:var(--row)}.cal-head{background:var(--cal-head);color:#fff;text-align:center;border-radius:8px;padding:6px 4px;font-size:13.5px;font-weight:600}.cal-head-date{opacity:.75;font-size:12px;font-weight:400;display:block}.cal-head-closed{background:var(--cal-head-closed)}.cal-cell{background:var(--cal-cell);border-radius:8px;flex-direction:column;gap:5px;min-width:0;padding:6px;display:flex}.cal-cell-empty{background:var(--cal-cell-empty)}.cal-cell-closed{text-align:center;color:var(--muted);background:repeating-linear-gradient(-45deg, var(--cal-cell), var(--cal-cell) 8px, var(--cal-cell-empty) 8px, var(--cal-cell-empty) 16px);justify-content:center;align-items:center;font-weight:600}.cal-cell-head{color:var(--muted);justify-content:space-between;gap:4px;padding:0 2px;font-size:11.5px;display:flex}.cal-cell-period{color:var(--text);font-weight:700}.cal-card{background:var(--card);border:1px solid var(--border);border-inline-start:3px solid var(--role);border-radius:6px;flex-direction:column;align-items:flex-start;gap:1px;padding:4px 7px;display:flex}.cal-card-role{color:var(--role);font-size:13px;font-weight:700}.cal-name{max-width:100%;font:inherit;color:var(--text);text-align:start;cursor:pointer;background:0 0;border:none;border-radius:4px;flex-wrap:wrap;align-items:center;gap:2px 10px;margin-inline-start:-4px;padding:1px 4px;font-size:13px;display:inline-flex}.cal-name:hover,.cal-name:focus-visible{background:var(--row-hover);outline:none;-webkit-text-decoration:underline dotted;text-decoration:underline dotted}.cal-name-static{cursor:default}.cal-name-static:hover{background:0 0;text-decoration:none}.cal-arrival{background:color-mix(in srgb, var(--muted) 18%, transparent);color:var(--text);border-radius:4px;margin-inline-start:10px;padding:0 6px;font-size:.85em;font-weight:600;text-decoration:none;display:inline-block}.cal-name .cal-arrival{margin-inline-start:0}.cal-name:not(.cal-name-static) .cal-arrival{cursor:pointer}.cal-name:not(.cal-name-static) .cal-arrival:hover{box-shadow:0 0 0 1px var(--border-strong)}.cal-pop-time{width:9em}.cal-slot{border:1.2px dashed var(--cal-slot-border);background:var(--cal-slot-bg);cursor:pointer;border-radius:4px;width:5.5em;height:1.35em;margin:2px 0;padding:0;display:block}.cal-slot:hover,.cal-slot:focus-visible{border-style:solid;outline:none}.cal-cell-past{opacity:.62}.cal-head-past{opacity:.7}.cal-slot-static{cursor:default;border-color:var(--border-strong);background:0 0}.cal-slot.cal-slot-static:hover{border-color:var(--border-strong);background:0 0}.cal-card-sub{font:inherit;color:var(--muted);text-align:start;text-underline-offset:3px;cursor:pointer;background:0 0;border:none;margin-top:1px;padding:0;font-size:11.5px;-webkit-text-decoration:underline dotted;text-decoration:underline dotted}.cal-card-sub:hover,.cal-card-sub:focus-visible{color:var(--text);outline:none}.cal-team-num{min-width:2em;font:inherit;color:inherit;cursor:pointer;background:0 0;border:none;border-radius:6px;justify-self:center;padding:0 6px}.cal-team-num:hover,.cal-team-num:focus-visible{background:var(--row-hover);outline:none}.cal-team-num.is-active{background:var(--accent-soft);color:var(--accent-text)}.cal-team-got{font-weight:700}.cal-card-hl.cal-hl-0{animation:2s cubic-bezier(.2,.8,.2,1) cal-hl-0}.cal-card-hl.cal-hl-1{animation:2s cubic-bezier(.2,.8,.2,1) cal-hl-1}@keyframes cal-hl-0{0%{transform:scale(1);box-shadow:0 0 #0000}12%{box-shadow:0 0 0 3px var(--role), 0 6px 18px -6px var(--role);background:color-mix(in srgb, var(--role) 12%, var(--card));transform:scale(1.03)}70%{box-shadow:0 0 0 3px var(--role), 0 6px 18px -6px var(--role);background:color-mix(in srgb, var(--role) 12%, var(--card));transform:scale(1.03)}to{transform:scale(1);box-shadow:0 0 #0000}}@keyframes cal-hl-1{0%{transform:scale(1);box-shadow:0 0 #0000}12%{box-shadow:0 0 0 3px var(--role), 0 6px 18px -6px var(--role);background:color-mix(in srgb, var(--role) 12%, var(--card));transform:scale(1.03)}70%{box-shadow:0 0 0 3px var(--role), 0 6px 18px -6px var(--role);background:color-mix(in srgb, var(--role) 12%, var(--card));transform:scale(1.03)}to{transform:scale(1);box-shadow:0 0 #0000}}.cal-name-hl{background:color-mix(in srgb, var(--role) 18%, transparent);font-weight:700;transition:background .3s}.cal-pick-static{cursor:default}.cal-pick-static:hover{background:0 0;border-color:#0000}.cal-pick-busy.cal-pick-static:hover{background:var(--warning-bg)}@media (prefers-reduced-motion:reduce){.cal-card-hl.cal-hl-0,.cal-card-hl.cal-hl-1{box-shadow:0 0 0 3px var(--role);animation:none}}.cal-empty-week{padding:24px 4px}.cal-team-box{background:var(--card);border:1px solid var(--border);border-radius:8px;margin-top:4px;padding:6px 8px 8px;font-size:13px}.cal-team-cols,.cal-team-row{grid-template-columns:1fr 3em 3em;align-items:center;display:grid}.cal-team-cols{color:var(--muted);text-align:center;font-size:11px;font-weight:600}.cal-team-row>:not(.cal-team-name){text-align:center}.cal-team-name{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.cal-team-role{border-bottom:2px solid var(--role);color:var(--role);margin:8px 0 3px;padding-bottom:1px;font-weight:700}@media (max-width:768px){.cal-layout{flex-direction:column;align-items:stretch;gap:16px;min-width:0}.cal-team{flex:none}.cal-grid{grid-template-columns:minmax(0,1fr);row-gap:6px}.cal-grid>*{grid-column:1;grid-row:var(--m-row)}.cal-head{justify-content:center;align-items:baseline;gap:8px;display:flex}.cal-head:not(:first-child){margin-top:10px}.cal-head-date{display:inline}.cal-cell-empty,.cal-grid-empty .cal-head{display:none}.cal-cell-closed{padding:12px 6px}.cal-cell:not(.cal-cell-closed){flex-flow:wrap;align-items:flex-start}.cal-cell-head{flex-basis:100%}.cal-card{flex:140px;min-width:0}}.cal-popover{z-index:50;background:var(--card);border:1px solid var(--border-strong);box-shadow:var(--shadow-md);border-radius:10px;flex-direction:column;gap:8px;padding:12px;display:flex;position:fixed;overflow-y:auto}.cal-pop-title{font-weight:700}.cal-pop-foot{color:var(--muted);font-size:12.5px}.cal-pop-actions{flex-wrap:wrap;gap:8px;display:flex}.cal-pop-wide{width:100%}.cal-pick-list{flex-direction:column;gap:10px;display:flex}.cal-pick-group{border-top:1px solid var(--border);flex-direction:column;gap:2px;padding-top:8px;display:flex}.cal-pick-title{color:var(--muted);margin-bottom:2px;font-size:12px;font-weight:700}.cal-pick{width:100%;font:inherit;color:var(--text);text-align:start;cursor:pointer;background:0 0;border:1px solid #0000;border-radius:8px;flex-direction:column;align-items:flex-start;gap:3px;padding:7px 10px;display:flex}.cal-pick:hover,.cal-pick:focus-visible{background:var(--accent-soft);border-color:var(--border);outline:none}.cal-pick-name{font-size:14.5px;font-weight:600}.cal-pick-roles{flex-wrap:wrap;gap:4px 10px;display:flex}.cal-pick-busy{background:var(--warning-bg)}.cal-pick-busy:hover,.cal-pick-busy:focus-visible{background:var(--warning-bg);border-color:var(--warning)}.cal-pick-busy-note{color:var(--text);font-size:12px}.cal-role-tag{color:var(--text);text-decoration:underline;-webkit-text-decoration-color:var(--role);text-decoration-color:var(--role);text-underline-offset:3px;font-size:12px;text-decoration-thickness:2px}.cal-role-tag-strong{color:var(--role);font-size:13px;font-weight:700}.cal-pop-shift{border-inline-start:3px solid var(--role);background:var(--surface-2);border-radius:6px;flex-wrap:wrap;align-items:baseline;gap:4px 10px;padding:6px 10px;display:flex}.cal-pop-when{color:var(--muted);font-size:12.5px}.cal-link{font:inherit;color:var(--accent-text);text-align:start;cursor:pointer;background:0 0;border:none;padding:2px 0;font-size:13px}.tpl-grid{grid-template-columns:repeat(7,minmax(158px,1fr));row-gap:10px;min-width:1130px}.tpl-cell{gap:6px}.tpl-cell-invalid{box-shadow:inset 0 0 0 1.5px var(--error)}.tpl-cell-error{color:var(--error);font-size:11.5px}.tpl-cell-off{padding:4px}.tpl-add-shift{border:1.2px dashed var(--border-strong);width:100%;min-height:72px;font:inherit;color:var(--muted);cursor:pointer;background:0 0;border-radius:6px;flex-direction:column;flex:1;justify-content:center;align-items:center;gap:2px;font-size:12.5px;transition:background .15s,color .15s,border-color .15s;display:flex}.tpl-add-shift:hover,.tpl-add-shift:focus-visible{border-style:solid;border-color:var(--accent);background:var(--card);color:var(--text);outline:none}.tpl-add-period{color:var(--text);opacity:.55;font-weight:700}.tpl-menu-btn{font:inherit;color:var(--muted);cursor:pointer;background:0 0;border:none;border-radius:4px;margin:-3px -2px -3px 0;padding:0 6px;font-size:15px;line-height:1}.tpl-menu-btn:hover,.tpl-menu-btn:focus-visible{background:var(--row-hover);color:var(--text);outline:none}.tpl-times{justify-content:center;align-items:center;gap:3px;display:flex}.tpl-times .input{background:var(--card)}.tpl-no-roles{color:var(--muted);text-align:center;padding:2px;font-size:12px}.tpl-role{align-items:stretch;gap:3px;padding:4px 6px 5px}.tpl-role-head{justify-content:space-between;align-items:center;gap:4px;min-width:0;display:flex}.tpl-role-head .cal-card-role{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.tpl-x{width:20px;height:20px;color:var(--muted);cursor:pointer;background:0 0;border:none;border-radius:999px;flex:none;justify-content:center;align-items:center;margin-inline-end:-3px;padding:0;transition:background .15s,color .15s;display:inline-flex}.tpl-x svg{fill:none;stroke:currentColor;stroke-width:1.6px;stroke-linecap:round;width:9px;height:9px}.tpl-x:hover,.tpl-x:focus-visible{background:var(--error-bg);color:var(--error);outline:none}.tpl-stepper{border:1px solid var(--border);border-radius:6px;align-self:flex-start;align-items:center;display:inline-flex;overflow:hidden}.tpl-stepper button{background:var(--surface-2);width:24px;height:22px;font:inherit;color:var(--text);cursor:pointer;border:none;font-size:14px;line-height:1}.tpl-stepper button:hover:not(:disabled),.tpl-stepper button:focus-visible{background:color-mix(in srgb, var(--role) 18%, var(--surface-2));outline:none}.tpl-stepper button:disabled{color:var(--muted);opacity:.45;cursor:default}.tpl-count{text-align:center;font-variant-numeric:tabular-nums;min-width:26px;font-size:13.5px;font-weight:700}.tpl-add-role{border:1px dashed var(--border-strong);font:inherit;color:var(--muted);cursor:pointer;background:0 0;border-radius:6px;align-self:flex-start;padding:2px 6px;font-size:12px}.tpl-add-role:hover,.tpl-add-role:focus-visible{color:var(--text);background:var(--card);border-style:solid;outline:none}.tpl-role-foot{flex-wrap:wrap;align-items:center;gap:4px 8px;display:flex}.tpl-role-note{color:var(--muted);white-space:nowrap;font-size:11.5px}.tpl-role-changed{background:color-mix(in srgb, var(--role) 9%, var(--card))}.tpl-role-changed .tpl-role-note{color:var(--text);font-weight:600}.tpl-role-ghost{background:color-mix(in srgb, var(--card) 55%, transparent);border-style:dashed;opacity:.8;border-inline-start-style:dashed}.tpl-role-ghost .cal-card-role{text-decoration:line-through;text-decoration-thickness:1.5px}.tpl-restore{align-self:flex-start;padding:0;font-size:12px}.tpl-pick-danger .cal-pick-name{color:var(--error)}.tpl-days{grid-template-columns:1fr 1fr;gap:4px 12px;display:grid}.tpl-day{cursor:pointer;align-items:center;gap:6px;font-size:14px;display:flex}.tpl-savebar{z-index:20;background:var(--card);border:1px solid var(--border-strong);box-shadow:var(--shadow-md);border-radius:10px;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px 16px;padding:10px 14px;animation:.22s cubic-bezier(.2,.8,.2,1) tpl-savebar-in;display:flex;position:sticky;bottom:12px}.tpl-savebar-text{font-weight:600}@keyframes tpl-savebar-in{0%{opacity:0;transform:translateY(10px)}}@media (prefers-reduced-motion:reduce){.tpl-savebar{animation:none}}.dx-top{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:12px 20px;display:flex}.dx-top>div{flex:320px}.dx-date-form{flex-wrap:wrap;gap:8px;display:flex}.dx-date-form .input{flex:150px}.dx-day{background:var(--card);border:1px solid var(--border);border-radius:12px;padding:8px;scroll-margin:90px}.dx-flash-0{animation:1.6s cubic-bezier(.2,.8,.2,1) dx-flash-0}.dx-flash-1{animation:1.6s cubic-bezier(.2,.8,.2,1) dx-flash-1}@keyframes dx-flash-0{15%,60%{box-shadow:0 0 0 3px var(--accent)}}@keyframes dx-flash-1{15%,60%{box-shadow:0 0 0 3px var(--accent)}}@media (prefers-reduced-motion:reduce){.dx-flash-0,.dx-flash-1{animation:none}}.dx-day-head{background:var(--cal-head);color:#fff;border-radius:8px;flex-wrap:wrap;align-items:center;gap:6px 12px;margin-bottom:8px;padding:7px 12px;display:flex}.dx-day-title{color:inherit;margin:0;font-size:15px;font-weight:700}.dx-badges{flex-wrap:wrap;flex:1;gap:6px;display:flex}.dx-badge{background:#ffffff29;border-radius:999px;padding:2px 9px;font-size:12px;font-weight:600}.dx-badge-warn{color:#3a2a00;background:#f5c451}.dx-back{font:inherit;color:inherit;cursor:pointer;background:0 0;border:1px solid #ffffff59;border-radius:999px;padding:3px 10px;font-size:12.5px}.dx-back:hover,.dx-back:focus-visible{background:#ffffff24;outline:none}.dx-shifts{grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:6px;display:grid}.dx-cell-end{align-items:center;gap:4px;display:inline-flex}.dx-noshifts{padding:6px 4px}.dx-cancelled{background:var(--error-bg);color:var(--error);border-radius:999px;margin-inline-start:8px;padding:1px 7px;font-size:11px;font-weight:600}.dx-cell-cancelled{background:repeating-linear-gradient(-45deg, var(--cal-cell), var(--cal-cell) 8px, var(--cal-cell-empty) 8px, var(--cal-cell-empty) 16px)}.stat-tile-head{align-items:center;gap:10px;margin-bottom:12px;display:flex}.stat-tile-head .stat-tile-label{margin-top:0}.stat-tile-icon{background:var(--accent-soft);width:30px;height:30px;color:var(--accent-text);border-radius:9px;flex-shrink:0;place-items:center;display:grid}.stat-tile-icon svg{width:16px;height:16px}.stat-tile-value{font-variant-numeric:tabular-nums}.week-summary{margin-bottom:20px}.text-link{color:var(--accent-text);font-size:13px;font-weight:600;text-decoration:none}.text-link:hover{text-decoration:underline}.timeline{grid-template-columns:repeat(3,1fr);gap:12px;margin:0;padding:0;list-style:none;display:grid}.timeline-step{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface-2);align-items:flex-start;gap:12px;padding:14px;display:flex;position:relative}.timeline-step:not(:last-child):after{content:"";top:31px;background:var(--border-strong);width:12px;height:2px;position:absolute;inset-inline-end:-12px}.timeline-icon{background:var(--accent-soft);width:36px;height:36px;color:var(--accent-text);border-radius:50%;flex-shrink:0;place-items:center;display:grid}.timeline-icon svg{width:18px;height:18px}.timeline-title{font-size:14px;font-weight:600}.timeline-when{color:var(--muted);margin-top:2px;font-size:13px}@media (max-width:768px){.timeline{grid-template-columns:1fr}.timeline-step:not(:last-child):after{top:auto;bottom:-12px;width:2px;height:12px;inset-inline:31px auto}}.list-toolbar{flex-wrap:wrap;align-items:center;gap:10px 14px;display:flex}.search-field{flex:240px;max-width:360px;position:relative}.search-field svg{top:50%;width:16px;height:16px;color:var(--muted);pointer-events:none;position:absolute;inset-inline-start:12px;translate:0 -50%}.search-field .input{padding-inline-start:36px}.chip-filter{flex-wrap:wrap;gap:6px;display:flex}.filter-chip{border:1px solid var(--border);background:var(--card);color:var(--muted);font:inherit;cursor:pointer;transition:background-color var(--dur-fast) var(--ease-out), color var(--dur-fast) var(--ease-out), border-color var(--dur-fast) var(--ease-out);border-radius:999px;align-items:center;gap:6px;padding:5px 12px;font-size:13px;display:inline-flex}.filter-chip-role:before{content:"";background:var(--role);border-radius:50%;width:7px;height:7px}.filter-chip:hover{border-color:var(--border-strong);color:var(--text)}.filter-chip.active{background:var(--accent-soft);color:var(--accent-text);border-color:#0000;font-weight:600}.scroll-fade{position:relative}.scroll-fade:before,.scroll-fade:after{content:"";z-index:2;opacity:0;pointer-events:none;width:40px;transition:opacity var(--dur) var(--ease-out);position:absolute;top:0;bottom:6px}.scroll-fade:before{background:linear-gradient(to right, var(--card), transparent);inset-inline-start:0}.scroll-fade:after{background:linear-gradient(to left, var(--card), transparent);inset-inline-end:0}[dir=rtl] .scroll-fade:before{background:linear-gradient(to left, var(--card), transparent)}[dir=rtl] .scroll-fade:after{background:linear-gradient(to right, var(--card), transparent)}.scroll-fade[data-more-start]:before,.scroll-fade[data-more-end]:after{opacity:1}:root[data-theme=dark] .location-map .leaflet-tile-pane{filter:invert()hue-rotate(180deg)brightness(.9)contrast(.9)saturate(.55)}.centered-shell{background:radial-gradient(ellipse 900px 520px at 50% -8%, var(--accent-soft), transparent 65%), radial-gradient(ellipse 640px 420px at 85% 105%, color-mix(in srgb, var(--accent-2) 9%, transparent), transparent 70%), var(--bg);background-size:130% 130%,150% 150%,auto;animation:22s ease-in-out infinite alternate login-drift}@keyframes login-drift{0%{background-position:50% 0,0 100%,0 0}to{background-position:50% 30%,100% 60%,0 0}}.login-brand,.login-card{animation:enter var(--dur-slow) var(--ease-out) backwards}.login-card{animation-delay:80ms}@keyframes fade-in{0%{opacity:0}}@keyframes bar-grow{0%{transform:scaleX(0)}}@keyframes donut-sweep{0%{stroke-dasharray:0 302}}.bar{transform-origin:0;animation:bar-grow .7s var(--ease-out) backwards;animation-delay:calc(min(var(--i,0), 20) * 28ms)}[dir=rtl] .bar{transform-origin:100%}.bar-value{animation:fade-in var(--dur-slow) var(--ease-out) backwards;animation-delay:calc(min(var(--i,0), 20) * 28ms + .42s)}.donut-seg{animation:donut-sweep .9s var(--ease-out) backwards}.heatmap tbody tr{animation:fade-in .42s var(--ease-out) backwards;animation-delay:calc(min(var(--i,0), 20) * 30ms + 80ms)}@media (prefers-reduced-motion:reduce){.bar,.bar-value,.donut-seg,.heatmap tbody tr{animation:none}}.cal-slot{border-color:var(--border-strong);transition:border-color var(--dur-fast) var(--ease-out), background-color var(--dur-fast) var(--ease-out);background:0 0}.cal-slot:hover,.cal-slot:focus-visible{border-color:var(--accent);background:var(--accent-soft)}.cal-slot-short,.cal-slot-short:hover,.cal-slot-short:focus-visible{border-color:var(--cal-slot-border);background:var(--cal-slot-bg)}.stat-tile-delta{color:var(--muted);align-items:center;gap:4px;margin-top:6px;font-size:12px;display:inline-flex}.stat-tile-delta svg{width:14px;height:14px}.stat-tile-delta bdi{font-variant-numeric:tabular-nums;font-weight:600}.stat-tile-delta-up bdi,.stat-tile-delta-up svg{color:var(--success)}.stat-tile-delta-down bdi,.stat-tile-delta-down svg{color:var(--error)}.request-list{gap:10px;margin:0;padding:0;list-style:none;display:grid}.request-card{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface-2);transition:opacity var(--dur) var(--ease-out), transform var(--dur) var(--ease-out), border-color var(--dur-fast) var(--ease-out);align-items:flex-start;gap:12px;padding:14px 16px;display:flex}.request-card:hover{border-color:var(--border-strong)}.request-card-leaving{opacity:0;transform:scale(.98)}.request-body{flex:1;min-width:0}.request-title{font-size:14px;font-weight:600}.request-meta{color:var(--muted);margin-top:2px;font-size:13px}.request-reason{border-inline-start:2px solid var(--border-strong);color:var(--text);margin-top:8px;padding-inline-start:10px;font-size:13px}.request-actions{flex-shrink:0;gap:8px;display:flex}.request-actions .btn svg{width:15px;height:15px}.heading-count{background:var(--accent-soft);min-width:22px;height:22px;color:var(--accent-text);vertical-align:2px;border-radius:999px;place-items:center;margin-inline-start:8px;padding:0 7px;font-size:12px;font-weight:700;display:inline-grid}@media (max-width:768px){.request-card{flex-wrap:wrap}.request-actions{width:100%;padding-inline-start:40px}}:is(.cal-name,.cal-slot,.cal-card-sub,.cal-team-num,.tpl-add-shift,.tpl-menu-btn,.tpl-x,.tpl-stepper button,.tpl-add-role,.dx-back):focus-visible{outline:2px solid var(--accent-text);outline-offset:2px}@media (max-width:768px){.table.workers-table td.roles-empty{display:none}}.report-body>*{transition:opacity var(--dur) var(--ease-out)}.report-body[data-pending]>:not(.report-head){opacity:.45;pointer-events:none;transition-delay:.12s}.report-body .report-head{position:relative}.report-body[data-pending] .report-head:after{content:"";inset-inline:0;background:linear-gradient(90deg, transparent, var(--accent), transparent) no-repeat;height:2px;animation:report-progress 1.1s var(--ease-in-out) infinite;background-size:35% 100%;border-radius:2px;position:absolute;bottom:-9px}@keyframes report-progress{0%{background-position:-40% 0}to{background-position:140% 0}}@media (prefers-reduced-motion:reduce){.report-body[data-pending] .report-head:after{background:var(--accent);opacity:.5;animation:none}}.setup{margin-bottom:20px}.stack>.setup{margin-bottom:0}.setup-progress{white-space:nowrap;flex-shrink:0}.setup-steps{flex-direction:column;gap:8px;margin:0;padding:0;list-style:none;display:flex}.setup-step{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface-2);align-items:center;gap:12px;padding:12px 14px;display:flex}.setup-icon{background:var(--accent-soft);width:36px;height:36px;color:var(--accent-text);border-radius:50%;flex-shrink:0;place-items:center;display:grid}.setup-icon svg{width:18px;height:18px}.setup-step.is-done .setup-icon{background:var(--success-bg);color:var(--success)}.setup-text{flex:1;min-width:0}.setup-title{font-size:14px;font-weight:600}.setup-step.is-done .setup-title{color:var(--muted)}.setup-todo{color:var(--muted);margin-top:2px;font-size:13px}.setup-step .btn{flex-shrink:0;text-decoration:none}.setup-bot{color:var(--muted);align-items:flex-start;gap:8px;margin-top:14px;font-size:13px;display:flex}.setup-bot svg{flex-shrink:0;width:16px;height:16px;margin-top:2px}@media (max-width:560px){.setup .card-header{flex-direction:column;gap:8px}.setup-step{flex-wrap:wrap;row-gap:8px}.setup-text{flex-basis:calc(100% - 48px)}.setup-step .btn,.setup-step .badge{margin-inline-start:48px}}.setup-warning{border-radius:var(--radius);border:1px solid var(--warning);background:var(--warning-bg);color:var(--text);align-items:flex-start;gap:10px;padding:11px 14px;font-size:13.5px;line-height:1.5;display:flex}.setup-warning svg{width:17px;height:17px;color:var(--warning);flex-shrink:0;margin-top:2px}.setup-warning strong{font-weight:700}.setup-summary{border-color:var(--warning)}.setup-summary-title{align-items:center;gap:8px;margin-bottom:4px;display:flex}.setup-summary-title svg{width:19px;height:19px;color:var(--warning);flex-shrink:0}.setup-summary-body{margin-bottom:12px}.setup-summary-list{flex-wrap:wrap;gap:8px;margin:0;padding:0;list-style:none;display:flex}.setup-summary-list a{background:var(--warning-bg);color:var(--text);border-radius:999px;padding:5px 11px;font-size:13px;font-weight:600;text-decoration:none;transition:background .12s;display:inline-block}.setup-summary-list a:hover,.setup-summary-list a:focus-visible{background:color-mix(in srgb, var(--warning) 34%, transparent)}.tab-warn-dot{background:var(--warning);vertical-align:middle;border-radius:50%;width:6px;height:6px;margin-inline-start:6px;display:inline-block}@media (max-width:560px){.setup-warning{padding:10px 12px;font-size:13px}.setup-summary-list{flex-direction:column;align-items:flex-start}}
