:root{font-family:var(--font-family-base);font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{margin:0;padding:0;background-color:var(--color-background);color:var(--color-text-primary)}#root{min-height:100vh}:root{--toastify-color-light: #fff;--toastify-color-dark: #121212;--toastify-color-info: #3498db;--toastify-color-success: #07bc0c;--toastify-color-warning: #f1c40f;--toastify-color-error: hsl(6, 78%, 57%);--toastify-color-transparent: rgba(255, 255, 255, .7);--toastify-icon-color-info: var(--toastify-color-info);--toastify-icon-color-success: var(--toastify-color-success);--toastify-icon-color-warning: var(--toastify-color-warning);--toastify-icon-color-error: var(--toastify-color-error);--toastify-container-width: fit-content;--toastify-toast-width: 320px;--toastify-toast-offset: 16px;--toastify-toast-top: max(var(--toastify-toast-offset), env(safe-area-inset-top));--toastify-toast-right: max(var(--toastify-toast-offset), env(safe-area-inset-right));--toastify-toast-left: max(var(--toastify-toast-offset), env(safe-area-inset-left));--toastify-toast-bottom: max(var(--toastify-toast-offset), env(safe-area-inset-bottom));--toastify-toast-background: #fff;--toastify-toast-padding: 14px;--toastify-toast-min-height: 64px;--toastify-toast-max-height: 800px;--toastify-toast-bd-radius: 6px;--toastify-toast-shadow: 0px 4px 12px rgba(0, 0, 0, .1);--toastify-font-family: sans-serif;--toastify-z-index: 9999;--toastify-text-color-light: #757575;--toastify-text-color-dark: #fff;--toastify-text-color-info: #fff;--toastify-text-color-success: #fff;--toastify-text-color-warning: #fff;--toastify-text-color-error: #fff;--toastify-spinner-color: #616161;--toastify-spinner-color-empty-area: #e0e0e0;--toastify-color-progress-light: linear-gradient(to right, #4cd964, #5ac8fa, #007aff, #34aadc, #5856d6, #ff2d55);--toastify-color-progress-dark: #bb86fc;--toastify-color-progress-info: var(--toastify-color-info);--toastify-color-progress-success: var(--toastify-color-success);--toastify-color-progress-warning: var(--toastify-color-warning);--toastify-color-progress-error: var(--toastify-color-error);--toastify-color-progress-bgo: .2}.Toastify__toast-container{z-index:var(--toastify-z-index);-webkit-transform:translate3d(0,0,var(--toastify-z-index));position:fixed;width:var(--toastify-container-width);box-sizing:border-box;color:#fff;display:flex;flex-direction:column}.Toastify__toast-container--top-left{top:var(--toastify-toast-top);left:var(--toastify-toast-left)}.Toastify__toast-container--top-center{top:var(--toastify-toast-top);left:50%;transform:translate(-50%);align-items:center}.Toastify__toast-container--top-right{top:var(--toastify-toast-top);right:var(--toastify-toast-right);align-items:end}.Toastify__toast-container--bottom-left{bottom:var(--toastify-toast-bottom);left:var(--toastify-toast-left)}.Toastify__toast-container--bottom-center{bottom:var(--toastify-toast-bottom);left:50%;transform:translate(-50%);align-items:center}.Toastify__toast-container--bottom-right{bottom:var(--toastify-toast-bottom);right:var(--toastify-toast-right);align-items:end}.Toastify__toast{--y: 0;position:relative;touch-action:none;width:var(--toastify-toast-width);min-height:var(--toastify-toast-min-height);box-sizing:border-box;margin-bottom:1rem;padding:var(--toastify-toast-padding);border-radius:var(--toastify-toast-bd-radius);box-shadow:var(--toastify-toast-shadow);max-height:var(--toastify-toast-max-height);font-family:var(--toastify-font-family);z-index:0;display:flex;flex:1 auto;align-items:center;word-break:break-word}@media only screen and (max-width:480px){.Toastify__toast-container{width:100vw;left:env(safe-area-inset-left);margin:0}.Toastify__toast-container--top-left,.Toastify__toast-container--top-center,.Toastify__toast-container--top-right{top:env(safe-area-inset-top);transform:translate(0)}.Toastify__toast-container--bottom-left,.Toastify__toast-container--bottom-center,.Toastify__toast-container--bottom-right{bottom:env(safe-area-inset-bottom);transform:translate(0)}.Toastify__toast-container--rtl{right:env(safe-area-inset-right);left:initial}.Toastify__toast{--toastify-toast-width: 100%;margin-bottom:0;border-radius:0}}.Toastify__toast-container[data-stacked=true]{width:var(--toastify-toast-width)}.Toastify__toast--stacked{position:absolute;width:100%;transform:translate3d(0,var(--y),0) scale(var(--s));transition:transform .3s}.Toastify__toast--stacked[data-collapsed] .Toastify__toast-body,.Toastify__toast--stacked[data-collapsed] .Toastify__close-button{transition:opacity .1s}.Toastify__toast--stacked[data-collapsed=false]{overflow:visible}.Toastify__toast--stacked[data-collapsed=true]:not(:last-child)>*{opacity:0}.Toastify__toast--stacked:after{content:"";position:absolute;left:0;right:0;height:calc(var(--g) * 1px);bottom:100%}.Toastify__toast--stacked[data-pos=top]{top:0}.Toastify__toast--stacked[data-pos=bot]{bottom:0}.Toastify__toast--stacked[data-pos=bot].Toastify__toast--stacked:before{transform-origin:top}.Toastify__toast--stacked[data-pos=top].Toastify__toast--stacked:before{transform-origin:bottom}.Toastify__toast--stacked:before{content:"";position:absolute;left:0;right:0;bottom:0;height:100%;transform:scaleY(3);z-index:-1}.Toastify__toast--rtl{direction:rtl}.Toastify__toast--close-on-click{cursor:pointer}.Toastify__toast-icon{margin-inline-end:10px;width:22px;flex-shrink:0;display:flex}.Toastify--animate{animation-fill-mode:both;animation-duration:.5s}.Toastify--animate-icon{animation-fill-mode:both;animation-duration:.3s}.Toastify__toast-theme--dark{background:var(--toastify-color-dark);color:var(--toastify-text-color-dark)}.Toastify__toast-theme--light,.Toastify__toast-theme--colored.Toastify__toast--default{background:var(--toastify-color-light);color:var(--toastify-text-color-light)}.Toastify__toast-theme--colored.Toastify__toast--info{color:var(--toastify-text-color-info);background:var(--toastify-color-info)}.Toastify__toast-theme--colored.Toastify__toast--success{color:var(--toastify-text-color-success);background:var(--toastify-color-success)}.Toastify__toast-theme--colored.Toastify__toast--warning{color:var(--toastify-text-color-warning);background:var(--toastify-color-warning)}.Toastify__toast-theme--colored.Toastify__toast--error{color:var(--toastify-text-color-error);background:var(--toastify-color-error)}.Toastify__progress-bar-theme--light{background:var(--toastify-color-progress-light)}.Toastify__progress-bar-theme--dark{background:var(--toastify-color-progress-dark)}.Toastify__progress-bar--info{background:var(--toastify-color-progress-info)}.Toastify__progress-bar--success{background:var(--toastify-color-progress-success)}.Toastify__progress-bar--warning{background:var(--toastify-color-progress-warning)}.Toastify__progress-bar--error{background:var(--toastify-color-progress-error)}.Toastify__progress-bar-theme--colored.Toastify__progress-bar--info,.Toastify__progress-bar-theme--colored.Toastify__progress-bar--success,.Toastify__progress-bar-theme--colored.Toastify__progress-bar--warning,.Toastify__progress-bar-theme--colored.Toastify__progress-bar--error{background:var(--toastify-color-transparent)}.Toastify__close-button{color:#fff;position:absolute;top:6px;right:6px;background:transparent;outline:none;border:none;padding:0;cursor:pointer;opacity:.7;transition:.3s ease;z-index:1}.Toastify__toast--rtl .Toastify__close-button{left:6px;right:unset}.Toastify__close-button--light{color:#000;opacity:.3}.Toastify__close-button>svg{fill:currentColor;height:16px;width:14px}.Toastify__close-button:hover,.Toastify__close-button:focus{opacity:1}@keyframes Toastify__trackProgress{0%{transform:scaleX(1)}to{transform:scaleX(0)}}.Toastify__progress-bar{position:absolute;bottom:0;left:0;width:100%;height:100%;z-index:1;opacity:.7;transform-origin:left}.Toastify__progress-bar--animated{animation:Toastify__trackProgress linear 1 forwards}.Toastify__progress-bar--controlled{transition:transform .2s}.Toastify__progress-bar--rtl{right:0;left:initial;transform-origin:right;border-bottom-left-radius:initial}.Toastify__progress-bar--wrp{position:absolute;overflow:hidden;bottom:0;left:0;width:100%;height:5px;border-bottom-left-radius:var(--toastify-toast-bd-radius);border-bottom-right-radius:var(--toastify-toast-bd-radius)}.Toastify__progress-bar--wrp[data-hidden=true]{opacity:0}.Toastify__progress-bar--bg{opacity:var(--toastify-color-progress-bgo);width:100%;height:100%}.Toastify__spinner{width:20px;height:20px;box-sizing:border-box;border:2px solid;border-radius:100%;border-color:var(--toastify-spinner-color-empty-area);border-right-color:var(--toastify-spinner-color);animation:Toastify__spin .65s linear infinite}@keyframes Toastify__bounceInRight{0%,60%,75%,90%,to{animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;transform:translate3d(3000px,0,0)}60%{opacity:1;transform:translate3d(-25px,0,0)}75%{transform:translate3d(10px,0,0)}90%{transform:translate3d(-5px,0,0)}to{transform:none}}@keyframes Toastify__bounceOutRight{20%{opacity:1;transform:translate3d(-20px,var(--y),0)}to{opacity:0;transform:translate3d(2000px,var(--y),0)}}@keyframes Toastify__bounceInLeft{0%,60%,75%,90%,to{animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;transform:translate3d(-3000px,0,0)}60%{opacity:1;transform:translate3d(25px,0,0)}75%{transform:translate3d(-10px,0,0)}90%{transform:translate3d(5px,0,0)}to{transform:none}}@keyframes Toastify__bounceOutLeft{20%{opacity:1;transform:translate3d(20px,var(--y),0)}to{opacity:0;transform:translate3d(-2000px,var(--y),0)}}@keyframes Toastify__bounceInUp{0%,60%,75%,90%,to{animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;transform:translate3d(0,3000px,0)}60%{opacity:1;transform:translate3d(0,-20px,0)}75%{transform:translate3d(0,10px,0)}90%{transform:translate3d(0,-5px,0)}to{transform:translateZ(0)}}@keyframes Toastify__bounceOutUp{20%{transform:translate3d(0,calc(var(--y) - 10px),0)}40%,45%{opacity:1;transform:translate3d(0,calc(var(--y) + 20px),0)}to{opacity:0;transform:translate3d(0,-2000px,0)}}@keyframes Toastify__bounceInDown{0%,60%,75%,90%,to{animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;transform:translate3d(0,-3000px,0)}60%{opacity:1;transform:translate3d(0,25px,0)}75%{transform:translate3d(0,-10px,0)}90%{transform:translate3d(0,5px,0)}to{transform:none}}@keyframes Toastify__bounceOutDown{20%{transform:translate3d(0,calc(var(--y) - 10px),0)}40%,45%{opacity:1;transform:translate3d(0,calc(var(--y) + 20px),0)}to{opacity:0;transform:translate3d(0,2000px,0)}}.Toastify__bounce-enter--top-left,.Toastify__bounce-enter--bottom-left{animation-name:Toastify__bounceInLeft}.Toastify__bounce-enter--top-right,.Toastify__bounce-enter--bottom-right{animation-name:Toastify__bounceInRight}.Toastify__bounce-enter--top-center{animation-name:Toastify__bounceInDown}.Toastify__bounce-enter--bottom-center{animation-name:Toastify__bounceInUp}.Toastify__bounce-exit--top-left,.Toastify__bounce-exit--bottom-left{animation-name:Toastify__bounceOutLeft}.Toastify__bounce-exit--top-right,.Toastify__bounce-exit--bottom-right{animation-name:Toastify__bounceOutRight}.Toastify__bounce-exit--top-center{animation-name:Toastify__bounceOutUp}.Toastify__bounce-exit--bottom-center{animation-name:Toastify__bounceOutDown}@keyframes Toastify__zoomIn{0%{opacity:0;transform:scale3d(.3,.3,.3)}50%{opacity:1}}@keyframes Toastify__zoomOut{0%{opacity:1}50%{opacity:0;transform:translate3d(0,var(--y),0) scale3d(.3,.3,.3)}to{opacity:0}}.Toastify__zoom-enter{animation-name:Toastify__zoomIn}.Toastify__zoom-exit{animation-name:Toastify__zoomOut}@keyframes Toastify__flipIn{0%{transform:perspective(400px) rotateX(90deg);animation-timing-function:ease-in;opacity:0}40%{transform:perspective(400px) rotateX(-20deg);animation-timing-function:ease-in}60%{transform:perspective(400px) rotateX(10deg);opacity:1}80%{transform:perspective(400px) rotateX(-5deg)}to{transform:perspective(400px)}}@keyframes Toastify__flipOut{0%{transform:translate3d(0,var(--y),0) perspective(400px)}30%{transform:translate3d(0,var(--y),0) perspective(400px) rotateX(-20deg);opacity:1}to{transform:translate3d(0,var(--y),0) perspective(400px) rotateX(90deg);opacity:0}}.Toastify__flip-enter{animation-name:Toastify__flipIn}.Toastify__flip-exit{animation-name:Toastify__flipOut}@keyframes Toastify__slideInRight{0%{transform:translate3d(110%,0,0);visibility:visible}to{transform:translate3d(0,var(--y),0)}}@keyframes Toastify__slideInLeft{0%{transform:translate3d(-110%,0,0);visibility:visible}to{transform:translate3d(0,var(--y),0)}}@keyframes Toastify__slideInUp{0%{transform:translate3d(0,110%,0);visibility:visible}to{transform:translate3d(0,var(--y),0)}}@keyframes Toastify__slideInDown{0%{transform:translate3d(0,-110%,0);visibility:visible}to{transform:translate3d(0,var(--y),0)}}@keyframes Toastify__slideOutRight{0%{transform:translate3d(0,var(--y),0)}to{visibility:hidden;transform:translate3d(110%,var(--y),0)}}@keyframes Toastify__slideOutLeft{0%{transform:translate3d(0,var(--y),0)}to{visibility:hidden;transform:translate3d(-110%,var(--y),0)}}@keyframes Toastify__slideOutDown{0%{transform:translate3d(0,var(--y),0)}to{visibility:hidden;transform:translate3d(0,500px,0)}}@keyframes Toastify__slideOutUp{0%{transform:translate3d(0,var(--y),0)}to{visibility:hidden;transform:translate3d(0,-500px,0)}}.Toastify__slide-enter--top-left,.Toastify__slide-enter--bottom-left{animation-name:Toastify__slideInLeft}.Toastify__slide-enter--top-right,.Toastify__slide-enter--bottom-right{animation-name:Toastify__slideInRight}.Toastify__slide-enter--top-center{animation-name:Toastify__slideInDown}.Toastify__slide-enter--bottom-center{animation-name:Toastify__slideInUp}.Toastify__slide-exit--top-left,.Toastify__slide-exit--bottom-left{animation-name:Toastify__slideOutLeft;animation-timing-function:ease-in;animation-duration:.3s}.Toastify__slide-exit--top-right,.Toastify__slide-exit--bottom-right{animation-name:Toastify__slideOutRight;animation-timing-function:ease-in;animation-duration:.3s}.Toastify__slide-exit--top-center{animation-name:Toastify__slideOutUp;animation-timing-function:ease-in;animation-duration:.3s}.Toastify__slide-exit--bottom-center{animation-name:Toastify__slideOutDown;animation-timing-function:ease-in;animation-duration:.3s}@keyframes Toastify__spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.loading-indicator{display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto;color:inherit;line-height:0;vertical-align:-.125em}.loading-indicator__icon{display:block;width:100%;height:100%;animation:loading-indicator-spin .8s linear infinite;transform-origin:center}.loading-state{display:flex;align-items:center;justify-content:flex-start;gap:var(--spacing-sm);min-width:0;color:var(--color-text-secondary);font-size:var(--font-size-sm)}.loading-state--stacked{flex-direction:column;justify-content:center;text-align:center}.loading-state__copy{display:flex;flex-direction:column;gap:2px;min-width:0}.loading-state__label{color:inherit;font-weight:var(--font-weight-medium)}.loading-state__detail{color:var(--color-text-secondary);font-size:var(--font-size-xs);font-weight:var(--font-weight-normal)}.loading-overlay-host{position:relative}.loading-overlay-host[aria-busy=true]>:not(.loading-overlay){pointer-events:none;-webkit-user-select:none;user-select:none}.async-surface__content{min-width:0;min-height:inherit;transition:var(--transition-opacity, opacity .15s ease)}.async-surface__content--blocked{opacity:var(--loading-retained-content-opacity, .42)}.loading-overlay{position:absolute;inset:0;z-index:20;min-width:0;min-height:0;padding:var(--spacing-md, 1rem);overflow:hidden;border-radius:inherit;background:#ffffffad;background:color-mix(in srgb,var(--color-background, #fff) 66%,transparent);cursor:progress}.loading-overlay__status{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);display:inline-flex;align-items:center;justify-content:center;gap:var(--spacing-sm, .75rem);max-width:min(34rem,calc(100% - 2rem));padding:.75rem 1rem;border:1px solid rgba(15,23,42,.14);border:1px solid color-mix(in srgb,currentColor 14%,transparent);border-radius:var(--radius-md, .5rem);background:#fffffff0;background:color-mix(in srgb,var(--color-background, #fff) 94%,transparent);color:var(--color-text-primary, #111827);box-shadow:var(--shadow-md, 0 8px 24px rgba(15, 23, 42, .12));overflow:hidden}.loading-overlay__status-main{display:inline-flex;align-items:center;justify-content:center;gap:var(--spacing-sm, .75rem);min-width:0}.loading-overlay__status--timed{width:min(24rem,calc(100% - 2rem));padding-bottom:2.15rem}.loading-overlay__panel{position:absolute;top:50%;left:50%;display:flex;justify-content:center;width:min(38rem,calc(100% - 2rem));max-width:calc(100% - 2rem);transform:translate(-50%,-50%)}.loading-overlay--surface{cursor:default}[data-theme=dark] .loading-overlay{background:#0f172ab3;background:color-mix(in srgb,var(--color-background, #0f172a) 70%,transparent)}[data-theme=dark] .loading-overlay__status{border-color:#ffffff29;background:#0f172af0;color:var(--color-text-primary, #f8fafc)}.loading-overlay__copy{display:flex;min-width:0;flex-direction:column;gap:.125rem}.loading-overlay__label{font-size:var(--font-size-sm, .875rem);font-weight:var(--font-weight-semibold, 600);line-height:1.3}.loading-overlay__detail{color:var(--color-text-secondary, #64748b);font-size:var(--font-size-xs, .75rem);line-height:1.35}.timed-progress{display:flex;flex-direction:column;gap:.4rem;width:100%;max-width:19rem;color:var(--color-text-secondary, #64748b);font-size:var(--font-size-xs, .75rem);font-variant-numeric:tabular-nums;line-height:1.2}.timed-progress__label{text-align:center}.timed-progress__track{display:block;width:100%;height:4px;overflow:hidden;border-radius:var(--radius-full, 9999px);background:var(--color-gray-200, #e5e7eb)}.timed-progress__fill{display:block;width:100%;height:100%;border-radius:inherit;background:var(--color-primary-500, #3b82f6);transform:scaleX(0);transform-origin:left center;transition:transform .25s linear}.timed-progress--extended .timed-progress__fill{background:var(--color-primary-600, #2563eb)}.timed-progress--edge{position:absolute;inset-inline:0;bottom:0;max-width:none;gap:.3rem}.timed-progress--edge .timed-progress__label{padding-inline:.75rem;text-align:right}.timed-progress--edge .timed-progress__track{height:4px;border-radius:0}[data-theme=dark] .timed-progress__track{background:var(--color-gray-700, #374151)}@keyframes loading-indicator-spin{to{transform:rotate(360deg)}}@media(prefers-reduced-motion:reduce){.loading-indicator__icon{animation:none}.async-surface__content{transition:none}.timed-progress__fill{transition:none;visibility:hidden}}.modal-overlay{position:fixed;inset:0;background-color:var(--modal-backdrop-color);display:flex;align-items:center;justify-content:center;z-index:var(--z-index-modal-backdrop);padding:var(--spacing-lg);overflow-y:auto}.modal-content{background:var(--color-surface);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);width:auto;max-height:90vh;overflow:hidden;display:flex;flex-direction:column;z-index:var(--z-index-modal)}.modal-content.small{max-width:400px}.modal-content.medium{max-width:600px}.modal-content.large{max-width:800px}.modal-content.xlarge{max-width:1000px}.modal-header{padding:var(--spacing-lg);border-bottom:1px solid var(--color-border);display:flex;align-items:center;justify-content:space-between}.modal-header h2,.modal-header h3{margin:0;font-size:var(--font-size-xl);font-weight:var(--font-weight-semibold);color:var(--color-text-primary)}.modal-body{padding:var(--spacing-lg);overflow-y:auto;flex:1}.modal-body__content{min-height:inherit}.modal-body[aria-busy=true]{overflow:hidden}.modal-error{margin-bottom:var(--spacing-md)}.modal-footer{padding:var(--spacing-md) var(--spacing-lg);border-top:1px solid var(--color-border);display:flex;align-items:center;gap:var(--spacing-sm);background-color:var(--color-gray-50)}.modal-footer__spacer{flex:1}.modal-footer__delete-action{flex-shrink:0}.modal-footer__delete-action .base-button__icon img{width:16px;height:16px;filter:brightness(0) invert(1);opacity:.95}.modal-close-btn{background:none;border:none;font-size:var(--font-size-xl);color:var(--color-gray-500);cursor:pointer;padding:var(--spacing-xs);display:flex;align-items:center;justify-content:center;border-radius:var(--radius-sm);transition:all .2s}.modal-close-btn:hover{background-color:var(--color-gray-100)}.modal-close-btn img{width:20px;height:20px;opacity:.6;transition:opacity .2s}.modal-close-btn:hover img{opacity:1}.modal-close-btn:disabled{cursor:not-allowed;opacity:.5}@media(max-width:640px){.modal-overlay{padding:0}.modal-content{max-height:100vh;height:100%;max-width:100%!important;border-radius:0}.modal-header,.modal-body{padding:var(--spacing-md)}.modal-footer{padding:var(--spacing-sm) var(--spacing-md)}}@media(prefers-reduced-motion:reduce){.modal-close-btn,.modal-close-btn img{transition:none}}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.base-button{position:relative;display:inline-flex;align-items:center;justify-content:center;gap:var(--spacing-sm);padding:var(--button-padding-y) var(--button-padding-x);border:1px solid transparent;border-radius:var(--button-border-radius);font-family:inherit;font-weight:var(--button-font-weight);text-decoration:none;white-space:nowrap;cursor:pointer;-webkit-user-select:none;user-select:none;transition:var(--transition-colors),var(--transition-shadow),transform var(--duration-fast) var(--ease-out);outline:none}.base-button:focus-visible{box-shadow:0 0 0 3px var(--input-focus-ring-color)}.base-button:hover:not(.base-button--disabled):not(.base-button--loading){transform:translateY(-1px);box-shadow:var(--shadow-sm)}.base-button:active:not(.base-button--disabled):not(.base-button--loading){transform:translateY(0);box-shadow:none}.base-button--sm{padding:calc(var(--spacing-xs) * 1.5) var(--spacing-sm);font-size:var(--font-size-sm)}.base-button--md{padding:var(--button-padding-y) var(--button-padding-x);font-size:var(--font-size-base)}.base-button--lg{padding:calc(var(--spacing-sm) + 2px) var(--spacing-lg);font-size:var(--font-size-lg)}.base-button--primary{background-color:var(--color-primary-500);color:var(--color-surface);border-color:var(--color-primary-500)}.base-button--primary:hover:not(.base-button--disabled):not(.base-button--loading){background-color:var(--color-primary-600);border-color:var(--color-primary-600)}.base-button--primary:active:not(.base-button--disabled):not(.base-button--loading){background-color:var(--color-primary-700);border-color:var(--color-primary-700)}.base-button--secondary{background-color:var(--color-surface);color:var(--color-text-primary);border-color:var(--color-border)}.base-button--secondary:hover:not(.base-button--disabled):not(.base-button--loading){background-color:var(--color-gray-50);border-color:var(--color-gray-400)}.base-button--secondary:active:not(.base-button--disabled):not(.base-button--loading){background-color:var(--color-gray-100);border-color:var(--color-gray-400)}.base-button--success{background-color:var(--color-success-500);color:var(--color-surface);border-color:var(--color-success-500)}.base-button--success:hover:not(.base-button--disabled):not(.base-button--loading){background-color:var(--color-success-600);border-color:var(--color-success-600)}.base-button--success:active:not(.base-button--disabled):not(.base-button--loading){background-color:var(--color-success-700);border-color:var(--color-success-700)}.base-button--danger{background-color:var(--color-danger-500);color:var(--color-surface);border-color:var(--color-danger-500)}.base-button--danger:hover:not(.base-button--disabled):not(.base-button--loading){background-color:var(--color-danger-600);border-color:var(--color-danger-600)}.base-button--danger:active:not(.base-button--disabled):not(.base-button--loading){background-color:var(--color-danger-700);border-color:var(--color-danger-700)}.base-button--warning{background-color:var(--color-warning-500);color:var(--color-surface);border-color:var(--color-warning-500)}.base-button--warning:hover:not(.base-button--disabled):not(.base-button--loading){background-color:var(--color-warning-600);border-color:var(--color-warning-600)}.base-button--warning:active:not(.base-button--disabled):not(.base-button--loading){background-color:var(--color-warning-700);border-color:var(--color-warning-700)}.base-button--ghost{background-color:transparent;color:var(--color-text-secondary);border-color:transparent}.base-button--ghost:hover:not(.base-button--disabled):not(.base-button--loading){background-color:var(--color-gray-100);color:var(--color-text-primary)}.base-button--ghost:active:not(.base-button--disabled):not(.base-button--loading){background-color:var(--color-gray-200)}.base-button--full-width{width:100%}.base-button--disabled{opacity:.5;cursor:not-allowed}.base-button--loading{cursor:wait}.base-button__surface{display:inline-flex;align-items:center;justify-content:center;gap:var(--spacing-sm);transition:opacity var(--duration-fast) var(--ease-out)}.base-button__content{display:inline-flex;align-items:center;justify-content:center}.base-button--loading .base-button__surface{opacity:.28}.base-button__icon{display:inline-flex;align-items:center;justify-content:center;width:1em;height:1em}.base-button__icon svg{width:100%;height:100%}.base-button__loader{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);display:inline-flex}.base-button-group{display:flex;gap:var(--spacing-sm);align-items:center}.base-button-group--tight{gap:0}.base-button-group--tight .base-button{border-radius:0;border-right-width:0}.base-button-group--tight .base-button:first-child{border-top-left-radius:var(--button-border-radius);border-bottom-left-radius:var(--button-border-radius)}.base-button-group--tight .base-button:last-child{border-top-right-radius:var(--button-border-radius);border-bottom-right-radius:var(--button-border-radius);border-right-width:1px}.base-button-group--tight .base-button:focus-visible{z-index:1}@media(prefers-reduced-motion:reduce){.base-button,.base-button__surface{transition:none}}.base-input-wrapper{display:inline-flex;flex-direction:column;gap:var(--spacing-xs)}.base-input-wrapper--full-width{width:100%}.base-input-label{font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);color:var(--color-text-primary);display:flex;align-items:center;gap:var(--spacing-xs)}.base-input-required{color:var(--color-danger-500)}.base-input{width:100%;padding:var(--input-padding-y) var(--input-padding-x);border:var(--input-border-width) solid var(--color-border);border-radius:var(--input-border-radius);font-family:inherit;font-size:var(--font-size-base);font-weight:var(--font-weight-normal);color:var(--color-text-primary);background-color:var(--color-surface);transition:var(--transition-colors),var(--transition-shadow);outline:none}.base-input::placeholder{color:var(--color-text-disabled)}.base-input:focus{border-color:var(--color-primary-500);box-shadow:0 0 0 var(--input-focus-ring-width) var(--input-focus-ring-color)}.base-input:hover:not(:focus):not(:disabled):not(:read-only){border-color:var(--color-gray-400)}.base-input-wrapper--sm .base-input{padding:calc(var(--spacing-xs) * 1.5) var(--spacing-sm);font-size:var(--font-size-sm)}.base-input-wrapper--lg .base-input{padding:calc(var(--spacing-sm) + 2px) calc(var(--spacing-md) + 2px);font-size:var(--font-size-lg)}.base-input-wrapper--error .base-input{border-color:var(--color-danger-500)}.base-input-wrapper--error .base-input:focus{border-color:var(--color-danger-600);box-shadow:0 0 0 var(--input-focus-ring-width) #ef44441a}.base-input-wrapper--error .base-input-label{color:var(--color-danger-600)}.base-input-wrapper--disabled .base-input{background-color:var(--color-gray-50);color:var(--color-text-disabled);cursor:not-allowed}.base-input-wrapper--disabled .base-input-label{color:var(--color-text-disabled)}.base-input-wrapper--readonly .base-input{background-color:var(--color-gray-50);cursor:default}.base-input-message{font-size:var(--font-size-sm);margin-top:var(--spacing-xs)}.base-input-message--helper{color:var(--color-text-secondary)}.base-input-message--error{color:var(--color-danger-600)}.base-input[type=number]{-moz-appearance:textfield}.base-input[type=number]::-webkit-outer-spin-button,.base-input[type=number]::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.base-select-wrapper{display:inline-flex;flex-direction:column;gap:var(--spacing-xs);position:relative}.base-select-wrapper--full-width{width:100%}.base-select__trigger{display:flex;align-items:center;justify-content:space-between;gap:var(--spacing-sm);width:100%;height:36px;padding:0 var(--spacing-sm);border:var(--input-border-width) solid var(--color-border);border-radius:var(--radius-lg);font-family:inherit;font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);color:var(--color-text-primary);background-color:var(--color-surface);cursor:pointer;transition:var(--transition-colors);outline:none}.base-select__trigger:hover:not(:disabled){border-color:var(--color-gray-300);background-color:var(--color-gray-50)}.base-select__trigger:focus-visible{border-color:var(--color-primary-500);box-shadow:0 0 0 var(--input-focus-ring-width) var(--input-focus-ring-color)}.base-select__trigger-content{display:flex;align-items:center;gap:var(--spacing-sm);min-width:0;flex:1}.base-select__icon{width:20px;height:20px;flex-shrink:0}.base-select__value{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.base-select__placeholder{color:var(--color-text-disabled)}.base-select__chevron{width:16px;height:16px;flex-shrink:0;transition:transform var(--duration-fast) var(--ease-in-out)}.base-select__chevron--open{transform:rotate(180deg)}.base-select-wrapper--sm .base-select__trigger{height:28px;padding:0 var(--spacing-xs);font-size:var(--font-size-xs)}.base-select-wrapper--sm .base-select__icon{width:16px;height:16px}.base-select-wrapper--sm .base-select__chevron{width:14px;height:14px}.base-select-wrapper--lg .base-select__trigger{height:44px;padding:0 var(--spacing-md);font-size:var(--font-size-base)}.base-select-wrapper--compact.base-select-wrapper{width:fit-content;min-width:0}.base-select-wrapper--compact .base-select__trigger{height:24px;width:fit-content;min-width:0;padding:0 4px;font-size:var(--font-size-sm);border-radius:var(--radius-sm);gap:4px}.base-select-wrapper--compact .base-select__chevron{width:12px;height:12px}.base-select-wrapper--compact .base-select__menu{padding:2px 0}.base-select-wrapper--compact .base-select__option{padding:4px 8px;font-size:var(--font-size-sm)}.base-select-wrapper--error .base-select__trigger{border-color:var(--color-danger-500)}.base-select-wrapper--error .base-select__trigger:focus-visible{border-color:var(--color-danger-600);box-shadow:0 0 0 var(--input-focus-ring-width) #ef44441a}.base-select-wrapper--disabled .base-select__trigger{background-color:var(--color-gray-50);color:var(--color-text-disabled);cursor:not-allowed;opacity:.7}.base-select-wrapper--disabled .base-select__icon,.base-select-wrapper--disabled .base-select__chevron{opacity:.4}.base-select__menu{position:fixed;z-index:var(--z-index-portal-dropdown);min-width:120px;max-height:280px;overflow-y:auto;padding:var(--spacing-xs) 0;border:1px solid var(--color-gray-300);border-radius:var(--radius-lg);background-color:var(--color-surface);box-shadow:var(--shadow-xl)}.base-select__group-header{padding:var(--spacing-sm) var(--spacing-sm) var(--spacing-xs);font-size:var(--font-size-sm);font-weight:var(--font-weight-bold);color:var(--color-gray-900);border-bottom:1px solid var(--color-gray-100);margin-bottom:var(--spacing-xs)}.base-select__group-header:not(:first-child){margin-top:var(--spacing-sm);border-top:1px solid var(--color-gray-100);padding-top:var(--spacing-sm)}.base-select__option{display:block;width:100%;padding:var(--spacing-sm) var(--spacing-sm);font-size:var(--font-size-sm);font-weight:var(--font-weight-normal);color:var(--color-text-primary);text-align:left;background:none;border:none;cursor:pointer;transition:var(--transition-colors)}.base-select__option:hover,.base-select__option:focus-visible{background-color:var(--color-gray-100)}.base-select__option:focus-visible{outline:2px solid var(--color-primary-500);outline-offset:-2px}.base-select__option--selected{background-color:var(--color-gray-900);color:#fff}.base-select__option--selected:hover,.base-select__option--selected:focus-visible{background-color:var(--color-gray-800)}.base-select__option--disabled{background-color:var(--color-gray-50);color:var(--color-text-disabled);cursor:not-allowed;opacity:.6}.base-select-wrapper .base-input-label{font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);color:var(--color-text-primary);display:flex;align-items:center;gap:var(--spacing-xs)}.base-select-wrapper--error .base-input-label{color:var(--color-danger-600)}.base-select-wrapper--disabled .base-input-label{color:var(--color-text-disabled)}.base-select__message{font-size:var(--font-size-sm);margin-top:var(--spacing-xs)}.base-select__message--helper{color:var(--color-text-secondary)}.base-select__message--error{color:var(--color-danger-600)}.base-select__option--multiple{display:flex;align-items:center;gap:var(--spacing-sm)}.base-select__checkbox{display:inline-flex;align-items:center;justify-content:center;width:16px;height:16px;border:1px solid var(--color-gray-400);border-radius:var(--radius-sm);background:var(--color-surface);flex-shrink:0}.base-select__checkbox--checked{background:var(--color-primary-600);border-color:var(--color-primary-600)}.base-select__check-icon{width:12px;height:12px;filter:brightness(0) invert(1)}.base-select__option--multiple.base-select__option--selected{background-color:var(--color-primary-50);color:var(--color-text-primary)}.base-select__option--multiple.base-select__option--selected:hover,.base-select__option--multiple.base-select__option--selected:focus-visible{background-color:var(--color-primary-100)}.typography{margin:0;font-family:var(--font-family-base);color:var(--color-text-primary);transition:var(--transition-colors)}.typography--h1{font-size:var(--font-size-4xl);font-weight:var(--font-weight-bold);line-height:var(--line-height-tight);letter-spacing:-.02em}.typography--h2{font-size:var(--font-size-3xl);font-weight:var(--font-weight-semibold);line-height:var(--line-height-tight);letter-spacing:-.01em}.typography--h3{font-size:var(--font-size-2xl);font-weight:var(--font-weight-semibold);line-height:var(--line-height-snug)}.typography--h4{font-size:var(--font-size-xl);font-weight:var(--font-weight-semibold);line-height:var(--line-height-snug)}.typography--h5{font-size:var(--font-size-lg);font-weight:var(--font-weight-medium);line-height:var(--line-height-normal)}.typography--h6{font-size:var(--font-size-base);font-weight:var(--font-weight-medium);line-height:var(--line-height-normal)}.typography--body1{font-size:var(--font-size-base);font-weight:var(--font-weight-normal);line-height:var(--line-height-relaxed)}.typography--body2{font-size:var(--font-size-sm);font-weight:var(--font-weight-normal);line-height:var(--line-height-relaxed)}.typography--caption{font-size:var(--font-size-xs);font-weight:var(--font-weight-normal);line-height:var(--line-height-normal)}.typography--overline{font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);line-height:var(--line-height-normal);text-transform:uppercase;letter-spacing:.08em}.typography--color-primary{color:var(--color-text-primary)}.typography--color-secondary{color:var(--color-text-secondary)}.typography--color-disabled{color:var(--color-text-disabled)}.typography--color-error{color:var(--color-danger-600)}.typography--color-warning{color:var(--color-warning-700)}.typography--color-success{color:var(--color-success-700)}.typography--color-inherit{color:inherit}.typography--align-left{text-align:left}.typography--align-center{text-align:center}.typography--align-right{text-align:right}.typography--align-justify{text-align:justify}.typography--weight-light{font-weight:var(--font-weight-light)}.typography--weight-normal{font-weight:var(--font-weight-normal)}.typography--weight-medium{font-weight:var(--font-weight-medium)}.typography--weight-semibold{font-weight:var(--font-weight-semibold)}.typography--weight-bold{font-weight:var(--font-weight-bold)}.typography--gutter-bottom{margin-bottom:var(--spacing-md)}.typography--no-wrap{white-space:nowrap}.typography--truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}@media(max-width:768px){.typography--h1{font-size:var(--font-size-3xl)}.typography--h2{font-size:var(--font-size-2xl)}.typography--h3{font-size:var(--font-size-xl)}.typography--h4{font-size:var(--font-size-lg)}}.typography a{color:var(--color-primary-600);text-decoration:underline;text-decoration-color:transparent;transition:var(--transition-colors)}.typography a:hover{text-decoration-color:currentColor}.typography a:focus-visible{outline:2px solid var(--color-primary-500);outline-offset:2px;border-radius:var(--radius-sm)}.typography code{font-family:var(--font-family-mono);font-size:.875em;background-color:var(--color-gray-100);color:var(--color-danger-700);padding:.125em .25em;border-radius:var(--radius-sm)}.typography strong,.typography b{font-weight:var(--font-weight-semibold)}.typography em,.typography i{font-style:italic}.typography small{font-size:.875em}.typography mark{background-color:var(--color-warning-200);color:var(--color-warning-900);padding:.125em .25em;border-radius:var(--radius-sm)}.base-alert{display:flex;align-items:flex-start;gap:var(--spacing-sm);padding:var(--spacing-sm) var(--spacing-md);border-radius:var(--radius-md);position:relative;width:100%;transition:var(--transition-all)}.base-alert__icon{flex-shrink:0;width:var(--spacing-lg);height:var(--spacing-lg);margin-top:2px}.base-alert__icon svg,.base-alert__icon img{width:100%;height:100%}.base-alert__content{flex:1;min-width:0}.base-alert__title{font-size:var(--font-size-base);font-weight:var(--font-weight-semibold);margin-bottom:var(--spacing-xs);line-height:var(--line-height-tight)}.base-alert__message{font-size:var(--font-size-sm);line-height:var(--line-height-relaxed)}.base-alert__actions{display:flex;align-items:flex-start;gap:var(--spacing-xs);flex-shrink:0;margin-left:var(--spacing-sm)}.base-alert__close{display:flex;align-items:center;justify-content:center;width:var(--spacing-lg);height:var(--spacing-lg);padding:0;border:none;background:none;cursor:pointer;border-radius:var(--radius-sm);transition:var(--transition-colors);color:inherit;opacity:.6}.base-alert__close:hover{opacity:1;background-color:#0000000d}.base-alert__close:focus-visible{outline:2px solid currentColor;outline-offset:-2px;opacity:1}.base-alert__close img{width:var(--spacing-md);height:var(--spacing-md)}.base-alert--success.base-alert--standard{background-color:var(--color-success-50);color:var(--color-success-900);border:1px solid var(--color-success-200)}.base-alert--info.base-alert--standard{background-color:var(--color-primary-50);color:var(--color-primary-900);border:1px solid var(--color-primary-200)}.base-alert--warning.base-alert--standard{background-color:var(--color-warning-50);color:var(--color-warning-900);border:1px solid var(--color-warning-200)}.base-alert--error.base-alert--standard{background-color:var(--color-danger-50);color:var(--color-danger-900);border:1px solid var(--color-danger-200)}.base-alert--success.base-alert--filled{background-color:var(--color-success-600);color:var(--color-surface);border:1px solid transparent}.base-alert--info.base-alert--filled{background-color:var(--color-primary-600);color:var(--color-surface);border:1px solid transparent}.base-alert--warning.base-alert--filled{background-color:var(--color-warning-600);color:var(--color-surface);border:1px solid transparent}.base-alert--error.base-alert--filled{background-color:var(--color-danger-600);color:var(--color-surface);border:1px solid transparent}.base-alert--filled .base-alert__close:hover{background-color:#ffffff26}.base-alert--success.base-alert--outlined{background-color:transparent;color:var(--color-success-700);border:2px solid var(--color-success-500)}.base-alert--info.base-alert--outlined{background-color:transparent;color:var(--color-primary-700);border:2px solid var(--color-primary-500)}.base-alert--warning.base-alert--outlined{background-color:transparent;color:var(--color-warning-700);border:2px solid var(--color-warning-500)}.base-alert--error.base-alert--outlined{background-color:transparent;color:var(--color-danger-700);border:2px solid var(--color-danger-500)}@keyframes alert-slide-out{to{opacity:0;transform:translate(100%)}}.base-alert[data-dismissing=true]{animation:alert-slide-out .3s ease-out forwards}@media(max-width:640px){.base-alert{padding:var(--spacing-xs) var(--spacing-sm)}.base-alert__actions{margin-left:var(--spacing-xs)}}.collapsible-section{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);overflow:visible}.collapsible-header{display:flex;justify-content:space-between;align-items:center;gap:.75rem;padding:1rem 1.5rem;-webkit-user-select:none;user-select:none;transition:background-color .2s ease}.collapsible-header:hover{background-color:var(--color-background)}.collapsible-header__button{flex:1;border:0;background:transparent;color:inherit;font:inherit;text-align:left;padding:0;cursor:pointer}.collapsible-title{display:flex;align-items:center;gap:.75rem}.collapsible-caret{display:inline-block;transition:transform .2s ease;font-size:.875rem;color:var(--color-text-secondary)}.collapsible-caret.open{transform:rotate(180deg)}.collapsible-right{display:flex;gap:.5rem;align-items:center}.collapsible-content{padding:0 1.5rem 1.5rem;border-top:1px solid var(--color-border)}:root{--color-primary-50: #eff6ff;--color-primary-100: #dbeafe;--color-primary-200: #bfdbfe;--color-primary-300: #93c5fd;--color-primary-400: #60a5fa;--color-primary-500: #3b82f6;--color-primary-600: #2563eb;--color-primary-700: #1d4ed8;--color-primary-800: #1e40af;--color-primary-900: #1e3a8a;--color-primary: var(--color-primary-500);--color-gray-25: #fcfcfd;--color-gray-50: #f9fafb;--color-gray-100: #f3f4f6;--color-gray-200: #e5e7eb;--color-gray-300: #d1d5db;--color-gray-400: #9ca3af;--color-gray-500: #6b7280;--color-gray-600: #4b5563;--color-gray-700: #374151;--color-gray-800: #1f2937;--color-gray-900: #111827;--color-success-50: #ecfdf5;--color-success-100: #d1fae5;--color-success-200: #a7f3d0;--color-success-300: #6ee7b7;--color-success-400: #34d399;--color-success-500: #10b981;--color-success-600: #059669;--color-success-700: #047857;--color-success-800: #065f46;--color-success-900: #064e3b;--color-warning-50: #fffbeb;--color-warning-100: #fef3c7;--color-warning-200: #fde68a;--color-warning-300: #fcd34d;--color-warning-400: #fbbf24;--color-warning-500: #f59e0b;--color-warning-600: #d97706;--color-warning-700: #b45309;--color-warning-800: #92400e;--color-warning-900: #78350f;--color-danger-50: #fef2f2;--color-danger-100: #fee2e2;--color-danger-200: #fecaca;--color-danger-300: #fca5a5;--color-danger-400: #f87171;--color-danger-500: #ef4444;--color-danger-600: #dc2626;--color-danger-700: #b91c1c;--color-danger-800: #991b1b;--color-danger-900: #7f1d1d;--color-background: #fafafa;--color-surface: #ffffff;--color-text-primary: var(--color-gray-900);--color-text-secondary: var(--color-gray-600);--color-text-tertiary: var(--color-gray-500);--color-text-disabled: var(--color-gray-400);--color-border: var(--color-gray-200);--color-divider: var(--color-gray-200);--font-family-base: -apple-system, BlinkMacSystemFont, "Segoe UI", "Roboto", "Oxygen", "Ubuntu", "Cantarell", "Fira Sans", "Droid Sans", "Helvetica Neue", sans-serif;--font-family-mono: "SF Mono", "Monaco", "Inconsolata", "Fira Code", "Courier New", monospace;--font-size-xs: .75rem;--font-size-sm: .875rem;--font-size-base: 1rem;--font-size-lg: 1.125rem;--font-size-xl: 1.25rem;--font-size-2xl: 1.5rem;--font-size-3xl: 1.875rem;--font-size-4xl: 2.25rem;--font-weight-light: 300;--font-weight-normal: 400;--font-weight-medium: 500;--font-weight-semibold: 600;--font-weight-bold: 700;--line-height-none: 1;--line-height-tight: 1.25;--line-height-snug: 1.375;--line-height-normal: 1.5;--line-height-relaxed: 1.625;--line-height-loose: 2;--spacing-none: 0;--spacing-xs: .25rem;--spacing-sm: .5rem;--spacing-md: 1rem;--spacing-lg: 1.5rem;--spacing-xl: 2rem;--spacing-2xl: 3rem;--spacing-3xl: 4rem;--toolbar-gap: .75rem;--toolbar-padding-x: 1.125rem;--toolbar-padding-y: .875rem;--toolbar-font-size: .9375rem;--toolbar-icon-size: 1.25rem;--toolbar-control-gap: .375rem;--toolbar-control-height: 1.625rem;--toolbar-divider-thickness: 1px;--radius-none: 0;--radius-sm: .25rem;--radius-base: .375rem;--radius-md: .5rem;--radius-lg: .75rem;--radius-xl: 1rem;--radius-full: 9999px;--shadow-none: none;--shadow-xs: 0 1px 1px 0 rgba(0, 0, 0, .04);--shadow-sm: 0 1px 2px 0 rgba(0, 0, 0, .05);--shadow-base: 0 1px 3px 0 rgba(0, 0, 0, .1), 0 1px 2px 0 rgba(0, 0, 0, .06);--shadow-md: 0 4px 6px -1px rgba(0, 0, 0, .1), 0 2px 4px -1px rgba(0, 0, 0, .06);--shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, .1), 0 4px 6px -2px rgba(0, 0, 0, .05);--shadow-xl: 0 20px 25px -5px rgba(0, 0, 0, .1), 0 10px 10px -5px rgba(0, 0, 0, .04);--shadow-2xl: 0 25px 50px -12px rgba(0, 0, 0, .25);--toolbar-background: #f5f5f7;--toolbar-button-ghost-bg: rgba(74, 80, 94, .08);--toolbar-button-ghost-hover: rgba(74, 80, 94, .14);--toolbar-button-text: #4a4f5c;--toolbar-value-text: #2b2f3b;--toolbar-slider-track: #d8dbe5;--toolbar-accent: #4a90e2;--transition-none: none;--transition-all: all .15s cubic-bezier(.4, 0, .2, 1);--transition-colors: background-color .15s cubic-bezier(.4, 0, .2, 1), border-color .15s cubic-bezier(.4, 0, .2, 1), color .15s cubic-bezier(.4, 0, .2, 1), fill .15s cubic-bezier(.4, 0, .2, 1), stroke .15s cubic-bezier(.4, 0, .2, 1);--transition-opacity: opacity .15s cubic-bezier(.4, 0, .2, 1);--transition-shadow: box-shadow .15s cubic-bezier(.4, 0, .2, 1);--transition-transform: transform .15s cubic-bezier(.4, 0, .2, 1);--transition-border: border-color .15s cubic-bezier(.4, 0, .2, 1);--duration-fast: .15s;--duration-base: .2s;--duration-slow: .3s;--duration-slower: .5s;--ease-in: cubic-bezier(.4, 0, 1, 1);--ease-out: cubic-bezier(0, 0, .2, 1);--ease-in-out: cubic-bezier(.4, 0, .2, 1);--z-index-base: 0;--z-index-dropdown: 1000;--z-index-sticky: 1100;--z-index-fixed: 1200;--z-index-modal-backdrop: 9000;--z-index-modal: 9010;--z-index-popover: 10000;--z-index-tooltip: 10010;--z-index-portal-dropdown: var(--z-index-popover);--z-index-app-blocker: 2147483000;--loading-retained-content-opacity: .42;--button-padding-x: var(--spacing-md);--button-padding-y: var(--spacing-sm);--button-font-weight: var(--font-weight-medium);--button-border-radius: var(--radius-base);--input-padding-x: var(--spacing-sm);--input-padding-y: .625rem;--input-border-width: 2px;--input-border-radius: var(--radius-md);--input-focus-ring-width: 3px;--input-focus-ring-color: rgba(59, 130, 246, .1);--modal-backdrop-color: rgba(0, 0, 0, .5);--modal-border-radius: var(--radius-md);--modal-padding: var(--spacing-lg);--grid-header-height: 50px;--grid-row-height: 40px}[data-theme=dark]{--color-background: #0f172a;--color-surface: #1e293b;--color-text-primary: #f1f5f9;--color-text-secondary: #cbd5e1;--color-text-disabled: #64748b;--color-border: #334155;--color-divider: #334155;--shadow-sm: 0 1px 2px 0 rgba(0, 0, 0, .3);--shadow-base: 0 1px 3px 0 rgba(0, 0, 0, .4), 0 1px 2px 0 rgba(0, 0, 0, .3);--shadow-md: 0 4px 6px -1px rgba(0, 0, 0, .4), 0 2px 4px -1px rgba(0, 0, 0, .3);--modal-backdrop-color: rgba(0, 0, 0, .7);--input-focus-ring-color: rgba(59, 130, 246, .2)}.text-primary{color:var(--color-text-primary)}.text-secondary{color:var(--color-text-secondary)}.text-disabled{color:var(--color-text-disabled)}.bg-surface{background-color:var(--color-surface)}.bg-background{background-color:var(--color-background)}.border-default{border-color:var(--color-border)}.flex{display:flex}.flex-col{display:flex;flex-direction:column}.flex-row{display:flex;flex-direction:row}.items-center{align-items:center}.items-start{align-items:flex-start}.items-stretch{align-items:stretch}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.justify-start{justify-content:flex-start}.flex-wrap{flex-wrap:wrap}.gap-1{gap:var(--spacing-xs)}.gap-2{gap:var(--spacing-sm)}.gap-3{gap:var(--spacing-md)}.gap-4{gap:var(--spacing-lg)}.gap-5{gap:var(--spacing-xl)}.stack{display:flex;flex-direction:column;gap:var(--spacing-md)}.stack-sm{display:flex;flex-direction:column;gap:var(--spacing-sm)}.stack-lg{display:flex;flex-direction:column;gap:var(--spacing-lg)}.inline{display:flex;flex-direction:row;gap:var(--spacing-md);align-items:center}.inline-sm{display:flex;flex-direction:row;gap:var(--spacing-sm);align-items:center}.mb-2{margin-bottom:var(--spacing-sm)}.mb-3{margin-bottom:var(--spacing-md)}.mb-4{margin-bottom:var(--spacing-lg)}.field-hint{font-weight:400;font-size:12px;color:var(--color-gray-500);margin-top:4px}.color-preset-picker{display:flex;flex-direction:column;gap:var(--spacing-xs)}.color-preset-picker__label{font-size:var(--font-size-sm);font-weight:600;color:var(--color-text-primary)}.color-preset-picker__swatches{display:flex;gap:var(--spacing-xs);flex-wrap:wrap}.color-preset-picker__swatch{width:20px;height:20px;border-radius:var(--radius-sm);border:2px solid transparent;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:border-color .15s ease;padding:0}.color-preset-picker__swatch:hover:not(:disabled){border-color:var(--color-gray-400)}.color-preset-picker__swatch:disabled{cursor:not-allowed;opacity:.55}.color-preset-picker__swatch:focus-visible{outline:2px solid var(--color-primary-500);outline-offset:1px}.color-preset-picker__swatch--selected{border-color:var(--color-gray-700)}.color-preset-picker__check{width:12px;height:12px;color:var(--color-gray-800);filter:drop-shadow(0 1px 1px rgba(255,255,255,.5))}.capacity-buoy{display:inline-flex;align-items:center;gap:4px;min-width:0;flex-shrink:0}.capacity-buoy__svg{width:18px;height:18px;flex-shrink:0}.capacity-buoy--header{gap:3px}.capacity-buoy--header .capacity-buoy__svg,.capacity-buoy--card .capacity-buoy__svg{width:45px;height:18px}.capacity-buoy--card .capacity-buoy__svg{opacity:.5;color:#000}.capacity-buoy__label{white-space:nowrap;font-variant-numeric:tabular-nums}.capacity-buoy--over{color:var(--color-danger-600)}.capacity-buoy--over .capacity-buoy__svg{opacity:1}.capacity-buoy--card.capacity-buoy--over .capacity-buoy__svg{color:inherit}.capacity-buoy--header.capacity-buoy--empty{opacity:.4}.capacity-buoy--card.capacity-buoy--empty{opacity:.6}.collapsible-entity-section{border-top:1px solid var(--color-gray-100)}.collapsible-entity-section__header{display:flex;align-items:center;gap:.35rem;width:100%;padding:.5rem .85rem;border:none;background:transparent;cursor:pointer;text-align:left;font-size:.9rem;font-weight:500;color:var(--color-gray-500);transition:background .15s ease}.collapsible-entity-section__header:hover{background:var(--color-gray-50)}.collapsible-entity-section__icon{width:16px;height:16px;opacity:.5}.collapsible-entity-section__label{flex:1}.collapsible-entity-section__caret{display:inline-block;font-size:.75rem;color:var(--color-text-secondary);transition:transform .2s ease;margin-left:auto}.collapsible-entity-section__caret.is-open{transform:rotate(180deg)}.collapsible-entity-section__content{padding:.35rem .85rem .5rem 1.25rem}.collapsible-entity-section__entity{background:var(--color-gray-50);border-radius:6px;padding:.4rem .5rem}.collapsible-entity-section__entity+.collapsible-entity-section__entity{margin-top:.35rem}.collapsible-entity-section__entity-name{font-size:.9rem;font-weight:500;color:var(--color-gray-700);margin-bottom:.25rem}.collapsible-entity-section__entity-items{display:flex;flex-direction:column;gap:.1rem}.collapsible-entity-section__entity-item{display:flex;align-items:center;gap:.4rem;font-size:.8rem;color:var(--color-gray-600)}.collapsible-entity-section__entity-item img{width:16px;height:16px;opacity:.5}.app-blocking-layer{position:fixed;inset:0;z-index:var(--z-index-app-blocker, 2147483000);pointer-events:auto}.app-blocking-layer>.loading-overlay{position:absolute;z-index:1}.navigation{display:flex;gap:1rem;align-items:center;overflow-x:auto;overflow-y:hidden;white-space:nowrap;-ms-overflow-style:none;scrollbar-width:none}.navigation::-webkit-scrollbar{display:none}.nav-link{display:inline-flex;align-items:center;gap:8px;padding:.4rem .8rem;text-decoration:none;color:var(--color-gray-500);font-weight:500;border-radius:4px;transition:all .2s ease;position:relative}.nav-link:hover{color:var(--color-gray-700);background-color:#0000000d}.nav-link.active{color:var(--color-primary-500);background-color:#2196f31a}.nav-link.active:after{content:"";position:absolute;bottom:-2px;left:1rem;right:1rem;height:2px;background-color:var(--color-primary-500)}.nav-icon{width:16px;height:16px;opacity:.9}.nav-link.disabled{opacity:.5;pointer-events:none}.sync-status{position:relative;display:inline-flex;align-items:center;justify-content:center;width:144px;min-width:144px;padding:4px 8px;border-radius:8px;font-size:12px;font-weight:500;transition:background-color .2s ease,border-color .2s ease;-webkit-user-select:none;user-select:none}.sync-status__surface{display:inline-flex;min-width:0;align-items:center;gap:6px}.sync-status__icon-slot{display:inline-flex;width:12px;height:12px;flex:0 0 12px;align-items:center;justify-content:center}.status-text{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--color-gray-700)}.queue-count{color:var(--color-gray-500);font-size:12px}.status-saved{background-color:#f2faf3;border:1px solid #a5d6a7}.status-saved .status-text{color:#2e7d32}.status-unsaved{background-color:#fff8e1;border:1px solid #ffc107}.status-unsaved .status-text{color:#f57c00}.status-saving{background-color:#eaf4fe;border:1px solid #90caf9}.status-saving .status-text{color:#1565c0}.status-error{background-color:var(--color-danger-50);border:1px solid #ef9a9a}.status-error .status-text{color:var(--color-danger-700)}.status-offline{background-color:var(--color-gray-50);border:1px solid #bdbdbd}.status-offline .status-text{color:#616161}.status-dot{width:8px;height:8px;border-radius:50%;display:inline-block}.status-saved .status-dot{background:#43a047}.status-unsaved .status-dot{background:var(--color-warning-500)}.status-saving .status-dot{background:#1e88e5}.status-error .status-dot{background:#e53935}.status-offline .status-dot{background:#9e9e9e}.offline-banner{position:fixed;top:0;left:0;right:0;background-color:#f44336;color:var(--color-surface);padding:12px;text-align:center;font-weight:500;z-index:1000;animation:slideDown .3s ease}@keyframes slideDown{0%{transform:translateY(-100%)}to{transform:translateY(0)}}@media(prefers-reduced-motion:reduce){.sync-status{transition:none}.offline-banner{animation:none}}.live-board-consequence-modal .modal-body{padding-top:0}.live-board-consequence-modal__content{display:grid;gap:16px}.live-board-consequence-modal__detail{margin:0;color:var(--text-secondary, #475467)}.live-board-consequence-modal__section h3{margin:0 0 8px;font-size:.95rem}.live-board-consequence-modal__changes{display:grid;gap:12px}.live-board-consequence-modal__change{border:1px solid var(--border-subtle, #d0d5dd);border-radius:10px;padding:12px;background:var(--surface-subtle, #f8fafc)}.live-board-consequence-modal__change-title{font-weight:600;margin-bottom:6px}.live-board-consequence-modal__change ul{margin:0;padding-left:18px}.live-board-consequence-modal__change p{margin:0}.live-board-consequence-modal__note{border-radius:10px;padding:12px;font-size:.95rem}.live-board-consequence-modal__warning{background:#fff7ed;color:#7a4422;border-radius:10px;padding:12px;font-size:.95rem}.live-board-consequence-modal__warning h3{margin:0 0 6px;font-size:.95rem}.live-board-consequence-modal__warning ul{margin:0;padding-left:18px}.live-board-consequence-modal__assignment-note{margin:10px 0 0}.live-board-consequence-modal__note{background:#eef4ff;color:#22437a}.live-board-consequence-modal__actions{display:flex;justify-content:flex-end;gap:12px}.Toastify__toast-container{--toastify-toast-transition: none}.Toastify__slide-enter,.Toastify__slide-exit{animation-duration:0ms!important}.Toastify__toast--update{animation:none!important;transition:none!important}.Toastify__progress-bar{transition:none!important}.Toastify__toast{animation-duration:0ms!important;transition:none!important}.schedule-editor{position:relative;display:flex;flex-direction:column;gap:0;padding-top:.75rem;min-height:16rem}.schedule-editor__surface-content{display:flex;min-height:16rem;flex-direction:column;gap:0}.schedule-editor__error-card{width:min(36rem,calc(100% - 2rem));box-shadow:var(--shadow-md)}.schedule-editor__tabs{display:flex;gap:0;margin-bottom:0;padding-left:0}.schedule-editor__tab{padding:.5rem 1.25rem 1rem;margin-bottom:-.5rem;border:1px solid var(--color-border, var(--color-gray-200));border-bottom:none;border-radius:8px 8px 0 0;background:var(--color-gray-100, #f3f4f6);font-size:1.0625rem;font-weight:600;color:var(--color-gray-600, #4b5563);cursor:pointer;transition:background .15s ease,color .15s ease;margin-right:-1px}.schedule-editor__tab:hover:not(.is-active){background:var(--color-gray-50, #f9fafb);color:var(--color-gray-700, #374151)}.schedule-editor__tab.is-active{background:var(--color-surface, #fff);color:var(--color-gray-900, #111827);border-bottom:1px solid var(--color-surface, #fff);position:relative;z-index:6}.schedule-editor__sticky-sentinel{width:100%;height:0;pointer-events:none}.schedule-editor__problems{margin:.5rem 0;padding:.625rem .875rem;border:1px solid var(--color-border, #e5e7eb);border-radius:6px;background:var(--color-surface, #ffffff)}.schedule-editor__problems-summary{cursor:pointer;font-weight:600;font-size:.875rem;color:var(--color-warning-700, #b45309);list-style:none}.schedule-editor__problems-summary::-webkit-details-marker{display:none}.schedule-editor__problems-content{margin-top:.4rem;display:grid;grid-template-columns:auto auto auto auto auto auto auto auto;gap:0 1rem;width:fit-content}.schedule-editor__problems-grid{display:contents}.schedule-editor__problems-grid--header .schedule-editor__problems-cell{padding-bottom:.375rem;border-bottom:1px solid var(--color-border, #e5e7eb);font-size:.75rem;font-weight:500;letter-spacing:.02em;text-transform:uppercase;color:var(--color-text-secondary, #6b7280)}.schedule-editor__problems-grid--row .schedule-editor__problems-cell{padding:.375rem 0;border-bottom:1px solid var(--color-background-subtle, #f3f4f6)}.schedule-editor__problems-grid--row:last-child .schedule-editor__problems-cell{border-bottom:none}.schedule-editor__problems-cell{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:1rem;font-weight:400;color:var(--color-text-primary, #111827)}.schedule-editor__problems-cell--week,.schedule-editor__problems-cell--date,.schedule-editor__problems-cell--time{font-variant-numeric:tabular-nums}.schedule-editor__drift-content{margin-top:.4rem;display:grid;grid-template-columns:auto auto auto auto auto;gap:0 1rem;width:fit-content}.schedule-editor__problems-group{margin-top:.6rem;padding-top:0;border-top:none}.schedule-editor__problems-cell--change{font-weight:500}.schedule-editor__problems-cell--what,.schedule-editor__problems-cell--before,.schedule-editor__problems-cell--after,.schedule-editor__problems-cell--when{white-space:normal;overflow:visible;text-overflow:clip}.schedule-editor__problems-cell--what{max-width:34ch}.schedule-editor__problems-cell--before,.schedule-editor__problems-cell--after{max-width:28ch}.schedule-editor__problems-cell--when{max-width:34ch}.schedule-editor__drift-item{color:var(--color-text-primary, #111827)}.schedule-editor__drift-scalar{display:flex;flex-direction:column;gap:.15rem}.schedule-editor__drift-scalar-name{color:var(--color-text-primary, #111827)}.schedule-editor__drift-scalar-fields{display:grid;grid-template-columns:auto auto auto;gap:.05rem .9rem;width:fit-content}.schedule-editor__drift-scalar-label{color:var(--color-text-secondary, #6b7280)}.schedule-editor__drift-scalar-value{font-variant-numeric:tabular-nums}.schedule-editor__drift-scalar-value--was{color:var(--color-text-muted, #9ca3af)}.schedule-editor__drift-scalar-value--now{color:var(--color-text-primary, #111827);font-weight:500}.schedule-editor__drift-scalar-caption{text-transform:uppercase;letter-spacing:.02em;font-size:.7rem;color:var(--color-text-muted, #9ca3af)}.schedule-editor__drift-more{font-size:.875rem;color:var(--color-text-muted, #9ca3af)}.schedule-editor__drift-toggle{padding:0;border:none;background:transparent;color:var(--color-text-secondary, #6b7280);font-family:inherit;font-size:.875rem;font-weight:500;text-align:left;cursor:pointer}.schedule-editor__drift-toggle:hover{color:var(--color-text-primary, #111827);text-decoration:underline}.schedule-editor__drift-reason{font-size:.875rem;color:var(--color-text-muted, #9ca3af)}.schedule-editor__problems-group~.schedule-editor__problems-group{margin-top:1rem;padding-top:.75rem;border-top:1px solid var(--color-border, #e5e7eb)}.schedule-editor__problems-group-heading{margin:0 0 .45rem;font-size:1rem;font-weight:600;color:var(--color-text-primary, #111827)}.schedule-editor__problems-group-toggle{display:inline-flex;align-items:center;gap:.4rem;padding:0;border:none;background:transparent;font:inherit;color:inherit;text-align:left;cursor:pointer}.schedule-editor__problems-group-caret{width:14px;height:14px;flex-shrink:0;opacity:.55;transition:transform .15s ease}.schedule-editor__problems-group-caret.is-collapsed{transform:rotate(-90deg)}.schedule-editor__problems-group-toggle:hover .schedule-editor__problems-group-caret{opacity:.9}.schedule-editor__problems-group-count{font-weight:400;color:var(--color-text-secondary, #6b7280)}.schedule-editor__unscheduled-content{display:grid;grid-template-columns:auto auto minmax(18ch,46ch) auto;gap:0 1rem;width:fit-content}.schedule-editor__unscheduled-reason{white-space:normal;overflow:visible;text-overflow:clip}.schedule-editor__unscheduled-fact{margin-top:.15rem;font-size:.875rem;color:var(--color-text-muted, #9ca3af)}.schedule-editor__problems-cell--issues{white-space:normal;overflow:visible;text-overflow:clip;font-weight:400;max-width:46ch}.schedule-editor__problems-cell--actions{display:flex;justify-content:flex-start;align-items:center}.schedule-editor__problem-goto{display:inline-flex;align-items:center;gap:.25rem;padding:.2rem .4rem;border-radius:4px;border:1px solid var(--color-border, #e5e7eb);background:transparent;color:var(--color-text-secondary, #6b7280);font-size:.75rem;font-weight:500;cursor:pointer;white-space:nowrap;transition:background .15s ease,border-color .15s ease}.schedule-editor__problem-goto:hover{background:var(--color-gray-50, #f8fafc);border-color:var(--color-gray-300, #d1d5db)}.schedule-editor__problem-goto:active{background:var(--color-gray-100, #f3f4f6)}.schedule-editor__problem-goto-icon{width:12px;height:12px;flex:0 0 auto}.schedule-editor__problem-issues{display:flex;flex-direction:column;gap:.15rem;font-size:1rem;color:var(--color-text-secondary, #6b7280);font-weight:400}.schedule-editor__problem-issue{display:flex;align-items:flex-start;gap:.25rem;line-height:1.2}.schedule-editor__problem-issue-body{display:flex;flex-direction:column;gap:.1rem;min-width:0}.schedule-editor__problem-issue-icon{width:12px;height:12px;flex:0 0 auto;opacity:.7}.schedule-editor__problem-issue-text{color:var(--color-text-secondary, #6b7280)}.schedule-editor__problem-issue-reason{margin-top:2px;font-size:.875rem;color:var(--color-text-secondary, #6b7280)}.schedule-editor__header{position:sticky;top:var(--schedule-editor-sticky-top, 0px);z-index:30;display:flex;flex-direction:column;gap:.65rem;margin-bottom:0;isolation:isolate}.schedule-editor__header:before{content:"";position:absolute;top:calc(-1 * var(--schedule-editor-sticky-top, 0px));left:0;right:0;height:calc(var(--schedule-editor-sticky-top, 0px) + 12px);background:var(--schedule-editor-header-background, var(--color-surface));z-index:-1;pointer-events:none;opacity:0;visibility:hidden;transition:opacity .18s ease,visibility .18s ease}.schedule-editor__header.is-sticky:before{opacity:1;visibility:visible}.schedule-editor__header-row{position:relative;display:block;background:transparent;border-radius:0;box-shadow:none;padding:0}.schedule-editor__table-container{position:relative;z-index:0;margin-top:-1px}.schedule-editor__table-wrapper{background:var(--color-surface);border:1px solid var(--color-border, var(--color-gray-200));border-radius:0 0 16px 16px;overflow-x:auto;position:relative}.schedule-editor__table-top-scroller{position:sticky;top:calc(var(--schedule-editor-sticky-top, 0px) + var(--schedule-editor-header-height, 0px));z-index:21;overflow-x:auto;overflow-y:hidden;background:var(--color-surface);scrollbar-width:thin}.schedule-editor__table-top-scroller--hidden{display:none}.schedule-editor__table-top-scroller-spacer{height:1px}.schedule-editor__table-top-scroller::-webkit-scrollbar{height:8px}.schedule-editor__table-top-scroller::-webkit-scrollbar-thumb{background:var(--color-gray-300);border-radius:4px}.schedule-editor__table-top-scroller::-webkit-scrollbar-track{background:transparent}.schedule-editor__table{width:100%;table-layout:auto;border-collapse:separate;border-spacing:0;font-size:.9rem}.schedule-editor__table--metrics{table-layout:auto}.schedule-editor__table tbody{font-size:1rem}.schedule-editor__table thead{position:relative;z-index:20;will-change:transform;background:var(--color-gray-50, #f8fafc);box-shadow:0 2px 0 var(--color-gray-300, #d1d5db),0 4px 8px #0f172a14}.schedule-editor__table tbody tr.schedule-editor__row--occupied:nth-child(2n){background:var(--color-gray-50, #f8fafc)}.schedule-editor__table tbody tr.schedule-editor__row--problem,.schedule-editor__table tbody tr.schedule-editor__row--problem:nth-child(2n){background:var(--color-warning-50)}.schedule-editor__table tbody tr.schedule-editor__row--problem td{border-bottom-color:var(--color-warning-300)}.schedule-editor__table tbody tr.schedule-editor__row--problem:hover{background:var(--color-warning-100)}.schedule-editor__table th,.schedule-editor__table td{padding:.6rem .75rem;border-bottom:1px solid var(--gray-200, var(--color-gray-200));vertical-align:middle;white-space:nowrap;text-overflow:ellipsis}.schedule-editor__table th{background:inherit;overflow:visible;z-index:21}.schedule-editor__table thead th.schedule-editor__col--week{position:sticky;left:0;z-index:22;background:var(--color-gray-50, #f8fafc)}.schedule-editor__table tbody td.schedule-editor__col--week{position:sticky;left:0;z-index:2;background:inherit}.schedule-editor__table tbody tr.schedule-editor__row--true-home td.schedule-editor__col--week{background:linear-gradient(#3b82f614,#3b82f614),var(--color-surface)}.schedule-editor__table tbody tr.schedule-editor__row--ha-swap-origin td.schedule-editor__col--week{background:linear-gradient(#3b82f626,#3b82f626),var(--color-surface)}.schedule-editor__table tbody tr.schedule-editor__row--ha-swap-target td.schedule-editor__col--week,.schedule-editor__table tbody tr.schedule-editor__row--valid-target td.schedule-editor__col--week{background:linear-gradient(#22c55e1f,#22c55e1f),var(--color-surface)}.schedule-editor__table tbody tr.schedule-editor__row--ha-swap-target:hover td.schedule-editor__col--week{background:linear-gradient(#22c55e38,#22c55e38),var(--color-surface)}.schedule-editor__table tbody tr.schedule-editor__row--valid-target:hover td.schedule-editor__col--week{background:linear-gradient(#22c55e33,#22c55e33),var(--color-surface)}.schedule-editor__table tbody tr.schedule-editor__row--invalid-target td.schedule-editor__col--week{background:linear-gradient(#64748b1f,#64748b1f),var(--color-surface)}.schedule-editor__table tbody tr.schedule-editor__row--invalid-target:hover td.schedule-editor__col--week{background:linear-gradient(#64748b2e,#64748b2e),var(--color-surface)}.schedule-editor__table th.schedule-editor__col--week,.schedule-editor__table td.schedule-editor__col--week{min-width:4.5rem}.schedule-editor__table td.schedule-editor__col--flight{max-width:11rem;overflow:hidden}.schedule-editor__table td.schedule-editor__col--homeTeam{max-width:12rem}.schedule-editor__table td.schedule-editor__col--awayTeam{max-width:12rem;overflow:hidden}.schedule-editor__table td.schedule-editor__col--facility{max-width:13rem;overflow:hidden}.schedule-editor__table th.schedule-editor__col--dayOfWeek,.schedule-editor__table td.schedule-editor__col--dayOfWeek{min-width:3.25rem}.schedule-editor__table th.schedule-editor__col--startTime,.schedule-editor__table td.schedule-editor__col--startTime{min-width:5rem}.schedule-editor__table th.schedule-editor__col--matchQuality,.schedule-editor__table td.schedule-editor__col--matchQuality{min-width:4rem}.schedule-editor__table th.schedule-editor__col--courtFormat,.schedule-editor__table td.schedule-editor__col--courtFormat{min-width:3.5rem}.schedule-editor__table th:last-child,.schedule-editor__table td:last-child{padding-right:.5rem}.schedule-editor__table--metrics thead th.schedule-editor__col--teamName{position:sticky;left:0;z-index:22;background:var(--color-gray-50, #f8fafc)}.schedule-editor__table--metrics tbody td.schedule-editor__col--teamName{position:sticky;left:0;z-index:2;background:var(--color-surface)}.schedule-editor__table--metrics tbody tr:hover td.schedule-editor__col--teamName{background:var(--color-gray-100)}.schedule-editor__table--metrics th.schedule-editor__col--teamName,.schedule-editor__table--metrics td.schedule-editor__col--teamName,.schedule-editor__table--metrics th.schedule-editor__col--meanNeutralTravelTenths,.schedule-editor__table--metrics td.schedule-editor__col--meanNeutralTravelTenths,.schedule-editor__table--metrics th.schedule-editor__col--worstNeutralTravelTenths,.schedule-editor__table--metrics td.schedule-editor__col--worstNeutralTravelTenths,.schedule-editor__table--metrics th.schedule-editor__col--neutralTravelCoverage,.schedule-editor__table--metrics td.schedule-editor__col--neutralTravelCoverage{min-width:8rem}.schedule-editor__table--metrics td.schedule-editor__col--homeFacilityLabel,.schedule-editor__table--metrics td.schedule-editor__col--homeTimeLabel{max-width:12rem;overflow:hidden}.schedule-editor__table td.schedule-editor__cell--home-team{overflow:visible;position:relative}.schedule-editor__table td.schedule-editor__cell--ha-pattern{overflow:visible;max-width:none}.schedule-editor__table td.schedule-editor__cell--home-team:has(.schedule-editor__home-popover){z-index:100}.schedule-editor__table tbody tr:hover{background:var(--color-gray-100);cursor:pointer}.schedule-editor__table tbody tr{transition:transform .2s ease,box-shadow .2s ease,background-color .2s ease}.schedule-editor__table tbody tr.schedule-editor__row--selected{background:var(--color-primary-50);box-shadow:inset 3px 0 0 var(--color-primary-500)}.schedule-editor__table tbody tr.schedule-editor__row--goto{background:var(--color-warning-100, #fef3c7);box-shadow:inset 0 0 0 2px var(--color-warning-400, #fbbf24)}.schedule-editor__row--path{font-weight:inherit}.schedule-editor__row--open{color:var(--color-success-800);background:var(--color-success-50)}.schedule-editor__row--unscheduled,.schedule-editor__row--missing-slot{color:var(--color-warning-800);background:var(--color-warning-50)}.schedule-editor__row--blackout{color:var(--color-gray-100);background:var(--color-gray-600)}.schedule-editor__row--occupied{background:var(--color-surface)}.schedule-editor__team-cell{display:inline-flex;align-items:center;gap:.4rem;position:relative;max-width:100%;min-width:0}.schedule-editor__team-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0;flex:1}.schedule-editor__open-badge{background:var(--color-success-100);color:var(--color-success-800);font-size:.7rem;font-weight:600;padding:.1rem .5rem;border-radius:999px;box-shadow:0 1px 3px var(--color-success-300);text-transform:uppercase}.schedule-editor__origin-badge{background:var(--color-primary-100);color:var(--color-primary-800);font-size:.7rem;font-weight:600;padding:.1rem .5rem;border-radius:999px;box-shadow:0 1px 3px var(--color-primary-300);text-transform:uppercase}.schedule-editor__blackout-badge{background:var(--color-gray-900);color:var(--color-gray-100);font-size:.7rem;font-weight:600;padding:.1rem .5rem;border-radius:999px;text-transform:uppercase}.schedule-editor__empty{text-align:center;padding:2rem 1rem;color:var(--gray-600, var(--color-gray-600))}.schedule-editor__preference{font-style:italic;cursor:help}.schedule-editor__header-label{font-size:1.1rem;font-weight:600;line-height:1}.schedule-editor__column-settings-trigger{position:relative;border:none;background:none;cursor:pointer;padding:0;display:inline-flex;align-items:center;justify-content:center;border-radius:4px;transition:background .2s ease;line-height:0}.schedule-editor__column-settings-trigger:hover{background:#0000000f}.schedule-editor__column-settings-trigger img{width:18px;height:18px;opacity:.4;transition:opacity .15s ease}.schedule-editor__column-settings-trigger:hover img{opacity:.7}.schedule-editor__column-settings-trigger.is-active img{opacity:.9}.schedule-editor__settings-badge{position:absolute;top:-2px;right:-2px;width:8px;height:8px;background:var(--color-primary-500);border-radius:999px;pointer-events:none}.schedule-editor__columns-control{position:relative}.schedule-editor__column-popover{position:absolute;top:calc(100% + 4px);left:0;z-index:999;min-width:180px;max-width:260px;background:var(--color-surface);border:1px solid var(--color-border, var(--color-gray-200));border-radius:10px;box-shadow:0 10px 24px #0f172a1f;padding:.5rem 0;font-size:.85rem}.schedule-editor__column-popover.align-right{left:auto;right:0}.schedule-editor__popover-section{padding:.4rem .5rem}.schedule-editor__popover-section+.schedule-editor__popover-section{border-top:1px solid var(--color-gray-100)}.schedule-editor__popover-section-label{display:flex;align-items:center;gap:.3rem;font-size:.85rem;font-weight:600;color:var(--color-gray-500);text-transform:uppercase;letter-spacing:.03em;margin-bottom:.3rem}.schedule-editor__popover-section-label img{width:14px;height:14px;opacity:.5}.schedule-editor__filter-count{font-weight:500;font-size:.75rem;color:var(--color-primary-600)}.schedule-editor__filter-badge{display:inline-block;width:6px;height:6px;background:var(--color-primary-500);border-radius:999px;margin-left:.25rem}.schedule-editor__sort-options{display:flex;flex-direction:column;gap:.25rem}.schedule-editor__sort-option{display:inline-flex;align-items:center;justify-content:flex-start;gap:.3rem;padding:.25rem .4rem;border:none;border-radius:4px;background:transparent;font-size:.9rem;font-weight:400;color:var(--color-gray-700);cursor:pointer;transition:background .15s ease}.schedule-editor__sort-option:hover{background:var(--color-gray-100)}.schedule-editor__sort-option.is-active{background:var(--color-primary-50);color:var(--color-primary-700)}.schedule-editor__sort-option img{width:12px;height:12px;opacity:.5}.schedule-editor__sort-option.is-active img{opacity:1}.schedule-editor__filter-options{display:flex;flex-direction:column;gap:.2rem;max-height:200px;overflow-y:auto;scrollbar-width:thin}.schedule-editor__header-cell{display:flex;align-items:center;justify-content:flex-start;gap:.35rem}.schedule-editor__filter-option{display:flex;align-items:center;gap:.3rem;padding:.2rem .4rem;border-radius:4px;font-size:.9rem;font-weight:400;color:var(--color-gray-700);cursor:pointer;transition:background .15s ease}.schedule-editor__filter-option:hover{background:var(--color-gray-100)}.schedule-editor__filter-option.is-muted{opacity:.45}.schedule-editor__filter-empty{font-size:.8rem;color:var(--color-gray-500);padding:.2rem .4rem}.schedule-editor__home-indicator{position:relative;display:inline-flex;align-items:center;align-self:flex-start;margin-top:-2px;margin-right:-4px}.schedule-editor__home-button{display:inline-flex;align-items:center;justify-content:center;background:var(--color-gray-50, #f8fafc);border:1px solid var(--color-border, var(--color-gray-200));padding:0;cursor:pointer;width:18px;height:18px;border-radius:999px;box-shadow:0 1px 2px #0f172a14}.schedule-editor__home-button:hover{background:var(--color-gray-100, #f1f5f9)}.schedule-editor__home-button:focus-visible{outline:2px solid var(--color-primary-300, #93c5fd);outline-offset:1px}.schedule-editor__home-icon{width:13px;height:13px;display:block}.schedule-editor__facility-cell,.schedule-editor__daytime-cell{display:flex;align-items:center;gap:.35rem;min-width:0}.schedule-editor__date-cell{display:inline-flex;align-items:center;gap:.35rem;min-width:0}.schedule-editor__date-text,.schedule-editor__cell-text{min-width:0;overflow:hidden;text-overflow:ellipsis}.schedule-editor__date-indicators,.schedule-editor__inline-indicators{display:inline-flex;align-items:center;gap:.15rem;flex-shrink:0}.schedule-editor__indicator-button{width:1.125rem;height:1.125rem;flex:0 0 1.125rem;border:0;border-radius:4px;padding:0;background:transparent;display:inline-flex;align-items:center;justify-content:center;color:inherit;cursor:pointer}.schedule-editor__indicator-button:hover,.schedule-editor__indicator-button.is-active{background:#0f172a14}.schedule-editor__indicator-button:focus-visible{outline:2px solid var(--color-primary-300, #93c5fd);outline-offset:1px}.schedule-editor__indicator-button--pref .schedule-editor__violation-icon{opacity:.8}.schedule-editor__cell{display:flex;align-items:center;gap:.5rem}.schedule-editor__cell--week{font-weight:600}.schedule-editor__cell--quality{justify-content:flex-start;font-variant-numeric:tabular-nums}.schedule-editor__quality-button{appearance:none;margin:0;padding:0;border:0;background:none;color:inherit;font:inherit;line-height:inherit;cursor:pointer}.schedule-editor__quality-button:hover .schedule-editor__quality-word,.schedule-editor__quality-button:hover .schedule-editor__quality-dash,.schedule-editor__quality-button:focus-visible .schedule-editor__quality-word,.schedule-editor__quality-button:focus-visible .schedule-editor__quality-dash,.schedule-editor__quality-button.is-active .schedule-editor__quality-word,.schedule-editor__quality-button.is-active .schedule-editor__quality-dash{text-decoration:underline;text-underline-offset:.14em}.schedule-editor__quality-button:focus-visible{outline:2px solid var(--color-primary-300, #93c5fd);outline-offset:2px}.schedule-editor__quality-word{font-weight:500}.schedule-editor__quality-word--home{color:var(--color-primary-600, #2563eb)}.schedule-editor__quality-word--preference{color:var(--color-success-600, #059669)}.schedule-editor__quality-word--neither{color:var(--color-gray-500, #6b7280)}.schedule-editor__quality-word--na,.schedule-editor__quality-dash{color:var(--color-gray-400, #9ca3af)}.schedule-editor__cell--courts{font-variant-numeric:tabular-nums}.schedule-editor__context-menu{position:fixed;z-index:20000;min-width:120px;padding:4px 0;background:#fffffff2;-webkit-backdrop-filter:saturate(180%) blur(14px);backdrop-filter:saturate(180%) blur(14px);border:1px solid rgba(0,0,0,.08);border-radius:8px;box-shadow:0 8px 24px #0f172a26}.schedule-editor__context-menu-item{display:flex;align-items:center;gap:8px;width:100%;padding:8px 12px;border:none;background:transparent;font-size:.9rem;color:var(--color-gray-900);cursor:pointer;text-align:left}.schedule-editor__context-menu-item:hover{background:#3b82f614}.schedule-editor__context-menu-item img{width:16px;height:16px;opacity:.7}.schedule-editor__context-menu-separator{height:1px;background:var(--color-gray-200);margin:4px 0}.schedule-editor__cursor-tooltip{position:fixed;z-index:20000;padding:8px 12px;background:#fffffff2;-webkit-backdrop-filter:saturate(180%) blur(14px);backdrop-filter:saturate(180%) blur(14px);border:1px solid rgba(59,130,246,.2);border-radius:8px;box-shadow:0 4px 16px #0f172a26;font-size:.85rem;color:var(--color-gray-900);pointer-events:none;width:max-content;max-width:calc(100vw - 16px);white-space:normal;overflow-wrap:anywhere;display:flex;flex-direction:column;gap:2px}.schedule-editor__cursor-tooltip strong{font-weight:600;color:var(--color-primary-700)}.schedule-editor__cursor-tooltip-flight{font-size:.75rem;color:var(--color-gray-500)}.schedule-editor__cursor-tooltip--ha-swap{background:linear-gradient(135deg,var(--color-primary-50) 0%,var(--color-primary-100) 100%);border-color:var(--color-primary-400)}.schedule-editor__cursor-tooltip--ha-swap strong{color:var(--color-primary-600)}.schedule-editor__cursor-tooltip-teams{font-size:.8rem;color:var(--color-gray-700)}.schedule-editor__cursor-tooltip-hint{font-size:.7rem;color:var(--color-gray-500);font-style:italic}.schedule-editor__table tbody tr.schedule-editor__row--ha-swap-origin{background:#3b82f626;border-left:3px solid var(--color-primary-500);cursor:default}.schedule-editor__table tbody tr.schedule-editor__row--ha-swap-target{background:#22c55e1f;cursor:pointer}.schedule-editor__table tbody tr.schedule-editor__row--ha-swap-target:hover{background:#22c55e38}.schedule-editor__table tbody tr.schedule-editor__row--true-home{background:#3b82f614}.schedule-editor__table tbody tr.schedule-editor__row--valid-target,.schedule-editor__table tbody tr.schedule-editor__row--occupied.schedule-editor__row--valid-target:nth-child(2n),.schedule-editor__table tbody tr.schedule-editor__row--problem.schedule-editor__row--valid-target,.schedule-editor__table tbody tr.schedule-editor__row--problem.schedule-editor__row--valid-target:nth-child(2n){background:#22c55e1f;cursor:pointer}.schedule-editor__table tbody tr.schedule-editor__row--valid-open-target{cursor:pointer}.schedule-editor__table tbody tr.schedule-editor__row--open.schedule-editor__row--valid-open-target{background:var(--color-surface);color:var(--color-gray-900)}.schedule-editor__table tbody tr.schedule-editor__row--open.schedule-editor__row--valid-open-target:hover{background:var(--color-gray-100)}.schedule-editor__table tbody tr.schedule-editor__row--true-home.schedule-editor__row--valid-target,.schedule-editor__table tbody tr.schedule-editor__row--true-home.schedule-editor__row--occupied.schedule-editor__row--valid-target:nth-child(2n){background:#22c55e1f;box-shadow:inset 4px 0 #3b82f6cc}.schedule-editor__table tbody tr.schedule-editor__row--true-home.schedule-editor__row--valid-target:hover{background:#22c55e33;box-shadow:inset 4px 0 #3b82f6}.schedule-editor__table tbody tr.schedule-editor__row--valid-target:hover{background:#22c55e33}.schedule-editor__table tbody tr.schedule-editor__row--different-day-warning,.schedule-editor__table tbody tr.schedule-editor__row--open.schedule-editor__row--different-day-warning,.schedule-editor__table tbody tr.schedule-editor__row--occupied.schedule-editor__row--different-day-warning:nth-child(2n),.schedule-editor__table tbody tr.schedule-editor__row--problem.schedule-editor__row--different-day-warning,.schedule-editor__table tbody tr.schedule-editor__row--problem.schedule-editor__row--different-day-warning:nth-child(2n){background:var(--color-warning-100);color:var(--color-gray-900);cursor:pointer}.schedule-editor__table tbody tr.schedule-editor__row--different-day-warning:hover,.schedule-editor__table tbody tr.schedule-editor__row--open.schedule-editor__row--different-day-warning:hover{background:var(--color-warning-200)}.schedule-editor__indicator-button--different-day-warning{background:var(--color-warning-50);box-shadow:inset 0 0 0 1px var(--color-warning-300)}.schedule-editor__table tbody tr.schedule-editor__row--invalid-target,.schedule-editor__table tbody tr.schedule-editor__row--occupied.schedule-editor__row--invalid-target:nth-child(2n){background:#64748b1f;cursor:not-allowed;color:var(--color-gray-500)}.schedule-editor__table tbody tr.schedule-editor__row--invalid-target:hover{background:#64748b2e}.schedule-editor__violation-icon{width:14px;height:14px;flex-shrink:0;stroke:var(--color-gray-900)}.schedule-editor__indicator-button--play-day .schedule-editor__violation-icon{opacity:.85}.schedule-editor__tooltip-popover .constraint-popover__item-value{display:block;line-height:1.35}.schedule-editor__metric-incomplete{color:var(--color-danger-700);font-weight:600}.ha-pattern{display:inline-flex;gap:0;font-family:SF Mono,Menlo,Monaco,monospace;font-size:.9rem;line-height:1;letter-spacing:-.5px}.ha-pattern__letter{appearance:none;background:transparent;border:0;color:inherit;display:inline-flex;align-items:center;justify-content:center;font:inherit;width:.9em;height:1.4em;padding:0;cursor:pointer;border-radius:2px;transition:background .1s ease}.ha-pattern__letter:hover,.ha-pattern__letter:focus-visible{background:var(--color-gray-200, #e5e7eb)}.ha-pattern__letter:focus-visible{outline:1px solid var(--color-primary);outline-offset:1px}.ha-pattern__letter--true-home{color:var(--color-success-700, #15803d);font-weight:700}.ha-pattern__letter--preference{color:var(--color-success-600, #16a34a)}.ha-pattern__letter--neutral{color:var(--color-gray-500, #6b7280)}.ha-pattern__letter--na,.ha-pattern__letter--bye{color:var(--color-gray-400, #9ca3af)}.schedule-editor__cell--quality-bar{min-width:155px}.quality-bar-cell{display:flex;align-items:center;gap:.4rem;width:100%}.quality-bar{display:flex;gap:2px;width:100%;height:16px;align-items:stretch}.quality-bar-cell .quality-bar{flex:1 1 auto;min-width:100px}.quality-bar__cell{flex:1 1 0;min-width:4px;border-radius:2px}.quality-bar__cell--home{background:var(--color-primary-600, #2563eb)}.quality-bar__cell--pref{background:var(--color-success-600, #059669)}.quality-bar__cell--neither{background:var(--color-gray-300, #d1d5db)}.quality-bar--na{color:var(--color-gray-400, #9ca3af);font-size:.85em}.quality-bar--zero{color:var(--color-gray-600, #4b5563);font-size:.85em;white-space:nowrap}.quality-explanation__trigger{flex:0 0 1.15rem;width:1.15rem;height:1.15rem;padding:0;border:0;border-radius:999px;background:transparent;color:var(--color-gray-500, #6b7280);cursor:pointer;display:inline-flex;align-items:center;justify-content:center}.quality-explanation__trigger:hover,.quality-explanation__trigger.is-active{background:var(--color-gray-200, #e5e7eb);color:var(--color-gray-800, #1f2937)}.quality-explanation__trigger:focus-visible{outline:2px solid var(--color-primary-400, #60a5fa);outline-offset:1px}.quality-explanation__trigger img{width:.95rem;height:.95rem;opacity:.72}.quality-explanation{position:fixed;z-index:20001;width:min(350px,calc(100vw - 16px));max-height:min(360px,calc(100vh - 16px));overflow-y:auto;padding:.75rem .85rem;background:#fffffffa;-webkit-backdrop-filter:saturate(180%) blur(14px);backdrop-filter:saturate(180%) blur(14px);border:1px solid var(--color-gray-200, #e5e7eb);border-radius:10px;box-shadow:0 12px 32px #0f172a2e;color:var(--color-gray-800, #1f2937);font-size:.8125rem;line-height:1.4;white-space:normal}.quality-explanation__title{margin:0 0 .4rem;color:var(--color-gray-950, #030712);font-size:.95rem;line-height:1.25}.quality-explanation p{margin:.4rem 0}.quality-explanation__legend{display:grid;gap:.35rem;margin:.45rem 0 0}.quality-explanation__legend-row{display:grid;grid-template-columns:.85rem 1fr;align-items:start;gap:.45rem}.quality-explanation__swatch{width:.75rem;height:.75rem;margin-top:.15rem;border-radius:2px}.quality-explanation__swatch--home{background:var(--color-primary-600, #2563eb)}.quality-explanation__swatch--preference{background:var(--color-success-600, #059669)}.quality-explanation__swatch--other{background:var(--color-gray-300, #d1d5db)}.quality-explanation__primary{color:var(--color-gray-900, #111827);font-size:.9rem;font-variant-numeric:tabular-nums}.quality-explanation__secondary{color:var(--color-gray-600, #4b5563)}.ha-pattern-popover{position:fixed;z-index:20001;min-width:160px;padding:.625rem .75rem;background:#fffffffa;-webkit-backdrop-filter:saturate(180%) blur(14px);backdrop-filter:saturate(180%) blur(14px);border:1px solid var(--color-gray-200, #e5e7eb);border-radius:8px;box-shadow:0 8px 24px #0f172a1f;font-size:.8125rem}.ha-pattern-popover__row{display:flex;justify-content:space-between;gap:1rem;padding:.125rem 0}.ha-pattern-popover__label{color:var(--color-gray-500, #6b7280);font-weight:500}.ha-pattern-popover__value{color:var(--color-gray-900, #111827);text-align:right}.ha-pattern-toggle{border:none;background:none;cursor:pointer;padding:2px;display:inline-flex;align-items:center;justify-content:center;border-radius:3px;margin-left:4px;transition:background .15s ease}.ha-pattern-toggle:hover{background:#0000000f}.ha-pattern-toggle img{width:14px;height:14px;opacity:.5;transition:opacity .15s ease,transform .2s ease}.ha-pattern-toggle:hover img{opacity:.8}.ha-pattern-toggle.is-expanded img{transform:rotate(180deg)}.scheduler-toolbar{--scheduler-toolbar-control-size: 36px;--scheduler-toolbar-column-gap: clamp(.5rem, 1.5vw, 1.5rem);--scheduler-toolbar-row-gap: clamp(.5rem, 1vw, .75rem);display:flex;flex-wrap:wrap;width:100%;align-items:stretch;gap:var(--scheduler-toolbar-row-gap) var(--scheduler-toolbar-column-gap);padding:.75rem;background:var(--color-gray-50);border:1px solid var(--color-border);border-radius:16px;box-shadow:var(--shadow-md);isolation:isolate}.scheduler-toolbar__field{display:flex;flex-direction:column;gap:.25rem;min-height:100%;flex:0 0 auto}.scheduler-toolbar__field--view,.scheduler-toolbar__field--sort{flex:0 0 auto}.scheduler-toolbar__field--reset{justify-content:flex-end}.scheduler-toolbar__field--search{flex:1 1 clamp(8rem,35vw,8rem);min-width:clamp(8rem,35vw,8rem);max-width:clamp(8rem,35vw,35rem)}.scheduler-toolbar__field--search .scheduler-toolbar__input{width:100%}.scheduler-toolbar__field--actions{position:relative;justify-content:center;align-self:stretch;margin-left:auto;min-width:180px;gap:0}.scheduler-toolbar__view-controls{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.scheduler-toolbar__view-extras{display:inline-flex;align-items:center;gap:6px}.scheduler-toolbar__view-expansion{display:inline-flex;gap:6px}.scheduler-toolbar__label{font-size:.75rem;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--color-text-secondary)}.scheduler-toolbar__input{border:1px solid var(--color-border);border-radius:10px;padding:0 12px;height:var(--scheduler-toolbar-control-size);font-size:.95rem;background-color:var(--color-surface);color:var(--color-text-primary);transition:border-color .15s ease,box-shadow .15s ease}.scheduler-toolbar__input:focus{outline:none;border-color:var(--color-primary-300);box-shadow:0 0 0 3px var(--color-primary-100)}.scheduler-toolbar__input::placeholder{color:var(--color-text-disabled)}.scheduler-toolbar__toggle-group{display:flex;flex-wrap:wrap;gap:6px;align-items:center}.scheduler-toolbar__toggle{appearance:none;border:1px solid var(--color-border);border-radius:12px;background:var(--color-surface);box-shadow:var(--shadow-sm);width:var(--scheduler-toolbar-control-size);height:var(--scheduler-toolbar-control-size);display:inline-flex;align-items:center;justify-content:center;color:var(--color-text-primary);cursor:pointer;transition:border-color .15s ease,box-shadow .15s ease,color .15s ease,background .15s ease}.scheduler-toolbar__toggle:hover,.scheduler-toolbar__toggle:focus-visible{border-color:var(--color-primary-300);outline:none;box-shadow:0 0 1px 1px var(--color-primary-100);background:var(--color-primary-50)}.scheduler-toolbar__toggle.is-active{border-color:var(--color-primary-400);background:var(--color-primary-50);color:var(--color-primary-700);box-shadow:0 0 1px 1px var(--color-primary-100)}.scheduler-toolbar__toggle:disabled{opacity:.4;cursor:not-allowed;border-color:var(--color-border);background:var(--color-surface);box-shadow:none}.scheduler-toolbar__toggle img{width:18px;height:18px;color:inherit}.scheduler-toolbar__toggle--view-extra{width:36px;height:36px}@media(max-width:1024px){.scheduler-toolbar__field--search{flex-basis:clamp(16rem,45vw,28rem);min-width:clamp(13rem,40vw,24rem)}}@media(max-width:820px){.scheduler-toolbar__field--search{flex-basis:clamp(14rem,50vw,24rem);min-width:clamp(12rem,60vw,20rem)}}@media(max-width:640px){.scheduler-toolbar{flex-direction:column}.scheduler-toolbar__field{width:100%}.scheduler-toolbar__field--search{flex-basis:100%;min-width:100%}.scheduler-toolbar__field--actions{width:100%;align-items:stretch;justify-content:flex-start}}.scheduler-toolbar__primary-action{min-width:160px;height:calc(var(--scheduler-toolbar-control-size) + 12px)}.schedule-editor-toolbar{border-radius:16px 16px 0 0;border-bottom:2px solid var(--color-gray-200);box-shadow:none}.schedule-editor-toolbar__run-name{font-size:.95rem;font-weight:600;color:var(--color-text-primary);max-width:160px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.schedule-editor-toolbar__version-badge{display:inline-flex;align-items:center;justify-content:center;padding:.15rem .4rem;font-size:.7rem;font-weight:600;color:var(--color-gray-600);background:var(--color-gray-100);border:1px solid var(--color-gray-200);border-radius:6px}.schedule-editor-toolbar__search{flex:1 1 clamp(7rem,30vw,7rem)}.schedule-editor-toolbar__error{display:inline-flex;align-items:center;cursor:help}.schedule-editor-toolbar__error img{width:16px;height:16px;filter:invert(27%) sepia(94%) saturate(2117%) hue-rotate(346deg) brightness(91%) contrast(92%)}.schedule-editor-toolbar__divider{display:inline-block;width:1px;height:24px;background:var(--color-gray-300);margin:0 4px}.scheduler-toolbar__toggle:disabled{opacity:.5;cursor:not-allowed}.scheduler-toolbar__toggle:disabled:hover{border-color:var(--color-border);background:var(--color-surface);box-shadow:var(--shadow-sm)}.schedule-editor-toolbar__metrics{display:inline-flex;align-items:center;gap:12px;border:1px solid var(--color-border);border-radius:10px;padding:0 12px;height:var(--scheduler-toolbar-control-size);background-color:var(--color-surface)}.schedule-editor-toolbar__metric{display:inline-flex;align-items:center;gap:4px;font-size:.85rem;font-weight:500;color:var(--color-text-primary);cursor:default}.schedule-editor-toolbar__metric img{width:21px;height:21px;opacity:.7}.public-season{padding:var(--spacing-lg, 16px);max-width:100%;box-sizing:border-box}.public-season__header{display:flex;align-items:center;gap:var(--spacing-md, 12px);margin-bottom:var(--spacing-md, 12px);flex-wrap:wrap}.public-season__logo{height:36px;width:auto}.public-season__title{margin:0;min-width:0;overflow-wrap:anywhere}.public-season--message{display:flex;align-items:center;justify-content:center;min-height:60vh}.public-season__message-card{display:flex;flex-direction:column;gap:var(--spacing-sm, 8px);text-align:center;max-width:32rem}.error-boundary{display:flex;align-items:center;justify-content:center;min-height:100vh;background-color:var(--color-gray-100);padding:2rem}.error-boundary-content{background:var(--color-surface);border-radius:8px;box-shadow:0 2px 8px #0000001a;padding:3rem;max-width:500px;width:100%;text-align:center}.error-icon{font-size:3rem;margin-bottom:1rem}.error-boundary h2{color:var(--color-gray-700);margin-bottom:1rem;font-size:1.5rem}.error-boundary p{color:var(--color-gray-500);margin-bottom:1.5rem;line-height:1.5}.error-details{background:var(--color-gray-50);border:1px solid var(--color-gray-300);border-radius:4px;padding:1rem;margin:1.5rem 0;text-align:left}.error-details summary{cursor:pointer;font-weight:600;color:var(--color-gray-500);margin-bottom:.5rem}.error-details pre{margin:.5rem 0;overflow-x:auto;font-size:.875rem;color:#d73a49;background:var(--color-gray-50);padding:.5rem;border-radius:4px;white-space:pre-wrap;word-wrap:break-word}.error-actions{display:flex;gap:1rem;justify-content:center;margin-bottom:1.5rem}.error-actions button{padding:.75rem 1.5rem;border:none;border-radius:4px;font-size:1rem;cursor:pointer;transition:all .2s}.error-help{font-size:.875rem;color:var(--color-gray-400);margin:0}.auth-loading-state{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:var(--spacing-xl);box-sizing:border-box}*{box-sizing:border-box;margin:0;padding:0}.app{min-height:100vh;background-color:var(--color-background);font-family:var(--font-family-base);display:flex;flex-direction:column}.app-shell.sidebar-collapsed{grid-template-columns:64px 1fr}.app-shell{display:grid;grid-template-columns:240px 1fr;min-height:100vh}.sidebar{background-color:var(--color-surface);border-right:1px solid var(--color-border);padding:var(--spacing-lg) var(--spacing-md);box-shadow:var(--shadow-sm);overflow:hidden}.sidebar-header{display:flex;align-items:center;justify-content:center;padding-bottom:var(--spacing-lg);margin-bottom:var(--spacing-lg);border-bottom:1px solid var(--color-border)}.sidebar-logo{height:56px;width:auto}.main-area{display:flex;flex-direction:column}.header{background-color:var(--color-surface);padding:8px 16px;box-shadow:var(--shadow-sm);margin-bottom:var(--spacing-md)}.header--slim{box-shadow:var(--shadow-sm)}.header-top{display:flex;justify-content:space-between;align-items:center;gap:var(--spacing-xl)}.header-left{flex:0 0 auto}.header-right{flex:0 0 auto;display:flex;align-items:center;gap:12px}.header h1{font-size:var(--font-size-3xl);color:var(--color-text-primary);margin:0}.header-divider{width:1px;height:28px;background:var(--color-border);display:inline-block;margin:0 8px}.current-league{font-weight:700;font-size:18px;color:var(--color-text-primary);max-width:420px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.current-league-wrap{position:relative;display:inline-flex;align-items:center}.current-league-button{background:transparent;border:0;display:inline-flex;align-items:center;gap:8px;cursor:pointer;padding:0}.current-league-menu{position:absolute;top:calc(100% + 6px);left:0;z-index:40;background:var(--color-surface);border:1px solid var(--color-border);border-radius:8px;padding:6px;min-width:280px;box-shadow:var(--shadow-lg)}.current-league-menu .cl-item{display:block;width:100%;text-align:left;border:0;background:transparent;padding:8px 10px;border-radius:6px;cursor:pointer}.current-league-menu .cl-item:hover{background:var(--color-gray-100)}.current-league-menu .cl-item.active{background:var(--color-primary-100);color:var(--color-primary-600)}.league-selector{display:flex;align-items:center;gap:var(--spacing-md)}.league-controls{display:flex;gap:var(--spacing-sm);align-items:center}.main-content{padding:10px var(--spacing-xl) var(--spacing-xl);flex:1 1 auto;display:flex;flex-direction:column;min-height:0}.scheduler-container{background-color:var(--color-surface);border-radius:var(--radius-md);padding:var(--spacing-md);box-shadow:var(--shadow-md)}.empty-state{text-align:center;padding:var(--spacing-3xl) var(--spacing-xl);color:var(--color-text-secondary);font-size:var(--font-size-lg)}.league-route-loading{align-self:center;min-width:min(100%,280px);margin-top:var(--spacing-3xl)}.league-route-frame,.league-route-frame__content{display:flex;flex:1 1 auto;flex-direction:column;min-height:0}.league-route-frame:is(.is-loading,.has-error) .league-route-frame__content{opacity:var(--loading-retained-content-opacity, .42);transition:var(--transition-opacity, opacity .15s ease)}.league-route-frame__loading-overlay,.league-route-frame__error-overlay{position:absolute;cursor:default}.league-route-frame__loading-overlay{cursor:progress}.league-route-frame__error{display:flex;align-items:center;justify-content:space-between;gap:var(--spacing-lg);width:min(36rem,calc(100% - 2rem));padding:var(--spacing-md);border:1px solid var(--color-danger-200);border-radius:var(--radius-md);background:var(--color-danger-50);color:var(--color-danger-800);box-shadow:var(--shadow-md)}.league-route-frame__error-copy{display:flex;min-width:0;flex-direction:column;gap:3px;font-size:var(--font-size-sm)}@media(max-width:640px){.league-route-frame__error{align-items:stretch;flex-direction:column}}.empty-state>.base-button{margin-top:var(--spacing-lg)}.page-header{padding:0 var(--spacing-xl);margin-bottom:4px}.page-header h1{font-size:var(--font-size-4xl);color:var(--color-text-primary);margin-bottom:0}.page-header__title{display:flex;align-items:center;gap:10px}.page-header__icon{width:30px;height:30px;opacity:.9;flex-shrink:0}.status-ok{color:var(--color-success-700);font-weight:var(--font-weight-semibold)}.status-conflict{color:var(--color-danger-700);font-weight:var(--font-weight-semibold)}.facility-closed{background-color:var(--color-gray-800);color:var(--color-surface);text-align:center;padding:var(--spacing-xs);border-radius:var(--radius-sm)}.sidebar-toggle{background:transparent;border:1px solid var(--color-border);border-radius:6px;padding:4px 8px;cursor:pointer}.app-shell.sidebar-collapsed .sidebar-nav .label{display:none}.app-shell.sidebar-collapsed .sidebar{padding-left:8px;padding-right:8px}.app-shell.sidebar-collapsed .sidebar-header{padding-bottom:var(--spacing-md);margin-bottom:var(--spacing-md)}.app-shell.sidebar-collapsed .sidebar-logo{height:32px}.page-header__actions{display:flex;gap:8px;align-items:center}.logout-button{padding:6px 12px;border:1px solid var(--color-border);border-radius:var(--radius-base);background:transparent;color:var(--color-text-secondary);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);cursor:pointer;transition:var(--transition-colors)}.logout-button:hover{background:var(--color-gray-100);color:var(--color-text-primary);border-color:var(--color-gray-300)}
