*,:before,:after{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }::backdrop{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }*,:before,:after{box-sizing:border-box;border-width:0;border-style:solid;border-color:#e5e7eb}:before,:after{--tw-content: ""}html,:host{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;-o-tab-size:4;tab-size:4;font-family:ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji",Segoe UI Symbol,"Noto Color Emoji";font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent}body{margin:0;line-height:inherit}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;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-feature-settings:normal;font-variation-settings:normal;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-family:inherit;font-feature-settings:inherit;font-variation-settings:inherit;font-size:100%;font-weight:inherit;line-height:inherit;letter-spacing:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dl,dd,h1,h2,h3,h4,h5,h6,hr,figure,p,pre{margin:0}fieldset{margin:0;padding:0}legend{padding:0}ol,ul,menu{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{opacity:1;color:#9ca3af}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}button,[role=button]{cursor:pointer}:disabled{cursor:default}img,svg,video,canvas,audio,iframe,embed,object{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]:where(:not([hidden=until-found])){display:none}.\!container{width:100%!important}.container{width:100%}@media (min-width: 640px){.\!container{max-width:640px!important}.container{max-width:640px}}@media (min-width: 768px){.\!container{max-width:768px!important}.container{max-width:768px}}@media (min-width: 1024px){.\!container{max-width:1024px!important}.container{max-width:1024px}}@media (min-width: 1280px){.\!container{max-width:1280px!important}.container{max-width:1280px}}@media (min-width: 1536px){.\!container{max-width:1536px!important}.container{max-width:1536px}}.pointer-events-auto{pointer-events:auto}.\!visible{visibility:visible!important}.visible{visibility:visible}.static{position:static}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.right-3{right:.75rem}.top-3{top:.75rem}.mb-0\.5{margin-bottom:.125rem}.mb-1{margin-bottom:.25rem}.mt-0\.5{margin-top:.125rem}.mt-1{margin-top:.25rem}.block{display:block}.inline-block{display:inline-block}.inline{display:inline}.flex{display:flex}.inline-flex{display:inline-flex}.table{display:table}.grid{display:grid}.hidden{display:none}.h-1\.5{height:.375rem}.h-7{height:1.75rem}.h-8{height:2rem}.w-1\.5{width:.375rem}.w-14{width:3.5rem}.w-16{width:4rem}.w-40{width:10rem}.w-6{width:1.5rem}.w-7{width:1.75rem}.w-full{width:100%}.flex-1{flex:1 1 0%}.flex-shrink-0,.shrink-0{flex-shrink:0}.transform{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.cursor-not-allowed{cursor:not-allowed}.cursor-pointer{cursor:pointer}.resize-none{resize:none}.resize{resize:both}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.items-start{align-items:flex-start}.items-end{align-items:flex-end}.items-center{align-items:center}.justify-center{justify-content:center}.gap-1{gap:.25rem}.gap-1\.5{gap:.375rem}.gap-2{gap:.5rem}.gap-3{gap:.75rem}.gap-4{gap:1rem}.gap-x-5{-moz-column-gap:1.25rem;column-gap:1.25rem}.gap-x-6{-moz-column-gap:1.5rem;column-gap:1.5rem}.gap-y-1{row-gap:.25rem}.gap-y-3{row-gap:.75rem}.space-y-1>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.25rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.25rem * var(--tw-space-y-reverse))}.space-y-1\.5>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.375rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.375rem * var(--tw-space-y-reverse))}.space-y-6>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(1.5rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1.5rem * var(--tw-space-y-reverse))}.overflow-hidden{overflow:hidden}.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.rounded{border-radius:.25rem}.rounded-full{border-radius:9999px}.rounded-lg{border-radius:.5rem}.rounded-sm{border-radius:.125rem}.border{border-width:1px}.border-b{border-bottom-width:1px}.border-t{border-top-width:1px}.border-none{border-style:none}.border-amber-300{--tw-border-opacity: 1;border-color:rgb(252 211 77 / var(--tw-border-opacity, 1))}.border-amber-400\/60{border-color:#fbbf2499}.border-blue-300{--tw-border-opacity: 1;border-color:rgb(147 197 253 / var(--tw-border-opacity, 1))}.border-blue-500{--tw-border-opacity: 1;border-color:rgb(59 130 246 / var(--tw-border-opacity, 1))}.border-blue-600{--tw-border-opacity: 1;border-color:rgb(37 99 235 / var(--tw-border-opacity, 1))}.border-gray-200\/60{border-color:#e5e7eb99}.border-gray-300{--tw-border-opacity: 1;border-color:rgb(209 213 219 / var(--tw-border-opacity, 1))}.border-gray-500{--tw-border-opacity: 1;border-color:rgb(107 114 128 / var(--tw-border-opacity, 1))}.border-gray-700{--tw-border-opacity: 1;border-color:rgb(55 65 81 / var(--tw-border-opacity, 1))}.border-gray-800{--tw-border-opacity: 1;border-color:rgb(31 41 55 / var(--tw-border-opacity, 1))}.bg-blue-50{--tw-bg-opacity: 1;background-color:rgb(239 246 255 / var(--tw-bg-opacity, 1))}.bg-blue-500{--tw-bg-opacity: 1;background-color:rgb(59 130 246 / var(--tw-bg-opacity, 1))}.bg-blue-600{--tw-bg-opacity: 1;background-color:rgb(37 99 235 / var(--tw-bg-opacity, 1))}.bg-gray-100{--tw-bg-opacity: 1;background-color:rgb(243 244 246 / var(--tw-bg-opacity, 1))}.bg-gray-300{--tw-bg-opacity: 1;background-color:rgb(209 213 219 / var(--tw-bg-opacity, 1))}.bg-gray-700{--tw-bg-opacity: 1;background-color:rgb(55 65 81 / var(--tw-bg-opacity, 1))}.bg-gray-900{--tw-bg-opacity: 1;background-color:rgb(17 24 39 / var(--tw-bg-opacity, 1))}.bg-gray-900\/80{background-color:#111827cc}.bg-transparent{background-color:transparent}.bg-white{--tw-bg-opacity: 1;background-color:rgb(255 255 255 / var(--tw-bg-opacity, 1))}.p-3{padding:.75rem}.p-6{padding:1.5rem}.px-2{padding-left:.5rem;padding-right:.5rem}.px-2\.5{padding-left:.625rem;padding-right:.625rem}.px-3{padding-left:.75rem;padding-right:.75rem}.px-4{padding-left:1rem;padding-right:1rem}.py-1{padding-top:.25rem;padding-bottom:.25rem}.py-1\.5{padding-top:.375rem;padding-bottom:.375rem}.py-2{padding-top:.5rem;padding-bottom:.5rem}.pt-3{padding-top:.75rem}.text-center{text-align:center}.font-mono{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace}.text-\[10px\]{font-size:10px}.text-base{font-size:1rem;line-height:1.5rem}.text-sm{font-size:.875rem;line-height:1.25rem}.text-xs{font-size:.75rem;line-height:1rem}.font-medium{font-weight:500}.font-semibold{font-weight:600}.uppercase{text-transform:uppercase}.capitalize{text-transform:capitalize}.leading-none{line-height:1}.tracking-wider{letter-spacing:.05em}.text-amber-600{--tw-text-opacity: 1;color:rgb(217 119 6 / var(--tw-text-opacity, 1))}.text-blue-500{--tw-text-opacity: 1;color:rgb(59 130 246 / var(--tw-text-opacity, 1))}.text-blue-700{--tw-text-opacity: 1;color:rgb(29 78 216 / var(--tw-text-opacity, 1))}.text-gray-300{--tw-text-opacity: 1;color:rgb(209 213 219 / var(--tw-text-opacity, 1))}.text-gray-400{--tw-text-opacity: 1;color:rgb(156 163 175 / var(--tw-text-opacity, 1))}.text-gray-500{--tw-text-opacity: 1;color:rgb(107 114 128 / var(--tw-text-opacity, 1))}.text-gray-600{--tw-text-opacity: 1;color:rgb(75 85 99 / var(--tw-text-opacity, 1))}.text-gray-800{--tw-text-opacity: 1;color:rgb(31 41 55 / var(--tw-text-opacity, 1))}.text-gray-900{--tw-text-opacity: 1;color:rgb(17 24 39 / var(--tw-text-opacity, 1))}.text-red-500{--tw-text-opacity: 1;color:rgb(239 68 68 / var(--tw-text-opacity, 1))}.text-white{--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity, 1))}.opacity-30{opacity:.3}.shadow{--tw-shadow: 0 1px 3px 0 rgb(0 0 0 / .1), 0 1px 2px -1px rgb(0 0 0 / .1);--tw-shadow-colored: 0 1px 3px 0 var(--tw-shadow-color), 0 1px 2px -1px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.outline{outline-style:solid}.blur{--tw-blur: blur(8px);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)}.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{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-all{transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-colors{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.ease-out{transition-timing-function:cubic-bezier(0,0,.2,1)}:root{color-scheme:light;--bg: #ffffff;--bg-secondary: #f7f8fa;--bg-tertiary: #eaecf0;--bg-inset: #f2f4f7;--text-primary: #1d2939;--text-secondary: #475467;--text-muted: #98a2b3;--text-faint: #d0d5dd;--border: #e4e7ec;--border-strong: #d0d5dd;--blue: #2563eb;--blue-hover: #1d4ed8;--blue-light: #eff4ff;--blue-muted: rgba(37, 99, 235, .12);--red: #e03137;--red-hover: #c22828;--red-light: #fef3f2;--red-glow: rgba(224, 49, 55, .1);--green: #12b76a;--green-light: #ecfdf3;--amber: #f59e0b;--yellow: #ca8a04;--yellow-bg: #fefce8;--tl-past: var(--green);--tl-future: var(--blue);--tl-tbd: var(--amber);--purple: #7c3aed;--purple-light: #f5f3ff;--teal: #0d9488;--teal-light: #f0fdfa;--indigo: #4f46e5;--indigo-light: #eef2ff;--rose: #e11d48;--violet: #8b5cf6;--shadow-xs: 0 1px 2px rgba(16, 24, 40, .04);--shadow-sm: 0 1px 3px rgba(16, 24, 40, .06), 0 1px 2px rgba(16, 24, 40, .04);--shadow-md: 0 4px 8px -2px rgba(16, 24, 40, .08), 0 2px 4px -2px rgba(16, 24, 40, .04);--shadow-lg: 0 12px 24px -4px rgba(16, 24, 40, .08), 0 8px 16px -4px rgba(16, 24, 40, .03);--shadow-xl: 0 24px 48px -12px rgba(16, 24, 40, .18);--radius-sm: 3px;--radius-md: 4px;--radius-lg: 6px;--radius-xl: 8px;--rail-width: 264px;--sq-drawer-width: 55vw;--lp-drawer-width: 70vw;--sim-drawer-width: 80vw;--calc-drawer-width: 40vw;--font-primary: "Plus Jakarta Sans", system-ui, -apple-system, sans-serif;--font-mono: "JetBrains Mono", "SF Mono", "Fira Code", monospace;--ease-out-expo: cubic-bezier(.16, 1, .3, 1);--ease-spring: cubic-bezier(.34, 1.56, .64, 1)}*{scrollbar-width:none}*::-webkit-scrollbar{display:none}body{margin:0;padding:0;background:var(--bg);color:var(--text-primary);font-family:var(--font-primary);font-size:15px;line-height:1.55;letter-spacing:-.01em;min-height:100vh;overflow:hidden;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.login-shell{height:100vh;display:flex;align-items:center;justify-content:center;background:radial-gradient(ellipse at 20% 50%,rgba(37,99,235,.04) 0%,transparent 60%),radial-gradient(ellipse at 80% 20%,rgba(224,49,55,.03) 0%,transparent 50%),var(--bg-secondary)}.login-loading{display:flex;align-items:center;justify-content:center}.login-spinner{width:24px;height:24px;border:2px solid var(--border);border-top-color:var(--blue);border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.login-card{width:100%;max-width:480px;background:var(--bg);border:1px solid var(--border);border-radius:var(--radius-xl);padding:40px 36px 36px;box-shadow:var(--shadow-lg)}.login-brand{text-align:center;margin-bottom:12px}.login-brand-mark{display:inline-flex;align-items:center;justify-content:center;width:48px;height:48px;border-radius:var(--radius-lg);background:var(--blue);color:#fff;font-size:19px;font-weight:700;letter-spacing:-.5px;margin-bottom:16px}.login-brand-logo{display:block;width:140%;max-width:none;height:auto;margin:-28% 0 -30% -20%}.login-brand-title{font-size:24px;font-weight:700;color:var(--text-primary);margin:0;letter-spacing:-.5px}.login-brand-sub{font-size:15px;color:var(--text-muted);margin:4px 0 0}.login-brand-subtitle{font-size:15px;color:var(--text-secondary);margin:6px 0 0;font-weight:400;letter-spacing:0}.login-form{display:flex;flex-direction:column;gap:16px}.login-label{display:flex;flex-direction:column;gap:6px;font-size:14px;font-weight:500;color:var(--text-secondary)}.login-input{width:100%;background:var(--bg);border:1px solid var(--border);border-radius:var(--radius-md);padding:10px 14px;font-size:16px;font-family:inherit;color:var(--text-primary);outline:none;box-sizing:border-box;transition:border-color .15s,box-shadow .15s}.login-input-wrap{position:relative;display:flex;align-items:center}.login-input-wrap .login-input{padding-right:36px}.login-eye{position:absolute;right:10px;background:none;border:none;color:var(--text-muted);cursor:pointer;padding:2px;display:flex;align-items:center;justify-content:center;transition:color .15s}.login-eye:hover{color:var(--text-secondary)}.login-input:focus{border-color:var(--blue);box-shadow:0 0 0 3px var(--blue-muted)}.login-error{color:var(--red);font-size:14px;margin:0}.login-submit{width:100%;padding:11px 24px;border-radius:var(--radius-md);border:none;background:var(--blue);color:#fff;font-size:16px;font-weight:600;font-family:inherit;cursor:pointer;transition:background .15s,transform .1s}.login-submit:hover{background:var(--blue-hover)}.login-submit:active{transform:scale(.98)}.app-universe{display:flex;height:100vh;overflow:hidden;background:var(--bg)}.projects-rail{width:var(--rail-width);flex-shrink:0;display:flex;flex-direction:column;background:var(--bg-secondary);border-right:1px solid var(--border);z-index:10;transition:width .4s var(--ease-out-expo)}.rail-brand{display:flex;align-items:center;gap:10px;padding:16px 16px 12px;border-bottom:1px solid var(--border);flex-shrink:0}.rail-brand-logo{height:28px;width:auto;-o-object-fit:contain;object-fit:contain}.brand-mark{width:32px;height:32px;border-radius:var(--radius-md);background:var(--blue);color:#fff;font-size:14px;font-weight:700;display:flex;align-items:center;justify-content:center;flex-shrink:0;letter-spacing:-.5px}.brand-text{font-size:16px;font-weight:700;color:var(--text-primary);letter-spacing:-.3px}.rail-list{flex:1;overflow-y:auto;padding:8px;display:flex;flex-direction:column;gap:2px}.rail-card{display:flex;align-items:center;gap:10px;padding:10px;border-radius:var(--radius-md);cursor:pointer;border:1px solid transparent;transition:all .2s var(--ease-out-expo);position:relative}.rail-card:hover{background:var(--bg);border-color:var(--border);box-shadow:var(--shadow-xs)}.rail-card.active{background:var(--blue-light);border-color:var(--blue);box-shadow:0 0 0 1px var(--blue-muted)}.rail-card-avatar{width:34px;height:34px;border-radius:var(--radius-sm);background:var(--bg-tertiary);color:var(--text-secondary);font-size:15px;font-weight:600;display:flex;align-items:center;justify-content:center;flex-shrink:0}.rail-card.active .rail-card-avatar{background:var(--blue);color:#fff}.rail-card-info{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}.rail-card-name{font-size:14px;font-weight:600;color:var(--text-primary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.rail-card-phase{font-size:12px;color:var(--text-muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.rail-card-product{font-size:11px;color:var(--text-secondary);font-weight:500;opacity:.7;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.rail-card-bar{display:flex;align-items:center;gap:6px;margin-top:2px}.rail-bar-track{flex:1;height:3px;background:var(--bg-tertiary);border-radius:2px;overflow:hidden}.rail-card.active .rail-bar-track{background:#2563eb33}.rail-bar-fill{height:100%;background:var(--green);border-radius:2px;transition:width .3s var(--ease-out-expo)}.rail-card-pct{font-size:11px;font-weight:600;color:var(--text-muted);min-width:28px;text-align:right}.rail-empty{text-align:center;padding:32px 16px;color:var(--text-muted);font-size:14px}.rail-footer{padding:12px;border-top:1px solid var(--border);flex-shrink:0;display:flex;flex-direction:column;gap:8px}.rail-new-btn{display:flex;align-items:center;justify-content:center;gap:6px;width:100%;padding:9px 16px;border-radius:var(--radius-md);border:1px dashed var(--border-strong);background:var(--bg);color:var(--text-secondary);font-size:14px;font-weight:600;font-family:inherit;cursor:pointer;transition:all .15s}.rail-new-btn:hover{border-color:var(--blue);color:var(--blue);background:var(--blue-light);border-style:solid}.rail-new-icon{font-size:17px;font-weight:400}.rail-footer-links{display:flex;align-items:center;justify-content:center;gap:12px}.rail-link{background:none;border:none;color:var(--text-muted);font-size:13px;font-family:inherit;cursor:pointer;padding:2px 0;transition:color .15s}.rail-link:hover{color:var(--text-secondary)}.rail-actions-btn{display:flex;align-items:center;justify-content:center;gap:6px;width:100%;padding:8px 16px;border-radius:var(--radius-md);border:1px solid var(--border);background:var(--bg);color:var(--text-secondary);font-size:13px;font-weight:600;font-family:inherit;cursor:pointer;transition:all .15s}.rail-actions-btn:hover{border-color:var(--blue);color:var(--blue);background:var(--blue-light)}.rail-actions-btn.active{background:var(--blue-light);color:var(--blue);border-color:var(--blue)}.rail-actions-icon{font-size:14px}.main-stage{flex:1;min-width:0;display:flex;flex-direction:column;overflow:hidden;background:var(--bg);transition:transform .5s var(--ease-out-expo),filter .5s var(--ease-out-expo);transform-origin:center center}.main-stage.sq-open{transform:scale(.97) translate(-2%);filter:brightness(.97);border-radius:var(--radius-lg);overflow:hidden}.stage-empty{flex:1;display:flex;align-items:center;justify-content:center;color:var(--text-muted);font-size:15px}.welcome-scene{flex:1;display:flex;align-items:flex-start;justify-content:center;padding:32px 48px;background:var(--bg);animation:welcomeFade .6s var(--ease-out-expo);overflow-y:auto}@keyframes welcomeFade{0%{opacity:0;transform:scale(.98)}to{opacity:1;transform:scale(1)}}.welcome-content{text-align:center;max-width:420px}.welcome-title{font-size:38px;font-weight:700;color:var(--text-primary);margin:0;letter-spacing:-1px}.welcome-subtitle{font-size:16px;color:var(--text-muted);margin:8px 0 0;line-height:1.6}.htl-view{width:100%;max-width:1100px;display:flex;flex-direction:column;gap:0;animation:welcomeFade .6s var(--ease-out-expo)}.htl-header{display:flex;align-items:flex-end;justify-content:space-between;margin-bottom:20px}.htl-title{font-size:24px;font-weight:700;color:var(--text-primary);margin:0;letter-spacing:-.5px}.htl-header-right{display:flex;align-items:center;gap:8px}.htl-zoom-btn{padding:7px 14px;border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--bg);color:var(--text-secondary);font-size:13px;font-weight:500;font-family:inherit;cursor:pointer;transition:all .15s}.htl-zoom-btn:hover{border-color:var(--border-strong);background:var(--bg-secondary)}.htl-zoom-btn.active{border-color:var(--blue);background:var(--blue-light);color:var(--blue)}.htl-legend{display:flex;flex-wrap:wrap;gap:12px;margin-bottom:12px;padding-left:160px}.htl-legend-item{display:inline-flex;align-items:center;gap:6px;font-size:11px;font-weight:600;color:var(--text-muted);text-transform:uppercase;letter-spacing:.04em}.htl-legend-dot{display:inline-block;width:8px;height:8px;border-radius:50%;background:var(--text-muted);flex-shrink:0}.htl-axis{position:relative;height:28px;margin-left:160px;border-bottom:1px solid var(--border)}.htl-axis-mark{position:absolute;top:0;bottom:0;width:0;border-left:1px solid var(--border)}.htl-axis-label{position:absolute;top:4px;left:6px;font-size:11px;font-weight:600;color:var(--text-muted);white-space:nowrap}.htl-axis-week{position:absolute;top:18px;bottom:0;width:0;border-left:1px dashed var(--bg-tertiary)}.htl-today-line{position:absolute;top:0;bottom:-500px;width:0;border-left:1.5px solid var(--red);z-index:5;pointer-events:none}.htl-today-label{position:absolute;top:4px;left:5px;font-size:10px;font-weight:700;color:var(--red);white-space:nowrap}.htl-rows{display:flex;flex-direction:column}.htl-row{display:flex;align-items:center;height:80px;cursor:pointer;border-bottom:1px solid var(--border);transition:background .12s}.htl-row:hover{background:var(--bg-secondary)}.htl-row-label{width:160px;flex-shrink:0;padding-right:12px;display:flex;align-items:center}.htl-row-name{font-size:14px;font-weight:600;color:var(--text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.htl-row-track{flex:1;position:relative;height:100%}.htl-baseline{position:absolute;top:50%;left:0;right:0;height:2px;background:var(--border);transform:translateY(-50%)}.htl-range-bar{position:absolute;top:50%;height:16px;transform:translateY(-50%);background:#12b76a14;border:1px solid rgba(18,183,106,.25);border-radius:3px;cursor:pointer;z-index:2}.htl-range-bar:hover{background:#12b76a26}.htl-range-text{position:absolute;top:calc(100% + 2px);left:50%;transform:translate(-50%);font-size:10px;font-weight:600;color:var(--green);white-space:nowrap}.htl-point{position:absolute;top:0;transform:translate(-50%);display:flex;flex-direction:column;align-items:center;cursor:pointer;z-index:3}.htl-point:hover{z-index:10}.htl-point:hover .htl-point-dot{transform:scale(1.3);box-shadow:var(--shadow-md)}.htl-point-dot{margin-top:34px;width:12px;height:12px;border-radius:50%;background:var(--blue);border:2px solid var(--bg);box-shadow:var(--shadow-sm);flex-shrink:0;transition:transform .15s,box-shadow .15s}.htl-point-dot.tbd{background:var(--bg);border:2px dashed var(--text-muted);box-shadow:none}.htl-point-label{margin-top:4px;font-size:10px;font-weight:600;color:var(--text-secondary);white-space:nowrap;max-width:100px;overflow:hidden;text-overflow:ellipsis}.htl-point-date{font-size:10px;color:var(--text-muted);white-space:nowrap}.htl-point-tbd .htl-point-date{font-style:italic}.htl-point-above .htl-point-label{margin-top:2px}.htl-point-above .htl-point-dot{margin-top:8px}.htl-edit-popover{position:absolute;top:calc(100% + 4px);left:50%;transform:translate(-50%);background:var(--bg);border:1px solid var(--border);border-radius:var(--radius-sm);padding:6px 8px;box-shadow:var(--shadow-md);z-index:20;white-space:nowrap}.htl-inline-date-form{display:flex;align-items:center;gap:4px;margin-top:4px}.htl-inline-date-input{font-size:12px;font-family:inherit;padding:2px 4px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg);color:var(--text-primary);width:130px}.htl-inline-date-input:focus{outline:none;border-color:var(--blue);box-shadow:0 0 0 2px var(--blue-muted)}.htl-inline-date-save{font-size:11px;font-family:inherit;font-weight:600;padding:2px 8px;border:none;border-radius:var(--radius-sm);background:var(--blue);color:#fff;cursor:pointer}.htl-inline-date-save:hover{background:var(--blue-hover)}.htl-inline-date-sep{font-size:11px;color:var(--text-muted)}.htl-row-today{position:absolute;top:0;bottom:0;width:0;border-left:1.5px solid var(--red);opacity:.15;pointer-events:none}.htl-row-dates-only .htl-baseline{opacity:.4}.htl-row-dates-only .htl-row-name{color:var(--text-secondary)}.htl-row-dates-only .htl-point-dot{opacity:.65}.dates-only-tag{display:inline-block;font-size:9px;font-weight:700;color:var(--yellow);background:var(--yellow-bg);border-radius:var(--radius-sm);padding:2px 6px;margin-left:6px;vertical-align:middle;letter-spacing:.04em;text-transform:uppercase}.modal-dates-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px 16px}.modal-dates-range{display:flex;flex-direction:column;gap:4px}.modal-dates-range span{font-size:12px;color:var(--text-secondary);font-weight:600}.metrics-col-phase-historical{color:var(--text-muted);font-style:italic}.danger-text{color:var(--red)}.welcome-cta{display:inline-flex;align-items:center;gap:6px;padding:8px 18px;border-radius:var(--radius-sm);border:none;background:var(--blue);color:#fff;font-size:14px;font-weight:600;font-family:inherit;cursor:pointer;transition:background .15s,transform .1s,box-shadow .15s;box-shadow:0 2px 8px #2563eb40}.welcome-content .welcome-cta{margin-top:32px;padding:12px 28px;font-size:16px}.welcome-cta:hover{background:var(--blue-hover);box-shadow:0 4px 16px #2563eb4d}.welcome-cta:active{transform:scale(.97)}.actions-scene{flex:1;display:flex;flex-direction:column;padding:24px 32px;overflow-y:auto;animation:welcomeFade .6s var(--ease-out-expo)}.actions-header{margin-bottom:16px}.actions-title{font-size:24px;font-weight:700;color:var(--text-primary);margin:0}.actions-owner-bar{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:16px}.actions-owner-chip{padding:6px 14px;border-radius:20px;border:1px solid var(--border-strong);background:var(--bg);color:var(--text-secondary);font-size:13px;font-family:inherit;cursor:pointer;transition:all .15s}.actions-owner-chip:hover{border-color:var(--blue);color:var(--blue);background:var(--blue-light)}.actions-owner-chip.active{background:var(--blue);color:var(--bg);border-color:var(--blue)}.actions-note{font-size:13px;color:var(--text-muted);margin:0 0 16px;font-style:italic}.actions-task-list{display:flex;flex-direction:column;gap:20px}.actions-group{display:flex;flex-direction:column;gap:6px}.actions-group-title{font-size:15px;font-weight:600;color:var(--text-primary);margin:0 0 4px;padding-bottom:4px;border-bottom:1px solid var(--border)}.actions-task-card{display:flex;align-items:center;gap:10px;padding:8px 12px;background:var(--bg);border:1px solid var(--border);border-radius:var(--radius-md)}.actions-task-card.clickable{cursor:pointer}.actions-task-card:hover{border-color:var(--border-strong);box-shadow:var(--shadow-xs)}.actions-task-phase{font-size:11px;color:var(--text-muted);background:var(--bg-inset);padding:2px 8px;border-radius:10px;flex-shrink:0}.actions-task-title{font-size:13px;color:var(--text-secondary)}.actions-empty-hint,.actions-no-tasks,.actions-select-hint{font-size:14px;color:var(--text-muted);margin-top:24px}.metrics-kpi-row{display:flex;gap:16px;margin-bottom:28px;flex-wrap:wrap}.metrics-kpi-card{flex:1;min-width:140px;display:flex;flex-direction:column;gap:2px;background:var(--surface-2, var(--bg-secondary));border:1px solid var(--border);border-radius:8px;padding:16px 18px}.metrics-kpi-value{font-size:28px;font-weight:700;color:var(--text-primary);line-height:1}.metrics-kpi-label{font-size:12px;font-weight:600;color:var(--text-secondary);margin-top:4px}.metrics-kpi-sub{font-size:11px;color:var(--text-muted)}.metrics-table-wrap{overflow-x:auto;border:1px solid var(--border);border-radius:8px}.metrics-table{width:100%;border-collapse:collapse;font-size:13px}.metrics-table th{background:var(--bg-secondary);color:var(--text-muted);font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.04em;padding:10px 14px;text-align:left;border-bottom:1px solid var(--border);white-space:nowrap}.metrics-table td{padding:10px 14px;border-bottom:1px solid var(--border);vertical-align:middle}.metrics-table-row:last-child td{border-bottom:none}.metrics-table-row:hover{background:var(--blue-light);cursor:pointer}.metrics-col-name{font-weight:600;color:var(--text-primary);white-space:nowrap}.metrics-col-phase{color:var(--text-secondary);white-space:nowrap}.metrics-col-pct{min-width:120px}.metrics-pct-bar{height:4px;background:var(--border);border-radius:2px;overflow:hidden;margin-bottom:3px}.metrics-pct-fill{height:100%;background:var(--blue);border-radius:2px;transition:width .3s}.metrics-pct-label{font-size:11px;color:var(--text-muted)}.metrics-col-num{font-family:var(--font-mono, monospace);color:var(--text-secondary);text-align:center;white-space:nowrap}.metrics-col-firstpass,.metrics-col-sat{white-space:nowrap}.metrics-toggle-group{display:flex;gap:4px}.metrics-toggle-btn{padding:3px 10px;border-radius:4px;border:1px solid var(--border-strong);background:var(--bg);color:var(--text-muted);font-size:11px;font-weight:600;font-family:inherit;cursor:pointer;transition:all .12s}.metrics-toggle-btn:hover{border-color:var(--blue);color:var(--blue)}.metrics-toggle-btn.pass{background:#d1fae5;border-color:#6ee7b7;color:#065f46}.metrics-toggle-btn.fail{background:#fee2e2;border-color:#fca5a5;color:#991b1b}.metrics-stars{display:flex;gap:2px}.metrics-star{background:none;border:none;padding:0 1px;font-size:16px;color:var(--border-strong);cursor:pointer;transition:color .1s;line-height:1;font-family:inherit}.metrics-star.filled,.metrics-star:hover{color:#f59e0b}.metrics-empty{text-align:center;color:var(--text-muted);padding:24px;font-size:14px}.kanban-scene{flex:1;display:flex;flex-direction:column;min-height:0;animation:sceneEnter .55s var(--ease-out-expo)}@keyframes sceneEnter{0%{opacity:0;transform:perspective(1200px) rotateY(-4deg) translate(-30px) scale(.97)}to{opacity:1;transform:perspective(1200px) rotateY(0) translate(0) scale(1)}}.error-banner{display:flex;align-items:center;justify-content:space-between;padding:10px 16px;margin:12px 16px 0;background:var(--red-light);border:1px solid rgba(224,49,55,.2);border-radius:var(--radius-md);color:var(--red);font-size:14px;font-weight:500}.error-banner button{background:none;border:none;color:var(--red);cursor:pointer;font-size:17px;padding:0 4px;line-height:1}.kanban-wrapper{display:flex;flex-direction:column;flex:1;min-height:0;padding:16px 20px 0;gap:12px}.kanban-header{display:flex;align-items:center;justify-content:space-between;padding-bottom:12px;border-bottom:1px solid var(--border);flex-shrink:0}.kanban-back-btn{background:none;border:none;color:var(--text-muted);font-size:13px;font-weight:500;font-family:inherit;cursor:pointer;padding:0;display:flex;align-items:center;gap:4px;transition:color .15s}.kanban-back-btn:hover{color:var(--blue)}.kanban-header-left{display:flex;flex-direction:column;gap:2px;min-width:0}.kanban-title{font-size:22px;font-weight:700;color:var(--text-primary);margin:0;letter-spacing:-.5px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.kanban-subtitle{font-size:13px;color:var(--text-muted);font-weight:400}.kanban-header-right{display:flex;align-items:center;gap:8px}.kanban-action{padding:6px 14px;border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--bg);color:var(--text-secondary);font-size:13px;font-weight:500;font-family:inherit;cursor:pointer;transition:all .15s}.kanban-action:hover{border-color:var(--border-strong);background:var(--bg-secondary)}.tool-card-summary{display:flex;flex-wrap:wrap;gap:4px;padding:2px 0 0 18px}.tool-card-summary span{font-size:11px;color:var(--text-muted);background:var(--bg-secondary);padding:1px 6px;border-radius:var(--radius-sm)}.tool-summary-modal .tool-open-btn{display:inline-flex;align-items:center;gap:6px;padding:8px 16px;background:var(--blue);color:#fff;border:none;border-radius:var(--radius-sm);font-size:13px;font-weight:600;font-family:inherit;cursor:pointer;transition:background .15s}.tool-summary-modal .tool-open-btn:hover{background:color-mix(in srgb,var(--blue) 85%,#000)}.tool-summary-toggle-row{display:flex;gap:4px;margin-bottom:8px}.tool-summary-toggle{padding:4px 12px;border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--bg);color:var(--text-muted);font-size:12px;font-weight:600;font-family:inherit;cursor:pointer;transition:all .15s}.tool-summary-toggle.active{background:var(--blue);color:#fff;border-color:var(--blue)}.kanban-board{display:flex;gap:8px;flex:1;min-height:0;overflow-x:auto;padding:0 0 16px;align-items:stretch}.gantt{flex-shrink:0;background:var(--bg);border:1px solid var(--border);border-radius:var(--radius-md);overflow:hidden;box-shadow:var(--shadow-xs)}.gantt-track{position:relative;height:86px;margin:0 20px}.gantt-baseline{position:absolute;top:34px;left:0;right:0;height:2px;background:var(--border)}.gantt-grid-line{position:absolute;top:0;bottom:0;width:0;border-left:1px dashed var(--bg-tertiary)}.gantt-grid-label{position:absolute;top:2px;left:4px;font-size:10px;font-weight:500;color:var(--text-faint);white-space:nowrap}.gantt-range-bar{position:absolute;top:27px;height:16px;background:#12b76a14;border:1px solid rgba(18,183,106,.25);border-radius:3px;cursor:pointer}.gantt-range-text{position:absolute;top:18px;left:50%;transform:translate(-50%);font-size:10px;font-weight:600;color:var(--green);white-space:nowrap;max-width:100%;overflow:hidden;text-overflow:ellipsis}.gantt-point{position:absolute;top:0;transform:translate(-50%);display:flex;flex-direction:column;align-items:center;cursor:pointer;z-index:2}.gantt-point-above .gantt-point-label,.gantt-point-above .gantt-dot{margin-top:2px}.gantt-range-above .gantt-range-text{top:-16px}.gantt-dot{margin-top:28px;width:12px;height:12px;border-radius:50%;background:var(--blue);border:2px solid var(--bg);box-shadow:var(--shadow-sm)}.gantt-point-label{margin-top:4px;font-size:10px;font-weight:600;color:var(--text-secondary);white-space:nowrap;max-width:100px;overflow:hidden;text-overflow:ellipsis}.gantt-point-date{font-size:10px;color:var(--text-muted);white-space:nowrap}.gantt-today{position:absolute;top:0;bottom:14px;width:0;border-left:1.5px solid var(--red);z-index:3}.gantt-today-label{position:absolute;top:2px;left:4px;font-size:9px;font-weight:700;color:var(--red);white-space:nowrap}.phase-column{display:flex;flex-direction:column;min-width:248px;max-width:268px;flex-shrink:0;background:var(--bg-secondary);border:1px solid var(--border);border-radius:var(--radius-md);overflow:hidden}.phase-column-header{padding:10px 12px;cursor:pointer;border-bottom:1px solid var(--border);display:flex;flex-direction:column;gap:6px;flex-shrink:0;background:var(--bg);transition:background .15s}.phase-column-header:hover{background:var(--bg-secondary)}.phase-header-top{display:flex;align-items:center;gap:8px;min-width:0}.phase-number{width:22px;height:22px;border-radius:var(--radius-sm);background:var(--bg-tertiary);color:var(--text-muted);font-size:12px;font-weight:700;display:flex;align-items:center;justify-content:center;flex-shrink:0}.phase-name{font-size:14px;font-weight:600;color:var(--text-primary);line-height:1.2;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.phase-name-editable{cursor:text;border-bottom:1px dashed var(--border);padding-bottom:1px;transition:border-color .15s}.phase-name-editable:hover{border-bottom-color:var(--blue)}.phase-header-meta{display:flex;align-items:center;justify-content:space-between}.phase-progress{font-size:12px;color:var(--text-muted);font-weight:500}.task-owner-badge{padding:2px 8px;border-radius:4px;background:var(--bg-tertiary);font-size:11px;font-weight:600;color:var(--text-muted);letter-spacing:.3px}.task-owner-badge.small{font-size:11px;padding:1px 6px}.progress-bar{width:100%;height:4px;background:var(--bg-tertiary);border-radius:2px;overflow:hidden}.progress-bar.compact{height:3px}.progress-fill{height:100%;background:var(--green);border-radius:2px;transition:width .3s var(--ease-out-expo)}.raci-panel{padding:10px 12px;border-bottom:1px solid var(--border);display:flex;flex-direction:column;gap:4px;background:var(--bg-inset);flex-shrink:0}.raci-row{display:flex;align-items:center;gap:8px;font-size:13px;color:var(--text-secondary)}.raci-tag{width:20px;height:20px;border-radius:4px;display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:700;flex-shrink:0}.raci-tag.responsible{background:var(--blue-light);color:var(--blue)}.raci-tag.accountable{background:#fffbeb;color:#b45309}.raci-tag.informed{background:var(--bg-tertiary);color:var(--text-muted)}.raci-tag.supporting{background:var(--green-light);color:var(--green)}.raci-summary{font-size:12px;color:var(--text-muted);margin-top:4px;line-height:1.5}.raci-summary-edit{font-size:12px;color:var(--text-secondary);margin-top:4px;line-height:1.5;width:100%;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg);padding:6px 8px;resize:vertical;font-family:inherit;box-sizing:border-box}.raci-summary-edit:focus{border-color:var(--blue);outline:none}.owner-field{display:flex;align-items:center;gap:8px;position:relative;margin-bottom:6px}.owner-label{font-size:11px;color:var(--text-muted);font-weight:600;text-transform:uppercase;letter-spacing:.5px;flex-shrink:0}.owner-input-wrap{position:relative;flex:1}.owner-input{width:100%;font-size:12px;padding:4px 24px 4px 8px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg);color:var(--text-secondary);font-family:inherit;box-sizing:border-box}.owner-input:focus{border-color:var(--blue);outline:none}.owner-input::-moz-placeholder{color:var(--text-faint)}.owner-input::placeholder{color:var(--text-faint)}.owner-clear{position:absolute;right:2px;top:0;bottom:0;display:flex;align-items:center;justify-content:center;background:none;border:none;color:var(--text-muted);cursor:pointer;font-size:18px;width:20px;padding:0;line-height:0}.owner-clear:hover{color:var(--text-primary)}.owner-dropdown{position:absolute;top:100%;left:0;right:0;background:var(--bg);border:1px solid var(--border-strong);border-radius:var(--radius-md);box-shadow:var(--shadow-md);z-index:50;max-height:160px;overflow-y:auto;list-style:none;margin:2px 0 0;padding:4px 0}.owner-dropdown-item{display:flex;align-items:center;justify-content:space-between;padding:6px 10px;font-size:12px;color:var(--text-secondary);cursor:pointer}.owner-dropdown-item:hover{background:var(--blue-light)}.owner-dropdown-item span{flex:1}.owner-dropdown-remove{background:none;border:none;color:var(--text-muted);cursor:pointer;font-size:18px;padding:0;width:20px;line-height:0;display:flex;align-items:center;justify-content:center;opacity:0;transition:opacity .1s}.owner-dropdown-item:hover .owner-dropdown-remove{opacity:1}.owner-dropdown-remove:hover{color:var(--red)}.order-calc{padding:8px 10px;border-bottom:1px solid var(--border);background:var(--bg-inset);display:flex;flex-direction:column;gap:8px}.calc-type-toggle{display:flex;border:1px solid var(--border);border-radius:var(--radius-sm);overflow:hidden}.calc-type-btn{flex:1;padding:4px 8px;font-size:12px;font-weight:600;font-family:inherit;border:none;background:transparent;color:var(--text-muted);cursor:pointer;transition:all .12s}.calc-type-btn.active{background:var(--blue);color:#fff}.calc-inputs{display:flex;flex-direction:column;gap:4px}.calc-field{display:flex;align-items:center;justify-content:space-between;gap:6px}.calc-label{font-size:12px;color:var(--text-secondary);font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.calc-input{width:52px;background:var(--bg);border:1px solid var(--border);border-radius:var(--radius-sm);padding:3px 6px;font-size:13px;font-family:inherit;color:var(--text-primary);text-align:right;outline:none;box-sizing:border-box;transition:border-color .15s}.calc-input:focus{border-color:var(--blue)}.calc-results,.calc-routes{display:flex;flex-direction:column;gap:3px}.calc-results-title{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--text-muted)}.calc-results-grid{display:flex;flex-direction:column;gap:1px;background:var(--bg);border:1px solid var(--border);border-radius:var(--radius-sm);overflow:hidden}.calc-result-row{display:flex;align-items:center;justify-content:space-between;padding:4px 8px;font-size:12px;color:var(--text-secondary);background:var(--bg)}.calc-result-row:nth-child(2n){background:var(--bg-inset)}.calc-result-row.calc-total{border-top:1px solid var(--border);font-weight:600;color:var(--text-primary)}.calc-qty{font-weight:700;color:var(--text-primary);font-variant-numeric:tabular-nums}.calc-result-row.calc-overridden{background:var(--yellow-bg)}.calc-override-badge{margin-left:4px;font-size:11px;color:var(--yellow)}.calc-computed-hint{margin-left:6px;font-size:11px;font-weight:400;color:var(--text-muted)}.calc-override-note{padding:2px 12px 6px;font-size:11px;color:var(--yellow);background:var(--yellow-bg);font-style:italic}.calc-override-note-inline{font-size:11px;color:var(--yellow);font-style:italic}.calc-edit-row{flex-direction:column!important;align-items:flex-start!important;gap:6px;padding:8px 12px!important}.calc-edit-controls{display:flex;flex-direction:column;gap:6px;width:100%}.calc-edit-input{width:80px;padding:4px 8px;font-size:13px;font-family:inherit;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg);color:var(--text-primary)}.calc-edit-note{width:100%;padding:4px 8px;font-size:12px;font-family:inherit;border:1px solid var(--yellow);border-radius:var(--radius-sm);background:var(--yellow-bg);color:var(--text-primary)}.calc-edit-note::-moz-placeholder{color:var(--yellow);opacity:.7}.calc-edit-note::placeholder{color:var(--yellow);opacity:.7}.calc-edit-btns{display:flex;gap:4px}.calc-edit-save,.calc-edit-cancel{padding:2px 8px;font-size:13px;font-family:inherit;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg);cursor:pointer;color:var(--text-primary)}.calc-edit-save:disabled{opacity:.4;cursor:not-allowed}.calc-edit-save:not(:disabled):hover{background:var(--green-light);border-color:var(--green);color:var(--green)}.calc-edit-cancel:hover{background:var(--bg-inset)}.calc-revert-btn{padding:4px 10px;font-size:11px;font-weight:500;font-family:inherit;color:var(--text-muted);background:none;border:1px solid var(--border);border-radius:var(--radius-sm);cursor:pointer;align-self:flex-start;transition:all .15s}.calc-revert-btn:hover{color:var(--red);border-color:var(--red);background:var(--red-light)}.calc-action-row{display:flex;gap:6px;align-items:center}.calc-history-btn{padding:4px 10px;font-size:11px;font-weight:500;font-family:inherit;color:var(--text-muted);background:none;border:1px solid var(--border);border-radius:var(--radius-sm);cursor:pointer;transition:all .15s}.calc-history-btn:hover{color:var(--blue);border-color:var(--blue);background:var(--blue-light)}.calc-history-panel{display:flex;flex-direction:column;gap:6px;padding:8px;background:var(--bg-tertiary);border-radius:var(--radius-sm);border:1px solid var(--border)}.calc-history-title{font-size:11px;font-weight:600;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.04em}.calc-history-list{display:flex;flex-direction:column;gap:4px;max-height:180px;overflow-y:auto}.calc-history-entry{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:4px 6px;border-radius:var(--radius-sm);background:var(--bg)}.calc-history-info{display:flex;flex-direction:column;gap:1px;min-width:0}.calc-history-date{font-size:11px;font-weight:500;color:var(--text-primary)}.calc-history-summary{font-size:10px;color:var(--text-muted)}.calc-history-restore{flex-shrink:0;padding:2px 8px;font-size:10px;font-weight:500;font-family:inherit;color:var(--blue);background:none;border:1px solid var(--blue-muted);border-radius:var(--radius-sm);cursor:pointer;transition:all .15s}.calc-history-restore:hover{background:var(--blue-light);border-color:var(--blue)}.phase-column-body{display:flex;flex-direction:column;gap:3px;padding:6px;flex:1;min-height:0;overflow-y:auto}.task-card{background:var(--bg);border:1px solid var(--border);border-radius:var(--radius-sm);padding:8px 10px;display:flex;flex-direction:column;gap:4px;transition:border-color .15s,box-shadow .15s,background .15s}.task-card:hover{border-color:var(--border-strong);box-shadow:var(--shadow-xs)}.task-card.clickable{cursor:pointer}.task-card.completed{opacity:.55}.task-card.completed:hover{opacity:.75}.task-card.milestone{border-left:3px solid var(--blue)}.task-card.milestone.completed{border-left-color:var(--green)}.task-card.tool-task{border-left:3px solid var(--red);background:color-mix(in srgb,var(--red) 4%,var(--bg))}.task-card.tool-task .task-action-label{color:var(--red);font-weight:600}.task-card.removed{opacity:.35;background:transparent;border-color:var(--bg-tertiary);padding:5px 10px}.task-card.removed .task-card-top{align-items:center}.removed-title{font-size:12px;color:var(--text-muted);text-decoration:line-through}.removed-separator{height:1px;background:var(--border);margin:4px 0}.task-card-top{display:flex;align-items:flex-start;gap:8px;min-width:0}.task-completion-dot{flex-shrink:0;width:10px;height:10px;border-radius:50%;border:2px solid var(--border-strong);margin-top:2px;transition:all .15s}.task-completion-dot.done{background:var(--green);border-color:var(--green)}.task-title{font-size:13.5px;color:var(--text-primary);line-height:1.3;font-weight:500;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;text-overflow:ellipsis;word-break:break-word}.task-title.done{text-decoration:line-through;color:var(--text-muted)}.task-action-label{font-size:12px;font-weight:500;color:var(--blue)}.task-action-label.muted{color:var(--text-muted)}.milestone-date-inline{font-size:11px;color:var(--blue);padding-left:18px;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.task-closed-info{display:flex;flex-direction:column;gap:2px;padding-left:18px}.task-note-inline{font-size:11px;color:var(--text-muted);overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;line-height:1.3}.task-link-inline{font-size:11px;color:var(--blue);text-decoration:none;font-weight:500}.task-link-inline:hover{color:var(--blue-hover);text-decoration:underline}.task-card-bottom{display:flex;align-items:center;flex-wrap:wrap;gap:4px}.task-remove-btn{flex-shrink:0;margin-left:auto;background:none;border:none;color:var(--text-faint);font-size:15px;line-height:1;cursor:pointer;padding:0 2px;opacity:0;transition:opacity .15s,color .15s}.task-card:hover .task-remove-btn{opacity:1}.task-remove-btn:hover{color:var(--red)}.task-action-btn{font-size:12px;font-weight:600;color:var(--blue);background:none;border:none;padding:2px 6px;border-radius:4px;cursor:pointer;font-family:inherit}.task-action-btn:hover{background:var(--blue-light)}.task-action-btn.view{color:var(--text-muted)}.task-action-btn.view:hover{color:var(--text-secondary);background:var(--bg-tertiary)}.add-task-btn{margin:2px 6px 6px;font-size:12px;font-weight:500;font-family:inherit;color:var(--text-muted);padding:5px;border-radius:var(--radius-sm);border:1px dashed var(--border);text-align:center;cursor:pointer;background:transparent;transition:all .15s}.add-task-btn:hover{color:var(--text-secondary);border-color:var(--border-strong);background:var(--bg)}.add-task-btn.subtle{border:none;color:var(--text-faint);font-size:19px;padding:2px}.add-task-btn.subtle:hover{color:var(--text-muted)}.inline-add-task{margin:2px 6px 6px;display:flex;flex-direction:column;gap:4px}.inline-add-task input{width:100%;background:var(--bg);border:1px solid var(--border);border-radius:var(--radius-sm);padding:5px 8px;font-size:13px;font-family:inherit;color:var(--text-primary);outline:none;box-sizing:border-box;transition:border-color .15s}.inline-add-task input:focus{border-color:var(--blue)}.inline-add-row{display:flex;align-items:center;gap:4px}.type-toggle{display:flex;border:1px solid var(--border);border-radius:4px;overflow:hidden}.type-toggle button{padding:2px 8px;font-size:11px;font-family:inherit;border:none;background:transparent;color:var(--text-muted);cursor:pointer}.type-toggle button.active{background:var(--bg-tertiary);color:var(--text-primary)}.inline-add-confirm{padding:2px 10px;font-size:11px;border:none;border-radius:4px;background:var(--blue);color:#fff;font-weight:600;font-family:inherit;cursor:pointer}.inline-add-cancel{background:none;border:none;color:var(--text-muted);cursor:pointer;font-size:15px;padding:0 4px}.add-section-column{min-width:60px;display:flex;flex-direction:column;align-items:center;justify-content:flex-start;padding-top:20px;flex-shrink:0}.add-section-btn{width:34px;height:34px;border-radius:var(--radius-md);border:1px dashed var(--border);background:transparent;color:var(--text-faint);font-size:19px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .15s}.add-section-btn:hover{border-color:var(--border-strong);color:var(--text-muted);background:var(--bg-secondary)}.add-section-menu{display:flex;flex-direction:column;gap:4px;background:var(--bg);border:1px solid var(--border);border-radius:var(--radius-md);padding:8px;min-width:180px;box-shadow:var(--shadow-md)}.add-section-option{text-align:left;padding:7px 10px;border-radius:var(--radius-sm);border:none;background:transparent;color:var(--text-primary);font-size:13px;font-family:inherit;cursor:pointer;transition:background .1s}.add-section-option:hover:not(:disabled){background:var(--bg-secondary)}.add-section-option:disabled{color:var(--text-faint);cursor:not-allowed}.add-section-cancel{align-self:flex-end;background:none;border:none;color:var(--text-muted);cursor:pointer;font-size:15px;padding:2px 4px}.phase-remove-btn{background:none;border:none;color:var(--text-faint);font-size:15px;cursor:pointer;padding:0 2px;margin-left:auto;opacity:0;transition:opacity .15s,color .15s}.phase-column-header:hover .phase-remove-btn{opacity:1}.phase-remove-btn:hover{color:var(--red)}.drawer-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:35;cursor:pointer;background:#00000026}.tool-tiles-wrapper{display:flex;flex-direction:column;flex:1;min-height:0;padding:16px 20px 0;gap:12px}.tool-tiles-grid{display:grid;gap:16px;flex:1;padding:16px;min-height:0}.tiles-1{grid-template-columns:1fr}.tiles-2{grid-template-columns:1fr 1fr}.tiles-3{grid-template-columns:1fr 1fr;grid-template-rows:1fr 1fr}.tiles-3 .tool-tile:nth-child(3){grid-column:1 / -1}.tiles-4{grid-template-columns:1fr 1fr;grid-template-rows:1fr 1fr}.tool-tile{position:relative;border-radius:var(--radius-xl);background:var(--bg);border:1px solid var(--border);border-top:3px solid var(--tile-accent, var(--border));box-shadow:var(--shadow-sm);cursor:pointer;overflow:hidden;display:flex;flex-direction:column;transition:transform .3s var(--ease-out-expo),box-shadow .3s var(--ease-out-expo)}.tool-tile:hover:not(.expanded):not(.contracting){transform:scale(1.015);box-shadow:var(--shadow-md)}.tool-tile.expanded{position:fixed;z-index:50;border-radius:0;border:none;cursor:default;animation:tileExpand .5s var(--ease-out-expo) forwards}.tool-tile.contracting{position:fixed;z-index:50;border:none;cursor:default;animation:tileContract .45s var(--ease-out-expo) forwards}@keyframes tileExpand{0%{top:var(--tile-top);left:var(--tile-left);width:var(--tile-width);height:var(--tile-height);border-radius:var(--radius-xl)}to{top:0;left:0;width:100vw;height:100vh;border-radius:0}}@keyframes tileContract{0%{top:0;left:0;width:100vw;height:100vh;border-radius:0}to{top:var(--tile-top);left:var(--tile-left);width:var(--tile-width);height:var(--tile-height);border-radius:var(--radius-xl)}}.tool-tile-expanded-header{display:flex;align-items:center;gap:12px;padding:10px 16px;border-bottom:1px solid var(--border);background:var(--bg);flex-shrink:0}.tool-tile-expanded-title{font-size:15px;font-weight:700;color:var(--tile-accent, var(--text))}.tool-tile-close{width:32px;height:32px;display:flex;align-items:center;justify-content:center;border:1px solid var(--border);border-radius:var(--radius-md);background:var(--bg);font-size:18px;cursor:pointer;color:var(--text-secondary);transition:background .15s}.tool-tile-close:hover{background:var(--bg-secondary)}.tool-tile-content{flex:1;min-height:0;overflow:hidden;position:relative;transform:translateZ(0);display:flex;flex-direction:column}.tool-tile.expanded .tool-tile-content{overflow:auto}.modal-tool-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}.modal-tool-grid .modal-product-btn{border:1px solid var(--border);border-radius:var(--radius-md)}.modal-type-cards{display:grid;grid-template-columns:1fr 1fr 1fr;gap:10px}.modal-type-card{display:flex;flex-direction:column;align-items:center;gap:8px;padding:18px 8px 14px;border:2px solid var(--border);border-radius:var(--radius-lg);background:var(--bg);cursor:pointer;transition:all .2s var(--ease-out-expo);font-family:inherit;text-align:center}.modal-type-card:hover{border-color:var(--border-strong);background:var(--bg-secondary)}.modal-type-card.active{border-color:var(--type-accent);background:var(--type-bg)}.modal-type-icon{width:28px;height:28px;color:var(--text-muted);transition:color .2s}.modal-type-card.active .modal-type-icon{color:var(--type-accent)}.modal-type-name{font-size:13px;font-weight:700;color:var(--text-secondary);transition:color .2s}.modal-type-card.active .modal-type-name{color:var(--type-accent)}.modal-tool-cards{display:grid;grid-template-columns:1fr 1fr;gap:8px}.modal-tool-card{display:flex;align-items:center;gap:10px;padding:12px 14px;border:2px solid var(--border);border-radius:var(--radius-lg);background:var(--bg);cursor:pointer;transition:all .2s var(--ease-out-expo);font-family:inherit;text-align:left}.modal-tool-card:hover{border-color:var(--border-strong);background:var(--bg-secondary)}.modal-tool-card.active{border-color:var(--tile-accent);background:var(--tile-bg)}.modal-tool-card-icon{width:20px;height:20px;flex-shrink:0;color:var(--text-muted);transition:color .2s}.modal-tool-card.active .modal-tool-card-icon{color:var(--tile-accent)}.modal-tool-card-label{font-size:14px;font-weight:600;color:var(--text-secondary);transition:color .2s}.modal-tool-card.active .modal-tool-card-label{color:var(--tile-accent)}.rail-divider{padding:8px 16px 4px;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--text-tertiary)}.sq-drawer{position:fixed;top:0;right:0;bottom:0;width:var(--sq-drawer-width);display:flex;flex-direction:column;transform:translate(100%);transition:transform .5s var(--ease-out-expo);z-index:40;box-shadow:none;overflow:hidden;background:var(--bg)}.sq-drawer.open{transform:translate(0);box-shadow:-8px 0 32px #00000026}.sq-drawer-close{position:absolute;top:8px;left:-36px;width:28px;height:28px;border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--bg);color:var(--text-secondary);font-size:17px;cursor:pointer;display:flex;align-items:center;justify-content:center;box-shadow:var(--shadow-md);z-index:50;opacity:0;transition:opacity .3s .3s}.sq-drawer.open .sq-drawer-close{opacity:1}.sq-drawer-close:hover{background:var(--bg-secondary)}.route-tab-bar{display:flex;gap:2px;padding:8px 16px 0;border-bottom:1px solid var(--border);background:var(--bg);flex-shrink:0;overflow-x:auto}.route-tab{position:relative;padding:6px 14px 8px;font-size:12px;font-weight:500;color:var(--text-secondary);background:none;border:none;border-bottom:2px solid transparent;cursor:pointer;white-space:nowrap;transition:color .15s,border-color .15s}.route-tab:hover{color:var(--text-primary)}.route-tab.active{color:var(--accent);border-bottom-color:var(--accent);font-weight:600}.route-tab-dot{display:inline-block;width:6px;height:6px;border-radius:50%;background:var(--accent);margin-left:5px;vertical-align:middle}.route-override-banner{display:flex;align-items:center;justify-content:center;gap:12px;padding:8px 16px;font-size:12px;color:var(--text-secondary);background:var(--bg-secondary);border-bottom:1px solid var(--border);flex-shrink:0}.route-override-banner--active{color:var(--accent);background:var(--bg)}.route-override-btn{padding:4px 10px;font-size:11px;font-weight:500;color:var(--accent);background:none;border:1px solid var(--accent);border-radius:4px;cursor:pointer;transition:background .15s}.route-override-btn:hover{background:var(--bg-secondary)}.lp-drawer{width:var(--lp-drawer-width)}.sim-drawer{width:var(--sim-drawer-width, 80vw)}.calc-drawer{width:var(--calc-drawer-width, 40vw)}.calc-drawer-content{padding:24px;overflow-y:auto;height:100%}.calc-drawer .order-calc{padding:16px;border-bottom:none;max-width:600px;background:var(--bg-inset);border:1px solid var(--border);border-radius:var(--radius-md);gap:12px}.calc-drawer .calc-inputs{display:grid;grid-template-columns:1fr 1fr;gap:12px}.calc-drawer .calc-field{flex-direction:column;align-items:stretch;gap:4px}.calc-drawer .calc-input{width:100%;padding:6px 10px}.calc-drawer .calc-results-grid{border-radius:var(--radius-md)}.calc-drawer .calc-result-row{padding:6px 12px}.sq-loading{height:100%;display:flex;align-items:center;justify-content:center;background:var(--bg-secondary);color:var(--text-muted);font-size:14px}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#10182873;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;padding:24px;z-index:50;animation:backdropFade .2s ease}@keyframes backdropFade{0%{opacity:0}to{opacity:1}}.modal-card{position:relative;width:100%;max-width:480px;background:var(--bg);border:1px solid var(--border);border-radius:var(--radius-xl);padding:28px;max-height:90vh;overflow-y:auto;box-shadow:var(--shadow-xl);animation:modalEnter .25s var(--ease-out-expo)}@keyframes modalEnter{0%{opacity:0;transform:scale(.96) translateY(8px)}to{opacity:1;transform:scale(1) translateY(0)}}.modal-close{position:absolute;top:16px;right:20px;color:var(--text-muted);font-size:22px;background:none;border:none;cursor:pointer;line-height:1;width:28px;height:28px;border-radius:var(--radius-sm);display:flex;align-items:center;justify-content:center;transition:background .15s,color .15s}.modal-close:hover{background:var(--bg-secondary);color:var(--text-primary)}.modal-form{display:flex;flex-direction:column;gap:16px}.modal-form h2{font-size:19px;font-weight:700;color:var(--text-primary);margin:0;letter-spacing:-.3px}.modal-field{display:flex;flex-direction:column;gap:5px;font-size:14px;font-weight:500;color:var(--text-secondary)}.modal-input{width:100%;background:var(--bg);border:1px solid var(--border);border-radius:var(--radius-sm);padding:8px 12px;font-size:15px;font-family:inherit;color:var(--text-primary);outline:none;box-sizing:border-box;transition:border-color .15s,box-shadow .15s}.modal-input:focus{border-color:var(--blue);box-shadow:0 0 0 3px var(--blue-muted)}.modal-input.textarea{min-height:80px;resize:vertical}.modal-actions{display:flex;align-items:center;justify-content:flex-end;gap:8px;padding-top:12px;border-top:1px solid var(--border)}.modal-actions .primary-action,.modal-actions .ghost-btn,.modal-actions .danger-btn{margin-top:0}.primary-action{display:inline-flex;align-items:center;justify-content:center;padding:8px 18px;border-radius:var(--radius-sm);font-size:14px;font-weight:600;font-family:inherit;color:#fff;background:var(--blue);border:none;cursor:pointer;transition:background .15s,transform .1s}.primary-action:hover{background:var(--blue-hover)}.primary-action:active{transform:scale(.97)}.primary-action:disabled{background:var(--bg-tertiary);color:var(--text-muted);cursor:not-allowed}.ghost-btn{display:inline-flex;align-items:center;justify-content:center;padding:8px 18px;border-radius:var(--radius-sm);border:1px solid var(--border);font-size:14px;font-weight:500;font-family:inherit;color:var(--text-secondary);background:var(--bg);cursor:pointer;transition:all .15s}.ghost-btn:hover{border-color:var(--border-strong);background:var(--bg-secondary)}.danger-btn{display:inline-flex;align-items:center;justify-content:center;padding:8px 18px;border-radius:var(--radius-sm);font-size:14px;font-weight:600;font-family:inherit;color:#fff;background:var(--red);border:none;cursor:pointer;transition:background .15s,transform .1s}.danger-btn:hover{background:var(--red-hover)}.danger-btn:active{transform:scale(.97)}.action-input{width:100%;background:var(--bg);border:1px solid var(--border);border-radius:var(--radius-sm);padding:8px 12px;font-size:15px;font-family:inherit;color:var(--text-primary);outline:none;box-sizing:border-box;transition:border-color .15s,box-shadow .15s}.action-input:focus{border-color:var(--blue);box-shadow:0 0 0 3px var(--blue-muted)}.action-input.title{font-size:16px;font-weight:600}.muted{color:var(--text-muted);font-size:13px}.back-link{font-size:13px;color:var(--text-muted);background:none;border:1px solid var(--border);padding:5px 12px;border-radius:var(--radius-sm);cursor:pointer;font-family:inherit;transition:all .15s}.back-link:hover{color:var(--text-primary);border-color:var(--border-strong);background:var(--bg-secondary)}.link-platform-hint{font-size:11px;color:var(--blue);font-weight:500}.link-display{font-size:13px;color:var(--blue);text-decoration:none;font-weight:500}.link-display:hover{color:var(--blue-hover);text-decoration:underline}.modal-details{display:flex;flex-direction:column;gap:16px}.details-header{display:flex;flex-direction:column;gap:4px}.details-header h2{font-size:19px;font-weight:700;color:var(--text-primary);margin:0;letter-spacing:-.3px}.chip-row{display:flex;flex-wrap:wrap;gap:4px;margin-top:8px}.action-chip{background:var(--bg-secondary);color:var(--text-secondary);font-size:12px;font-weight:500;padding:3px 10px;border-radius:4px;border:1px solid var(--border)}.detail-section{display:flex;flex-direction:column;gap:6px;background:var(--bg-inset);border:1px solid var(--border);border-radius:var(--radius-md);padding:12px 14px}.detail-section h3{font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted);margin:0}.detail-card{background:var(--bg);border:1px solid var(--border);border-radius:var(--radius-sm);padding:8px 12px;display:flex;flex-direction:column;gap:3px}.detail-card p{margin:0;font-size:14px}.detail-stack{display:flex;flex-direction:column;gap:4px}.route-def-modal{max-height:70vh;overflow-y:auto}.completed-badge{display:inline-block;font-size:12px;color:var(--green);margin-top:2px}.route-def-calc-summary{background:var(--bg);border:1px solid var(--border);border-radius:var(--radius-sm);padding:10px 12px;display:flex;flex-direction:column;gap:8px}.route-def-calc-grid{display:flex;flex-direction:column;gap:1px}.route-def-calc-row{display:flex;justify-content:space-between;align-items:center;font-size:13px;padding:4px 6px;border-radius:3px}.route-def-calc-row:nth-child(2n){background:var(--bg-inset)}.route-def-qty{font-weight:600;color:var(--text);font-variant-numeric:tabular-nums}.route-def-routes{display:flex;flex-direction:column;gap:1px;border-top:1px solid var(--border);padding-top:8px}.route-def-routes-title{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted);margin-bottom:4px}.route-def-total{border-top:1px solid var(--border);font-weight:600;margin-top:2px;padding-top:6px}.route-def-empty-calc{display:flex;flex-direction:column;align-items:center;gap:8px;padding:16px;background:var(--bg);border:1px solid var(--border);border-radius:var(--radius-sm)}.route-def-link-btn{background:none;border:none;color:var(--blue);cursor:pointer;font-size:13px;font-family:inherit;padding:0}.route-def-link-btn:hover{text-decoration:underline}.route-def-notes-area{width:100%;min-height:80px;background:var(--bg);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text);font-size:14px;padding:10px;resize:vertical;font-family:inherit;line-height:1.5;box-sizing:border-box}.route-def-notes-area:focus{outline:none;border-color:var(--blue)}.route-def-sim-section{display:flex;flex-direction:column;align-items:center;gap:10px;padding:20px 16px;background:var(--bg);border:1px solid var(--border);border-radius:var(--radius-sm)}.route-def-sim-btn{background:none;border:1px solid var(--border);color:var(--text);cursor:pointer;font-size:13px;font-family:inherit;padding:6px 14px;border-radius:var(--radius-sm);transition:border-color .15s,color .15s}.route-def-sim-btn:hover{border-color:var(--blue);color:var(--blue)}.co-rd-product-badge{display:inline-block;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.04em;padding:2px 8px;border-radius:var(--radius-sm);background:var(--blue-light);color:var(--blue);margin-bottom:4px}.co-rd-site-card{background:var(--bg);border:1px solid var(--border);border-radius:var(--radius-sm);padding:10px 12px;display:flex;flex-direction:column;gap:6px}.co-rd-site-card-label{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:var(--text-muted)}.co-rd-field-row{display:flex;align-items:center;gap:8px}.co-rd-field-label{font-size:12px;color:var(--text-secondary);font-weight:500;min-width:52px;flex-shrink:0}.co-rd-text-input{flex:1;background:var(--bg-inset);border:1px solid var(--border);border-radius:var(--radius-sm);padding:4px 8px;font-size:13px;font-family:inherit;color:var(--text-primary);outline:none;transition:border-color .15s}.co-rd-text-input:focus{border-color:var(--blue)}.co-rd-text-input::-moz-placeholder{color:var(--text-faint)}.co-rd-text-input::placeholder{color:var(--text-faint)}.co-rd-multiple-label{font-size:12px;color:var(--text-muted);font-style:italic;padding:6px 0 2px}.co-rd-route-card{background:var(--bg);border:1px solid var(--border);border-radius:var(--radius-sm);padding:10px 12px;display:flex;flex-direction:column;gap:6px;position:relative}.co-rd-route-header{display:flex;align-items:center;justify-content:space-between}.co-rd-route-label{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:var(--text-muted)}.co-rd-remove-btn{background:none;border:none;color:var(--text-faint);cursor:pointer;font-size:14px;padding:0 2px;line-height:1;transition:color .15s;font-family:inherit}.co-rd-remove-btn:hover{color:var(--red)}.co-rd-select{flex:1;background:var(--bg-inset);border:1px solid var(--border);border-radius:var(--radius-sm);padding:4px 8px;font-size:13px;font-family:inherit;color:var(--text-primary);outline:none;cursor:pointer}.co-rd-select:focus{border-color:var(--blue)}.co-rd-return-toggle{display:flex;gap:4px}.co-rd-return-btn{padding:3px 10px;border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--bg);color:var(--text-muted);font-size:11px;font-weight:600;font-family:inherit;cursor:pointer;transition:all .15s}.co-rd-return-btn.active{background:var(--blue);color:#fff;border-color:var(--blue)}.co-rd-add-btn{background:none;border:1px dashed var(--border);border-radius:var(--radius-sm);color:var(--text-muted);cursor:pointer;font-size:12px;font-family:inherit;padding:6px 12px;transition:color .15s,border-color .15s;text-align:center}.co-rd-add-btn:hover{color:var(--blue);border-color:var(--blue)}.co-rd-carrier-row{display:flex;align-items:center;gap:8px}.co-rd-carrier-type-label{font-size:12px;font-weight:500;color:var(--text-secondary);min-width:40px}.co-rd-carrier-validation{font-size:11px;font-weight:500;padding-top:4px}.co-rd-carrier-validation.valid{color:var(--green)}.co-rd-carrier-validation.warn{color:var(--amber)}.co-rd-type-select{background:var(--bg-inset);border:1px solid var(--border);border-radius:var(--radius-sm);padding:3px 6px;font-size:12px;font-family:inherit;color:var(--text-primary);outline:none;cursor:pointer}.header-actions{display:flex;gap:8px;align-items:center}.task-type-badge{font-size:11px;padding:1px 8px;border-radius:4px;background:var(--bg-tertiary);color:var(--text-muted);font-weight:500}.task-card[draggable=true]{cursor:grab}.task-card[draggable=true]:active{cursor:grabbing}.task-card.dragging{opacity:.4}.task-card.drag-over{border-top:2px solid var(--blue);margin-top:-2px}.task-drag-handle{color:var(--text-faint);font-size:12px;cursor:grab;flex-shrink:0;padding-right:4px;-webkit-user-select:none;-moz-user-select:none;user-select:none}.phase-column.phase-dragging{opacity:.4}.phase-column.phase-drag-over{border-color:var(--blue);box-shadow:0 0 0 2px var(--blue-light)}.phase-drag-handle{color:var(--text-faint);font-size:14px;cursor:grab;flex-shrink:0;-webkit-user-select:none;-moz-user-select:none;user-select:none}.phase-drag-handle:active,.task-drag-handle:active{cursor:grabbing}.phase-column-body.task-drop-target{background:var(--blue-light);border-radius:var(--radius-sm)}.task-title-input{font-size:12px;font-weight:500;font-family:inherit;color:var(--text-primary);background:var(--bg);border:1px solid var(--border);border-radius:var(--radius-sm);padding:2px 6px;outline:none;flex:1;min-width:0}.task-title-input:focus{border-color:var(--blue)}.task-type-toggle{font-size:10px;font-weight:600;font-family:inherit;text-transform:uppercase;letter-spacing:.3px;color:var(--text-muted);background:var(--bg-tertiary);border:1px solid var(--border);border-radius:var(--radius-sm);padding:2px 8px;cursor:pointer;transition:all .15s}.task-type-toggle:hover{background:var(--blue-light);color:var(--blue);border-color:var(--blue)}.task-timeline-toggle{font-size:10px;font-weight:600;font-family:inherit;text-transform:uppercase;letter-spacing:.3px;color:var(--text-muted);background:var(--bg-tertiary);border:1px solid var(--border);border-radius:var(--radius-sm);padding:2px 8px;cursor:pointer;transition:all .15s}.task-timeline-toggle.active{background:var(--green-light);color:var(--green);border-color:var(--green)}.task-timeline-toggle:hover{background:var(--blue-light);color:var(--blue);border-color:var(--blue)}.task-timeline-label-input{font-size:10px;font-family:inherit;color:var(--text-secondary);background:var(--bg);border:1px solid var(--border);border-radius:var(--radius-sm);padding:2px 6px;outline:none;min-width:0;flex:1;max-width:120px}.task-timeline-label-input:focus{border-color:var(--blue)}.task-timeline-label-input::-moz-placeholder{color:var(--text-faint);font-style:italic}.task-timeline-label-input::placeholder{color:var(--text-faint);font-style:italic}.phase-name-input{font-size:inherit;font-weight:inherit;font-family:inherit;color:var(--text-primary);background:var(--bg);border:1px solid var(--blue);border-radius:var(--radius-sm);padding:1px 6px;outline:none;width:100%;min-width:0}.template-removed-bar{display:flex;align-items:center;gap:8px;padding:6px 10px;margin-top:4px;background:var(--bg-tertiary);border-radius:var(--radius-sm);font-size:11px}.template-removed-count{color:var(--text-muted);font-weight:600}.template-restore-all-btn,.template-purge-btn{background:none;border:1px solid var(--border);color:var(--text-secondary);font-size:11px;font-weight:600;font-family:inherit;padding:2px 8px;border-radius:var(--radius-sm);cursor:pointer;transition:all .15s}.template-restore-all-btn:hover{background:var(--blue-light);color:var(--blue);border-color:var(--blue)}.template-purge-btn:hover{background:var(--red-light);color:var(--red);border-color:var(--red)}.legend-popover{position:absolute;top:100%;right:0;margin-top:4px;background:var(--bg);border:1px solid var(--border);border-radius:var(--radius-md);padding:10px 14px;display:flex;flex-direction:column;gap:4px;z-index:20;min-width:180px;box-shadow:var(--shadow-md)}.legend-row{display:flex;align-items:center;gap:10px;font-size:13px}.legend-abbr{width:30px;font-weight:700;color:var(--text-primary);flex-shrink:0}.legend-full{color:var(--text-muted)}.sq-drawer .back-link{color:var(--text-muted);border-color:var(--border)}.sq-drawer .back-link:hover{color:var(--text-primary);border-color:var(--border-strong);background:var(--bg-secondary)}.settings-trigger{display:inline-flex;align-items:center;gap:6px;padding:6px 14px;border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--bg);color:var(--text-secondary);font-size:13px;font-weight:500;font-family:inherit;cursor:pointer;transition:all .15s}.settings-trigger:hover{border-color:var(--border-strong);background:var(--bg-secondary)}.settings-panel{display:flex;flex-direction:column;gap:24px;max-width:600px;padding:8px 0 32px;overflow-y:auto;flex:1;min-height:0;animation:welcomeFade .3s var(--ease-out-expo)}.settings-section{display:flex;flex-direction:column;gap:10px;padding:20px;background:var(--bg);border:1px solid var(--border);border-radius:var(--radius-lg)}.settings-section.settings-danger{border-color:#e0313733}.settings-section-title{font-size:15px;font-weight:700;color:var(--text-primary);margin:0;letter-spacing:-.2px}.settings-section-title.danger{color:var(--red)}.settings-section-desc{font-size:13px;color:var(--text-muted);margin:0;line-height:1.5}.settings-product-toggle{display:flex;gap:10px}.settings-product-btn{flex:1;display:flex;flex-direction:column;align-items:flex-start;gap:4px;padding:14px 16px;border:2px solid var(--border);border-radius:var(--radius-md);background:var(--bg);cursor:pointer;transition:all .15s;text-align:left;font-family:inherit}.settings-product-btn:hover{border-color:var(--border-strong);background:var(--bg-secondary)}.settings-product-btn.active{border-color:var(--blue);background:var(--blue-light);box-shadow:0 0 0 1px var(--blue-muted)}.settings-product-name{font-size:15px;font-weight:700;color:var(--text-primary)}.settings-product-btn.active .settings-product-name{color:var(--blue)}.settings-product-desc{font-size:12px;color:var(--text-muted);line-height:1.4}.settings-danger-row{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:12px 0 0;border-top:1px solid var(--border)}.settings-danger-label{font-size:14px;font-weight:600;color:var(--text-primary);display:block}.settings-danger-desc{font-size:12px;color:var(--text-muted);display:block;margin-top:2px}.settings-grid-2{display:grid;grid-template-columns:1fr 1fr;gap:12px}.settings-grid-3{display:grid;grid-template-columns:1fr 1fr 1fr;gap:12px;margin-top:4px}.settings-field{display:flex;flex-direction:column;gap:4px}.settings-field-label{font-size:13px;font-weight:500;color:var(--text-secondary)}.settings-field .modal-input{font-size:14px;padding:7px 10px}.settings-order-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(110px,1fr));gap:10px}.settings-order-item{display:flex;flex-direction:column;align-items:center;gap:2px;padding:12px 8px;background:var(--bg-secondary);border:1px solid var(--border);border-radius:var(--radius-md)}.settings-order-value{font-size:24px;font-weight:700;color:var(--text-primary);letter-spacing:-.5px}.settings-order-label{font-size:11px;font-weight:600;color:var(--text-muted);text-transform:uppercase;letter-spacing:.5px}.settings-subsection-title{font-size:13px;font-weight:700;color:var(--text-secondary);margin:8px 0 4px;text-transform:uppercase;letter-spacing:.5px}.settings-route-table{display:flex;flex-direction:column;border:1px solid var(--border);border-radius:var(--radius-sm);overflow:hidden}.settings-route-header,.settings-route-row{display:grid;grid-template-columns:1fr 1fr 1fr;padding:6px 12px;font-size:13px}.settings-route-header{background:var(--bg-tertiary);font-weight:700;color:var(--text-secondary)}.settings-route-row{color:var(--text-primary);border-top:1px solid var(--border)}.settings-route-row:nth-child(odd){background:var(--bg-secondary)}.settings-export-btns{display:flex;gap:8px;flex-wrap:wrap}.change-log-list{display:flex;flex-direction:column;max-height:400px;overflow-y:auto}.change-log-entry{display:flex;flex-direction:column;gap:2px;padding:10px 0;border-bottom:1px solid var(--border);font-size:13px}.change-log-entry:last-child{border-bottom:none}.change-log-meta{display:flex;justify-content:space-between;align-items:baseline;gap:12px}.change-log-title{color:var(--text-primary);font-weight:500}.change-log-time{color:var(--text-muted);font-size:12px;white-space:nowrap;flex-shrink:0}.change-log-diff{display:flex;align-items:center;gap:6px;font-size:12px;color:var(--text-secondary);padding-top:2px}.change-log-before{color:var(--red);text-decoration:line-through}.change-log-arrow{color:var(--text-muted)}.change-log-after{color:var(--green)}.change-log-empty{font-size:13px;color:var(--text-muted);padding:16px 0;text-align:center}.change-log-load-more{padding:8px 0;text-align:center}.modal-card-wide{max-width:520px}.modal-divider{height:1px;background:var(--border);margin:4px 0}.modal-group-label{font-size:13px;font-weight:700;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.5px;margin:0}.modal-grid-2{display:grid;grid-template-columns:1fr 1fr;gap:12px}.modal-product-toggle{display:flex;border:1px solid var(--border);border-radius:var(--radius-md);overflow:hidden}.modal-product-btn{flex:1;padding:10px 16px;font-size:15px;font-weight:600;font-family:inherit;border:none;background:var(--bg);color:var(--text-muted);cursor:pointer;transition:all .15s}.modal-product-btn+.modal-product-btn{border-left:1px solid var(--border)}.modal-product-btn:hover{background:var(--bg-secondary);color:var(--text-secondary)}.modal-product-btn.active{background:var(--blue);color:#fff}@media (max-width: 1024px){:root{--sq-drawer-width: 70vw;--lp-drawer-width: 85vw;--sim-drawer-width: 90vw;--calc-drawer-width: 55vw}}@media (max-width: 768px){.projects-rail{width:180px}.brand-text{font-size:14px}.rail-footer-links,.rail-new-btn span:not(.rail-new-icon){display:none}.rail-card{padding:8px}.rail-card-phase,.rail-card-bar{display:none}.rail-new-btn{padding:8px}.kanban-board{gap:4px}.phase-column{min-width:200px}.gantt-track{height:78px;margin:0 12px}:root{--sq-drawer-width: 90vw;--lp-drawer-width: 95vw;--sim-drawer-width: 95vw;--calc-drawer-width: 90vw}}@media (min-width: 768px){.mobile-rail-toggle,.rail-backdrop{display:none}}@media (max-width: 767px){.projects-rail{position:fixed;top:0;left:0;bottom:0;width:264px;transform:translate(-100%);transition:transform .35s var(--ease-out-expo);z-index:45;box-shadow:none}.projects-rail.rail-open{transform:translate(0);box-shadow:8px 0 32px #00000026}.rail-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:44;background:#00000026}.rail-footer-links,.rail-new-btn span:not(.rail-new-icon){display:revert}.rail-card-phase,.rail-card-bar{display:revert}.rail-card{padding:10px 12px}.mobile-rail-toggle{position:fixed;top:calc(12px + env(safe-area-inset-top));left:calc(12px + env(safe-area-inset-left));z-index:20;width:44px;height:44px;border-radius:var(--radius-md);border:1px solid var(--border);background:var(--bg);color:var(--text-secondary);font-size:20px;display:flex;align-items:center;justify-content:center;cursor:pointer;box-shadow:var(--shadow-sm)}.mobile-rail-toggle:active{background:var(--bg-secondary)}.main-stage{width:100vw}:root{--sq-drawer-width: 100vw;--lp-drawer-width: 100vw;--sim-drawer-width: 100vw;--calc-drawer-width: 100vw}.sq-drawer-close{left:auto;right:12px;top:12px;width:44px;height:44px;font-size:22px;border-radius:var(--radius-md);z-index:55}.login-card{max-width:none;margin:0 16px;padding:32px 24px 28px}.login-brand-logo{width:120%;margin:-20% 0 -22% -10%}.login-brand-subtitle{font-size:14px}.kanban-header{flex-direction:column;align-items:flex-start;gap:8px;padding-left:48px}.kanban-header-right{width:100%;justify-content:flex-start}.kanban-board{gap:6px;padding-bottom:12px;scrollbar-width:thin;-webkit-overflow-scrolling:touch}.kanban-board::-webkit-scrollbar{display:block;height:4px}.kanban-board::-webkit-scrollbar-track{background:var(--bg-tertiary);border-radius:2px}.kanban-board::-webkit-scrollbar-thumb{background:var(--border-strong);border-radius:2px}.phase-column{min-width:240px;max-width:260px}.gantt-track{height:74px;margin:0 6px}.gantt-point-label{max-width:64px;font-size:9px}.gantt-point-date,.gantt-grid-label,.gantt-range-text{font-size:9px}.htl-row-label{width:90px;padding-right:8px}.htl-row-name{font-size:12px}.htl-row{height:48px}.htl-axis{margin-left:90px}.htl-legend{padding-left:90px}.htl-axis-label{font-size:10px}.htl-dot{width:10px;height:10px}.htl-dot-date-label{font-size:9px}.htl-dot-name-label{font-size:8px;max-width:60px;overflow:hidden;text-overflow:ellipsis}.htl-today-label{font-size:9px}.htl-zoom-btn{min-height:44px;padding:10px 14px}.welcome-scene{padding:64px 12px 16px}.welcome-content{max-width:100%}.htl-header{padding-top:0;margin-bottom:12px}.actions-scene{padding-top:64px}.actions-title{font-size:20px}.kanban-wrapper{padding:48px 12px 0;gap:8px}.rail-card,.rail-actions-btn,.rail-new-btn{min-height:44px}.rail-link{min-height:44px;display:inline-flex;align-items:center}.kanban-back-btn,.settings-trigger,.actions-owner-chip{min-height:44px;padding:10px 16px}.projects-rail.rail-open,.sq-drawer{padding-bottom:env(safe-area-inset-bottom)}}.hover\:border-gray-400:hover{--tw-border-opacity: 1;border-color:rgb(156 163 175 / var(--tw-border-opacity, 1))}.hover\:border-gray-500:hover{--tw-border-opacity: 1;border-color:rgb(107 114 128 / var(--tw-border-opacity, 1))}.hover\:bg-blue-700:hover{--tw-bg-opacity: 1;background-color:rgb(29 78 216 / var(--tw-bg-opacity, 1))}.hover\:bg-gray-50:hover{--tw-bg-opacity: 1;background-color:rgb(249 250 251 / var(--tw-bg-opacity, 1))}.hover\:bg-gray-800:hover{--tw-bg-opacity: 1;background-color:rgb(31 41 55 / var(--tw-bg-opacity, 1))}.hover\:text-blue-600:hover{--tw-text-opacity: 1;color:rgb(37 99 235 / var(--tw-text-opacity, 1))}.hover\:text-white:hover{--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity, 1))}.focus\:border-amber-500:focus{--tw-border-opacity: 1;border-color:rgb(245 158 11 / var(--tw-border-opacity, 1))}.focus\:border-blue-500:focus{--tw-border-opacity: 1;border-color:rgb(59 130 246 / var(--tw-border-opacity, 1))}.focus\:outline-none:focus{outline:2px solid transparent;outline-offset:2px}
