:root{--op-header: #9ed0f2;--op-header-text: #333333;--op-accent-text: #17324a;--op-bg: #f1f3f5;--op-surface: #ffffff;--op-surface-2: #f8f9fa;--op-surface-3: #eceff2;--op-border: #d7dce1;--op-divider: #e7eaee;--op-text: #333333;--op-text-muted: #6f7782;--op-text-faint: #929aa4;--op-accent: #9ed0f2;--op-accent-hover: #78b8e6;--op-accent-strong: #1f5f91;--op-sidebar-active: #eceff2;--op-sidebar-active-text: #333333;--op-topbar: #ffffff;--op-topbar-text: #333333;--op-success: #2f8f40;--op-warning: #d07a12;--op-danger: #c54b4b;--op-primary-soft: #eef8ff;--op-radius-sm: 2px;--op-radius-md: 3px;--op-radius-lg: 3px;--op-shadow-sm: 0 1px 2px rgba(0, 0, 0, .04);--op-shadow-md: 0 1px 2px rgba(0, 0, 0, .05);--op-shadow-lg: 0 1px 2px rgba(0, 0, 0, .05);--font-family: "Inter", "Segoe UI", Arial, sans-serif;--font-size: 14px;--layout-sidebar-width: 238px;--layout-topbar-height: 46px}*{margin:0;padding:0;box-sizing:border-box}html,body,#root{height:100%}body{background:var(--op-bg);color:var(--op-text);font-family:var(--font-family);font-size:var(--font-size);line-height:1.45}.layout{display:grid;grid-template-columns:var(--layout-sidebar-width) 1fr;min-height:100%}.layout__brand{display:flex;align-items:center;gap:.625rem;min-height:54px;padding:0 1.25rem;background:var(--op-surface);border-bottom:1px solid var(--op-border)}.layout__brand-mark{width:22px;height:22px;border-radius:4px;display:grid;place-items:center;background:var(--op-accent);color:var(--op-accent-text);box-shadow:none;font-size:.75rem;font-weight:700}.layout__brand-title{font-weight:600;font-size:.95rem;color:var(--op-header-text)}.layout__brand-sub{display:none}.layout__main{min-height:0;display:flex;min-width:0;overflow:hidden;flex-direction:column}.layout__nav{min-height:100vh;background:#f7f7f8;color:var(--op-text);padding:0;display:flex;flex-direction:column;gap:0;border-right:1px solid var(--op-border);box-shadow:none}.layout__nav-title{height:30px;padding:0 .75rem;display:flex;align-items:center;color:var(--op-text-muted);font-size:.78rem;letter-spacing:0;text-transform:none;margin-bottom:.25rem}.layout__nav-section{display:grid;gap:2px;padding:.75rem .625rem}.layout__nav-link{min-height:32px;display:flex;justify-content:space-between;align-items:center;color:#3f4650;text-decoration:none;padding:0 .75rem;border-radius:4px;position:relative;transition:background .12s,color .12s}.layout__nav-link span{font-weight:500}.layout__nav-link small{color:#8b949f;font-size:.68rem}.layout__nav-link:hover{background:var(--op-sidebar-active);color:var(--op-text)}.layout__nav-link.active{background:var(--op-sidebar-active);color:var(--op-text);font-weight:600;box-shadow:none}.layout__nav-link.active:before{content:"";position:absolute;left:0;top:4px;bottom:4px;width:3px;border-radius:2px;background:var(--op-accent)}.layout__nav-link.active small{color:#7e8da0}.layout__content{flex:1;min-width:0;max-width:100%;padding:1rem .75rem 1.375rem;overflow-y:auto;overflow-x:hidden;display:grid;gap:.75rem}button,input,select,textarea{font:inherit}.page-header{display:flex;justify-content:space-between;align-items:flex-start;gap:.75rem;margin-bottom:.75rem;padding-bottom:.625rem;border-bottom:1px solid var(--op-border)}.page-header__title{font-size:1.1rem;line-height:1.25;color:var(--op-text);letter-spacing:0;font-weight:600}.page-header__subtitle{margin-top:.25rem;color:var(--op-text-muted);max-width:70ch;font-size:.86rem}.module-placeholder__title{font-size:1.5rem;margin-bottom:1rem}.approvals__tabs{width:fit-content;display:inline-flex;gap:0;margin-bottom:.75rem;padding:0;background:var(--op-surface);border:1px solid var(--op-border);border-radius:var(--op-radius-md);overflow:hidden}.approvals__tab{min-height:31px;display:inline-flex;align-items:center;gap:.45rem;border:0;border-right:1px solid var(--op-border);border-radius:0;padding:0 .75rem;background:#f5f6f7;color:var(--op-text);cursor:pointer;font-weight:500}.approvals__tab:last-child{border-right:0}.approvals__tab span{min-width:20px;min-height:18px;display:inline-grid;place-items:center;padding:0 .35rem;border-radius:9px;background:var(--op-surface);color:var(--op-text-muted);font-size:.72rem;border:1px solid var(--op-divider)}.approvals__tab--active{background:var(--op-accent);color:var(--op-accent-text);box-shadow:none}.approvals__tab--active span{color:var(--op-accent-hover)}.approvals-report{display:grid;gap:.75rem;margin-bottom:.75rem}.approvals__archive-toolbar,.approvals__prune{display:flex;align-items:flex-end;gap:.5rem;flex-wrap:wrap;padding:.625rem .75rem;background:var(--op-surface);border:1px solid var(--op-border);border-radius:var(--op-radius-md);box-shadow:var(--op-shadow-sm)}.approvals__prune span{min-height:30px;display:inline-flex;align-items:center;color:var(--op-text-muted)}.approvals__prune input{width:84px}.approvals-report__stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.75rem}.approvals-report__stat,.approvals-report__panel{background:var(--op-surface);border:1px solid var(--op-border);border-radius:var(--op-radius-md);box-shadow:var(--op-shadow-sm)}.approvals-report__stat{display:grid;gap:.35rem;padding:.75rem .875rem}.approvals-report__stat span{color:var(--op-text-muted)}.approvals-report__stat strong{font-size:1.25rem;line-height:1.1;color:var(--op-text);font-weight:600}.approvals-report__grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.75rem}.approvals-report__panel{overflow:hidden}.approvals-report__panel h2{padding:.625rem .75rem;border-bottom:1px solid var(--op-divider);background:var(--op-surface-2);font-size:.95rem;font-weight:600}.approvals-report__panel dl{display:grid}.approvals-report__panel div{display:flex;justify-content:space-between;gap:.75rem;padding:.55rem .75rem;border-bottom:1px solid var(--op-divider)}.approvals-report__panel div:last-child{border-bottom:0}.approvals-report__panel dt{color:var(--op-text);overflow-wrap:anywhere}.approvals-report__panel dd{color:var(--op-text-muted);font-weight:700}.approvals-report__note{margin:0;padding:.65rem .75rem;border:1px solid var(--op-border);border-radius:var(--op-radius-md);background:#f8f9fa;color:var(--op-text)}.approvals__list{display:flex;flex-direction:column;gap:.5rem}.approvals__card{display:block;background:var(--op-surface);border:1px solid var(--op-border);border-radius:var(--op-radius-md);overflow:hidden;box-shadow:var(--op-shadow-sm)}.approvals__info{min-width:0;max-height:none;overflow:auto;padding:.75rem .875rem}.approvals__task{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap;font-size:.95rem;margin-bottom:.625rem;color:var(--op-accent-strong);font-weight:600}.approvals__status{display:inline-flex;align-items:center;min-height:20px;padding:0 .45rem;border-radius:2px;font-size:.74rem;font-weight:600}.approvals__status--approved{background:#1f8f581f;color:var(--op-success)}.approvals__status--rejected{background:#c54b4b1f;color:var(--op-danger)}.approvals__details{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:.55rem .875rem}.approvals__details dt{font-size:.76rem;color:var(--op-text-muted)}.approvals__details dd{color:var(--op-text);overflow-wrap:anywhere}.approvals__actions{display:flex;justify-content:flex-end;gap:.5rem;padding-top:.65rem;border-top:1px solid var(--op-divider);background:transparent}.approvals__action-btn{width:34px;height:30px;border:1px solid var(--op-border);border-radius:2px;background:#f5f6f7;cursor:pointer;font-size:1rem;color:var(--op-text);transition:border-color .12s,background .12s}.approvals__action-btn:hover{background:var(--op-primary-soft);border-color:var(--op-accent)}.approvals__action-btn--accept{color:var(--op-success)}.approvals__action-btn--reject{color:var(--op-danger)}.approvals__decision{display:grid;gap:.65rem;margin-top:.75rem}.approvals__comment{min-height:68px;resize:vertical;border:1px solid var(--op-border);border-radius:2px;padding:.45rem .55rem;color:var(--op-text);background:var(--op-surface)}.approvals__comment:focus{outline:none;border-color:var(--op-accent)}.approvals__decision-btn{min-height:32px;border:1px solid var(--op-border);border-radius:2px;padding:0 .875rem;cursor:pointer;font-weight:600}.approvals__decision-btn--accept{background:#dff3e3;border-color:#9ed8a8;color:#1f6f2d}.approvals__decision-btn--reject{background:#f5f6f7;color:var(--op-danger)}.approvals__archive-actions{display:flex;justify-content:flex-end;margin-top:.65rem;padding-top:.65rem;border-top:1px solid var(--op-divider)}.jira{min-width:0;width:100%;display:grid;gap:.75rem}.jira__panel{display:grid;gap:.75rem;padding:.75rem;border:1px solid var(--op-border);border-radius:var(--op-radius-md);background:var(--op-surface);box-shadow:var(--op-shadow-sm)}.jira__section-title{color:var(--op-text);font-weight:600;font-size:.9rem}.jira__grid{display:flex;gap:.5rem;align-items:flex-end;flex-wrap:wrap}.jira__input,.jira__textarea{width:100%;border:1px solid var(--op-border);border-radius:2px;padding:.45rem .55rem;color:var(--op-text);background:var(--op-surface);font-size:.875rem}.jira__input{min-height:32px}.jira__textarea{min-height:180px;resize:vertical;line-height:1.45}.jira__input:focus,.jira__textarea:focus{outline:none;border-color:var(--op-accent)}.jira__actions{display:flex;justify-content:flex-end;gap:.5rem}.jira__preview{display:grid;gap:.75rem;padding-top:.75rem;border-top:1px solid var(--op-divider)}.jira__issue-meta{display:flex;flex-wrap:wrap;gap:.4rem;align-items:center}.jira__issue-meta a,.jira__issue-meta span{min-height:24px;display:inline-flex;align-items:center;padding:0 .5rem;border:1px solid var(--op-border);border-radius:2px;background:var(--op-surface-2);color:var(--op-text);font-size:.8rem;text-decoration:none}.jira__issue-meta a{color:var(--op-accent-strong);font-weight:600}.planning{--planning-left-group-width: 200px;--planning-left-row-width: 300px;--planning-cell-width: 132px;min-width:0;width:100%;max-width:100%;overflow:hidden}.planning__header{align-items:center}.planning__mode-switch{display:inline-flex;gap:0;padding:0;background:var(--op-surface);border:1px solid var(--op-border);border-radius:var(--op-radius-md);overflow:hidden}.planning__mode-btn{border:none;border-right:1px solid var(--op-border);border-radius:0;min-height:31px;padding:0 .75rem;background:#f5f6f7;color:var(--op-text);cursor:pointer;font:inherit;font-weight:500;transition:background .12s,color .12s}.planning__mode-btn:last-child{border-right:0}.planning__mode-btn:hover{background:var(--op-sidebar-active);color:var(--op-text)}.planning__mode-btn--active,.planning__mode-btn--active:hover{background:var(--op-accent);color:var(--op-header-text);box-shadow:none}.planning__toolbar{display:flex;gap:.5rem;align-items:center;margin-bottom:.75rem;flex-wrap:wrap;justify-content:space-between;padding:.625rem .75rem;border:1px solid var(--op-border);border-radius:var(--op-radius-md);background:var(--op-surface);box-shadow:var(--op-shadow-sm)}.planning__toolbar--primary{justify-content:flex-start}.planning__toolbar--filters{justify-content:flex-start;align-items:flex-end}.planning__control{display:grid;gap:.25rem;min-width:170px;color:var(--op-text-muted);font-size:.76rem}.planning__control--wide{min-width:min(360px,100%);flex:1 1 280px}.planning__control .gantt-view__select{width:100%;color:var(--op-text);font-size:.875rem}.planning__toggle{min-height:30px;display:inline-flex;align-items:center;gap:.4rem;padding:0 .5rem;color:var(--op-text);white-space:nowrap;cursor:pointer}.planning__toggle input{width:14px;height:14px;accent-color:var(--op-accent)}.planning__horizon-switch{display:flex;justify-content:center;gap:0;margin:0 0 .75rem;padding:0;width:fit-content;justify-self:center;border-radius:var(--op-radius-md);background:var(--op-surface);border:1px solid var(--op-border);overflow:hidden}.planning__toolbar .planning__horizon-switch{margin:0}.planning__timeline-actions{display:flex;gap:.5rem;align-items:center;flex-wrap:wrap;margin-left:auto}.planning__today-btn{background:#f5f6f7;color:var(--op-text);border:1px solid var(--op-border);min-height:30px;padding:0 .75rem;border-radius:2px;cursor:pointer;font:inherit;font-weight:500;transition:background .12s,color .12s}.planning__today-btn:hover{background:var(--op-primary-soft);color:var(--op-accent-hover)}.planning__range{color:var(--op-text-muted);white-space:nowrap}.planning__grid-wrap{width:100%;min-width:0;overflow:auto;overscroll-behavior:contain;max-height:64vh;max-width:100%;background:var(--op-surface);border:1px solid var(--op-border);border-radius:var(--op-radius-md);box-shadow:var(--op-shadow-sm);padding:0;scrollbar-width:none}.planning__grid-wrap::-webkit-scrollbar{width:0;height:0}.planning__grid-wrap::-webkit-scrollbar-thumb{background:transparent}.planning__timeline-scrollbar{margin-left:calc(var(--planning-left-group-width) + var(--planning-left-row-width));width:calc(100% - var(--planning-left-group-width) - var(--planning-left-row-width));min-width:0;height:14px;overflow-x:auto;overflow-y:hidden;scrollbar-width:thin;scrollbar-color:var(--op-border) transparent}.planning__timeline-scrollbar::-webkit-scrollbar{height:10px}.planning__timeline-scrollbar::-webkit-scrollbar-track{background:transparent}.planning__timeline-scrollbar::-webkit-scrollbar-thumb{background:var(--op-border);border-radius:999px}.planning__timeline-scrollbar-spacer{height:1px}.planning-matrix{width:max-content;min-width:calc(var(--planning-left-group-width) + var(--planning-left-row-width) + var(--planning-columns) * var(--planning-cell-width));display:grid;grid-template-columns:var(--planning-left-group-width) var(--planning-left-row-width) repeat(var(--planning-columns),var(--planning-cell-width));grid-template-rows:44px repeat(var(--planning-rows),minmax(52px,auto));overflow:visible;border:0;border-radius:0;background:var(--op-surface)}.planning-matrix__corner,.planning-matrix__periods{position:sticky;top:0;z-index:5;background:var(--op-surface-2);border-bottom:1px solid var(--op-divider)}.planning-matrix__corner{display:flex;align-items:center;padding:.65rem .75rem;color:var(--op-text-muted);font-weight:600;border-right:1px solid var(--op-divider)}.planning-matrix__corner--group{left:0;z-index:7;grid-column:1;grid-row:1}.planning-matrix__corner--row{left:var(--planning-left-group-width);z-index:7;grid-column:2;grid-row:1}.planning-matrix__periods{grid-column:3 / -1;grid-row:1;display:grid;grid-template-columns:repeat(var(--planning-columns),var(--planning-cell-width));z-index:4}.planning-matrix__period{padding:.65rem .75rem;color:var(--op-text-muted);font-weight:600;border-right:1px solid var(--op-divider)}.planning-matrix__timeline-grid{grid-column:3 / -1;z-index:1;background-image:linear-gradient(to right,transparent calc(100% - 1px),var(--op-divider) calc(100% - 1px));background-size:var(--planning-cell-width) 100%;background-repeat:repeat;pointer-events:none}.planning-matrix__group-label,.planning-matrix__row-label{position:sticky;z-index:6;background:var(--op-surface);border-right:1px solid var(--op-divider);border-bottom:1px solid var(--op-divider)}.planning-matrix__group-label{left:0;grid-column:1;display:flex;align-items:flex-start;padding:.75rem;color:var(--op-text);font-weight:600;background:var(--op-surface-2)}.planning-matrix__row-label{left:var(--planning-left-group-width);grid-column:2;display:flex;align-items:flex-start;align-self:stretch;min-height:52px;padding:.65rem .75rem;color:var(--op-text);overflow-wrap:anywhere;background:var(--op-surface-2);font-weight:500;box-shadow:8px 0 12px #0000000a}.planning-matrix__row-label--empty{color:var(--op-text-muted);font-style:italic}.planning-matrix__row-label--expanded,.planning-matrix__cells--expanded{min-height:78px}.planning-matrix__project-row{display:grid;gap:.45rem;min-width:0;width:100%}.planning-matrix__project-toggle{display:grid;grid-template-columns:16px minmax(0,1fr);align-items:start;gap:.35rem;width:100%;padding:0;border:0;background:transparent;color:inherit;cursor:pointer;font:inherit;font-weight:600;text-align:left}.planning-matrix__project-toggle span:last-child{min-width:0;overflow-wrap:anywhere}.planning-matrix__project-chevron{color:var(--op-text-muted);line-height:1.25}.planning-matrix__cells{grid-column:3 / -1;display:grid;grid-template-columns:repeat(var(--planning-columns),var(--planning-cell-width));align-self:stretch;min-height:52px;position:relative;border-bottom:1px solid var(--op-divider);background:var(--op-surface)}.planning-matrix__cell{border-right:0}.planning-matrix__today-bg{align-self:stretch;justify-self:stretch;z-index:1;background:#2870a814;border-left:1px solid rgba(40,112,168,.24);border-right:1px solid rgba(40,112,168,.12);pointer-events:none}.planning-matrix__bar{align-self:center;z-index:3;display:grid;gap:.2rem;min-width:0;margin:0 .35rem;padding:.32rem .5rem;background:var(--op-accent);color:var(--op-text);border-radius:3px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;border:1px solid var(--op-accent-hover);box-shadow:none;font-size:.82rem;font-weight:600;transition:background .12s;cursor:pointer;font:inherit;text-align:left}.planning-matrix__bar:hover{background:var(--op-accent-hover);box-shadow:none}.planning-matrix__bar--project{background:var(--op-accent);border-color:var(--op-accent-hover);color:var(--op-accent-text)}.planning-matrix__bar--project:hover{background:var(--op-accent-hover)}.planning-matrix__bar--expanded{min-height:54px;align-content:center;white-space:normal}.planning-matrix__bar-dates{color:#45667f;font-size:.74rem;font-weight:500}.planning-grid{min-width:calc(220px + var(--planning-columns) * 120px);display:grid;grid-template-columns:220px 1fr}.planning-grid__corner,.planning-grid__row-label{position:sticky;left:0;z-index:2;background:var(--op-surface);border-right:1px solid var(--op-border)}.planning-grid__corner{top:0;z-index:5;padding:.65rem .75rem;font-weight:700;color:var(--op-text-muted);border-bottom:1px solid var(--op-border)}.planning-grid__periods{position:sticky;top:0;z-index:4;display:grid;grid-template-columns:repeat(var(--planning-columns),120px);background:var(--op-surface);border-bottom:1px solid var(--op-border)}.planning-grid__period{padding:.65rem .75rem;color:var(--op-text-muted);font-weight:700;border-right:1px solid var(--op-border)}.planning-grid__row{display:contents}.planning-grid__row-label{min-height:52px;display:flex;align-items:center;padding:.65rem .75rem;border-bottom:1px solid var(--op-border);color:var(--op-text);font-weight:500}.planning-grid__cells{min-height:52px;display:grid;grid-template-columns:repeat(var(--planning-columns),120px);position:relative;border-bottom:1px solid var(--op-border)}.planning-grid__cell{border-right:1px solid var(--op-border)}.planning-grid__today{grid-column:var(--planning-today-column) / span 1;grid-row:1;z-index:1;background:var(--op-sidebar-active);border-left:2px solid var(--op-accent);pointer-events:none}.planning-grid__bar{align-self:center;z-index:2;min-width:0;margin:0 .35rem;padding:.35rem .5rem;background:linear-gradient(90deg,var(--op-accent) 0 var(--planning-progress),var(--op-accent-hover) var(--planning-progress) 100%);color:var(--op-header-text);border-radius:4px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;border:1px solid var(--op-accent-hover);cursor:pointer;font:inherit;text-align:left}.planning-grid__bar:hover{background:var(--op-accent-hover)}.planning-grid__bar--selected,.planning-grid__bar--selected:hover{outline:2px solid var(--op-text);outline-offset:1px}.planning-details{margin-top:.75rem;background:var(--op-surface);border:1px solid var(--op-border);border-radius:var(--op-radius-md);padding:.875rem;box-shadow:var(--op-shadow-sm)}.planning-details--side{position:sticky;right:0;bottom:0;margin-left:auto;max-width:520px}.planning-details__header{display:flex;justify-content:space-between;gap:1rem;align-items:flex-start;margin-bottom:.75rem}.planning-details__title{font-size:.98rem;color:var(--op-accent-strong);line-height:1.25;font-weight:600}.planning-details__close{width:28px;height:26px;border:1px solid var(--op-border);border-radius:2px;background:#f5f6f7;color:var(--op-text-muted);cursor:pointer;font-size:1.1rem;line-height:1}.planning-details__close:hover{background:var(--op-primary-soft);color:var(--op-accent-hover)}.planning-details__grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:.75rem 1rem}.planning-details__grid dt{color:var(--op-text-muted);font-size:.76rem}.planning-details__grid dd{color:var(--op-text);overflow-wrap:anywhere}.planning-details__actions{margin-top:1rem;display:flex;flex-wrap:wrap;align-items:end;gap:.75rem}.planning-details__field{display:grid;gap:.35rem;color:var(--op-text-muted);font-size:.8rem}.planning-details__input{min-height:30px;border:1px solid var(--op-border);border-radius:2px;padding:.25rem .5rem;color:var(--op-text);background:var(--op-surface)}.planning-details__submit{min-height:30px;border:1px solid var(--op-accent-hover);border-radius:2px;padding:.25rem .75rem;color:var(--op-header-text);background:var(--op-accent);cursor:pointer;font-weight:600;box-shadow:none}.planning-details__submit:hover{background:var(--op-accent-hover)}.planning-details__submit:disabled{cursor:not-allowed;opacity:.6}.planning-details__message{flex-basis:100%;margin:0;color:var(--op-text-muted);font-size:.85rem}.overview__title{font-size:1.5rem;margin-bottom:.25rem}.overview__subtitle{color:var(--op-text-muted)}.overview__approval-link{flex:none;min-height:30px;display:inline-flex;align-items:center;padding:0 .75rem;background:var(--op-accent);color:var(--op-header-text);border-radius:2px;text-decoration:none;font-weight:600;box-shadow:none;transition:background .12s}.overview__approval-link:hover{background:var(--op-accent-hover)}.overview-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:.75rem;margin-bottom:.75rem}.overview-card{display:flex;flex-direction:column;gap:.25rem;min-height:86px;padding:.875rem;background:var(--op-surface);border:1px solid var(--op-border);border-radius:var(--op-radius-md);box-shadow:var(--op-shadow-sm)}.overview-card__label{color:var(--op-text-muted)}.overview-card__value{font-size:1.65rem;line-height:1.1;color:var(--op-text);font-weight:600}.overview-card__detail{color:var(--op-text-muted)}.overview-panel{background:var(--op-surface);border:1px solid var(--op-border);border-radius:var(--op-radius-md);padding:0;box-shadow:var(--op-shadow-sm);overflow:hidden}.overview-panel__title{font-size:.98rem;padding:.65rem .875rem;border-bottom:1px solid var(--op-divider);background:var(--op-surface-2);margin-bottom:0;font-weight:600}.overview-structure{list-style:none;display:flex;flex-direction:column;gap:0}.overview-structure__item{display:flex;justify-content:space-between;gap:1rem;padding:.6rem .875rem;border:1px solid var(--op-divider);border-width:0 0 1px}.overview-structure__item:last-child{border-bottom:none}.overview__source{margin-top:.75rem;font-style:italic;color:var(--op-text-muted)}.spinner{display:flex;justify-content:center;align-items:center;min-height:120px}.error-state{text-align:center;padding:1.25rem;background:var(--op-surface);border:1px solid var(--op-border);border-radius:var(--op-radius-md);box-shadow:var(--op-shadow-sm)}.error-state__message{color:var(--op-accent-strong);margin-bottom:1rem}.error-state__retry{background:var(--op-accent);color:var(--op-accent-text);border:none;min-height:30px;padding:0 .75rem;border-radius:2px;cursor:pointer;font-size:inherit;font-weight:600}.error-state__retry:hover{background:var(--op-accent-hover)}.empty-state{text-align:center;padding:1.25rem;color:var(--op-text-muted);background:var(--op-surface);border:1px solid var(--op-border);border-radius:var(--op-radius-md);box-shadow:var(--op-shadow-sm)}.gantt-wrap{overflow-x:auto;padding:0;background:var(--op-surface);border:1px solid var(--op-border);border-radius:var(--op-radius-md);box-shadow:var(--op-shadow-sm)}.gantt-view__toolbar{display:flex;gap:.5rem;align-items:center;margin-bottom:.75rem;flex-wrap:wrap}.gantt-view__select{background:var(--op-surface);color:var(--op-text);border:1px solid var(--op-border);min-height:30px;padding:0 .5rem;border-radius:2px;font-size:inherit;box-shadow:none}.gantt-view__view-buttons{display:flex;gap:0;border:1px solid var(--op-border);border-radius:var(--op-radius-md);overflow:hidden}.gantt-view__view-btn{background:var(--op-surface);color:var(--op-text);border:0;border-right:1px solid var(--op-border);min-height:30px;padding:0 .625rem;border-radius:0;cursor:pointer;font-size:inherit;transition:background .15s,color .15s}.gantt-view__view-btn:hover{background:var(--op-sidebar-active);color:var(--op-text)}.gantt-view__view-btn--active{background:var(--op-accent);color:var(--op-accent-text);border-color:var(--op-accent)}.gantt-view__view-btn--active:hover{background:var(--op-accent-hover);color:var(--op-accent-text)}.gantt-view__hidden-info{margin-top:1rem;font-style:italic;font-size:.85rem;color:var(--op-text-muted)}.structure__title{font-size:1.5rem;margin-bottom:1rem}.structure__toast{padding:.5rem .75rem;border-radius:2px;margin-bottom:.75rem;font-size:.9rem}.structure__toast--error{background:#fde8e8;color:#b71c1c;border:1px solid #f5c6c6}.structure__toast--success{background:#edf8ef;color:#1f6f2d;border:1px solid #b8dfbf}.structure__columns{display:grid;grid-template-columns:1fr 1fr;gap:.75rem;align-items:start}.structure__section-title{font-size:1.1rem;margin-bottom:.75rem;color:var(--op-text)}.structure__editor{background:var(--op-surface);border:1px solid var(--op-border);border-radius:var(--op-radius-md);padding:.875rem;box-shadow:var(--op-shadow-sm)}.structure__list{display:flex;flex-direction:column;gap:.5rem}.structure__row{display:flex;align-items:center;gap:.75rem;padding:.4rem 0;border-bottom:1px solid var(--op-border)}.structure__row:last-child{border-bottom:none}.structure__row-name{min-width:160px;font-weight:500;color:var(--op-text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.structure__row-select{flex:1;min-width:140px;background:var(--op-bg);color:var(--op-text);border:1px solid var(--op-border);padding:.3rem .5rem;border-radius:4px;font-size:inherit}.structure__row-select:focus{outline:none;border-color:var(--op-accent);box-shadow:0 0 0 2px #1a67a333}.structure__row-select:disabled{color:var(--op-text-muted);cursor:not-allowed;opacity:.75}.structure-table__wrap{overflow-x:auto;background:var(--op-surface);border:1px solid var(--op-border);border-radius:var(--op-radius-md);box-shadow:var(--op-shadow-sm)}.structure-table{width:100%;border-collapse:collapse;min-width:760px}.structure-table th,.structure-table td{padding:.5rem .625rem;border-bottom:1px solid var(--op-divider);text-align:left;vertical-align:middle}.structure-table th{background:var(--op-surface-2);color:var(--op-text-muted);font-weight:600}.structure-table tbody tr:last-child td{border-bottom:none}.structure-table__row--child td{background:var(--op-surface)}.structure-table__name{display:inline-block;font-weight:500;color:var(--op-text)}.structure__tree-panel{background:var(--op-surface);border:1px solid var(--op-border);border-radius:var(--op-radius-md);padding:.875rem;box-shadow:var(--op-shadow-sm)}.structure__empty-tree{color:var(--op-text-muted);font-style:italic}.structure-tree,.structure-tree__children{list-style:none;margin:0;padding:0}.structure-tree__children>.structure-tree__item{position:relative;padding-left:18px}.structure-tree__children>.structure-tree__item:before{content:"";position:absolute;left:0;top:0;width:1px;height:100%;background:var(--op-border)}.structure-tree__children>.structure-tree__item:last-child:before{height:15px}.structure-tree__children>.structure-tree__item:after{content:"";position:absolute;left:0;top:15px;width:14px;height:1px;background:var(--op-border)}.structure-tree>.structure-tree__item{position:relative}.structure-tree__row{display:flex;align-items:center;gap:6px;padding:5px 8px;border-radius:6px;transition:background .12s ease}.structure-tree__row:hover{background:var(--op-sidebar-active)}.structure-tree__toggle{flex:none;width:16px;height:16px;display:inline-flex;align-items:center;justify-content:center;border:none;background:none;padding:0;cursor:pointer;color:var(--op-text-muted);font-size:10px;line-height:1}.structure-tree__toggle:hover{color:var(--op-accent-strong)}.structure-tree__toggle--spacer{visibility:hidden}.structure-tree__chip{display:inline-flex;align-items:center;gap:6px;min-width:0}.structure-tree__icon{color:var(--op-accent-strong);flex:none}.structure-tree__name{color:var(--op-text);font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.structure-tree__badge{display:inline-flex;align-items:center;gap:3px;flex:none;font-size:11px;color:var(--op-text-muted);background:var(--op-bg);border:1px solid var(--op-border);border-radius:10px;padding:0 6px;line-height:18px}.structure-tree__person-icon{color:var(--op-text-muted)}.timeline__wrap{background:var(--op-surface);border:1px solid var(--op-border);border-radius:6px;padding:.75rem 1rem}.timeline__row--task{opacity:.85}.timeline__task-name{font-size:12px;color:var(--op-text-muted)}.timeline__date-range{font-size:11px;color:var(--op-text-muted);opacity:.7;white-space:nowrap}.timeline__hidden-info{margin-top:.75rem;font-size:.85rem;font-style:italic;color:var(--op-text-muted)}.planner__wrap{background:var(--op-surface);border:1px solid var(--op-border);border-radius:6px;box-shadow:0 1px 3px #0000000f}.planner__toolbar{display:flex;gap:.5rem;align-items:center;padding:.5rem .75rem;border-bottom:1px solid var(--op-border);flex-wrap:wrap}.planner__toolbar-btn{background:var(--op-surface);color:var(--op-text-muted);border:1px solid var(--op-border);padding:.3rem .7rem;border-radius:4px;cursor:pointer;font-size:13px;font-family:var(--font-family);transition:background .15s,color .15s}.planner__toolbar-btn:hover{background:var(--op-sidebar-active);color:var(--op-sidebar-active-text)}.planner__toolbar-btn--fit{margin-left:auto}.planner__container{height:60vh;min-height:300px;padding:.25rem 0}.vis-timeline{border:none;font-family:var(--font-family)}.vis-item.struct-task{background:var(--op-accent);border-color:var(--op-accent-hover);color:var(--op-accent-text);border-radius:4px;font-size:12px}.vis-item.vis-background.struct-agg{background:#1a67a314}.vis-panel.vis-left,.vis-panel.vis-center{border-color:var(--op-border)}.vis-labelset .vis-label{border-bottom:1px solid var(--op-border);color:var(--op-text);font-size:13px}.vis-labelset .vis-label .vis-inner{padding:4px 8px}.vis-time-axis .vis-text{color:var(--op-text-muted);font-size:11px}.vis-time-axis .vis-grid.vis-minor,.vis-time-axis .vis-grid.vis-major{border-color:var(--op-border)}.vis-current-time{background-color:var(--op-accent);opacity:.3}@media (max-width: 1180px){.layout{grid-template-columns:236px 1fr}.layout__content{padding:1.25rem}.overview-grid,.approvals-report__stats,.approvals-report__grid{grid-template-columns:repeat(2,minmax(0,1fr))}.approvals__card{grid-template-columns:1fr}.approvals__actions{flex-direction:row;justify-content:flex-end;border-left:0;border-top:1px solid var(--op-divider)}.structure__columns{grid-template-columns:1fr}}@media (max-width: 860px){.layout{grid-template-columns:1fr}.layout__nav{min-height:auto;padding:1rem;gap:1rem}.layout__nav-section{grid-template-columns:repeat(2,minmax(0,1fr))}.layout__nav-title{grid-column:1 / -1}.layout__content{padding:1rem}.page-header{flex-direction:column}.page-header__title{font-size:1.7rem}.overview-grid{grid-template-columns:1fr}.approvals__tabs{width:100%}.approvals__tab{flex:1;justify-content:center;padding:0 .65rem}.approvals-report__stats,.approvals-report__grid{grid-template-columns:1fr}.planning__toolbar{align-items:stretch}.planning__timeline-actions{width:100%;margin-left:0;justify-content:space-between}.planning__range{white-space:normal}.planning__horizon-switch{width:100%}.planning__mode-btn{flex:1;padding:0 .65rem}.planning__grid-wrap{max-height:68vh}.planning{--planning-left-group-width: 160px;--planning-left-row-width: 240px;--planning-cell-width: 112px}.planning-details--side{max-width:none;margin-left:0}}
