@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){:root,:host{--shimmer-angle:20deg}*,:before,:after,::backdrop{--tw-translate-x:0;--tw-translate-y:0;--tw-translate-z:0;--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-border-style:solid;--tw-leading:initial;--tw-font-weight:initial;--tw-tracking:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-outline-style:solid;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial;--tw-duration:initial;--tw-animation-delay:0s;--tw-animation-direction:normal;--tw-animation-duration:initial;--tw-animation-fill-mode:none;--tw-animation-iteration-count:1;--tw-enter-blur:0;--tw-enter-opacity:1;--tw-enter-rotate:0;--tw-enter-scale:1;--tw-enter-translate-x:0;--tw-enter-translate-y:0;--tw-exit-blur:0;--tw-exit-opacity:1;--tw-exit-rotate:0;--tw-exit-scale:1;--tw-exit-translate-x:0;--tw-exit-translate-y:0;--scroll-fade-t:0px;--scroll-fade-b:0px;--scroll-fade-s:0px;--scroll-fade-e:0px;--scroll-fade-mask:initial;--shimmer-image:initial;--shimmer-text-fill:initial}}}@layer theme{:root,:host{--font-mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--color-black:#000;--color-white:#fff;--spacing:.25rem;--container-xs:20rem;--container-md:28rem;--container-lg:32rem;--container-xl:36rem;--text-xs:.75rem;--text-xs--line-height:calc(1 / .75);--text-sm:.875rem;--text-sm--line-height:calc(1.25 / .875);--text-base:1rem;--text-base--line-height:calc(1.5 / 1);--text-lg:1.125rem;--text-lg--line-height:calc(1.75 / 1.125);--font-weight-medium:500;--font-weight-semibold:600;--tracking-widest:.1em;--radius-xs:.125rem;--animate-spin:spin 1s linear infinite;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4, 0, .2, 1);--default-font-family:"Avenir Next","Segoe UI",Arial,sans-serif;--default-mono-font-family:var(--font-mono)}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab, red, red)){::placeholder{color:color-mix(in oklab, currentcolor 50%, transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.pointer-events-none{pointer-events:none}.collapse{visibility:collapse}.invisible{visibility:hidden}.visible{visibility:visible}.sr-only{clip-path:inset(50%);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.static{position:static}.sticky{position:sticky}.inset-0{inset:calc(var(--spacing) * 0)}.start{inset-inline-start:var(--spacing)}.end{inset-inline-end:var(--spacing)}.top-1\/2{top:50%}.top-4{top:calc(var(--spacing) * 4)}.top-\[50\%\]{top:50%}.right-3\.5{right:calc(var(--spacing) * 3.5)}.right-4{right:calc(var(--spacing) * 4)}.left-2{left:calc(var(--spacing) * 2)}.left-\[50\%\]{left:50%}.z-50{z-index:50}.-mx-1{margin-inline:calc(var(--spacing) * -1)}.my-1{margin-block:calc(var(--spacing) * 1)}.mb-2{margin-bottom:calc(var(--spacing) * 2)}.ml-auto{margin-left:auto}.block{display:block}.contents{display:contents}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline{display:inline}.inline-flex{display:inline-flex}.table{display:table}.field-sizing-content{field-sizing:content}.size-2{width:calc(var(--spacing) * 2);height:calc(var(--spacing) * 2)}.size-2\.5{width:calc(var(--spacing) * 2.5);height:calc(var(--spacing) * 2.5)}.size-3\.5{width:calc(var(--spacing) * 3.5);height:calc(var(--spacing) * 3.5)}.size-4{width:calc(var(--spacing) * 4);height:calc(var(--spacing) * 4)}.size-6{width:calc(var(--spacing) * 6);height:calc(var(--spacing) * 6)}.size-8{width:calc(var(--spacing) * 8);height:calc(var(--spacing) * 8)}.size-9{width:calc(var(--spacing) * 9);height:calc(var(--spacing) * 9)}.size-10{width:calc(var(--spacing) * 10);height:calc(var(--spacing) * 10)}.size-16{width:calc(var(--spacing) * 16);height:calc(var(--spacing) * 16)}.h-6{height:calc(var(--spacing) * 6)}.h-8{height:calc(var(--spacing) * 8)}.h-9{height:calc(var(--spacing) * 9)}.h-10{height:calc(var(--spacing) * 10)}.h-px{height:1px}.max-h-\(--radix-dropdown-menu-content-available-height\){max-height:var(--radix-dropdown-menu-content-available-height)}.max-h-\[calc\(100dvh-2rem\)\]{max-height:calc(100dvh - 2rem)}.min-h-16{min-height:calc(var(--spacing) * 16)}.w-fit{width:fit-content}.w-full{width:100%}.max-w-\[calc\(100\%-2rem\)\]{max-width:calc(100% - 2rem)}.min-w-0{min-width:calc(var(--spacing) * 0)}.min-w-\[8rem\]{min-width:8rem}.shrink{flex-shrink:1}.shrink-0{flex-shrink:0}.grow{flex-grow:1}.origin-\(--radix-dropdown-menu-content-transform-origin\){transform-origin:var(--radix-dropdown-menu-content-transform-origin)}.origin-\(--radix-tooltip-content-transform-origin\){transform-origin:var(--radix-tooltip-content-transform-origin)}.translate-x-\[-50\%\]{--tw-translate-x:-50%;translate:var(--tw-translate-x) var(--tw-translate-y)}.-translate-y-1\/2{--tw-translate-y:calc(calc(1 / 2 * 100%) * -1);translate:var(--tw-translate-x) var(--tw-translate-y)}.translate-y-\[-50\%\]{--tw-translate-y:-50%;translate:var(--tw-translate-x) var(--tw-translate-y)}.translate-y-\[calc\(-50\%_-_2px\)\]{--tw-translate-y:calc(-50% - 2px);translate:var(--tw-translate-x) var(--tw-translate-y)}.rotate-45{rotate:45deg}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.animate-in{animation:enter var(--tw-animation-duration,var(--tw-duration,.15s))var(--tw-ease,ease)var(--tw-animation-delay,0s)var(--tw-animation-iteration-count,1)var(--tw-animation-direction,normal)var(--tw-animation-fill-mode,none)}.animate-spin{animation:var(--animate-spin)}.cursor-default{cursor:default}.resize{resize:both}.appearance-none{appearance:none}.grid-rows-\[auto_1fr\]{grid-template-rows:auto 1fr}.flex-col{flex-direction:column}.flex-col-reverse{flex-direction:column-reverse}.place-items-center{place-items:center}.items-center{align-items:center}.justify-center{justify-content:center}.gap-1{gap:calc(var(--spacing) * 1)}.gap-1\.5{gap:calc(var(--spacing) * 1.5)}.gap-2{gap:calc(var(--spacing) * 2)}.gap-4{gap:calc(var(--spacing) * 4)}.overflow-hidden{overflow:hidden}.overflow-x-auto{overflow-x:auto}.overflow-x-hidden{overflow-x:hidden}.overflow-y-auto{overflow-y:auto}.rounded{border-radius:.25rem}.rounded-\[2px\]{border-radius:2px}.rounded-full{border-radius:3.40282e38px}.rounded-lg{border-radius:var(--radius)}.rounded-md{border-radius:calc(var(--radius) - 2px)}.rounded-sm{border-radius:calc(var(--radius) - 4px)}.rounded-xs{border-radius:var(--radius-xs)}.border{border-style:var(--tw-border-style);border-width:1px}.border-border{border-color:var(--border)}.border-input{border-color:var(--input)}.border-transparent{border-color:#0000}.bg-\[Canvas\]{background-color:canvas}.bg-background{background-color:var(--background)}.bg-black\/50{background-color:#00000080}@supports (color:color-mix(in lab, red, red)){.bg-black\/50{background-color:color-mix(in oklab, var(--color-black) 50%, transparent)}}.bg-border{background-color:var(--border)}.bg-destructive{background-color:var(--destructive)}.bg-foreground{background-color:var(--foreground)}.bg-muted{background-color:var(--muted)}.bg-popover{background-color:var(--popover)}.bg-primary{background-color:var(--primary)}.bg-secondary{background-color:var(--secondary)}.bg-transparent{background-color:#0000}.fill-current{fill:currentColor}.fill-foreground{fill:var(--foreground)}.p-1{padding:calc(var(--spacing) * 1)}.p-6{padding:calc(var(--spacing) * 6)}.px-2{padding-inline:calc(var(--spacing) * 2)}.px-3{padding-inline:calc(var(--spacing) * 3)}.px-4{padding-inline:calc(var(--spacing) * 4)}.px-6{padding-inline:calc(var(--spacing) * 6)}.py-0\.5{padding-block:calc(var(--spacing) * .5)}.py-1{padding-block:calc(var(--spacing) * 1)}.py-1\.5{padding-block:calc(var(--spacing) * 1.5)}.py-2{padding-block:calc(var(--spacing) * 2)}.pr-2{padding-right:calc(var(--spacing) * 2)}.pr-9{padding-right:calc(var(--spacing) * 9)}.pl-8{padding-left:calc(var(--spacing) * 8)}.text-center{text-align:center}.text-base{font-size:var(--text-base);line-height:var(--tw-leading,var(--text-base--line-height))}.text-lg{font-size:var(--text-lg);line-height:var(--tw-leading,var(--text-lg--line-height))}.text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.text-xs{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.leading-none{--tw-leading:1;line-height:1}.font-medium{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.font-semibold{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.tracking-widest{--tw-tracking:var(--tracking-widest);letter-spacing:var(--tracking-widest)}.text-balance{text-wrap:balance}.whitespace-nowrap{white-space:nowrap}.text-\[CanvasText\]{color:canvastext}.text-background{color:var(--background)}.text-foreground{color:var(--foreground)}.text-muted-foreground{color:var(--muted-foreground)}.text-popover-foreground{color:var(--popover-foreground)}.text-primary{color:var(--primary)}.text-primary-foreground{color:var(--primary-foreground)}.text-secondary-foreground{color:var(--secondary-foreground)}.text-white{color:var(--color-white)}.lowercase{text-transform:lowercase}.uppercase{text-transform:uppercase}.italic{font-style:italic}.underline-offset-4{text-underline-offset:4px}.antialiased{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.opacity-50{opacity:.5}.opacity-70{opacity:.7}.shadow{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a), 0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-lg{--tw-shadow:0 10px 15px -3px var(--tw-shadow-color,#0000001a), 0 4px 6px -4px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-md{--tw-shadow:0 4px 6px -1px var(--tw-shadow-color,#0000001a), 0 2px 4px -2px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-xs{--tw-shadow:0 1px 2px 0 var(--tw-shadow-color,#0000000d);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.ring{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.ring-offset-background{--tw-ring-offset-color:var(--background)}.outline-hidden{--tw-outline-style:none;outline-style:none}@media (forced-colors:active){.outline-hidden{outline-offset:2px;outline:2px solid #0000}}.outline{outline-style:var(--tw-outline-style);outline-width:1px}.filter{filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.transition-\[color\,box-shadow\]{transition-property:color,box-shadow;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-all{transition-property:all;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-opacity{transition-property:opacity;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.duration-200{--tw-duration:.2s;transition-duration:.2s}.fade-in-0{--tw-enter-opacity:0}.outline-none{--tw-outline-style:none;outline-style:none}.select-none{-webkit-user-select:none;user-select:none}.zoom-in-95{--tw-enter-scale:.95}.running{animation-play-state:running}.group-data-\[disabled\=true\]\:pointer-events-none:is(:where(.group)[data-disabled=true] *){pointer-events:none}.group-data-\[disabled\=true\]\:opacity-50:is(:where(.group)[data-disabled=true] *){opacity:.5}.group-data-\[size\=sm\]\/alert-dialog-content\:grid:is(:where(.group\/alert-dialog-content)[data-size=sm] *){display:grid}.group-data-\[size\=sm\]\/alert-dialog-content\:grid-cols-2:is(:where(.group\/alert-dialog-content)[data-size=sm] *){grid-template-columns:repeat(2,minmax(0,1fr))}.peer-disabled\:cursor-not-allowed:is(:where(.peer):disabled~*){cursor:not-allowed}.peer-disabled\:opacity-50:is(:where(.peer):disabled~*){opacity:.5}.selection\:bg-primary ::selection,.selection\:bg-primary::selection{background-color:var(--primary)}.selection\:text-primary-foreground ::selection,.selection\:text-primary-foreground::selection{color:var(--primary-foreground)}.file\:inline-flex::file-selector-button{display:inline-flex}.file\:h-7::file-selector-button{height:calc(var(--spacing) * 7)}.file\:border-0::file-selector-button{border-style:var(--tw-border-style);border-width:0}.file\:bg-transparent::file-selector-button{background-color:#0000}.file\:text-sm::file-selector-button{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.file\:font-medium::file-selector-button{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.file\:text-foreground::file-selector-button{color:var(--foreground)}.placeholder\:text-muted-foreground::placeholder{color:var(--muted-foreground)}@media (hover:hover){.hover\:bg-accent:hover{background-color:var(--accent)}.hover\:bg-destructive\/90:hover{background-color:var(--destructive)}@supports (color:color-mix(in lab, red, red)){.hover\:bg-destructive\/90:hover{background-color:color-mix(in oklab, var(--destructive) 90%, transparent)}}.hover\:bg-primary\/90:hover{background-color:var(--primary)}@supports (color:color-mix(in lab, red, red)){.hover\:bg-primary\/90:hover{background-color:color-mix(in oklab, var(--primary) 90%, transparent)}}.hover\:bg-secondary\/80:hover{background-color:var(--secondary)}@supports (color:color-mix(in lab, red, red)){.hover\:bg-secondary\/80:hover{background-color:color-mix(in oklab, var(--secondary) 80%, transparent)}}.hover\:text-accent-foreground:hover{color:var(--accent-foreground)}.hover\:underline:hover{text-decoration-line:underline}.hover\:opacity-100:hover{opacity:1}}.focus\:bg-accent:focus{background-color:var(--accent)}.focus\:text-accent-foreground:focus{color:var(--accent-foreground)}.focus\:ring-2:focus{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.focus\:ring-ring:focus{--tw-ring-color:var(--ring)}.focus\:ring-offset-2:focus{--tw-ring-offset-width:2px;--tw-ring-offset-shadow:var(--tw-ring-inset,) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color)}.focus\:outline-hidden:focus{--tw-outline-style:none;outline-style:none}@media (forced-colors:active){.focus\:outline-hidden:focus{outline-offset:2px;outline:2px solid #0000}}.focus-visible\:border-ring:focus-visible{border-color:var(--ring)}.focus-visible\:ring-\[3px\]:focus-visible{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(3px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.focus-visible\:ring-destructive\/20:focus-visible{--tw-ring-color:var(--destructive)}@supports (color:color-mix(in lab, red, red)){.focus-visible\:ring-destructive\/20:focus-visible{--tw-ring-color:color-mix(in oklab, var(--destructive) 20%, transparent)}}.focus-visible\:ring-ring\/50:focus-visible{--tw-ring-color:var(--ring)}@supports (color:color-mix(in lab, red, red)){.focus-visible\:ring-ring\/50:focus-visible{--tw-ring-color:color-mix(in oklab, var(--ring) 50%, transparent)}}.disabled\:pointer-events-none:disabled{pointer-events:none}.disabled\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\:opacity-50:disabled{opacity:.5}.has-data-\[slot\=alert-dialog-media\]\:grid-rows-\[auto_auto_1fr\]:has([data-slot=alert-dialog-media]){grid-template-rows:auto auto 1fr}.has-data-\[slot\=alert-dialog-media\]\:gap-x-6:has([data-slot=alert-dialog-media]){column-gap:calc(var(--spacing) * 6)}.has-\[select\:disabled\]\:opacity-50:has(:is(select:disabled)){opacity:.5}.has-\[\>svg\]\:px-1\.5:has(>svg){padding-inline:calc(var(--spacing) * 1.5)}.has-\[\>svg\]\:px-2\.5:has(>svg){padding-inline:calc(var(--spacing) * 2.5)}.has-\[\>svg\]\:px-3:has(>svg){padding-inline:calc(var(--spacing) * 3)}.has-\[\>svg\]\:px-4:has(>svg){padding-inline:calc(var(--spacing) * 4)}.aria-invalid\:border-destructive[aria-invalid=true]{border-color:var(--destructive)}.aria-invalid\:ring-destructive\/20[aria-invalid=true]{--tw-ring-color:var(--destructive)}@supports (color:color-mix(in lab, red, red)){.aria-invalid\:ring-destructive\/20[aria-invalid=true]{--tw-ring-color:color-mix(in oklab, var(--destructive) 20%, transparent)}}.data-\[disabled\]\:pointer-events-none[data-disabled]{pointer-events:none}.data-\[disabled\]\:opacity-50[data-disabled]{opacity:.5}.data-\[inset\]\:pl-8[data-inset]{padding-left:calc(var(--spacing) * 8)}.data-\[side\=bottom\]\:slide-in-from-top-2[data-side=bottom]{--tw-enter-translate-y:calc(2*var(--spacing)*-1)}.data-\[side\=left\]\:slide-in-from-right-2[data-side=left]{--tw-enter-translate-x:calc(2*var(--spacing))}.data-\[side\=right\]\:slide-in-from-left-2[data-side=right]{--tw-enter-translate-x:calc(2*var(--spacing)*-1)}.data-\[side\=top\]\:slide-in-from-bottom-2[data-side=top]{--tw-enter-translate-y:calc(2*var(--spacing))}.data-\[size\=sm\]\:h-8[data-size=sm]{height:calc(var(--spacing) * 8)}.data-\[size\=sm\]\:max-w-xs[data-size=sm]{max-width:var(--container-xs)}.data-\[size\=sm\]\:py-1[data-size=sm]{padding-block:calc(var(--spacing) * 1)}.data-\[state\=closed\]\:animate-out[data-state=closed]{animation:exit var(--tw-animation-duration,var(--tw-duration,.15s))var(--tw-ease,ease)var(--tw-animation-delay,0s)var(--tw-animation-iteration-count,1)var(--tw-animation-direction,normal)var(--tw-animation-fill-mode,none)}.data-\[state\=closed\]\:fade-out-0[data-state=closed]{--tw-exit-opacity:0}.data-\[state\=closed\]\:zoom-out-95[data-state=closed]{--tw-exit-scale:.95}.data-\[state\=open\]\:animate-in[data-state=open]{animation:enter var(--tw-animation-duration,var(--tw-duration,.15s))var(--tw-ease,ease)var(--tw-animation-delay,0s)var(--tw-animation-iteration-count,1)var(--tw-animation-direction,normal)var(--tw-animation-fill-mode,none)}.data-\[state\=open\]\:bg-accent[data-state=open]{background-color:var(--accent)}.data-\[state\=open\]\:text-accent-foreground[data-state=open]{color:var(--accent-foreground)}.data-\[state\=open\]\:text-muted-foreground[data-state=open]{color:var(--muted-foreground)}.data-\[state\=open\]\:fade-in-0[data-state=open]{--tw-enter-opacity:0}.data-\[state\=open\]\:zoom-in-95[data-state=open]{--tw-enter-scale:.95}.data-\[variant\=destructive\]\:text-destructive[data-variant=destructive]{color:var(--destructive)}.data-\[variant\=destructive\]\:focus\:bg-destructive\/10[data-variant=destructive]:focus{background-color:var(--destructive)}@supports (color:color-mix(in lab, red, red)){.data-\[variant\=destructive\]\:focus\:bg-destructive\/10[data-variant=destructive]:focus{background-color:color-mix(in oklab, var(--destructive) 10%, transparent)}}.data-\[variant\=destructive\]\:focus\:text-destructive[data-variant=destructive]:focus{color:var(--destructive)}@media (min-width:40rem){.sm\:max-w-lg{max-width:var(--container-lg)}.sm\:max-w-md{max-width:var(--container-md)}.sm\:max-w-xl{max-width:var(--container-xl)}.sm\:flex-row{flex-direction:row}.sm\:flex-wrap{flex-wrap:wrap}.sm\:justify-end{justify-content:flex-end}.sm\:text-left{text-align:left}.sm\:group-data-\[size\=default\]\/alert-dialog-content\:row-span-2:is(:where(.group\/alert-dialog-content)[data-size=default] *){grid-row:span 2/span 2}.sm\:group-data-\[size\=default\]\/alert-dialog-content\:place-items-start:is(:where(.group\/alert-dialog-content)[data-size=default] *){place-items:start}.sm\:group-data-\[size\=default\]\/alert-dialog-content\:text-left:is(:where(.group\/alert-dialog-content)[data-size=default] *){text-align:left}.sm\:group-data-\[size\=default\]\/alert-dialog-content\:group-has-data-\[slot\=alert-dialog-media\]\/alert-dialog-content\:col-start-2:is(:where(.group\/alert-dialog-content)[data-size=default] *):is(:where(.group\/alert-dialog-content):has([data-slot=alert-dialog-media]) *){grid-column-start:2}.sm\:group-data-\[size\=default\]\/alert-dialog-content\:has-data-\[slot\=alert-dialog-media\]\:grid-rows-\[auto_1fr\]:is(:where(.group\/alert-dialog-content)[data-size=default] *):has([data-slot=alert-dialog-media]){grid-template-rows:auto 1fr}.data-\[size\=default\]\:sm\:max-w-lg[data-size=default]{max-width:var(--container-lg)}}@media (min-width:48rem){.md\:text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}}@media (prefers-color-scheme:dark){.dark\:border-input{border-color:var(--input)}.dark\:bg-destructive\/60{background-color:var(--destructive)}@supports (color:color-mix(in lab, red, red)){.dark\:bg-destructive\/60{background-color:color-mix(in oklab, var(--destructive) 60%, transparent)}}.dark\:bg-input\/30{background-color:var(--input)}@supports (color:color-mix(in lab, red, red)){.dark\:bg-input\/30{background-color:color-mix(in oklab, var(--input) 30%, transparent)}}@media (hover:hover){.dark\:hover\:bg-accent\/50:hover{background-color:var(--accent)}@supports (color:color-mix(in lab, red, red)){.dark\:hover\:bg-accent\/50:hover{background-color:color-mix(in oklab, var(--accent) 50%, transparent)}}.dark\:hover\:bg-input\/50:hover{background-color:var(--input)}@supports (color:color-mix(in lab, red, red)){.dark\:hover\:bg-input\/50:hover{background-color:color-mix(in oklab, var(--input) 50%, transparent)}}}.dark\:focus-visible\:ring-destructive\/40:focus-visible{--tw-ring-color:var(--destructive)}@supports (color:color-mix(in lab, red, red)){.dark\:focus-visible\:ring-destructive\/40:focus-visible{--tw-ring-color:color-mix(in oklab, var(--destructive) 40%, transparent)}}.dark\:aria-invalid\:ring-destructive\/40[aria-invalid=true]{--tw-ring-color:var(--destructive)}@supports (color:color-mix(in lab, red, red)){.dark\:aria-invalid\:ring-destructive\/40[aria-invalid=true]{--tw-ring-color:color-mix(in oklab, var(--destructive) 40%, transparent)}}.dark\:data-\[variant\=destructive\]\:focus\:bg-destructive\/20[data-variant=destructive]:focus{background-color:var(--destructive)}@supports (color:color-mix(in lab, red, red)){.dark\:data-\[variant\=destructive\]\:focus\:bg-destructive\/20[data-variant=destructive]:focus{background-color:color-mix(in oklab, var(--destructive) 20%, transparent)}}}.\[\&_svg\]\:pointer-events-none svg{pointer-events:none}.\[\&_svg\]\:shrink-0 svg{flex-shrink:0}.\[\&_svg\:not\(\[class\*\=\'size-\'\]\)\]\:size-3 svg:not([class*=size-]){width:calc(var(--spacing) * 3);height:calc(var(--spacing) * 3)}.\[\&_svg\:not\(\[class\*\=\'size-\'\]\)\]\:size-4 svg:not([class*=size-]){width:calc(var(--spacing) * 4);height:calc(var(--spacing) * 4)}.\[\&_svg\:not\(\[class\*\=\'text-\'\]\)\]\:text-muted-foreground svg:not([class*=text-]){color:var(--muted-foreground)}:is(.data-\[variant\=destructive\]\:\*\:\[svg\]\:text-destructive\![data-variant=destructive]>*):is(svg){color:var(--destructive)!important}:is(.\*\:\[svg\:not\(\[class\*\=\'size-\'\]\)\]\:size-8>*):is(svg:not([class*=size-])){width:calc(var(--spacing) * 8);height:calc(var(--spacing) * 8)}.\[\&\>svg\]\:pointer-events-none>svg{pointer-events:none}.\[\&\>svg\]\:size-3>svg{width:calc(var(--spacing) * 3);height:calc(var(--spacing) * 3)}@media (hover:hover){a.\[a\&\]\:hover\:bg-accent:hover{background-color:var(--accent)}a.\[a\&\]\:hover\:bg-destructive\/90:hover{background-color:var(--destructive)}@supports (color:color-mix(in lab, red, red)){a.\[a\&\]\:hover\:bg-destructive\/90:hover{background-color:color-mix(in oklab, var(--destructive) 90%, transparent)}}a.\[a\&\]\:hover\:bg-primary\/90:hover{background-color:var(--primary)}@supports (color:color-mix(in lab, red, red)){a.\[a\&\]\:hover\:bg-primary\/90:hover{background-color:color-mix(in oklab, var(--primary) 90%, transparent)}}a.\[a\&\]\:hover\:bg-secondary\/90:hover{background-color:var(--secondary)}@supports (color:color-mix(in lab, red, red)){a.\[a\&\]\:hover\:bg-secondary\/90:hover{background-color:color-mix(in oklab, var(--secondary) 90%, transparent)}}a.\[a\&\]\:hover\:text-accent-foreground:hover{color:var(--accent-foreground)}a.\[a\&\]\:hover\:underline:hover{text-decoration-line:underline}}}@property --tw-animation-delay{syntax:"*";inherits:false;initial-value:0s}@property --tw-animation-direction{syntax:"*";inherits:false;initial-value:normal}@property --tw-animation-duration{syntax:"*";inherits:false}@property --tw-animation-fill-mode{syntax:"*";inherits:false;initial-value:none}@property --tw-animation-iteration-count{syntax:"*";inherits:false;initial-value:1}@property --tw-enter-blur{syntax:"*";inherits:false;initial-value:0}@property --tw-enter-opacity{syntax:"*";inherits:false;initial-value:1}@property --tw-enter-rotate{syntax:"*";inherits:false;initial-value:0}@property --tw-enter-scale{syntax:"*";inherits:false;initial-value:1}@property --tw-enter-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-enter-translate-y{syntax:"*";inherits:false;initial-value:0}@property --tw-exit-blur{syntax:"*";inherits:false;initial-value:0}@property --tw-exit-opacity{syntax:"*";inherits:false;initial-value:1}@property --tw-exit-rotate{syntax:"*";inherits:false;initial-value:0}@property --tw-exit-scale{syntax:"*";inherits:false;initial-value:1}@property --tw-exit-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-exit-translate-y{syntax:"*";inherits:false;initial-value:0}@property --scroll-fade-t{syntax:"<length-percentage>";inherits:false;initial-value:0}@property --scroll-fade-b{syntax:"<length-percentage>";inherits:false;initial-value:0}@property --scroll-fade-s{syntax:"<length-percentage>";inherits:false;initial-value:0}@property --scroll-fade-e{syntax:"<length-percentage>";inherits:false;initial-value:0}@property --scroll-fade-mask{syntax:"*";inherits:false}@property --shimmer-angle{syntax:"<angle>";inherits:true;initial-value:20deg}@property --shimmer-image{syntax:"*";inherits:false}@property --shimmer-text-fill{syntax:"*";inherits:false}@media (prefers-reduced-motion:reduce){.shimmer{-webkit-text-fill-color:currentColor;background-image:none;animation:none}}.print-pages{display:none}.map-canvas{-webkit-user-select:none;user-select:none}.crossing-card.export-reminder{align-items:flex-start}.export-reminder-buttons{flex-wrap:wrap;align-items:center;gap:2px 4px;margin-top:8px;display:flex}.export-reminder-buttons [data-variant=ghost]{text-underline-offset:2px;height:26px;padding:0 6px;font-size:12.5px;text-decoration:underline}.save-state.needs-export{color:#8a5a00}.save-state.needs-export svg{color:#b7791f}.network-shape h4{letter-spacing:.06em;text-transform:uppercase;color:#5d554a;margin:10px 0 4px;font-size:12px}.shape-row{text-align:left;cursor:default;background:#fbf7ef;border:1px solid #e3dccf;border-radius:8px;gap:2px;width:100%;margin-bottom:5px;padding:7px 9px;display:grid}.shape-row strong{font-size:13px}.shape-row span{color:#5d554a;font-size:12px}.shape-row:hover,.shape-row:focus-visible{background:#f4eee2;border-color:#b9ad99;outline:none}.shape-row.has-warning{background:#fff6e5;border-color:#e2b463}.crossing-mark-band{fill:none;stroke:#fff;stroke-width:9px}.crossing-mark{fill:none;stroke:#b3261e;stroke-width:4px}.balance-tooltip.crossing-tooltip{max-width:226px}.settings-board{grid-template-columns:minmax(0,1fr) auto;align-items:start;gap:16px;display:grid}.settings-board-fields{gap:12px;min-width:0;display:grid}.settings-radios{border:0;min-width:0;margin:0;padding:0}.settings-radios legend{margin-bottom:4px;padding:0;font-size:14px;font-weight:500}.board-preview{padding-top:22px}.board-preview svg{display:block;overflow:visible}.board-preview-board{fill:#fbf7ef;stroke:#5d554a;stroke-width:1.2px}.board-preview-fold{stroke:#8f877b;stroke-width:.8px;stroke-dasharray:3 2}.board-preview-card{fill:#fff;stroke:#5d554a;stroke-width:1px}.board-preview-card-line{stroke:#8f877b;stroke-width:1.4px;stroke-linecap:round}.board-preview-card-points{fill:none;stroke:#5d554a;stroke-width:.9px}.board-preview-size{fill:#5d554a;font:8px Segoe UI,Arial,sans-serif}.map-canvas.standing{min-width:420px;width:min(100%,calc((100vh - 150px) * var(--map-ratio,.66)));margin:0 auto}.map-canvas .stop-label-handle{cursor:grab;pointer-events:auto}.map-canvas .stop-label-handle:active{cursor:grabbing}.wagon-slot-outline{fill:#fffaf0;stroke:#4d4942;stroke-width:5px}.wagon-slot rect{vector-effect:non-scaling-stroke}.route-guide{opacity:.58}.route-guide.infrastructure{opacity:.9}.route-group.selected .wagon-slot-outline{stroke:#721c24;stroke-width:8px}.waypoint-handle{cursor:grab;touch-action:none}.waypoint-handle:active{cursor:grabbing}.waypoint-hit{fill:#0000;stroke:none}.waypoint-handle rect{fill:#f7a928;stroke:#5d3a08;stroke-width:2px;filter:drop-shadow(0 2px 2px #0005)}.waypoint-handle>circle:last-child{fill:#fff8e8;stroke:#5d3a08;stroke-width:1.5px;pointer-events:none}@media (max-width:720px){.map-wrap{-webkit-overflow-scrolling:touch;overscroll-behavior:contain;touch-action:pan-x pan-y;overflow:scroll auto!important}.map-canvas{width:var(--phone-map-width,900px)!important;min-width:var(--phone-map-width,900px)!important;touch-action:pan-x pan-y!important}.map-canvas .stop{touch-action:none}.map-status{z-index:3;width:max-content;position:sticky!important;left:8px!important}}.print-dialog{color:#24211d;max-width:700px}.print-dialog [data-slot=dialog-description]{color:#2e2a24}.print-choices{grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:14px;display:grid}.print-choices fieldset{border:0;min-width:0;margin:0;padding:0}.print-choices legend{letter-spacing:.05em;text-transform:uppercase;color:#2e2a24;margin-bottom:6px;font-size:12px;font-weight:700}.print-option{cursor:pointer;align-items:flex-start;gap:8px;padding:4px 0;display:flex}.print-option input{accent-color:#721c24;margin-top:3px}.print-option strong{color:#1f1c18;font-size:13px;display:block}.print-option small{color:#2e2a24;font-size:12px;line-height:1.4;display:block}.print-table-heading{color:#1f1c18;margin:4px 0 0;font-size:14px;font-weight:700}.print-table-note{color:#2e2a24;margin:0;font-size:12px;line-height:1.5}.print-table-wrap{overflow-x:auto}.print-table{table-layout:fixed;border-collapse:collapse;width:100%;font-size:13px}.print-table-paper{width:18%}.print-table th{text-align:left;color:#1f1c18;padding:4px 6px;font-weight:700}.print-table thead th{border-bottom:1px solid #b9ad9b;font-size:12px}.print-table td{padding:2px}.print-table td button{width:100%;font:inherit;font-variant-numeric:tabular-nums;text-align:left;color:#1f1c18;cursor:pointer;white-space:nowrap;background:0 0;border:1.5px solid #0000;border-radius:6px;padding:5px 6px}.print-table td button small{color:#2e2a24;margin-left:4px;font-size:12px}.print-table td button:hover{background:#f3ede3}.print-table td button[aria-pressed=true]{background:#f7e9e6;border-color:#721c24;box-shadow:inset 0 0 0 1px #721c24}.print-dialog-foot{color:#2e2a24!important;font-size:12px!important}@media print{html,body{background:#fff!important}body{-webkit-print-color-adjust:exact!important;print-color-adjust:exact!important}.topbar,.workspace,[role=alertdialog],body>:not(.app-shell),.app-shell>:not(.print-pages){display:none!important}.app-shell{height:auto!important;min-height:0!important;display:block!important;overflow:visible!important}html,body{height:auto!important;overflow:visible!important}.print-pages{display:block!important}.print-page{page-break-after:always;break-after:page;background:#fff;flex-direction:column;display:flex;overflow:hidden}.print-page:last-child{page-break-after:auto;break-after:auto}.print-caption{color:#24211d;justify-content:space-between;align-items:baseline;gap:6mm;margin-bottom:2.5mm;display:flex}.print-caption strong{font:700 12pt Georgia,serif}.print-caption span{color:#24221e;white-space:nowrap;font:7.5pt Segoe UI,Arial,sans-serif}.print-map .print-page{break-inside:avoid;page-break-inside:avoid;margin:0 auto;padding:0;overflow:visible}.print-sheet{display:block;overflow:visible}.print-sheet-name{fill:#24211d;font:700 4.2px Georgia,serif}.print-sheet-note{fill:#24221e;font:2.65px Segoe UI,Arial,sans-serif}.print-sheet-art{fill:#f7f1e5;stroke:#81786c;stroke-width:.3px}.print-sheet-art.trimmed{stroke:none}.print-sheet .cut-mark line{stroke:#24211d;stroke-width:.2px}.print-page .route-hit{display:none}.print-page .stop,.print-page .route-group{filter:none!important}.print-page .stop text{font-size:12px}.print-page .wagon-slot-outline{stroke-width:4px}.ticket-run{width:100%;position:relative}.ticket-map-defs{width:0;height:0;position:absolute;overflow:hidden}.ticket-row{break-inside:avoid;page-break-inside:avoid;justify-content:center;gap:0;display:flex}.print-tickets .print-caption{break-after:avoid}.ticket-card{break-inside:avoid;page-break-inside:avoid;color:#24211d;background:#fff;border:.25mm dashed #81786c;padding:3mm;overflow:hidden}.ticket-card p{margin:0}.ticket-card-points{text-align:center;color:#24211d;border:.4mm solid #24211d;border-radius:50%;width:10mm;height:10mm;font:700 11pt/9.2mm Georgia,serif}.ticket-card{position:relative}.ticket-card-version{color:#81786c;margin:0;font:5pt Segoe UI,Arial,sans-serif;position:absolute;bottom:1.6mm;left:3mm}.print-sheet-version{font:400 2.65px Segoe UI,Arial,sans-serif}.ticket-card-flag{letter-spacing:.06em;text-transform:uppercase;color:#24221e;text-align:center;font:6pt Segoe UI,Arial,sans-serif}.ticket-card{grid-template-rows:auto minmax(0,1fr);grid-template-columns:minmax(0,1fr) 10mm;gap:1.2mm 1.5mm;display:grid}.ticket-card-names{overflow-wrap:anywhere;grid-column:1/-1;font:700 8.5pt/1.15 Georgia,serif}.ticket-card-dash{color:#81786c;font-weight:400}.ticket-map{grid-area:2/1;place-self:center start;width:auto;height:100%;min-height:0;display:block;overflow:hidden}.ticket-card-corner{flex-direction:column;grid-area:2/2;justify-content:flex-end;align-items:center;gap:.8mm;display:flex}.ticket-map-area{fill:#eee8dc;stroke:none}.ticket-map-line{fill:none;stroke:#dcd5c8;stroke-width:8px;stroke-linecap:round;stroke-linejoin:round}.ticket-map-route{fill:none;stroke:#c2baad;stroke-width:9px;stroke-linecap:round}.ticket-map-stop{fill:#aaa296}.ticket-map-frame{fill:none;stroke:#cfc8bb;stroke-width:5px}.ticket-map-link{stroke:#24211d;stroke-width:6px;stroke-linecap:round}.ticket-map-end{fill:none;stroke:#000;stroke-width:12px}.print-pages>.print-tickets,.print-pages>.print-rules{break-before:page;page-break-before:always}.print-pages>style+.print-tickets,.print-pages>style+.print-rules{break-before:auto;page-break-before:auto}.print-rules{color:#24211d;font:10.5pt/1.5 Georgia,serif}.print-rules-name{letter-spacing:.06em;text-transform:uppercase;color:#4f493f;margin:0 0 6mm;font:7.5pt Segoe UI,Arial,sans-serif}.print-rules h1{break-after:avoid;margin:0 0 4mm;font:700 18pt/1.2 Georgia,serif}.print-rules h2{break-after:avoid;margin:6mm 0 2mm;font:700 14pt/1.25 Georgia,serif}.print-rules h3{break-after:avoid;margin:4mm 0 1.5mm;font:700 11.5pt/1.3 Georgia,serif}.print-rules p{orphans:3;widows:3;margin:0 0 3mm}.print-rules ul,.print-rules ol{margin:0 0 3mm;padding-left:6mm}.print-rules ul{list-style:outside}.print-rules ol{list-style:decimal}.print-rules ul ul{list-style:circle}.print-rules li{break-inside:avoid;margin:0 0 1mm}.print-rules blockquote{color:#3b362e;border-left:.8mm solid #81786c;margin:0 0 3mm;padding:1mm 4mm}.print-rules hr{border:0;border-top:.3mm solid #81786c;margin:4mm 0}.print-rules table{border-collapse:collapse;margin:0 0 4mm;font-size:10pt}.print-rules th,.print-rules td{text-align:left;border:.25mm solid #81786c;padding:1mm 2.5mm}.print-rules th{background:#eee7da}.print-rules tr{break-inside:avoid}.print-rules code{background:#f1ece2;border-radius:.8mm;padding:0 1mm;font:9.5pt ui-monospace,Menlo,monospace}.print-rules .rule-ref{break-inside:avoid}}.deck-rules{gap:10px;margin-bottom:14px;display:grid}.deck-rule-list{border:0;flex-wrap:wrap;gap:6px;margin:0;padding:0;display:flex}.deck-rule-list legend{color:#1f1c18;margin-bottom:6px;font-size:13px;font-weight:700}.deck-rule-choice{cursor:pointer;border:1px solid #d8cfc0;border-radius:8px;align-items:center;gap:6px;padding:5px 10px;display:flex}.deck-rule-choice.chosen{background:#f7e9e6;border-color:#721c24}.deck-rule-choice input{accent-color:#721c24}.deck-rule-choice strong{font-size:13px;display:block}.deck-rule-choice small{color:#1f1c18;font-size:12px;display:block}.deck-rule-values{background:#fffdf8;border:1px solid #d8cfc0;border-radius:8px;gap:8px;padding:12px 14px;display:grid}.deck-rule-table{gap:5px;margin:0;font-size:13px;display:grid}.deck-rule-table div{grid-template-columns:minmax(150px,35%) 1fr;gap:8px;display:grid}.deck-rule-table dt{color:#2e2a24;font-weight:600}.deck-rule-table dd{color:#1f1c18;margin:0}.deck-rule-table small{color:#2e2a24;font-size:12px}.deck-rule-fields{grid-template-columns:repeat(auto-fit,minmax(170px,1fr));align-items:end;gap:8px;display:grid}.deck-rule-bins{grid-template-columns:repeat(5,1fr);align-items:end;gap:6px;display:grid}.deck-rule-bins label{white-space:nowrap}.deck-rule-hint{color:#2e2a24;font-size:12px;display:block}.deck-rule-wide{grid-column:1/-1}.deck-rules .helper{color:#2e2a24;font-size:12.5px;line-height:1.5}.deck-rules-subhead{color:#1f1c18;margin:6px 0 4px;font-size:13px;font-weight:700}.analysis-dialog,.style-dialog{grid-template-columns:minmax(0,1fr)}.analysis-dialog>*,.analysis-section{min-width:0}.property-form [data-slot=native-select-wrapper]{width:100%}.properties.showing-suggestions>:not(.suggestion-panel){display:none}.suggestion-panel{align-content:start;gap:10px;display:grid}.suggestion-panel .suggestion-list{gap:6px;margin:0;padding:0;list-style:none;display:grid}.suggestion-panel .suggestion-row{background:#fffdf8;border:1px solid #d8cfc0;border-radius:8px;justify-content:space-between;align-items:center;gap:8px;padding:8px 10px;display:flex}.suggestion-panel .suggestion-row:hover,.suggestion-panel .suggestion-row:focus-within{background:#f7e9e6;border-color:#721c24}.suggestion-panel .suggestion-row strong{font-size:13px}.map-canvas .suggestion-preview{stroke:#721c24;stroke-width:5px;stroke-dasharray:10 7;stroke-linecap:round;opacity:.85;pointer-events:none}.deck-rule-ends{gap:10px;display:grid}.deck-rule-end{gap:4px;display:grid}.deck-rule-end-row{align-items:center;gap:10px;display:flex}.deck-rule-end-row input{flex:1}.deck-rule-end-row output{font-variant-numeric:tabular-nums;color:#1f1c18;min-width:44px;font-size:13px;font-weight:700}@media screen and (min-width:1051px){.app-shell:has(.workspace.showing-balance){height:100vh;min-height:0;overflow:hidden}.workspace.showing-balance{grid-template-columns:246px minmax(0,1fr) var(--right-width,400px);grid-template-rows:minmax(0,1fr);position:relative}.workspace.showing-balance>.tools-panel,.workspace.showing-balance>.properties{min-height:0;overflow-y:auto}.workspace.showing-balance>.tools-panel>*{flex-shrink:0}.workspace.showing-balance>.map-wrap{min-height:0;padding-top:10px;overflow:auto;container-type:size}.workspace.showing-balance .map-status{flex-wrap:wrap;align-content:flex-start;min-height:54px;margin-bottom:6px;position:static}.workspace.showing-balance .map-canvas{min-width:0;width:min(100cqw,calc((100cqh - 60px) * var(--map-ratio,1.5)))}}.column-resizer{top:0;bottom:0;right:calc(var(--right-width,400px) - 4px);cursor:col-resize;z-index:5;touch-action:none;width:8px;position:absolute}.column-resizer:hover,.column-resizer:focus-visible,.column-resizer:active{background:#721c2447;outline:none}@media (max-width:1050px){.column-resizer{display:none}}.properties.showing-balance>:not(.balance-panel):not(.phone-sheet-bar){display:none}.balance-panel{align-content:start;gap:12px;min-width:0;display:grid}.balance-panel>*,.balance-panel .analysis-section{min-width:0}.balance-panel tbody tr,.balance-panel .bottleneck-row{cursor:pointer}.balance-panel tbody tr:hover{background:#f7e9e6}.map-canvas .stop.previewed>circle:nth-of-type(2){stroke:#721c24;stroke-width:6px;filter:drop-shadow(0 0 5px #721c24b3)}.map-canvas .balance-ring-halo{fill:none;stroke:#fff;stroke-width:12px;opacity:.9;pointer-events:none}.map-canvas .balance-ring{fill:none;stroke:#b3261e;stroke-width:6px;pointer-events:none}.ticket-lengths .length-legend{color:#4f493f;flex-wrap:wrap;gap:6px 14px;font-size:12px;display:flex}.ticket-lengths .length-legend span{align-items:center;gap:6px;display:inline-flex}.ticket-lengths .length-key{display:inline-block}.ticket-lengths .length-key.deck{background:#8b3a3a;border-radius:2px;width:14px;height:10px}.ticket-lengths .length-key.official,.ticket-lengths .length-ref[data-ref=official]{background:#2b2722;border-radius:1px;width:3px;height:22px}.ticket-lengths .length-key.own,.ticket-lengths .length-ref[data-ref=own]{background:#1c6b8a;border:2px solid #fff;width:11px;height:11px;transform:translate(-50%,-50%)rotate(45deg);box-shadow:0 0 0 1px #1c6b8a}.ticket-lengths .length-key.official{height:14px}.ticket-lengths .length-key.own{width:9px;height:9px;box-shadow:none;border:0;transform:rotate(45deg)}.ticket-lengths .length-rows{gap:7px;margin-top:6px;display:grid}.ticket-lengths .length-row{grid-template-columns:62px minmax(0,1fr) 62px;align-items:center;gap:8px;font-size:12px;display:grid}.ticket-lengths .length-label{color:#3b362e}.ticket-lengths .length-track{background:#ebe4d6;border-radius:3px;height:14px;position:relative}.ticket-lengths .length-fill{background:#8b3a3a;border-radius:3px 0 0 3px;height:100%}.ticket-lengths .length-ref{position:absolute;top:50%}.ticket-lengths .length-ref[data-ref=official]{transform:translate(-50%,-50%)}.ticket-lengths .length-numbers{text-align:right;white-space:nowrap}.ticket-lengths .length-share{color:#4f493f}.ticket-lengths .helper{margin:8px 0 0}.ticket-lengths .length-legend{margin-top:6px}.balance-panel .colour-cell{cursor:default}.balance-panel .colour-cell:hover{outline-offset:-1px;background:#f7e9e6;outline:1px solid #b3261e}.balance-panel .analysis-wagons-row td{border-top:1px solid #cfc6b6;font-weight:700}.map-canvas .route-halo-edge{stroke:#2b1014;opacity:.9;pointer-events:none}.map-canvas .route-halo{stroke:#ffd23f;pointer-events:none}.map-canvas .route-group.on-ticket .route-halo{stroke:#4fd18b}.map-canvas .route-group.on-ticket .route-halo-edge{stroke:#0e3b24}.map-canvas .route-group.bottleneck .route-halo{stroke:#ff6b5a}.map-canvas.has-marks .route-group:not(.on-preview):not(.on-ticket):not(.bottleneck){opacity:.35}.map-canvas .route-group{transition:opacity .12s}.classic-compare{gap:6px;margin-top:14px;display:grid}.classic-compare h4{margin:0;font-size:14px}.classic-table td,.classic-table th{font-size:12px}.classic-verdict{white-space:nowrap;font-weight:700}.classic-table td,.classic-table th{padding-left:6px;padding-right:6px}.classic-range small{color:#4f493f;font-size:12px;display:block}.analysis-table.colour-table th,.analysis-table.colour-table td{padding-left:6px;padding-right:6px}.analysis-table.colour-table th:first-child,.analysis-table.colour-table td:first-child,.analysis-table.classic-table th:first-child,.analysis-table.classic-table td:first-child{width:1%;min-width:0}.analysis-table.classic-table td:first-child{white-space:normal}.analysis-table.official-table{table-layout:fixed}.analysis-table.official-table th,.analysis-table.official-table td{white-space:normal;vertical-align:top;padding-left:8px;padding-right:8px}.analysis-table.official-table th:first-child,.analysis-table.official-table td:first-child{width:46%;min-width:0;position:static}.analysis-table.official-table th:nth-child(2),.analysis-table.official-table td:nth-child(2){width:30%}.analysis-table.official-table th:nth-child(3),.analysis-table.official-table td:nth-child(3){width:24%}.analysis-table.official-table td:nth-child(3){white-space:nowrap}.balance-panel tr.pinned td,.balance-panel td.pinned{font-weight:700;background:#f4d9d3!important}.balance-panel .bottleneck-row[aria-pressed=true]{background:#f4d9d3;border-color:#b3261e}.rules-panel{container-type:inline-size}.rules-body{gap:14px;display:grid}@container (min-width:600px){.rules-body{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}}.rules-editor{align-content:start;gap:6px;min-width:0;display:grid}.rules-editor textarea{resize:vertical;color:#24221e;background:#fffdf8;border:1px solid #cec4b6;border-radius:8px;width:100%;min-height:260px;padding:10px;font:13px/1.5 ui-monospace,Menlo,Consolas,monospace}.rules-editor small{color:#4f493f;font-size:12px}.rules-view{align-content:start;gap:6px;min-width:0;display:grid}.rules-view-label{letter-spacing:.04em;text-transform:uppercase;color:#4f493f;font-size:12px;font-weight:700}.rules-preview{color:#24211d;overflow-wrap:anywhere;background:#fff;border:1px solid #d5cbbb;border-radius:8px;min-height:120px;padding:12px 14px;font:14px/1.55 Georgia,serif}.rules-preview>:first-child{margin-top:0}.rules-preview h1{margin:0 0 .5em;font-size:21px;line-height:1.25}.rules-preview h2{margin:1em 0 .4em;font-size:17px;line-height:1.3}.rules-preview h3{margin:.9em 0 .3em;font-size:15px}.rules-preview p{margin:0 0 .7em}.rules-preview ul,.rules-preview ol{margin:0 0 .7em;padding-left:1.4em}.rules-preview blockquote{color:#3b362e;border-left:3px solid #b8ad9b;margin:0 0 .7em;padding:2px 12px}.rules-preview hr{border:0;border-top:1px solid #cfc6b6;margin:1em 0}.rules-preview table{border-collapse:collapse;margin:0 0 .8em;font-size:13px}.rules-preview th,.rules-preview td{text-align:left;border:1px solid #cfc6b6;padding:3px 9px}.rules-preview th{background:#eee7da}.rules-preview code{background:#f1ece2;border-radius:3px;padding:0 4px;font:12px ui-monospace,Menlo,Consolas,monospace}.rule-ref{vertical-align:baseline;background:#fffaf0;border:1px solid #cfc6b6;border-radius:999px;align-items:center;gap:5px;padding:0 7px;font-size:.93em;line-height:1.5;display:inline-flex}.rules-preview .rule-ref:hover{background:#f7e9e6;border-color:#b3261e}.rule-symbol{flex:none}.rule-swatch{border:1px solid #24211d;border-radius:2px;width:14px;height:8px;display:inline-block}.rule-ref.missing{color:#8a2b21;background:#fdf1ee;border-style:dashed;border-color:#b3261e}.rules-preview ul{list-style:outside}.rules-preview ol{list-style:decimal}.rules-preview ul ul{list-style:circle}.rules-preview li{margin:0 0 .25em}.rules-toolbar{background:#f6f0e4;border:1px solid #d5cbbb;border-radius:8px;flex-wrap:wrap;align-items:center;gap:2px 4px;padding:3px;display:flex}.rules-toolbar button{width:30px;height:30px}.rules-toolbar svg{width:16px;height:16px}.rules-toolbar select{max-width:130px;height:30px;font:inherit;color:#24221e;background:#fffdf8;border:1px solid #cec4b6;border-radius:6px;padding:0 6px;font-size:12px}.rules-helper a,.rules-panel .helper a{color:#721c24;text-decoration:underline}.map-canvas.picking-rules,.map-canvas.picking-rules .stop{cursor:crosshair}.rules-pick-note{background:#fdf1ee;border:1px solid #b3261e;border-radius:6px;padding:6px 9px;color:#5e1a14!important}.deck-compare-pick{gap:4px;margin:6px 0;display:grid}.compare-table .cmp-a,.compare-table .cmp-b,.compare-table .cmp-delta{text-align:right}.compare-table th.cmp-a,.compare-table th.cmp-b{text-overflow:ellipsis;max-width:90px;overflow:hidden}.compare-table .compare-group th{text-align:left;color:#4f493f;background:#f4eee2;font-size:12px}.compare-table td.cmp-delta{font-weight:700}.compare-table{border-collapse:collapse;width:100%;font-size:12px}.compare-table th,.compare-table td{text-align:right;white-space:nowrap;border-bottom:1px solid #e9e1d3;padding:6px 9px}.compare-table th:first-child,.compare-table td:first-child{text-align:left}.compare-table thead th{color:#24221e;background:#eee7da;font-weight:700}.compare-table tbody tr:last-child td{border-bottom:none}.version-label{color:#4f493f;font-size:12px;font-weight:400}.map-status .ticket-count{text-overflow:ellipsis;white-space:nowrap;max-width:18rem;display:inline-block;overflow:hidden}.note-box.playtest .note-box-text{flex-direction:column;gap:6px;display:flex}.note-box.playtest .playtest-version{font-weight:700}.note-box.playtest .playtest-line{align-items:flex-end;gap:6px;display:flex}.note-box.playtest .playtest-line i{border-bottom:1.5px solid;flex:1;height:1.1em}.print-suboption{margin-left:1.6rem}.print-version{margin:.25rem 0 0;font-size:.85rem}.length-chip rect{fill:#fffaf0;stroke:#721c24;stroke-width:1.5px;filter:drop-shadow(0 2px 4px #0003)}.length-chip-button{cursor:pointer}.length-chip-button circle{fill:#721c24}.length-chip-button text{fill:#fffaf0;text-anchor:middle;pointer-events:none;font:700 20px Avenir Next,Segoe UI,Arial,sans-serif}.length-chip-button[aria-disabled=true]{opacity:.35;cursor:default}.length-chip-count{text-anchor:middle;fill:#24211d;font:700 18px Avenir Next,Segoe UI,Arial,sans-serif}.tool-options .checkbox-row,.property-form .checkbox-row,.format-control .checkbox-row{text-transform:none;letter-spacing:normal;margin:2px 0 4px;font-size:13px}.analysis-table td:first-child{z-index:1}.analysis-table th:first-child{z-index:2}.map-status .map-status-note{color:#5d554a;white-space:normal;text-align:left;background:#fffaf0d9;flex-shrink:1;min-width:0;max-width:15rem;font-weight:400;line-height:1.25}.deck-rule-lengths{margin:0 0 4px;padding-left:1.1em}.deck-rule-lengths li{margin:1px 0}.room-mark{border-radius:999px;margin-left:6px;padding:1px 7px;font-size:12px;font-weight:600;display:inline-block}.room-mark.ok{color:#2f5a2a;background:#dcebd7}.room-mark.short{color:#7a1f17;background:#f4d3cf}.room-mark.long{color:#6a4b0b;background:#f6e6bf}.shape-line{align-items:center;gap:6px;display:flex}.shape-line .shape-row{flex:1;min-width:0}.shape-action{flex:none}@media screen and (min-width:1051px){body .workspace:not(.showing-balance){grid-template-columns:246px minmax(0,1fr) 258px}.map-canvas:not(.standing){min-width:0}}@media screen and (min-width:721px) and (max-width:1050px){body .workspace{grid-template-columns:210px minmax(0,1fr)}.map-canvas:not(.standing){min-width:0}}@media screen and (max-width:720px){.header-actions{flex-wrap:wrap;overflow:visible}}.start-over{border-top:1px solid #ddd4c6;gap:6px;margin-top:14px;padding-top:12px;display:grid}.start-over h4{margin:0;font-size:14px}.start-over-actions{flex-wrap:wrap;gap:8px;display:flex}@media print{.ticket-card.standing{grid-template-rows:auto minmax(0,1fr);grid-template-columns:minmax(0,1fr) 10mm}.ticket-card.standing .ticket-card-names{grid-area:1/1;align-self:center}.ticket-card.standing .ticket-card-corner{grid-area:1/2;justify-content:flex-start}.ticket-card.standing .ticket-map{grid-area:2/1/auto/-1;place-self:stretch center;width:auto;max-width:100%;height:100%}}.rules-view-head{justify-content:space-between;align-items:center;gap:8px;display:flex}.print-pdf-note{margin:.2rem 0 0}.print-balance{display:none}@media print{.print-balance{break-before:page;page-break-before:always;color:#24211d;padding:2mm;font:10pt Segoe UI,Arial,sans-serif;display:block}.print-balance h1{margin:2mm 0 4mm;font:700 16pt Georgia,serif}.print-balance h2{margin:6mm 0 2mm;font:700 12pt Georgia,serif}.print-balance dl{grid-template-columns:max-content 1fr;gap:1.5mm 6mm;margin:0;display:grid}.print-balance dl>div{display:contents}.print-balance dt{font-weight:600}.print-balance dd{margin:0}.print-balance table{border-collapse:collapse}.print-balance th,.print-balance td{text-align:right;border:.2mm solid #b9b0a2;padding:1mm 2mm}.print-balance th:first-child,.print-balance td:first-child{text-align:left}}.tension-slider{border:0;gap:8px;margin:10px 0 4px;padding:0;display:grid}.tension-slider legend{margin-bottom:6px;font-size:13px;font-weight:600}.tension-slider-row{color:#433c33;grid-template-columns:auto minmax(0,1fr) auto 2.6em;align-items:center;gap:10px;font-size:12px;display:grid}.tension-slider-row input[type=range]{accent-color:#721c24;cursor:pointer;width:100%}.tension-slider-value{color:#2d2a26;text-align:right;font-variant-numeric:tabular-nums;font-size:14px;font-weight:600}.tension-presets{flex-wrap:wrap;gap:8px;display:flex}.tension-preset{cursor:pointer;background:#fffaf0;border:1px solid #ddd4c6;border-radius:999px;padding:5px 12px;font-size:13px}.tension-preset.chosen{border-color:#721c24;box-shadow:inset 0 0 0 1px #721c24}.tension-description{color:#433c33;margin:0;font-size:12.5px;line-height:1.45}.tension-description strong{color:#2d2a26}.on-purpose-tag{color:#24481f;background:#e6eedb;border-radius:999px;margin-left:6px;padding:0 6px;font-size:12px;font-style:normal;font-weight:600}.stop-type-preview{background:#f7f1e5;border:1px solid #ddd4c6;border-radius:8px;width:100%;max-width:260px;height:auto;margin-bottom:8px;display:block}.tour-video{aspect-ratio:16/9;background:#24211d;border-radius:10px;margin:4px 0 10px;position:relative;overflow:hidden}.tour-video iframe{opacity:0;border:0;width:100%;height:100%;position:absolute;inset:0}.tour-video iframe.is-loaded{opacity:1}.tour-video-play:disabled{cursor:progress}.tour-video-play{cursor:pointer;background:0 0;border:0;padding:0;position:absolute;inset:0}.tour-video-play img{object-fit:cover;width:100%;height:100%;display:block}.tour-video-button{color:#fffaf0;background:#721c24eb;border-radius:50%;place-items:center;width:68px;height:68px;margin:-34px 0 0 -34px;display:grid;position:absolute;top:50%;left:50%;box-shadow:0 6px 20px #0000004d}.tour-video-button svg{fill:currentColor;width:30px;height:30px;margin-left:4px}.tour-video-play:hover .tour-video-button,.tour-video-play:focus-visible .tour-video-button{background:#721c24;transform:scale(1.06)}.tour-video-note{color:#fffaf0;background:#24211dc7;border-radius:999px;padding:2px 8px;font-size:12px;position:absolute;bottom:8px;left:10px}.guide-more{margin:2px 0 0}.guide-more a{color:#721c24;text-underline-offset:2px;text-decoration:underline}@media screen and (min-width:1051px){.app-shell{height:100vh;min-height:0;overflow:hidden}.workspace{min-height:0}.workspace>.tools-panel,.workspace>.properties{min-height:0;overflow-y:auto}.workspace>.tools-panel>*{flex-shrink:0}}@media (max-width:1439px){.map-status .map-status-note{display:none}}.map-hint,.map-hint-slot{-webkit-user-select:none;user-select:none}.stop-deletion p{margin:0 0 6px}.stop-deletion ul{margin:4px 0 8px;padding-left:1.3em;list-style:outside}.stop-deletion ul ul{margin:2px 0 4px;list-style:circle}.stop-deletion li{margin:2px 0}.stop-deletion strong{color:#24221e}.print-split-notes{color:#433c33;gap:4px;margin:8px 0 0;font-size:12px;display:grid}.print-split-notes div{grid-template-columns:minmax(9em,auto) 1fr;gap:10px;display:grid}.print-split-notes dt{color:#24221e;font-weight:700}.print-split-notes dd{margin:0}.csv-import-actions{flex-wrap:wrap;justify-content:flex-end}.csv-import-notes{color:#2e2a24;gap:6px;margin:0;padding-left:1.2em;font-size:13px;line-height:1.5;list-style:outside;display:grid}.settings-custom-board{justify-self:start;margin-top:6px}.custom-board-fields{grid-template-columns:1fr 1fr;gap:12px;display:grid}.custom-board-fields label{margin-bottom:4px;display:block}.phone-bar,.phone-sheet-bar{display:none}@media screen and (max-width:720px){.topbar{gap:6px!important;min-height:0!important;padding:6px 12px 8px!important;position:relative!important}.brand p{display:none}.brand h1{font-size:16px}.brand-mark{width:28px;height:28px}.map-title{align-items:center;gap:4px;width:100%!important;max-width:none!important;display:flex!important}.map-title input{flex:auto;min-width:0}.map-title>button{flex:none}.header-actions{display:none!important}.header-actions.open{z-index:35;background:#fbf8f1;border-bottom:1px solid #ccc2b3;flex-wrap:wrap;gap:8px;padding:10px 12px 12px;position:absolute;top:100%;left:0;right:0;box-shadow:0 10px 24px #281e1438;display:flex!important;overflow:visible!important}.header-actions.open>*{flex-shrink:0}.phone-status{background:#faf6ef;border-bottom:1px solid #e1d8ca;order:-2;align-items:center;gap:4px;min-height:40px;padding:2px 8px;display:flex}.phone-status>button{flex:none;width:36px;height:36px}.phone-status .map-status{scrollbar-width:none;flex-wrap:nowrap;flex:auto;align-items:center;gap:6px;width:auto;min-width:0;margin:0;padding:0;display:flex;overflow-x:auto;position:static!important}.phone-status .map-status>*{white-space:nowrap;flex:none}.phone-status .map-status .save-state{font-size:12px}.phone-status.folded{min-height:26px;padding-top:0;padding-bottom:0}.phone-status.folded>button{height:26px}.phone-status-folded{color:#5d554a;font-size:12px}.app-shell{height:100svh;min-height:0}.workspace{flex:1;min-height:0;padding-bottom:56px}.map-wrap{flex:auto;order:-1;height:auto;min-height:0;max-height:none!important;padding-top:8px!important}.tools-panel,.properties{left:0;right:0;top:var(--phone-top,120px);bottom:var(--phone-bar,56px);z-index:30;background:var(--background,#faf6ef);-webkit-overflow-scrolling:touch;border:0;border-top:1px solid #ccc2b3;position:fixed;overflow-y:auto;box-shadow:0 -8px 24px #281e1433;height:auto!important;min-height:0!important;max-height:none!important}.tools-panel:not(.phone-open),.properties:not(.phone-open){display:none!important}.phone-bar{z-index:40;background:#faf6ef;border-top:1px solid #ccc2b3;gap:8px;height:56px;padding:8px 12px;display:flex;position:fixed;bottom:0;left:0;right:0}.phone-bar button{flex:1;height:40px;position:relative}.properties .property-form{grid-template-columns:minmax(0,1fr);gap:12px;display:grid}.properties .property-form>*{min-width:0}.phone-sheet-bar{z-index:5;background:linear-gradient(var(--background,#faf6ef) 75%, transparent);pointer-events:none;flex:none;justify-content:flex-end;align-items:center;height:44px;margin:-12px -12px 0;padding:4px 6px;display:flex;position:sticky;top:-12px}.phone-sheet-close{pointer-events:auto;flex:none;width:40px;height:40px}.phone-zoom{flex:none;gap:4px;display:flex}.phone-zoom button{flex:none;width:40px;padding:0}.style-dialog .settings-layout{grid-template-columns:minmax(0,1fr);gap:12px;min-height:0}.style-dialog .settings-nav{border-bottom:1px solid #ddd4c6;border-right:0;gap:6px;padding:0 0 8px;display:flex;overflow-x:auto}.style-dialog .settings-nav-item{white-space:nowrap;flex:none}.style-dialog .settings-board,.style-dialog .style-columns{grid-template-columns:minmax(0,1fr)}.phone-dot{background:#721c24;border-radius:50%;width:9px;height:9px;position:absolute;top:6px;right:14px;box-shadow:0 0 0 2px #faf6ef}}.tools-panel:focus,.properties:focus{outline:none}.custom-board-real{margin-top:4px}.custom-board-real summary{cursor:pointer;padding:4px 0;font-size:13px;font-weight:600}.custom-board-real .custom-board-fields{grid-template-columns:1fr 1fr;margin-top:6px}.print-cards{border:0;gap:2px;margin:0 0 0 26px;padding:0;display:grid}.print-option-sub strong{font-weight:600}.background-size-row{gap:6px;display:grid}.background-size-row .grid-two{grid-template-columns:1fr 1fr;gap:8px;display:grid}.background-tips{gap:3px;margin:4px 0 0;padding-left:18px;display:grid}@media (max-width:720px){.print-table{table-layout:auto;min-width:560px}.print-table td button{white-space:normal;flex-direction:column;align-items:flex-start;gap:0;display:flex}.print-table td button small{margin-left:0}.topbar{z-index:36!important}}.coverage-table td:first-child{max-width:11em}.coverage-table .coverage-stop{text-overflow:ellipsis;white-space:nowrap;text-align:left;max-width:100%;display:block;overflow:hidden}.analysis-table td.ticket-names{text-overflow:ellipsis;white-space:nowrap;max-width:14em;overflow:hidden}.tool-options .grid-two{grid-template-columns:repeat(auto-fit,minmax(7.5rem,1fr))}body [data-sonner-toast][data-styled=true]{flex-wrap:wrap;row-gap:8px}body [data-sonner-toast][data-styled=true] [data-content]{flex:14rem;min-width:0}body [data-sonner-toast][data-styled=true] [data-button]{white-space:normal;height:auto;margin-left:auto;padding:6px 10px;line-height:1.3}.tool-options select{padding-left:8px;padding-right:22px;font-size:12px}.tool-options [data-slot=native-select-wrapper] svg,.tool-options .group\/native-select svg{width:13px;height:13px;right:5px}:root{--background:#eee9df;--foreground:#24221e;--card:#fbf8f1;--card-foreground:#24221e;--popover:#fffdf8;--popover-foreground:#24221e;--primary:#721c24;--primary-foreground:#fffaf0;--secondary:#ebe3d5;--secondary-foreground:#24221e;--muted:#eee8dd;--muted-foreground:#3a352e;--accent:#e2d8c9;--accent-foreground:#2f2a24;--destructive:#a62d34;--border:#d2c9bb;--input:#cec4b6;--ring:#6f2c33;--radius:.55rem}*{box-sizing:border-box}body{background:var(--background);color:var(--foreground);margin:0;font-family:Avenir Next,Segoe UI,Arial,sans-serif}.app-shell{flex-direction:column;min-height:100vh;display:flex}.topbar{z-index:5;background:#fbf8f1;border-bottom:1px solid #ccc2b3;grid-template-columns:330px 1fr auto;align-items:center;gap:24px;min-height:76px;padding:10px 18px;display:grid;box-shadow:0 3px 18px #3b302817}.brand{align-items:center;gap:12px;display:flex}.brand-mark{flex:none;width:44px;height:44px;display:block}.menu-logo{flex:none;width:16px;height:16px}.brand p,.brand h1{margin:0}.brand p{letter-spacing:.13em;text-transform:uppercase;color:#24221e;font-size:12px}.brand h1{font-family:Georgia,serif;font-size:18px;line-height:1.15}.map-title{align-items:center;gap:10px;max-width:520px;display:flex}.map-title input{background:#fff;font-weight:650}.save-state{color:#24221e;white-space:nowrap;align-items:center;gap:4px;font-size:12px;display:flex}.save-state svg{width:13px}.header-actions{align-items:center;gap:5px;display:flex}.workspace{flex:1;grid-template-columns:246px minmax(600px,1fr) 258px;min-height:0;display:grid}.panel{background:#fbf8f1;border-color:#ccc2b3;padding:18px}.tools-panel{border-right:1px solid #ccc2b3;flex-direction:column;gap:16px;display:flex}.properties{border-left:1px solid #ccc2b3}.panel-heading{border-bottom:1px solid #ddd4c6;flex-direction:column;padding-bottom:13px;display:flex}.panel-heading span{font-family:Georgia,serif;font-size:18px;font-weight:700}.panel-heading small{color:#24221e;text-overflow:ellipsis;white-space:nowrap;min-width:0;margin-top:3px;font-size:12px;display:block;overflow:hidden}.tool-row{background:#f3ece0;border:1px solid #ddd4c6;border-radius:9px;display:flex;overflow:hidden}.tool-button{color:#24221e;cursor:pointer;background:0 0;border:0;border-right:1px solid #e3d9c9;flex:1;place-items:center;min-width:0;height:42px;padding:0;transition:background .12s,color .12s;display:grid}.tool-button:last-child{border-right:0}.tool-button:hover{background:#e6dccb}.tool-button.active{color:#fff;background:#721c24}.tool-button svg{width:18px;height:18px}.tool-panel{gap:8px;display:grid}.tool-panel:empty{display:none}.tool-status{color:#24221e;background:#f3ece0;border:1px solid #ddd4c6;border-radius:8px;margin:0;padding:8px 10px;font-size:12px;line-height:1.4}.tool-tooltip{text-align:left;gap:3px;max-width:240px;padding:9px 11px;line-height:1.45;display:grid}.tool-tooltip strong{font-size:12px}.tool-tooltip span{opacity:.82}.tool-options{gap:5px;margin:0;display:grid}.tool-options.grid-two{grid-template-columns:1fr 1fr;margin-left:0}.tool-options label,.property-form label,.format-control label{color:#24221e;text-transform:uppercase;letter-spacing:.06em;font-size:12px}.tool-options>div{min-width:0}.tool-options [data-slot=native-select-wrapper],.tool-options select,.property-form [data-slot=native-select-wrapper],.property-form select,.format-control [data-slot=native-select-wrapper],.format-control select{width:100%}.format-control{border-top:1px solid #ddd4c6;gap:6px;padding-top:14px;display:grid}.format-toggle{color:#24221e;cursor:pointer;width:100%;font:inherit;text-align:left;background:0 0;border:0;align-items:center;gap:7px;padding:0;display:flex}.format-toggle span{letter-spacing:.06em;text-transform:uppercase;color:#24221e;font-size:12px}.format-toggle svg{color:#24221e;width:13px;margin-left:auto;transition:transform .15s}.format-control.open .format-toggle svg{transform:rotate(180deg)}.format-body{gap:6px;display:grid}.format-control p{color:#24221e;margin:0;font-size:12px;line-height:1.4}.crossing-card{color:#38583a;background:#edf3e7;border:1px solid #abc1aa;border-radius:9px;align-items:center;gap:10px;padding:11px;display:flex}.name-card{cursor:help;align-items:flex-start}.name-card>div:last-child{flex:1;grid-template-columns:minmax(0,1fr);gap:8px;min-width:0;display:grid}.name-card p{overflow-wrap:anywhere}.name-card button{white-space:normal;width:100%;min-width:0;height:auto;min-height:30px;padding:5px 8px;line-height:1.3}.crossing-card.has-warning{color:#4a2d0c;background:#fff0d4;border-color:#d4a365}.crossing-icon{background:#fff9;border-radius:50%;place-items:center;width:30px;height:30px;display:grid}.crossing-icon svg{width:16px}.crossing-card strong{font-size:12px;display:block}.crossing-card p{margin:2px 0 0;font-size:12px}.legend{border-top:1px solid #ddd4c6;padding-top:14px}.legend .eyebrow{letter-spacing:.12em;text-transform:uppercase;color:#24221e;margin:0 0 8px;font-size:12px;font-weight:700}.legend-item{width:100%;font:inherit;color:inherit;text-align:left;cursor:pointer;background:0 0;border:1px solid #0000;border-radius:6px;align-items:center;gap:7px;margin:2px -5px;padding:3px 5px;font-size:12px;display:flex}.legend-item:hover{background:#f3ece0;border-color:#ddd4c6}.legend-item:focus-visible{outline-offset:1px;outline:2px solid #6f2c33}.legend i{border:2px solid;border-radius:50%;width:10px;height:10px}.reset-button{color:#24221e;justify-content:flex-start;margin-top:auto}.map-wrap{background:#dad4c9;min-width:0;padding:42px 20px 20px;position:relative;overflow:auto}.map-status{align-items:center;gap:6px;display:flex;position:absolute;top:10px;left:20px;right:20px}.map-status>span:last-child{color:#24221e;margin-left:auto;font-size:12px}.map-canvas{touch-action:none;background:#f7f1e5;border:1px solid #bdb3a3;border-radius:3px;width:100%;min-width:760px;display:block;box-shadow:0 8px 30px #45392e2b}.map-canvas.tool-stop{cursor:crosshair}.map-canvas.tool-route .stop{cursor:cell}.lake{fill:#dceef3;stroke:#8bb8c5;stroke-width:2px}.water-label{letter-spacing:.18em;fill:#6c9cac;font-family:Georgia,serif;font-size:18px}.hill-line{fill:none;stroke:#82966f;stroke-width:16px;stroke-linecap:round;opacity:.18}.terrain-label{letter-spacing:.12em;fill:#718360;font-family:Georgia,serif;font-size:13px}.fold-guides{fill:none;stroke:#655d52;stroke-width:1.5px;stroke-dasharray:10 8;opacity:.38;pointer-events:none}.route-group{cursor:pointer}.route-hit{fill:none;stroke:#0000;stroke-width:22px}.route-group.selected>path:nth-of-type(2){filter:drop-shadow(0 0 4px #721c24);stroke-width:11px}.slot-marker rect{fill:#fffaf0;stroke:#635b51;stroke-width:1.5px}.slot-marker text{fill:#292622;pointer-events:none;font-size:12px;font-weight:800}.stop-hit{fill:#0000;stroke:none}.stop.locked,.stop.locked:active{cursor:default}.stop{cursor:grab;filter:drop-shadow(0 1px 1px #0003)}.stop:active{cursor:grabbing}.stop text{fill:#302d29;paint-order:stroke;stroke:#f7f1e5;stroke-width:4px;stroke-linejoin:round;pointer-events:none;font-size:11px;font-weight:700}.stop circle{transition:r .12s}.empty-state{text-align:center;color:#24221e;place-items:center;min-height:210px;padding:32px;display:grid}.empty-state svg{width:28px}.empty-state p{font-size:12px;line-height:1.6}.property-form{flex-direction:column;gap:18px;padding-top:18px;display:flex}.property-form>div{gap:6px;display:grid}.route-names{background:#eee7da;border:1px solid #d5cbbb;border-radius:9px;padding:11px;font-size:12px;font-weight:700}.route-names svg{color:#24221e;width:15px}.length-stepper{text-align:center;grid-template-columns:36px 1fr 36px;align-items:center;display:grid!important}.length-stepper strong{font-family:Georgia,serif;font-size:28px}.helper,.delete-note{color:#24221e;margin:0;font-size:12px}.delete-note{margin-top:-12px}.sr-only{clip:rect(0,0,0,0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.map-canvas.tool-background{cursor:crosshair}.map-canvas:not(.tool-select) .background-object,.map-canvas:not(.tool-select) .background-image,.map-canvas:not(.tool-select) .note-box{pointer-events:none}.background-object{cursor:move}.background-object.locked{cursor:pointer}.background-object text{paint-order:stroke;stroke:#f7f1e5;stroke-width:4px;stroke-linejoin:round;font-family:Georgia,serif;font-size:16px;font-weight:700}.background-object.selected>polygon,.background-object.selected>polyline{filter:drop-shadow(0 0 4px #721c24)}.background-point,.background-label-handle{cursor:grab;touch-action:none}.background-point:active,.background-label-handle:active{cursor:grabbing}.background-point .point-hit,.background-label-handle .point-hit{fill:#0000;stroke:none}.background-point>circle:last-child{fill:#f7a928;stroke:#5d3a08;stroke-width:2px;filter:drop-shadow(0 1px 2px #0005)}.background-label-handle rect{fill:#39a56a;stroke:#174f31;stroke-width:2px;filter:drop-shadow(0 1px 2px #0005)}.background-draft polygon,.background-draft polyline{stroke-width:3px;stroke-dasharray:9 6}.background-draft circle{fill:#f7a928;stroke:#5d3a08;stroke-width:2px}.background-tools{margin-left:0}.colour-row{grid-template-columns:1fr 1fr;gap:8px!important;display:grid!important}.colour-row label{justify-content:space-between;align-items:center;gap:5px;display:flex}.colour-row input,.colour-input{background:#fff;border:1px solid #cec4b6;border-radius:6px;width:44px;height:30px;padding:2px}.draft-actions{gap:5px;display:flex!important}.range-input{accent-color:#721c24;width:100%}.label-helper{margin-top:-12px}@media (max-width:1050px){.topbar{grid-template-columns:300px 1fr}.header-actions{border-top:1px solid #e1d8ca;grid-column:1/-1;padding-top:8px}.workspace{grid-template-columns:210px minmax(600px,1fr)}.properties{border-top:1px solid #ccc2b3;border-left:0;grid-column:1/-1}.property-form{grid-template-columns:repeat(3,minmax(180px,1fr));align-items:end;display:grid}.empty-state{min-height:90px}.reset-button{margin-top:0}}@media (max-width:720px){.topbar{flex-wrap:wrap;gap:10px;padding:10px 12px;display:flex}.brand{width:100%}.map-title{width:100%;max-width:none}.header-actions{width:100%;overflow:auto}.workspace{flex-direction:column;display:flex}.tools-panel{border-bottom:1px solid #ccc2b3;border-right:0}.tool-options{margin:0}.crossing-card,.legend,.reset-button{display:none}.map-wrap{max-height:60vh;padding:38px 8px 10px}.map-status{left:8px;right:8px}.map-status>span:last-child{display:none}.properties{min-height:260px}.property-form{display:flex}.map-canvas{min-width:760px}.panel{padding:12px}.brand-mark{width:36px;height:36px}.brand h1{font-size:19px}}.format-measurements{background:#eee7da;border:1px solid #d5cbbb;border-radius:8px;gap:5px;margin:2px 0 0;padding:9px 10px;display:grid}.format-measurements div{justify-content:space-between;align-items:baseline;gap:8px;display:flex}.format-measurements dt{color:#24221e;font-size:12px}.format-measurements dd{color:#24221e;text-align:right;margin:0;font-size:12px;font-weight:700}.welcome-guide{grid-auto-rows:max-content;max-width:560px}.guide-steps{flex-direction:column;gap:12px;margin:0;padding:0;list-style:none;display:flex}.guide-steps li{align-items:flex-start;gap:12px;display:flex}.guide-step-icon{color:#721c24;background:#e9e1d5;border-radius:8px;flex:none;place-items:center;width:32px;height:32px;display:grid}.guide-step-icon svg{width:16px}.guide-steps strong{font-size:13px;display:block}.guide-steps p{color:#24221e;margin:2px 0 0;font-size:12px;line-height:1.5}.image-import-row{border-bottom:1px solid #ddd4c6;gap:6px;margin-bottom:2px;padding-bottom:10px;display:grid}.image-import-buttons,.image-fit-actions{flex-wrap:wrap;gap:6px;display:flex}.background-image{cursor:grab}.background-image.locked{cursor:default}.background-image:active{cursor:grabbing}.background-image image{image-rendering:optimizeQuality}.image-bounds{pointer-events:none;stroke:#721c24;stroke-width:1.5px;stroke-dasharray:6 5;opacity:.7}.image-scale-handle,.image-rotate-handle{cursor:pointer;touch-action:none}.image-scale-handle{cursor:nwse-resize}.image-scale-handle .point-hit,.image-rotate-handle .point-hit{fill:#0000;stroke:none}.image-scale-handle rect{fill:#f7a928;stroke:#5d3a08;stroke-width:2px;filter:drop-shadow(0 1px 2px #0005)}.image-rotate-handle circle:last-child{fill:#39a56a;stroke:#174f31;stroke-width:2px;filter:drop-shadow(0 1px 2px #0005)}.image-rotate-guide{stroke:#7c746a;stroke-dasharray:3 4;pointer-events:none}.crop-controls{border-top:1px solid #ddd4c6;padding-top:10px}.crop-controls .grid-two,.property-form .grid-two,.tool-options .grid-two{grid-template-columns:1fr 1fr;gap:8px 12px;margin-top:6px;display:grid}.property-form .grid-two{grid-template-columns:1fr}.stop-symbol{pointer-events:none}.stop-letter{paint-order:stroke;stroke:#fffaf0;stroke-width:2px;stroke-linejoin:round;font-family:Avenir Next,Segoe UI,Arial,sans-serif;font-weight:800}.analyze-button{justify-content:center;width:100%;min-width:0}.button-label{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.bend-insert-handle{cursor:copy}.waypoint-leader{stroke:#721c24;stroke-width:1.5px;stroke-dasharray:2 3;opacity:.65;pointer-events:none}.bend-insert-handle .point-hit{fill:#0000;stroke:none}.bend-insert-handle>circle:nth-of-type(2){fill:#fffaf0;stroke:#721c24;stroke-width:2px;filter:drop-shadow(0 1px 2px #0004)}.bend-insert-handle path{stroke:#721c24;stroke-width:2px;stroke-linecap:round;fill:none}.label-angle{border-top:1px solid #ddd4c6;gap:5px;padding-top:12px;display:grid}.label-angle-actions{flex-wrap:wrap;gap:6px;display:flex}.helper-warning{color:#4a2d0c;font-weight:600}.bend-controls,.parallel-controls{border-top:1px solid #ddd4c6;gap:6px;padding-top:12px;display:grid}.spacing-control{background:#f3ece0;border:1px solid #ddd4c6;border-radius:9px;gap:5px;padding:10px;display:grid}.spacing-control .helper{line-height:1.45}.scale-control{background:#f3ece0;border:1px solid #ddd4c6;border-radius:9px;gap:5px;padding:10px;display:grid}.scale-control .helper{line-height:1.45}.crossing-card[tabindex]{cursor:help}.crossing-card[tabindex]:focus-visible{outline-offset:2px;outline:2px solid #6f2c33}.balance-tooltip{text-align:left;gap:7px;max-width:290px;padding:10px 12px;line-height:1.5;display:grid}.balance-tooltip p{margin:0}.stop.pending .pending-ring{fill:none;stroke:#6f2c33;stroke-width:2.5px;stroke-dasharray:5 4;opacity:.9}.stop.pending .pending-tag{fill:#6f2c33;text-anchor:middle;letter-spacing:.04em;text-transform:uppercase;paint-order:stroke;stroke:#f7f1e5;stroke-width:3.5px;font:700 10px Segoe UI,Arial,sans-serif}.pick-band{stroke:#6f2c33;stroke-width:2.5px;stroke-dasharray:7 6;stroke-linecap:round;opacity:.85;pointer-events:none}.pick-preview{pointer-events:none}.pick-preview rect{fill:#2f2a24;opacity:.92}.pick-preview text{fill:#fffaf0;text-anchor:middle;font:600 12px Segoe UI,Arial,sans-serif}.route-group.on-preview>path:nth-of-type(2){filter:drop-shadow(0 0 5px #6f2c33);stroke-width:8px}.map-canvas.tool-ticket .background-object,.map-canvas.tool-measure .background-object,.map-canvas.tool-route .background-object,.map-canvas.tool-ticket .background-image,.map-canvas.tool-measure .background-image,.map-canvas.tool-route .background-image{opacity:.45}.highlight-chip{z-index:5;color:#24221e;background:#fffaf0;border:1px solid #d6b8bb;border-radius:999px;align-items:center;gap:7px;padding:4px 4px 4px 10px;font-size:12px;display:flex;position:absolute;top:8px;right:10px;box-shadow:0 2px 8px #0000001f}.highlight-chip svg{color:#5e2229;width:13px;height:13px}.highlight-chip button{width:20px;height:20px}.highlight-chip button svg{color:#24221e;width:12px;height:12px}.uncovered-stops{flex-wrap:wrap;gap:5px;margin-top:7px;display:flex}.uncovered-stop{font:inherit;color:#24221e;cursor:pointer;background:#fffaf0;border:1px solid #ddd4c6;border-radius:999px;padding:3px 9px;font-size:12px}.uncovered-stop:hover{color:#5e2229;background:#f3ece0;border-color:#5e2229}.uncovered-stop:focus-visible{outline-offset:1px;outline:2px solid #6f2c33}.list-note{margin:8px 0 0;font-size:12px;line-height:1.45}.route-preview{flex:none;width:64px;height:18px}.route-preview-large{background:#f7f1e5;border:1px solid #ddd4c6;border-radius:8px;width:100%;height:42px;padding:2px}.shape-row{align-items:center;gap:10px;display:flex}.shape-row select{flex:1}.style-aside{background:#f6efe2;border:1px solid #ddd4c6;border-radius:8px;gap:5px;padding:9px 11px;display:grid}.style-aside .helper{margin:0;line-height:1.45}.settings-foot{border-top:1px solid #ddd4c6;justify-content:space-between;align-items:center;gap:16px;margin-top:4px;padding-top:14px;display:flex}.settings-foot .helper{flex:1;margin:0;line-height:1.45}.settings-start{background:#f6efe2;border:1px solid #ddd4c6;border-radius:8px;margin:0 0 4px;padding:9px 11px}.settings-pair{grid-template-columns:repeat(3,1fr);align-items:end;gap:12px;display:grid}.settings-pair>div{gap:5px;display:grid}.suggest-dialog{grid-template-rows:auto minmax(0,1fr) auto;max-width:660px;height:86vh;max-height:860px;display:grid;overflow:hidden}.suggest-scroll{scrollbar-gutter:stable;align-content:start;gap:10px;padding-right:16px;display:grid;overflow-y:auto}.suggest-scroll .analysis-table-scroll{max-height:none;overflow:visible}.suggest-apply{position:sticky;bottom:0}.style-choices{gap:6px;display:grid}.visually-hidden{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.style-cards{grid-template-columns:repeat(3,1fr);gap:8px;display:grid}.style-card{font:inherit;text-align:left;cursor:pointer;background:#fffaf0;border:1px solid #ddd4c6;border-radius:9px;align-content:start;gap:5px;padding:9px 11px;display:grid}.style-card:hover{background:#f3ece0;border-color:#5e2229}.style-card:focus-visible{outline-offset:1px;outline:2px solid #6f2c33}.style-card.chosen{background:#f6efe2;border-width:2px;border-color:#5e2229;padding:8px 10px}.style-card strong{color:#24221e;font:700 12px Georgia,serif}.style-card>span{color:#24221e;font-size:12px;line-height:1.4}.style-card dl{gap:4px;margin:2px 0 0;display:grid}.style-card dt{letter-spacing:.09em;text-transform:uppercase;color:#24221e;font-size:12px;font-weight:700}.style-card dd{color:#24221e;margin:0;font-size:12px;line-height:1.4}.suggest-apply{background:var(--card);border-top:1px solid #ddd4c6;gap:8px;margin-top:0;padding-top:12px;display:grid}.suggest-apply>div:first-child{gap:5px;display:grid}.suggest-apply-buttons{flex-wrap:wrap;justify-content:flex-end;gap:8px;display:flex}.suggest-controls{grid-template-columns:1fr 1fr;gap:12px;margin-top:4px;display:grid}.suggest-controls>div{gap:5px;display:grid}.suggest-dialog .helper{margin:0;line-height:1.45}.suggest-dialog .checkbox-row{align-items:center;gap:7px;font-size:12px;display:flex}.suggest-table td:nth-child(2),.suggest-table td:nth-child(3){font-variant-numeric:tabular-nums;font-weight:600}.suggest-table td:nth-child(3){color:#5e2229}.suggest-busy{opacity:.55;transition:opacity .12s}.suggest-range{color:#24221e;white-space:normal;font-size:12px;font-weight:400}.suggest-scroll>*{min-width:0}.ticket-mix{gap:10px;display:grid}.mix-fields{grid-template-columns:repeat(3,1fr);gap:12px;display:grid}.mix-fields>div{gap:5px;display:grid}.ticket-mix .helper{margin:0;line-height:1.45}.mix-presets{border-top:1px solid #ddd4c6;gap:6px;padding-top:12px;display:grid}.mix-presets .eyebrow{letter-spacing:.12em;text-transform:uppercase;color:#24221e;margin:0;font-size:12px;font-weight:700}.mix-preset{font:inherit;text-align:left;cursor:pointer;background:#fffaf0;border:1px solid #ddd4c6;border-radius:8px;grid-template-columns:1fr auto;gap:2px 10px;padding:7px 10px;display:grid}.mix-preset:hover{background:#f3ece0;border-color:#5e2229}.mix-preset:focus-visible{outline-offset:1px;outline:2px solid #6f2c33}.mix-preset.chosen{background:#f3ece0;border-color:#5e2229}.mix-preset strong{color:#24221e;font-size:12px}.mix-preset span{color:#5e2229;font-variant-numeric:tabular-nums;font-size:12px;font-weight:700}.mix-preset em{color:#24221e;grid-column:1/-1;font-size:12px;font-style:normal}.mix-link{font:inherit;color:#5e2229;text-underline-offset:2px;cursor:pointer;background:0 0;border:none;padding:0;text-decoration:underline}.coverage-panel{gap:10px;padding-top:14px;display:grid}.coverage-panel .helper{margin:0;line-height:1.45}.coverage-scroll{border:1px solid #d5cbbb;border-radius:8px;max-height:52vh;overflow:auto}.coverage-table{border-collapse:collapse;width:100%;font-size:12px}.coverage-table th,.coverage-table td{text-align:right;white-space:nowrap;border-bottom:1px solid #e9e1d3;padding:4px 7px}.coverage-table th:first-child,.coverage-table td:first-child{text-align:left;width:100%}.coverage-table thead th{color:#24221e;cursor:pointer;-webkit-user-select:none;user-select:none;background:#eee7da;font-weight:700;position:sticky;top:0}.coverage-table thead th:hover{color:#5e2229;background:#e6ddcd}.coverage-table thead th.sorted{color:#5e2229}.coverage-table tbody tr:last-child td{border-bottom:none}.coverage-table tr.coverage-empty td{background:#faf3e4}.coverage-stop{font:inherit;color:#24221e;text-align:left;cursor:pointer;background:0 0;border:none;padding:0}.coverage-stop:hover{color:#5e2229;text-underline-offset:2px;text-decoration:underline}.coverage-stop:disabled{color:#24221e;cursor:default;text-decoration:none}.coverage-count{min-width:20px;font:inherit;color:#5e2229;cursor:pointer;background:0 0;border:none;padding:0;font-weight:700}.coverage-count:hover{text-underline-offset:2px;text-decoration:underline}.coverage-zero{color:#24221e}.coverage-stop:focus-visible,.coverage-count:focus-visible{outline-offset:2px;border-radius:3px;outline:2px solid #6f2c33}.stop-tickets-dialog{max-width:440px}.stop-ticket-rows{gap:5px;max-height:60vh;display:grid;overflow-y:auto}.stop-ticket-row{width:100%;font:inherit;color:#24221e;text-align:left;cursor:pointer;background:#fffaf0;border:1px solid #ddd4c6;border-radius:8px;flex-direction:column;align-items:flex-start;gap:2px;padding:7px 10px;font-size:12px;display:flex}.stop-ticket-row:hover{background:#f3ece0;border-color:#5e2229}.stop-ticket-row:focus-visible{outline-offset:1px;outline:2px solid #6f2c33}.stop-ticket-meta{color:#24221e;font-size:12px}.stop-tickets{border-top:1px solid #ddd4c6;gap:5px;padding-top:12px;display:grid}.stop-ticket-deck{gap:4px;display:grid}.stop-ticket-deck+.stop-ticket-deck{margin-top:8px}.stop-ticket-deck-name{letter-spacing:.09em;text-transform:uppercase;color:#24221e;margin:0;font-size:12px;font-weight:700}.stop-tickets ul{gap:3px;margin:0;padding:0;list-style:none;display:grid}.stop-ticket-link{width:100%;font:inherit;color:#24221e;text-align:left;cursor:pointer;background:#fffaf0;border:1px solid #ddd4c6;border-radius:7px;justify-content:space-between;align-items:baseline;gap:8px;padding:4px 7px;font-size:12px;display:flex}.stop-ticket-link:hover{text-underline-offset:2px;background:#f3ece0;text-decoration:underline}.stop-ticket-link:focus-visible{outline-offset:1px;outline:2px solid #6f2c33}.stop-ticket-link span{color:#24221e;white-space:nowrap;font-size:12px;text-decoration:none}.ticket-set-bar{background:#f3ece0;border:1px solid #ddd4c6;border-radius:9px;gap:8px;margin-top:6px;padding:10px 12px;display:grid}.ticket-set-bar .helper{margin:0;line-height:1.45}.ticket-set-field{grid-template-columns:44px 1fr;align-items:center;gap:8px;display:grid}.ticket-set-buttons{flex-wrap:wrap;gap:6px;display:flex}.bottlenecks{gap:8px;display:grid}.bottleneck-players{align-items:center;gap:8px;display:flex}.bottleneck-players select{width:auto;min-width:130px}.bottleneck-list{gap:5px;display:grid}.bottleneck-row{width:100%;font:inherit;text-align:left;cursor:pointer;background:#fffaf0;border:1px solid #ddd4c6;border-radius:8px;gap:2px;padding:7px 10px;display:grid}.bottleneck-row:hover{background:#f3ece0;border-color:#5e2229}.bottleneck-row:focus-visible{outline-offset:1px;outline:2px solid #6f2c33}.bottleneck-row strong,.bottleneck-row span{color:#24221e;font-size:12px}.route-group.bottleneck>path:nth-of-type(2){filter:drop-shadow(0 0 6px #6f2c33);stroke-width:10px}.analysis-dialog{max-width:640px;max-height:85vh;overflow-y:auto}.analysis-section{margin-top:16px}.analysis-section:first-of-type{margin-top:4px}.analysis-section h3{margin:0 0 4px;font-family:Georgia,serif;font-size:15px}.analysis-table-scroll{border:1px solid #d5cbbb;border-radius:8px;margin-top:8px;overflow-x:auto}.analysis-table{border-collapse:collapse;width:100%;font-size:12px}.analysis-table th,.analysis-table td{text-align:right;white-space:nowrap;border-bottom:1px solid #e9e1d3;padding:6px 9px}.analysis-table th:first-child,.analysis-table td:first-child{text-align:left;background:#fffaf0;min-width:120px;position:sticky;left:0}.analysis-table thead th{color:#24221e;background:#eee7da;font-weight:700}.ticket-head{cursor:pointer;-webkit-user-select:none;user-select:none}.ticket-head:hover{color:#5e2229;background:#e6ddcd}.ticket-head.sorted{color:#5e2229}.analysis-table tbody tr:last-child td{border-bottom:none}.analysis-total-row td{background:#f6f0e2;font-weight:700}.analysis-warning-row td{color:#4a2d0c}.analysis-row-link{cursor:pointer}.analysis-row-link:hover td,.analysis-row-link:focus-visible td{background:#f3ece0}.analysis-row-link:hover td:first-child,.analysis-row-link:focus-visible td:first-child{text-underline-offset:2px;text-decoration:underline}.analysis-row-link:focus-visible{outline:none}.analysis-row-link:focus-visible td{box-shadow:inset 0 2px #6f2c33,inset 0 -2px #6f2c33}.analysis-row-link:focus-visible td:first-child{box-shadow:inset 0 2px #6f2c33,inset 0 -2px #6f2c33,inset 2px 0 #6f2c33}.analysis-row-link:focus-visible td:last-child{box-shadow:inset 0 2px #6f2c33,inset 0 -2px #6f2c33,inset -2px 0 #6f2c33}.map-hint-slot{z-index:4;pointer-events:none;height:0;position:sticky;bottom:22px;left:0}.map-hint-slot.at-top{top:0;bottom:auto}.map-hint{color:#f6f0e2;background:#2f2a24f2;border-radius:9px;gap:2px;max-width:620px;margin:0 auto;padding:9px 34px 9px 30px;display:grid;position:absolute;bottom:0;left:0;right:0;box-shadow:0 6px 20px #2b231c40}.map-hint-slot.at-top .map-hint,.map-hint-slot.at-top .map-hint-bar{top:0;bottom:auto}.map-hint-toggle{color:#f6f0e2;cursor:pointer;pointer-events:auto;background:#ffffff1f;border:0;border-radius:6px;place-items:center;width:22px;height:22px;display:grid;position:absolute;top:6px;right:7px}.map-hint-toggle:hover{background:#fff3}.map-hint-toggle svg{width:14px;height:14px}.map-hint-grip{color:#b9ac93;cursor:grab;pointer-events:auto;touch-action:none;place-items:center;width:18px;height:22px;display:grid;position:absolute;top:6px;left:6px}.map-hint-grip:active{cursor:grabbing;color:#f6f0e2}.map-hint-grip svg{width:14px;height:14px}.map-hint-bar{color:#e6ddcb;background:#2f2a24e0;border-radius:99px;align-items:center;gap:2px;width:fit-content;margin:0 auto;padding:3px 11px 3px 24px;display:flex;position:absolute;bottom:0;left:0;right:0;box-shadow:0 4px 14px #2b231c33}.map-hint-bar .map-hint-grip{height:18px;top:50%;left:5px;transform:translateY(-50%)}.map-hint-bar button{color:inherit;cursor:pointer;pointer-events:auto;background:0 0;border:0;align-items:center;gap:6px;padding:2px 0;font-family:inherit;font-size:12px;display:flex}.map-hint-bar button:hover{color:#fff}.map-hint-bar svg{width:13px;height:13px}.map-hint strong{letter-spacing:.06em;text-transform:uppercase;color:#d8c9a8;font-size:12px}.map-hint span{font-size:12px;line-height:1.55}.map-hint b{color:#fff;font-weight:700}@media print{.map-hint{display:none}}.suggestion-list{flex-direction:column;gap:8px;max-height:60vh;margin:0;padding:0;list-style:none;display:flex;overflow-y:auto}.suggestion-row{background:#fbf8f1;border:1px solid #d5cbbb;border-radius:8px;justify-content:space-between;align-items:center;gap:12px;padding:10px 12px;display:flex}.suggestion-row strong{font-size:13px}.suggestion-row .helper{margin:2px 0 0}.route-group.selected .wagon-slot{cursor:pointer}.wagon-slot-outline.heavy{stroke-width:9px}.wagon-glyph{text-anchor:middle;dominant-baseline:central;fill:#292622;pointer-events:none;font-family:Avenir Next,Segoe UI,Arial,sans-serif;font-weight:800}.locomotive-icon rect,.locomotive-icon circle{fill:#1f1c18}.locomotive-icon .locomotive-window{fill:#fffaf0}.line-style-section{border-top:1px solid #ddd4c6;gap:6px;padding-top:12px;display:grid}.line-style-row{align-items:center;gap:6px;display:flex}.line-style-row [data-slot=native-select-wrapper],.line-style-row select{flex:1;min-width:0}.line-style-editor{background:#f6f0e2;border:1px solid #d5cbbb;border-radius:8px;gap:8px;margin-top:2px;padding:10px;display:grid}.checkbox-row{color:#24221e;text-transform:none;letter-spacing:normal;align-items:center;gap:7px;font-size:12px;display:flex!important}.checkbox-row input{accent-color:#721c24;width:14px;height:14px}.note-box{cursor:grab}.note-box.locked{cursor:default}.note-box:active{cursor:grabbing}.note-box-bg{fill:#fdf1b8;stroke:#c9a227;stroke-width:2px;filter:drop-shadow(0 3px 6px #0003)}.note-box.selected .note-box-bg{stroke:#721c24;stroke-width:2.5px}.note-box-text{box-sizing:border-box;color:#3a2f0f;white-space:pre-wrap;word-break:break-word;pointer-events:none;width:100%;height:100%;padding:10px;font-family:Avenir Next,Segoe UI,Arial,sans-serif;font-size:13px;line-height:1.4;overflow:hidden}.note-fold{cursor:pointer}.note-fold .point-hit{fill:#0000;stroke:none}.note-fold path{fill:none;stroke:#7a6420;stroke-width:1.8px;stroke-linecap:round;stroke-linejoin:round}.note-box-text.one-line{white-space:nowrap;text-overflow:ellipsis;padding:6px 10px;overflow:hidden}.note-resize-handle{cursor:nwse-resize;touch-action:none}.note-resize-handle .point-hit{fill:#0000;stroke:none}.note-resize-handle rect{fill:#f7a928;stroke:#5d3a08;stroke-width:2px;filter:drop-shadow(0 1px 2px #0005)}.style-dialog{max-width:640px;max-height:calc(100vh - 2rem);overflow-y:auto}.settings-layout{grid-template-columns:150px 1fr;gap:18px;min-height:340px;margin-top:10px;display:grid}.settings-nav{border-right:1px solid #ddd4c6;align-content:start;gap:2px;padding-right:12px;display:grid}.settings-nav-item{font:inherit;color:#24221e;text-align:left;cursor:pointer;background:0 0;border:0;border-radius:7px;align-items:center;gap:6px;padding:7px 9px;font-size:12px;display:flex}.settings-nav-item:hover{background:#f3ece0}.settings-nav-item.active{color:#721c24;background:#eee7da;font-weight:650}.settings-nav-item small{color:#24221e;margin-left:auto;font-size:12px}.settings-body{align-content:start;gap:10px;min-width:0;display:grid}.style-columns{grid-template-columns:170px 1fr;gap:14px;display:grid}.style-list{align-content:start;gap:4px;display:grid}.style-entry{width:100%;font:inherit;color:#24221e;text-align:left;cursor:pointer;background:0 0;border:1px solid #0000;border-radius:7px;align-items:center;gap:6px;padding:7px 9px;font-size:12px;display:flex}.style-entry:hover{background:#f3ece0}.style-entry.active{background:#eee7da;border-color:#d5cbbb;font-weight:650}.style-entry small{color:#24221e;margin-left:auto;font-size:12px}.style-fields{background:#f6f0e2;border:1px solid #d5cbbb;border-radius:9px;align-content:start;gap:10px;padding:12px;display:grid}.ticket-points{width:52px;font:inherit;text-align:right;background:#fff;border:1px solid #cec4b6;border-radius:5px;padding:3px 5px;font-size:12px}.analysis-row-active td{font-weight:650;background:#eee7da!important}.route-group.on-ticket>path:nth-of-type(2){filter:drop-shadow(0 0 5px #1f6f4a);stroke-width:9px}.map-canvas.tool-background .background-object.selected .background-point{pointer-events:all}.background-point.active>circle:last-child{fill:#d6402b;stroke:#fff;stroke-width:3px}.map-canvas.tool-background:not(.is-editing) .background-object{pointer-events:auto}@property --tw-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-y{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-z{syntax:"*";inherits:false;initial-value:0}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-leading{syntax:"*";inherits:false}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-tracking{syntax:"*";inherits:false}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-outline-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}@property --tw-duration{syntax:"*";inherits:false}@keyframes spin{to{transform:rotate(360deg)}}@keyframes enter{0%{opacity:var(--tw-enter-opacity,1);transform:translate3d(var(--tw-enter-translate-x,0),var(--tw-enter-translate-y,0),0)scale3d(var(--tw-enter-scale,1),var(--tw-enter-scale,1),var(--tw-enter-scale,1))rotate(var(--tw-enter-rotate,0));filter:blur(var(--tw-enter-blur,0))}}@keyframes exit{to{opacity:var(--tw-exit-opacity,1);transform:translate3d(var(--tw-exit-translate-x,0),var(--tw-exit-translate-y,0),0)scale3d(var(--tw-exit-scale,1),var(--tw-exit-scale,1),var(--tw-exit-scale,1))rotate(var(--tw-exit-rotate,0));filter:blur(var(--tw-exit-blur,0))}}
