.app-header{position:relative;z-index:10;display:flex;min-height:72px;align-items:center;justify-content:space-between;gap:24px;padding:10px 22px;border-bottom:1px solid #dce3ec;color:#1d2939;background:#fffffffa;box-shadow:0 1px 3px #1018280d}.app-header__brand{display:flex;min-width:0;align-items:center;gap:12px}.app-header__brand-copy{display:grid;min-width:0}.app-header__mark{display:grid;width:42px;height:42px;flex:0 0 auto;place-items:center;border:1px solid #cfe0f8;border-radius:11px;color:#1d5fae;background:#eef5ff}.app-header__mark svg{width:25px;height:25px;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.app-header__eyebrow{display:block;margin-bottom:2px;color:#667085;font-size:.64rem;font-weight:750;letter-spacing:.14em}.app-header .project-title{overflow:hidden;color:#182230;font-size:1rem;font-weight:750;line-height:1.35;text-overflow:ellipsis;white-space:nowrap}.app-header__dataset{display:flex;width:fit-content;max-width:100%;align-items:center;gap:6px;margin-top:4px;color:#526273;font-size:.66rem;line-height:1.25}.app-header__dataset>span{color:#7b8798;font-weight:650}.app-header__dataset>strong{overflow:hidden;max-width:min(34vw,320px);color:#344054;font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:.68rem;font-weight:750;text-overflow:ellipsis;white-space:nowrap}.app-header__controls{display:flex;flex:0 0 auto;align-items:center;gap:10px}.app-header__loading{display:inline-flex;align-items:center;gap:7px;color:#526273;font-size:.75rem;font-weight:650}.app-header__loading>span{width:8px;height:8px;border-radius:50%;background:#3b82f6;box-shadow:0 0 0 4px #3b82f621;animation:app-header-loading 1.4s ease-in-out infinite}.app-header button{box-sizing:border-box;min-height:42px;border-radius:10px;font-family:inherit;cursor:pointer;transition:border-color .16s ease,background-color .16s ease,color .16s ease,box-shadow .16s ease}.app-header button:focus-visible{outline:3px solid rgba(37,99,235,.25);outline-offset:2px}.app-header button:disabled{cursor:not-allowed;opacity:.56}.app-header__export{display:inline-flex;align-items:center;gap:9px;border:1px solid #cfd8e5;padding:6px 11px;color:#344054;background:#fff;box-shadow:0 1px 2px #1018280a}.app-header__export:hover:not(:disabled){border-color:#9db9df;color:#184f91;background:#f7faff}.app-header__export svg,.app-header__sign-out svg{width:18px;height:18px;flex:0 0 auto;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.app-header__export>span{display:grid;gap:1px;text-align:left}.app-header__export strong{font-size:.77rem;font-weight:750;line-height:1.2}.app-header__export small{color:#7b8798;font-size:.62rem;line-height:1.2}.app-header__account{display:flex;align-items:center;gap:9px;margin-left:2px;padding-left:12px;border-left:1px solid #e2e8f0}.app-header__avatar{display:grid;width:36px;height:36px;flex:0 0 auto;place-items:center;border:1px solid #c9ddf7;border-radius:50%;color:#17569e;background:#eaf3ff;font-size:.85rem;font-weight:800}.app-header__identity{display:grid;width:min(18vw,190px);min-width:110px;gap:1px}.app-header__identity strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.app-header__user-label{color:#7b8798;font-size:.6rem;font-weight:700;line-height:1.15}.app-header__identity strong{color:#273548;font-size:.79rem;line-height:1.25}.app-header__sign-out{display:inline-flex;align-items:center;justify-content:center;gap:6px;border:1px solid #e2c9cc;padding:8px 11px;color:#92353f;background:#fff;font-size:.76rem;font-weight:700}.app-header__sign-out:hover:not(:disabled){border-color:#d6a9ae;color:#7f1d2d;background:#fff7f7}@keyframes app-header-loading{0%,to{opacity:.55;transform:scale(.9)}50%{opacity:1;transform:scale(1.08)}}@media (max-width: 900px){.app-header{align-items:stretch;flex-direction:column;gap:10px;padding:10px 16px 12px}.app-header__controls{width:100%}.app-header__account{min-width:0;flex:1}.app-header__identity{width:auto;min-width:0;flex:1}}@media (max-width: 560px){.app-header__mark{width:38px;height:38px}.app-header__eyebrow{display:none}.app-header .project-title{font-size:.92rem}.app-header__dataset>strong{max-width:42vw}.app-header__controls{flex-wrap:wrap}.app-header__loading{width:100%}.app-header__export{flex:0 0 auto}.app-header__account{padding-left:9px}.app-header__avatar{display:none}.app-header__sign-out{padding-inline:9px}}@media (prefers-reduced-motion: reduce){.app-header__loading>span{animation:none}.app-header button{transition:none}}.page-nav{--nav-border: #dce3ec;overflow-x:auto;padding:8px 18px 7px;border-bottom:1px solid var(--nav-border);background:#f4f6f9;scrollbar-color:#b8c3d1 transparent;scrollbar-width:thin}.page-nav__track{display:flex;width:max-content;min-width:100%;align-items:stretch;gap:8px}.workflow-nav-group{--phase-color: #5d6b7c;--phase-border: #d6dde6;--phase-surface: #f7f8fa;display:grid;grid-template-rows:auto 1fr;overflow:hidden;flex:0 0 auto;border:1px solid var(--phase-border);border-radius:10px;background:var(--phase-surface)}.workflow-nav-group--setup{--phase-color: #1d5fae;--phase-border: #c9dcf5;--phase-surface: #edf5ff}.workflow-nav-group--planning{--phase-color: #6d45a8;--phase-border: #dacdf0;--phase-surface: #f6f1fc}.workflow-nav-group--operation{--phase-color: #14715e;--phase-border: #bfe1d8;--phase-surface: #edf8f5}.workflow-nav-group__label{padding:5px 10px 3px;color:var(--phase-color);font-size:.65rem;font-weight:800;letter-spacing:.045em;line-height:1.25}.workflow-nav-group__links{display:flex;align-items:stretch;padding:0 3px 3px}.page-nav .nav-link{position:relative;display:inline-flex;min-height:44px;align-items:center;justify-content:center;border-radius:7px;padding:9px 11px 10px;color:#465568;font-size:.8rem;font-weight:620;line-height:1.25;text-decoration:none;white-space:nowrap;transition:color .15s ease,background-color .15s ease,box-shadow .15s ease}.page-nav .nav-link:hover{color:var(--phase-color);background:#ffffffa8}.page-nav .nav-link.active{color:var(--phase-color);background:#fff;box-shadow:inset 0 -3px 0 var(--phase-color),0 1px 3px #10182817;font-weight:780}.page-nav .nav-link:focus-visible{z-index:1;outline:3px solid color-mix(in srgb,var(--phase-color) 24%,transparent);outline-offset:1px}@media (max-width: 640px){.page-nav{padding-inline:10px}.page-nav__track{gap:6px}.page-nav .nav-link{padding-inline:10px}}@media (prefers-reduced-motion: reduce){.page-nav .nav-link{transition:none}}.project-hub-page{--hub-text: #253044;--hub-muted: #657085;--hub-border: #dfe3e9;--hub-surface: #f7f8fa;--hub-primary: #2563eb;max-width:1200px;margin:0 auto;padding:20px 20px 64px;color:var(--hub-text)}.project-hub-page *,.project-hub-page *:before,.project-hub-page *:after{box-sizing:border-box}.hub-icon{width:1.15em;height:1.15em;flex:0 0 auto}.hub-page-header{display:flex;align-items:center;justify-content:space-between;gap:24px;padding:12px 0 24px;border-bottom:1px solid var(--hub-border)}.hub-page-header h1{margin:0;font-size:2rem;line-height:1.3;color:#1f2937}.hub-page-header p{margin:6px 0 0;color:var(--hub-muted)}.hub-header-action{display:inline-flex;min-height:44px;align-items:center;gap:8px;padding:10px 16px;border-radius:8px;color:#fff;background:var(--hub-primary);font-weight:700;text-decoration:none}.hub-header-action:hover{color:#fff;background:#1d4ed8}.hub-header-action:focus-visible,.workflow-card:focus-visible,.logic-details summary:focus-visible{outline:3px solid rgba(37,99,235,.28);outline-offset:2px}.hub-project-state{display:flex;min-height:82px;align-items:center;justify-content:space-between;gap:24px;margin-top:24px;padding:16px 20px;border:1px solid #d7e2f4;border-radius:10px;background:#f5f8fd}.hub-state-intro{display:flex;align-items:center;gap:12px;min-width:230px}.hub-state-intro div,.hub-data-notice>div{display:flex;flex-direction:column;gap:2px}.hub-state-intro strong,.hub-data-notice strong{font-size:.95rem}.hub-state-intro span:not(.hub-state-dot),.hub-data-notice span{color:var(--hub-muted);font-size:.8rem}.hub-state-dot{width:10px;height:10px;border-radius:50%;background:#22a447;box-shadow:0 0 0 3px #dcefe1}.hub-metrics{display:flex;align-items:center;margin:0}.hub-metrics>div{min-width:105px;padding:0 20px;border-left:1px solid #d7e2f4}.hub-metrics dt{color:var(--hub-muted);font-size:.74rem}.hub-metrics dd{margin:1px 0 0;color:#1f2937;font-size:1.25rem;font-weight:750;font-variant-numeric:tabular-nums}.hub-data-notice{display:flex;width:100%;align-items:center;gap:12px}.hub-data-notice__pulse{width:11px;height:11px;border-radius:50%;background:var(--hub-primary);animation:hub-pulse 1.4s ease-in-out infinite}.hub-data-notice__icon{display:grid;width:38px;height:38px;place-items:center;border-radius:8px;color:var(--hub-primary)!important;background:#e7efff}.hub-data-notice button{min-height:42px;margin-left:auto;color:#fff;background:var(--hub-primary)}.hub-section{padding-top:38px}.hub-section-heading{display:flex;align-items:end;justify-content:space-between;gap:32px;margin-bottom:18px}.hub-section-heading h2{margin:0;color:#1f2937;font-size:1.45rem}.hub-section-heading>p{max-width:560px;margin:0;color:var(--hub-muted);font-size:.9rem;line-height:1.65}.workflow-phases{display:grid;gap:14px}.workflow-phase{display:grid;grid-template-columns:210px minmax(0,1fr);gap:20px;padding:20px;border:1px solid var(--hub-border);border-radius:10px;background:#fff}.workflow-phase__header{padding:2px 8px 2px 0}.workflow-phase__header>span{display:block;color:var(--hub-primary);font-size:.76rem;font-weight:750}.workflow-phase__header h3{margin:7px 0 5px;color:#263247;font-size:1.03rem}.workflow-phase__header p{margin:0;color:var(--hub-muted);font-size:.8rem;line-height:1.65}.workflow-phase__steps{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.workflow-card{display:flex;min-height:78px;align-items:center;gap:12px;padding:12px 14px;border:1px solid var(--hub-border);border-radius:8px;color:var(--hub-text);background:var(--hub-surface);text-decoration:none;transition:border-color .15s ease,background-color .15s ease}.workflow-card:hover{color:var(--hub-text);border-color:#9bb7ea;background:#f3f7ff}.workflow-card__icon{display:grid;width:36px;height:36px;flex:0 0 auto;place-items:center;border-radius:7px;color:var(--hub-primary);background:#e7efff}.workflow-card__content{display:flex;min-width:0;flex:1;align-items:flex-start;gap:9px}.workflow-card__number{padding-top:2px;color:#8a94a6;font-size:.67rem;font-weight:750}.workflow-card__text{display:flex;min-width:0;flex-direction:column;gap:2px}.workflow-card__text strong{color:#293548;font-size:.88rem}.workflow-card__text small{color:var(--hub-muted);font-size:.74rem;line-height:1.5}.workflow-card>.hub-icon{width:16px;color:#8a94a6}.hub-section--logic{margin-top:38px;padding:24px;border:1px solid var(--hub-border);border-radius:10px;background:var(--hub-surface)}.hub-section--logic .hub-section-heading{margin-bottom:20px}.logic-flow{display:flex;align-items:center;gap:12px;margin-bottom:18px}.logic-flow>div{display:flex;min-width:0;flex:1;align-items:center;gap:9px;padding:11px 13px;border:1px solid var(--hub-border);border-radius:8px;background:#fff}.logic-flow>div>span{display:grid;width:24px;height:24px;place-items:center;border-radius:50%;color:#fff;background:#64748b;font-size:.65rem;font-weight:750}.logic-flow strong{font-size:.87rem}.logic-flow small{margin-left:auto;color:var(--hub-muted);font-size:.73rem}.logic-flow>.hub-icon{color:#8a94a6}.logic-details{display:grid;gap:8px}.logic-details details{overflow:hidden;border:1px solid var(--hub-border);border-radius:8px;background:#fff}.logic-details summary{display:grid;grid-template-columns:36px 1fr 18px;align-items:center;gap:11px;min-height:66px;padding:11px 15px;cursor:pointer;list-style:none}.logic-details summary::-webkit-details-marker{display:none}.logic-details summary:hover{background:#fafbfc}.logic-details__index{display:grid;width:32px;height:32px;place-items:center;border-radius:7px;color:#315795;background:#e7efff;font-size:.7rem;font-weight:750}.logic-details summary>span:nth-child(2){display:flex;flex-direction:column;gap:2px}.logic-details summary strong{color:#293548;font-size:.92rem}.logic-details summary small{color:var(--hub-muted);font-size:.76rem}.logic-details__toggle{position:relative;width:16px;height:16px}.logic-details__toggle:before,.logic-details__toggle:after{content:"";position:absolute;inset:7px 1px auto;height:2px;border-radius:1px;background:#697386;transition:transform .15s ease}.logic-details__toggle:after{transform:rotate(90deg)}.logic-details details[open] .logic-details__toggle:after{transform:rotate(0)}.logic-details__body{padding:0 20px 20px 62px;border-top:1px solid #edf0f3}.logic-details__body>p{margin:17px 0 13px;color:var(--hub-muted);font-size:.86rem;line-height:1.7}.logic-details__body ul{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin:0;padding:0;list-style:none}.logic-details__body li{display:flex;flex-direction:column;gap:3px;padding:11px 12px;border:1px solid #e8ebef;border-radius:7px;background:#fafbfc}.logic-details__body li strong{color:#344054;font-size:.82rem}.logic-details__body li span{color:var(--hub-muted);font-size:.74rem;line-height:1.55}.logic-note{margin-top:9px;padding:10px 12px;border-left:3px solid #8ba9de;color:#526077;background:#f4f7fc;font-size:.76rem;line-height:1.6}.logic-priority{display:flex;align-items:center;gap:24px;margin-top:10px;padding:11px 13px;border-radius:7px;color:#344054;background:#edf2fa}.logic-priority>span{font-size:.78rem;font-weight:750}.logic-priority ol{display:flex;flex-wrap:wrap;gap:14px;margin:0;padding:0;list-style:none}.logic-priority li{display:inline-flex;flex-direction:row;align-items:center;gap:6px;padding:0;border:0;background:none;font-size:.74rem}.logic-priority b{display:grid;width:20px;height:20px;place-items:center;border-radius:50%;color:#fff;background:#64748b;font-size:.62rem}@keyframes hub-pulse{0%,to{opacity:1}50%{opacity:.35}}@media (max-width: 900px){.workflow-phase{grid-template-columns:1fr;gap:14px}.workflow-phase__header{padding-right:0}.logic-flow small{display:none}}@media (max-width: 680px){.project-hub-page{padding:12px 12px 42px}.hub-page-header{align-items:flex-start;flex-direction:column}.hub-page-header h1{font-size:1.65rem}.hub-header-action{width:100%;justify-content:center}.hub-project-state{align-items:stretch;flex-direction:column}.hub-metrics>div{min-width:0;flex:1;padding:0 12px}.hub-metrics>div:first-child{padding-left:0;border-left:0}.hub-data-notice--empty{align-items:flex-start;flex-wrap:wrap}.hub-data-notice button{width:100%;margin-left:0}.hub-section-heading{align-items:flex-start;flex-direction:column;gap:7px}.workflow-phase{padding:15px}.workflow-phase__steps{grid-template-columns:1fr}.hub-section--logic{padding:17px}.logic-flow{align-items:stretch;flex-direction:column;gap:6px}.logic-flow>.hub-icon{align-self:center;transform:rotate(90deg)}.logic-details summary{grid-template-columns:34px 1fr 16px;padding:10px}.logic-details summary small{display:none}.logic-details__body{padding:0 12px 14px}.logic-details__body ul{grid-template-columns:1fr}.logic-priority{align-items:flex-start;flex-direction:column;gap:9px}.logic-priority ol{flex-direction:column;gap:6px}}@media (prefers-reduced-motion: reduce){.project-hub-page *,.project-hub-page *:before,.project-hub-page *:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}.react-flow{direction:ltr}.react-flow__container{position:absolute;width:100%;height:100%;top:0;left:0}.react-flow__pane{z-index:1;cursor:-webkit-grab;cursor:grab}.react-flow__pane.selection{cursor:pointer}.react-flow__pane.dragging{cursor:-webkit-grabbing;cursor:grabbing}.react-flow__viewport{transform-origin:0 0;z-index:2;pointer-events:none}.react-flow__renderer{z-index:4}.react-flow__selection{z-index:6}.react-flow__nodesselection-rect:focus,.react-flow__nodesselection-rect:focus-visible{outline:none}.react-flow .react-flow__edges{pointer-events:none;overflow:visible}.react-flow__edge-path,.react-flow__connection-path{stroke:#b1b1b7;stroke-width:1;fill:none}.react-flow__edge{pointer-events:visibleStroke;cursor:pointer}.react-flow__edge.animated path{stroke-dasharray:5;-webkit-animation:dashdraw .5s linear infinite;animation:dashdraw .5s linear infinite}.react-flow__edge.animated path.react-flow__edge-interaction{stroke-dasharray:none;-webkit-animation:none;animation:none}.react-flow__edge.inactive{pointer-events:none}.react-flow__edge.selected,.react-flow__edge:focus,.react-flow__edge:focus-visible{outline:none}.react-flow__edge.selected .react-flow__edge-path,.react-flow__edge:focus .react-flow__edge-path,.react-flow__edge:focus-visible .react-flow__edge-path{stroke:#555}.react-flow__edge-textwrapper{pointer-events:all}.react-flow__edge-textbg{fill:#fff}.react-flow__edge .react-flow__edge-text{pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}.react-flow__connection{pointer-events:none}.react-flow__connection .animated{stroke-dasharray:5;-webkit-animation:dashdraw .5s linear infinite;animation:dashdraw .5s linear infinite}.react-flow__connectionline{z-index:1001}.react-flow__nodes{pointer-events:none;transform-origin:0 0}.react-flow__node{position:absolute;-webkit-user-select:none;-moz-user-select:none;user-select:none;pointer-events:all;transform-origin:0 0;box-sizing:border-box;cursor:-webkit-grab;cursor:grab}.react-flow__node.dragging{cursor:-webkit-grabbing;cursor:grabbing}.react-flow__nodesselection{z-index:3;transform-origin:left top;pointer-events:none}.react-flow__nodesselection-rect{position:absolute;pointer-events:all;cursor:-webkit-grab;cursor:grab}.react-flow__handle{position:absolute;pointer-events:none;min-width:5px;min-height:5px;width:6px;height:6px;background:#1a192b;border:1px solid white;border-radius:100%}.react-flow__handle.connectionindicator{pointer-events:all;cursor:crosshair}.react-flow__handle-bottom{top:auto;left:50%;bottom:-4px;transform:translate(-50%)}.react-flow__handle-top{left:50%;top:-4px;transform:translate(-50%)}.react-flow__handle-left{top:50%;left:-4px;transform:translateY(-50%)}.react-flow__handle-right{right:-4px;top:50%;transform:translateY(-50%)}.react-flow__edgeupdater{cursor:move;pointer-events:all}.react-flow__panel{position:absolute;z-index:5;margin:15px}.react-flow__panel.top{top:0}.react-flow__panel.bottom{bottom:0}.react-flow__panel.left{left:0}.react-flow__panel.right{right:0}.react-flow__panel.center{left:50%;transform:translate(-50%)}.react-flow__attribution{font-size:10px;background:#ffffff80;padding:2px 3px;margin:0}.react-flow__attribution a{text-decoration:none;color:#999}@-webkit-keyframes dashdraw{0%{stroke-dashoffset:10}}@keyframes dashdraw{0%{stroke-dashoffset:10}}.react-flow__edgelabel-renderer{position:absolute;width:100%;height:100%;pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}.react-flow__edge.updating .react-flow__edge-path{stroke:#777}.react-flow__edge-text{font-size:10px}.react-flow__node.selectable:focus,.react-flow__node.selectable:focus-visible{outline:none}.react-flow__node-default,.react-flow__node-input,.react-flow__node-output,.react-flow__node-group{padding:10px;border-radius:3px;width:150px;font-size:12px;color:#222;text-align:center;border-width:1px;border-style:solid;border-color:#1a192b;background-color:#fff}.react-flow__node-default.selectable:hover,.react-flow__node-input.selectable:hover,.react-flow__node-output.selectable:hover,.react-flow__node-group.selectable:hover{box-shadow:0 1px 4px 1px #00000014}.react-flow__node-default.selectable.selected,.react-flow__node-default.selectable:focus,.react-flow__node-default.selectable:focus-visible,.react-flow__node-input.selectable.selected,.react-flow__node-input.selectable:focus,.react-flow__node-input.selectable:focus-visible,.react-flow__node-output.selectable.selected,.react-flow__node-output.selectable:focus,.react-flow__node-output.selectable:focus-visible,.react-flow__node-group.selectable.selected,.react-flow__node-group.selectable:focus,.react-flow__node-group.selectable:focus-visible{box-shadow:0 0 0 .5px #1a192b}.react-flow__node-group{background-color:#f0f0f040}.react-flow__nodesselection-rect,.react-flow__selection{background:#0059dc14;border:1px dotted rgba(0,89,220,.8)}.react-flow__nodesselection-rect:focus,.react-flow__nodesselection-rect:focus-visible,.react-flow__selection:focus,.react-flow__selection:focus-visible{outline:none}.react-flow__controls{box-shadow:0 0 2px 1px #00000014}.react-flow__controls-button{border:none;background:#fefefe;border-bottom:1px solid #eee;box-sizing:content-box;display:flex;justify-content:center;align-items:center;width:16px;height:16px;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none;padding:5px}.react-flow__controls-button:hover{background:#f4f4f4}.react-flow__controls-button svg{width:100%;max-width:12px;max-height:12px}.react-flow__controls-button:disabled{pointer-events:none}.react-flow__controls-button:disabled svg{fill-opacity:.4}.react-flow__minimap{background-color:#fff}.react-flow__minimap svg{display:block}.react-flow__resize-control{position:absolute}.react-flow__resize-control.left,.react-flow__resize-control.right{cursor:ew-resize}.react-flow__resize-control.top,.react-flow__resize-control.bottom{cursor:ns-resize}.react-flow__resize-control.top.left,.react-flow__resize-control.bottom.right{cursor:nwse-resize}.react-flow__resize-control.bottom.left,.react-flow__resize-control.top.right{cursor:nesw-resize}.react-flow__resize-control.handle{width:4px;height:4px;border:1px solid #fff;border-radius:1px;background-color:#3367d9;transform:translate(-50%,-50%)}.react-flow__resize-control.handle.left{left:0;top:50%}.react-flow__resize-control.handle.right{left:100%;top:50%}.react-flow__resize-control.handle.top{left:50%;top:0}.react-flow__resize-control.handle.bottom{left:50%;top:100%}.react-flow__resize-control.handle.top.left,.react-flow__resize-control.handle.bottom.left{left:0}.react-flow__resize-control.handle.top.right,.react-flow__resize-control.handle.bottom.right{left:100%}.react-flow__resize-control.line{border-color:#3367d9;border-width:0;border-style:solid}.react-flow__resize-control.line.left,.react-flow__resize-control.line.right{width:1px;transform:translate(-50%);top:0;height:100%}.react-flow__resize-control.line.left{left:0;border-left-width:1px}.react-flow__resize-control.line.right{left:100%;border-right-width:1px}.react-flow__resize-control.line.top,.react-flow__resize-control.line.bottom{height:1px;transform:translateY(-50%);left:0;width:100%}.react-flow__resize-control.line.top{top:0;border-top-width:1px}.react-flow__resize-control.line.bottom{border-bottom-width:1px;top:100%}.custom-handle{opacity:0;transition:opacity .15s ease-in-out}.react-flow__node:hover .custom-handle{opacity:1}.graph-view-controls-overlay{position:absolute;z-index:5;top:12px;left:12px}.graph-view-controls{display:flex;flex-wrap:wrap;gap:6px 12px;align-items:center;padding:6px 10px;border:1px solid rgba(148,163,184,.55);border-radius:12px;background:#fffffff0;box-shadow:0 6px 18px #0f172a1a;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.graph-view-controls__group{display:flex;gap:8px;align-items:center}.graph-view-controls__label{color:#64748b;font-size:11px;font-weight:700;white-space:nowrap}.graph-view-controls__buttons{display:flex;overflow:hidden;border:1px solid #cbd5e1;border-radius:8px}.graph-view-controls__buttons button{border:none;border-left:1px solid #cbd5e1;background:#fff;padding:4px 9px;color:#334155;font-size:11px;font-weight:700;cursor:pointer}.graph-view-controls__buttons button:first-child{border-left:none}.graph-view-controls__buttons button:hover{background:#eef2ff}.graph-view-controls__buttons button.active{background:#0f6fff;color:#fff}@media (max-width: 720px){.graph-view-controls-overlay{top:8px;left:8px}.graph-view-controls__group{display:flex;gap:8px;align-items:center}.graph-view-controls__label{display:none}}.location-graph-node{--node-background: #eff6ff;--node-border: #2563eb;--node-text: #1e3a8a;--node-shadow: rgba(37, 99, 235, .18);position:relative;display:grid;place-items:center;width:116px;height:116px;color:var(--node-text);font-family:inherit}.location-graph-node--storage{--node-background: #fff7ed;--node-border: #ea580c;--node-text: #9a3412;--node-shadow: rgba(234, 88, 12, .2);width:120px;height:100px}.location-graph-node--waypoint{--node-background: #f5f3ff;--node-border: #7c3aed;--node-text: #5b21b6;--node-shadow: rgba(124, 58, 237, .2);width:108px;height:108px}.location-graph-node__shape{position:absolute;inset:0;display:grid;place-items:center;box-sizing:border-box;overflow:hidden;border:3px solid var(--node-border);border-radius:50%;background:var(--node-background);box-shadow:0 8px 18px var(--node-shadow);transition:border-color .14s ease,box-shadow .14s ease,transform .14s ease}.location-graph-node--storage .location-graph-node__shape{border-radius:18px}.location-graph-node--waypoint .location-graph-node__shape{inset:14px;border-radius:14px;transform:rotate(45deg)}.location-graph-node__content{display:flex;flex-direction:column;gap:3px;align-items:center;justify-content:center;width:84%;height:84%;min-width:0;text-align:center}.location-graph-node--waypoint .location-graph-node__content{width:88%;height:88%;transform:rotate(-45deg)}.location-graph-node__icon{display:grid;place-items:center;flex:0 0 auto;width:24px;height:24px}.location-graph-node--waypoint .location-graph-node__icon{width:20px;height:20px}.location-graph-node__icon svg{width:100%;height:100%;fill:none;stroke:currentColor;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round}.location-graph-node__name{display:-webkit-box;width:100%;overflow:hidden;color:inherit;font-size:15px;font-weight:700;line-height:1.2;overflow-wrap:anywhere;-webkit-box-orient:vertical;-webkit-line-clamp:2}.location-graph-node--waypoint .location-graph-node__name{font-size:12px;line-height:1.1}.location-graph-node__type{display:inline-flex;align-items:center;min-height:18px;padding:1px 7px;border:1px solid color-mix(in srgb,var(--node-border) 42%,transparent);border-radius:999px;background:color-mix(in srgb,var(--node-background) 72%,white);color:inherit;font-size:10px;font-weight:800;letter-spacing:.02em;line-height:1;white-space:nowrap}.location-graph-node--waypoint .location-graph-node__type{min-height:15px;padding:0 5px;font-size:9px}.location-graph-node--selected .location-graph-node__shape{border-color:#0f172a;box-shadow:0 0 0 5px #2563eb4d,0 10px 22px var(--node-shadow)}.location-graph-node--route-start{--node-background: #dcfce7;--node-border: #15803d;--node-text: #14532d;--node-shadow: rgba(21, 128, 61, .24)}.location-graph-node--route-end{--node-background: #fee2e2;--node-border: #b91c1c;--node-text: #7f1d1d;--node-shadow: rgba(185, 28, 28, .24)}.location-graph-node--route-via{--node-background: #fef3c7;--node-border: #ca8a04;--node-text: #713f12;--node-shadow: rgba(202, 138, 4, .24)}.location-graph-node__route-badge{position:absolute;z-index:2;top:-8px;right:-10px;display:inline-flex;align-items:center;justify-content:center;min-width:30px;min-height:20px;padding:2px 7px;border:2px solid white;border-radius:999px;color:#fff;font-size:10px;font-weight:800;line-height:1;box-shadow:0 3px 8px #0f172a33}.location-graph-node__route-badge--start{background:#15803d}.location-graph-node__route-badge--end{background:#b91c1c}.location-graph-node__route-badge--via{background:#a16207}.location-graph-legend{display:flex;flex-wrap:wrap;gap:8px 14px;align-items:center;width:fit-content;max-width:calc(100% - 24px);padding:8px 12px;border:1px solid rgba(148,163,184,.55);border-radius:12px;background:#fffffff0;color:#334155;font-size:12px;box-shadow:0 6px 18px #0f172a1a;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.location-graph-legend__title{color:#64748b;font-size:11px;font-weight:700}.location-graph-legend__item{display:inline-flex;gap:6px;align-items:center;font-weight:700;white-space:nowrap}.location-graph-legend__mark{display:inline-block;width:14px;height:14px;box-sizing:border-box;border:2px solid #2563eb;border-radius:50%;background:#eff6ff}.location-graph-legend__mark--storage{border-color:#ea580c;border-radius:4px;background:#fff7ed}.location-graph-legend__mark--waypoint{width:12px;height:12px;margin:1px;border-color:#7c3aed;border-radius:3px;background:#f5f3ff;transform:rotate(45deg)}.location-graph-legend--compact{gap:6px 10px;padding:6px 10px;font-size:11px}.graph-node-legend-overlay{position:absolute;z-index:5;top:12px;right:12px;display:flex;flex-direction:column;gap:8px;align-items:flex-end;pointer-events:none}.location-graph-canvas{position:relative;height:70vh;overflow:hidden;border:1px solid #cbd5e1;border-radius:12px;background:#f8fafc}.route-mini-map{position:relative;width:100%;height:100%;overflow:hidden;border-radius:inherit;background:#f8fafc}@media (max-width: 720px){.graph-node-legend-overlay{top:8px;right:8px}.location-graph-legend{gap:6px 9px;padding:6px 9px}.location-graph-legend__title{display:none}}@media (prefers-reduced-motion: reduce){.location-graph-node__shape{transition:none}}.path-cost-legend{display:flex;flex-wrap:wrap;gap:6px 12px;align-items:center;width:fit-content;max-width:calc(100% - 24px);padding:8px 12px;border:1px solid rgba(148,163,184,.55);border-radius:12px;background:#fffffff0;color:#334155;font-size:12px;box-shadow:0 6px 18px #0f172a1a;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.path-cost-legend__title{color:#64748b;font-size:11px;font-weight:700}.path-cost-legend__scale{display:inline-flex;gap:6px;align-items:center}.path-cost-legend__value{font-size:11px;font-weight:700;font-variant-numeric:tabular-nums}.path-cost-legend__bar{width:92px;height:14px;border-radius:2px;clip-path:polygon(0 42%,100% 0,100% 100%,0 58%)}.path-cost-legend__note{color:#64748b;font-size:11px;white-space:nowrap}.path-cost-legend--compact{gap:4px 8px;padding:6px 10px;font-size:11px}.path-cost-legend--compact .path-cost-legend__bar{width:64px;height:12px}@media (max-width: 720px){.path-cost-legend{gap:4px 8px;padding:6px 9px}.path-cost-legend__title,.path-cost-legend__note{display:none}}.path-cost-legend__note--cap{flex-basis:100%;font-size:10px}.area-zone{width:100%;height:100%;box-sizing:border-box;border:2px dashed;border-radius:18px}.area-zone__label{position:absolute;top:8px;left:12px;display:inline-flex;gap:6px;align-items:center;border:1px solid;border-radius:999px;padding:2px 10px;font-size:12px;font-weight:700;white-space:nowrap}.area-zone__count{opacity:.7;font-size:11px;font-weight:600}.path-canvas-selection{display:flex;flex-wrap:wrap;align-items:center;gap:8px;width:100%;padding:10px;box-sizing:border-box;border:1px solid #c8c8c8;border-radius:6px;background:#f7f8fa}.path-canvas-selection-label{font-size:12px;font-weight:600}.path-canvas-selection button{padding:5px 10px;border:1px solid #9ca3af;background:#fff;color:#1a1a1a}.path-canvas-selection button.active{border-color:#1a192b;background:#1a192b;color:#fff}.path-canvas-selection-help{flex-basis:100%;color:#555;font-size:11px}.path-node-picker-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;width:100%}.path-node-picker{display:flex;flex-direction:column;gap:6px;min-width:0}.path-node-picker>label{font-size:12px;font-weight:600}.path-node-picker input,.path-node-picker select{width:100%;box-sizing:border-box;padding:7px 8px;border:1px solid #c8c8c8;border-radius:4px;background:#fff;color:#1a1a1a}.path-node-picker input:focus,.path-node-picker select:focus{outline:2px solid #1a192b;outline-offset:1px}.path-node-picker select{min-height:92px}.path-node-result-count{color:#666;font-size:11px}@media (max-width: 720px){.path-node-picker-grid{grid-template-columns:minmax(0,1fr)}}.inspector-container{display:flex;flex-direction:column;height:100%;border-left:1px solid #ddd;background-color:#f9f9f9}.inspector-selection{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:8px;min-height:44px;padding:8px 10px;border-bottom:1px solid #ddd;background:#fff}.inspector-selection-main{display:flex;flex-wrap:wrap;align-items:center;gap:8px;min-width:0}.inspector-selection-badge{display:inline-flex;align-items:center;justify-content:center;min-width:62px;border:1px solid transparent;border-radius:999px;padding:2px 8px;font-size:11px;font-weight:700}.inspector-selection-badge.point{border-color:#bfdbfe;background:#eff6ff;color:#1d4ed8}.inspector-selection-badge.waypoint{border-color:#ddd6fe;background:#f5f3ff;color:#6d28d9}.inspector-selection-badge.storage{border-color:#f97316;background:#ffedd5;color:#9a3412}.inspector-selection-badge.path{border-color:#cbd5e1;background:#f1f5f9;color:#334155}.inspector-selection-name{font-size:14px;overflow-wrap:anywhere}.inspector-selection-meta{color:#64748b;font-size:11px}.inspector-selection-empty{color:#64748b;font-size:12px}.inspector-selection-actions{display:flex;flex-wrap:wrap;gap:6px}.inspector-selection-actions button{border:1px solid #cfd4dc;border-radius:6px;background:#fff;padding:3px 9px;font-size:12px;cursor:pointer}.inspector-selection-actions button:hover:not(:disabled){background:#eef2ff}.inspector-selection-actions button:disabled{border-color:#e2e8f0;color:#94a3b8;cursor:default}.inspector-tabs{display:flex;border-bottom:1px solid #ddd}.inspector-tabs button{flex:1;padding:10px;border:none;background-color:#f0f0f0;cursor:pointer;font-size:14px;border-bottom:3px solid transparent;transition:all .2s ease-in-out}.inspector-tabs button.active{background-color:#fff;border-bottom:3px solid #1a192b;font-weight:700}.inspector-content{--inspector-content-padding: 8px;flex-grow:1;overflow-y:auto;padding:var(--inspector-content-padding)}.inspector-content table{width:100%;border-collapse:collapse}.inspector-content th,.inspector-content td{padding:8px;text-align:left;border-bottom:1px solid #eee;font-size:12px;white-space:nowrap}.inspector-content th{background-color:#f2f2f2;font-weight:600;position:sticky;top:calc(-1 * var(--inspector-content-padding));z-index:2}.collapsible-section{margin-bottom:10px}.collapsible-section>h3{display:flex;align-items:center;gap:6px;margin:0 0 6px;border:1px solid #dfe3e8;border-radius:6px;background:#f2f4f7;padding:6px 8px;font-size:13px;cursor:pointer;-webkit-user-select:none;user-select:none}.collapsible-section>h3:hover{background:#e9edf3}.collapsible-section .triangle{color:#64748b;font-size:10px}.add-node-form{display:flex;flex-direction:column;gap:6px;margin-bottom:8px}.add-node-form>input,.add-node-form>select{width:100%;box-sizing:border-box;border:1px solid #c8c8c8;border-radius:4px;padding:6px 8px;background:#fff;color:#1a1a1a}.add-node-form>button{align-self:flex-start;border:1px solid #0f6fff;border-radius:6px;background:#0f6fff;color:#fff;padding:5px 12px;font-weight:600;cursor:pointer}.add-node-form>button:hover{background:#0b5ad1;border-color:#0b5ad1}.area-name{color:#888;font-size:10px;margin-left:4px}.cost-column{width:80px}.cost-input{width:100%;padding:4px;border:1px solid #ccc;border-radius:4px;box-sizing:border-box;text-align:right}.cost-input:focus{outline:none;border-color:#1a192b}.modal-backdrop{position:fixed;top:0;left:0;width:100%;height:100%;background-color:#00000080;display:flex;justify-content:center;align-items:center;z-index:1000}.modal-content{background-color:#fff;padding:20px;border-radius:8px;width:400px;box-shadow:0 4px 10px #0003}.edit-node-form label{display:block;margin-top:10px;font-weight:700;font-size:12px}.edit-node-form input{width:100%;padding:8px;margin-top:5px;border:1px solid #ccc;border-radius:4px;box-sizing:border-box}.legacy-items-notice{margin:8px 0 0;border:1px solid #e7b86b;border-radius:6px;background:#fff8e8;color:#7a4b00;padding:8px 10px;line-height:1.45}.modal-actions{margin-top:20px;text-align:right;display:flex;gap:10px;justify-content:flex-end}.selected-row{background-color:#e6f7ff;font-weight:700}.selected-row>td:first-child{box-shadow:inset 3px 0 #0f6fff}.master-page{display:flex;flex-direction:column;gap:14px;padding:20px}.master-page-header{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px}.master-page-header h1{margin:0}.master-page-toggle{border:1px solid #cfd4dc;border-radius:6px;background:#fff;padding:6px 12px;cursor:pointer}.master-page-toggle:hover{background:#eef2ff}.master-page-hint{margin:0;color:#64748b;font-size:.85rem}.master-page-body{display:flex;align-items:stretch;gap:20px;height:78vh;min-height:480px}.master-page-graph{display:flex;flex:1 1 auto;min-width:min(56vw,880px)}.master-page-graph .location-graph-canvas{flex:1 1 auto;height:auto;min-width:0}.master-page-inspector{display:flex;flex:0 0 clamp(360px,34vw,630px);min-width:0}.master-page-inspector>*{flex:1 1 auto;min-width:0}@media (max-width: 1200px){.master-page-body{flex-direction:column;height:auto}.master-page-graph{height:60vh;min-width:0;min-height:360px}.master-page-inspector{flex:1 1 auto;height:60vh;min-height:360px}.master-page-inspector .inspector-container{border-left:none;border-top:1px solid #ddd}}.locations-panel{display:flex;flex-direction:column;gap:6px}.locations-panel-title{margin:0}.locations-summary-row{display:flex;flex-wrap:wrap;gap:8px;font-size:.9rem;color:#444}.locations-summary-row span{border:1px solid #e2e8f0;background:#f8fafc;border-radius:999px;padding:3px 8px}.locations-summary-row .summary-ok{color:#137333;border-color:#c7e8d0;background:#eefbf2}.locations-summary-row .summary-warn{color:#b54708;border-color:#f3d8bf;background:#fff5eb}.locations-area-chip-row{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:2px}.locations-area-chip{border:1px solid #cfe0ff;background:#f4f8ff;color:#1f4fa8;border-radius:999px;padding:3px 9px;font-size:.82rem;font-weight:600;cursor:pointer}.locations-area-chip:hover{background:#e9f1ff}.locations-area-chip.disabled{border-color:#e2e8f0;background:#f8fafc;color:#94a3b8;cursor:not-allowed}.locations-primary-button{border:1px solid #0f6fff;border-radius:6px;background:#0f6fff;color:#fff;font-weight:600;cursor:pointer}.locations-primary-button:hover{background:#0b5ad1;border-color:#0b5ad1}.locations-table-container{border:1px solid #d9d9d9;border-radius:8px;overflow:visible;background:#fff}.locations-table{--locations-header-group-row-height: 34px;width:100%;border-collapse:collapse;min-width:1180px}.locations-table th,.locations-table td{border:1px solid #e2e2e2;padding:6px;text-align:left}.locations-table thead th{background:#f5f7fa;position:sticky;top:0;z-index:3;box-shadow:0 1px #e2e2e2}.locations-table thead tr:first-child{height:var(--locations-header-group-row-height)}.locations-table thead tr:nth-child(2) th{top:var(--locations-header-group-row-height);z-index:2}.locations-compact-container{max-width:720px}.locations-compact-table{min-width:560px}.locations-group{display:flex;flex-direction:column;gap:6px;margin-top:10px}.locations-group-header{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin:0;font-size:1rem}.locations-group-toggle{display:inline-flex;align-items:center;gap:8px;border:1px solid #d0d7de;border-radius:6px;background:#fff;padding:4px 10px;cursor:pointer;font:inherit}.locations-group-toggle:hover{background:#f4f8ff}.locations-group-triangle{color:#64748b;font-size:.75rem}.locations-group-count{color:#475569;font-size:.85rem;font-weight:600}.locations-group-description{color:#64748b;font-size:.82rem;font-weight:400}.locations-empty-note{margin:0;color:#666;font-size:.9rem}.locations-add-section{margin-top:4px}.locations-name-cell{background:#f9fafb;font-weight:600}.locations-type-badge{display:inline-flex;align-items:center;justify-content:center;min-width:70px;border:1px solid transparent;border-radius:999px;padding:3px 8px;font-size:.75rem;font-weight:700}.locations-type-badge.point{border-color:#bfdbfe;background:#eff6ff;color:#1d4ed8}.locations-type-badge.waypoint{border-color:#ddd6fe;background:#f5f3ff;color:#6d28d9}.locations-type-badge.storage{background:#ffedd5;color:#9a3412;border-color:#f97316}.locations-numeric-col,.locations-numeric-cell{width:78px;min-width:78px;max-width:78px;text-align:right}.locations-numeric-col.legacy-items-col,.locations-numeric-cell.legacy-items-cell{background:#fffaf0;color:#7a4b00;font-weight:700}.locations-action-cell{display:flex;gap:6px}.locations-action-button{border:1px solid #cfd4dc;border-radius:6px;background:#fff;padding:4px 10px;cursor:pointer}.locations-action-button:hover{background:#eef2ff}.locations-empty-cell{color:#666;text-align:center;padding:10px 8px}.locations-add-row{background:#f8fbff}.locations-add-row input{width:100%;box-sizing:border-box;border:1px solid #d0d7de;border-radius:4px;padding:4px 6px}.locations-add-row input:disabled{border-color:#e2e8f0;background:#f1f5f9;color:#94a3b8;cursor:not-allowed}.locations-add-row select{width:100%;box-sizing:border-box;border:1px solid #d0d7de;border-radius:4px;padding:4px 6px;background:#fff}.locations-jump-highlight td{animation:locations-jump-pulse 1s ease-out}@keyframes locations-jump-pulse{0%{background-color:#fff7cc}to{background-color:inherit}}@media (max-width: 900px){.locations-table{min-width:1100px}.locations-compact-table{min-width:520px}}@media (max-width: 600px){.locations-table{min-width:1020px}.locations-compact-table{min-width:460px}}.locations-page-container{padding:12px;display:flex;flex-direction:column;gap:8px}.locations-page-header{display:flex;flex-direction:column;gap:4px}.locations-page-header-main{display:flex;align-items:center;justify-content:space-between;gap:10px}.locations-page-header h1{margin:0}.locations-page-badge{display:inline-flex;align-items:center;justify-content:center;border-radius:999px;border:1px solid #cfe0ff;background:#edf4ff;color:#2055ad;font-size:.82rem;font-weight:700;padding:4px 10px}.locations-panel-wrapper{display:block}.pathfinding-page{--pathfinding-accent: #2563eb;--pathfinding-border: #dbe3ee;--pathfinding-muted: #64748b;--pathfinding-surface: #ffffff;box-sizing:border-box;min-height:calc(100vh - 120px);padding:24px;color:#172033}.pathfinding-page__header{margin-bottom:18px}.pathfinding-page__eyebrow{display:block;margin-bottom:4px;color:var(--pathfinding-accent);font-size:.75rem;font-weight:800;letter-spacing:.08em}.pathfinding-page__header h2{margin:0;color:#0f172a;font-size:clamp(1.5rem,2.5vw,2rem);line-height:1.25}.pathfinding-page__header p{margin:7px 0 0;color:var(--pathfinding-muted);font-size:.94rem}.pathfinding-controls{display:flex;gap:20px;align-items:center;justify-content:space-between;margin-bottom:14px;padding:16px 18px;border:1px solid var(--pathfinding-border);border-radius:12px;background:var(--pathfinding-surface);box-shadow:0 4px 14px #0f172a0d}.pathfinding-controls h3,.route-table-panel__header h3,.route-viewer__map-header h3{margin:0;color:#1e293b;font-size:1rem;line-height:1.35}.pathfinding-controls p,.route-table-panel__header p,.route-viewer__map-header p{margin:4px 0 0;color:var(--pathfinding-muted);font-size:.84rem;line-height:1.45}.pathfinding-controls__button{display:inline-flex;flex:0 0 auto;gap:8px;align-items:center;justify-content:center;min-height:42px;padding:9px 16px;border:1px solid #1d4ed8;border-radius:9px;background:var(--pathfinding-accent);color:#fff;font-size:.9rem;font-weight:700;box-shadow:0 4px 10px #2563eb33;transition:background-color .14s ease,box-shadow .14s ease,transform .14s ease}.pathfinding-controls__button:hover{border-color:#1e40af;background:#1d4ed8;box-shadow:0 6px 14px #2563eb42;transform:translateY(-1px)}.pathfinding-controls__button:focus-visible{outline:3px solid rgba(37,99,235,.3);outline-offset:2px}.pathfinding-controls__button svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}.calculation-status{display:flex;gap:18px;align-items:stretch;margin-bottom:18px;overflow:hidden;border:1px solid var(--pathfinding-border);border-left:4px solid #94a3b8;border-radius:12px;background:var(--pathfinding-surface)}.calculation-status--current{border-left-color:#16a34a}.calculation-status--stale{border-left-color:#d97706;background:#fffbeb}.calculation-status__count{display:flex;flex:0 0 154px;flex-direction:column;justify-content:center;padding:13px 18px;border-right:1px solid var(--pathfinding-border)}.calculation-status__count>span{color:var(--pathfinding-muted);font-size:.75rem;font-weight:700}.calculation-status__count strong{margin-top:1px;color:#0f172a;font-size:1.45rem;line-height:1.15}.calculation-status__count small{margin-left:3px;font-size:.75rem}.calculation-status__detail{display:flex;flex:1;gap:12px;align-items:center;min-width:0;padding:13px 18px 13px 0}.calculation-status__detail p{margin:0;color:#475569;font-size:.84rem}.calculation-status__badge{display:inline-flex;flex:0 0 auto;gap:6px;align-items:center;padding:4px 9px;border:1px solid #cbd5e1;border-radius:999px;background:#f8fafc;color:#475569;font-size:.75rem;font-weight:800}.calculation-status__badge>span{width:7px;height:7px;border-radius:50%;background:#94a3b8}.calculation-status--current .calculation-status__badge{border-color:#bbf7d0;background:#f0fdf4;color:#166534}.calculation-status--current .calculation-status__badge>span{background:#16a34a}.calculation-status--stale .calculation-status__badge{border-color:#fde68a;background:#fff;color:#92400e}.calculation-status--stale .calculation-status__badge>span{background:#d97706}.pathfinding-page__viewer{height:clamp(540px,67vh,820px);min-height:0}.route-viewer{display:flex;gap:18px;width:100%;height:100%;min-height:0}.route-viewer__list,.route-viewer__map{min-width:0;overflow:hidden;border:1px solid var(--pathfinding-border);border-radius:12px;background:var(--pathfinding-surface);box-shadow:0 4px 14px #0f172a0d}.route-viewer__list{flex:1}.route-viewer__map{display:flex;flex:2.3;flex-direction:column}.route-viewer__map-header{flex:0 0 auto;padding:14px 16px;border-bottom:1px solid var(--pathfinding-border)}.route-viewer__map-canvas{flex:1;min-height:0}.route-table-panel{display:flex;flex-direction:column;box-sizing:border-box;height:100%;min-height:0;padding:16px}.route-table-panel__header{flex:0 0 auto;margin-bottom:15px}.route-table-panel__label{margin-bottom:6px;color:#334155;font-size:.78rem;font-weight:800}.route-table-panel__select{flex:0 0 auto;width:100%;min-height:42px;margin-bottom:15px;padding:8px 34px 8px 11px;border:1px solid #cbd5e1;border-radius:8px;background:#fff;color:#1e293b;font:inherit;font-size:.9rem}.route-table-panel__select:hover{border-color:#94a3b8}.route-table-panel__select:focus{border-color:var(--pathfinding-accent);outline:3px solid rgba(37,99,235,.15)}.route-table-panel__results{display:flex;flex:1;flex-direction:column;min-height:0}.route-table-panel__results-count{flex:0 0 auto;margin-bottom:7px;color:var(--pathfinding-muted);font-size:.75rem}.route-table-panel__results-count strong{margin-left:3px;color:#1e293b}.route-table-panel__table-wrap{flex:1;min-height:0;overflow:auto;border:1px solid #e2e8f0;border-radius:8px}.route-table-panel__table{width:100%;border-collapse:separate;border-spacing:0;color:#334155;font-size:.82rem}.route-table-panel__table th,.route-table-panel__table td{padding:10px 11px;border-bottom:1px solid #e2e8f0;text-align:left}.route-table-panel__table th{position:sticky;z-index:1;top:0;background:#f8fafc;color:#475569;font-size:.72rem;font-weight:800;white-space:nowrap}.route-table-panel__table tbody tr{cursor:pointer;transition:background-color .12s ease,box-shadow .12s ease}.route-table-panel__table tbody tr:hover{background:#f8fafc}.route-table-panel__table tbody tr:focus-visible{position:relative;z-index:2;outline:3px solid rgba(37,99,235,.25);outline-offset:-3px}.route-table-panel__table tbody tr:last-child td{border-bottom:0}.route-table-panel__row--selected{background:#eff6ff!important;box-shadow:inset 3px 0 0 var(--pathfinding-accent)}.route-table-panel__row--selected td:first-child{color:#1d4ed8;font-weight:800}.route-table-panel__no-results{margin:0;padding:18px 12px;border:1px dashed #cbd5e1;border-radius:8px;color:var(--pathfinding-muted);font-size:.84rem;text-align:center}.route-viewer-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;box-sizing:border-box;height:100%;min-height:260px;padding:32px;border:1px dashed #cbd5e1;border-radius:12px;background:#f8fafc;text-align:center}.route-viewer-empty>span{display:grid;place-items:center;width:42px;height:42px;margin-bottom:10px;border-radius:50%;background:#dbeafe;color:#1d4ed8;font-size:1.25rem;font-weight:800}.route-viewer-empty strong{color:#1e293b;font-size:.95rem}.route-viewer-empty p{margin:5px 0 0;color:var(--pathfinding-muted);font-size:.84rem}@media (max-width: 960px){.pathfinding-page__viewer{height:auto}.route-viewer{flex-direction:column}.route-viewer__list{height:460px;flex:none}.route-viewer__map{height:560px;flex:none}}@media (max-width: 640px){.pathfinding-page{padding:16px}.pathfinding-controls{align-items:stretch;flex-direction:column}.pathfinding-controls__button{width:100%}.calculation-status{gap:0;flex-direction:column}.calculation-status__count{flex-basis:auto;border-right:0;border-bottom:1px solid var(--pathfinding-border)}.calculation-status__detail{align-items:flex-start;padding:13px 18px;flex-direction:column}}@media (prefers-reduced-motion: reduce){.pathfinding-controls__button,.route-table-panel__table tbody tr{transition:none}}.solver-page{--solver-accent: #2563eb;--solver-border: #dbe3ee;--solver-muted: #64748b;--solver-surface: #ffffff;box-sizing:border-box;max-width:1360px;min-width:0;margin:0 auto;color:#172033}.solver-page__header{margin-bottom:18px}.solver-page__eyebrow,.solver-section-header__eyebrow{display:block;margin-bottom:4px;color:var(--solver-accent);font-size:.75rem;font-weight:800;letter-spacing:.08em}.solver-page__header h1{margin:0;color:#0f172a;font-size:clamp(1.5rem,2.5vw,2rem);line-height:1.25}.solver-page__header p{margin:7px 0 0;color:var(--solver-muted);font-size:.94rem}.transportation-solver{display:flex;min-width:0;flex-direction:column;gap:18px}.solver-settings,.solver-results,.solver-attempt{min-width:0;border:1px solid var(--solver-border);border-radius:12px;background:var(--solver-surface);box-shadow:0 4px 14px #0f172a0d}.solver-settings{padding:18px 20px}.solver-section-header h2,.solver-task-section__header h3{margin:0;color:#1e293b;line-height:1.35}.solver-section-header h2{font-size:1.1rem}.solver-section-header p,.solver-task-section__header p{margin:4px 0 0;color:var(--solver-muted);font-size:.84rem;line-height:1.45}.solver-settings__body{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(260px,.9fr);gap:18px;margin-top:18px}.solver-category-fieldset{min-width:0;margin:0;padding:0;border:0}.solver-category-fieldset legend{margin-bottom:10px;padding:0;color:#334155;font-size:.82rem;font-weight:800}.solver-category-options{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:8px}.solver-category-option{display:flex;min-height:42px;box-sizing:border-box;gap:8px;align-items:center;padding:8px 10px;border:1px solid #dbe3ee;border-radius:8px;background:#f8fafc;color:#334155;cursor:pointer;font-size:.88rem;font-weight:700;transition:border-color .14s ease,background-color .14s ease}.solver-category-option:hover{border-color:#93c5fd;background:#f0f7ff}.solver-category-option:has(input:checked){border-color:#93c5fd;background:#eff6ff;color:#1d4ed8}.solver-category-option input{width:16px;height:16px;margin:0;accent-color:var(--solver-accent)}.solver-number-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.solver-number-field{display:flex;flex-direction:column;gap:5px;min-width:0;padding:10px 11px;border:1px solid #e2e8f0;border-radius:9px;background:#fbfdff}.solver-number-field__label{color:#334155;font-size:.82rem;font-weight:800}.solver-number-field__hint{min-height:2.5em;color:var(--solver-muted);font-size:.73rem;line-height:1.35}.solver-number-field input,.solver-task-filter select{box-sizing:border-box;border:1px solid #cbd5e1;border-radius:8px;background:#fff;color:#1e293b;font:inherit}.solver-number-field input{width:100%;min-height:38px;padding:7px 9px;font-size:.92rem}.solver-number-field input:hover,.solver-task-filter select:hover{border-color:#94a3b8}.solver-number-field input:focus,.solver-task-filter select:focus{border-color:var(--solver-accent);outline:3px solid rgba(37,99,235,.15)}.solver-actions{display:flex;justify-content:flex-end;gap:9px;margin-top:18px;padding-top:16px;border-top:1px solid #e5eaf1}.solver-action-button,.solver-export-button{min-height:42px;border-radius:9px;padding:9px 16px;font:inherit;font-size:.88rem;font-weight:800;cursor:pointer;transition:background-color .14s ease,border-color .14s ease,box-shadow .14s ease,transform .14s ease}.solver-action-button:focus-visible,.solver-export-button:focus-visible,.solver-task-filter select:focus-visible,.solver-number-field input:focus-visible,.solver-category-option:focus-within{outline:3px solid rgba(37,99,235,.25);outline-offset:2px}.solver-action-button--primary,.solver-export-button{border:1px solid #1d4ed8;background:var(--solver-accent);color:#fff;box-shadow:0 4px 10px #2563eb2e}.solver-action-button--primary:hover:not(:disabled),.solver-export-button:hover:not(:disabled){border-color:#1e40af;background:#1d4ed8;box-shadow:0 6px 14px #2563eb3d;transform:translateY(-1px)}.solver-action-button--secondary{border:1px solid #b9c7da;background:#fff;color:#334155}.solver-action-button--secondary:hover:not(:disabled){border-color:#64748b;background:#f8fafc}.solver-action-button:disabled,.solver-export-button:disabled{cursor:not-allowed;opacity:.58}.solver-progress{display:grid;grid-template-columns:minmax(300px,360px) 1fr;gap:24px;align-items:stretch;overflow:hidden;border:1px solid #bfdbfe;border-radius:16px;background:linear-gradient(135deg,#eff6ff,#fff 58%,#fffbeb);box-shadow:0 8px 24px #2563eb1a}.solver-progress__scene{position:relative;min-height:248px;overflow:hidden;isolation:isolate;background:radial-gradient(circle at 22% 24%,rgba(255,255,255,.95) 0 5px,transparent 6px),radial-gradient(circle at 78% 72%,rgba(255,255,255,.85) 0 4px,transparent 5px),linear-gradient(145deg,#dbeafe,#bfdbfe 58%,#fef3c7)}.solver-progress__campus-map{position:absolute;z-index:1;inset:0;overflow:hidden;opacity:.94;filter:saturate(.88) contrast(.96);animation:solver-progress-map-reveal .9s ease-out both,solver-progress-map-breathe 5s ease-in-out .9s infinite;pointer-events:none}.solver-progress__campus-art{display:block;width:100%;height:100%}.solver-progress__campus-image{opacity:.9;mix-blend-mode:multiply}.solver-progress__campus-route{fill:none;stroke:#2563eb;stroke-width:5;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:18 12;opacity:.68;animation:solver-progress-campus-route 1.8s linear infinite}.solver-progress__campus-node{fill:none;stroke:#2563eb;stroke-width:4;opacity:.72;transform-box:fill-box;transform-origin:center;animation:solver-progress-campus-node 1.8s ease-in-out infinite}.solver-progress__campus-yagapon{filter:drop-shadow(0 12px 8px rgba(30,64,175,.2))}.solver-progress__scene:before{position:absolute;z-index:1;inset:0;background:linear-gradient(135deg,#dbeafe2e,#ffffff14 46%,#fef3c747);content:"";pointer-events:none}.solver-progress__scene:after{position:absolute;z-index:6;inset:14px;border:1px solid rgba(255,255,255,.55);border-radius:13px;content:"";pointer-events:none}.solver-progress__spark,.solver-progress__parcel{position:absolute;z-index:3;line-height:1;animation:solver-progress-sparkle 1.7s ease-in-out infinite}.solver-progress__spark{color:#f59e0b;font-size:1.1rem}.solver-progress__spark--one{top:22%;left:17%}.solver-progress__spark--two{right:17%;bottom:18%;animation-delay:.42s}.solver-progress__parcel{color:#1d4ed8b8;font-size:1.5rem;animation-name:solver-progress-parcel}.solver-progress__parcel--one{top:19%;right:22%;animation-delay:.18s}.solver-progress__parcel--two{bottom:17%;left:16%;animation-delay:.76s}.solver-progress__content{min-width:0;padding:21px 24px 20px 0}.solver-progress__topline,.solver-progress__stats{display:flex;gap:12px;align-items:center;justify-content:space-between}.solver-progress__badge{display:inline-flex;gap:7px;align-items:center;color:#1d4ed8;font-size:.77rem;font-weight:800}.solver-progress__badge>span{width:8px;height:8px;border-radius:50%;background:#2563eb;box-shadow:0 0 0 4px #2563eb24;animation:solver-progress-pulse 1.4s ease-in-out infinite}.solver-progress__elapsed{color:#64748b;font-size:.78rem;font-variant-numeric:tabular-nums}.solver-progress__elapsed strong{margin-left:4px;color:#0f172a;font-size:1.05rem;letter-spacing:.03em}.solver-progress__content h3{margin:12px 0 4px;color:#0f172a;font-size:clamp(1.1rem,2vw,1.35rem);line-height:1.35}.solver-progress__content p{min-height:2.9em;margin:0;color:#475569;font-size:.86rem;line-height:1.55}.solver-progress__message{animation:solver-progress-message-in .42s ease-out both}.solver-progress__meter{position:relative;height:10px;margin-top:15px;overflow:hidden;border-radius:999px;background:#dbeafe}.solver-progress__meter>span{position:absolute;top:0;bottom:0;left:-38%;width:38%;border-radius:inherit;background:linear-gradient(90deg,transparent,#38bdf8,#fbbf24,transparent);animation:solver-progress-shimmer 1.35s linear infinite}.solver-progress__stats{align-items:flex-start;margin-top:11px;color:#64748b;font-size:.76rem}.solver-progress__stats span{display:flex;min-width:0;flex-direction:column;gap:3px}.solver-progress__stats small{color:#64748b;font-size:.69rem;font-weight:700}.solver-progress__stats strong{overflow:hidden;color:#1e293b;font-size:.8rem;font-weight:800;text-overflow:ellipsis;white-space:nowrap}@keyframes solver-progress-campus-route{to{stroke-dashoffset:-18}}@keyframes solver-progress-campus-node{0%,to{opacity:.42;transform:scale(.92)}50%{opacity:.9;transform:scale(1.16)}}@keyframes solver-progress-map-reveal{0%{opacity:0;transform:scale(.96)}to{opacity:.94;transform:scale(1)}}@keyframes solver-progress-map-breathe{0%,to{opacity:.84}50%{opacity:.94}}@keyframes solver-progress-message-in{0%{opacity:.2;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}@keyframes solver-progress-pulse{0%,to{opacity:.55;transform:scale(.85)}50%{opacity:1;transform:scale(1.15)}}@keyframes solver-progress-sparkle{0%,to{opacity:.2;transform:translateY(3px) scale(.75) rotate(0)}50%{opacity:1;transform:translateY(-4px) scale(1.1) rotate(18deg)}}@keyframes solver-progress-parcel{0%,to{opacity:.35;transform:translateY(3px) rotate(-8deg)}50%{opacity:.9;transform:translateY(-5px) rotate(8deg)}}@keyframes solver-progress-shimmer{0%{transform:translate(0)}to{transform:translate(365%)}}.solver-error{border:1px solid #fecdd3;border-left:4px solid #e11d48;border-radius:10px;background:#fff1f2;padding:12px 16px;color:#9f1239}.solver-error strong{font-size:.9rem}.solver-error p{margin:4px 0 0;line-height:1.5}.solver-results{padding:18px 20px 20px}.solver-attempt{padding:18px 20px 20px;border-color:#fecdd3;background:snow}.solver-attempt__header{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:14px}.solver-attempt__header h2{margin:0;color:#881337;font-size:1.05rem}.solver-attempt__header p{margin:4px 0 0;color:#9f1239;font-size:.84rem;line-height:1.45}.solver-unsaved-badge,.solver-current-badge{display:inline-flex;flex:0 0 auto;align-items:center;border-radius:999px;padding:4px 9px;font-size:.73rem;font-weight:800}.solver-unsaved-badge{border:1px solid #fecdd3;background:#fff1f2;color:#be123c}.solver-current-message{border:1px dashed #cbd5e1;border-radius:9px;background:#f8fafc;padding:18px 14px;color:var(--solver-muted);text-align:center;font-size:.87rem;line-height:1.5}.solver-current-message--error{border-style:solid;border-color:#fecdd3;background:#fff1f2;color:#9f1239;text-align:left}.solver-current-message p{margin:4px 0 0}.solver-current-summary{margin-bottom:14px;padding:13px 14px;border:1px solid #bfdbfe;border-radius:9px;background:#f8fbff}.solver-current-summary__topline{display:flex;align-items:center;justify-content:space-between;gap:12px;color:var(--solver-muted);font-size:.73rem}.solver-current-summary__topline>span:last-child{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.solver-current-badge{border:1px solid #bfdbfe;background:#eff6ff;color:#1d4ed8}.solver-current-metadata{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin:12px 0 0}.solver-current-metadata div{min-width:0;padding-left:10px;border-left:2px solid #dbeafe}.solver-current-metadata dt{color:var(--solver-muted);font-size:.69rem;font-weight:700}.solver-current-metadata dd{overflow:hidden;margin:3px 0 0;color:#1e293b;font-size:.82rem;font-weight:800;text-overflow:ellipsis;white-space:nowrap}.solver-results__header{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:18px}.solver-export-button{flex:0 0 auto}.solver-result-list,.solver-task-list{display:grid;gap:9px;margin:0;padding:0;list-style:none}.solver-result-card{padding:12px 14px;border:1px solid #dbe3ee;border-left:4px solid #94a3b8;border-radius:9px;background:#fbfdff}.solver-result-card--optimal{border-left-color:#16a34a}.solver-result-card--feasible{border-left-color:#2563eb}.solver-result-card--failure{border-left-color:#e11d48;background:snow}.solver-result-card__header{display:flex;align-items:center;justify-content:space-between;gap:12px}.solver-result-card__header strong{color:#1e293b;font-size:.94rem}.solver-status-badge,.solver-task-count{display:inline-flex;flex:0 0 auto;align-items:center;border-radius:999px;padding:4px 9px;font-size:.75rem;font-weight:800}.solver-status-badge--optimal{border:1px solid #bbf7d0;background:#f0fdf4;color:#166534}.solver-status-badge--feasible{border:1px solid #bfdbfe;background:#eff6ff;color:#1d4ed8}.solver-status-badge--failure{border:1px solid #fecdd3;background:#fff1f2;color:#be123c}.solver-result-card__metrics{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}.solver-result-card__metrics span{display:inline-flex;gap:5px;align-items:baseline;padding:5px 9px;border:1px solid #e2e8f0;border-radius:6px;background:#fff;color:#334155;font-size:.82rem;font-weight:700}.solver-result-card__metrics small{color:var(--solver-muted);font-size:.7rem;font-weight:700}.solver-result-card__reason{display:flex;gap:6px;margin:8px 0 0;color:#9f1239;font-size:.83rem;line-height:1.5}.solver-result-card__reason span{flex:0 0 auto;font-weight:800}.solver-task-section{margin-top:20px;padding-top:20px;border-top:1px solid #e5eaf1}.solver-task-section__header{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}.solver-task-section__header h3{font-size:1rem}.solver-task-count{border:1px solid #bfdbfe;background:#eff6ff;color:#1d4ed8}.solver-task-filter{display:flex;align-items:center;gap:9px;margin:15px 0 10px}.solver-task-filter label{color:#334155;font-size:.82rem;font-weight:800}.solver-task-filter select{min-height:38px;min-width:210px;padding:7px 32px 7px 9px;font-size:.86rem}.solver-task-list{max-height:360px;overflow-y:auto;padding-right:4px}.solver-task-item{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:11px 13px;border:1px solid #e2e8f0;border-radius:8px;background:#f8fafc}.solver-task-item__route{display:flex;min-width:0;gap:7px;align-items:center;color:#334155;font-size:.86rem;line-height:1.4}.solver-task-item__route span:not(.solver-task-item__arrow){overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.solver-task-item__arrow{flex:0 0 auto;color:#94a3b8;font-weight:800}.solver-task-item__details{display:flex;flex:0 0 auto;gap:8px;align-items:center}.solver-task-item__details strong{color:#1d4ed8;font-size:.9rem;white-space:nowrap}.solver-task-item__details span{border-radius:999px;background:#e2e8f0;padding:3px 8px;color:#475569;font-size:.75rem;font-weight:700;white-space:nowrap}.solver-task-empty{margin:0;border:1px dashed #cbd5e1;border-radius:8px;background:#fbfdff;padding:18px 12px;color:var(--solver-muted);text-align:center;font-size:.86rem}@media (max-width: 900px){.solver-settings__body{grid-template-columns:1fr}.solver-current-metadata{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width: 640px){.solver-settings,.solver-results,.solver-attempt{padding:15px}.solver-results__header,.solver-task-section__header,.solver-attempt__header{align-items:stretch;flex-direction:column}.solver-export-button{align-self:flex-start}.solver-number-fields{grid-template-columns:1fr}.solver-actions{align-items:stretch;flex-direction:column}.solver-action-button{width:100%}.solver-progress{display:block}.solver-progress__scene{min-height:190px}.solver-progress__content{padding:17px 18px 18px}.solver-progress__stats{flex-wrap:wrap}.solver-progress__stats span{flex:1 1 120px}.solver-task-filter{align-items:stretch;flex-direction:column}.solver-task-filter select{width:100%}.solver-current-summary__topline{align-items:flex-start;flex-direction:column}.solver-current-metadata{grid-template-columns:1fr}.solver-task-item{align-items:flex-start;flex-direction:column;gap:8px}.solver-task-item__route{width:100%}}@media (prefers-reduced-motion: reduce){.solver-category-option,.solver-action-button,.solver-export-button,.solver-progress__meter>span{transition:none}.solver-progress__campus-map,.solver-progress__campus-route,.solver-progress__campus-node,.solver-progress__badge>span,.solver-progress__spark,.solver-progress__parcel,.solver-progress__message,.solver-progress__meter>span{animation:none}}.tent-allocation-inline{display:grid;grid-template-columns:minmax(96px,1fr) 50px 36px;gap:5px;width:100%;min-width:0;box-sizing:border-box}.tent-allocation-inline.empty{grid-template-columns:minmax(0,1fr)}.tent-allocation-inline select,.tent-allocation-inline input{box-sizing:border-box;min-width:0;min-height:38px;border:1px solid #cbd5e1;border-radius:6px;background:#fff;padding:6px 8px;color:#1d2939}.tent-allocation-inline>button,.tent-allocation-summary{min-height:38px;border:1px solid #9fb7d4;border-radius:6px;background:#f4f8ff;color:#174ea6;cursor:pointer}.tent-allocation-inline>button{width:36px;min-width:36px;padding:0}.tent-allocation-inline.invalid select{border-color:#e11d48;background:#fff1f2}.tent-allocation-summary{display:flex;width:100%;min-width:0;align-items:center;justify-content:space-between;gap:8px;padding:7px 10px}.tent-allocation-summary strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tent-allocation-summary span{font-size:.78rem}.tent-allocation-dialog-backdrop{position:fixed;z-index:120;inset:0;display:grid;place-items:center;background:#0f172a7a;padding:20px}.tent-allocation-dialog{width:min(620px,94vw);max-height:82vh;overflow-y:auto;border-radius:12px;background:#fff;padding:18px;box-shadow:0 24px 70px #0f172a4d}.tent-allocation-dialog header,.tent-allocation-dialog footer{display:flex;align-items:center;justify-content:space-between;gap:10px}.tent-allocation-dialog h3{margin:0}.tent-allocation-dialog button{min-height:42px;border:1px solid #cbd5e1;border-radius:7px;background:#fff;padding:7px 12px;cursor:pointer}.tent-allocation-dialog-rows{display:grid;gap:8px;margin:18px 0 10px}.tent-allocation-dialog-rows>div{display:grid;grid-template-columns:minmax(0,1fr) 96px auto;gap:8px}.tent-allocation-dialog select,.tent-allocation-dialog input{box-sizing:border-box;min-width:0;min-height:42px;border:1px solid #cbd5e1;border-radius:6px;background:#fff;padding:7px 9px}.tent-allocation-dialog .tent-allocation-add{margin-bottom:18px}.tent-allocation-dialog footer{justify-content:flex-end;border-top:1px solid #e4e7ec;padding-top:14px}.tent-allocation-dialog button.primary{border-color:#0f6fff;background:#0f6fff;color:#fff;font-weight:700}@media (max-width: 560px){.tent-allocation-dialog-rows>div{grid-template-columns:minmax(0,1fr) 82px}.tent-allocation-dialog-rows>div button{grid-column:1 / -1}}.tent-type-dialog-backdrop{position:fixed;z-index:100;inset:0;display:grid;place-items:center;background:#0f172a7a;padding:24px}.tent-type-dialog{display:flex;width:min(1080px,96vw);max-height:min(86vh,820px);flex-direction:column;overflow:hidden;border-radius:14px;background:#fff;box-shadow:0 24px 70px #0f172a4d}.tent-type-dialog>header,.tent-type-dialog>footer{display:flex;align-items:center;justify-content:space-between;gap:12px;border-bottom:1px solid #dbe3ee;padding:16px 20px}.tent-type-dialog>header span{color:#667085;font-size:.8rem}.tent-type-dialog h2{margin:2px 0 0;color:#172033}.tent-type-dialog button{min-height:44px;border:1px solid #cbd5e1;border-radius:7px;background:#fff;color:#344054;cursor:pointer;padding:8px 14px}.tent-type-dialog button.primary{border-color:#0f6fff;background:#0f6fff;color:#fff;font-weight:700}.tent-type-dialog button:disabled{cursor:not-allowed;opacity:.5}.tent-type-dialog-body{display:grid;gap:12px;min-height:0;overflow-y:auto;padding:18px 20px}.tent-type-dialog-table-wrap{overflow-x:auto;border:1px solid #dbe3ee;border-radius:9px}.tent-type-dialog table{width:100%;min-width:860px;border-collapse:collapse}.tent-type-dialog th,.tent-type-dialog td{border-bottom:1px solid #e6ebf2;padding:9px 10px;text-align:left}.tent-type-dialog th{background:#f8fafc;color:#475467;font-size:.82rem}.tent-type-dialog tr.invalid{background:#fff5f5}.tent-type-dialog input:not([type=checkbox]),.tent-type-dialog select{box-sizing:border-box;width:100%;min-height:40px;border:1px solid #cbd5e1;border-radius:6px;background:#fff;padding:7px 9px;color:#1d2939;font-size:.9rem}.tent-type-active-toggle{display:inline-flex;align-items:center;gap:7px;white-space:nowrap}.tent-type-add-button{justify-self:start}.tent-type-issues,.tent-type-save-error{margin:0;border:1px solid #f4b4bd;border-radius:8px;background:#fff1f2;padding:10px 14px;color:#9f1239}.tent-type-issues{padding-left:32px}.tent-type-dialog>footer{justify-content:flex-end;border-top:1px solid #dbe3ee;border-bottom:0}@media (max-width: 700px){.tent-type-dialog-backdrop{align-items:end;padding:0}.tent-type-dialog{width:100%;max-height:90vh;border-radius:16px 16px 0 0}}@media (prefers-reduced-motion: reduce){.tent-type-dialog *,.tent-type-dialog *:before,.tent-type-dialog *:after{transition:none!important}}.distribution-page-container{--dist-line: #dbe2ee;--dist-text: #1f2937;padding:20px;height:auto;min-height:calc(100vh - 40px);display:flex;flex-direction:column;gap:14px;min-width:0;max-width:100%;box-sizing:border-box}.distribution-page-header h1{margin:0}.distribution-page-header{display:flex;flex-direction:column;gap:8px;background:linear-gradient(180deg,#fff,#f7faff);border:1px solid #d9e3f6;border-radius:10px;padding:12px 14px}.distribution-page-header-main{display:flex;justify-content:space-between;align-items:center;gap:12px}.distribution-header-actions{display:flex;align-items:center;gap:8px}.distribution-page-header p{margin:0;color:#425166}.distribution-title-wrap{display:flex;align-items:center;gap:10px}.save-button{border:1px solid #cfcfcf;border-radius:6px;background:#fff;padding:8px 12px;cursor:pointer}.save-button{background:#0f6fff;border-color:#0f6fff;color:#fff}.save-button.secondary{background:#fff;border-color:#cfd4dc;color:#1f2937}.distribution-meta-row{display:flex;flex-wrap:wrap;gap:10px}.tent-inventory-summary{display:flex;min-width:0;align-items:center;gap:12px;border:1px solid #dbe3ee;border-radius:9px;background:#fff;padding:10px 12px}.tent-inventory-summary>strong{flex:0 0 auto;color:#344054}.tent-inventory-summary>div{display:flex;min-width:0;gap:7px;overflow-x:auto;scrollbar-width:thin}.tent-inventory-summary span{flex:0 0 auto;border:1px solid #dbe3ee;border-radius:999px;background:#f8fafc;padding:5px 9px;color:#475467;font-size:.82rem}.tent-inventory-summary span.exceeded{border-color:#f0a4b4;background:#fff1f2;color:#9f1239;font-weight:700}.distribution-tent-warning,.distribution-mismatch-warning,.distribution-tent-errors{border:1px solid #f3c66b;border-radius:8px;background:#fff8e8;padding:10px 12px;color:#8a5800}.distribution-tent-errors{border-color:#f0a4b4;background:#fff1f2;color:#9f1239}.distribution-tent-errors p{margin:3px 0}.long-desk-reference-notice{display:flex;flex-wrap:wrap;gap:6px 12px;border:1px solid #e7b86b;border-radius:8px;background:#fff8e8;color:#7a4b00;padding:10px 12px;line-height:1.45}.long-desk-reference-notice strong{flex:0 0 auto}.distribution-meta-chip{display:inline-flex;align-items:center;border-radius:999px;border:1px solid #dce2eb;background:#f8fafc;color:var(--dist-text);font-size:.86rem;font-weight:600;padding:5px 11px}.distribution-meta-chip.unsaved{border-color:#efb9c6;background:#fff0f3;color:#9b1239}.distribution-meta-chip.saved{border-color:#bde4cd;background:#edf9f1;color:#0f7b37}.distribution-source-panel{border:1px solid #dde3ed;border-radius:8px;background:#fff;padding:6px 10px}.distribution-source-panel summary{cursor:pointer;color:#374151;font-size:.9rem;font-weight:700}.distribution-source-panel p{margin:3px 0;color:#4b5565;font-size:.84rem;line-height:1.3;word-break:break-word}.distribution-source-panel p:first-of-type{margin-top:6px}.regular-distribution-panel{border:1px solid #d9e0ea;border-radius:10px;background:#fff;overflow:hidden}.regular-distribution-panel>summary{display:flex;align-items:center;justify-content:space-between;gap:12px;cursor:pointer;list-style:none;padding:12px 14px;color:#25324a;font-weight:700}.regular-distribution-panel>summary::-webkit-details-marker{display:none}.regular-distribution-panel>summary:before{content:"▶";color:#64748b;font-size:.75rem;transition:transform .16s ease}.regular-distribution-panel[open]>summary:before{transform:rotate(90deg)}.regular-distribution-panel>summary:hover{background:#f8fafc}.regular-distribution-summary-status{margin-left:auto;border-radius:999px;background:#edf9f1;color:#0f7b37;padding:4px 9px;font-size:.82rem;font-weight:700}.regular-distribution-summary-status.has-mismatch{background:#fff0f3;color:#9b1239}.regular-distribution-panel>.distribution-table-container{border-right:0;border-bottom:0;border-left:0;border-radius:0}.distribution-table-container{width:100%;max-width:100%;border:1px solid #d9d9d9;border-radius:8px;overflow:visible;background:#fff;flex-grow:0}.distribution-table{--distribution-header-group-row-height: 40px;width:100%;border-collapse:collapse;min-width:1396px}.distribution-table th,.distribution-table td{border:1px solid #e2e2e2;padding:8px;text-align:center}.distribution-table thead th{background:#f5f7fa;position:sticky;top:0;z-index:3;box-shadow:0 1px 0 var(--dist-line)}.distribution-table:not(.special-distribution-table):not(.mock-distribution-table) thead tr:first-child{height:var(--distribution-header-group-row-height)}.distribution-table:not(.special-distribution-table):not(.mock-distribution-table) thead tr:nth-child(2) th{top:var(--distribution-header-group-row-height);z-index:2}.distribution-table tfoot th,.distribution-table tfoot td{background:#f8f8f8;position:sticky;bottom:0;z-index:1}.distribution-table .totals-row th,.distribution-table .totals-row td{background:#f8f8f8;font-weight:700}.distribution-table td input{width:100%;border:1px solid #d0d0d0;border-radius:4px;padding:6px;box-sizing:border-box;font-size:.92rem}.distribution-table .allocation-head,.distribution-table .allocation-cell{width:72px;min-width:72px;max-width:72px;padding-left:4px;padding-right:4px}.distribution-table .allocation-cell input{width:64px;margin:0 auto;display:block;padding:4px}.distribution-table .legacy-allocation-head,.distribution-table .legacy-allocation-cell{width:72px;min-width:72px;max-width:72px}.distribution-table .legacy-allocation-head{background:#fff4d6;color:#7a4b00}.distribution-table .legacy-allocation-cell{background:#fffaf0;color:#7a4b00;font-weight:700}.distribution-table .state-head,.distribution-table .state-cell{width:96px;min-width:96px;max-width:96px;white-space:nowrap}.distribution-table .status-label{display:inline-block;min-width:64px;text-align:center;white-space:nowrap}.distribution-table .status-subnote{margin-top:2px;font-size:.65rem;line-height:1.2;color:#5b6472;white-space:normal}.distribution-table .static-cell{background:#f9fafb;font-weight:600}.distribution-table .requirement-cell{transition:background-color .12s ease}.distribution-table .requirement-matched{background:#e8f6ea;color:#0f7b37}.distribution-table .requirement-unmatched{background:#ffe8e8;color:#8b1c1c}.distribution-table .row-unmatched{background:#fff7e6}.distribution-table .row-matched{background:#f8fff8}.match-ok{color:#137333;font-weight:700}.match-ng{color:#b54708;font-weight:700;line-height:1.3}.location-type-badge{display:inline-flex;align-items:center;justify-content:center;min-width:56px;border-radius:999px;font-size:.82rem;font-weight:700;padding:4px 10px}.location-type-indoor{background:#e8f0fe;color:#1e5ad7}.location-type-outdoor{background:#e7f6ec;color:#0f7b37}.location-type-unknown{background:#f2f2f2;color:#666}.note-button{border:1px solid #d1d5db;border-radius:999px;background:#f8fafc;color:#1f2937;font-weight:700;padding:4px 10px;cursor:pointer}.note-button:hover{background:#eef2ff}.note-none{color:#666;font-weight:600}.note-dialog-backdrop{position:fixed;inset:0;background:#0f172a73;display:flex;align-items:center;justify-content:center;z-index:1000}.note-dialog{width:min(640px,calc(100vw - 24px));max-height:calc(100vh - 40px);overflow:auto;background:#fff;border:1px solid #d9d9d9;border-radius:12px;padding:14px;box-sizing:border-box}.note-dialog-header{display:flex;justify-content:space-between;align-items:center;gap:10px}.note-dialog-header h2{margin:0;font-size:1.1rem}.note-dialog-header button{border:1px solid #cfd4dc;background:#fff;border-radius:6px;padding:6px 10px;cursor:pointer}.note-dialog-meta{margin:10px 0 0;color:#374151;font-weight:600}.note-dialog-content{margin:12px 0 0;white-space:pre-wrap;line-height:1.5;color:#111827}.empty-cell{color:#666;text-align:center;padding:22px 10px}.special-distribution-panel{display:flex;flex-direction:column;gap:10px;border:1px solid #d5e4f5;border-radius:10px;background:#fbfdff;padding:12px}.special-distribution-header{display:flex;justify-content:space-between;align-items:flex-start;gap:12px}.special-distribution-header h2{margin:0;font-size:1.05rem;color:#173b65}.special-distribution-header p{margin:4px 0 0;color:#4b5565;font-size:.9rem;line-height:1.45}.special-distribution-notice{border:1px solid #b9d4f2;border-radius:8px;background:#eef6ff;color:#1f4f80;padding:8px 10px;font-size:.86rem}.special-distribution-empty{margin:0;border:1px dashed #c8d5e5;border-radius:8px;background:#fff;color:#536276;padding:18px 12px;text-align:center}.special-distribution-table-container{border-color:#cbd9e8}.special-distribution-table{min-width:1376px}.special-distribution-table .special-purpose-cell{min-width:190px;background:#fff}.special-distribution-table .special-location-cell{min-width:180px;background:#fff}.special-distribution-table .special-purpose-cell input,.special-distribution-table .special-location-cell select{width:100%;min-height:32px;border:1px solid #cbd5e1;border-radius:4px;background:#fff;box-sizing:border-box;padding:5px 7px;color:#1f2937;font-size:.9rem}.special-distribution-table .special-purpose-cell input:focus,.special-distribution-table .special-location-cell select:focus{outline:2px solid #93c5fd;outline-offset:1px}.special-distribution-table .special-state-cell{min-width:130px;white-space:normal}.special-distribution-table .special-action-cell{min-width:70px;background:#fff}.special-delete-button{border:1px solid #e1a5b3;border-radius:6px;background:#fff5f6;color:#9f1239;padding:6px 9px;cursor:pointer;font-weight:700}.special-delete-button:hover{background:#ffe4e8}.mock-distribution-panel{display:flex;flex-direction:column;gap:10px;border:1px solid #d9e3f6;border-radius:10px;background:#fff;padding:12px}.mock-distribution-header{display:flex;justify-content:space-between;align-items:flex-start;gap:12px}.mock-distribution-header h2{margin:0;font-size:1.05rem}.mock-distribution-header p{margin:4px 0 0;color:#4b5565;font-size:.9rem}.mock-distribution-actions{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}.mock-distribution-table{min-width:976px}.distribution-table .tent-allocation-head,.distribution-table .tent-allocation-cell{width:208px;min-width:208px;max-width:208px;box-sizing:border-box}@media (max-width: 760px){.distribution-page-header-main,.mock-distribution-header,.special-distribution-header{align-items:stretch;flex-direction:column}.distribution-header-actions{width:100%;flex-direction:column}.distribution-header-actions .save-button{width:100%}.tent-inventory-summary{align-items:stretch;flex-direction:column}}.location-allocation-page-container{--la-line: #dbe2ee;--la-text: #1f2937;--la-muted: #6b7280;--la-ok-bg: #eaf7ef;--la-ok-fg: #156f3a;--la-warn-bg: #fff4df;--la-warn-fg: #9a5a00;--la-locked-bg: #f3f4f6}.location-allocation-page-container{padding:20px;height:auto;min-height:calc(100vh - 40px);display:flex;flex-direction:column;gap:14px}.location-allocation-page-header{display:flex;flex-direction:column;gap:8px;background:linear-gradient(180deg,#fff,#f7faff);border:1px solid #d9e3f6;border-radius:10px;padding:12px 14px}.location-allocation-page-header-main{display:flex;align-items:center;justify-content:space-between;gap:12px}.location-allocation-page-header h1,.location-allocation-page-header p{margin:0}.location-allocation-title-wrap{display:flex;align-items:center;gap:10px}.location-allocation-page-header p{color:#425166}.save-button{border:1px solid #2d61c4;border-radius:8px;background:linear-gradient(180deg,#3275e0,#245dbe);color:#fff;font-weight:700;padding:9px 14px;cursor:pointer}.save-button:disabled{cursor:not-allowed;opacity:.6}.location-allocation-meta-row{display:flex;flex-wrap:wrap;gap:10px}.meta-chip{display:inline-flex;align-items:center;border-radius:999px;border:1px solid #dce2eb;background:#f8fafc;color:var(--la-text);font-size:.86rem;font-weight:600;padding:5px 11px}.meta-chip-unassigned{border-color:#f0cf9e;background:#fff6e7;color:#8f5a00}.meta-chip.unsaved{border-color:#efb9c6;background:#fff0f3;color:#9b1239}.meta-chip.saved{border-color:#bde4cd;background:#edf9f1;color:#0f7b37}.location-allocation-source-panel{border:1px solid #dde3ed;border-radius:8px;background:#fff;padding:6px 10px}.location-allocation-source-panel summary{cursor:pointer;color:#374151;font-size:.9rem;font-weight:700}.location-allocation-source-panel p{margin:3px 0;color:#4b5565;font-size:.84rem;line-height:1.3;word-break:break-word}.location-allocation-source-panel p:first-of-type{margin-top:6px}.location-allocation-table-container{border:1px solid var(--la-line);border-radius:10px;box-shadow:0 1px 2px #1f29370a;overflow:visible;background:#fff;flex-grow:0}.location-allocation-table{width:100%;border-collapse:collapse;min-width:980px}.location-allocation-table th,.location-allocation-table td{border:1px solid #e3e8f0;padding:9px 8px;text-align:center;font-size:.9rem;color:var(--la-text)}.location-allocation-table thead th{background:#f1f5fb;position:sticky;top:0;z-index:2;color:#334155}.location-allocation-table select{width:100%;border:1px solid #cfd7e4;border-radius:6px;padding:6px;box-sizing:border-box;font-size:.92rem;background:#fff;color:var(--la-text)}.location-allocation-table select:focus{outline:none;border-color:#4a7bd5;box-shadow:0 0 0 3px #4a7bd524}.location-allocation-table select optgroup{color:#334155;font-weight:700}.location-select-wrap{min-width:150px}.name-col,.name-cell{width:260px}.form-col,.state-col{width:110px}.status-col{width:140px}.location-col{width:180px}.event-col{min-width:210px}.static-cell{background:#f8fafc;font-weight:600}.event-cell,.app-status-cell,.name-cell{word-break:break-word}.formtype-badge{display:inline-flex;align-items:center;justify-content:center;min-width:84px;border-radius:999px;font-size:.8rem;font-weight:700;padding:4px 10px}.formtype-committee{background:#e8f0fe;color:#1e5ad7}.formtype-general{background:#e7f6ec;color:#0f7b37}.formtype-stall{background:#fff0e8;color:#ad5300}.formtype-unknown{background:#f3f4f6;color:#4b5563}.row-unassigned{background:#fffbf1}.row-assigned{background:#f7fcf8}.row-locked{background:var(--la-locked-bg)}.row-locked td{color:#6b7280}.row-locked .formtype-badge,.row-locked .status-ok,.row-locked .status-ng{opacity:.65}.row-locked .location-select-wrap select{background:#e5e7eb;border-color:#d1d5db;color:#6b7280;cursor:not-allowed}.status-ok{display:inline-flex;align-items:center;justify-content:center;border:1px solid #bde0c8;background:var(--la-ok-bg);color:var(--la-ok-fg);border-radius:999px;min-width:82px;padding:3px 8px;font-weight:700}.status-ng{display:inline-flex;align-items:center;justify-content:center;border:1px solid #f0cf9e;background:var(--la-warn-bg);color:var(--la-warn-fg);border-radius:999px;min-width:82px;padding:3px 8px;font-weight:700}.empty-cell{padding:36px 16px;color:var(--la-muted)}@media (max-width: 900px){.location-allocation-page-container{min-height:calc(100vh - 40px)}.location-allocation-page-header-main{flex-direction:column;align-items:flex-start}.location-allocation-title-wrap{flex-wrap:wrap}.location-select-wrap{min-width:140px}}.tent-task-panel{display:grid;gap:14px}.tent-task-toolbar,.tent-task-unassigned,.tent-task-card{border:1px solid #d9e2ef;border-radius:10px;background:#fff}.tent-task-toolbar{display:flex;align-items:end;justify-content:space-between;gap:12px;padding:12px 14px}.tent-task-toolbar label{display:grid;gap:5px;color:#344054;font-weight:700}.tent-task-toolbar select,.tent-task-bulk-actions select,.tent-task-card select{min-height:42px;border:1px solid #cbd5e1;border-radius:6px;background:#fff;padding:7px 9px;color:#1d2939}.tent-task-save,.tent-task-bulk-actions button{min-height:44px;border:1px solid #0f6fff;border-radius:7px;background:#0f6fff;color:#fff;cursor:pointer;padding:8px 14px;font-weight:700}.tent-task-panel button:disabled{cursor:not-allowed;opacity:.5}.tent-task-meta{display:flex;flex-wrap:wrap;gap:7px}.tent-task-meta span{border:1px solid #dbe3ee;border-radius:999px;background:#f8fafc;padding:5px 10px;color:#475467;font-size:.84rem;font-weight:700}.tent-task-meta span.warning{border-color:#f3c66b;background:#fff8e8;color:#8a5800}.tent-task-shared-note{margin:-5px 0 0;color:#667085;font-size:.86rem}.tent-task-warning,.tent-task-validation,.tent-task-error,.tent-task-state{border:1px solid #f3c66b;border-radius:8px;background:#fff8e8;padding:11px 13px;color:#8a5800}.tent-task-validation{display:grid;gap:3px}.tent-task-error{border-color:#f0a4b4;background:#fff1f2;color:#9f1239}.tent-task-state{border-style:dashed;border-color:#cbd5e1;background:#f8fafc;color:#526176;text-align:center}.tent-task-state h2{margin:0;color:#344054;font-size:1rem}.tent-task-state p{margin:7px auto 0;max-width:760px;line-height:1.6}.tent-task-state ul{width:min(620px,100%);margin:10px auto 0;padding-left:24px;text-align:left}.tent-task-state a{display:inline-flex;min-height:44px;align-items:center;margin-top:14px;border:1px solid #0f6fff;border-radius:7px;background:#fff;color:#075dcc;padding:0 14px;font-weight:700;text-decoration:none}.tent-task-state button{min-height:44px;margin-top:14px;border:1px solid #0f6fff;border-radius:7px;background:#0f6fff;color:#fff;padding:0 14px;font-weight:700;cursor:pointer}.tent-task-state-error{border-color:#f0a4b4;background:#fff1f2}.tent-task-unassigned{overflow:hidden}.tent-task-unassigned>header{border-bottom:1px solid #e4e7ec;padding:12px 14px}.tent-task-unassigned h2,.tent-task-card h2{margin:0;font-size:1rem}.tent-task-unassigned p{margin:4px 0 0;color:#667085;font-size:.86rem}.tent-task-location-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:8px;padding:12px 14px}.tent-task-location-list label{display:flex;min-width:0;align-items:flex-start;gap:9px;border:1px solid #dbe3ee;border-radius:8px;padding:9px 10px;cursor:pointer}.tent-task-location-list input{width:18px;height:18px}.tent-task-location-list span,.tent-task-location-chips>span>span{display:grid;min-width:0}.tent-task-location-list small,.tent-task-location-chips small{overflow:hidden;color:#667085;text-overflow:ellipsis;white-space:nowrap}.tent-task-complete{padding:18px 14px;color:#137333;font-weight:700}.tent-task-bulk-actions{display:flex;flex-wrap:wrap;gap:8px;border-top:1px solid #e4e7ec;padding:12px 14px}.tent-task-bulk-actions select{min-width:180px}.tent-task-cards{display:grid;gap:12px}.tent-task-card{overflow:hidden}.tent-task-card>header{display:flex;align-items:center;justify-content:space-between;gap:12px;border-bottom:1px solid #dbe3ee;background:#f8fafc;padding:11px 14px}.tent-task-card>header>div{display:flex;align-items:baseline;gap:9px;min-width:0}.tent-task-card>header span{overflow:hidden;color:#667085;font-size:.74rem;text-overflow:ellipsis;white-space:nowrap}.tent-task-card-body{display:grid;gap:12px;padding:13px 14px}.tent-task-card-body>label{display:grid;max-width:440px;gap:5px;color:#344054;font-weight:700}.tent-task-location-chips{display:flex;flex-wrap:wrap;gap:8px}.tent-task-location-chips>span{display:flex;align-items:center;gap:8px;border:1px solid #dbe3ee;border-radius:8px;background:#f8fafc;padding:7px 9px}.tent-task-location-chips button,.tent-task-delete{min-height:36px;border:1px solid #cbd5e1;border-radius:6px;background:#fff;color:#475467;cursor:pointer}.tent-task-delete{justify-self:start;color:#9f1239}@media (max-width: 700px){.tent-task-toolbar{align-items:stretch;flex-direction:column}.tent-task-toolbar select,.tent-task-save,.tent-task-bulk-actions>*{width:100%}}.large-tasks-page{--large-task-border: #d9e2ef;--large-task-text: #1f2937;display:flex;flex-direction:column;gap:16px;color:var(--large-task-text)}.large-tasks-header{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:16px 18px;border:1px solid var(--large-task-border);border-radius:10px;background:linear-gradient(180deg,#fff,#f7faff)}.large-tasks-header h1,.large-task-card h2{margin:0}.large-tasks-header p{margin:6px 0 0;color:#526176}.large-task-generate-button{flex:0 0 auto;border:1px solid #0f6fff;border-radius:7px;background:#0f6fff;color:#fff;padding:9px 14px;font-weight:700;cursor:pointer}.large-task-generate-button:disabled{cursor:not-allowed;opacity:.6}.desk-label-export-card{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px 20px;align-items:center;padding:16px 18px;border:1px solid #cbd8ea;border-radius:10px;background:#f8fbff}.desk-label-export-copy h2{margin:0;font-size:1.05rem}.desk-label-export-copy p{margin:5px 0 0;color:#526176}.desk-label-export-actions{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}.desk-label-export-button{min-width:138px;min-height:44px;border-radius:7px;padding:9px 14px;font-weight:700;cursor:pointer;transition:background-color .18s ease,border-color .18s ease,color .18s ease}.desk-label-export-button.word{border:1px solid #0f6fff;background:#0f6fff;color:#fff}.desk-label-export-button.word:hover:not(:disabled){border-color:#075dcc;background:#075dcc}.desk-label-export-button.pdf{border:1px solid #486176;background:#fff;color:#243b53}.desk-label-export-button.pdf:hover:not(:disabled){border-color:#243b53;background:#edf3f8}.desk-label-export-button:disabled{cursor:not-allowed;opacity:.58}.desk-label-export-error{grid-column:1 / -1;margin:0;border-top:1px solid #efc3cc;padding-top:10px;color:#9b1239;font-weight:600}.large-task-controls{display:flex;align-items:end;justify-content:space-between;gap:16px;flex-wrap:wrap}.work-task-kind-tabs{display:grid;grid-template-columns:repeat(2,minmax(180px,1fr));overflow:hidden;border:1px solid #b9c7da;border-radius:9px;background:#fff}.work-task-kind-tabs button{border:0;border-right:1px solid #b9c7da;background:#fff;color:#344054;padding:11px 18px;font-weight:700;cursor:pointer}.work-task-kind-tabs button:last-child{border-right:0}.work-task-kind-tabs button.active{background:#eaf2ff;color:#075dcc;box-shadow:inset 0 -3px #0f6fff}.large-task-controls label{display:flex;flex-direction:column;gap:6px;font-weight:700}.large-task-controls select{min-width:min(460px,80vw);border:1px solid #c9d3e1;border-radius:6px;background:#fff;padding:8px 10px}.large-task-tabs{display:inline-flex;overflow:hidden;border:1px solid #c9d3e1;border-radius:7px}.large-task-tabs button{min-width:110px;border:0;border-right:1px solid #c9d3e1;background:#fff;color:#344054;padding:9px 18px;cursor:pointer}.large-task-tabs button:last-child{border-right:0}.large-task-tabs button.active{background:#eaf2ff;color:#075dcc;font-weight:700}.large-task-meta{display:flex;flex-wrap:wrap;gap:8px}.large-task-meta span,.large-task-card-summary span{border:1px solid #dbe3ee;border-radius:999px;background:#f8fafc;padding:5px 10px;font-size:.85rem;font-weight:600}.large-task-list{display:grid;gap:14px}.large-task-card{overflow:hidden;border:1px solid var(--large-task-border);border-radius:10px;background:#fff}.large-task-card-header{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:13px 15px;border-bottom:1px solid var(--large-task-border);background:#f8fafc}.large-task-card-header>div:first-child{display:flex;align-items:baseline;gap:9px;flex-wrap:wrap}.large-task-card h2{font-size:1.1rem}.large-task-phase-label{border-radius:4px;background:#e6efff;color:#1459a6;padding:3px 7px;font-size:.78rem;font-weight:700}.large-task-location-key{color:#69778b;font-size:.8rem}.large-task-card-summary{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:6px}.large-task-table-wrap{overflow-x:auto}.large-task-table{width:100%;border-collapse:collapse;min-width:620px}.large-task-table th,.large-task-table td{padding:9px 12px;border-bottom:1px solid #e6ebf2;text-align:left}.large-task-table th{background:#fcfdff;color:#475467;font-size:.86rem}.large-task-table tbody tr:last-child td{border-bottom:0}.large-task-quantity{width:80px;font-weight:700}.large-task-state,.large-task-error{border:1px dashed #cbd5e1;border-radius:8px;background:#f8fafc;padding:22px;text-align:center;color:#526176}.large-task-error{border-color:#efb9c6;background:#fff0f3;color:#9b1239}@media (max-width: 700px){.large-tasks-header,.large-task-card-header,.desk-label-export-card{align-items:stretch;flex-direction:column}.desk-label-export-card{display:flex}.large-task-generate-button,.large-task-controls select,.large-task-tabs,.desk-label-export-button{width:100%}.desk-label-export-actions{flex-direction:column}.large-task-tabs button{flex:1}.large-task-card-summary{justify-content:flex-start}}@media (prefers-reduced-motion: reduce){.desk-label-export-button{transition:none}}.assignment-timeline-section{overflow:hidden;border:1px solid var(--assignment-border, #d7e0eb);border-radius:12px;background:#fff}.assignment-timeline-toolbar{display:flex;min-height:68px;align-items:center;gap:18px;border-bottom:1px solid var(--assignment-border, #d7e0eb);padding:10px 14px}.assignment-timeline-toolbar>div:first-child{display:grid;gap:2px;margin-right:auto}.assignment-timeline-toolbar>div:first-child span{color:#667085;font-size:.82rem}.assignment-timeline-toolbar fieldset{display:flex;gap:2px;margin:0;border:0;padding:0}.assignment-timeline-toolbar legend{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}.assignment-timeline-toolbar fieldset button{min-height:36px;border:1px solid #cbd5e1;border-radius:0;background:#fff;padding:7px 10px;color:#475467;cursor:pointer;font-size:.82rem}.assignment-timeline-toolbar fieldset button:first-of-type{border-radius:7px 0 0 7px}.assignment-timeline-toolbar fieldset button:last-of-type{border-radius:0 7px 7px 0}.assignment-timeline-toolbar fieldset button.active{border-color:#2563eb;background:#eff6ff;color:#1d4ed8;font-weight:700}.assignment-timeline-toolbar fieldset button:focus-visible,.assignment-task-detail>header button:focus-visible{position:relative;z-index:1;outline:3px solid #93c5fd;outline-offset:1px}.assignment-timeline-legend{display:flex;align-items:center;gap:10px;color:#667085;font-size:.78rem;white-space:nowrap}.assignment-timeline-legend span{display:inline-flex;align-items:center;gap:4px}.assignment-timeline-legend i{width:13px;height:13px;border:1px solid;border-radius:3px}.assignment-timeline-legend i.large-task{border-color:#2563eb;background:#dbeafe}.assignment-timeline-legend i.tent-task{border-color:#7c3aed;background:#ede9fe}.assignment-timeline-legend i.transition{border-color:#94a3b8;background:repeating-linear-gradient(135deg,#f8fafc,#f8fafc 3px,#cbd5e1 3px 5px)}.assignment-timeline-layout{display:grid;grid-template-columns:minmax(0,1fr);height:clamp(520px,80vh,800px)}.assignment-timeline-layout.has-detail{grid-template-columns:minmax(0,1fr) 320px}.assignment-timeline-scroll{height:100%;overflow:auto;outline:none;scrollbar-gutter:stable}.assignment-timeline-scroll:focus-visible{box-shadow:inset 0 0 0 3px #93c5fd}.assignment-timeline-grid{position:relative;min-width:100%;background:#fff}.assignment-timeline-corner{position:sticky;top:0;left:0;z-index:8;display:flex;height:72px;align-items:center;justify-content:center;border-right:1px solid #cbd5e1;border-bottom:1px solid #cbd5e1;background:#f8fafc;color:#475467;font-size:.8rem;font-weight:700}.assignment-timeline-headers{position:sticky;top:0;z-index:7;display:grid;height:72px;width:max-content;margin-top:-72px}.assignment-timeline-group-header{display:flex;min-width:0;flex-direction:column;justify-content:center;gap:4px;border-right:1px solid #cbd5e1;border-bottom:1px solid #cbd5e1;border-top:5px solid var(--department-color);background:color-mix(in srgb,var(--department-color) 11%,white);padding:7px 9px 8px}.assignment-timeline-group-header>strong{overflow:hidden;color:#101828;font-size:.92rem;text-overflow:ellipsis;white-space:nowrap}.assignment-timeline-group-meta{display:flex;min-width:0;justify-content:space-between;gap:4px;color:#475467;font-size:.68rem}.assignment-timeline-group-meta b{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.assignment-timeline-time-axis{position:sticky;left:0;z-index:6;border-right:1px solid #cbd5e1;background:#f8fafc}.assignment-timeline-time-axis>span{position:absolute;right:8px;display:grid;transform:translateY(-50%);color:#475467;font-size:.72rem;font-variant-numeric:tabular-nums;line-height:1.1;text-align:right}.assignment-timeline-time-axis>span:first-child{transform:none}.assignment-timeline-time-axis small{color:#98a2b3;font-size:.62rem}.assignment-timeline-columns{position:absolute;display:grid;width:max-content}.assignment-timeline-column{position:relative;overflow:hidden;border-right:1px solid #d8dee8;background-image:repeating-linear-gradient(to bottom,#dfe5ee 0,#dfe5ee 1px,transparent 1px,transparent var(--five-minute-height))}.assignment-timeline-task{position:absolute;z-index:3;right:4px;left:4px;display:flex;min-height:0;align-items:flex-start;flex-direction:column;gap:1px;overflow:hidden;border:1px solid;border-radius:5px;padding:2px 5px;line-height:1.15;text-align:left;transition:box-shadow .16s ease,filter .16s ease}.assignment-timeline-task.large-task{border-color:#2563eb;background:#dbeafe;color:#123a70}.assignment-timeline-task.tent-task{border-color:#7c3aed;background:#ede9fe;color:#4c1d95}.assignment-timeline-task.selected{z-index:4;border-color:#0f172a;box-shadow:0 0 0 2px #0f172a}.assignment-timeline-task:hover{filter:saturate(1.08)}.assignment-timeline-task:focus-visible{z-index:5;outline:3px solid #0f172a;outline-offset:1px}.assignment-timeline-task strong,.assignment-timeline-task span{width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.assignment-timeline-task strong{font-size:.72rem}.assignment-timeline-task span{font-size:.64rem}.assignment-timeline-transition{position:absolute;z-index:2;right:12px;left:12px;display:flex;align-items:center;justify-content:center;overflow:hidden;border-right:1px dashed #94a3b8;border-left:1px dashed #94a3b8;background:repeating-linear-gradient(135deg,#f8fafcd9,#f8fafcd9 4px,#cbd5e1b8 4px 7px);color:#475467;font-size:.64rem;pointer-events:none}.assignment-task-detail{box-sizing:border-box;height:100%;min-width:0;overflow-y:auto;border-left:1px solid var(--assignment-border, #d7e0eb);background:#fff;padding:16px}.assignment-task-detail>header{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;border-bottom:1px solid #e4e7ec;padding-bottom:12px}.assignment-task-detail>header span{color:#667085;font-size:.75rem}.assignment-task-detail h3{margin:3px 0 0;font-size:1.08rem}.assignment-task-detail>header button{min-height:44px;border:1px solid #cbd5e1;border-radius:7px;background:#fff;padding:8px 12px;color:#344054;cursor:pointer}.assignment-task-detail dl{display:grid;gap:0;margin:12px 0 0}.assignment-task-detail dl>div{display:grid;grid-template-columns:76px minmax(0,1fr);gap:10px;border-bottom:1px solid #f0f2f5;padding:9px 0}.assignment-task-detail dt{color:#667085;font-size:.76rem}.assignment-task-detail dd{min-width:0;margin:0;color:#1d2939;font-size:.82rem;overflow-wrap:anywhere}.assignment-task-detail dd.task-id{font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:.72rem}.assignment-task-detail section{margin-top:16px}.assignment-task-detail h4{margin:0 0 8px;font-size:.9rem}.assignment-task-detail ul{display:grid;gap:6px;margin:0;padding:0;list-style:none}.assignment-task-detail li{display:flex;justify-content:space-between;gap:12px;border-radius:6px;background:#f8fafc;padding:8px 10px;font-size:.82rem}.assignment-task-detail p,.assignment-timeline-empty{color:#667085}.assignment-timeline-empty{border:1px dashed #cbd5e1;border-radius:10px;padding:22px;text-align:center}@media (max-width: 900px){.assignment-timeline-toolbar{align-items:flex-start;flex-wrap:wrap}.assignment-timeline-legend{width:100%}.assignment-timeline-layout.has-detail{grid-template-columns:minmax(0,1fr)}.assignment-task-detail{position:fixed;z-index:50;right:0;bottom:0;left:0;height:auto;max-height:min(72vh,620px);overflow-y:auto;border:1px solid #cbd5e1;border-radius:16px 16px 0 0;box-shadow:0 -16px 40px #0f172a3d}}@media (max-width: 640px){.assignment-timeline-group-meta{display:none}.assignment-timeline-toolbar fieldset{width:100%}.assignment-timeline-toolbar fieldset button{min-height:44px;flex:1}}@media (prefers-reduced-motion: reduce){.assignment-timeline-task{transition:none}}.group-assignments-page{--assignment-border: #d7e0eb;--assignment-text: #1f2937;display:flex;flex-direction:column;gap:16px;color:var(--assignment-text)}.group-assignments-header{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:16px 18px;border:1px solid var(--assignment-border);border-radius:10px;background:linear-gradient(180deg,#fff,#f5f9ff)}.group-assignments-header h1,.group-assignment-card h2{margin:0}.group-assignments-header h1{font-size:1.65rem}.group-assignments-header p{margin:6px 0 0;color:#526176}.group-assignment-primary{min-height:44px;flex:0 0 auto;border-color:#0f6fff;background:#0f6fff;color:#fff;font-weight:700}.group-assignment-primary:disabled{cursor:not-allowed;opacity:.6}.group-assignment-controls{display:flex;align-items:end;justify-content:space-between;gap:16px;flex-wrap:wrap}.group-assignment-select-field{display:flex;min-width:220px;flex-direction:column;gap:6px;font-weight:700}.group-assignment-fallback-toggle{display:flex;min-height:44px;align-items:center;gap:10px;border:1px solid #c9d3e1;border-radius:7px;background:#fff;padding:8px 11px;cursor:pointer}.group-assignment-fallback-toggle:has(input:disabled){cursor:not-allowed;opacity:.6}.group-assignment-fallback-toggle input{width:20px;height:20px;flex:0 0 auto;margin:0;accent-color:#0f6fff}.group-assignment-fallback-toggle>span{display:grid;gap:2px}.group-assignment-fallback-toggle small{color:#66758a;font-size:.76rem;font-weight:400}.group-assignment-controls select{min-height:44px;border:1px solid #c9d3e1;border-radius:7px;background:#fff;color:#263548;padding:8px 10px}.group-assignment-tabs{display:inline-flex;overflow:hidden;border:1px solid #c9d3e1;border-radius:7px}.group-assignment-tabs button{min-width:120px;min-height:44px;border:0;border-right:1px solid #c9d3e1;border-radius:0;background:#fff;color:#344054}.group-assignment-tabs button:last-child{border-right:0}.group-assignment-tabs button.active{background:#eaf2ff;color:#075dcc;font-weight:700}.group-assignment-job,.group-assignment-error{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;border:1px solid #bed4f5;border-radius:9px;background:#f2f7ff;padding:12px 14px}.group-assignment-job>div:first-child{display:flex;align-items:center;gap:9px;flex-wrap:wrap}.group-assignment-job>button{min-height:44px}.group-assignment-status{border-radius:999px;background:#dceaff;color:#0b55a5;padding:4px 9px;font-size:.82rem;font-weight:800}.status-succeeded .group-assignment-status{background:#dcfce7;color:#166534}.status-failed .group-assignment-status,.status-cancelled .group-assignment-status{background:#fee2e2;color:#991b1b}.group-assignment-job-id{color:#66758a;font-size:.8rem}.group-assignment-job-requester{color:#475467;font-size:.84rem}.group-assignment-job-option{border:1px solid #f0d28a;border-radius:999px;background:#fff9e8;padding:3px 8px;color:#72510b;font-size:.78rem;font-weight:700}.group-assignment-latest-label{border-radius:999px;background:#e8eef8;padding:4px 9px;color:#344054;font-size:.78rem;font-weight:800}.group-assignment-job-loading{border:1px solid #d6e4f8;border-radius:9px;background:#f8fbff;padding:12px 14px;color:#526176}.group-assignment-terminal-job{border-color:#cbd5e1;background:#f8fafc}.group-assignment-terminal-message{order:3;width:100%;margin:0;color:#344054;line-height:1.5}.group-assignment-terminal-job .group-assignment-job-error{order:4}.status-succeeded.group-assignment-terminal-job{border-color:#b7dfc5;background:#f1fbf4}.status-failed.group-assignment-terminal-job,.status-cancelled.group-assignment-terminal-job{border-color:#efb9c6;background:#fff7f8}.group-assignment-live-progress{order:3;display:grid!important;grid-template-columns:minmax(120px,.7fr) minmax(240px,1.6fr) minmax(150px,.8fr);width:100%;gap:8px!important}.group-assignment-live-progress>span{display:flex;flex-direction:column;gap:2px;border:1px solid #d6e4f8;border-radius:7px;background:#fff;padding:9px 11px}.group-assignment-live-progress small{color:#66758a;font-size:.78rem}.group-assignment-live-progress strong{color:#16345b;font-size:.92rem;font-variant-numeric:tabular-nums}.group-assignment-job-error,.group-assignment-error{width:100%;justify-content:flex-start;border-color:#efb9c6;background:#fff0f3;color:#8f1235}.group-assignment-job-error{display:grid;gap:5px;padding:10px;border-radius:7px}.group-assignment-error{display:grid}.group-assignment-error pre,.group-assignment-job-error pre{max-height:240px;overflow:auto;margin:8px 0 0;border-radius:6px;background:#fff;padding:10px;color:#4b1b2b;white-space:pre-wrap}.group-assignment-empty{border:1px dashed #cbd5e1;border-radius:8px;background:#f8fafc;padding:24px;text-align:center;color:#526176}.group-assignment-summary{display:grid;grid-template-columns:repeat(4,minmax(140px,1fr));gap:10px}.group-assignment-summary div{display:flex;flex-direction:column;gap:3px;border:1px solid var(--assignment-border);border-radius:9px;background:#fff;padding:11px 13px}.group-assignment-summary span{color:#66758a;font-size:.82rem}.group-assignment-summary strong{font-size:1.15rem}.group-assignment-warning{border:1px solid #f0d28a;border-radius:8px;background:#fff9e8;padding:10px 13px;color:#72510b}.group-assignment-meta{display:flex;flex-wrap:wrap;gap:7px}.group-assignment-meta span{border:1px solid #dbe3ee;border-radius:999px;background:#f8fafc;padding:5px 10px;font-size:.8rem;font-weight:600}.group-assignment-solver-metrics{border:1px solid var(--assignment-border);border-radius:9px;background:#fff;padding:12px 14px}.group-assignment-solver-metrics h2{margin:0 0 9px;font-size:.95rem}.group-assignment-solver-metrics>div{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.group-assignment-solver-metrics span{display:flex;justify-content:space-between;gap:12px;border-radius:7px;background:#f8fafc;padding:9px 10px;color:#526176;font-size:.84rem}.group-assignment-solver-metrics strong{color:#162033;font-variant-numeric:tabular-nums;white-space:nowrap}.group-assignment-view-switch{display:flex;align-items:center;justify-content:space-between;gap:12px}.group-assignment-view-switch>span{color:#526176;font-size:.84rem;font-weight:700}.group-assignment-view-switch>div{display:flex;overflow:hidden;border:1px solid #cbd5e1;border-radius:8px}.group-assignment-view-switch button{min-height:40px;border:0;border-right:1px solid #cbd5e1;background:#fff;padding:8px 16px;color:#475467;cursor:pointer}.group-assignment-view-switch button:last-child{border-right:0}.group-assignment-view-switch button.active{background:#eaf2ff;color:#174ea6;font-weight:700}.group-assignment-view-switch button:focus-visible{position:relative;z-index:1;outline:3px solid #93c5fd;outline-offset:-3px}.group-assignment-groups{display:grid;gap:14px}.group-assignment-card{overflow:hidden;border:1px solid var(--assignment-border);border-radius:10px;background:#fff}.group-assignment-card>header{display:flex;align-items:center;justify-content:space-between;gap:12px;border-bottom:1px solid var(--assignment-border);background:#f8fafc;padding:12px 14px}.group-assignment-card>header div{display:flex;align-items:baseline;gap:9px;flex-wrap:wrap}.group-assignment-card h2{font-size:1.08rem}.group-assignment-card header span{color:#6b778b;font-size:.78rem}.group-assignment-card>header .group-assignment-card-metrics{justify-content:flex-end;gap:18px;margin-left:auto}.group-assignment-card-metrics>span{display:flex;align-items:baseline;gap:6px;white-space:nowrap}.group-assignment-card-metrics strong{color:#1d2939;font-size:.98rem;font-variant-numeric:tabular-nums}.group-assignment-table-wrap{overflow-x:auto}.group-assignment-card table{width:100%;min-width:760px;border-collapse:collapse}.group-assignment-card th,.group-assignment-card td{border-bottom:1px solid #e6ebf2;padding:9px 11px;text-align:left}.group-assignment-card th{background:#fcfdff;color:#475467;font-size:.84rem}.group-assignment-card tbody tr:last-child td{border-bottom:0}@media (max-width: 760px){.group-assignments-header{align-items:stretch;flex-direction:column}.group-assignment-primary,.group-assignment-select-field,.group-assignment-fallback-toggle,.group-assignment-tabs{width:100%}.group-assignment-tabs button{flex:1}.group-assignment-summary{grid-template-columns:repeat(2,minmax(0,1fr))}.group-assignment-solver-metrics>div{grid-template-columns:1fr}.group-assignment-live-progress{grid-template-columns:1fr}.group-assignment-card>header{align-items:flex-start;flex-direction:column}.group-assignment-card>header .group-assignment-card-metrics{justify-content:flex-start;margin-left:0}.group-assignment-view-switch{align-items:stretch;flex-direction:column}.group-assignment-view-switch>div{width:100%}.group-assignment-view-switch button{min-height:44px;flex:1}}@media (prefers-reduced-motion: reduce){.group-assignments-page *,.group-assignments-page *:before,.group-assignments-page *:after{scroll-behavior:auto!important;transition-duration:.01ms!important}}.work-groups-page{--work-group-border: #d7e0eb;--work-group-text: #172033;--work-group-muted: #5c6b80;--work-group-primary: #0f6fff;display:flex;flex-direction:column;gap:16px;color:var(--work-group-text)}.work-groups-header{display:flex;align-items:center;justify-content:space-between;gap:20px;border:1px solid var(--work-group-border);border-radius:12px;background:linear-gradient(135deg,#fff,#eef5ff);padding:18px 20px}.work-groups-header h1,.work-groups-card-heading h2{margin:0}.work-groups-header h1{font-size:1.75rem}.work-groups-header p,.work-groups-card-heading p{margin:6px 0 0;color:var(--work-group-muted)}.work-groups-eyebrow{display:block;margin-bottom:4px;color:#075dcc;font-size:.72rem;font-weight:800;letter-spacing:.12em}.work-groups-primary,.work-groups-secondary,.work-group-edit-button,.work-group-close-button{min-height:44px;cursor:pointer}.work-groups-primary{flex:0 0 auto;border:1px solid var(--work-group-primary);background:var(--work-group-primary);color:#fff;font-weight:700}.work-groups-secondary,.work-group-edit-button,.work-group-close-button{border:1px solid #b9c7d9;background:#fff;color:#263548;font-weight:700}.work-groups-primary:disabled,.work-groups-secondary:disabled{cursor:not-allowed;opacity:.6}.work-groups-summary{display:grid;grid-template-columns:repeat(4,minmax(140px,1fr));gap:10px}.work-groups-summary>div{display:flex;min-width:0;flex-direction:column;gap:3px;border:1px solid var(--work-group-border);border-radius:10px;background:#fff;padding:11px 13px}.work-groups-summary span{color:var(--work-group-muted);font-size:.82rem}.work-groups-summary strong{font-size:1.2rem}.work-groups-summary .has-warning{border-color:#e7b64a;background:#fff9e8}.work-groups-standard-starts{display:grid;grid-template-columns:minmax(180px,.7fr) repeat(2,minmax(220px,1fr));gap:10px}.work-groups-standard-starts>div{display:flex;min-width:0;flex-direction:column;justify-content:center;gap:4px;border:1px solid #bed4f5;border-radius:10px;background:#f2f7ff;padding:11px 13px}.work-groups-standard-starts .work-groups-standard-heading{border-color:var(--work-group-border);background:#fff}.work-groups-standard-heading h2{margin:0;font-size:1.05rem}.work-groups-standard-starts>div>span:not(.work-groups-eyebrow){color:var(--work-group-muted);font-size:.82rem}.work-groups-standard-starts>div>strong{font-size:1rem}.work-groups-summary-id{overflow:hidden;font-size:.9rem!important;text-overflow:ellipsis;white-space:nowrap}.work-groups-error{display:grid;gap:3px;border:1px solid #efb9c6;border-radius:9px;background:#fff0f3;padding:12px 14px;color:#8f1235}.work-groups-workspace{display:grid;grid-template-columns:minmax(0,1fr);gap:16px;align-items:start}.work-groups-workspace>*{min-width:0}.work-groups-workspace.is-editor-open{grid-template-columns:minmax(0,1.65fr) minmax(330px,.85fr)}.work-groups-list-card,.work-group-editor{overflow:hidden;border:1px solid var(--work-group-border);border-radius:11px;background:#fff}.work-group-editor{position:sticky;top:16px}.work-groups-card-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;border-bottom:1px solid var(--work-group-border);background:#f8fafc;padding:13px 15px}.work-groups-card-heading h2{font-size:1.1rem}.work-groups-card-heading p{font-size:.85rem}.work-groups-empty{display:grid;gap:5px;padding:40px 18px;color:var(--work-group-muted);text-align:center}.work-groups-table-wrap{overflow-x:auto}.work-groups-table{width:100%;min-width:900px;border-collapse:collapse}.work-groups-table th,.work-groups-table td{border-bottom:1px solid #e6ebf2;padding:10px 12px;text-align:left;vertical-align:middle}.work-groups-table th{background:#fcfdff;color:#475467;font-size:.82rem}.work-groups-table tbody tr:last-child td{border-bottom:0}.work-groups-table tbody tr:hover{background:#f8fbff}.work-groups-table tbody tr.is-invalid{background:#fffaf0}.work-groups-table td:first-child{min-width:185px}.work-group-id{display:block;max-width:220px;overflow:hidden;margin-top:3px;color:#738196;font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:.72rem;text-overflow:ellipsis;white-space:nowrap}.work-group-warning{display:inline-block;margin-top:5px;border-radius:999px;background:#fef3c7;color:#854d0e;padding:3px 8px;font-size:.72rem;font-weight:800}.work-group-edit-button{min-width:72px}.work-group-readonly-id{display:grid;gap:3px;margin:14px 15px 0;border:1px solid #d8e1ed;border-radius:8px;background:#f8fafc;padding:9px 11px}.work-group-readonly-id span{color:var(--work-group-muted);font-size:.75rem;font-weight:700}.work-group-readonly-id code{overflow-wrap:anywhere;color:#334155}.work-group-form{display:grid;min-width:0;gap:15px;padding:15px}.work-group-form label{display:grid;min-width:0;gap:6px;font-weight:700}.work-group-form label>span:first-child,.work-group-form legend{color:#263548;font-size:.9rem}.work-group-form input,.work-group-form select{box-sizing:border-box;width:100%;min-width:0;max-width:100%;min-height:44px;border:1px solid #b9c7d9;border-radius:7px;background:#fff;color:#172033;padding:8px 10px;font:inherit}.work-group-form input:focus-visible,.work-group-form select:focus-visible{outline:3px solid rgba(15,111,255,.24);outline-offset:1px;border-color:var(--work-group-primary)}.work-group-form input[aria-invalid=true],.work-group-form select[aria-invalid=true]{border-color:#c7284f}.work-group-form small,.work-group-form fieldset>p{margin:0;color:var(--work-group-muted);font-size:.78rem;font-weight:400;line-height:1.45}.work-group-form fieldset{display:grid;min-width:0;gap:12px;margin:0;border:1px solid #d8e1ed;border-radius:9px;padding:12px}.work-group-form legend{padding:0 5px;font-weight:800}.work-group-start-offsets{grid-template-columns:minmax(0,1fr)}.work-group-start-offsets>p{grid-column:1 / -1}.work-group-offset-input{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:8px}.work-group-offset-input>span{color:#526176;font-size:.82rem;font-weight:700;white-space:nowrap}.work-group-field-error{color:#a10f35;font-size:.78rem;font-weight:700}.work-group-identity-fields{display:grid;grid-template-columns:minmax(0,1fr) minmax(104px,.42fr);align-items:start;gap:12px}.work-group-form-actions{display:flex;justify-content:flex-end;gap:9px;border-top:1px solid #e4eaf1;padding-top:14px}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;clip-path:inset(50%)}@media (max-width: 1050px){.work-groups-workspace.is-editor-open{grid-template-columns:1fr}.work-group-editor{position:static}}@media (max-width: 760px){.work-groups-header{align-items:stretch;flex-direction:column}.work-groups-primary{width:100%}.work-groups-summary,.work-groups-standard-starts{grid-template-columns:repeat(2,minmax(0,1fr))}.work-groups-standard-heading{grid-column:1 / -1}.work-groups-card-heading{align-items:stretch;flex-direction:column}.work-groups-card-heading button{width:100%}.work-group-form-actions{flex-direction:column-reverse}.work-group-form-actions button{width:100%}}@media (prefers-reduced-motion: reduce){.work-groups-page *,.work-groups-page *:before,.work-groups-page *:after{scroll-behavior:auto!important;transition-duration:.01ms!important}}.manual-page{--manual-border: #d7e0eb;--manual-text: #1f2937;display:flex;flex-direction:column;gap:16px;color:var(--manual-text)}.manual-header{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:16px 18px;border:1px solid var(--manual-border);border-radius:10px;background:linear-gradient(180deg,#fff,#f5f9ff)}.manual-header h1{margin:0;font-size:1.65rem}.manual-header p{margin:6px 0 0;color:#526176}.manual-eyebrow{margin:0 0 4px;color:#6b7a90;font-size:.82rem;font-weight:700}.manual-primary{min-height:44px;flex:0 0 auto;border-color:#0f6fff;background:#0f6fff;color:#fff;font-weight:700}.manual-primary:disabled{cursor:not-allowed;opacity:.6}.manual-controls{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap}.manual-tabs{display:inline-flex;overflow:hidden;border:1px solid #c9d3e1;border-radius:7px}.manual-tabs button{min-width:120px;min-height:44px;border:0;border-right:1px solid #c9d3e1;border-radius:0;background:#fff;color:#344054}.manual-tabs button:last-child{border-right:0}.manual-tabs button.active{background:#eaf2ff;color:#075dcc;font-weight:700}.manual-select-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.manual-select-actions button{min-height:44px}.manual-select-count{color:#526176;font-size:.86rem}.manual-error{margin:0;border:1px solid #f3b4b4;border-radius:9px;background:#fef2f2;padding:12px 14px;color:#991b1b}.manual-warnings{margin:0;border:1px solid #f0d28a;border-radius:9px;background:#fff9e8;padding:12px 14px 12px 32px;color:#72510b;font-size:.88rem}.manual-message{margin:0;border:1px solid var(--manual-border);border-radius:9px;background:#fff;padding:14px 16px;color:#526176}.manual-group-picker{display:grid;gap:10px;grid-template-columns:repeat(auto-fill,minmax(200px,1fr))}.manual-group-option{display:flex;min-height:44px;align-items:center;gap:10px;border:1px solid #c9d3e1;border-radius:7px;background:#fff;padding:8px 11px;cursor:pointer}.manual-group-option input{width:20px;height:20px;flex:0 0 auto;margin:0;accent-color:#0f6fff}.manual-group-option>span{display:grid;gap:2px}.manual-group-option small{color:#66758a;font-size:.76rem}.manual-preview{display:flex;flex-direction:column;gap:16px}.manual-sheet{border:1px solid var(--manual-border);border-radius:10px;background:#fff;padding:18px 20px}.manual-sheet h2{margin:0;font-size:1.25rem}.manual-sheet h2 span{color:#526176;font-size:.95rem;font-weight:400}.manual-operator{margin:4px 0 14px;color:#526176}.manual-step{border-top:1px solid #edf1f7;padding:12px 0 4px}.manual-step h3{margin:0 0 8px;font-size:1.05rem}.manual-step p{margin:0 0 6px}.manual-item-group{margin:10px 0 14px}.manual-item-group h4{margin:0 0 6px;font-size:.95rem}.manual-item-group table{width:100%;border-collapse:collapse;font-size:.88rem}.manual-item-group th,.manual-item-group td{border:1px solid #c9d3e1;padding:5px 8px;text-align:left}.manual-item-group th{background:#f3f7fd}.manual-item-group td:last-child{width:72px;text-align:right}.manual-report{color:#344054;font-weight:700}.manual-tent p{margin:0 0 4px}.day-progress-campus-map{margin-bottom:18px;overflow:hidden;border:1px solid #cbd5e1;border-radius:16px;background:#f8fafc;box-shadow:0 8px 24px #17203312}.campus-map-header{display:flex;align-items:end;justify-content:space-between;gap:24px;padding:18px 20px 14px;background:#fff}.campus-map-header p{margin:0;color:#0b6bcb;font-size:.76rem;font-weight:850;letter-spacing:.08em;text-transform:uppercase}.campus-map-header h2{margin:2px 0 4px;font-size:1.35rem}.campus-map-header>div>span{color:#647086;font-size:.84rem}.campus-map-counts{display:flex;gap:8px;margin:0}.campus-map-counts div{min-width:78px;padding:8px 10px;border:1px solid #dbe1ea;border-radius:10px;background:#f8fafc;text-align:center}.campus-map-counts dt{color:#647086;font-size:.7rem;font-weight:750}.campus-map-counts dd{margin:1px 0 0;font-size:1.35rem;font-weight:900}.state-noInfo{--state-fill: #f8fafc;--state-edge: #cbd5e1;--state-edge-style: dashed;--state-ink: #94a3b8;--state-badge: #94a3b8;--state-badge-ink: #fff}.state-tentPending{--state-fill: #e2e8f0;--state-edge: #fff;--state-edge-style: solid;--state-ink: #475569;--state-badge: #64748b;--state-badge-ink: #fff}.state-tentInProgress{--state-fill: #dbeafe;--state-edge: #60a5fa;--state-edge-style: solid;--state-ink: #1e3a8a;--state-badge: #3b82f6;--state-badge-ink: #fff}.state-moveWaiting{--state-fill: #fff;--state-edge: #16a34a;--state-edge-style: solid;--state-ink: #166534;--state-badge: #16a34a;--state-badge-ink: #fff}.state-movePartial{--state-fill: #fff;--state-edge: #16a34a;--state-edge-style: dashed;--state-ink: #166534;--state-badge: #fff;--state-badge-ink: #15803d}.state-moveReady{--state-fill: #16a34a;--state-edge: #fff;--state-edge-style: solid;--state-ink: #fff;--state-badge: #14532d;--state-badge-ink: #fff;--state-halo: #22c55e59}.state-moving{--state-fill: #2563eb;--state-edge: #fff;--state-edge-style: solid;--state-ink: #fff;--state-badge: #1e3a8a;--state-badge-ink: #fff;--state-halo: #60a5fa66}.state-done{--state-fill: #dcfce7;--state-edge: #fff;--state-edge-style: solid;--state-ink: #15803d;--state-badge: #15803d;--state-badge-ink: #fff}.state-attention{--state-fill: #fff1f2;--state-edge: #e11d48;--state-edge-style: solid;--state-ink: #be123c;--state-badge: #e11d48;--state-badge-ink: #fff}.campus-map-counts div[class^=state-]{border-color:color-mix(in srgb,var(--state-badge) 45%,white);background:color-mix(in srgb,var(--state-badge) 8%,white)}.campus-map-counts div[class^=state-] dd{color:var(--state-badge)}.campus-map-counts dd small{margin-left:3px;font-size:.68rem;font-weight:800}.campus-map-legend{display:flex;flex-wrap:wrap;gap:6px 14px;margin:0;padding:10px 20px;border-block:1px solid #e2e8f0;background:#f8fafc;list-style:none}.campus-map-legend li{display:inline-flex;align-items:center;gap:6px;min-height:28px;color:#334155;font-size:.74rem;font-weight:800;white-space:nowrap}.campus-map-swatch{position:relative;display:inline-block;width:20px;height:20px;flex:0 0 auto;border:2px var(--state-edge-style) var(--state-edge);border-radius:50%;background:var(--state-fill);box-shadow:0 0 0 1px #cbd5e1;font-style:normal}.state-moveWaiting.campus-map-swatch,.state-movePartial.campus-map-swatch,.state-attention.campus-map-swatch,.state-tentInProgress.campus-map-swatch,.state-noInfo.campus-map-swatch{box-shadow:none}.campus-map-swatch>span{position:absolute;top:-6px;right:-7px;display:grid;width:13px;height:13px;place-items:center;border:1px solid var(--state-badge-ink);border-radius:50%;background:var(--state-badge);color:var(--state-badge-ink);font-size:.5rem;font-weight:950;line-height:1}.state-movePartial.campus-map-swatch>span{border-color:#16a34a}.campus-map-state-chip{display:inline-flex!important;align-items:center;gap:6px;margin:4px 0 2px;color:#334155!important;font-size:.76rem!important;font-weight:850}.map-status{display:inline-flex;align-items:center;min-height:28px;padding:4px 8px;border:1px solid #cbd5e1;border-radius:999px;background:#f1f5f9;color:#52627a;font-size:.72rem;font-weight:850;white-space:nowrap}.map-status.tent-inProgress,.map-status.move-inProgress{border-color:#93c5fd;background:#dbeafe;color:#1d4ed8}.map-status.tent-completed,.map-status.move-completed{border-color:#bbf7d0;background:#f0fdf4;color:#15803d}.map-status.move-ready{border-color:#16a34a;background:#16a34a;color:#fff}.map-status.move-partial{border:1px dashed #16a34a;background:#fff;color:#15803d}.map-status.tent-skipped,.map-status.move-skipped{border-color:#fda4af;background:#fff1f2;color:#be123c}.campus-map-layout{display:grid;grid-template-columns:minmax(0,1fr) 300px;height:min(720px,calc(100vh - 180px));min-height:520px}.campus-map-scroll{overflow:auto;background:#e5e7eb}.campus-map-scroll:focus-visible{outline:3px solid #60a5fa;outline-offset:-3px}.campus-map-canvas{position:relative;width:max(100%,1500px);line-height:0}.campus-map-canvas img{display:block;width:100%;height:auto}.campus-map-marker{position:absolute;display:inline-flex;width:44px;height:44px;align-items:center;justify-content:center;gap:1px;padding:0;transform:translate(-50%,-50%);border:3px var(--state-edge-style, solid) var(--state-edge, #fff)!important;border-radius:50%!important;background:var(--state-fill, #e2e8f0)!important;color:var(--state-ink, #334155)!important;box-shadow:0 2px #33415599,0 5px 12px #1720334d!important;font-size:.85rem;line-height:1}.campus-map-marker:hover:not(:disabled){z-index:4;transform:translate(-50%,-50%) scale(1.12)!important}.campus-map-marker b{font-size:.92rem}.campus-map-marker.kind-garbageStation,.campus-map-marker.kind-facility{border-radius:13px!important}.campus-map-marker.kind-facility b{font-size:.78rem;letter-spacing:-.04em}.campus-map-marker>span{position:absolute;top:-7px;right:-7px;display:grid;width:20px;height:20px;place-items:center;border:2px solid #fff;border-radius:50%;background:var(--state-badge);color:var(--state-badge-ink);font-size:.64rem;font-weight:950}.campus-map-marker.state-movePartial>span{border-color:#16a34a}.campus-map-marker.state-moveReady,.campus-map-marker.state-moving{box-shadow:0 2px #0f172a66,0 0 0 5px var(--state-halo),0 5px 12px #1720334d!important}.campus-map-marker.state-noInfo{opacity:.75;box-shadow:none!important}.campus-map-marker.selected{z-index:3;outline:4px solid #0f172a;outline-offset:3px}.campus-map-detail{overflow-y:auto;padding:17px;border-left:1px solid #dbe1ea;background:#fff}.campus-map-detail>header{display:flex;align-items:center;gap:11px;padding-bottom:14px;border-bottom:1px solid #e2e8f0}.campus-map-detail .stall-code{display:grid;width:46px;height:46px;flex:0 0 auto;place-items:center;border-radius:13px;background:#102b4c;color:#fff;font-size:1.35rem;font-weight:900}.campus-map-detail .stall-code.kind-facility{font-size:1rem;letter-spacing:-.04em}.campus-map-detail h3{margin:0;font-size:1.15rem}.campus-map-detail header div>span{color:#7c8799;font-size:.68rem;overflow-wrap:anywhere}.campus-map-detail section{padding:14px 0;border-bottom:1px solid #e2e8f0}.campus-map-detail-heading{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:9px}.campus-map-detail h4{margin:0;font-size:.9rem}.campus-map-detail p{margin:8px 0 0;color:#52627a;font-size:.78rem;line-height:1.45}.campus-map-detail ul{display:grid;gap:8px;margin:0;padding:0;list-style:none}.campus-map-detail li{display:grid;gap:4px;padding:9px;border:1px solid #e2e8f0;border-radius:9px;background:#f8fafc}.campus-map-detail li>strong{font-size:.8rem}.campus-map-detail li>span,.campus-map-detail li>small{color:#647086;font-size:.7rem;line-height:1.4}.campus-map-detail li>div{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:5px}.campus-map-group{display:inline-flex;width:fit-content;align-items:center;min-height:28px;padding:4px 8px;border:1px solid color-mix(in srgb,var(--campus-group-color) 55%,white);border-left:4px solid var(--campus-group-color);border-radius:7px;background:color-mix(in srgb,var(--campus-group-color) 12%,white);color:#263449;font-size:.72rem;font-weight:850}.campus-map-group.unknown{--campus-group-color: #94a3b8}.campus-map-granularity-note{display:block;margin-top:12px;color:#7c8799;font-size:.68rem;line-height:1.45}.day-progress-display-page .day-progress-campus-map{margin-bottom:0}.day-progress-display-page .campus-map-layout{height:calc(100vh - 195px);min-height:420px}@media (max-width: 1050px){.campus-map-header{align-items:stretch;flex-direction:column}.campus-map-counts{display:grid;grid-template-columns:repeat(4,1fr)}.campus-map-layout{grid-template-columns:1fr}.campus-map-detail{border-top:1px solid #dbe1ea;border-left:0}}@media (max-width: 600px){.campus-map-header,.campus-map-detail{padding:14px}.campus-map-counts{grid-template-columns:repeat(2,1fr)}.campus-map-legend{padding-inline:14px}}@media (prefers-reduced-motion: reduce){.campus-map-marker{transition:none!important}}.day-progress-route-map{margin-bottom:18px;overflow:hidden;border:1px solid #dbe1ea;border-radius:16px;background:#fff;box-shadow:0 5px 18px #1720330b}.day-route-header{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:16px 18px;border-bottom:1px solid #dbe1ea;background:linear-gradient(135deg,#f8fafc,#eff6ff)}.day-route-header p{margin:0 0 2px;color:#2563eb;font-size:.72rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase}.day-route-header h2{margin:0;font-size:1.25rem}.day-route-header span{display:block;margin-top:4px;color:#647086;font-size:.8rem}.day-route-counts{display:flex;flex:0 0 auto;gap:8px;margin:0}.day-route-counts div{min-width:88px;padding:8px 10px;border:1px solid #dbe1ea;border-radius:10px;background:#fff;text-align:center}.day-route-counts dt{color:#647086;font-size:.68rem;font-weight:700}.day-route-counts dd{margin:2px 0 0;color:#172033;font-size:1.25rem;font-weight:900}.day-route-counts .warning{border-color:#f59e0b;background:#fffbeb}.day-route-counts .warning dd{color:#b45309}.day-route-counts .danger{border-color:#fca5a5;background:#fff1f2}.day-route-counts .danger dd{color:#be123c}.day-route-legend{display:flex;flex-wrap:wrap;gap:10px 18px;padding:9px 18px;border-bottom:1px solid #e8edf3;background:#fff;color:#52627a;font-size:.75rem;font-weight:700}.day-route-legend span{display:inline-flex;align-items:center;gap:6px}.day-route-legend i{display:inline-block;width:30px;height:0;border-top:4px solid #2563eb}.day-route-legend i.double{border-color:#d97706;border-width:6px}.day-route-legend i.crowded{border-color:#dc2626;border-width:8px}.day-route-layout{display:grid;grid-template-columns:minmax(0,1fr) 320px;min-height:570px}.day-route-canvas{position:relative;min-width:0;min-height:570px;background:#f8fafc}.day-route-groups{max-height:570px;overflow:auto;padding:12px;border-left:1px solid #dbe1ea;background:#f8fafc}.day-route-group-heading{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:10px}.day-route-group-heading>div{display:grid;gap:1px}.day-route-group-heading strong{font-size:.9rem}.day-route-group-heading span{color:#647086;font-size:.7rem}.day-route-group-heading button{min-height:36px;padding:6px 9px;color:#1d4ed8;font-size:.72rem}.day-route-group-card{display:grid;width:100%;min-height:0!important;margin-bottom:9px;padding:11px 12px!important;border:1px solid #dbe1ea!important;border-left:5px solid var(--route-group-color)!important;border-radius:11px!important;background:#fff!important;text-align:left}.day-route-group-card:hover{border-color:color-mix(in srgb,var(--route-group-color) 55%,#dbe1ea)!important;background:color-mix(in srgb,var(--route-group-color) 5%,white)!important}.day-route-group-card.selected{outline:3px solid color-mix(in srgb,var(--route-group-color) 35%,transparent);background:color-mix(in srgb,var(--route-group-color) 9%,white)!important}.day-route-group-name{width:fit-content;margin-bottom:5px;padding:2px 7px;border-radius:6px;background:color-mix(in srgb,var(--route-group-color) 14%,white);color:#263449;font-size:.75rem;font-weight:900}.day-route-group-card>strong{color:#172033;font-size:.88rem;line-height:1.35}.day-route-summary{margin-top:3px;color:#52627a;font-size:.75rem;line-height:1.4}.day-route-leg-list{display:grid;gap:2px;margin-top:8px;padding-top:7px;border-top:1px solid #e8edf3}.day-route-leg-list small{color:#475569;font-size:.68rem;overflow-wrap:anywhere}.day-route-leg-list small.missing{color:#be123c;font-weight:800}.day-route-empty{display:grid;gap:5px;padding:18px 12px;border:1px dashed #b8c2d0;border-radius:10px;background:#fff;text-align:center}.day-route-empty strong{font-size:.86rem}.day-route-empty span{color:#647086;font-size:.75rem;line-height:1.45}.day-progress-display-page .day-progress-route-map{margin-bottom:0}.day-progress-display-page .day-route-layout,.day-progress-display-page .day-route-canvas{min-height:calc(100vh - 250px)}.day-progress-display-page .day-route-groups{max-height:calc(100vh - 250px)}@media (max-width: 1000px){.day-route-header{align-items:stretch;flex-direction:column}.day-route-counts{display:grid;grid-template-columns:repeat(4,1fr)}.day-route-counts div{min-width:0}.day-route-layout{grid-template-columns:1fr}.day-route-groups{max-height:340px;border-top:1px solid #dbe1ea;border-left:0}}@media (max-width: 620px){.day-route-counts{grid-template-columns:repeat(2,1fr)}.day-route-layout,.day-route-canvas{min-height:480px}.day-route-groups{min-height:0}}@media (prefers-reduced-motion: reduce){.day-progress-route-map .react-flow__edge-path{animation:none}}.day-group-sort{display:flex;margin:0;border:0;padding:0}.day-group-sort legend{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}.day-progress-page .day-group-sort button{min-height:40px;border-radius:0;padding:7px 9px;font-size:.78rem}.day-progress-page .day-group-sort button:first-of-type{border-radius:8px 0 0 8px}.day-progress-page .day-group-sort button:last-of-type{border-radius:0 8px 8px 0}.day-progress-page .day-group-sort button.active{border-color:var(--day-accent);background:#eaf4ff;color:var(--day-accent);font-weight:800;box-shadow:inset 0 0 0 1px #0b6bcb1f}.day-progress-page .day-group-sort button.active:disabled{opacity:1;cursor:default}.day-progress-page .day-group-sort button:disabled:not(.active){color:#98a2b3}.day-progress-page .day-group-grip{display:inline-grid;flex:0 0 auto;width:26px;min-height:0;height:40px;place-items:center;border:0;border-radius:6px;background:transparent;padding:0;color:#667085;font-size:1.05rem;line-height:1;box-shadow:none;cursor:grab;touch-action:none;-webkit-user-select:none;user-select:none}.day-progress-page .day-group-grip:hover:not(:disabled){border:0;background:#ffffffb3;color:#172033;box-shadow:none;transform:none}.day-progress-page .day-group-grip:active:not(:disabled){cursor:grabbing;transform:none}.day-progress-page .day-group-grip:focus-visible{outline:3px solid #0b6bcb;outline-offset:1px}.day-timeline{overflow:hidden;margin-bottom:18px;border:1px solid var(--day-line);border-radius:14px;background:#fff;box-shadow:0 5px 18px #1720330b}.day-timeline-toolbar{display:flex;min-height:68px;flex-wrap:wrap;align-items:center;gap:10px 16px;border-bottom:1px solid var(--day-line);padding:10px 14px}.day-timeline-toolbar>div:first-child{display:grid;flex:1 1 240px;gap:2px}.day-timeline-toolbar>div:first-child span,.day-timeline-outside{color:var(--day-muted);font-size:.8rem}.day-timeline-toolbar>div:first-child .day-timeline-schedule-shift{width:fit-content;margin-top:3px;border-radius:999px;background:#eef2ff;padding:3px 8px;color:#4338ca;font-weight:700}.day-timeline-toolbar fieldset{display:flex;margin:0;border:0;padding:0}.day-timeline-toolbar legend{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}.day-timeline-toolbar button{min-height:40px;border-color:#cbd5e1;background:#fff;color:#344054;box-shadow:0 1px 2px #17203312}.day-timeline-toolbar fieldset button{border-radius:0;padding:7px 9px;font-size:.78rem}.day-timeline-toolbar fieldset button:first-of-type{border-radius:8px 0 0 8px}.day-timeline-toolbar fieldset button:last-of-type{border-radius:0 8px 8px 0}.day-timeline-toolbar fieldset button.active{border-color:var(--day-accent);background:#eaf4ff;color:var(--day-accent);font-weight:800;box-shadow:inset 0 0 0 1px #0b6bcb1f}.day-timeline-now-button{color:var(--day-accent)!important;font-weight:800}.day-timeline-legend{display:flex;flex-wrap:wrap;gap:7px 10px;color:var(--day-muted);font-size:.75rem}.day-timeline-legend span{display:inline-flex;align-items:center;gap:4px}.day-timeline-legend b{color:#cbd5e1;font-weight:400}.day-timeline-legend i{width:12px;height:12px;border:1px solid;border-radius:3px}.day-timeline-legend i.ready{border-color:#1d4ed8;background:#dbeafe}.day-timeline-legend i.partial{border-color:#1d4ed8;border-style:dashed;background:repeating-linear-gradient(135deg,#eff6ff 0 4px,#f8fafc 4px 8px)}.day-timeline-legend i.blocked{border-color:#64748b;background:#f1f5f9}.day-timeline-legend i.in-progress{border-color:#b45309;background:#fef3c7}.day-timeline-legend i.completed{border-color:#047857;background:#d1fae5}.day-timeline-legend i.skipped{border-color:#be123c;background:repeating-linear-gradient(135deg,#fff1f2,#fff1f2 3px,#fecdd3 3px 6px)}.day-timeline-legend i.large-type{border:0;border-radius:2px;background:#2563eb}.day-timeline-legend i.tent-type{border:0;border-radius:2px;background:#7c3aed}.day-timeline-outside{margin:0;padding:8px 14px;background:#f8fafc}.day-timeline-quick-actions{box-sizing:border-box;display:flex;height:272px;min-height:272px;align-items:flex-start;justify-content:space-between;gap:14px;overflow:hidden;border-bottom:1px solid #bfdbfe;background:#eff6ff;padding:12px 14px}.day-timeline-quick-actions>div:first-child{display:grid;min-width:0;gap:1px}.day-timeline-selected-detail{height:100%;min-height:0;flex:1 1 560px;gap:8px!important;overflow:hidden}.day-timeline-selected-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.day-timeline-selected-heading-copy{display:grid;min-width:0;gap:2px}.day-timeline-selected-eyebrow{color:#52627a;font-size:.72rem;font-weight:750}.day-timeline-selected-heading h3{margin:0;color:#172033;font-size:1.05rem;line-height:1.2}.day-timeline-status-chip{display:inline-flex;flex:0 0 auto;align-items:center;min-height:27px;border:1px solid #cbd5e1;border-radius:999px;background:#fff;padding:4px 9px;color:#52627a!important;font-size:.72rem!important;font-weight:850;white-space:nowrap}.day-timeline-status-chip.state-ready{border-color:#93c5fd;background:#dbeafe;color:#1d4ed8!important}.day-timeline-status-chip.state-partial{border-style:dashed;border-color:#60a5fa;background:#eff6ff;color:#1d4ed8!important}.day-timeline-status-chip.state-inProgress{border-color:#fbbf24;background:#fef3c7;color:#92400e!important}.day-timeline-status-chip.state-completed{border-color:#86efac;background:#dcfce7;color:#047857!important}.day-timeline-status-chip.state-skipped{border-color:#fda4af;background:#fff1f2;color:#be123c!important}.day-timeline-detail-body{display:grid;gap:8px}.day-timeline-detail-route{display:grid;grid-template-columns:minmax(120px,.8fr) auto minmax(170px,1.4fr);align-items:stretch;gap:7px}.day-timeline-detail-location{display:grid;min-width:0;gap:3px;border:1px solid #bfdbfe;border-radius:9px;background:#fff;padding:7px 9px}.day-timeline-detail-location>span,.day-timeline-detail-label{color:#52627a!important;font-size:.68rem!important;font-weight:800}.day-timeline-detail-location>strong{color:#172033;font-size:.84rem;line-height:1.3;overflow-wrap:anywhere}.day-timeline-detail-arrow{display:grid;align-self:center;place-items:center;color:#0b6bcb!important;font-size:1.15rem!important;font-weight:900}.day-timeline-detail-movements{display:grid;gap:5px}.day-timeline-detail-movement-list{display:grid;max-height:96px;gap:6px;margin:0;overflow-y:auto;padding:0 5px 0 0;list-style:none;scrollbar-gutter:stable}.day-timeline-detail-movement-list>li{display:grid;grid-template-columns:minmax(120px,.7fr) minmax(0,1.3fr);align-items:start;gap:6px 10px;border:1px solid #dbeafe;border-radius:8px;background:#fff;padding:6px 8px}.day-timeline-movement-destination{display:grid;min-width:0;gap:1px}.day-timeline-movement-destination>span{color:#52627a!important;font-size:.66rem!important;font-weight:800}.day-timeline-movement-destination>strong{color:#172033;font-size:.8rem;line-height:1.25;overflow-wrap:anywhere}.day-timeline-movement-destination>small{color:#64748b;font-size:.66rem;overflow-wrap:anywhere}.day-timeline-movement-items{display:flex;flex-wrap:wrap;align-items:center;gap:5px;min-width:0}.day-timeline-movement-items>span{border-radius:6px;background:#eff6ff;padding:4px 7px;color:#1e3a8a!important;font-size:.75rem!important;font-weight:750}.day-timeline-detail-items{display:flex;flex-wrap:wrap;gap:5px;margin:0;padding:0;list-style:none}.day-timeline-detail-items li{display:inline-flex;align-items:baseline;gap:6px;border:1px solid #dbeafe;border-radius:7px;background:#fff;padding:4px 8px;color:#334155;font-size:.76rem}.day-timeline-detail-items li strong{color:#172033;font-size:.8rem}.day-timeline-detail-empty,.day-timeline-selected-fallback{color:#52627a!important;font-size:.75rem!important}.day-timeline-selected-fallback{margin:0}.day-timeline-selected-meta{display:flex;flex-wrap:wrap;gap:4px 12px;color:#52627a;font-size:.72rem}.day-timeline-quick-action-buttons>span{color:#52627a;font-size:.72rem}.day-timeline-quick-action-buttons{display:flex;flex:0 0 auto;align-items:center;gap:7px}.day-timeline-quick-action-buttons button{min-height:40px;border:1px solid #cbd5e1;border-radius:10px;background:#fff;padding:7px 12px;color:#172033;box-shadow:0 1px 2px #17203312}.day-timeline-quick-action-buttons button.primary{border-color:#075eb5;background:linear-gradient(135deg,#1477d4,#075eb5);color:#fff;font-weight:800;box-shadow:0 4px 12px #0b6bcb32}.day-timeline-quick-action-buttons button.close{min-width:40px;padding:7px;color:#52627a;font-size:1.2rem}.day-timeline-no-action{max-width:240px;line-height:1.3}.day-timeline-quick-action-buttons button.partial-start{border-style:dashed;border-color:#3b82f6;color:#1d4ed8;font-weight:800}.day-timeline-partial-note{max-width:240px;color:#1d4ed8;font-size:.78rem;line-height:1.3}.day-timeline-scroll{height:clamp(500px,70vh,760px);overflow:auto;outline:none;scrollbar-gutter:stable}.day-timeline-scroll:focus-visible{box-shadow:inset 0 0 0 3px #93c5fd}.day-timeline-grid{position:relative;min-width:100%}.day-timeline-corner,.day-timeline-headers{position:sticky;top:0;z-index:8;height:64px}.day-timeline-corner{left:0;display:flex;align-items:center;justify-content:center;border-right:1px solid #cbd5e1;border-bottom:1px solid #cbd5e1;background:#f8fafc;color:#475467;font-size:.78rem;font-weight:800}.day-timeline-headers{display:grid;width:max-content;margin-top:-64px}.day-timeline-group-header{display:grid;align-content:center;gap:3px;border-top:5px solid var(--group-color);border-right:1px solid #cbd5e1;border-bottom:1px solid #cbd5e1;background:color-mix(in srgb,var(--group-color) 10%,white);padding:7px 10px}.day-timeline-group-header strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.day-timeline-group-header span{color:#667085;font-size:.72rem}.day-timeline-axis{position:sticky;left:0;z-index:6;border-right:1px solid #cbd5e1;background:#f8fafc}.day-timeline-axis time{position:absolute;right:8px;transform:translateY(-50%);color:#475467;font-size:.7rem;font-variant-numeric:tabular-nums}.day-timeline-axis time:first-child{transform:none}.day-timeline-columns{position:absolute;display:grid;width:max-content}.day-timeline-column{position:relative;overflow:hidden;border-right:1px solid #d8dee8;background-image:repeating-linear-gradient(to bottom,#e2e8f0 0,#e2e8f0 1px,transparent 1px,transparent var(--five-minute-height))}.day-timeline-planned{position:absolute;z-index:1;right:5px;left:5px;border:2px dashed #64748b80;border-radius:6px;background:#fff9}.day-timeline-task{position:absolute;z-index:3;right:9px;left:9px;display:flex;min-width:0;min-height:0;flex-direction:column;align-items:flex-start;gap:1px;overflow:hidden;border:1px solid;border-radius:6px;padding:2px 5px;text-align:left;line-height:1.15;cursor:pointer;appearance:none}.day-timeline-task:hover{filter:brightness(.97)}.day-timeline-task:focus-visible,.day-timeline-task.selected{z-index:5;outline:3px solid #0b6bcb;outline-offset:2px}.day-timeline-task strong,.day-timeline-task span{overflow:hidden;max-width:100%;text-overflow:ellipsis;white-space:nowrap}.day-timeline-task strong{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;white-space:normal}.day-timeline-task strong{font-size:.75rem}.day-timeline-task span{font-size:.66rem}.day-timeline-task.type-largeTask{box-shadow:inset 5px 0 #2563eb;padding-left:9px}.day-timeline-task.type-tentTask{box-shadow:inset 5px 0 #7c3aed;padding-left:9px}.day-timeline-task.status-ready{border-color:#1d4ed8;background:#dbeafe;color:#1e3a8a}.day-timeline-task.status-partial{border-color:#3b82f6;border-style:dashed;background:repeating-linear-gradient(135deg,#eff6ff 0 6px,#f8fafc 6px 12px);color:#1e3a8a}.day-timeline-task.status-blocked{border-color:#64748b;background:#f1f5f9;color:#475569}.day-timeline-task.status-inProgress{z-index:4;border-width:2px;border-color:#b45309;background:#fef3c7;color:#78350f}.day-timeline-task.status-completed{border-color:#047857;background:#d1fae5;color:#065f46}.day-timeline-task.status-skipped{border-color:#be123c;background:repeating-linear-gradient(135deg,#fff1f2,#fff1f2 4px,#fecdd3 4px 8px);color:#881337}.day-timeline-future-zone{position:absolute;z-index:0;left:0;pointer-events:none;background:linear-gradient(180deg,#eff6ff99,#f8fbff55)}.day-timeline-future-zone span{position:sticky;left:6px;display:inline-block;margin-top:5px;border-radius:99px;background:#dbeafe;padding:2px 7px;color:#1d4ed8;font-size:.67rem;font-weight:800}.day-timeline-now-line{position:absolute;z-index:5;left:0;height:2px;pointer-events:none;background:#e11d48;box-shadow:0 1px 4px #e11d4866}.day-timeline-now-line span{position:sticky;left:4px;display:inline-block;transform:translateY(-100%);border-radius:4px 4px 0 0;background:#e11d48;padding:2px 5px;color:#fff;font-size:.67rem;font-weight:800}@media (max-width: 700px){.day-timeline-toolbar{align-items:stretch}.day-timeline-toolbar>div:first-child{flex-basis:100%}.day-timeline-toolbar fieldset{order:3}.day-timeline-legend{order:4;width:100%}.day-timeline-quick-actions{height:400px;min-height:400px;align-items:stretch;flex-direction:column}.day-timeline-selected-detail{height:auto;flex-basis:auto;width:100%}.day-timeline-detail-route{grid-template-columns:minmax(0,1fr)}.day-timeline-detail-arrow{transform:rotate(90deg)}.day-timeline-detail-movement-list>li{grid-template-columns:minmax(0,1fr)}.day-timeline-quick-action-buttons{flex-wrap:wrap}.day-timeline-no-action{max-width:none;flex:1 1 100%}.day-timeline-scroll{height:62vh;min-height:460px}}.day-timeline-group-sort-note{border-radius:999px;background:#f1f5f9;padding:3px 8px;color:#475467;font-size:.75rem;font-weight:700}.day-timeline-group-header.sortable{grid-template-columns:auto minmax(0,1fr);align-items:center;gap:6px;padding-left:4px}.day-timeline-group-header>div{display:grid;min-width:0;gap:3px}.day-timeline-group-header.dragging{opacity:.55}.day-timeline-group-header .day-group-grip span{color:inherit;font-size:1rem}.day-timeline-group-drop-indicator{position:absolute;z-index:9;top:0;width:4px;border-radius:2px;pointer-events:none;background:#0b6bcb;box-shadow:0 0 0 2px #fff,0 0 10px #0b6bcb80}.day-progress-page{--day-ink: #172033;--day-muted: #647086;--day-line: #dbe1ea;--day-accent: #0b6bcb;color:var(--day-ink);max-width:1680px;margin:0 auto}.day-progress-page button{border:1px solid #cbd5e1;border-radius:10px;background:#fff;color:var(--day-ink);font-weight:700;line-height:1.2;box-shadow:0 1px 2px #17203312;transition:background-color .16s ease,border-color .16s ease,color .16s ease,box-shadow .16s ease,transform .16s ease}.day-progress-page button:hover:not(:disabled){border-color:#60a5fa;background:#f8fbff;box-shadow:0 4px 12px #17203317;transform:translateY(-1px)}.day-progress-page button:active:not(:disabled){box-shadow:0 1px 3px #17203312;transform:translateY(0)}.day-progress-page button:focus-visible{outline:3px solid #93c5fd;outline-offset:2px}.day-progress-page button:disabled{cursor:not-allowed;opacity:.48;box-shadow:none}.day-progress-header{display:flex;justify-content:space-between;gap:24px;align-items:end;margin-bottom:20px}.day-progress-header h1{margin:2px 0 6px;font-size:clamp(2rem,4vw,3.2rem)}.day-progress-header p{margin:0;color:var(--day-muted)}.day-progress-eyebrow{text-transform:uppercase;letter-spacing:.08em;font-weight:700;font-size:.78rem;color:var(--day-accent)!important}.day-progress-header-controls{display:grid;flex:0 0 auto;justify-items:end;gap:9px}.day-progress-phase-tabs{display:flex;padding:4px;border-radius:12px;background:#edf1f6}.day-progress-phase-tabs button{min-width:96px;border-color:transparent;background:transparent;color:#4b5565;box-shadow:none}.day-progress-phase-tabs button:hover:not(:disabled){border-color:transparent;background:#ffffffa8;box-shadow:none;transform:none}.day-progress-phase-tabs button.active{background:#fff;color:var(--day-accent);box-shadow:0 2px 8px #17203318}.day-progress-screen-mode-actions{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:7px}.day-progress-screen-mode-actions button{min-height:40px}.day-progress-screen-mode-actions .two-screen-button{border-color:#2563eb;background:linear-gradient(135deg,#1477d4,#075eb5);color:#fff;font-weight:800;box-shadow:0 5px 14px #0b6bcb32}.day-progress-screen-mode-actions .two-screen-button:hover:not(:disabled){border-color:#075eb5;background:linear-gradient(135deg,#0f6ec8,#0757a8);box-shadow:0 7px 18px #0b6bcb42}.day-progress-screen-mode-actions .single-screen-button{border-color:#cbd5e1;background:#fff;color:#475569}.day-progress-visualization-bar{display:flex;align-items:center;justify-content:space-between;gap:18px;margin:0 0 10px;padding:10px 12px;border:1px solid #dbe1ea;border-radius:12px;background:#f8fafc}.day-progress-visualization-bar>div:first-child{display:grid;gap:1px}.day-progress-visualization-bar>div:first-child strong{font-size:.86rem}.day-progress-visualization-bar>div:first-child span{color:var(--day-muted);font-size:.76rem}.day-progress-visualization-tabs{display:flex;flex:0 0 auto;padding:4px;border-radius:11px;background:#e8edf3}.day-progress-visualization-tabs button{min-height:40px;min-width:118px;border-color:transparent;background:transparent;color:#52627a;box-shadow:none}.day-progress-visualization-tabs button:hover:not(:disabled){border-color:transparent;background:#ffffffb8;box-shadow:none;transform:none}.day-progress-visualization-tabs button.active{background:#102b4c;color:#fff;box-shadow:0 3px 9px #17203324}.day-progress-alert,.day-progress-message,.day-progress-empty{padding:16px 18px;margin:14px 0;border-radius:10px}.day-progress-alert.error{background:#fff0f0;border:1px solid #efb8b8;color:#a32121}.day-progress-alert.warning{background:#fff8df;border:1px solid #e8cf78}.day-progress-alert code{margin:0 5px}.day-progress-empty{background:#f6f8fb;border:1px dashed #b8c2d0;text-align:center}.day-progress-start-card{display:flex;justify-content:space-between;align-items:center;gap:24px;padding:24px;border:1px solid #b9d8f7;border-radius:16px;background:linear-gradient(135deg,#f5faff,#eaf4ff)}.day-progress-start-card h2{margin:4px 0}.day-progress-start-card p{margin:0;color:var(--day-muted)}.day-progress-start-card p.dependency-error{margin-top:6px;color:#a32121;font-weight:700}.day-progress-start-card>div>span{color:var(--day-accent);font-weight:700}.day-progress-start-card button{border-color:#075eb5;background:linear-gradient(135deg,#1477d4,#075eb5);color:#fff;box-shadow:0 5px 14px #0b6bcb32}.day-progress-start-card button:hover:not(:disabled){border-color:#075eb5;background:linear-gradient(135deg,#0f6ec8,#0757a8)}.day-progress-start-actions{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:8px}.day-progress-start-actions button{min-height:44px}.day-progress-start-actions button.secondary-action{border-color:#93c5fd;background:#fff;color:#1d4ed8}.day-progress-draft-bar{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:14px;padding:16px 18px;border:1px solid #f0c36a;border-radius:12px;background:#fff9e8}.day-progress-draft-bar strong,.day-progress-draft-bar span{display:block}.day-progress-draft-bar strong{color:#8a4b08;font-size:1.05rem}.day-progress-draft-bar span{margin-top:3px;color:#765b32;font-size:.86rem}.day-progress-draft-actions{display:flex;flex:0 0 auto;gap:8px}.day-progress-draft-actions button{min-height:44px}.day-progress-draft-actions .discard-draft-button{border-color:#c9aa72;background:#fff;color:#76501a}.day-progress-draft-actions .start-draft-button{border-color:#075eb5;background:linear-gradient(135deg,#1477d4,#075eb5);color:#fff;font-weight:800;box-shadow:0 5px 14px #0b6bcb32}.day-progress-draft-actions .start-draft-button:hover:not(:disabled){border-color:#075eb5;background:linear-gradient(135deg,#0f6ec8,#0757a8)}.day-progress-summary{display:grid;grid-template-columns:minmax(230px,1.7fr) repeat(6,minmax(105px,1fr));gap:10px}.day-progress-summary article{padding:16px;border:1px solid var(--day-line);border-radius:12px;background:#fff;box-shadow:0 5px 18px #1720330b}.day-progress-summary article.primary{background:#102b4c;color:#fff}.day-progress-summary .summary-note{display:block;margin-top:2px;color:#1d4ed8;font-size:.72rem;font-style:normal;font-weight:750}.day-progress-summary small{display:block;color:var(--day-muted);font-weight:700}.day-progress-summary .primary small{color:#b8d4f1}.day-progress-summary strong{display:block;margin-top:4px;font-size:1.9rem}.day-progress-summary strong.time{font-size:1.35rem;margin-top:10px}.day-progress-summary em{font-size:1rem;font-style:normal;color:var(--day-muted)}.day-progress-meter{height:6px;margin-top:10px;border-radius:99px;background:#ffffff25;overflow:hidden}.day-progress-meter span{display:block;height:100%;background:#58d8b7}.day-progress-run-meta{display:flex;flex-wrap:wrap;gap:10px 18px;align-items:center;margin:14px 0 18px;color:var(--day-muted);font-size:.88rem}.run-status{padding:4px 10px;border-radius:99px;font-weight:800}.run-status.draft{color:#8a4b08;background:#fff0c2}.run-status.running{color:#00684a;background:#d9f6ec}.run-status.completed{color:#2c5282;background:#e2efff}.day-progress-run-meta .debug-reset-button{min-height:44px;margin-left:auto;border:1px solid #dc2626;background:#fff;color:#b91c1c}.day-progress-run-meta .debug-reset-button:hover:not(:disabled){background:#fff1f2}.day-progress-operation-hint{margin:-7px 0 16px;padding:10px 12px;border-left:3px solid #60a5fa;background:#f8fafc;color:var(--day-muted);font-size:.84rem}.day-progress-operation-hint strong{color:#334155}.day-progress-screen-mode-notice{display:flex;align-items:center;justify-content:space-between;gap:18px;margin:-4px 0 16px;padding:13px 15px;border:1px solid #93c5fd;border-radius:12px;background:#eff6ff}.day-progress-screen-mode-notice div{display:grid;gap:2px}.day-progress-screen-mode-notice strong{color:#1e40af}.day-progress-screen-mode-notice span{color:#52627a;font-size:.84rem}.day-progress-screen-mode-notice button{flex:0 0 auto;min-height:42px;border-color:#60a5fa;background:#fff;color:#1d4ed8;font-weight:800}.day-progress-display-page{max-width:none;min-height:100vh;padding:12px}.day-progress-display-header{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:10px;padding:8px 10px}.day-progress-display-header h1{margin:1px 0 2px;font-size:clamp(1.5rem,2.6vw,2.25rem)}.day-progress-display-header span{color:var(--day-muted);font-size:.88rem}.day-progress-display-controls{display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-end;gap:8px}.day-progress-display-controls>button{min-height:42px;border-color:#93c5fd;background:#fff;color:#1d4ed8;font-weight:800}.day-progress-display-controls>button.subtle{border-color:#cbd5e1;color:#52627a}.day-progress-display-page .day-timeline{margin-bottom:0}.day-progress-display-page .day-timeline-scroll{height:calc(100vh - 205px);min-height:420px}.day-progress-drag-targets{position:fixed;z-index:1000;left:50%;width:min(920px,calc(100vw - 32px));padding:12px 14px;border:1px solid #93c5fd;border-radius:12px;background:#eff6ff;box-shadow:0 16px 44px #17203335;transform:translate(-50%)}.day-progress-drag-targets.position-top{top:20px}.day-progress-drag-targets.position-bottom{bottom:20px}.day-progress-drag-targets>strong{margin-right:10px;color:#1d4ed8}.day-progress-drag-targets>span{color:var(--day-muted);font-size:.82rem}.day-progress-drag-targets>div{display:flex;flex-wrap:nowrap;gap:8px;margin-top:10px;overflow-x:auto;padding-bottom:2px}.group-drop-chip{flex:0 0 auto;min-height:44px;display:inline-flex;align-items:center;padding:8px 12px;border:1px dashed var(--group-color);border-radius:9px;background:color-mix(in srgb,var(--group-color) 9%,white);color:#263449;font-weight:800}.group-drop-chip:hover{border-style:solid;background:color-mix(in srgb,var(--group-color) 16%,white)}.day-progress-layout{display:grid;grid-template-columns:minmax(0,1fr) 290px;gap:18px;align-items:start}.day-progress-groups{display:grid;gap:16px}.day-progress-group-card{border:1px solid var(--day-line);border-radius:14px;overflow:hidden;background:#fff;box-shadow:0 5px 18px #1720330b}.day-progress-group-card>header{display:flex;justify-content:space-between;align-items:center;padding:13px 16px;border-top:5px solid var(--group-color);border-bottom:1px solid var(--day-line);background:color-mix(in srgb,var(--group-color) 8%,white)}.day-progress-group-card header div{display:flex;align-items:baseline;gap:10px}.day-progress-group-card h2{margin:0;font-size:1.1rem}.day-progress-group-card header span{color:var(--day-muted)}.day-progress-table-wrap{overflow-x:auto}.day-progress-group-card table{width:100%;min-width:950px;border-collapse:collapse}.day-progress-group-card th{padding:8px 10px;color:var(--day-muted);background:#fbfcfd;font-size:.78rem;text-align:left}.day-progress-group-card td{padding:10px;border-top:1px solid #edf0f4;vertical-align:middle;font-size:.88rem}.day-progress-group-card tr.is-dragging{opacity:.42}.day-progress-group-card tr.drag-target td{border-top:3px solid #2563eb}.day-progress-group-card tr.status-inProgress{background:#fffbeb}.day-progress-group-card tr.status-completed{background:#ecfdf5}.day-progress-group-card tr.status-skipped{background:#fff1f2;color:#881337}.day-progress-group-card tr.status-ready{background:#eff6ff}.day-progress-group-card tr.status-partial{background:#f8fbff}.day-progress-group-card tr.status-blocked{background:#f8fafc;color:#475569}.task-status{display:inline-block;padding:3px 8px;border-radius:99px;background:#edf1f6;font-size:.78rem;font-weight:800;white-space:nowrap}.status-inProgress .task-status{background:#fef3c7;color:#92400e;outline:1px solid #f59e0b}.status-completed .task-status{background:#d1fae5;color:#047857;outline:1px solid #6ee7b7}.status-skipped .task-status{background:#ffe4e6;color:#be123c;outline:1px solid #fda4af}.status-ready .task-status{background:#dbeafe;color:#1d4ed8;outline:1px solid #93c5fd}.status-partial .task-status{background:#fff;color:#1d4ed8;outline:1px dashed #60a5fa}.status-blocked .task-status{background:#e2e8f0;color:#475569;outline:1px solid #cbd5e1}.blocking-reason{display:block;max-width:130px;margin-top:4px;color:#697386;font-size:.7rem;line-height:1.25}.task-name strong,.task-name small{display:block}.task-name small{color:var(--day-muted);margin-top:2px}.task-name .skip-reason{color:#9a4b00}.task-order{white-space:nowrap}.drag-handle{display:inline-block;margin-right:5px;color:#64748b;cursor:grab;font-size:1.1rem;font-weight:800}.drag-handle:active{cursor:grabbing}.task-actions{display:flex;flex-wrap:wrap;gap:5px;min-width:220px}.task-actions button{min-height:44px;padding:6px 9px;font-size:.78rem;background:#fff;border-color:#b7c1ce;color:var(--day-ink)}.task-actions select{min-height:44px;max-width:170px;border:1px solid #b7c1ce;border-radius:7px;background:#fff;padding:6px 28px 6px 9px;color:var(--day-ink);font-size:.78rem}.task-actions button.primary-action{border-color:#075eb5;background:linear-gradient(135deg,#1477d4,#075eb5);color:#fff;box-shadow:0 3px 9px #0b6bcb2b}.task-actions button.primary-action:hover:not(:disabled){border-color:#075eb5;background:linear-gradient(135deg,#0f6ec8,#0757a8)}.task-actions button.partial-start{border-style:dashed;border-color:#3b82f6;color:#1d4ed8}.task-actions .completion-blocker{display:block;max-width:220px;color:#1d4ed8;font-size:.7rem;line-height:1.35}.task-actions button.subtle{color:var(--day-muted)}.reorder-buttons{display:inline-flex;gap:3px}.reorder-buttons button{min-width:38px;padding-inline:8px;font-size:1rem;font-weight:800}.day-progress-events{position:sticky;top:12px;max-height:calc(100vh - 150px);overflow:auto;padding:16px;border:1px solid var(--day-line);border-radius:14px;background:#f8fafc}.day-progress-events h2{margin:0 0 12px;font-size:1.1rem}.day-progress-events ol{list-style:none;padding:0;margin:0}.day-progress-events li{display:grid;gap:2px;padding:10px 0;border-top:1px solid var(--day-line)}.day-progress-events time,.day-progress-events span,.day-progress-events small{color:var(--day-muted);font-size:.78rem}.day-progress-event-task{display:grid;gap:3px;margin:5px 0 2px;padding:8px 9px;border:1px solid #dbeafe;border-radius:9px;background:#fff}.day-progress-event-task>strong{color:var(--day-ink);font-size:.86rem;line-height:1.35}.day-progress-event-task>span{display:grid;grid-template-columns:34px minmax(0,1fr);gap:5px;color:#52627a;font-size:.76rem;line-height:1.4}.day-progress-event-task>span b{color:#334155;font-size:.7rem}.day-progress-event-task>span.unavailable{color:#7c8799}.day-progress-event-task>small{overflow-wrap:anywhere;color:#7c8799;font-size:.68rem}.day-progress-event-task>small.task-context{color:#1d4ed8;font-size:.72rem;font-weight:800}.day-progress-work-group-badge{display:inline-flex;width:fit-content;align-items:center;padding:3px 8px;border:1px solid color-mix(in srgb,var(--group-color) 55%,white);border-left:4px solid var(--group-color);border-radius:7px;background:color-mix(in srgb,var(--group-color) 12%,white);color:#263449!important;font-size:.76rem!important;font-style:normal;font-weight:800;line-height:1.25}.day-progress-group-card h2 .day-progress-work-group-badge{padding:4px 9px;font-size:.94rem!important}.day-progress-event-group-change{display:flex;flex-wrap:wrap;align-items:center;gap:5px;margin-top:3px}.day-progress-event-group-change>span:not(.day-progress-work-group-badge){color:var(--day-muted);font-size:.78rem}@media (max-width: 1100px){.day-progress-summary{grid-template-columns:repeat(3,1fr)}.day-progress-summary article:last-child{grid-column:1 / -1}.day-progress-layout{grid-template-columns:1fr}.day-progress-events{position:static;max-height:360px}}@media (max-width: 700px){.day-progress-header,.day-progress-start-card{align-items:stretch;flex-direction:column}.day-progress-header-controls{justify-items:stretch}.day-progress-phase-tabs{align-self:stretch}.day-progress-phase-tabs button{flex:1}.day-progress-screen-mode-actions,.day-progress-screen-mode-notice,.day-progress-display-header,.day-progress-display-controls,.day-progress-visualization-bar{align-items:stretch;flex-direction:column}.day-progress-visualization-tabs{width:100%}.day-progress-visualization-tabs button{flex:1;min-width:0}.day-progress-screen-mode-actions button,.day-progress-screen-mode-notice button,.day-progress-display-controls>button{width:100%}.day-progress-display-page{padding:8px}.day-progress-display-page .day-timeline-scroll{height:calc(100vh - 300px)}.day-progress-start-actions,.day-progress-draft-bar,.day-progress-draft-actions{align-items:stretch;flex-direction:column}.day-progress-start-actions button,.day-progress-draft-actions button{width:100%}.day-progress-summary{grid-template-columns:repeat(2,1fr)}.day-progress-summary article.primary{grid-column:1 / -1}.day-progress-summary article:last-child{grid-column:auto}.day-progress-run-meta .debug-reset-button{width:100%;margin-left:0}}.day-progress-group-order-bar{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:8px 14px}.day-progress-group-order-bar>span{color:var(--day-muted);font-size:.8rem}.day-progress-group-slot{position:relative}.day-progress-group-slot.drop-before:before,.day-progress-group-slot.drop-after:after{position:absolute;z-index:5;right:0;left:0;height:4px;border-radius:2px;content:"";pointer-events:none;background:#0b6bcb;box-shadow:0 0 0 2px #fff,0 0 10px #0b6bcb80}.day-progress-group-slot.drop-before:before{top:-10px}.day-progress-group-slot.drop-after:after{bottom:-10px}.day-progress-group-card.is-dragging{opacity:.55}.day-progress-group-card header div:has(>.day-group-grip){align-items:center}.day-progress-group-card header .day-group-grip span{color:inherit}.app-layout{display:flex;flex-direction:column;min-height:100vh}.main-content{flex-grow:1;padding:20px}.timeline-display-layout{min-height:100vh;background:#f4f7fb}.main-content.timeline-display-content{min-height:100vh;padding:0}.auth-gate{display:flex;flex-direction:column;gap:12px;align-items:center;justify-content:center;min-height:100vh;text-align:center;padding:24px}.auth-gate--loading,.auth-gate--sign-in{position:relative;overflow:hidden;color:#253044;background:radial-gradient(circle at 50% 38%,rgba(37,99,235,.08),transparent 32%),#f6f8fb}.auth-gate--loading:before,.auth-gate--loading:after,.auth-gate--sign-in:before,.auth-gate--sign-in:after{content:"";position:absolute;width:240px;height:240px;border:1px solid rgba(37,99,235,.08);border-radius:50%}.auth-gate--loading:before,.auth-gate--sign-in:before{top:-150px;left:-90px}.auth-gate--loading:after,.auth-gate--sign-in:after{right:-110px;bottom:-170px}.auth-sign-in-card{position:relative;z-index:1;box-sizing:border-box;width:min(100%,460px);padding:40px 38px 34px;border:1px solid #dfe5ed;border-radius:18px;background:#fffffff7;box-shadow:0 18px 50px #2331491a}.auth-sign-in-brand{display:grid;width:68px;height:68px;place-items:center;margin:0 auto 18px;border:1px solid #cfe0f8;border-radius:17px;color:#2563eb;background:#edf4ff;box-shadow:0 8px 20px #2563eb17}.auth-sign-in-brand svg{width:42px;height:42px;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}.auth-sign-in-eyebrow{display:block;margin-bottom:6px;color:#4f6f99;font-size:.68rem;font-weight:800;letter-spacing:.16em}.auth-sign-in-card h1{margin:0;color:#1f2937;font-size:1.55rem;line-height:1.35}.auth-sign-in-description{max-width:340px;margin:10px auto 0;color:#667085;font-size:.88rem;line-height:1.75}.auth-google-button{display:grid;grid-template-columns:34px minmax(0,1fr) 20px;width:100%;min-height:58px;align-items:center;gap:11px;margin-top:28px;border:1px solid #c9d5e5;border-radius:12px;padding:9px 13px;color:#26364a;background:#fff;box-shadow:0 2px 6px #1018280f;cursor:pointer;transition:border-color .16s ease,background-color .16s ease,box-shadow .16s ease,transform .16s ease}.auth-google-button:hover:not(:disabled){border-color:#8eadd5;background:#f8fbff;box-shadow:0 6px 16px #2563eb1c;transform:translateY(-1px)}.auth-google-button:focus-visible{outline:3px solid rgba(37,99,235,.26);outline-offset:3px}.auth-google-button:disabled{cursor:wait;opacity:.68}.auth-google-mark{display:grid;width:32px;height:32px;place-items:center;border:1px solid #e0e5ec;border-radius:50%;color:#4285f4;background:#fff;font-family:Arial,sans-serif;font-size:1rem;font-weight:800}.auth-google-button__copy{display:grid;gap:2px;min-width:0;text-align:left}.auth-google-button__copy strong{font-size:.88rem;font-weight:750;line-height:1.3}.auth-google-button__copy small{overflow:hidden;color:#7a8697;font-size:.67rem;line-height:1.3;text-overflow:ellipsis;white-space:nowrap}.auth-google-button>svg{width:19px;height:19px;color:#718096;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.auth-sign-in-note{display:flex;align-items:center;justify-content:center;gap:7px;margin:16px 0 0;color:#748094;font-size:.7rem;line-height:1.5}.auth-sign-in-note svg{width:15px;height:15px;flex:0 0 auto;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.auth-sign-in-card .auth-error{margin-top:18px;border:1px solid #f2c8cc;border-radius:10px;padding:10px 12px;color:#9f2936;background:#fff6f7;font-size:.76rem}.auth-sign-in-footer{position:relative;z-index:1;margin:4px 0 0;color:#7a8496;font-size:.75rem;letter-spacing:.04em}.auth-loading-card{position:relative;z-index:1;width:min(100%,440px);padding:42px 38px 34px;border:1px solid #dfe5ed;border-radius:16px;background:#fffffff5;box-shadow:0 18px 50px #2331491a}.auth-loading-visual{position:relative;display:grid;width:92px;height:92px;place-items:center;margin:0 auto 26px}.auth-loading-visual svg{width:48px;height:48px;padding:8px;border-radius:12px;color:#2563eb;background:#edf3ff;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}.auth-loading-ring{position:absolute;inset:4px;border:2px solid #dce7fa;border-top-color:#2563eb;border-right-color:#7da3e8;border-radius:50%;animation:auth-loading-spin 1.35s linear infinite}.auth-loading-orbit{position:absolute;top:1px;left:43px;width:8px;height:8px;border:2px solid #fff;border-radius:50%;background:#2563eb;box-shadow:0 1px 5px #2563eb66;transform-origin:3px 45px;animation:auth-loading-orbit 1.35s linear infinite}.auth-loading-card h1{margin:0;color:#1f2937;font-size:1.35rem;line-height:1.45}.auth-loading-card>p{max-width:330px;margin:10px auto 0;color:#657085;font-size:.88rem;line-height:1.7}.auth-loading-progress{position:relative;display:grid;grid-template-columns:repeat(3,1fr);margin-top:30px}.auth-loading-progress:before{content:"";position:absolute;top:6px;right:17%;left:17%;height:2px;background:linear-gradient(90deg,#dbe4f2,#2563eb 45%,#dbe4f2 75%);background-size:220% 100%;animation:auth-loading-line 2.4s ease-in-out infinite}.auth-loading-step{position:relative;z-index:1;display:flex;flex-direction:column;align-items:center;gap:7px}.auth-loading-step span{width:14px;height:14px;border:3px solid #fff;border-radius:50%;background:#cbd5e1;box-shadow:0 0 0 1px #cbd5e1;animation:auth-loading-step 2.4s ease-in-out infinite}.auth-loading-step small{color:#778196;font-size:.73rem;font-weight:650}.auth-loading-step--two span{animation-delay:.8s}.auth-loading-step--three span{animation-delay:1.6s}.auth-loading-product{position:relative;z-index:1;margin:4px 0 0;color:#7a8496;font-size:.78rem;letter-spacing:.04em}@keyframes auth-loading-spin{to{transform:rotate(360deg)}}@keyframes auth-loading-orbit{to{transform:rotate(360deg)}}@keyframes auth-loading-line{0%{background-position:100% 0}to{background-position:-120% 0}}@keyframes auth-loading-step{0%,28%,to{background:#cbd5e1;box-shadow:0 0 0 1px #cbd5e1;transform:scale(1)}12%,20%{background:#2563eb;box-shadow:0 0 0 4px #2563eb21;transform:scale(1.08)}}@media (max-width: 520px){.auth-gate--loading,.auth-gate--sign-in{padding:18px}.auth-loading-card{padding:34px 24px 28px}.auth-sign-in-card{padding:34px 22px 28px}.auth-sign-in-card h1{font-size:1.35rem}.auth-google-button__copy small{white-space:normal}}@media (prefers-reduced-motion: reduce){.auth-loading-ring,.auth-loading-orbit,.auth-loading-progress:before,.auth-loading-step span{animation:none}.auth-loading-ring{border-color:#dce7fa;border-top-color:#2563eb}.auth-loading-step span{background:#7698d5;box-shadow:0 0 0 1px #7698d5}.auth-google-button{transition:none}}.auth-error{margin:0;max-width:680px;color:#b00020;font-size:.95rem;line-height:1.5}
