@import url(https://fonts.googleapis.com/css2?family=IBM+Plex+Mono:wght@400;500;600&family=IBM+Plex+Sans+Condensed:wght@500;600;700&family=IBM+Plex+Sans:wght@400;500;600;700&display=swap);body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}.break-period{background-color:#fc1408ba;height:"100%";z-index:1}.break-indicator{background-color:#fff;border-radius:50%;box-shadow:0 0 3px #0000004d;padding:2px;position:absolute;top:-20px;z-index:10}.break-indicator svg{color:#ff9800;display:block}.shift{bottom:0;height:calc(100% - 20px);overflow:visible}.fixed-buttons{display:flex;gap:10px;left:20px;position:fixed;top:20px;z-index:1000}.fixed-buttons button{background-color:#007bff9d;border:none;border-radius:5px;box-shadow:0 2px 5px #0003;color:#fff;cursor:pointer;font-size:16px;padding:10px 15px;transition:background-color .3s ease}.fixed-buttons button:hover{background-color:#0056b3}.fixed-buttons button:disabled{background-color:#cccccca0;cursor:not-allowed}.generate-schedule-button{background-color:#28a746b1;left:50%;position:fixed;top:20px;transform:translateX(-50%);z-index:1000}.generate-schedule-button,.logout_button{border:none;border-radius:5px;box-shadow:0 2px 5px #0003;color:#fff;cursor:pointer;font-size:16px;padding:10px 15px;transition:background-color .3s ease}.logout_button{background-color:#dc2626;position:relative;right:auto;top:auto}.logout_button:hover{background-color:#b91c1c}.generate-schedule-button:hover{background-color:#218838}.generate-schedule-button:disabled{background-color:#ccc;cursor:not-allowed}.schedule-dashboard,body{font-family:Arial,sans-serif}.schedule-dashboard{background-color:#fff;color:#000;padding:16px}.dashboard-title{font-size:24px;font-weight:700;margin-bottom:16px;margin-top:70px}.schedule-container{overflow-x:auto}.time-slots{background-color:#f9fafb;border-bottom:1px solid #e5e7eb;border-radius:8px 8px 0 0;display:flex;margin-left:20px;margin-top:30px;padding:4px 0;position:sticky;z-index:10}.time-slot{flex:1 1;min-width:50px;position:relative;text-align:center}.time-label{font-size:10px;padding:4px 0}.time-line{background-color:#e5e7eb;bottom:-1px;left:0;position:absolute;top:100%;width:1px}.day-schedule{margin-bottom:10px;margin-right:40px}.day-title{color:#1f2937;font-size:20px;font-weight:600;margin-bottom:8px}.schedule-grid{grid-gap:1px;background-color:#e5e7eb;border-radius:8px;display:grid;gap:1px;grid-template-columns:60px 1fr;overflow:hidden;padding:1px}.schedule-row{background-color:#fff;display:contents}.row-label{background-color:#fff;font-weight:700;padding-top:7px;text-align:center;width:60px}.shifts-container{background-color:#fff;flex-grow:1;height:32px;position:relative}.shift{align-items:center;box-sizing:border-box;cursor:pointer;display:flex;height:100%;justify-content:center;min-width:30px;overflow:hidden;padding:0 5px;position:absolute}.shift-content{font-size:12px;overflow:hidden;text-align:center;text-overflow:ellipsis;white-space:nowrap;width:100%}.shift.staff.shape-of-day{background-color:#22c55e26;border:1px solid #22c55e4d;border-radius:6px}.shift.stint.shape-of-day{background-color:#3b82f626;border:1px solid #3b82f64d;border-radius:6px}.shift.staff.scheduled{background-color:#22c55e40;border:1px solid #22c55e66;border-radius:6px}.shift.cleaner.scheduled{background-color:#06b6d440;border:1px solid #06b6d466;border-radius:6px}.shift.manager.scheduled{background-color:#eab30840;border:1px solid #eab30866;border-radius:6px}.shift.server.scheduled{background-color:#22c55e4d;border:1px solid #22c55e66;border-radius:6px}.shift.stint.scheduled{background-color:#3b82f640;border:1px solid #3b82f666;border-radius:6px}.shift.tbc.scheduled{background-color:#ef444440;border:1px solid #ef444466;border-radius:6px}input[type=file]{margin-bottom:10px}.generate-schedule-container{display:flex;justify-content:center}.generate-schedule button{background-color:#007bff;border:none;border-radius:4px;color:#fff;cursor:pointer;margin-right:20px;margin-top:20px;padding:5px 10px}@keyframes spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.animate-spin{animation:spin 1s linear infinite}.schedule-controls{display:flex;justify-content:center;margin:20px 0}.schedule-controls button{background-color:#007bff;border:none;border-radius:4px;color:#fff;cursor:pointer;margin:0 5px;padding:5px 10px}.schedule-controls span{margin-left:20px}.total-coverages{display:flex;gap:20px;justify-content:center;margin-bottom:20px;margin-top:20px}.total-coverage-summary{background-color:#f0f0f0;border-radius:8px;box-shadow:0 2px 4px #0000001a;flex-basis:calc(50% - 10px);flex-grow:0;flex-shrink:1;max-width:400px;padding:15px}.total-coverage-summary h2{font-size:1.2em;margin-bottom:10px;text-align:center}.total-coverages:only-child .total-coverage-summary{flex-basis:100%;max-width:400px}.total-coverage-summary{border-radius:4px;display:block;font-weight:700;margin-bottom:5px;padding:10px;text-align:center}.coverage-summary{background-color:#f0f0f0;border-radius:5px;display:flex;justify-content:space-around;margin-bottom:10px;margin-top:10px;padding:2px}.coverage-correct,.coverage-over,.coverage-title,.coverage-under{border-radius:3px;font-size:.9em;margin:3px;padding:5px 10px}.coverage-under{background-color:#ff00001a;color:#d32f2f}.coverage-over{background-color:#ffa5001a;color:#f57c00}.coverage-correct{background-color:#00ff001a;color:#388e3c}@media (max-width:768px){.total-coverages{align-items:center;flex-direction:column}.total-coverage-summary{flex-basis:100%;margin-bottom:15px;max-width:100%}}

/* ! tailwindcss v3.4.9 | MIT License | https://tailwindcss.com */*,:after,:before{border:0 solid #e5e7eb;box-sizing:border-box}:after,:before{--tw-content:""}:host,html{-webkit-text-size-adjust:100%;font-feature-settings:normal;-webkit-tap-highlight-color:transparent;font-family:ui-sans-serif,system-ui,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;font-variation-settings:normal;line-height:1.5;tab-size:4}body{line-height:inherit;margin:0}hr{border-top-width:1px;color:inherit;height:0}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,pre,samp{font-feature-settings:normal;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-size:1em;font-variation-settings:normal}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:initial}sub{bottom:-.25em}sup{top:-.5em}table{border-collapse:collapse;border-color:inherit;text-indent:0}button,input,optgroup,select,textarea{font-feature-settings:inherit;color:inherit;font-family:inherit;font-size:100%;font-variation-settings:inherit;font-weight:inherit;letter-spacing:inherit;line-height:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:initial;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:initial}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dd,dl,figure,h1,h2,h3,h4,h5,h6,hr,p,pre{margin:0}fieldset{margin:0}fieldset,legend{padding:0}menu,ol,ul{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::placeholder,textarea::placeholder{color:#9ca3af;opacity:1}[role=button],button{cursor:pointer}:disabled{cursor:default}audio,canvas,embed,iframe,img,object,svg,video{display:block;vertical-align:middle}img,video{height:auto;max-width:100%}[hidden]{display:none}*,::backdrop,:after,:before{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:#3b82f680;--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }.sr-only{clip:rect(0,0,0,0);border-width:0;height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;white-space:nowrap;width:1px}.pointer-events-none{pointer-events:none}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.inset-0{inset:0}.left-\[50\%\]{left:50%}.right-2{right:.5rem}.right-4{right:1rem}.top-4{top:1rem}.top-\[50\%\]{top:50%}.z-50{z-index:50}.-mx-1{margin-left:-.25rem;margin-right:-.25rem}.my-1{margin-bottom:.25rem;margin-top:.25rem}.block{display:block}.flex{display:flex}.inline-flex{display:inline-flex}.grid{display:grid}.h-10{height:2.5rem}.h-3\.5{height:.875rem}.h-4{height:1rem}.h-5{height:1.25rem}.h-6{height:1.5rem}.h-8{height:2rem}.h-9{height:2.25rem}.h-\[var\(--radix-select-trigger-height\)\]{height:var(--radix-select-trigger-height)}.h-px{height:1px}.max-h-96{max-height:24rem}.w-11{width:2.75rem}.w-3\.5{width:.875rem}.w-4{width:1rem}.w-5{width:1.25rem}.w-72{width:18rem}.w-9{width:2.25rem}.w-full{width:100%}.min-w-\[8rem\]{min-width:8rem}.min-w-\[var\(--radix-select-trigger-width\)\]{min-width:var(--radix-select-trigger-width)}.max-w-lg{max-width:32rem}.flex-1{flex:1 1}.shrink-0{flex-shrink:0}.translate-x-\[-50\%\]{--tw-translate-x:-50%}.translate-x-\[-50\%\],.translate-y-\[-50\%\]{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.translate-y-\[-50\%\]{--tw-translate-y:-50%}.cursor-default{cursor:default}.cursor-pointer{cursor:pointer}.select-none{-webkit-user-select:none;user-select:none}.flex-col{flex-direction:column}.flex-col-reverse{flex-direction:column-reverse}.items-center{align-items:center}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.gap-4{gap:1rem}.space-y-1\.5>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-bottom:calc(.375rem*var(--tw-space-y-reverse));margin-top:calc(.375rem*(1 - var(--tw-space-y-reverse)))}.overflow-hidden{overflow:hidden}.whitespace-nowrap{white-space:nowrap}.rounded-full{border-radius:9999px}.rounded-lg{border-radius:var(--radius)}.rounded-md{border-radius:calc(var(--radius) - 2px)}.rounded-sm{border-radius:calc(var(--radius) - 4px)}.rounded-xl{border-radius:.75rem}.border{border-width:1px}.border-2{border-width:2px}.border-b{border-bottom-width:1px}.border-destructive\/50{border-color:hsl(var(--destructive)/.5)}.border-input{border-color:hsl(var(--input))}.border-transparent{border-color:#0000}.bg-background{background-color:hsl(var(--background))}.bg-black\/80{background-color:#000c}.bg-card{background-color:hsl(var(--card))}.bg-destructive{background-color:hsl(var(--destructive))}.bg-muted{background-color:hsl(var(--muted))}.bg-popover{background-color:hsl(var(--popover))}.bg-primary{background-color:hsl(var(--primary))}.bg-secondary{background-color:hsl(var(--secondary))}.bg-transparent{background-color:initial}.bg-white{--tw-bg-opacity:1;background-color:rgb(255 255 255/var(--tw-bg-opacity))}.p-1{padding:.25rem}.p-4{padding:1rem}.p-6{padding:1.5rem}.px-2{padding-left:.5rem;padding-right:.5rem}.px-3{padding-left:.75rem;padding-right:.75rem}.px-4{padding-left:1rem;padding-right:1rem}.px-8{padding-left:2rem;padding-right:2rem}.py-1{padding-bottom:.25rem;padding-top:.25rem}.py-1\.5{padding-bottom:.375rem;padding-top:.375rem}.py-2{padding-bottom:.5rem;padding-top:.5rem}.py-4{padding-top:1rem}.pb-4,.py-4{padding-bottom:1rem}.pl-2{padding-left:.5rem}.pr-8{padding-right:2rem}.pt-0{padding-top:0}.text-center{text-align:center}.text-lg{font-size:1.125rem;line-height:1.75rem}.text-sm{font-size:.875rem;line-height:1.25rem}.text-xs{font-size:.75rem;line-height:1rem}.font-medium{font-weight:500}.font-semibold{font-weight:600}.leading-none{line-height:1}.tracking-tight{letter-spacing:-.025em}.text-card-foreground{color:hsl(var(--card-foreground))}.text-destructive{color:hsl(var(--destructive))}.text-destructive-foreground{color:hsl(var(--destructive-foreground))}.text-foreground{color:hsl(var(--foreground))}.text-muted-foreground{color:hsl(var(--muted-foreground))}.text-popover-foreground{color:hsl(var(--popover-foreground))}.text-primary{color:hsl(var(--primary))}.text-primary-foreground{color:hsl(var(--primary-foreground))}.text-secondary-foreground{color:hsl(var(--secondary-foreground))}.underline-offset-4{text-underline-offset:4px}.opacity-50{opacity:.5}.opacity-70{opacity:.7}.shadow{--tw-shadow:0 1px 3px 0 #0000001a,0 1px 2px -1px #0000001a;--tw-shadow-colored:0 1px 3px 0 var(--tw-shadow-color),0 1px 2px -1px var(--tw-shadow-color)}.shadow,.shadow-lg{box-shadow:0 0 #0000,0 0 #0000,var(--tw-shadow);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.shadow-lg{--tw-shadow:0 10px 15px -3px #0000001a,0 4px 6px -4px #0000001a;--tw-shadow-colored:0 10px 15px -3px var(--tw-shadow-color),0 4px 6px -4px var(--tw-shadow-color)}.shadow-md{--tw-shadow:0 4px 6px -1px #0000001a,0 2px 4px -2px #0000001a;--tw-shadow-colored:0 4px 6px -1px var(--tw-shadow-color),0 2px 4px -2px var(--tw-shadow-color)}.shadow-md,.shadow-sm{box-shadow:0 0 #0000,0 0 #0000,var(--tw-shadow);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.shadow-sm{--tw-shadow:0 1px 2px 0 #0000000d;--tw-shadow-colored:0 1px 2px 0 var(--tw-shadow-color)}.outline-none{outline:2px solid #0000;outline-offset:2px}.outline{outline-style:solid}.ring-0{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),0 0 #0000;box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}.ring-offset-background{--tw-ring-offset-color:hsl(var(--background))}.transition-all{transition-duration:.15s;transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1)}.transition-colors{transition-duration:.15s;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1)}.transition-opacity{transition-duration:.15s;transition-property:opacity;transition-timing-function:cubic-bezier(.4,0,.2,1)}.transition-transform{transition-duration:.15s;transition-property:transform;transition-timing-function:cubic-bezier(.4,0,.2,1)}.duration-200{transition-duration:.2s}@keyframes enter{0%{opacity:1;opacity:var(--tw-enter-opacity,1);transform:translateZ(0) scaleX(1) rotate(0);transform:translate3d(var(--tw-enter-translate-x,0),var(--tw-enter-translate-y,0),0) scale3d(var(--tw-enter-scale,1),var(--tw-enter-scale,1),var(--tw-enter-scale,1)) rotate(var(--tw-enter-rotate,0))}}@keyframes exit{to{opacity:1;opacity:var(--tw-exit-opacity,1);transform:translateZ(0) scaleX(1) rotate(0);transform:translate3d(var(--tw-exit-translate-x,0),var(--tw-exit-translate-y,0),0) scale3d(var(--tw-exit-scale,1),var(--tw-exit-scale,1),var(--tw-exit-scale,1)) rotate(var(--tw-exit-rotate,0))}}.duration-200{animation-duration:.2s}.schedule-scores-container{display:flex;flex-wrap:wrap;gap:20px;justify-content:center}.schedule-scores{background-color:#f0f0f0;border-radius:8px;margin-top:20px;max-width:500px;padding:15px;width:100%}.schedule-scores-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:10px}.overall-score,.schedule-scores h2{margin-bottom:10px}.overall-score{font-size:1.2em;font-weight:700}.toggle-scores-btn{align-items:center;background-color:#007bff;border:none;border-radius:4px;color:#fff;cursor:pointer;display:flex;padding:8px 16px}.toggle-scores-btn:hover{background-color:#0056b3}.schedule-scores table{border-collapse:collapse;margin-top:10px;width:100%}.schedule-scores td,.schedule-scores th{border-bottom:1px solid #ddd;padding:8px;text-align:left}.schedule-scores th{background-color:#e0e0e0;font-weight:700}.schedule-scores tr:nth-child(2n){background-color:#f8f8f8}.schedule-scores tr:hover{background-color:#e8e8e8}.rules-section{margin-top:20px}.rules-section h3{margin-bottom:10px}.accordion-trigger{background-color:#e0e0e0;border:none;cursor:pointer;padding:10px;text-align:left;width:100%}.accordion-content{background-color:#f8f8f8;padding:10px}@media (max-width:768px){.schedule-scores{max-width:100%}}.notification{background-color:#fff3cd;border:1px solid #ffeeba;border-radius:4px;color:#856404;margin-bottom:15px;padding:10px;text-align:center}.config-panel{border:1px solid #ccc;border-radius:4px;margin-top:20px;padding:16px}.config-panel-header{align-items:center;cursor:pointer;display:flex;justify-content:space-between}.config-panel-content{margin-top:16px}.config-item{align-items:center;display:flex;justify-content:space-between;margin-bottom:8px}.config-item input{width:100px}.dashboard-buttons{display:flex;gap:10px;position:fixed;right:20px;top:20px;z-index:1000}.download_button{align-items:center;background-color:#4caf4fab;border:none;border-radius:5px;box-shadow:0 2px 5px #0003;color:#fff;cursor:pointer;display:flex;font-size:16px;justify-content:center;padding:10px 15px;position:relative;right:auto;top:auto;transition:background-color .3s ease}.download_button:hover{background-color:#45a049}.download_button svg{margin-right:8px}.role-title{background:#f3f4f6;border-radius:6px;color:#6b7280;font-size:13px;font-weight:600;letter-spacing:.05em;margin-bottom:6px;margin-top:12px;padding:6px 16px;text-transform:uppercase}.role-schedule{margin-bottom:12px}.busy-periods-container{height:24px;margin-left:60px;margin-top:4px;position:relative}.busy-period-row{align-items:center;display:flex;height:12px;position:relative}.busy-periods-legend{font-size:10px;height:100%;left:-60px;position:absolute;top:0;width:55px}.busy-periods-legend,.legend-item{align-items:center;display:flex}.legend-color{height:6px;margin-right:2px;width:10px}.legend-label{white-space:nowrap}.day-busy-periods,.week-busy-periods{height:6px;left:0;position:absolute;right:0}.selection-container{background-color:#f8f9fa;border-radius:.5rem;margin-bottom:1rem;padding:1rem}.selection-container select{background-color:#fff;border:1px solid #e2e8f0;border-radius:.375rem;color:#1a202c;font-size:.875rem;padding:.5rem;transition:border-color .2s}.selection-container select:hover{border-color:#cbd5e0}.selection-container select:focus{border-color:#4299e1;box-shadow:0 0 0 3px #4299e126;outline:none}.load-data-btn{align-items:center;background-color:#4299e1;border:none;border-radius:.375rem;color:#fff;cursor:pointer;display:flex;font-size:.875rem;height:38px;padding:.5rem 1rem;transition:background-color .2s}.load-data-btn:hover{background-color:#3182ce}.load-data-btn:disabled{background-color:#a0aec0;cursor:not-allowed}.collapsible-section{border:1px solid #e5e7eb;border-radius:8px;margin-top:16px;overflow:hidden}.collapsible-header{align-items:center;background:#f9fafb;cursor:pointer;display:flex;justify-content:space-between;padding:12px 16px;-webkit-user-select:none;user-select:none}.collapsible-header:hover{background:#f3f4f6}.collapsible-title{color:#1f2937;font-size:16px;font-weight:600;margin:0}.coverage-diff-row{align-items:center;display:flex;height:22px;margin-bottom:4px;margin-top:2px}.coverage-diff-row .row-label{color:#6b7280;font-size:10px;font-weight:600;min-width:60px;padding-right:8px;text-align:right;width:60px}.coverage-diff-row .shifts-container{flex:1 1;height:100%;position:relative}.coverage-diff-slot{align-items:center;border-radius:2px;display:flex;font-size:9px;font-weight:600;height:100%;justify-content:center;overflow:hidden;position:absolute;top:0}.coverage-diff-slot.diff-positive{background:#22c55e40;color:#16a34a}.coverage-diff-slot.diff-negative{background:#ef444440;color:#dc2626}.headcount-badge-positive{background:#22c55e26;color:#16a34a}.headcount-badge-negative,.headcount-badge-positive{border-radius:4px;font-size:12px;font-weight:600;margin-left:8px;padding:1px 6px}.headcount-badge-negative{background:#ef444426;color:#dc2626}.file\:border-0::file-selector-button{border-width:0}.file\:bg-transparent::file-selector-button{background-color:initial}.file\:text-sm::file-selector-button{font-size:.875rem;line-height:1.25rem}.file\:font-medium::file-selector-button{font-weight:500}.placeholder\:text-muted-foreground::placeholder{color:hsl(var(--muted-foreground))}.hover\:bg-accent:hover{background-color:hsl(var(--accent))}.hover\:bg-destructive\/90:hover{background-color:hsl(var(--destructive)/.9)}.hover\:bg-primary\/90:hover{background-color:hsl(var(--primary)/.9)}.hover\:bg-secondary\/80:hover{background-color:hsl(var(--secondary)/.8)}.hover\:text-accent-foreground:hover{color:hsl(var(--accent-foreground))}.hover\:underline:hover{text-decoration-line:underline}.hover\:opacity-100:hover{opacity:1}.focus\:bg-accent:focus{background-color:hsl(var(--accent))}.focus\:text-accent-foreground:focus{color:hsl(var(--accent-foreground))}.focus\:outline-none:focus{outline:2px solid #0000;outline-offset:2px}.focus\:ring-1:focus{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color)}.focus\:ring-1:focus,.focus\:ring-2:focus{box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),0 0 #0000;box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}.focus\:ring-2:focus{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color)}.focus\:ring-ring:focus{--tw-ring-color:hsl(var(--ring))}.focus\:ring-offset-2:focus{--tw-ring-offset-width:2px}.focus-visible\:outline-none:focus-visible{outline:2px solid #0000;outline-offset:2px}.focus-visible\:ring-1:focus-visible{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),0 0 #0000;box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}.focus-visible\:ring-2:focus-visible{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),0 0 #0000;box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}.focus-visible\:ring-ring:focus-visible{--tw-ring-color:hsl(var(--ring))}.focus-visible\:ring-offset-2:focus-visible{--tw-ring-offset-width:2px}.focus-visible\:ring-offset-background:focus-visible{--tw-ring-offset-color:hsl(var(--background))}.disabled\:pointer-events-none:disabled{pointer-events:none}.disabled\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\:opacity-50:disabled{opacity:.5}.peer:disabled~.peer-disabled\:cursor-not-allowed{cursor:not-allowed}.peer:disabled~.peer-disabled\:opacity-70{opacity:.7}.data-\[disabled\]\:pointer-events-none[data-disabled]{pointer-events:none}.data-\[side\=bottom\]\:translate-y-1[data-side=bottom]{--tw-translate-y:0.25rem}.data-\[side\=bottom\]\:translate-y-1[data-side=bottom],.data-\[side\=left\]\:-translate-x-1[data-side=left]{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.data-\[side\=left\]\:-translate-x-1[data-side=left]{--tw-translate-x:-0.25rem}.data-\[side\=right\]\:translate-x-1[data-side=right]{--tw-translate-x:0.25rem}.data-\[side\=right\]\:translate-x-1[data-side=right],.data-\[side\=top\]\:-translate-y-1[data-side=top]{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.data-\[side\=top\]\:-translate-y-1[data-side=top]{--tw-translate-y:-0.25rem}.data-\[state\=checked\]\:translate-x-5[data-state=checked]{--tw-translate-x:1.25rem}.data-\[state\=checked\]\:translate-x-5[data-state=checked],.data-\[state\=unchecked\]\:translate-x-0[data-state=unchecked]{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.data-\[state\=unchecked\]\:translate-x-0[data-state=unchecked]{--tw-translate-x:0px}@keyframes accordion-up{0%{height:var(--radix-accordion-content-height)}to{height:0}}.data-\[state\=closed\]\:animate-accordion-up[data-state=closed]{animation:accordion-up .2s ease-out}@keyframes accordion-down{0%{height:0}to{height:var(--radix-accordion-content-height)}}.data-\[state\=open\]\:animate-accordion-down[data-state=open]{animation:accordion-down .2s ease-out}.data-\[state\=checked\]\:border-blue-500[data-state=checked]{--tw-border-opacity:1;border-color:rgb(59 130 246/var(--tw-border-opacity))}.data-\[state\=unchecked\]\:border-gray-400[data-state=unchecked]{--tw-border-opacity:1;border-color:rgb(156 163 175/var(--tw-border-opacity))}.data-\[state\=checked\]\:bg-blue-100[data-state=checked]{--tw-bg-opacity:1;background-color:rgb(219 234 254/var(--tw-bg-opacity))}.data-\[state\=open\]\:bg-accent[data-state=open]{background-color:hsl(var(--accent))}.data-\[state\=unchecked\]\:bg-gray-200[data-state=unchecked]{--tw-bg-opacity:1;background-color:rgb(229 231 235/var(--tw-bg-opacity))}.data-\[state\=open\]\:text-muted-foreground[data-state=open]{color:hsl(var(--muted-foreground))}.data-\[disabled\]\:opacity-50[data-disabled]{opacity:.5}.data-\[state\=open\]\:animate-in[data-state=open]{--tw-enter-opacity:initial;--tw-enter-scale:initial;--tw-enter-rotate:initial;--tw-enter-translate-x:initial;--tw-enter-translate-y:initial;animation-duration:.15s;animation-name:enter}.data-\[state\=closed\]\:animate-out[data-state=closed]{--tw-exit-opacity:initial;--tw-exit-scale:initial;--tw-exit-rotate:initial;--tw-exit-translate-x:initial;--tw-exit-translate-y:initial;animation-duration:.15s;animation-name:exit}.data-\[state\=closed\]\:fade-out-0[data-state=closed]{--tw-exit-opacity:0}.data-\[state\=open\]\:fade-in-0[data-state=open]{--tw-enter-opacity:0}.data-\[state\=closed\]\:zoom-out-95[data-state=closed]{--tw-exit-scale:.95}.data-\[state\=open\]\:zoom-in-95[data-state=open]{--tw-enter-scale:.95}.data-\[side\=bottom\]\:slide-in-from-top-2[data-side=bottom]{--tw-enter-translate-y:-0.5rem}.data-\[side\=left\]\:slide-in-from-right-2[data-side=left]{--tw-enter-translate-x:0.5rem}.data-\[side\=right\]\:slide-in-from-left-2[data-side=right]{--tw-enter-translate-x:-0.5rem}.data-\[side\=top\]\:slide-in-from-bottom-2[data-side=top]{--tw-enter-translate-y:0.5rem}.data-\[state\=closed\]\:slide-out-to-left-1\/2[data-state=closed]{--tw-exit-translate-x:-50%}.data-\[state\=closed\]\:slide-out-to-top-\[48\%\][data-state=closed]{--tw-exit-translate-y:-48%}.data-\[state\=open\]\:slide-in-from-left-1\/2[data-state=open]{--tw-enter-translate-x:-50%}.data-\[state\=open\]\:slide-in-from-top-\[48\%\][data-state=open]{--tw-enter-translate-y:-48%}.dark\:border-destructive:is(.dark *){border-color:hsl(var(--destructive))}@media (min-width:640px){.sm\:flex-row{flex-direction:row}.sm\:justify-end{justify-content:flex-end}.sm\:space-x-2>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-left:calc(.5rem*(1 - var(--tw-space-x-reverse)));margin-right:calc(.5rem*var(--tw-space-x-reverse))}.sm\:rounded-lg{border-radius:var(--radius)}.sm\:text-left{text-align:left}}.\[\&\>span\]\:line-clamp-1>span{-webkit-box-orient:vertical;-webkit-line-clamp:1;display:-webkit-box;overflow:hidden}.\[\&\>svg\+div\]\:translate-y-\[-3px\]>svg+div{--tw-translate-y:-3px;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.\[\&\>svg\]\:absolute>svg{position:absolute}.\[\&\>svg\]\:left-4>svg{left:1rem}.\[\&\>svg\]\:top-4>svg{top:1rem}.\[\&\>svg\]\:text-destructive>svg{color:hsl(var(--destructive))}.\[\&\>svg\]\:text-foreground>svg{color:hsl(var(--foreground))}.\[\&\>svg\~\*\]\:pl-7>svg~*{padding-left:1.75rem}.\[\&\[data-state\=open\]\>svg\]\:rotate-180[data-state=open]>svg{--tw-rotate:180deg;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.file-upload-section{background-color:#f5f5f5;border-radius:8px;box-shadow:0 2px 4px #0000001a;margin-bottom:20px;padding:20px}.file-upload-grid{grid-gap:20px;display:grid;gap:20px;grid-template-columns:repeat(2,1fr)}.file-upload-item{display:flex;flex-direction:column}.file-upload-label{color:#333;font-weight:700;margin-bottom:5px}.file-input-wrapper{display:inline-block;position:relative}.file-input{left:-9999px;opacity:0;position:absolute}.file-input-button{align-items:center;background-color:#4caf50;border:none;border-radius:4px;color:#fff;cursor:pointer;display:inline-flex;font-size:16px;padding:10px 20px;text-align:center;text-decoration:none;transition:background-color .3s}.file-input-button svg{margin-right:8px}.file-input-button:hover,.file-input:focus+.file-input-button{background-color:#45a049}.upload-defaults-btn{align-items:center;background-color:#3498db;border:none;border-radius:4px;color:#fff;cursor:pointer;display:inline-flex;font-size:16px;padding:10px 20px;text-align:center;text-decoration:none;transition:background-color .3s}.upload-defaults-btn svg{margin-right:8px}.upload-defaults-btn:hover{background-color:#2980b9}.selection-controls-container{align-items:flex-start;display:flex;gap:1rem}.selection-controls{background-color:#fff;border-radius:.375rem;color:#0f172a;font-size:.875rem;margin-bottom:1rem;max-width:600px;min-width:500px;padding:.75rem 1rem;width:50%}.selection-row{align-items:center;display:flex;flex-wrap:wrap;margin-bottom:.75rem;position:relative}.selection-row label{color:#94a3b8;flex-shrink:0;font-size:.75rem;font-weight:500;width:150px}.selection-row input,.selection-row select{background-color:#fff;border:1px solid #e2e8f0;border-radius:.25rem;color:#0f172a;flex:1 1;font-size:.75rem;height:2rem;padding:.375rem .75rem}.selection-row input.validation-error,.selection-row select.validation-error{background-color:#fef2f2;border-color:#ef4444}.error-message{color:#ef4444;font-size:.7rem;margin-left:150px;margin-top:.25rem;width:100%}.date-range-error,.time-range-error{color:#ef4444;font-size:.75rem;margin-bottom:.5rem;text-align:left;width:100%}.selection-row select{-webkit-appearance:none;appearance:none;background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%2394a3b8' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");background-position:right .5rem center;background-repeat:no-repeat;background-size:1em;padding-right:2rem}.selection-row input:focus,.selection-row select:focus{border-color:#3b82f6;box-shadow:0 0 0 1px #3b82f640;outline:none}.date-time-grid{grid-gap:.75rem;display:grid;gap:.75rem;grid-template-columns:1fr;grid-template-rows:auto auto auto auto}.icon-label{align-items:center;display:flex}.icon-label svg{color:#94a3b8;height:.875rem;margin-right:.375rem;width:.875rem}.test-request-btn{background-color:#4f46e5;border:none;border-radius:.375rem;color:#fff;cursor:pointer;font-size:.875rem;font-weight:500;height:fit-content;margin-top:.5rem;padding:.75rem 1rem;transition:background-color .2s;white-space:nowrap}.test-request-btn:hover{background-color:#4338ca}.test-request-btn:disabled{background-color:#9ca3af;cursor:not-allowed}@media (max-width:1200px){.selection-controls{width:40%}}@media (max-width:768px){.selection-controls-container{align-items:stretch;flex-direction:column}.selection-controls{min-width:auto;width:90%}.test-request-btn{align-self:flex-start}}.team-overview{padding:12px}.team-toolbar{flex-wrap:wrap;gap:10px;margin-bottom:16px}.team-search,.team-toolbar{align-items:center;display:flex}.team-search{background:#fff;border:1px solid #e5e7eb;border-radius:6px;flex:1 1;max-width:320px;min-width:180px;padding:6px 10px}.team-search__icon{color:#9ca3af;flex-shrink:0;margin-right:8px}.team-search__input{background:#0000;border:none;font-size:13px;outline:none;width:100%}.team-filter{background:#fff;border:1px solid #e5e7eb;border-radius:6px;color:#374151;font-size:13px;padding:6px 10px}.team-total-hours{color:#6b7280;font-size:13px;font-weight:500;margin-left:auto}.team-download-btn{align-items:center;background:#fff;border:1px solid #d1d5db;border-radius:6px;color:#374151;cursor:pointer;display:inline-flex;font-size:13px;font-weight:500;gap:6px;padding:6px 12px;transition:background .12s ease,border-color .12s ease,color .12s ease}.team-toolbar>.team-total-hours+.team-download-btn{margin-left:0}.team-toolbar>.team-download-btn:not(.team-total-hours+.team-download-btn){margin-left:auto}.team-download-btn:hover:not(:disabled){background:#2563eb;border-color:#2563eb;color:#fff}.team-download-btn:disabled{cursor:not-allowed;opacity:.5}.team-role-group{border:1px solid #e5e7eb;border-radius:8px;margin-bottom:8px;overflow:hidden}.team-role-group--inactive{border-color:#d1d5db}.team-role-group__header{align-items:center;background:#f9fafb;cursor:pointer;display:flex;justify-content:space-between;padding:10px 14px;-webkit-user-select:none;user-select:none}.team-role-group__header:hover{background:#f3f4f6}.team-role-group__title{align-items:center;color:#374151;display:flex;font-size:14px;font-weight:600;gap:8px}.team-role-group__count{background:#e5e7eb;border-radius:10px;color:#6b7280;font-size:12px;font-weight:500;padding:1px 8px}.team-role-group__hours{color:#6b7280;font-size:12px;font-weight:400}.team-role-group__members{display:flex;flex-direction:column}.team-card{border-bottom:1px solid #f0f0f0}.team-card:last-child{border-bottom:none}.team-card--inactive{opacity:.5}.team-card__header{align-items:center;cursor:pointer;display:flex;gap:10px;padding:10px 14px}.team-card__header:hover{background:#fafafa}.team-card__avatar{align-items:center;background:#e5e7eb;border-radius:50%;color:#374151;display:flex;flex-shrink:0;font-size:12px;font-weight:600;height:34px;justify-content:center;width:34px}.team-card__summary{display:flex;flex:1 1;flex-direction:column;gap:2px;min-width:0}.team-card__top-row{align-items:center;display:flex;justify-content:space-between}.team-card__name{color:#1f2937;font-size:14px;font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.team-card__controls{align-items:center;display:flex;flex-shrink:0;gap:8px}.team-card__role{color:#6b7280;font-size:12px}.team-card__body{display:flex;flex-direction:column;gap:12px;padding:0 14px 14px 58px}.team-card__fields{display:flex;flex-wrap:wrap;gap:10px}.team-card__field{display:flex;flex-direction:column;gap:2px}.team-card__field label{color:#6b7280;font-size:11px}.team-card__input{border:1px solid #e5e7eb;border-radius:4px;font-size:13px;padding:4px 6px;width:70px}.team-card__input--readonly{background:#f9fafb;color:#9ca3af}.team-card__toggles{display:flex;flex-wrap:wrap;gap:12px}.team-card__toggle{align-items:center;color:#374151;display:flex;font-size:12px;gap:6px}.team-card__section{display:flex;flex-direction:column;gap:4px}.team-card__section-label{color:#6b7280;font-size:12px;font-weight:500}.secondary-roles-tags{align-items:center;display:flex;flex-wrap:wrap;gap:6px}.role-tag{align-items:center;background-color:#e5e7eb;border-radius:12px;color:#4b5563;display:flex;font-size:12px;padding:2px 8px}.role-tag span{margin-right:4px}.remove-tag-btn{align-items:center;background:none;border:none;color:#6b7280;cursor:pointer;display:flex;padding:0}.remove-tag-btn:hover{color:#ef4444}.add-role-tag{align-items:center;background:#f3f4f6;border:1px dashed #d1d5db;border-radius:50%;color:#6b7280;cursor:pointer;display:flex;height:22px;justify-content:center;width:22px}.add-role-tag:hover{background:#e5e7eb;border-color:#3b82f6;color:#3b82f6}.add-role-tag:disabled{cursor:not-allowed;opacity:.4}.add-role-select{border:1px solid #d1d5db;border-radius:4px;font-size:12px;min-width:130px;padding:3px 6px}.preferences-toggle{align-items:center;background:#f3f4f6;border-radius:4px;color:#6b7280;cursor:pointer;display:flex;font-size:12px;gap:4px;justify-content:center;padding:6px}.preferences-toggle:hover{background:#e5e7eb}.preferences-toggle>span{align-items:center;display:inline-flex;gap:6px}.overrides-count-badge{align-items:center;background:#2563eb;border-radius:8px;color:#fff;display:inline-flex;font-size:10px;font-weight:600;height:16px;justify-content:center;line-height:1;min-width:18px;padding:0 5px}.preferences-section{display:flex;flex-direction:column;gap:8px}.override-panel{background:linear-gradient(180deg,#fafbfc,#f6f7f9);border:1px solid #e5e7eb;border-radius:8px;display:flex;flex-direction:column;gap:14px;padding:14px 14px 16px}.override-error{background:#fef2f2;border:1px solid #fecaca;border-left:3px solid #ef4444;border-radius:4px;color:#991b1b;font-size:12px;line-height:1.4;padding:6px 10px}.override-group{display:flex;flex-direction:column;gap:8px}.override-group__title{align-items:baseline;color:#6b7280;display:flex;font-size:10.5px;font-weight:600;gap:8px;letter-spacing:.08em;text-transform:uppercase}.override-group__hint{color:#9ca3af;font-size:10.5px;font-weight:400;letter-spacing:0;text-transform:none}.override-group__hint code{background:#eef0f2;border-radius:3px;color:#4b5563;font-size:10px;padding:1px 4px}.override-grid{grid-gap:8px;display:grid;gap:8px;grid-template-columns:repeat(auto-fit,minmax(130px,1fr))}.override-field{display:flex;flex-direction:column;gap:3px}.override-field__label{color:#6b7280;font-size:11px;font-weight:500}.override-field__control{align-items:center;display:flex;position:relative}.override-field__input{font-feature-settings:"tnum";background:#fff;border:1px solid #e5e7eb;border-radius:5px;color:#111827;font-size:13px;font-variant-numeric:tabular-nums;padding:6px 24px 6px 10px;transition:border-color .15s ease,box-shadow .15s ease;width:100%}.override-field__input::placeholder{color:#d1d5db}.override-field__input:hover{border-color:#d1d5db}.override-field__input:focus{border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f61f;outline:none}.override-field__suffix{color:#9ca3af;font-size:11px;pointer-events:none;position:absolute;right:8px}.override-toggles{grid-gap:8px;display:grid;gap:8px;grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}.override-toggle{align-items:center;background:#fff;border:1px solid #e5e7eb;border-radius:6px;display:flex;gap:10px;justify-content:space-between;padding:8px 10px;transition:border-color .15s ease,background .15s ease}.override-toggle--on{background:#eff6ff;border-color:#bfdbfe}.override-toggle--off{background:#f9fafb;border-color:#e5e7eb}.override-toggle__text{display:flex;flex-direction:column;gap:1px;min-width:0}.override-toggle__label{color:#1f2937;font-size:12.5px;font-weight:500}.override-toggle__state{color:#9ca3af;font-size:10.5px;letter-spacing:.02em}.override-toggle--on .override-toggle__state{color:#2563eb}.override-toggle__controls{align-items:center;display:flex;flex-shrink:0;gap:6px}.override-toggle__clear{align-items:center;background:#0000;border:1px solid #e5e7eb;border-radius:4px;color:#9ca3af;cursor:pointer;display:inline-flex;height:20px;justify-content:center;padding:0;transition:all .15s ease;width:20px}.override-toggle__clear:hover{background:#fff;border-color:#fecaca;color:#ef4444}.override-chips{display:flex;flex-wrap:wrap;gap:6px}.override-chip{font-feature-settings:"tnum";align-items:center;background:#fff;border:1px solid #e5e7eb;border-radius:999px;color:#374151;display:inline-flex;font-size:12px;font-variant-numeric:tabular-nums;gap:6px;padding:3px 4px 3px 8px;transition:border-color .15s ease}.override-chip:hover{border-color:#cbd5e1}.override-chip__day{color:#6b7280;font-size:10.5px;font-weight:600;letter-spacing:.06em;text-transform:uppercase}.override-chip__value{align-items:center;display:inline-flex;gap:4px}.override-chip__dash{color:#9ca3af;padding:0 2px}.override-chip__weight{font-feature-settings:"tnum";align-items:center;background:#eff6ff;border:1px solid #bfdbfe;border-radius:999px;color:#2563eb;display:inline-flex;font-size:10.5px;font-variant-numeric:tabular-nums;font-weight:600;letter-spacing:.02em;padding:1px 6px}.override-chip__remove{align-items:center;background:#0000;border:none;border-radius:999px;color:#9ca3af;cursor:pointer;display:inline-flex;height:18px;justify-content:center;padding:0;transition:all .15s ease;width:18px}.override-chip__remove:hover{background:#fef2f2;color:#ef4444}.override-add-row{align-items:center;display:flex;flex-wrap:wrap;gap:6px}.override-add-row__input,.override-add-row__select{background:#fff;border:1px solid #e5e7eb;border-radius:5px;color:#1f2937;font-size:12px;padding:5px 8px;transition:border-color .15s ease,box-shadow .15s ease}.override-add-row__select{color:#4b5563;font-size:11px;font-weight:600;letter-spacing:.04em;min-width:64px;text-transform:uppercase}.override-add-row__input--time{font-feature-settings:"tnum";font-variant-numeric:tabular-nums;width:78px}.override-add-row__input--weight{font-feature-settings:"tnum";font-variant-numeric:tabular-nums;width:56px}.override-add-row__input{width:90px}.override-add-row__input::placeholder{color:#cbd5e1}.override-add-row__input:focus,.override-add-row__select:focus{border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f61f;outline:none}.override-add-row__sep{color:#9ca3af;font-size:12px}.override-add-row__btn{align-items:center;background:#fff;border:1px dashed #cbd5e1;border-radius:50%;color:#6b7280;cursor:pointer;display:inline-flex;height:26px;justify-content:center;padding:0;transition:all .15s ease;width:26px}.override-add-row__btn:hover{background:#eff6ff;border-color:#3b82f6;border-style:solid;color:#3b82f6}.team-card__pref-row{display:flex;flex-direction:column;gap:2px}.availability-container{display:flex;flex-wrap:wrap;gap:3px}.availability-day{border:1px solid #3b82f6;border-radius:3px;cursor:pointer;font-size:11px;padding:2px 6px;-webkit-user-select:none;user-select:none}.availability-day.selected{background-color:#2563eb;border-color:#2563eb;color:#fff}.availability-day.disabled{background-color:#e0e0e0;border-color:#ccc;color:#888;cursor:not-allowed;opacity:.7}.unavailability-blocks{display:flex;flex-direction:column;gap:4px}.unavailability-block-row{align-items:center;background:#f3f4f6;border-radius:4px;display:flex;font-size:12px;gap:6px;padding:3px 8px}.unavailability-add-form{align-items:center;display:flex;flex-wrap:wrap;gap:4px;margin-top:4px}.unavailability-add-form input[type=time],.unavailability-add-form select{border:1px solid #d1d5db;border-radius:4px;font-size:12px;padding:3px 5px}.add-role-btn{background:#3b82f6;border:none;border-radius:4px;color:#fff;cursor:pointer;font-size:12px;padding:3px 8px}.add-role-btn:hover{background:#2563eb}.set-shifts-blocks{display:flex;flex-direction:column;gap:4px}.set-shift-row{align-items:center;background:#eff6ff;border-radius:4px;display:flex;font-size:12px;gap:6px;padding:3px 8px}.set-shift-role{color:#3b82f6;font-weight:500}.set-shift-type{border-radius:3px;font-size:11px;font-weight:500;padding:1px 6px}.set-shift-type--hard{background:#fee2e2;color:#dc2626}.set-shift-type--soft{background:#fef3c7;color:#d97706}.set-shift-add-form{align-items:center;display:flex;flex-wrap:wrap;gap:4px;margin-top:4px}.set-shift-add-form input[type=time],.set-shift-add-form select{border:1px solid #d1d5db;border-radius:4px;font-size:12px;padding:3px 5px}.shift-details-dialog{background-color:#00000080}.shift-details-content{background-color:#fff;border-radius:8px;box-shadow:0 4px 6px #0000001a;display:flex;flex-direction:column;max-height:80vh;max-width:600px;overflow:hidden;width:100%}.shift-details-header{background-color:#2ba733;border-top-left-radius:8px;border-top-right-radius:8px;color:#fff;padding:1rem}.shift-details-title{font-size:1.25rem;font-weight:600;margin-bottom:.5rem}.shift-details-description{color:#e2e8f0;font-size:.875rem}.shift-details-body{flex-grow:1;overflow-y:auto;padding:1rem}.shift-details-section{margin-bottom:1.5rem}.shift-details-set-shift{background-color:#eff6ff;border:1px solid #bfdbfe;border-radius:4px;color:#1e3a8a;margin-bottom:1rem;padding:.5rem .75rem}.shift-details-section-title{color:#2d3748;font-size:1.125rem;font-weight:600;margin-bottom:.75rem}.employee-accordion{border:1px solid #e2e8f0;border-radius:4px;margin-bottom:.5rem}.employee-accordion-header{align-items:center;background-color:#f7fafc;cursor:pointer;display:flex;font-weight:600;justify-content:space-between;padding:.75rem 1rem}.employee-accordion-content{background-color:#fff;padding:.75rem 1rem}.rule-accordion{border:1px solid #e2e8f0;border-radius:4px;margin-bottom:.5rem}.rule-accordion-header{align-items:center;background-color:#f7fafc;cursor:pointer;display:flex;font-weight:500;justify-content:space-between;padding:.5rem .75rem}.rule-accordion-content{background-color:#fff;padding:.5rem .75rem}.sub-rule{font-size:.875rem;margin-bottom:.5rem}.sub-rule-name{font-weight:500}.sub-rule-status{margin-left:.5rem}.sub-rule-status.passed{color:#38a169}.sub-rule-status.failed{color:#e53e3e}.sub-rule-points{margin-left:.5rem}.sub-rule-details{color:#4a5568;font-size:.8125rem;margin-top:.25rem}.points-positive{color:#38a169}.points-negative{color:#e53e3e}.cfg-root{--paper:#fff;--paper-2:#f9fafb;--paper-3:#f3f4f6;--rule:#e5e7eb;--ink-15:#d1d5db;--ink-25:#9ca3af;--ink-40:#6b7280;--ink-60:#374151;--ink-80:#1f2937;--ink:#111827;--accent:#2563eb;--accent-soft:#eff6ff;--accent-ring:#dbeafe;--hard:#1f2937;--hard-soft:#f3f4f6;--good:#059669;--good-soft:#d1fae5;--danger:#dc2626;--danger-soft:#fee2e2;--focus:#2563eb38;-webkit-font-smoothing:antialiased;color:var(--ink-80);font-family:IBM Plex Sans,ui-sans-serif,system-ui,-apple-system,sans-serif}.cfg-root *,.cfg-root :after,.cfg-root :before{box-sizing:border-box}.cfg-root-title{align-items:center;display:flex;font-family:IBM Plex Sans Condensed,sans-serif;font-size:16px;font-weight:700;gap:8px;letter-spacing:.01em}.cfg-root .settings-icon{color:var(--ink-40);margin:0}.cfg-panel{background:var(--paper);border-top:1px solid var(--rule);color:var(--ink-80);display:flex;flex-direction:column;gap:16px;min-width:0;padding:18px 20px 22px}.cfg-metabar{align-items:flex-end;background:var(--paper-2);border:1px solid var(--rule);border-radius:4px;display:flex;flex-wrap:wrap;gap:20px 28px;padding:10px 14px}.cfg-metabar-group{display:flex;flex-direction:column;gap:6px;min-width:0}.cfg-metabar-label{color:var(--ink-40);font-family:IBM Plex Mono,monospace;font-size:10px;font-weight:500;letter-spacing:.08em;text-transform:uppercase}.cfg-chip-row{display:flex;flex-wrap:wrap;gap:4px;min-height:24px}.cfg-drag-chip{background:var(--paper);border:1px solid var(--ink-15);border-radius:2px;color:var(--ink-80);cursor:grab;font-family:IBM Plex Mono,monospace;font-size:11px;font-weight:500;letter-spacing:.02em;padding:3px 9px;transition:background .12s ease,border-color .12s ease,transform .12s ease;-webkit-user-select:none;user-select:none}.cfg-drag-chip:hover{background:var(--paper-2);border-color:var(--ink-25)}.cfg-drag-chip.is-dragging,.cfg-drag-chip:active{background:var(--accent-soft);border-color:var(--accent);box-shadow:0 4px 10px -4px #2563eb38;color:var(--accent);cursor:grabbing;transform:translateY(-1px)}.cfg-rerun{align-items:flex-start;display:flex;flex-direction:column;gap:6px;margin-left:auto}.cfg-cutoff-row{align-items:center;display:flex;gap:10px;min-height:24px}.cfg-cutoff-field{align-items:center;display:flex;gap:5px}.cfg-cutoff-sublabel{color:var(--ink-60);font-family:IBM Plex Mono,monospace;font-size:10px;font-weight:500;letter-spacing:.04em;text-transform:lowercase}.cfg-section{display:flex;flex-direction:column;gap:12px}.cfg-section-head{align-items:baseline;border-bottom:1px solid var(--rule);display:flex;gap:10px;padding-bottom:8px}.cfg-section-kicker{color:var(--ink-40);font-family:IBM Plex Mono,monospace;font-size:10px;font-weight:600;letter-spacing:.08em}.cfg-section-title{color:var(--ink);font-family:IBM Plex Sans Condensed,sans-serif;font-size:14px;font-weight:700;letter-spacing:.02em;margin:0;text-transform:uppercase}.cfg-section-sub{color:var(--ink-40);font-size:11px;font-style:italic;margin-left:auto}.cfg-role-switch{align-items:center;color:var(--ink-60);display:flex;font-family:IBM Plex Mono,monospace;font-size:11px;gap:8px;letter-spacing:.04em;margin-left:auto;text-transform:uppercase}.cfg-constraints{display:flex;flex-wrap:wrap;gap:6px}.cfg-constraint{align-items:center;background:var(--paper);border:1px solid var(--ink-15);border-radius:3px;color:var(--ink-60);cursor:pointer;display:inline-flex;font-size:12px;font-weight:500;gap:8px;padding:5px 11px 5px 9px;transition:all .12s ease}.cfg-constraint:hover{border-color:var(--ink-25);color:var(--ink-80)}.cfg-constraint.is-on{background:var(--paper);border-color:var(--ink-80);color:var(--ink)}.cfg-roletabs{border-bottom:1px solid var(--rule);display:flex;flex-wrap:wrap;gap:0;margin:0;padding:0}.cfg-roletab{align-items:center;background:#0000;border:none;border-bottom:2px solid #0000;color:var(--ink-40);cursor:pointer;display:inline-flex;font-family:IBM Plex Sans Condensed,sans-serif;font-size:13px;font-weight:600;gap:8px;letter-spacing:.03em;margin-bottom:-1px;padding:9px 16px 10px;text-transform:uppercase;transition:color .12s ease,border-color .12s ease}.cfg-roletab:hover{color:var(--ink-80)}.cfg-roletab.is-active{border-bottom-color:var(--accent);color:var(--ink)}.cfg-roletab.is-inactive .cfg-roletab-name{text-decoration:line-through;text-decoration-color:var(--ink-25);text-decoration-thickness:1px}.cfg-roletab-dot{background:var(--ink-15);border-radius:50%;height:6px;width:6px}.cfg-roletab-dot[data-on=true]{background:var(--good)}.cfg-roletab-meta{background:var(--paper-2);border-radius:2px;color:var(--ink-40);font-family:IBM Plex Mono,monospace;font-size:10px;font-weight:500;letter-spacing:0;padding:2px 5px}.cfg-roletab-meta-slash{margin:0 1px;opacity:.5}.cfg-rules-grid{grid-gap:12px;display:grid;gap:12px;grid-template-columns:repeat(auto-fit,minmax(420px,1fr));min-width:0}.cfg-rule{background:var(--paper);border:1px solid var(--rule);border-radius:4px;display:flex;flex-direction:column;overflow:hidden;position:relative;transition:border-color .15s ease,box-shadow .15s ease}.cfg-rule:hover{border-color:var(--ink-25)}.cfg-rule.is-inactive{opacity:.55}.cfg-rule.is-hard:before{background:var(--ink-60);bottom:0;content:"";left:0;position:absolute;top:0;width:2px}.cfg-rule-head{align-items:center;background:linear-gradient(to bottom,var(--paper-2),var(--paper));border-bottom:1px solid var(--rule);display:flex;gap:12px;justify-content:space-between;padding:10px 14px 10px 16px}.cfg-rule-title-block{align-items:center;display:flex;gap:10px;min-width:0}.cfg-rule-title{color:var(--ink);font-family:IBM Plex Sans Condensed,sans-serif;font-size:13px;font-weight:700;letter-spacing:.04em;margin:0;text-transform:uppercase;white-space:nowrap}.cfg-rule-meta{align-items:center;display:flex;gap:8px}.cfg-priority{align-items:center;background:var(--paper-2);border:1px solid var(--ink-15);border-radius:3px;color:var(--ink-60);display:inline-flex;gap:4px;padding:2px 6px}.cfg-priority svg{color:var(--ink-40)}.cfg-priority-input{-moz-appearance:textfield;background:#0000!important;border:none!important;color:var(--ink)!important;font-family:IBM Plex Mono,monospace!important;font-size:11px!important;font-weight:600!important;height:20px!important;padding:0 4px!important;text-align:center!important;width:36px!important}.cfg-priority-input::-webkit-inner-spin-button,.cfg-priority-input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.cfg-hard-btn{background:var(--paper-2);border:1px solid var(--ink-15);border-radius:3px;color:var(--ink-40);cursor:pointer;font-family:IBM Plex Mono,monospace;font-size:10px;font-weight:600;letter-spacing:.1em;padding:3px 8px;text-transform:uppercase;transition:all .12s ease}.cfg-hard-btn:hover:not(:disabled){border-color:var(--ink-25);color:var(--ink-60)}.cfg-hard-btn.is-on{background:var(--ink);border-color:var(--ink);color:#fff}.cfg-hard-btn:disabled{cursor:not-allowed}.cfg-rule-body{display:flex;flex-direction:column;gap:12px;min-width:0;padding:12px 14px 14px}.cfg-rule-fields{grid-gap:10px 14px;display:grid;gap:10px 14px;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));min-width:0}.cfg-field{display:flex;flex-direction:column;gap:4px;min-width:0}.cfg-field-label{color:var(--ink-40);font-family:IBM Plex Mono,monospace;font-size:10px;font-weight:500;letter-spacing:.04em;line-height:1.35;min-height:14px;text-transform:lowercase;white-space:normal;word-break:break-word}.cfg-num-input,.cfg-text-input{-moz-appearance:textfield;background:var(--paper)!important;border:1px solid var(--ink-15)!important;border-radius:3px!important;color:var(--ink)!important;font-family:IBM Plex Mono,monospace!important;font-size:12px!important;font-weight:500!important;height:28px!important;padding:0 8px!important;transition:border-color .12s ease,box-shadow .12s ease}.cfg-num-input{text-align:right}.cfg-num-input::-webkit-inner-spin-button,.cfg-num-input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.cfg-num-input:focus,.cfg-text-input:focus{border-color:var(--accent)!important;box-shadow:0 0 0 3px var(--focus)!important;outline:none!important}.cfg-num-input:disabled,.cfg-text-input:disabled{background:var(--paper-2)!important;color:var(--ink-40)!important;cursor:not-allowed}.cfg-rule-subsection{border-top:1px dashed var(--rule);display:flex;flex-direction:column;gap:6px;padding-top:10px}.cfg-rule-subsection:first-child{border-top:none;padding-top:0}.cfg-rule-toggles{border-top:1px dashed var(--rule);display:flex;flex-wrap:wrap;gap:4px;padding-top:10px}.cfg-toggle{align-items:center;background:var(--paper);border:1px solid var(--ink-15);border-radius:3px;color:var(--ink-60);cursor:pointer;display:inline-flex;font-size:11px;font-weight:500;gap:7px;padding:4px 9px 4px 7px;transition:all .12s ease}.cfg-toggle:hover{border-color:var(--ink-25)}.cfg-toggle.is-on{background:var(--good-soft);border-color:var(--good);color:var(--good)}.cfg-toggle-label{font-family:IBM Plex Sans,sans-serif;text-transform:lowercase;white-space:nowrap}.cfg-shifts{align-items:center;display:flex;flex-wrap:wrap;gap:5px;max-width:100%;min-width:0}.cfg-shifts-empty{color:var(--ink-40);font-family:IBM Plex Sans,sans-serif;font-size:11px;font-style:italic;padding:4px 2px}.cfg-shift-chip{align-items:center;background:var(--paper);border:1px solid var(--ink-15);border-radius:3px;display:inline-flex;gap:4px;padding:3px 4px 3px 6px}.cfg-shift-arrow{color:var(--ink-40);font-family:IBM Plex Mono,monospace;font-size:11px}.cfg-sub-trigger,.cfg-time-trigger{background:var(--paper-2)!important;border:1px solid var(--ink-15)!important;border-radius:2px!important;color:var(--ink)!important;font-family:IBM Plex Mono,monospace!important;font-size:11px!important;font-weight:500!important;gap:4px!important;height:22px!important;min-width:62px!important;padding:0 6px!important}.cfg-sub-trigger{font-family:IBM Plex Sans,sans-serif!important;min-width:100px!important}.cfg-sub-trigger:focus,.cfg-time-trigger:focus{border-color:var(--accent)!important;box-shadow:0 0 0 3px var(--focus)!important;outline:none!important}.cfg-time-content{background:var(--paper)!important;border:1px solid var(--ink-15)!important;border-radius:3px!important;box-shadow:0 12px 28px -10px #11182724!important;max-height:280px}.cfg-time-content [data-radix-select-item]{color:var(--ink-80);font-family:IBM Plex Mono,monospace;font-size:11px;padding:5px 9px}.cfg-time-content [data-radix-select-item][data-highlighted]{background:var(--accent-soft);color:var(--accent)}.cfg-shift-remove{align-items:center;background:#0000;border:none;border-radius:2px;color:var(--ink-40);cursor:pointer;display:inline-flex;height:18px;justify-content:center;transition:all .12s ease;width:18px}.cfg-shift-remove:hover:not(:disabled){background:var(--danger-soft);color:var(--danger)}.cfg-shift-remove:disabled{cursor:not-allowed;opacity:.4}.cfg-shift-add{align-items:center;background:#0000;border:1px dashed var(--ink-25);border-radius:3px;color:var(--ink-40);cursor:pointer;display:inline-flex;font-family:IBM Plex Mono,monospace;font-size:11px;font-weight:500;gap:4px;padding:3px 9px 3px 7px;transition:all .12s ease}.cfg-shift-add:hover:not(:disabled){background:var(--paper-2);border-color:var(--ink-80);border-style:solid;color:var(--ink)}.cfg-shift-add:disabled{cursor:not-allowed;opacity:.5}.cfg-ideal{background:var(--paper-2);border:1px solid var(--rule);border-radius:3px;display:flex;flex-direction:column;gap:8px;padding:10px 12px}.cfg-ideal-head{align-items:center;display:flex;gap:10px;justify-content:space-between}.cfg-ideal-actions{display:flex;gap:4px}.cfg-mini-btn{align-items:center;background:var(--paper);border:1px solid var(--ink-15);border-radius:2px;color:var(--ink-60);cursor:pointer;display:inline-flex;font-family:IBM Plex Mono,monospace;font-size:10px;font-weight:500;gap:4px;letter-spacing:.02em;padding:3px 7px;transition:all .12s ease}.cfg-mini-btn:hover:not(:disabled){background:var(--paper);border-color:var(--ink-80);color:var(--ink)}.cfg-mini-btn.is-danger:hover:not(:disabled){background:var(--danger-soft);border-color:var(--danger);color:var(--danger)}.cfg-mini-btn:disabled{cursor:not-allowed;opacity:.5}.cfg-day-pills{grid-gap:2px;background:var(--paper-3);border-radius:3px;display:grid;gap:2px;grid-template-columns:repeat(7,minmax(0,1fr));min-width:0;padding:2px}.cfg-day-pill{align-items:center;background:#0000;border:none;border-radius:2px;color:var(--ink-40);cursor:pointer;display:flex;flex-direction:column;font-family:IBM Plex Mono,monospace;font-size:10px;font-weight:600;gap:1px;justify-content:center;letter-spacing:.04em;min-width:0;overflow:hidden;padding:5px 2px;position:relative;text-transform:uppercase;transition:all .12s ease}.cfg-day-pill:hover{background:#ffffff80;color:var(--ink-80)}.cfg-day-pill.is-selected{background:var(--paper);box-shadow:0 1px 2px #1118270f,inset 0 0 0 1px var(--ink-15);color:var(--ink)}.cfg-day-pill.is-overridden{color:var(--ink)}.cfg-day-pill.is-selected.is-overridden{box-shadow:0 1px 2px #1118270f,inset 0 0 0 1px var(--accent);color:var(--accent)}.cfg-day-pill-label{white-space:nowrap}.cfg-day-pill-badge{background:var(--accent-soft);border-radius:2px;color:var(--accent);font-family:IBM Plex Mono,monospace;font-size:9px;font-weight:600;letter-spacing:0;line-height:1.3;max-width:100%;overflow:hidden;padding:0 3px;text-overflow:ellipsis;white-space:nowrap}.cfg-day-editor{background:var(--paper);border:1px solid var(--rule);border-radius:3px;display:flex;flex-direction:column;gap:10px;min-height:52px;padding:10px 12px}.cfg-day-editor.is-empty{justify-content:center}.cfg-day-row{display:flex;flex-direction:column;gap:5px}.cfg-day-row .cfg-field{align-items:center;flex-direction:row;gap:10px}.cfg-day-row .cfg-field .cfg-num-input{max-width:80px}.cfg-day-empty{align-items:center;color:var(--ink-40);display:flex;font-size:11px;font-style:italic;gap:12px;justify-content:space-between}.cfg-breaks{display:flex;flex-direction:column;gap:5px;max-width:100%;min-width:0}.cfg-breaks-label{color:var(--ink-40);font-family:IBM Plex Mono,monospace;font-size:10px;font-weight:500;letter-spacing:.04em;text-transform:lowercase}.cfg-breaks-chips{align-items:center;display:flex;flex-wrap:wrap;gap:5px}.cfg-break-chip{align-items:center;background:var(--paper);border:1px solid var(--ink-15);border-radius:3px;display:inline-flex;gap:3px;padding:3px 5px}.cfg-break-num{-moz-appearance:textfield;background:var(--paper-2)!important;border:1px solid var(--ink-15)!important;border-radius:2px!important;color:var(--ink)!important;font-family:IBM Plex Mono,monospace!important;font-size:11px!important;font-weight:500!important;height:22px!important;padding:0 4px!important;text-align:center!important;width:36px!important}.cfg-break-num::-webkit-inner-spin-button,.cfg-break-num::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.cfg-break-num:focus{border-color:var(--accent)!important;box-shadow:0 0 0 2px var(--focus)!important;outline:none!important}.cfg-break-arrow,.cfg-break-sep{font-size:11px;font-weight:500}.cfg-break-arrow,.cfg-break-sep,.cfg-break-unit{color:var(--ink-40);font-family:IBM Plex Mono,monospace}.cfg-break-unit{font-size:10px}.cfg-root [role=switch]{cursor:pointer}.cfg-root [role=switch][data-state=checked]{background-color:var(--ink)!important}.PopoverContent{background-color:var(--paper)!important;border:1px solid var(--rule)!important;border-radius:4px!important;box-shadow:0 12px 28px -10px #11182724!important;z-index:50!important}[data-radix-popper-content-wrapper]{background-color:#fff!important}@media (max-width:900px){.cfg-rules-grid{grid-template-columns:1fr}.cfg-metabar{align-items:stretch;flex-direction:column}.cfg-rerun{align-items:center;flex-direction:row;margin-left:0}}.shift-card{align-items:stretch;background:#fff;border:1px solid #e0e0e0;border-radius:8px;cursor:pointer;display:flex;height:54px;overflow:hidden;position:relative;transition:box-shadow .2s,opacity .2s}.shift-card--key-holder-gap{background:#fef2f2;border:1px dashed #dc2626}.shift-card__pin{font-size:11px;line-height:1;pointer-events:none;position:absolute;right:4px;top:2px}.shift-card__pin--with-match{bottom:2px;top:auto}.shift-card__pin--top-right-clear{right:4px;top:2px}.shift-card__pin--top-left{left:8px;right:auto;top:2px}.shift-card__match{height:12px;line-height:0;opacity:.85;pointer-events:none;position:absolute;right:4px;top:3px;width:12px}.shift-card__match--match-individual{color:#16a34a}.shift-card__match--match-role{color:#d97706}.shift-card__match--mismatch{color:#dc2626}.shift-card__boundary-match{bottom:3px;height:12px;line-height:0;opacity:.85;pointer-events:none;position:absolute;right:4px;width:12px}.shift-card__boundary-match--boundary-individual{color:#16a34a}.shift-card__boundary-match--boundary-role{color:#d97706}.shift-card__boundary-match--boundary-mismatch{color:#dc2626}.shift-card:hover{box-shadow:0 2px 8px #0000001f}.shift-card__accent{flex-shrink:0;width:4px}.accent--staff{background-color:#22c55e}.accent--stint{background-color:#3b82f6}.accent--tbc{background-color:#ef4444}.accent--manager{background-color:#eab308}.accent--cleaner{background-color:#06b6d4}.shift-card__content{display:flex;flex-direction:column;justify-content:center;min-width:0;padding:6px 10px}.shift-card__time{color:#1f2937;font-size:13px;font-weight:500}.shift-card__name{color:#666;font-size:11px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.schedule-grid-table{background:#fff;border:1px solid #e5e7eb;border-radius:8px;display:grid;grid-template-columns:260px repeat(7,1fr);overflow:auto}.grid-header{display:contents}.grid-header__member{align-items:center;display:flex;justify-content:center;left:0;position:sticky;z-index:3}.grid-header__day,.grid-header__member{background:#f9fafb;border-bottom:1px solid #e5e7eb;font-weight:600;padding:12px 8px}.grid-header__day{font-size:14px;text-align:center}.role-group-header{background:#f3f4f6;border-bottom:1px solid #e5e7eb;color:#6b7280;font-size:13px;font-weight:600;grid-column:1/-1;letter-spacing:.05em;padding:8px 16px;text-transform:uppercase}.grid-row{display:contents}.grid-member{align-items:center;background:#fff;border-bottom:1px solid #f0f0f0;border-right:1px solid #f0f0f0;display:flex;gap:8px;left:0;min-height:70px;padding:8px 10px;position:sticky;z-index:2}.grid-member__avatar{align-items:center;background:#e5e7eb;border-radius:50%;color:#374151;display:flex;flex-shrink:0;font-size:13px;font-weight:600;height:36px;justify-content:center;width:36px}.grid-member__info{display:flex;flex:1 1;flex-direction:column;min-width:0}.grid-member__name{color:#1f2937;font-size:13px;font-weight:500}.grid-member__role{color:#6b7280;font-size:11px}.grid-member__badge{background:#f3f4f6;border-radius:2px;color:#9ca3af;font-size:9px;font-weight:500;margin-left:4px;padding:0 3px;vertical-align:middle}.grid-member__hours{color:#6b7280;flex-shrink:0;font-size:11px;white-space:nowrap}.grid-cell{border-bottom:1px solid #f0f0f0;border-right:1px solid #f0f0f0;display:flex;flex-direction:column;gap:8px;min-height:70px;padding:8px}.ideal-match-controls{align-items:center;background:#f9fafb;border:1px solid #e5e7eb;border-radius:6px;color:#374151;display:flex;font-size:12px;gap:16px;margin:8px 0;padding:8px 12px}.ideal-match-controls__toggle{cursor:pointer;-webkit-user-select:none;user-select:none}.ideal-match-controls__buffer,.ideal-match-controls__toggle{align-items:center;display:flex;gap:6px}.ideal-match-controls__buffer.is-disabled{opacity:.5}.ideal-match-controls__buffer input[type=number]{border:1px solid #d1d5db;border-radius:4px;font-size:12px;padding:2px 6px;width:64px}.set-shift-outcomes-panel{background:#fff;border:1px solid #e5e7eb;border-radius:8px;margin:12px 0;padding:10px 14px}.set-shift-outcomes-panel--all-honoured,.set-shift-outcomes-panel--empty{color:#4b5563;font-size:13px;padding:8px 14px}.set-shift-outcomes-empty{font-style:italic}.set-shift-outcomes-header{align-items:center;cursor:pointer;display:flex;gap:12px;-webkit-user-select:none;user-select:none}.set-shift-outcomes-title{color:#111827;font-size:14px;font-weight:600;margin:0}.set-shift-outcomes-counts{color:#4b5563;flex:1 1;font-size:12px}.set-shift-outcomes-list{display:flex;flex-direction:column;gap:8px;list-style:none;margin:10px 0 0;padding:0}.set-shift-outcomes-item{background:#f9fafb;border:1px solid #f1f5f9;border-radius:6px;padding:8px 10px}.set-shift-outcomes-item-head{align-items:center;display:flex;flex-wrap:wrap;gap:10px}.set-shift-outcomes-employee{color:#111827;font-size:13px;font-weight:600}.set-shift-outcomes-time{font-feature-settings:"tnum";color:#4b5563;font-size:12px;font-variant-numeric:tabular-nums}.set-shift-outcomes-reason{color:#4b5563;font-size:12px;margin-top:4px}.set-shift-pill{border-radius:999px;display:inline-block;font-size:11px;font-weight:600;letter-spacing:.02em;padding:2px 8px}.set-shift-pill--honoured{background:#ecfdf5;border:1px solid #a7f3d0;color:#065f46}.set-shift-pill--availability{background:#fef3c7;border:1px solid #fde68a;color:#92400e}.set-shift-pill--event{background:#fee2e2;border:1px solid #fecaca;color:#991b1b}.set-shift-pill--soft{background:#e0e7ff;border:1px solid #c7d2fe;color:#3730a3}.redistribution-panel{background:#fff;border:1px solid #e5e7eb;border-radius:8px;margin:12px 0;padding:10px 14px}.redistribution-header{align-items:center;cursor:pointer;display:flex;gap:12px;-webkit-user-select:none;user-select:none}.redistribution-title{color:#111827;font-size:14px;font-weight:600;margin:0}.redistribution-counts{color:#4b5563;flex:1 1;font-size:12px}.redistribution-table-wrap{margin-top:10px;overflow-x:auto}.redistribution-table{font-feature-settings:"tnum";border-collapse:collapse;font-size:12px;font-variant-numeric:tabular-nums;width:100%}.redistribution-table td,.redistribution-table th{border-bottom:1px solid #f1f5f9;padding:6px 8px;text-align:left}.redistribution-table th{color:#6b7280;font-size:10px;font-weight:600;letter-spacing:.02em;text-transform:uppercase}.redistribution-table .num{text-align:right}.redistribution-role{color:#4b5563}.redistribution-delta--cut{color:#b91c1c;font-weight:600}.redistribution-delta--add{color:#047857;font-weight:600}.redistribution-delta--zero{color:#9ca3af}.redistribution-pill{border-radius:999px;display:inline-block;font-size:10px;font-weight:600;letter-spacing:.02em;padding:2px 8px}.redistribution-pill--lp{background:#eef2ff;border:1px solid #c7d2fe;color:#3730a3}.redistribution-row--clickable{cursor:pointer}.redistribution-row--clickable:hover{background:#f9fafb}.redistribution-row__chev{color:#9ca3af;display:inline-flex;margin-right:4px;vertical-align:middle}.redistribution-shapes-hint{background:#f3f4f6;border:1px solid #e5e7eb;border-radius:4px;color:#6b7280;cursor:help;font-size:10px;padding:2px 6px}.redistribution-shape-detail>td{background:#fafbfc;padding:0 8px 8px}.redistribution-shape-summary{background:#f9fafb;border:1px solid #f1f5f9;border-radius:6px;margin-bottom:10px;padding:6px 10px}.redistribution-shape-summary__header{align-items:center;color:#374151;cursor:pointer;display:flex;font-size:12px;font-weight:600;justify-content:space-between;-webkit-user-select:none;user-select:none}.redistribution-shape-table{font-feature-settings:"tnum";border-collapse:collapse;font-size:11px;font-variant-numeric:tabular-nums;margin-top:6px;width:100%}.redistribution-shape-table td,.redistribution-shape-table th{border-bottom:1px solid #eef2f6;padding:4px 8px;text-align:left}.redistribution-shape-table th{color:#6b7280;font-size:10px;font-weight:600;letter-spacing:.02em;text-transform:uppercase}.redistribution-shape-table .num{text-align:right}.login-container{align-items:center;background-color:#f0f0f0;display:flex;height:100vh;justify-content:center}.login-form{background-color:#fff;border-radius:8px;box-shadow:0 4px 6px #0000001a;max-width:400px;padding:2rem;width:100%}.login-form h2{text-align:center}.form-group,.login-form h2{margin-bottom:1rem}.form-group label{display:block;margin-bottom:.5rem}.form-group input{width:100%}
/*# sourceMappingURL=main.6942aa0d.css.map*/