.notification-panel{width:min(400px,calc(100vw - var(--sp-6)))}.notification-panel-list{max-height:min(480px,60vh);overflow-y:auto;margin-inline:calc(var(--sp-3) * -1)}.notification-day{font-size:var(--fs-micro);color:var(--muted);padding:var(--sp-2) var(--sp-3) var(--sp-1)}.notification-item{display:flex;gap:var(--sp-3);align-items:flex-start;padding:var(--sp-3);border-radius:var(--r);cursor:default;position:relative}.notification-item--link{cursor:pointer}.notification-item--link:hover,.notification-item--link:focus-visible{background:var(--fill-alter);outline:none}.notification-item--resolved .notification-title,.notification-item--resolved .notification-body{color:var(--muted)}.notification-icon{flex:none;width:32px;height:32px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;color:var(--blue);background:var(--blue-bg)}.notification-icon--success{color:var(--teal);background:var(--tealbg)}.notification-icon--warning{color:var(--amber);background:var(--amberbg)}.notification-icon--error{color:var(--red);background:var(--redbg)}.notification-icon--resolved{color:var(--muted);background:var(--fill-alter)}.notification-main{flex:1;min-width:0}.notification-title{color:var(--text);font-size:var(--fs-body);line-height:1.4}.notification-item--unread .notification-title{font-weight:600}.notification-body{color:var(--muted-strong);font-size:var(--fs-meta);line-height:1.45;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.notification-meta{color:var(--muted);font-size:var(--fs-micro);display:flex;flex-wrap:wrap;align-items:center;gap:var(--sp-1) var(--sp-2);margin-top:var(--sp-1)}.notification-side{flex:none;display:flex;flex-direction:column;align-items:center;gap:var(--sp-1);min-width:24px}.notification-dot{width:8px;height:8px;border-radius:50%;background:var(--brand);margin-top:var(--sp-2)}.notification-toast--link{cursor:pointer}.pref-group{display:flex;flex-direction:column;gap:var(--sp-2)}.pref-group-title{font-size:var(--fs-meta);font-weight:var(--fw-title);color:var(--muted)}.pref-card{border:1px solid var(--line2);border-radius:var(--r-lg);background:var(--paper)}.pref-row{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-3);padding:var(--sp-3) var(--sp-4)}.pref-row+.pref-row{border-top:1px solid var(--line2)}.pref-row--stack{flex-direction:column;align-items:stretch}.pref-text{display:flex;flex-direction:column;gap:var(--sp-1);min-width:0}.pref-label{font-weight:var(--fw-title)}.pref-hint{font-size:var(--fs-meta);color:var(--muted)}.pref-control{flex:none}.pref-row--stack .pref-control{flex:auto}.pref-swatches{display:flex;flex-wrap:wrap;gap:var(--sp-2)}.column-filter{padding:var(--sp-3);min-width:240px;max-width:min(320px,calc(100vw - 32px))}.column-filter-options{max-height:280px;overflow-y:auto}.column-filter-number{flex:1;min-width:0}.column-filter-icon-on{color:var(--brand)}.list-filter-bar{min-width:0}.plan-all-from{display:inline-flex;align-items:center;gap:var(--sp-2)}.plan-all-summary{display:inline-flex;flex-wrap:wrap;align-items:center;gap:var(--sp-2);margin-left:auto}.plan-all-input{width:100%}.plan-all-name{display:inline-block;max-width:200px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;vertical-align:middle}.plan-all-info{display:inline-flex;color:var(--muted)}.plan-all-table .plan-all-row--focused>td{background:var(--brand-soft)}.plan-all-timeline{display:flex;flex-direction:column;gap:var(--sp-2);padding:var(--sp-3);border:1px solid var(--line);border-radius:var(--r)}.plan-all-lanes{display:flex;flex-direction:column;gap:var(--sp-1);max-height:240px;overflow-y:auto}.plan-all-lane{display:grid;grid-template-columns:minmax(96px,200px) 1fr;align-items:center;gap:var(--sp-3);border-radius:var(--r-sm)}.plan-all-lane--focused .plan-all-lane-label{color:var(--brand-text);font-weight:600}.plan-all-lane-label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:var(--fs-meta);color:var(--muted-strong)}.plan-all-track{position:relative;height:16px;border-radius:var(--r-sm);background:var(--fill-secondary)}.plan-all-bar{position:absolute;top:2px;height:12px;border:0;border-radius:3px;cursor:pointer}.plan-all-bar:focus-visible{outline:2px solid var(--focus);outline-offset:1px}.plan-all-bar--suggested{background:var(--blue-solid)}.plan-all-bar--anchored{background:var(--teal-solid)}.plan-all-bar--kept{background:transparent;box-shadow:inset 0 0 0 1.5px var(--blue)}.plan-all-bar--locked{background:var(--grey-chip)}.plan-all-due{position:absolute;top:-3px;bottom:-3px;width:2px;background:var(--red-solid)}.plan-all-axis .plan-all-track{height:auto;background:transparent}.plan-all-axis-labels{display:flex;justify-content:space-between;gap:var(--sp-2);font-size:var(--fs-meta);color:var(--muted)}.plan-all-due-label{color:var(--red)}@media(max-width:767px){.plan-all-summary{margin-left:0}.plan-all-lane{grid-template-columns:72px 1fr}.plan-all-due-label{display:none}}.gantt-layout{display:grid;grid-template-columns:minmax(0,1fr) 242px;gap:var(--sp-4);align-items:start}@media(max-width:900px){.gantt-layout{grid-template-columns:1fr}}.panel{min-width:0}.panel-title-line{display:flex;align-items:baseline;gap:var(--sp-3);min-width:0}.panel-title-main{flex:none;white-space:nowrap}.panel-title-desc{min-width:0;font-size:var(--fs-meta);font-weight:var(--fw-body)}.gantt-panel .panel-foot{padding:var(--sp-3) var(--sp-5);border-top:1px solid var(--line2);color:var(--muted);font-size:var(--fs-meta)}.gantt-shell{position:relative;display:grid;grid-template-columns:var(--gantt-grid-w, 300px) minmax(0,1fr);grid-template-rows:60px auto;background:var(--paper)}.gantt-grid-body,.gantt-body{height:min(var(--gantt-content-h, 400px),max(260px,calc(100vh - 300px)))}.gantt-grid-header{grid-area:1 / 1;display:flex;align-items:stretch;background:var(--fill-alter);border-right:1px solid var(--line);border-bottom:1px solid var(--line);min-width:0}.gantt-grid-title{display:flex;align-items:flex-end;padding:0 10px 7px;font-size:var(--fs-micro);font-weight:var(--fw-label);color:var(--muted);white-space:nowrap;overflow:hidden;box-sizing:border-box}.gantt-grid-title+.gantt-grid-title{border-left:1px solid var(--line2)}.gantt-grid-title--right{justify-content:flex-end;text-align:right}.gantt-grid-title-stack{display:flex;flex-direction:column;line-height:1.25}.gantt-grid-title-stack small{font-size:var(--fs-micro);font-weight:var(--fw-body);white-space:nowrap}.gantt-grid-body{grid-area:2 / 1;overflow:hidden;position:relative;border-right:1px solid var(--line)}.gantt-grid-inner{position:relative}.gantt-grid-row{position:absolute;left:0;right:0;display:flex;border-bottom:1px solid var(--line2);box-sizing:border-box}.gantt-label{display:flex;flex-direction:column;justify-content:center;gap:2px;padding:0 10px;min-width:0;overflow:hidden;box-sizing:border-box}.gantt-label+.gantt-label{border-left:1px solid var(--line2)}.gantt-label>*{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.gantt-label b{font-size:var(--fs-body);font-weight:var(--fw-label);line-height:18px}.gantt-label small,.gantt-label .gantt-empty,.gantt-group-meta{font-size:var(--fs-micro);line-height:16px;color:var(--muted)}.gantt-label--right{align-items:flex-end;text-align:right}.gantt-empty{font-size:var(--fs-micro);color:var(--muted)}.gantt-load-over{color:var(--red)}.gantt-grid-skeleton{display:flex;flex-direction:column;gap:16px;padding:16px 12px}.gantt-grid-skeleton span{height:14px;border-radius:4px;background:var(--fill-alter);animation:gantt-skeleton 1.2s ease-in-out infinite alternate}.gantt-grid-skeleton span:nth-child(2n){width:70%}@keyframes gantt-skeleton{0%{opacity:1}to{opacity:.45}}.gantt-grid-empty{padding:16px 12px}.gantt-splitter{position:absolute;top:0;bottom:0;left:calc(var(--gantt-grid-w, 300px) - 3px);width:6px;cursor:col-resize;touch-action:none;z-index:9;outline:none}.gantt-splitter:hover,.gantt-splitter:focus-visible,.gantt-splitter:active{background:color-mix(in srgb,var(--brand) 35%,transparent)}.gantt-header{grid-area:1 / 2;position:relative;overflow:hidden;background:var(--fill-alter);border-bottom:1px solid var(--line)}.gantt-header-inner{position:relative;height:60px}.gantt-scale-top,.gantt-scale-bottom{position:absolute;left:0;right:0;height:30px}.gantt-scale-top{top:0;border-bottom:1px solid var(--line2);box-sizing:border-box}.gantt-scale-bottom{top:30px}.gantt-scale-cell{position:absolute;top:0;bottom:0;display:flex;align-items:center;border-left:1px solid var(--line2);box-sizing:border-box;overflow:clip}.gantt-scale-top .gantt-scale-cell{border-left-color:var(--line)}.gantt-scale-top .gantt-scale-label{position:sticky;left:0;padding:0 10px;font-size:var(--fs-meta);font-weight:var(--fw-label);color:var(--text);white-space:nowrap}.gantt-scale-bottom .gantt-scale-cell{justify-content:center}.gantt-scale-bottom .gantt-scale-label{display:inline-flex;align-items:baseline;gap:3px;font-size:var(--fs-micro);color:var(--muted-strong);white-space:nowrap}.gantt-scale-label small{font-size:var(--fs-micro);color:var(--muted)}.gantt-scale-cell--weekend{background:color-mix(in srgb,var(--muted) 10%,transparent)}.gantt-scale-cell--current{background:var(--brand-soft)}.gantt-scale-cell--current .gantt-scale-label,.gantt-scale-cell--current .gantt-scale-label small{color:var(--brand-text);font-weight:var(--fw-label)}.gantt-now-marker{position:absolute;bottom:0;width:2px;height:10px;background:var(--focus);pointer-events:none}.gantt-body{grid-area:2 / 2;position:relative;overflow:auto;overscroll-behavior:contain}.gantt-body--panning{cursor:grabbing;-webkit-user-select:none;user-select:none}.gantt-body-inner{position:relative}.gantt-bg{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none}.gantt-guide{position:absolute;top:0;bottom:0;width:1px;background:var(--line2)}.gantt-guide--major{background:var(--line)}.gantt-weekend-col{position:absolute;top:0;bottom:0;background:color-mix(in srgb,var(--muted) 8%,transparent)}.gantt-row{position:absolute;left:0;right:0;border-bottom:1px solid var(--line2);box-sizing:border-box}.gantt-track{position:absolute;top:0;right:0;bottom:0;left:0}.gantt-loading{grid-area:2 / 2;justify-self:end;align-self:start;display:flex;align-items:center;gap:6px;margin:8px 14px;padding:4px 10px;border-radius:var(--r);background:var(--paper);border:1px solid var(--line);font-size:var(--fs-micro);color:var(--muted);z-index:7;pointer-events:none}.gantt-body-message{grid-area:2 / 2;place-self:center;font-size:var(--fs-meta);color:var(--muted);pointer-events:none}.calendar-block{position:absolute;top:0;background:color-mix(in srgb,var(--muted) 16%,transparent);z-index:0;pointer-events:none}.now-line{position:absolute;top:0;bottom:0;width:2px;background:var(--focus);pointer-events:none;z-index:3}.gantt-milestone{position:absolute;top:50%;width:10px;height:10px;margin:-5px 0 0 -5px;transform:rotate(45deg);background:var(--paper);border:2px solid var(--muted);z-index:3}.gantt-milestone--late{background:var(--red-strong);border-color:var(--red-strong)}.gantt-summary{position:absolute;padding:0;border:1px solid var(--brand);border-radius:3px;background:color-mix(in srgb,var(--brand) 18%,var(--paper));overflow:hidden;cursor:pointer;z-index:2;min-width:4px}.gantt-summary-progress{position:absolute;top:0;bottom:0;left:0;background:var(--brand);pointer-events:none}.gantt-load-strip{position:absolute;left:0;right:0;pointer-events:none}.gantt-load-cell{position:absolute;top:0;bottom:0;border-radius:2px;pointer-events:auto}.gantt-load-cell--l1{background:color-mix(in srgb,var(--brand) 30%,transparent)}.gantt-load-cell--l2{background:color-mix(in srgb,var(--brand) 55%,transparent)}.gantt-load-cell--l3{background:color-mix(in srgb,var(--brand) 85%,transparent)}.gantt-load-cell--full{background:var(--brand)}.gantt-load-cell--outside:after{content:"";position:absolute;top:0;right:0;bottom:0;width:min(8px,100%);border-radius:0 2px 2px 0;background:var(--red-strong)}.gantt-hovercard{position:fixed;left:0;top:0;z-index:1100;min-width:220px;max-width:340px;padding:10px 12px;border:1px solid var(--overlay-border);border-radius:var(--r);background:var(--paper);box-shadow:var(--shadow-overlay);color:var(--text);font-size:var(--fs-micro);line-height:1.45;pointer-events:none}.gantt-hovercard-head{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}.gantt-hovercard-head b{font-size:var(--fs-body);font-weight:var(--fw-title)}.gantt-hovercard-status{flex:0 0 auto;padding:0 6px;border-radius:4px;font-weight:var(--fw-label);white-space:nowrap}.gantt-hovercard-status--neutral,.gantt-hovercard-status--muted{background:var(--fill-alter);color:var(--muted-strong)}.gantt-hovercard-status--brand{background:var(--brand-soft);color:var(--brand-text)}.gantt-hovercard-status--done{background:var(--tealbg);color:var(--teal)}.gantt-hovercard-status--hold{background:var(--redbg);color:var(--red)}.gantt-hovercard-sub{margin:2px 0 0;color:var(--muted)}.gantt-hovercard dl{display:grid;grid-template-columns:auto 1fr;gap:2px 10px;margin:8px 0 0}.gantt-hovercard dl>div{display:contents}.gantt-hovercard dt{color:var(--muted)}.gantt-hovercard dd{margin:0}.gantt-hovercard-warn{margin:6px 0 0;padding:3px 7px;border-radius:4px;background:var(--amberbg);color:var(--amber)}.gantt-hovercard-hint{margin:8px 0 0;color:var(--muted)}.gantt-bar{position:absolute;height:36px;border-radius:4px;border:1px solid var(--line);background:var(--fill-alter);color:var(--muted-strong);padding:0 7px;overflow:clip;font:inherit;font-size:var(--fs-meta);font-weight:var(--fw-label);text-align:left;white-space:nowrap;z-index:2;min-width:3px;cursor:pointer;display:flex;align-items:center;gap:5px}.gantt-bar-icon{flex:0 0 auto}.gantt-bar-label{position:sticky;left:var(--sp-2);display:flex;align-items:center;gap:var(--sp-1);min-width:0;max-width:100%}.gantt-bar-warn{display:inline-flex;align-items:center;flex:none;gap:calc(var(--sp-1) / 2);height:16px;padding:0 var(--sp-1);border-radius:var(--r-sm);background:var(--amber-chip);color:var(--paper);font-size:var(--fs-micro);white-space:nowrap}.gantt-bar-text{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.gantt-bar-progress,.gantt-bar-overrun{position:absolute;top:0;bottom:0;pointer-events:none}.gantt-bar-progress{left:0;background:currentColor;opacity:.18}.gantt-bar-overrun{right:0;background:var(--amber-solid);opacity:.5}.gantt-bar--draggable{cursor:grab;touch-action:none}.gantt-bar--dragging{cursor:grabbing;opacity:.85;z-index:4}.gantt-bar-handle{position:absolute;top:0;right:0;width:14px;height:100%;cursor:ew-resize;touch-action:none;background:linear-gradient(to right,transparent 45%,currentColor 45%,currentColor 55%,transparent 55%);opacity:.35}.gantt-bar-handle:hover{opacity:.8}.gantt-drag-hint{position:absolute;padding:2px var(--sp-2);border-radius:4px;background:var(--text);color:var(--paper);font-size:var(--fs-meta);white-space:nowrap;z-index:5;pointer-events:none}.gantt-bar--pending{background:color-mix(in srgb,var(--brand) 16%,var(--paper));border-color:color-mix(in srgb,var(--brand) 50%,var(--paper));color:var(--brand-text)}.gantt-bar--running{background:var(--brand);border-color:var(--brand);color:var(--brand-on)}.gantt-bar--done{background:var(--tealbg);border-color:color-mix(in srgb,var(--teal) 45%,transparent);color:var(--teal)}.gantt-bar--hold{background:var(--red-strong);border-color:var(--red-strong);color:var(--brand-on)}.gantt-bar--skipped,.gantt-bar--cancelled{background:var(--fill-alter);border-style:dashed;border-color:var(--line);color:var(--muted)}.gantt-bar--skipped .gantt-bar-text,.gantt-bar--cancelled .gantt-bar-text{text-decoration:line-through}.gantt-bar--sequence-warning{box-shadow:inset 3px 0 0 var(--amber-solid)}.gantt-assign-btn{position:absolute;width:18px;height:18px;padding:0;border-radius:50%;background:var(--paper);border:1px solid var(--line);color:var(--muted);display:grid;place-items:center;cursor:pointer;z-index:2}.gantt-assign-btn:hover{color:var(--blue);border-color:var(--blue)}.gantt-actual{position:absolute;height:6px;background:var(--teal-solid);border-radius:2px;z-index:2}.gantt-actual--overrun{background:var(--amber-solid)}.gantt-actual--hold{background:var(--purple-solid)}.gantt-time{position:absolute;font-size:var(--fs-meta);color:var(--muted);white-space:nowrap;max-width:200px;overflow:hidden}.legend{display:flex;align-items:center;gap:13px;font-size:var(--fs-meta);color:var(--muted);flex-wrap:wrap}.legend i{display:inline-block;width:12px;height:5px;border-radius:1px;margin-right:4px;background:var(--brand-soft);border:1px solid color-mix(in srgb,var(--blue) 40%,var(--paper))}.legend i.actual{background:var(--teal-solid);border:0}.legend i.late{background:var(--amber-solid);border:0}.legend i.sequence-warning{border-left:3px solid var(--amber-solid)}.legend i.load-key{background:color-mix(in srgb,var(--brand) 55%,transparent);border:0}.legend i.load-key-over{width:5px;background:var(--red-strong);border:0}.legend i.summary-key{background:color-mix(in srgb,var(--brand) 18%,var(--paper));border:1px solid var(--brand)}.legend i.due-key{width:8px;height:8px;transform:rotate(45deg);background:var(--paper);border:2px solid var(--muted)}.legend i.calendar-key{background:color-mix(in srgb,var(--muted) 30%,var(--paper));border:0}.gantt-backlog{display:flex;flex-direction:column;max-height:calc(100vh - 230px)}.backlog-list{overflow:auto;min-height:0}.backlog-item{display:flex;flex-direction:column;gap:var(--sp-1);padding:var(--sp-3) var(--sp-5);border-top:1px solid var(--line2)}.backlog-item b{font-size:var(--fs-body);font-weight:var(--fw-label)}.backlog-item p{font-size:var(--fs-meta);color:var(--muted)}.backlog-due{display:flex;align-items:center;gap:var(--sp-2)}.kanban-board{display:flex;gap:var(--sp-3);align-items:flex-start;overflow-x:auto}.kanban-column{flex:1 1 0;min-width:260px;display:flex;flex-direction:column;max-height:calc(100vh - 150px);border-radius:var(--r-lg);background:var(--bg)}.kanban-column--amber{background:color-mix(in srgb,var(--amberbg) 70%,var(--bg))}.kanban-column--blue{background:color-mix(in srgb,var(--blue-bg) 70%,var(--bg))}.kanban-column--teal{background:color-mix(in srgb,var(--tealbg) 70%,var(--bg))}.kanban-column-head{display:flex;align-items:center;gap:var(--sp-2);padding:var(--sp-2) var(--sp-2) var(--sp-2) var(--sp-3);container-type:inline-size}.kanban-column-title{flex:1;min-width:0;display:flex;align-items:center;gap:var(--sp-2)}.kanban-count{font-size:var(--fs-meta);font-weight:var(--fw-title);color:var(--text)}.kanban-column-title>.kanban-pill{flex:none}.kanban-total{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:var(--fs-meta);color:var(--muted)}@container (max-width: 280px){.kanban-total{display:none}}.kanban-column-body{display:flex;flex-direction:column;gap:var(--sp-2);padding:0 var(--sp-2) var(--sp-2);overflow-y:auto;min-height:0}.kanban-pill{display:inline-flex;align-items:center;gap:var(--sp-1);padding-inline:var(--sp-2);line-height:24px;border-radius:var(--r-sm);font-size:var(--fs-meta);font-weight:var(--fw-title);white-space:nowrap;color:var(--paper)}.kanban-pill--outline{color:var(--muted);background:var(--paper);outline:1px dashed var(--muted);outline-offset:-1px}.kanban-pill--grey{background:var(--grey-chip)}.kanban-pill--amber{background:var(--amber-chip)}.kanban-pill--blue{background:var(--blue-chip)}.kanban-pill--teal{background:var(--teal-chip)}.kanban-column--collapsed{flex:0 0 auto;align-self:stretch;min-width:0;width:44px;flex-direction:row;align-items:center;gap:var(--sp-2);padding:var(--sp-3) 0;border:0;font:inherit;color:inherit;cursor:pointer;writing-mode:vertical-rl}.kanban-column--collapsed:hover{box-shadow:inset 0 0 0 1px var(--line)}.kanban-column--collapsed:focus-visible{outline:2px solid var(--focus);outline-offset:2px}.kanban-empty{padding:var(--sp-2) var(--sp-1);font-size:var(--fs-meta);color:var(--muted)}.kanban-card-head{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--sp-2)}.kanban-card-title{min-width:0;font-size:var(--fs-body);font-weight:var(--fw-title);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.kanban-card-sub{display:flex;align-items:center;gap:var(--sp-1);min-width:0;font-size:var(--fs-meta);color:var(--muted);white-space:nowrap}.kanban-card-sub>.code{flex:none}.kanban-card-part{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.kanban-card-row{display:flex;flex-wrap:wrap;align-items:center;gap:var(--sp-1) var(--sp-3)}.kanban-meta{display:inline-flex;align-items:center;gap:var(--sp-1);min-width:0;font-size:var(--fs-meta);color:var(--muted)}.kanban-meta>svg{flex:none}.kanban-meta--late{color:var(--red)}.kanban-meta--warn{color:var(--amber)}.kanban-card-foot{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;column-gap:var(--sp-2)}.kanban-card-foot>.kanban-meta{white-space:nowrap}@media(max-width:767px){.kanban-board{scroll-snap-type:x mandatory;scroll-padding-inline:var(--sp-4)}.kanban-column:not(.kanban-column--collapsed){flex-basis:85%;min-width:85%;scroll-snap-align:start}}.gantt-group-row,.gantt-grid-row--group{background:color-mix(in srgb,var(--muted) 7%,transparent)}.gantt-group-toggle{display:flex;align-items:center;gap:6px;min-width:0;padding:0;border:0;background:none;color:var(--text);font:inherit;line-height:18px;cursor:pointer;text-align:left}.gantt-group-toggle:hover{color:var(--brand-text)}.gantt-group-toggle svg{flex:0 0 auto}.gantt-group-toggle b{white-space:nowrap}.gantt-group-part{min-width:0;flex:0 1 auto;color:var(--muted);font-weight:var(--fw-body);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.gantt-group-meta{padding-left:20px}.gantt-grid-row--op .gantt-label:first-child{padding-left:30px}.gantt-op-name{font-size:var(--fs-body);line-height:18px}.gantt-op-row .gantt-bar{min-width:8px}.planning-toolbar{container-type:inline-size}.planning-toolbar-row{display:flex;align-items:center;gap:10px}.planning-period{display:flex;align-items:center;gap:var(--sp-2);white-space:nowrap}.planning-toolbar-right,.planning-view-switch{flex:none}.planning-goto-calendar{width:280px}.planning-goto-header{display:flex;align-items:center;justify-content:space-between;padding-bottom:var(--sp-1)}@container (max-width: 699px) or ((min-width: 920px) and (max-width: 1099px)){.planning-view-switch .seg-label{display:none}}@container (max-width: 919px){.planning-toolbar-row{flex-wrap:wrap}.planning-period{order:3;flex-basis:100%}}@container (max-width: 679px){.planning-toolbar-right{flex:1 1 auto;flex-wrap:wrap;justify-content:flex-end}}.planning-toolbar-right{display:flex;align-items:center;gap:6px;margin-left:auto}.planning-zoom{display:flex;align-items:center;gap:var(--sp-2)}.planning-zoom-slider{flex:1;margin:0 var(--sp-1)}.planning-chips{display:flex;align-items:center;gap:6px;flex-wrap:wrap;margin-top:8px}.planning-chip{display:inline-flex;align-items:center;gap:5px;padding:2px 4px 2px 8px;border:1px solid var(--line);border-radius:999px;background:var(--fill-alter);color:var(--text);font-size:var(--fs-meta)}.planning-chip svg{color:var(--muted)}.planning-chip button{display:inline-flex;align-items:center;padding:2px;border:0;border-radius:999px;background:none;color:var(--muted);cursor:pointer}.planning-chip button:hover{background:var(--line2);color:var(--text)}.planning-popover{display:flex;flex-direction:column;gap:12px;min-width:292px}.planning-popover-field{display:flex;flex-direction:column;gap:5px}.planning-popover-field>span{font-size:var(--fs-meta);color:var(--muted)}.planning-column-list{max-height:320px;overflow-y:auto}.planning-period-label{font-weight:var(--fw-label)}.planning-chip-anchor{display:inline-flex}.plan-group+.plan-group{border-top:1px solid var(--line2)}.plan-group-head{display:flex;align-items:center;gap:var(--sp-2);padding:var(--sp-2) var(--sp-3);min-width:0}.plan-group-entity{display:inline-flex;align-items:center;gap:var(--sp-2);min-width:0;font-weight:var(--fw-title)}.plan-group-none{color:var(--muted);font-weight:400}.plan-group-sub{color:var(--muted);font-weight:400;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.plan-group-count{font-size:var(--fs-meta);font-weight:var(--fw-title);color:var(--text)}.plan-group-total{font-size:var(--fs-meta);color:var(--muted);white-space:nowrap}.plan-group-more{padding:var(--sp-1) var(--sp-3)}.plan-task{display:flex;align-items:center;gap:var(--sp-2);min-width:0}.plan-task-warn{display:inline-flex;align-items:center;color:var(--amber);flex:none}.stage-icon{display:inline-flex;flex:none}.stage-icon--outline{color:var(--muted)}.stage-icon--grey{color:var(--muted-strong)}.stage-icon--amber{color:var(--amber)}.stage-icon--blue{color:var(--blue)}.stage-icon--teal{color:var(--teal)}.plan-when-text{font-size:var(--fs-meta)}.plan-when-text--late{color:var(--red)}.due-flag{display:inline-flex;align-items:center;gap:var(--sp-1);white-space:nowrap;font-size:var(--fs-meta)}.due-flag--overdue{color:var(--red);font-weight:var(--fw-title)}.due-flag--soon{color:var(--amber);font-weight:var(--fw-title)}.due-flag--later,.due-flag--done{color:var(--muted)}.plan-quick{display:flex;align-items:center;gap:var(--sp-2);min-width:0}.plan-avatar-row{display:flex;align-items:center}.plan-avatar-toggle{display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;padding:0;border:2px solid var(--paper);border-radius:50%;background:var(--paper);cursor:pointer;font:inherit;font-size:var(--fs-micro);color:var(--muted)}.plan-avatar-toggle+.plan-avatar-toggle{margin-inline-start:calc(var(--sp-1) * -1)}.plan-avatar-toggle:hover{z-index:1;border-color:var(--line)}.plan-avatar-toggle.is-active{z-index:2;border-color:var(--brand)}.plan-avatar-toggle:focus-visible{outline:2px solid var(--focus);outline-offset:1px}.plan-avatar-rest{background:var(--fill-alter)}.plan-avatar-none{display:inline-flex;align-items:center;justify-content:center;width:26px;height:26px;border-radius:50%;outline:1px dashed var(--muted);outline-offset:-1px}.plan-avatar-more{display:flex;flex-direction:column;gap:var(--sp-2);max-height:320px;overflow-y:auto}.plan-option{display:inline-flex;align-items:center;gap:var(--sp-2);min-width:0;width:100%}.plan-option-name{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.plan-option-count{margin-inline-start:auto;font-size:var(--fs-meta);color:var(--muted)}.gantt-avatar-label{display:flex;align-items:center;gap:var(--sp-2);min-width:0}.gantt-avatar-text{display:flex;flex-direction:column;min-width:0}.gantt-avatar-text>*,.gantt-avatar-inline,.gantt-cell-text{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.gantt-cell-text{min-width:0}.gantt-avatar-inline{display:inline-flex;align-items:center;gap:var(--sp-1);min-width:0}.id-tag{display:inline-block;max-width:100%;padding-inline:var(--sp-2);border-radius:var(--r-sm);font-size:var(--fs-meta);line-height:22px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;vertical-align:middle}.kanban-card-customer{display:inline-flex;flex:none;margin-inline-start:auto}.plan-task-title{display:flex;align-items:center;flex-wrap:wrap;gap:var(--sp-1) var(--sp-2);min-width:0}.plan-seq-warn{display:inline-flex;flex:none;color:var(--amber)}.gantt-group-planall{padding:0;border:0;background:none;color:var(--brand-text);font:inherit;cursor:pointer}.gantt-group-planall:hover,.gantt-group-planall:focus-visible{text-decoration:underline}.plan-group-action{margin-left:auto}.resource-list{display:flex;flex-direction:column}.resource-row{display:grid;grid-template-columns:minmax(140px,1fr) minmax(0,1.7fr) minmax(150px,1.1fr);gap:var(--sp-2) var(--sp-4);align-items:start;padding-block:var(--sp-3);border-bottom:1px solid var(--line2)}.resource-row:last-of-type{border-bottom:none}.resource-who{display:flex;gap:var(--sp-2);align-items:center;min-width:0}.resource-now,.resource-load{display:flex;flex-direction:column;gap:var(--sp-1);min-width:0}.resource-progress{max-width:320px}.resource-load-bar{flex:1;min-width:0}.resource-summary{padding-bottom:var(--sp-2)}.resource-summary-bar{flex:1;min-width:120px}.resource-summary-text{flex:none}.resource-idle{align-self:flex-start}@media(max-width:767px){.resource-row{grid-template-columns:minmax(0,1fr)}}.delay-summary{display:flex;flex-direction:column;gap:var(--sp-2);padding-block:var(--sp-1)}.delay-bar{display:flex;width:100%;height:8px;border-radius:999px;overflow:hidden;background:var(--line2)}.delay-bar-lg{height:12px}.delay-cell{display:flex;flex-wrap:wrap;align-items:center;gap:var(--sp-2) var(--sp-3);min-width:0}.delay-cell>.delay-bar{flex:1 1 96px;min-width:96px}.delay-cause{display:inline-flex;align-items:center;gap:var(--sp-2);white-space:nowrap}@media(max-width:767px){.delay-cause{display:block;white-space:normal}.delay-cause>.delay-dot{display:inline-block;margin-inline-end:var(--sp-2)}}.delay-seg{height:100%;min-width:2px}.delay-legend{display:flex;flex-wrap:wrap;gap:var(--sp-1) var(--sp-4);font-size:var(--fs-meta);color:var(--muted)}.delay-legend-item{display:inline-flex;align-items:center;gap:var(--sp-2)}.delay-legend-item b{color:var(--text);font-variant-numeric:tabular-nums}.delay-dot{width:10px;height:10px;border-radius:3px;flex:none}.delay-seg-running{background:var(--teal-solid)}.delay-seg-hold{background:var(--purple-solid)}.delay-seg-offshift{background:var(--muted)}.delay-seg-plan{background:var(--amber-solid)}.delay-seg-assign{background:var(--blue-solid)}.delay-seg-start{background:var(--red-solid)}.delay-seg-unexplained{background:repeating-linear-gradient(45deg,var(--muted-strong) 0 4px,var(--paper) 4px 8px)}.report-time-progress{font-variant-numeric:tabular-nums}.report-declared{text-decoration:underline dotted var(--muted);text-underline-offset:3px;cursor:help}.monitor-chart-empty{min-height:220px}.log-severity-select{min-width:200px}.log-search{width:260px}.log-path{overflow-wrap:anywhere}.card-fill{height:100%}@media(max-width:767px){.log-severity-select,.log-search{width:100%;max-width:none;min-width:0}}.trace-cmp-legend{display:flex;flex-wrap:wrap;gap:var(--sp-1) var(--sp-4);font-size:var(--fs-meta);color:var(--muted)}.trace-cmp-legend-item{display:inline-flex;align-items:center;gap:var(--sp-2)}.trace-cmp-swatch{display:inline-block;width:16px;height:8px;border-radius:2px;flex:none}.trace-cmp-swatch-plan{background:transparent;border:1.5px solid var(--blue)}.trace-cmp-swatch-actual{background:var(--teal-solid)}.trace-cmp-swatch-overrun{background:var(--red-solid)}.trace-cmp-track{position:relative;height:28px;min-width:160px}.trace-cmp-seg{position:absolute;height:8px;border-radius:2px}.trace-cmp-plan{top:2px;background:transparent;border:1.5px solid var(--blue);box-sizing:border-box}.trace-cmp-actual{top:16px;background:var(--teal-solid)}.trace-cmp-overrun{top:16px;background:var(--red-solid)}.trace-cmp-expand{padding:var(--sp-2) 0}.trace-cmp-breakdown{width:100%;max-width:480px;border-collapse:collapse;font-size:var(--fs-meta)}@media(max-width:767px){.trace-cmp-breakdown{max-width:none;min-width:0}}.trace-cmp-breakdown th,.trace-cmp-breakdown td{padding:4px 12px;text-align:right;border-bottom:1px solid var(--line2)}.trace-cmp-breakdown th:first-child,.trace-cmp-breakdown td:first-child{text-align:left;color:var(--muted)}.trace-cmp-expand-line{margin:var(--sp-2) 0 0}.trace-cmp-action{display:inline-flex;align-items:center;gap:2px;font-size:var(--fs-meta);white-space:nowrap}.trace-head{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-3)}.trace-head-status{flex-shrink:0}.trace-alert{color:var(--red);font-weight:var(--fw-label)}.trace-timeline.ant-timeline.ant-timeline-label .ant-timeline-item-label{width:140px;inset-inline-start:0;text-align:left}.trace-timeline.ant-timeline.ant-timeline-label .ant-timeline-item-tail,.trace-timeline.ant-timeline.ant-timeline-label .ant-timeline-item-head{inset-inline-start:156px}.trace-timeline.ant-timeline.ant-timeline-label .ant-timeline-item-head-custom{padding:0;background:transparent;inset-block-start:11px}.trace-timeline.ant-timeline.ant-timeline-label .ant-timeline-item-content{inset-inline-start:172px;width:calc(100% - 188px);text-align:left}.trace-timeline .ant-timeline-item{padding-bottom:var(--sp-5)}.trace-when{display:block;font-size:var(--fs-meta);color:var(--muted);font-variant-numeric:tabular-nums}.trace-when-ago{display:block;font-size:var(--fs-micro);color:var(--muted);opacity:.75}.trace-when-pending{font-style:italic}.trace-dot{display:inline-flex;align-items:center;justify-content:center;width:26px;height:26px;border-radius:50%;border:1px solid var(--line);background:var(--paper);color:var(--muted)}.trace-dot-done{border-color:var(--teal);color:var(--teal)}.trace-dot-alert{border-color:var(--red);color:var(--red)}.trace-dot-info{border-color:var(--blue);color:var(--blue)}.trace-event-head{display:flex;align-items:baseline;gap:var(--sp-3);flex-wrap:wrap}.trace-event-title{font-weight:var(--fw-title);color:var(--text)}.trace-event-alert .trace-event-title{color:var(--red)}.trace-event-pending .trace-event-title{color:var(--muted);font-weight:var(--fw-label)}.trace-event-link{display:inline-flex;align-items:center;gap:2px;font-size:var(--fs-meta);white-space:nowrap}.trace-subtable{margin-top:var(--sp-3);max-width:760px}@media(max-width:767px){.trace-subtable{width:100%;max-width:none;min-width:0}}.trace-files{margin-top:var(--sp-2);display:flex;flex-wrap:wrap;gap:var(--sp-3)}.settings-content{min-width:0}.settings-row-actions{display:flex;gap:var(--sp-2)}.uikit{min-height:100vh;padding:var(--sp-6);background:var(--bg);color:var(--text)}.uikit-section{padding:var(--sp-5);border:1px solid var(--line2);border-radius:var(--r);background:var(--paper)}.uikit-form{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));column-gap:var(--sp-5)}.uikit-field{width:280px}.uikit-card{width:340px}.uikit-open-area{position:relative;min-height:260px}.uikit-overlays{display:flex;gap:var(--sp-7);align-items:flex-start;padding-top:var(--sp-6)}.uikit-modal-host{position:relative;min-height:320px}.uikit-prefix{color:var(--muted)}.uikit-modal-host .uikit-modal-wrap{position:absolute}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-cyrillic-ext-wght-normal-BOeWTOD4.woff2) format("woff2-variations");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-cyrillic-wght-normal-DqGufNeO.woff2) format("woff2-variations");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-greek-ext-wght-normal-DlzME5K_.woff2) format("woff2-variations");unicode-range:U+1F00-1FFF}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-greek-wght-normal-CkhJZR-_.woff2) format("woff2-variations");unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-vietnamese-wght-normal-CBcvBZtf.woff2) format("woff2-variations");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-latin-ext-wght-normal-DO1Apj_S.woff2) format("woff2-variations");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-latin-wght-normal-Dx4kXJAl.woff2) format("woff2-variations");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}*{box-sizing:border-box}html,body{height:100%;margin:0}body{background:var(--bg);color:var(--text);font:var(--fs-body) / 1.5 "Inter Variable",Inter,-apple-system,"Segoe UI",sans-serif;font-feature-settings:"cv05","cv08","ss03";font-variant-numeric:tabular-nums;-webkit-font-smoothing:antialiased}::selection{background:var(--brand-soft);color:var(--text)}*{scrollbar-width:thin;scrollbar-color:var(--line) transparent}input,textarea{caret-color:var(--brand)}h1,h2,h3,h4,p{margin:0}h1{font-size:var(--fs-page);font-weight:var(--fw-page);line-height:1.2}h2,h3,h4{font-size:var(--fs-title);font-weight:var(--fw-title);line-height:1.3}small{font-size:var(--fs-meta)}.muted{color:var(--muted)}.fine{font-size:var(--fs-body)}.tiny{font-size:var(--fs-meta)}.code{font-weight:var(--fw-label);font-variant-numeric:tabular-nums}.code-copy{display:inline-flex;align-items:center;gap:var(--sp-1)}.copy-btn{opacity:.45;transition:opacity .12s}.barcode-inline{display:inline-flex;align-items:center;gap:var(--sp-2)}.field-grid>.field-label:has(+.field-value .barcode-inline),.field-grid>.field-value:has(.barcode-inline){align-self:start}tr:hover .copy-btn,.copy-btn:hover,.copy-btn:focus-visible,.detail-head:hover .copy-btn{opacity:1}.note-actor{color:var(--text);font-weight:var(--fw-label)}.note-body{white-space:pre-wrap;overflow-wrap:anywhere}.qc-totals{color:var(--muted);font-variant-numeric:tabular-nums}.qc-totals>span{display:inline-flex;align-items:center;gap:var(--sp-1);font-weight:var(--fw-title)}.qc-pass{color:var(--teal)}.qc-fail{color:var(--red)}.qc-incomplete{color:var(--amber)}.wo-time-stats{display:inline-flex;align-items:center;gap:var(--sp-1)}.wo-time-live{font-weight:var(--fw-title);font-variant-numeric:tabular-nums}.wo-time--running .wo-time-icon,.wo-time--running .wo-time-live{color:var(--blue)}.wo-time--done .wo-time-icon,.wo-time--done .wo-time-live{color:var(--teal)}.wo-time--over .wo-time-icon,.wo-time--over .wo-time-live{color:var(--amber)}@media(pointer:coarse){.copy-btn{opacity:1;min-width:32px;min-height:32px}}.eyebrow{font-weight:var(--fw-label);line-height:1.4;color:var(--muted)}.strong{font-weight:var(--fw-title)}.nowrap{white-space:nowrap}.toolbar-field{width:280px;max-width:100%}.toolbar-field-wide{width:360px;max-width:100%}.segmented-scroll{max-width:100%;overflow-x:auto;scrollbar-width:none}.list-toolbar-stack>*{width:100%;max-width:none}.right{text-align:right}.app-shell{min-height:100vh;background:var(--bg)}.app-sider{position:fixed;inset-block:0;left:0;z-index:100;display:flex;flex-direction:column;width:var(--side);background:var(--fill-alter);border-right:var(--hairline) solid var(--line2);transition:width .2s cubic-bezier(.2,0,0,1)}.app-sider[data-collapsed]{width:var(--side-collapsed)}.app-sider-drawer .app-sider{position:static;width:auto;height:100%;border-right:0}.app-sider-inner{display:flex;flex-direction:column;height:100%;min-height:0}.app-sider-head{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-1);height:var(--bar);padding-inline:var(--sp-2)}.app-sider[data-collapsed] .app-sider-head{justify-content:center}.app-sider-foot{display:flex;flex-direction:column;gap:var(--sp-1);padding:var(--sp-2) var(--sp-2) var(--sp-3)}.app-sider[data-collapsed] .app-sider-foot{align-items:center}.app-brand{display:flex;align-items:center;gap:var(--sp-2);min-width:0;padding:var(--sp-1);border:0;border-radius:var(--r-sm);background:none;color:var(--text);font:inherit;font-weight:var(--fw-title);cursor:pointer}.app-brand:hover{background:var(--fill-alter)}.app-brand-mark{display:inline-flex;flex:none;align-items:center;justify-content:center;width:24px;height:24px;border-radius:var(--r-sm);background:var(--brand);color:var(--brand-on)}.app-brand-name{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.app-sider-toggle{color:var(--muted)}.app-search-trigger{display:flex;align-items:center;gap:var(--sp-2);height:32px;margin:var(--sp-2);padding-inline:var(--sp-2);border:var(--hairline) solid var(--line);border-radius:var(--r);background:var(--paper);color:var(--muted);font:inherit;cursor:pointer}.app-search-trigger:hover{background:var(--fill-alter);color:var(--text)}.app-sider[data-collapsed] .app-search-trigger{justify-content:center;padding-inline:0}.app-search-label{flex:1;text-align:left}.app-search-trigger kbd{padding-inline:var(--sp-1);border:var(--hairline) solid var(--line);border-radius:var(--r-sm);background:var(--fill-alter);color:var(--muted);font-family:inherit;font-size:var(--fs-micro)}.app-sider .app-rail-divider{margin:var(--sp-2) var(--sp-3);border-top:var(--hairline) solid var(--line2)}.app-nav{display:flex;flex:1;flex-direction:column;min-height:0;overflow-y:auto}.app-nav:after{content:"";position:sticky;bottom:0;flex:none;height:var(--sp-5);background:linear-gradient(to bottom,transparent,var(--fill-alter));pointer-events:none}.app-sider[data-collapsed] .app-nav:after{height:var(--sp-2)}.app-nav-secondary{flex:none;margin-top:auto;padding-top:var(--sp-3)}.app-nav-group-title--spaced{display:block;padding-top:var(--sp-2)}.app-menu-arrow{position:absolute;top:50%;inset-inline-end:var(--sp-2);color:var(--muted);transform:translateY(-50%)}.app-sider[data-collapsed] .app-menu-arrow{display:none}.app-menu-link{display:flex;align-items:center;gap:var(--sp-2);color:inherit}.app-menu-link:hover{color:inherit}.app-menu-link{font-weight:var(--fw-label)}.app-menu-link--active{font-weight:var(--fw-title)}.app-menu-sub{padding-inline-start:var(--sp-5)}.app-nav-tile{--nav-tile: 24px;display:inline-flex;flex:none;align-items:center;justify-content:center;width:var(--nav-tile);height:var(--nav-tile);border-radius:var(--r-sm);vertical-align:middle}.app-sider[data-collapsed] .app-nav .app-nav-tile[class]{margin-inline-start:calc((var(--fs-strong) - var(--nav-tile)) / 2)}.app-nav-glyph{display:inline-flex;vertical-align:middle}.app-nav-tile>svg,.app-nav-glyph>svg{color:var(--nav-tone)}.app-nav-tone--blue{--nav-tone: var(--accent-blue)}.app-nav-tone--green{--nav-tone: var(--accent-green)}.app-nav-tone--purple{--nav-tone: var(--accent-purple)}.app-nav-tone--orange{--nav-tone: var(--accent-orange)}.app-nav-tone--cyan{--nav-tone: var(--accent-cyan)}.app-nav-tone--magenta{--nav-tone: var(--accent-magenta)}.app-nav-tile.app-nav-tone--blue{background:var(--accent-blue-bg)}.app-nav-tile.app-nav-tone--green{background:var(--accent-green-bg)}.app-nav-tile.app-nav-tone--purple{background:var(--accent-purple-bg)}.app-nav-tile.app-nav-tone--orange{background:var(--accent-orange-bg)}.app-nav-tile.app-nav-tone--cyan{background:var(--accent-cyan-bg)}.app-nav-tile.app-nav-tone--magenta{background:var(--accent-magenta-bg)}.app-menu-label{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis}.nav-count{flex:none;min-width:22px;padding-inline:var(--sp-2);border-radius:999px;background:var(--fill-alter);color:var(--text);font-size:var(--fs-micro);font-weight:var(--fw-label);line-height:1.6;text-align:center}.nav-count--blue{background:var(--accent-blue-bg);color:var(--accent-blue)}.nav-count--green{background:var(--accent-green-bg);color:var(--accent-green)}.nav-count--purple{background:var(--accent-purple-bg);color:var(--accent-purple)}.nav-count--orange{background:var(--accent-orange-bg);color:var(--accent-orange)}.nav-count--cyan{background:var(--accent-cyan-bg);color:var(--accent-cyan)}.nav-count--magenta{background:var(--accent-magenta-bg);color:var(--accent-magenta)}.nav-count--red{background:var(--accent-red-bg);color:var(--accent-red)}.app-sider[data-collapsed] .nav-count{display:none}.app-main{min-width:0;margin-left:var(--side);transition:margin-left .2s cubic-bezier(.2,0,0,1)}.app-shell-collapsed .app-main{margin-left:var(--side-collapsed)}@media(max-width:767px){.app-main,.app-shell-collapsed .app-main{margin-left:0}}.app-topbar{position:sticky;top:0;z-index:90;display:flex;align-items:center;justify-content:space-between;gap:var(--sp-3);height:var(--bar);padding-inline:var(--sp-4);background:var(--paper);border-bottom:var(--hairline) solid var(--line2)}.app-topbar-left,.app-topbar-right{display:flex;align-items:center;gap:var(--sp-1);min-width:0}.app-topbar-right{flex:none}.app-crumbs{flex:0 100 auto;overflow:hidden;display:flex;align-items:center;gap:var(--sp-2);min-width:0;margin:0;padding:0;list-style:none;color:var(--muted);white-space:nowrap}.app-crumbs li+li:before{content:"/";margin-inline-end:var(--sp-2);color:var(--line)}.app-crumb-current{overflow:hidden;color:var(--text);font-weight:var(--fw-label);text-overflow:ellipsis}.theme-toggle,.app-settings-trigger{color:var(--muted)}.app-user-menu{display:inline-flex;align-items:center;gap:var(--sp-2);padding:var(--sp-1) var(--sp-2);border-radius:var(--r);cursor:pointer}.app-user-menu:hover{background:var(--fill-alter)}.app-user-title{display:flex;flex-direction:column;line-height:1.25;white-space:nowrap}.app-user-name{color:var(--text);font-weight:var(--fw-label)}.app-user-role{color:var(--muted);font-size:var(--fs-micro)}.app-content{min-height:calc(100vh - var(--bar));background:var(--paper);overflow-x:clip}.app-topbar-title{display:flex;align-items:baseline;gap:var(--sp-2);min-width:0}.app-topbar-title .page-title{overflow:hidden;color:var(--text);font-size:var(--fs-body);font-weight:var(--fw-title);line-height:1.4;white-space:nowrap;text-overflow:ellipsis}.app-crumbs+.app-topbar-title:before{content:"/";color:var(--line)}.page-subtitle{color:var(--muted);font-size:var(--fs-meta);white-space:nowrap}.app-topbar-actions{display:flex;align-items:center;gap:var(--sp-2);margin-inline-end:var(--sp-2)}.app-topbar-actions:empty{display:none}@media(max-width:767px){.page-subtitle{display:none}}.page-tabs-strip{padding-inline:var(--sp-4);border-bottom:var(--hairline) solid var(--line2)}.page-tabs-strip .ant-tabs-nav:before{display:none}.page-body{display:flex;flex-direction:column}.page-toolbar{padding:var(--sp-2) var(--sp-3);background:var(--paper)}.page-actions{display:flex;flex-wrap:wrap;align-items:center;gap:var(--sp-2)}.page-body>.view-block,.page-body>.page-toolbar,.page-body>.kpi-strip,.page-body>.content-card,.page-body>.detail-section,.page-body>.page-split{border:0;border-bottom:var(--hairline) solid var(--line2);border-radius:0}.page-split{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:var(--hairline);background:var(--line2)}.page-split>*{border:0;border-radius:0;background:var(--paper)}.page-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--hairline);background:var(--line2)}.page-grid-4{grid-template-columns:repeat(4,minmax(0,1fr))}.page-grid>*{border:0;border-radius:0;background:var(--paper)}.page-body>.page-grid{border-bottom:var(--hairline) solid var(--line2)}@media(max-width:1199px){.page-grid-4{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:991px){.page-grid:not(.page-grid-4){grid-template-columns:minmax(0,1fr)}}@media(max-width:575px){.page-grid-4{grid-template-columns:minmax(0,1fr)}}.page-body>.gantt-panel,.page-body>.gantt-layout{border:0;border-bottom:var(--hairline) solid var(--line2);border-radius:0}.page-body>.gantt-layout{gap:var(--hairline);align-items:stretch;background:var(--line2)}.page-body>.gantt-layout>.panel{border:0;border-radius:0}.page-body>.kanban-board{padding:var(--sp-4)}@media(max-width:1199px){.page-split{grid-template-columns:minmax(0,1fr)}}.ant-tag.ant-tag-processing{color:var(--blue)}.ant-tag.ant-tag-warning{color:var(--amber)}.ant-tag.ant-tag-error{color:var(--red)}.badge{display:inline-flex;align-items:center;gap:var(--sp-1);height:20px;padding-inline:calc(var(--sp-1) * 1.5);border-radius:var(--r-sm);font-size:var(--fs-micro);font-weight:var(--fw-label);line-height:1;white-space:nowrap;color:var(--paper)}.badge svg{width:12px;height:12px}.badge--neutral{background:var(--fill-secondary);color:var(--muted)}.badge--info{background:var(--blue-chip)}.badge--success{background:var(--teal-chip)}.badge--warning{background:var(--amber-chip)}.badge--danger{background:var(--red-chip)}.badge--hold{background:var(--purple-chip)}.seg{display:inline-flex;align-items:stretch;max-width:100%;height:36px;border:var(--hairline) solid var(--control-border);border-radius:var(--r);background:var(--paper);overflow:hidden;vertical-align:middle}.seg--block{display:flex;width:100%}.seg-item{display:inline-flex;align-items:center;justify-content:center;gap:calc(var(--sp-1) * 1.5);flex:1 0 auto;min-width:0;padding:0 var(--sp-3);border:0;background:transparent;color:var(--text);font:inherit;font-weight:var(--fw-label);line-height:1;white-space:nowrap;cursor:pointer;transition:background-color .15s}.seg-item+.seg-item{border-inline-start:var(--hairline) solid var(--control-border)}.seg--block .seg-item{flex:1 1 auto}.seg--small .seg-item{padding:0 var(--sp-2)}.seg-item svg{flex:none;color:var(--muted)}.seg-label{overflow:hidden;text-overflow:ellipsis}.seg-item:hover:not(:disabled):not(.seg-item--selected){background:var(--fill-alter)}.seg-item--selected{background:var(--fill-secondary)}.seg-item--selected svg{color:var(--text)}.seg-item:focus-visible{outline:2px solid var(--focus);outline-offset:-2px}.seg-item:disabled{color:var(--muted);cursor:not-allowed}.search-group-badge{min-width:96px;justify-content:center}.view-block{background:var(--paper);border:var(--hairline) solid var(--line2);border-radius:var(--r-lg);overflow:clip}.view-block-title{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-3);min-height:var(--bar);padding:var(--sp-2) var(--sp-4);border-bottom:var(--hairline) solid var(--line2)}.view-block-title-text{display:flex;flex-direction:column;gap:var(--sp-1);min-width:0}.view-block-heading{color:var(--text);font-weight:var(--fw-title)}.view-block-description{color:var(--muted)}.view-block-extra{display:flex;align-items:center;gap:var(--sp-2);flex-wrap:wrap}.view-block-header{padding-inline:var(--sp-4);border-bottom:var(--hairline) solid var(--line2)}.view-block-header .ant-tabs-nav:before{display:none}.view-block-toolbar{padding:var(--sp-2) var(--sp-3);border-bottom:var(--hairline) solid var(--line2)}.view-block-body{margin:calc(var(--hairline) * -1)}.view-block-body-padded{margin:0;padding:var(--sp-4)}.view-block-body>.data-card-list{padding:var(--sp-3)}.view-block-footer{padding:var(--sp-2) var(--sp-3);border-top:var(--hairline) solid var(--line2);color:var(--muted)}.data-table-footer{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-3);padding:var(--sp-2) var(--sp-3);border-top:var(--hairline) solid var(--line2);color:var(--muted);font-size:var(--fs-meta)}.kpi-strip{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:var(--hairline);background:var(--paper);border:var(--hairline) solid var(--line2);border-radius:var(--r-lg);overflow:clip}.kpi-cell{display:flex;flex-direction:column;gap:var(--sp-1);padding:var(--sp-4);background:var(--paper);box-shadow:0 0 0 var(--hairline) var(--line2)}.kpi-cell-action{cursor:pointer}.kpi-cell-action:hover{background:var(--fill-alter)}.kpi-label{display:flex;align-items:center;gap:var(--sp-2);color:var(--muted);font-size:var(--fs-meta)}.kpi-value{color:var(--text);font-size:var(--fs-metric);font-weight:var(--fw-title);line-height:1.25;letter-spacing:-.01em}.kpi-value-warning{color:var(--amber)}.kpi-value-danger{color:var(--red)}.kpi-hint{color:var(--muted);font-size:var(--fs-meta)}.empty-state{display:flex;flex-direction:column;align-items:center;gap:var(--sp-2);padding:var(--sp-4) var(--sp-4);text-align:center}.empty-state>.icon-stack{margin-bottom:var(--sp-2)}.empty-state-sm{padding:var(--sp-4)}.empty-state-sm>.icon-stack{margin-bottom:0}.icon-stack{position:relative;flex:none;width:72px;height:81px;color:var(--text)}.icon-stack--sm{width:48px;height:54px}.icon-stack--lg{width:96px;height:108px}.icon-stack-svg{width:100%;height:100%;overflow:visible}.icon-stack-layer{fill:var(--paper)}.icon-stack-shadow{filter:blur(4px)}.icon-stack-content{position:absolute;top:58%;left:71%;display:flex;align-items:center;justify-content:center;color:var(--muted);pointer-events:none;transform:translate(-50%,-50%) scaleX(.9) skewY(-26deg)}.icon-stack--primary .icon-stack-content{color:var(--brand)}.icon-stack--error,.icon-stack--error .icon-stack-content{color:var(--red)}.empty-state-description{max-width:48ch;color:var(--muted)}.empty-state-action{margin-top:var(--sp-2)}.toolbar-chip:not(.toolbar-chip-set){color:var(--muted)}.toolbar-chip-set .toolbar-chip-label{color:var(--muted)}.toolbar-chip-value{margin-inline-start:var(--sp-1);color:var(--text);font-weight:var(--fw-label)}.search-input-icon{color:var(--muted)}.record.active{background:var(--brand-soft)}.form-row-2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 var(--sp-4)}@media(max-width:560px){.form-row-2{grid-template-columns:minmax(0,1fr)}}.form-row-3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0 var(--sp-4)}@media(max-width:560px){.form-row-3{grid-template-columns:minmax(0,1fr)}}.measure-input.measure-pass .ant-input-number-input{background:var(--tealbg)}.measure-input.measure-fail .ant-input-number-input{background:var(--redbg);font-weight:var(--fw-title)}.cell-sub{font-size:var(--fs-meta);font-weight:var(--fw-body);color:var(--muted)}.data-table-overflow-root td,.data-table-overflow-root th{white-space:nowrap}.cell-line{display:flex;align-items:center;gap:var(--sp-2);min-width:0;white-space:nowrap}.cell-ellipsis{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:var(--cell-truncate-max, none)}.cell-ellipsis-name{max-width:320px}.cell-ellipsis-text{max-width:360px}.cell-resized{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cell-resized .cell-ellipsis{max-width:none}.col-resize-handle{position:absolute;top:0;bottom:0;right:-4px;z-index:2;width:8px;cursor:col-resize;touch-action:none}.col-resize-handle:after{content:"";position:absolute;top:20%;bottom:20%;left:3px;width:2px;border-radius:1px;background:transparent;transition:background-color .15s}th:hover>.col-resize-handle:after{background:var(--line)}.col-resize-handle:hover:after,.col-resize-handle.is-active:after,.col-resize-handle:focus-visible:after{top:0;bottom:0;background:var(--brand)}.col-resize-handle:focus-visible{outline:none}body.col-resizing{cursor:col-resize;-webkit-user-select:none;user-select:none}.cell-line .row-sub{display:inline;margin-top:0}.measure-readonly{padding:4px 11px;border-radius:var(--r);font-variant-numeric:tabular-nums}.measure-readonly.measure-pass{background:var(--tealbg)}.measure-readonly.measure-fail{background:var(--redbg);font-weight:var(--fw-title)}.heading-link{display:inline-flex;white-space:nowrap;align-items:center;gap:6px;color:var(--brand-text)}.text-danger{color:var(--red)}.color-swatch{display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;padding:0;border:0;border-radius:4px;color:var(--brand-on);cursor:pointer}.color-swatch:focus-visible{outline:2px solid var(--focus);outline-offset:2px}.app-boot{min-height:100vh}.row-main{font-weight:var(--fw-label)}.row-sub{display:block;margin-top:var(--sp-1);font-size:var(--fs-meta);color:var(--muted)}.row-line{display:flex;align-items:center;gap:var(--sp-1);flex-shrink:0}.field-grid{display:grid;grid-template-columns:max-content minmax(0,1fr) max-content minmax(0,1fr);gap:var(--sp-3) var(--sp-5);align-items:baseline}.field-grid-1{grid-template-columns:max-content minmax(0,1fr)}@media(min-width:1101px){.field-grid:not(.field-grid-1)>.field-span-2{grid-column:span 3}.field-grid:not(.field-grid-1)>.field-label:has(+.field-span-2){grid-column-start:1}.field-grid:not(.field-grid-1)>.field-value:last-child:not(.field-span-2):nth-child(4n+2){grid-column:span 3}}.field-props{display:flex;flex-direction:column;gap:var(--sp-2)}.field-props-title{font-weight:var(--fw-title)}.field-props .field-grid{grid-template-columns:minmax(0,160px) minmax(0,1fr) minmax(0,160px) minmax(0,1fr);gap:0 var(--sp-4);align-items:center}.field-props .field-grid-1{grid-template-columns:minmax(0,160px) minmax(0,1fr)}.field-props .field-label,.field-props .field-value{display:flex;align-items:center;min-height:36px}.field-props-head{justify-content:flex-end}.field-props-head:has(.field-props-title){justify-content:space-between}.field-props .field-label{white-space:normal}@media(max-width:1100px){.field-props .field-grid{grid-template-columns:minmax(0,160px) minmax(0,1fr)}}@media(max-width:575px){.field-props .field-grid,.field-props .field-grid-1{grid-template-columns:minmax(0,112px) minmax(0,1fr)}}.field-with-action{display:flex;align-items:center;gap:var(--sp-1)}.detail-head-side{display:flex;flex-wrap:wrap;align-items:center;gap:var(--sp-3);flex-shrink:0}.field-empty{color:var(--muted)}.detail-tab-pane{padding-top:var(--sp-4)}.field-label{font-size:var(--fs-meta);color:var(--muted);white-space:nowrap}.field-value{min-width:0;font-size:var(--fs-body);overflow-wrap:anywhere}@media(max-width:1100px){.field-grid{grid-template-columns:max-content minmax(0,1fr)}}@media(max-width:575px){.field-grid{grid-template-columns:minmax(0,1fr)}.field-label{white-space:normal}}.detail-head{display:flex;justify-content:space-between;align-items:center;gap:var(--sp-4);padding-right:var(--sp-6)}.detail-head-id{display:flex;align-items:center;gap:var(--sp-2);min-width:0;flex:1 1 auto;white-space:nowrap}.detail-head-id,.detail-head-side{height:28px}.detail-title{flex:0 1 auto;min-width:0;margin:0;font-size:var(--fs-title);font-weight:var(--fw-title);line-height:1.4;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.detail-entity{flex:none;font-size:var(--fs-title);font-weight:var(--fw-body);color:var(--muted)}.detail-subtitle{flex:none;font-size:var(--fs-meta);font-weight:var(--fw-body);color:var(--muted);white-space:nowrap}.detail-head-id>.copy-btn,.detail-head-id>.barcode-btn{flex:none}.detail-last-change{display:inline-flex;align-items:center;gap:var(--sp-1);flex:0 1000 auto;min-width:0;margin-left:var(--sp-2);overflow:hidden;font-size:var(--fs-meta);font-weight:var(--fw-body);color:var(--muted)}.detail-last-change>.entity-avatar{flex:none}.detail-last-change-text{overflow:hidden;text-overflow:ellipsis}@media(max-width:767px){.detail-head{flex-direction:column;align-items:stretch;gap:var(--sp-2)}.detail-last-change{display:none}}.visually-hidden{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}.detail-status{display:flex;align-items:center;gap:var(--sp-2);min-width:0;white-space:nowrap}.status-line{display:inline-flex;align-items:center;min-width:0;max-width:180px;overflow:hidden;text-overflow:ellipsis}.detail-empty{color:var(--muted)}.audit-row{display:flex;flex-direction:column;gap:var(--sp-1);width:100%;min-width:0}.audit-head{display:flex;flex-wrap:wrap;align-items:center;gap:var(--sp-1) var(--sp-2)}.audit-row-denied{background:var(--redbg)}.audit-actor{display:inline-flex;align-items:center;gap:var(--sp-1);color:var(--muted)}.audit-title{font-weight:var(--fw-label)}.audit-time{margin-left:auto;font-size:var(--fs-meta);color:var(--muted);white-space:nowrap}.audit-denied,.audit-version{margin-left:var(--sp-2);font-size:var(--fs-meta)}.audit-denied{color:var(--red);font-weight:var(--fw-label)}.audit-version{color:var(--muted);font-weight:var(--fw-body)}.audit-changes{display:flex;flex-wrap:wrap;gap:var(--sp-1) var(--sp-3);font-size:var(--fs-meta);color:var(--muted)}.audit-change-label{color:var(--muted)}.audit-change{color:var(--text)}.detail-footer-left{flex:1;display:flex;align-items:center}.detail-section-note{font-weight:var(--fw-body)}.alert-note{color:var(--muted)}.detail-source-link{display:inline-flex;align-items:center;gap:var(--sp-1);font-size:var(--fs-meta)}.sheet-head{min-width:0}.sheet-tile{display:inline-flex;flex:none;align-items:center;justify-content:center;width:36px;height:36px;border-radius:var(--r)}.sheet-title-text{display:flex;align-items:baseline;gap:var(--sp-2);min-width:0;white-space:nowrap}.sheet-title{flex:none;font-size:var(--fs-strong);font-weight:var(--fw-title);line-height:1.3}.sheet-description{min-width:0;overflow:hidden;text-overflow:ellipsis;font-size:var(--fs-meta);font-weight:400;color:var(--muted)}.login-page{position:relative;display:flex;align-items:center;justify-content:center;min-height:100vh;overflow:hidden;padding:var(--sp-5);background:var(--bg)}.login-bg{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;color:var(--text);pointer-events:none;opacity:.6;-webkit-mask-image:radial-gradient(ellipse at center,transparent 15%,black 85%);mask-image:radial-gradient(ellipse at center,transparent 15%,black 85%)}.login-bg-line{stroke:var(--line)}.login-shell{--login-inner-r: calc(var(--r-lg) + var(--sp-1));position:relative;z-index:1;display:grid;width:100%;max-width:440px;padding:var(--sp-2);border:var(--hairline) solid var(--line);border-radius:calc(var(--login-inner-r) + var(--sp-2));background:var(--paper);box-shadow:var(--shadow-overlay)}.login-form-col{display:flex;flex-direction:column;justify-content:center;min-width:0;padding:var(--sp-6) var(--sp-4)}.login-form{width:100%;max-width:360px;margin-inline:auto}.login-logo{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:var(--r);background:var(--brand);color:var(--brand-on)}.login-label{color:var(--text);font-weight:var(--fw-label);cursor:default}.login-forgot{padding:0;border:0;background:none;color:var(--muted);font:inherit;font-size:var(--fs-micro);cursor:pointer}.login-forgot:hover{color:var(--text)}.login-forgot:focus-visible{outline:2px solid var(--focus);outline-offset:2px;border-radius:var(--r-sm)}.login-field-error{font-size:var(--fs-micro)}.login-divider{color:var(--muted);font-size:var(--fs-micro);white-space:nowrap}.login-divider:before,.login-divider:after{content:"";flex:1;border-top:var(--hairline) solid var(--line)}.login-footnote{text-align:center}.login-art{display:none}@media(min-width:992px){.login-page{padding:var(--sp-7)}.login-shell{grid-template-columns:minmax(0,1fr) minmax(0,1.1fr);max-width:1040px;min-height:min(calc(100vh - var(--sp-7) * 2),760px)}.login-form-col{padding:var(--sp-7)}.login-art{position:relative;display:block;overflow:hidden;border:var(--hairline) solid var(--line);border-radius:var(--login-inner-r);background:radial-gradient(120% 70% at 85% 5%,var(--paper) 0%,transparent 60%),radial-gradient(90% 60% at 10% 100%,var(--paper) 0%,transparent 70%),linear-gradient(160deg,var(--brand-soft) 0%,var(--blue-bg) 50%,color-mix(in srgb,var(--brand) 22%,var(--paper)) 100%)}}.login-art-svg{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%}.login-art-band{fill:none;stroke:var(--paper);stroke-width:18;stroke-linecap:round;opacity:.55}.login-art-band--wide{stroke-width:60;opacity:.35}.login-art-band--thin{stroke-width:2;opacity:.9}.login-art-caption{position:absolute;inset-inline:0;bottom:0;padding:var(--sp-6)}.login-art-caption>*{max-width:380px}.login-art-title{font-size:var(--fs-page)}#print-area{display:none}@media print{body{background:#fff}#root{display:none!important}#print-area{display:block!important;margin:0;padding:0;font-size:10pt;color:#000}#print-area .print-head{display:flex;justify-content:space-between;border-bottom:2px solid #243b50;padding:0 0 15px;margin-bottom:20px}#print-area h1{font-size:21pt}#print-area h2{font-size:14pt;margin:24px 0 0}#print-area table{margin:20px 0;font-size:9pt;width:100%;border-collapse:collapse}#print-area th,#print-area td{padding:9px;border:1px solid #ccd1d8;text-align:left}#print-area .print-meta{display:grid;grid-template-columns:1fr 1fr;gap:9px}#print-area .print-note{font-size:8pt;color:#777;margin-top:20px}@page{size:A4;margin:15mm}}
