@font-face{font-family:Plex Sans;font-style:normal;font-weight:100 700;font-display:swap;src:url(/fonts/plex-cyr.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Plex Sans;font-style:normal;font-weight:100 700;font-display:swap;src:url(/fonts/plex-lat.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Plex Mono;font-style:normal;font-weight:400 600;font-display:swap;src:url(/fonts/plexmono-cyr.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116,U+??,U+131,U+152-153,U+2BB-2BC,U+2000-206F}:root{--mx-panel-w:320px;--color-bg:#f6f7f9;--color-surface:#fff;--color-surface-sunken:#f1f3f6;--color-border:#dde2e8;--color-border-strong:#b9c1cc;--color-divider:#e5e9ee;--color-text:#1a202c;--color-text-secondary:#4a5568;--color-text-muted:#5f6e82;--color-text-inverse:#fff;--color-accent:#1f6feb;--color-accent-hover:#1858c0;--color-accent-pressed:#1348a0;--color-accent-soft:#eaf1fe;--color-focus:#1f6feb;--color-danger:#c62828;--color-danger-bg:#fdecec;--color-warning:#b26a00;--color-warning-bg:#fff4e0;--color-success:#2e7d32;--color-success-bg:#e8f5e9;--color-today:#ef3124;--step-analytic:#1f6feb;--step-analytic-text:#fff;--step-testing:#e3b341;--step-testing-text:#3d2b00;--step-scale:#db61a2;--step-scale-text:#45102c;--link-line:#6b7a8f;--link-line-hover:#1f6feb;--link-label-bg:#fff;--mx-gutter-w:240px;--mx-owner-w:150px;--mx-left-cols-w:390px;--mx-point-w:44px;--mx-point-h:22px;--mx-header-h:78px;--mx-row-min-h:44px;--mx-point:22px;--mx-point-gap:10px;--radius-sm:4px;--radius-md:6px;--radius-lg:10px;--shadow-sm:0 1px 2px #1018280f;--shadow-md:0 4px 12px #1018281a;--shadow-lg:0 12px 32px #1018282e;--font-ui:"Plex Sans", "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--font-mono:"Plex Mono", ui-monospace, SFMono-Regular, "SF Mono", Menlo, monospace;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{background:var(--color-bg);color:var(--color-text);font-family:var(--font-ui);-webkit-font-smoothing:antialiased;font-size:13px;line-height:1.45}button{font-family:inherit;font-size:inherit;color:inherit;cursor:pointer;background:0 0;border:none;padding:0}input,textarea,select{font-family:inherit;font-size:inherit;color:inherit}:focus-visible{outline:2px solid var(--color-focus);outline-offset:2px}.btn{border-radius:var(--radius-md);border:1px solid var(--color-border);background:var(--color-surface);height:32px;color:var(--color-text);white-space:nowrap;align-items:center;gap:6px;padding:0 12px;font-weight:500;transition:background .12s,border-color .12s;display:inline-flex}.btn:hover{background:var(--color-surface-sunken)}.btn:active{background:var(--color-divider)}.btn--primary{background:var(--color-accent);border-color:var(--color-accent);color:#fff}.btn--primary:hover{background:var(--color-accent-hover);border-color:var(--color-accent-hover)}.btn--primary:disabled{background:var(--color-border-strong);border-color:var(--color-border-strong);cursor:not-allowed}.btn--ghost{background:0 0;border-color:#0000}.btn--ghost:hover{background:var(--color-surface-sunken)}.btn--danger{color:var(--color-danger)}.btn--icon{justify-content:center;width:32px;padding:0}.field{flex-direction:column;gap:4px;margin-bottom:12px;display:flex}.field__label{color:var(--color-text-secondary);font-size:12px;font-weight:600}.field__label .req{color:var(--color-danger)}.input,.textarea,.select{border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);width:100%;min-height:34px;padding:6px 10px;transition:border-color .12s,box-shadow .12s}.input:focus,.textarea:focus{border-color:var(--color-accent);outline:none;box-shadow:0 0 0 3px #1f6feb24}.textarea{resize:vertical;min-height:72px}.field__error{color:var(--color-danger);font-size:12px}.field__hint{color:var(--color-text-muted);font-size:11px}.badge{background:var(--color-surface-sunken);min-width:18px;height:18px;color:var(--color-text-secondary);border-radius:9px;justify-content:center;align-items:center;padding:0 5px;font-size:11px;font-weight:600;display:inline-flex}.spacer{flex:1}.muted{color:var(--color-text-muted)}.ellipsis{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.toast-stack{z-index:400;flex-direction:column;gap:8px;display:flex;position:fixed;bottom:20px;left:50%;transform:translate(-50%)}.toast{border-radius:var(--radius-lg);color:#fff;box-shadow:var(--shadow-lg);background:#1a202c;align-items:center;gap:12px;padding:10px 14px;font-size:13px;display:flex}.toast button{color:#9dc0ff;font-weight:600}.dialog-backdrop{z-index:300;background:#10182859;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.dialog{background:var(--color-surface);border-radius:var(--radius-lg);width:420px;max-width:calc(100vw - 32px);box-shadow:var(--shadow-lg);padding:20px}.dialog__title{margin:0 0 4px;font-size:16px;font-weight:600}.dialog__sub{color:var(--color-text-secondary);margin:0 0 16px;font-size:12px}.dialog__footer{justify-content:flex-end;gap:8px;margin-top:8px;display:flex}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-thumb{border:2px solid var(--color-bg);background:#cfd6df;border-radius:6px}::-webkit-scrollbar-thumb:hover{background:var(--color-border-strong)}.projects-screen{flex-direction:column;min-height:100%;display:flex}.projects-header{background:var(--color-surface);border-bottom:1px solid var(--color-divider);z-index:10;align-items:center;gap:16px;padding:16px 24px;display:flex;position:sticky;top:0}.projects-header__brand{align-items:center;gap:12px;display:flex}.projects-header__logo{flex:none;place-items:center;width:34px;height:34px;display:grid}.projects-header__title{letter-spacing:-.01em;margin:0;font-size:17px;font-weight:700}.projects-header__sub{color:var(--color-text-muted);margin:0;font-size:12px}.projects-toolbar{align-items:center;gap:10px;display:flex}.search{display:inline-flex;position:relative}.search__icon{color:var(--color-text-muted);font-size:14px;position:absolute;top:50%;left:9px;transform:translateY(-50%)}.search__input{width:220px;padding-left:26px}.segmented{background:var(--color-surface-sunken);border-radius:var(--radius-md);padding:2px;display:inline-flex}.segmented__btn{height:32px;color:var(--color-text-secondary);border-radius:4px;padding:0 10px;font-size:12px}.segmented__btn.is-active{background:var(--color-surface);color:var(--color-text);box-shadow:var(--shadow-sm);font-weight:600}.projects-body{flex:1;padding:20px 24px 40px}.tiles{grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:16px;margin:0;padding:0;list-style:none;display:grid}.tile{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);cursor:pointer;flex-direction:column;gap:6px;height:100%;padding:14px;transition:border-color .12s,box-shadow .12s,transform .12s;display:flex}.tile:hover{border-color:var(--color-accent);box-shadow:var(--shadow-md)}.tile__top{align-items:center;gap:8px;display:flex}.tile__accent{background:var(--color-accent);border-radius:50%;flex:none;width:8px;height:8px}.tile__name{text-overflow:ellipsis;white-space:nowrap;flex:1;margin:0;font-size:14px;font-weight:600;overflow:hidden}.tile__menu{opacity:0;gap:6px;transition:opacity .12s;display:flex}.tile:hover .tile__menu,.tile:focus-within .tile__menu{opacity:1}.tile__desc{color:var(--color-text-secondary);margin:0;font-size:12px}.tile__stats{color:var(--color-text-secondary);gap:6px;font-size:11px;display:flex}.tile__dot{color:var(--color-border-strong)}.tile__meta{color:var(--color-text-muted);font-size:12px}.state{text-align:center;color:var(--color-text-secondary);flex-direction:column;justify-content:center;align-items:center;gap:8px;padding:64px 24px;display:flex}.state--error{color:var(--color-danger)}.state__title{color:var(--color-text);font-size:15px;font-weight:600}.state__text{max-width:420px;color:var(--color-text-muted);font-size:13px}.projects-footer{justify-content:flex-end;align-items:center;padding:12px 24px 20px;display:flex;position:relative}.projects-footer__version{font-family:var(--font-mono);color:var(--color-text-muted);pointer-events:none;white-space:nowrap;font-size:11px;position:absolute;left:50%;transform:translate(-50%)}.workspace{flex-direction:column;height:100%;min-height:0;display:flex}.ws-header{background:var(--color-surface);border-bottom:1px solid var(--color-divider);flex:none;align-items:center;gap:12px;padding:8px 16px;display:flex}.ws-header__title{align-items:baseline;gap:10px;min-width:0;display:flex}.ws-header__name{white-space:nowrap;text-overflow:ellipsis;cursor:text;max-width:380px;margin:0;font-size:15px;font-weight:600;overflow:hidden}.ws-header__input{width:300px;height:28px;min-height:28px}.ws-header__range{color:var(--color-text-secondary);white-space:nowrap;font-size:13px}.ws-header__tools{align-items:center;gap:10px;display:flex}.ws-header__group{background:var(--color-surface-sunken);border-radius:var(--radius-md);align-items:center;gap:4px;padding:2px;display:inline-flex}.ws-header .btn--sm{height:32px;padding:0 12px;font-size:13px}.ws-header__zoom{text-align:center;width:44px;font-size:11px}.workspace__main{flex:1;min-height:0;display:flex}.matrix{background:var(--color-surface);contain:strict;clip-path:inset(0);isolation:isolate;flex:auto;min-width:0;position:relative;overflow:auto}.matrix__canvas{min-width:0;position:relative}.header{z-index:30;background:var(--color-surface);border-bottom:1px solid var(--color-border);display:flex;position:sticky;top:0}.header__left{z-index:2;width:var(--mx-gutter-w);background:var(--color-surface);border-right:1px solid var(--color-border);flex:none;align-items:flex-end;gap:8px;padding:0 8px 8px 12px;display:flex;position:sticky;left:0}.header__owner{left:var(--mx-gutter-w);z-index:2;width:var(--mx-owner-w);background:var(--color-surface);border-right:1px solid var(--color-border);flex:none;align-items:flex-end;padding:0 10px 8px;display:flex;position:sticky}.header__caption{letter-spacing:.02em;text-transform:uppercase;color:var(--color-text-muted);text-overflow:ellipsis;white-space:nowrap;min-width:0;font-size:11px;font-weight:600;overflow:hidden}.btn-add-line{height:26px;color:var(--color-accent);border-radius:var(--radius-md);cursor:pointer;white-space:nowrap;background:#eff5ff;border:1px solid #1f6feb73;flex:none;padding:0 8px;font-family:inherit;font-size:12px;font-weight:600;line-height:1;transition:border-color .12s,background-color .12s}.btn-add-line:hover{border-color:var(--color-accent);background:#e3eefc}.btn-add-line:focus-visible{border-color:var(--color-accent);outline-offset:2px;background:#e3eefc;outline:2px solid #1f6feb59}@media (width<=1100px){.btn-add-line{justify-content:center;align-items:center;width:26px;padding:0;font-size:0;display:inline-flex}.btn-add-line__label{font-size:0}.btn-add-line:after{content:"+";font-size:15px;line-height:1}.header__left{gap:4px}}@media (width<=640px){.header__left{gap:4px;padding:0 4px 8px 6px}.header__caption{letter-spacing:.01em;font-size:10.5px}}.header__timeline{flex-direction:column;flex:none;display:flex}.header__row{border-bottom:1px solid var(--color-divider);height:26px;display:flex}.header__row--quarter{height:24px}.header__row--month{border-bottom:none;height:28px}.header__year,.header__quarter,.header__month{color:var(--color-text-secondary);border-right:1px solid var(--color-divider);flex:none;justify-content:center;align-items:center;font-size:12px;display:flex}.header__year{color:var(--color-text);font-size:12px;font-weight:700}.header__year.is-year-start,.header__quarter.is-year-start,.header__month.is-year-start{border-left:2px solid #c9d1db}.header__quarter.is-quarter-start,.header__month.is-quarter-start{border-left:1px solid #d5dbe3}.header__quarter{color:var(--color-text-secondary);font-size:11px;font-weight:600}.header__month{text-transform:capitalize;color:var(--color-text-muted);font-size:11px}.matrix__body{position:relative}.tree{flex:0 0 var(--mx-left-cols-w);width:var(--mx-left-cols-w);z-index:20;background:var(--color-surface);flex-direction:column;display:flex;position:sticky;top:0;left:0}.tree__skip{flex:none}.tree__row{cursor:pointer;background:var(--color-surface);display:flex;position:relative}.tree__row:hover{background:#fafbfc}.tree__row.is-selected{background:var(--color-accent-soft)}.tree__row.is-dragging{opacity:.45}.tree__main{width:auto;min-width:0;max-width:var(--mx-gutter-w);border-right:1px solid var(--color-divider);flex:1;align-items:center;gap:4px;padding-right:6px;display:flex;position:relative}.tree__drag{box-sizing:content-box;width:18px;min-width:18px;height:18px;color:var(--color-text-muted);cursor:grab;opacity:0;touch-action:none;border-radius:6px;flex:none;justify-content:center;align-items:center;margin-left:-5px;margin-right:-5px;padding:5px;font-size:14px;transition:opacity .12s;display:inline-flex}.tree__row:hover .tree__drag,.tree__row.is-selected .tree__drag,.tree__drag:focus-visible{opacity:1}.tree__drag:active{cursor:grabbing}.tree__chevron{width:20px;min-width:20px;height:20px;color:var(--color-text-secondary);border-radius:5px;flex:none;justify-content:center;align-items:center;font-size:20px;line-height:1;display:inline-flex;position:relative;overflow:visible}.tree__chevron:after{content:"";position:absolute;inset:-5px}.tree__chevron:hover{background:var(--color-surface-sunken)}.tree__chevron.is-hidden{visibility:hidden}.tree__chevron:disabled{cursor:default;background:0 0}.tree__title{white-space:normal;overflow-wrap:anywhere;flex:1;min-width:0;max-width:100%;font-size:13.5px;font-weight:400;line-height:1.45;display:block}.tree__title[data-depth="3"],.tree__title[data-depth="4"]{font-size:13px}.tree__title[data-depth="5"],.tree__title[data-depth="6"],.tree__title[data-depth="7"]{font-size:12.5px}.tree__title.is-root{white-space:normal;word-break:break-word;overflow-wrap:anywhere;font-size:17px;font-weight:700;line-height:1.25}.tree__input{border:1px solid var(--color-accent);background:#fff;border-radius:4px;flex:1;min-width:0;height:24px;padding:0 6px}.tree__actions{opacity:0;z-index:2;background:var(--color-surface);border-radius:6px;gap:6px;padding-left:6px;transition:opacity .12s;display:flex;position:absolute;top:50%;right:8px;transform:translateY(-50%)}.tree__row:hover .tree__actions,.tree__row.is-selected .tree__actions{box-shadow:-8px 0 8px -4px var(--color-surface);opacity:1}.tree__action{width:28px;min-width:28px;height:28px;color:var(--color-text-secondary);border-radius:6px;justify-content:center;align-items:center;font-size:14px;display:inline-flex}.tree__action:hover{background:var(--color-surface-sunken)}.tree__action--danger:hover{background:var(--color-danger-bg);color:var(--color-danger)}.tree__owner{flex:0 0 var(--mx-owner-w);width:var(--mx-owner-w);border-right:1px solid var(--color-border);align-items:center;padding:0 8px;display:flex}.owner-cell{text-align:left;white-space:nowrap;text-overflow:ellipsis;border-radius:4px;width:100%;height:26px;min-height:30px;padding:0 6px;font-size:12px;overflow:hidden}.owner-cell:hover{background:var(--color-surface-sunken)}.owner-cell.is-empty{color:var(--color-text-muted)}.tree__input--owner{height:26px;font-size:12px}.tree__drop-line{background:var(--color-accent);border-radius:2px;height:2px;position:absolute;top:-1px;left:8px;right:8px}.tree__drop-line--end{top:auto;bottom:-1px}.canvas-cells{left:var(--mx-left-cols-w);z-index:3;position:absolute;top:0}.canvas-cells>.row-line{left:0}.row-line{content-visibility:auto;contain-intrinsic-size:auto 44px;display:flex;position:absolute;left:0;right:0}.row-line.is-hovered{background:#fcfdfe}.row-line.is-selected{background:#1f6feb0a}.cell{z-index:1;cursor:cell;flex:none;position:relative;overflow:visible}.cell:hover{background:#1f6feb09}.cell__today{background-image:repeating-linear-gradient(to bottom, var(--color-today) 0 5px, transparent 5px 10px);opacity:.75;pointer-events:none;width:2px;position:absolute;top:0;bottom:0}.point{z-index:3;width:var(--mx-point-w,40px);height:var(--mx-point-h,20px);min-width:var(--mx-point-w,40px);letter-spacing:0;box-sizing:border-box;cursor:grab;-webkit-user-select:none;user-select:none;border-radius:10px;flex:none;justify-content:center;align-items:center;padding:0 4px;font-size:10px;font-weight:700;transition:transform .1s,box-shadow .1s;display:flex;position:absolute;box-shadow:0 1px 2px #10182833}.point:active{cursor:grabbing}.cell:hover{z-index:2}.point:hover{z-index:5;transform:scale(1.12);box-shadow:0 3px 8px #1018284d}.point.is-link-target{outline:2px dashed var(--color-accent);outline-offset:3px}.point__code{pointer-events:none;white-space:nowrap;font-family:var(--font-mono);letter-spacing:-.01em;max-width:100%;font-size:12px}.point__anchor{border:2px solid var(--color-accent);opacity:.55;background:#fff;border-radius:50%;outline:4px solid #0000;width:12px;height:12px;transition:opacity .1s,transform .1s;position:absolute;box-shadow:0 1px 3px #10182840}.point__anchor--left{top:50%;left:-9px;transform:translateY(-50%)}.point__anchor--right{top:50%;right:-9px;transform:translateY(-50%)}.point__anchor--top{top:-9px;left:50%;transform:translate(-50%)}.point__anchor--bottom{bottom:-9px;left:50%;transform:translate(-50%)}.point__note{z-index:60;color:var(--color-text-secondary);text-align:center;white-space:normal;overflow-wrap:anywhere;pointer-events:none;background:#ffffffeb;border-radius:3px;padding:1px 4px;font-size:11px;line-height:14px;position:absolute;overflow:visible}.cell__more{color:var(--color-accent);background:var(--color-accent-soft);pointer-events:none;white-space:nowrap;border:1px solid #1f6feb73;border-radius:12px;width:max-content;min-width:26px;height:24px;padding:0 8px;font-size:12px;font-weight:700;line-height:22px;position:absolute;left:auto;right:4px}.link-layer{z-index:2;left:var(--mx-left-cols-w);pointer-events:none;position:absolute;top:0;overflow:visible}.link-layer .link-hit{pointer-events:stroke}.link-group{pointer-events:none;cursor:pointer}.link-group .link-hit{pointer-events:stroke}.link-hit{fill:none;stroke:#0000;stroke-width:12px}.link-path{fill:none;stroke-width:1.5px;transition:stroke-width .12s}.link-group:hover .link-path{stroke-width:2.4px}.link-path.is-selected{stroke-width:2.6px}.link-label{fill:var(--color-text-secondary);text-anchor:middle;paint-order:stroke;stroke:#fff;stroke-width:3px;stroke-linejoin:round;pointer-events:none;font-size:11.5px;font-weight:600}.link-label--shift{fill:#c62828;stroke-width:3.5px;font-size:12px;font-weight:700}.panel{width:var(--mx-panel-w);flex:0 0 var(--mx-panel-w);background:var(--color-surface);border-left:1px solid var(--color-border);flex-direction:column;min-width:0;min-height:0;padding:12px;display:flex}.panel__head{align-items:flex-start;gap:8px;margin-bottom:4px;display:flex}.panel__title{flex-direction:column;flex:1;min-width:0;display:flex}.panel__label{text-transform:uppercase;letter-spacing:.03em;color:var(--color-text-muted);font-size:12px;font-weight:600}.panel__name{font-size:14px;font-weight:600}.panel__meta{color:var(--color-text-secondary);border-bottom:1px solid var(--color-divider);margin-bottom:8px;padding-bottom:8px;font-size:12px}.panel__text{border:1px solid var(--color-border);border-radius:var(--radius-md);resize:none;flex:1;width:100%;min-height:160px;padding:10px;font-size:13px;line-height:1.5}.panel__text:focus{border-color:var(--color-accent);outline:none;box-shadow:0 0 0 3px #1f6feb24}.panel__status{align-items:center;gap:8px;margin-top:6px;font-size:11px;display:flex}.legend{background:var(--color-surface);border-top:1px solid var(--color-border);flex:none}.legend__bar{align-items:center;gap:12px;height:44px;padding:0 12px;display:flex;position:relative}.legend__version{font-family:var(--font-mono);color:var(--color-text-muted);white-space:nowrap;pointer-events:none;z-index:1;font-size:11px;line-height:16px;position:absolute;left:50%;transform:translate(-50%)}.legend__toggle{cursor:pointer;border-radius:6px;align-items:center;gap:8px;min-height:32px;padding:0 6px;font-size:13px;font-weight:600;display:inline-flex}.legend__toggle:hover{background:var(--color-surface-sunken)}.legend__chevron{width:20px;height:20px;color:var(--color-text-secondary);justify-content:center;align-items:center;font-size:15px;display:inline-flex}.legend__preview{color:var(--color-text-secondary);gap:12px;font-size:11px;display:flex}.legend__group{align-items:center;gap:5px;display:inline-flex}.dot{border-radius:50%;width:8px;height:8px;display:inline-block}.legend__range{white-space:nowrap;gap:6px;font-size:11px;display:inline-flex}.legend__nav{gap:4px;display:inline-flex}.legend__body-version{border-top:1px solid var(--color-divider);font-family:var(--font-mono);color:var(--color-text-muted);text-align:center;grid-column:1/-1;margin-top:4px;padding-top:8px;font-size:11px}.legend__body{border-top:1px solid var(--color-divider);grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;max-height:180px;padding:8px 12px 14px;display:grid;overflow:auto}.legend__col-title{text-transform:uppercase;letter-spacing:.03em;color:var(--color-text-secondary);align-items:center;gap:6px;margin-bottom:6px;font-size:11px;font-weight:700;display:flex}.legend__col ul{flex-direction:column;gap:4px;margin:0;padding:0;list-style:none;display:flex}.legend__col li{align-items:center;gap:8px;font-size:12px;display:flex}.legend__code{text-align:center;border-radius:9px;flex:none;min-width:44px;padding:1px 6px;font-size:10px;font-weight:700}.legend__full{color:var(--color-text-secondary);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.overlay-backdrop{z-index:250;background:0 0;position:fixed;inset:0}.popover{z-index:260;box-sizing:border-box;overscroll-behavior:contain;background:var(--color-surface);border-radius:var(--radius-lg);width:320px;max-height:calc(100vh - 16px);box-shadow:var(--shadow-lg);border:1px solid var(--color-border);padding:14px;position:fixed;overflow-y:auto}.popover__head{justify-content:space-between;align-items:center;margin-bottom:12px;display:flex}.popover__title{font-size:15px;font-weight:600}.popover__footer{border-top:1px solid var(--color-divider);flex-wrap:wrap;align-items:center;gap:8px;margin-top:4px;padding:10px 0 2px;display:flex}.popover__footer .btn{text-overflow:ellipsis;min-width:0;max-width:100%;overflow:hidden}.popover__footer .spacer{flex:1 1 0;min-width:0}.input--date{min-height:30px;color:var(--color-text-secondary);margin-top:4px;font-size:12px}.field__hint--warn{color:var(--color-warning);background:var(--color-warning-bg);border-radius:4px;padding:4px 6px}.linklike{color:var(--color-accent);font-weight:600;text-decoration:underline}.chips{flex-wrap:wrap;gap:4px;display:flex}.chip{border:1px solid var(--color-border);background:var(--color-surface);border-radius:13px;height:26px;padding:0 8px;font-size:12px}.chip.is-active{background:var(--color-accent-soft);border-color:var(--color-accent);color:var(--color-accent);font-weight:600}.toggle{align-items:center;gap:8px;margin-bottom:8px;font-size:12px;display:flex}.link-card{background:var(--color-surface-sunken);border-radius:var(--radius-md);margin-bottom:12px;padding:8px;font-size:12px}.link-card__row+.link-card__row{margin-top:4px}.link-card__warn{border-left:3px solid var(--color-danger,#c62828);background:var(--color-danger-bg,#fdecea);color:var(--color-danger,#a01f1f);border-radius:6px;margin-top:8px;padding:6px 8px;font-size:11px;line-height:1.4}.link-card__warn strong{font-weight:700}.anchor-menu{z-index:270;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);width:180px;box-shadow:var(--shadow-lg);padding:6px;position:fixed}.anchor-menu__title{color:var(--color-text-muted);padding:4px 8px 6px;font-size:11px}.anchor-menu__item{text-align:left;border-radius:4px;width:100%;padding:6px 8px;font-size:12px;display:block}.anchor-menu__item:hover{background:var(--color-accent-soft);color:var(--color-accent)}.link-mode{display:none}.link-mode.is-active{z-index:240;pointer-events:none;display:block;position:fixed;inset:0}.link-mode__bar{pointer-events:none;color:#fff;pointer-events:all;box-shadow:var(--shadow-lg);background:#1a202c;border-radius:999px;align-items:center;gap:12px;padding:8px 12px;font-size:12px;display:flex;position:absolute;top:12px;left:50%;transform:translate(-50%)}.link-mode__anchors{gap:4px;display:flex}.link-mode__anchors .chip{color:#fff;background:0 0;border-color:#ffffff59;height:22px;padding:0 7px}.link-mode__anchors .chip.is-active{color:#1a202c;background:#fff}.link-mode__hit{pointer-events:none;cursor:crosshair;position:absolute;inset:0}@media (width<=1440px){.tile__menu{opacity:1}}.grid-ruler{left:var(--mx-left-cols-w);pointer-events:none;position:absolute;top:0}.ruler-line{stroke:#e9edf2;stroke-width:1px;shape-rendering:crispedges}.ruler-line--quarter{stroke:#d5dbe3;stroke-width:1px}.ruler-line--horizontal{stroke:#f2f4f7;stroke-width:1px;shape-rendering:crispedges}.point__date{font-family:var(--font-mono);z-index:60;font-variant-numeric:tabular-nums;text-align:center;white-space:nowrap;color:var(--color-text-muted);pointer-events:none;-webkit-user-select:none;user-select:none;font-size:11px;font-weight:600;line-height:14px;position:absolute;overflow:visible}@media (width<=1440px){:root{--mx-gutter-w:212px;--mx-owner-w:130px;--mx-left-cols-w:342px;--mx-panel-w:260px}}@media (width<=1100px){:root{--mx-gutter-w:184px;--mx-owner-w:110px;--mx-left-cols-w:294px;--mx-panel-w:220px}}@media (width<=900px){:root{--mx-gutter-w:168px;--mx-owner-w:0px;--mx-left-cols-w:168px;--mx-panel-w:0px}.header__owner,.tree__owner,.workspace__main>.panel{display:none}}.panel__grabber{display:none}.panel__grabber-bar{background:#3c3c434d;border-radius:2px;width:36px;height:4px;display:block}.tree__hidden-badge{background:var(--color-accent-soft);color:var(--color-accent-strong,#1b4bb3);font-variant-numeric:tabular-nums;white-space:nowrap;pointer-events:none;border-radius:999px;flex:none;margin-left:2px;padding:1px 6px;font-size:11px;font-weight:600;line-height:16px}.tree__chevron.is-collapsed{background:var(--color-accent-soft);color:var(--color-accent-strong,#1b4bb3)}.tree__row.is-collapsed-branch{background:#f7f9fc}.tree__row.is-collapsed-branch .tree__main{box-shadow:inset 2px 0 0 var(--color-accent)}.owner-cell--static{cursor:default;align-items:center;display:flex}.owner-cell--static:hover{background:0 0}.tree__rules{pointer-events:none;z-index:2;position:absolute;inset:0}.tree__row{position:relative}.link-preview{width:100%;height:32px;margin-top:6px;display:block}.color-row{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.color-swatch{border:2px solid #0000;border-radius:50%;width:22px;height:22px;transition:transform .1s,box-shadow .1s;box-shadow:inset 0 0 0 1px #0000001f}.color-swatch:hover{transform:scale(1.12)}.color-swatch.is-active{border-color:var(--color-text);box-shadow:inset 0 0 0 2px #fff}.color-custom{border:1px dashed var(--color-border-strong);width:22px;height:22px;color:var(--color-text-muted);cursor:pointer;border-radius:50%;justify-content:center;align-items:center;font-size:12px;display:inline-flex;position:relative;overflow:hidden}.color-custom input[type=color]{opacity:0;cursor:pointer;position:absolute;inset:0}.link-drag-layer{z-index:500;pointer-events:none;width:1px;height:1px;position:fixed;top:0;left:0;overflow:visible}.link-drag-path{fill:none;stroke:var(--color-accent);stroke-width:2px;stroke-dasharray:7 4;filter:drop-shadow(0 1px 2px #10182840)}.link-drag-start{fill:#fff;stroke:var(--color-accent);stroke-width:2px}.link-drag-end{fill:var(--color-accent);fill-opacity:.25;stroke:var(--color-accent);stroke-width:2px}.link-drag-hint{font-family:var(--font-ui);color:#fff;white-space:nowrap;background:#1a202c;border-radius:999px;padding:4px 9px;font-size:11px;font-weight:600;display:inline-block}.point__anchor{cursor:crosshair;transition:opacity .1s,transform .1s,background .1s}.point:hover .point__anchor,.point:focus-within .point__anchor,.point.is-link-target .point__anchor{opacity:1}.point__anchor--left:hover,.point__anchor--right:hover{background:var(--color-accent);transform:translateY(-50%)scale(1.25)}.point__anchor--top:hover,.point__anchor--bottom:hover{transform:translate(-50%)scale(1.25)}.point__anchor{z-index:4;outline:none}.point__anchor.is-interactive{pointer-events:auto}.anchor-handle{z-index:40;width:14px;height:14px;box-shadow:none;cursor:crosshair;opacity:1;touch-action:none;background:0 0;border:0;border-radius:50%;outline:none;justify-content:center;align-items:center;transition:transform .1s,background .1s;display:flex;position:absolute}.anchor-handle:before{content:"";border:2px solid var(--color-accent);pointer-events:none;background:#fff;border-radius:50%;width:6px;height:6px;box-shadow:0 1px 3px #1018284d}.anchor-handle:hover:before{background:var(--color-accent);transform:scale(1.25)}.anchor-handle[data-link-target="1"]:before{background:var(--color-accent);border-color:#fff;width:16px;height:16px;transform:scale(1);box-shadow:0 0 0 4px #1f6feb40}.link-drag-hint{pointer-events:none}.link-hit{pointer-events:stroke}.status-row{flex-direction:column;gap:6px;display:flex}.status-pill{border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);text-align:left;align-items:center;gap:8px;height:32px;padding:0 10px;font-size:12px;transition:border-color .12s,background .12s;display:flex}.status-pill:hover{border-color:var(--pill-color)}.status-pill.is-active{border-color:var(--pill-color);background:color-mix(in srgb, var(--pill-color) 10%, #fff);font-weight:600}.status-pill__dot{background:var(--pill-color);border-radius:50%;flex:none;width:10px;height:10px}.shift-box{border:1px dashed var(--color-border-strong);border-radius:var(--radius-md);margin:4px 0 10px;padding:10px}.shift-box.is-open{border-style:solid;border-color:var(--color-danger);background:var(--color-danger-bg)}.shift-box__hint{color:var(--color-text-secondary);margin:4px 0 8px;font-size:11px;line-height:1.45}.point.is-superseded{opacity:.95;cursor:pointer;box-shadow:0 0 0 2px #c6282840,0 1px 2px #10182833}.cell__more{z-index:30;color:var(--color-accent);background:var(--color-accent-soft);cursor:pointer;pointer-events:auto;border:1px solid #1f6feb73;border-radius:8px;padding:0 6px;font-size:10px;font-weight:700;line-height:15px;position:absolute}.cell__more:hover{background:#dbe8ff}.cell__more-list{z-index:60;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);min-width:210px;max-width:300px;max-height:220px;box-shadow:var(--shadow-lg);cursor:default;padding:6px;position:absolute;bottom:4px;left:50%;overflow:auto;transform:translate(-50%)}.cell__more-head{color:var(--color-text-secondary);justify-content:space-between;align-items:center;padding:2px 4px 6px;font-size:11px;font-weight:600;display:flex}.cell__more-list ul{flex-direction:column;gap:2px;margin:0;padding:0;list-style:none;display:flex}.cell__more-item{text-align:left;border-radius:4px;align-items:center;gap:6px;width:100%;padding:3px 4px;font-size:11px;display:flex}.cell__more-item:hover{background:var(--color-surface-sunken)}.cell__more-date{font-variant-numeric:tabular-nums;color:var(--color-text)}.cell__more-comm{color:var(--color-text-muted);flex:1;min-width:0;font-size:10px}.milestone-ghost{z-index:600;background:var(--color-accent);color:#fff;box-shadow:var(--shadow-lg);pointer-events:none;white-space:nowrap;border-radius:9px;align-items:center;gap:6px;padding:2px 8px;font-size:10px;font-weight:700;display:inline-flex;position:fixed}.milestone-ghost__date{opacity:.9;font-weight:600}.popover__footer .btn--icon{justify-content:center;width:32px;padding:0}.link-arrow-layer{z-index:4;left:var(--mx-left-cols-w);pointer-events:none;position:absolute;top:0;overflow:visible}.link-arrow-head{stroke:none;fill:none}.date-field{align-items:stretch;display:flex;position:relative}.date-field__text{flex:1;min-width:0;padding-right:34px}.date-field__icon{cursor:pointer;border-radius:0 var(--radius-md) var(--radius-md) 0;width:32px;color:var(--color-text-secondary);justify-content:center;align-items:center;transition:background .12s;display:inline-flex;position:absolute;top:0;bottom:0;right:0}.date-field__icon:after{content:"";position:absolute;inset:-6px -6px -6px 0}.date-field__icon:hover,.date-field__icon:focus-within{background:var(--color-surface-sunken);color:var(--color-text)}.date-field__glyph{pointer-events:none;width:16px;height:16px;display:inline-flex}.date-field__glyph svg{display:block}.date-field__icon:has(input:disabled){opacity:.5;cursor:default}.date-field__btn{border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);cursor:pointer;flex:none;justify-content:center;align-items:center;width:36px;font-size:15px;line-height:1;display:inline-flex;position:relative}.date-field__btn:hover{background:var(--color-surface-sunken);border-color:var(--color-border-strong)}.date-field__native{opacity:0;cursor:pointer;border:none;width:100%;height:100%;position:absolute;inset:0}.tree__chevron:hover{background:var(--color-surface-sunken);color:var(--color-text)}.legend__chevron{width:18px;color:var(--color-text-secondary);justify-content:center;align-items:center;font-size:15px;line-height:1;display:inline-flex}.point__date,.point__note{z-index:60}.shift-box__warn{color:var(--color-warning);background:var(--color-warning-bg);border-radius:4px;margin:0 0 8px;padding:6px 8px;font-size:11px;line-height:1.4}body.is-dragging-milestone .anchor-handle{opacity:0!important;pointer-events:none!important}.legend__outside{border:1px solid var(--color-warning);background:var(--color-warning-bg);height:28px;color:var(--color-warning);white-space:nowrap;border-radius:12px;padding:0 10px;font-size:11px;font-weight:600}.legend__outside:hover{background:#ffe9c7}.legend__outside-group{align-items:center;gap:4px;display:inline-flex}.legend__outside-label{color:var(--color-warning);white-space:nowrap;font-size:11px;font-weight:600}.legend__outside--side{font-variant-numeric:tabular-nums;min-width:34px;padding:0 7px}.app-loading{min-height:100vh;color:var(--color-text-muted,#6b7a8f);place-items:center;font-size:13px;display:grid}.login{background:linear-gradient(160deg,#f5f8fc 0%,#eef3f9 100%);place-items:center;min-height:100vh;padding:24px;display:grid}.login__card{background:#fff;border-radius:14px;flex-direction:column;gap:14px;width:100%;max-width:380px;padding:28px;display:flex;box-shadow:0 10px 40px #172b4d1a}.login__brand{align-items:center;gap:12px;margin-bottom:6px;display:flex}.login__logo{color:#1f6feb;background:#e8f0fb;border-radius:10px;place-items:center;width:40px;height:40px;font-size:20px;display:grid}.login__title{margin:0;font-size:17px;font-weight:650}.login__subtitle{color:var(--color-text-muted,#6b7a8f);margin:2px 0 0;font-size:12px}.login__field{flex-direction:column;gap:5px;display:flex}.login__label{color:#46536b;font-size:11.5px;font-weight:600}.login__input{border:1px solid #d5dde8;border-radius:8px;height:34px;padding:0 10px;font-family:inherit;font-size:13px}.login__input:focus{border-color:#1f6feb;outline:none;box-shadow:0 0 0 3px #1f6feb1f}.login__submit{height:36px;margin-top:4px}.login__error{color:#b3261e;background:#fdecea;border-radius:8px;padding:8px 10px;font-size:12px}.login__hint{color:var(--color-text-muted,#6b7a8f);margin:0;font-size:11px;line-height:1.5}.user-menu{margin-left:4px;position:relative}.user-menu__button{cursor:pointer;background:#fff;border:1px solid #d5dde8;border-radius:15px;align-items:center;gap:7px;height:30px;padding:0 10px 0 4px;font-size:12px;display:inline-flex}.user-menu__button:hover{background:#f5f8fc}.user-menu__avatar{color:#fff;background:#1f6feb;border-radius:50%;place-items:center;width:22px;height:22px;font-size:10px;font-weight:700;display:grid}.user-menu__name{text-overflow:ellipsis;white-space:nowrap;max-width:140px;font-weight:550;overflow:hidden}.user-menu__role{color:var(--color-text-muted,#6b7a8f);font-size:11px}.user-menu__backdrop{z-index:90;position:fixed;inset:0}.user-menu__pop{z-index:91;background:#fff;border:1px solid #e1e7f0;border-radius:10px;min-width:210px;padding:6px;position:absolute;top:calc(100% + 6px);right:0;box-shadow:0 12px 32px #172b4d29}.user-menu__head{border-bottom:1px solid #eef2f7;margin-bottom:4px;padding:8px 10px 10px}.user-menu__fullname{font-size:12.5px;font-weight:600}.user-menu__login{color:var(--color-text-muted,#6b7a8f);font-size:11px}.user-menu__item{text-align:left;cursor:pointer;background:0 0;border:0;border-radius:7px;width:100%;padding:8px 10px;font-family:inherit;font-size:12.5px;display:block}.user-menu__item:hover{background:#f2f6fb}.user-menu__item--danger{color:#b3261e}.modal-backdrop{z-index:200;background:#172b4d52;place-items:center;padding:24px;display:grid;position:fixed;inset:0}.modal{background:#fff;border-radius:14px;flex-direction:column;width:100%;max-width:720px;max-height:86vh;display:flex;overflow:hidden;box-shadow:0 20px 60px #172b4d47}.modal__head{border-bottom:1px solid #eef2f7;justify-content:space-between;align-items:center;padding:16px 20px;display:flex}.modal__title{margin:0;font-size:15px;font-weight:650}.users-modal__body{flex-direction:column;gap:16px;padding:16px 20px 20px;display:flex;overflow:auto}.users-table{border-collapse:collapse;width:100%;font-size:12.5px}.users-table th{text-align:left;color:var(--color-text-muted,#6b7a8f);border-bottom:1px solid #eef2f7;padding:6px 8px;font-size:11px;font-weight:600}.users-table td{vertical-align:middle;border-bottom:1px solid #f4f7fb;padding:7px 8px}.users-table tr.is-disabled td{color:#9aa7b8}.users-table__login{color:#46536b;font-family:ui-monospace,SFMono-Regular,monospace;font-size:11.5px}.users-table__login-btn{font:inherit;color:inherit;cursor:pointer;text-align:left;background:0 0;border:1px solid #0000;border-radius:4px;margin:-2px -4px;padding:2px 4px}.users-table__login-btn:hover{border-color:var(--color-border);background:var(--color-surface-sunken)}.users-table__login-btn:focus-visible{outline-offset:1px;outline:2px solid #1f6feb59}.users-table__login-input{border:1px solid var(--color-accent);background:#fff;border-radius:4px;width:100%;min-width:90px;padding:2px 6px;font-family:ui-monospace,SFMono-Regular,monospace;font-size:11.5px}.users-table__self{color:#1f6feb;background:#e8f0fb;border-radius:8px;margin-left:6px;padding:1px 5px;font-size:10px;font-weight:600}.users-table__role{background:#fff;border:1px solid #d5dde8;border-radius:7px;height:26px;padding:0 6px;font-family:inherit;font-size:12px}.users-table__status{color:#9aa7b8;cursor:pointer;background:#fff;border:1px solid #d5dde8;border-radius:10px;padding:2px 8px;font-size:11px}.users-table__status.is-on{color:#2e7d32;background:#eefaf2;border-color:#bfe3cb}.users-modal__pwd{background:#f5f8fc;border-radius:9px;flex-wrap:wrap;align-items:center;gap:8px;padding:10px 12px;font-size:12px;display:flex}.users-modal__pwd .login__input{width:190px}.users-modal__warn{color:#b26a00;font-size:11px}.users-modal__subtitle{margin:0 0 8px;font-size:13px;font-weight:600}.users-modal__add{border-top:1px solid #eef2f7;padding-top:14px}.users-modal__grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-bottom:10px;display:grid}.btn--sm{height:28px;padding:0 11px;font-size:12px}.btn--icon{justify-content:center;align-items:center;width:28px;min-width:28px;height:28px;padding:0;display:inline-flex}.projects-login{flex:none}.login__back{z-index:5;color:#46536b;cursor:pointer;background:#fff;border:1px solid #d5dde8;border-radius:8px;padding:6px 12px;font-family:inherit;font-size:12px;position:fixed;top:16px;left:20px}.login__back:hover{background:#f5f8fc}.tile__visibility{color:#5f6e82;background:#f0f3f8;border-radius:9px;padding:2px 8px;font-size:12px;font-weight:600}.tile__visibility.is-public{color:#2e7d32;background:#eefaf2}.tile__owner{color:var(--color-text-muted,#6b7a8f)}.tile__date{margin-left:auto}.tile__meta{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.access-modal{max-width:620px}.access-modal__body{flex-direction:column;gap:18px;padding:16px 20px;display:flex;overflow:auto}.access-mode{border:0;flex-direction:column;gap:8px;margin:0;padding:0;display:flex}.access-mode__legend{color:#46536b;padding:0 0 6px;font-size:11.5px;font-weight:600}.access-mode__option{cursor:pointer;border:1px solid #e1e7f0;border-radius:10px;gap:10px;padding:11px 13px;display:flex}.access-mode__option.is-active{background:#f5f9ff;border-color:#1f6feb}.access-mode__option input{margin-top:2px}.access-mode__option strong{font-size:12.5px;font-weight:600;display:block}.access-mode__option em{color:var(--color-text-muted,#6b7a8f);margin-top:2px;font-size:11.5px;font-style:normal;line-height:1.45;display:block}.access-members__title{align-items:center;gap:8px;margin:0 0 8px;font-size:12.5px;font-weight:600;display:flex}.access-members__count{color:#1f6feb;background:#e8f0fb;border-radius:9px;padding:1px 7px;font-size:10.5px}.access-members__list{flex-direction:column;gap:4px;max-height:260px;margin:0;padding:0;list-style:none;display:flex;overflow:auto}.access-member{border-radius:8px;justify-content:space-between;align-items:center;gap:10px;padding:7px 10px;display:flex}.access-member.is-on{background:#f7faff}.access-member__who{cursor:pointer;align-items:center;gap:8px;font-size:12.5px;display:flex}.access-member__login{color:var(--color-text-muted,#6b7a8f);font-family:ui-monospace,SFMono-Regular,monospace;font-size:11px}.segmented--sm .segmented__btn{height:30px;padding:0 11px;font-size:12.5px}.access-members__empty{color:var(--color-text-muted,#6b7a8f);padding:10px 2px;font-size:12px}.access-modal__saved{color:#2e7d32;background:#eefaf2;border-radius:8px;padding:7px 11px;font-size:12px}.modal__foot{border-top:1px solid #eef2f7;justify-content:flex-end;gap:8px;padding:12px 20px;display:flex}.point.is-readonly{cursor:default}.point.is-readonly:hover{filter:none}.login__tabs{background:#f0f3f8;border-radius:9px;gap:4px;margin-bottom:2px;padding:3px;display:flex}.login__tab{color:#5b6b83;cursor:pointer;background:0 0;border:0;border-radius:7px;flex:1;height:30px;font-family:inherit;font-size:12.5px;font-weight:550}.login__tab.is-active{color:#1f2d3d;background:#fff;box-shadow:0 1px 3px #172b4d1f}.login__tab:hover:not(.is-active){color:#1f2d3d}button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,[role=button]:focus-visible,[tabindex="0"]:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px}.point:focus-visible{outline:3px solid var(--color-accent);outline-offset:2px;z-index:6}.sp__labelrow{justify-content:space-between;align-items:baseline;margin-bottom:4px;display:flex}.sp__counter{color:var(--color-text-muted);font-variant-numeric:tabular-nums;font-size:11px}.sp{flex-direction:column;display:flex}.sp__section+.sp__section{margin-top:10px}.sp__head{align-items:center;gap:6px;height:16px;margin-bottom:6px;display:flex}.sp__bar{border-radius:2px;flex:none;width:4px;height:12px}.sp__title{letter-spacing:.02em;text-transform:uppercase;color:var(--color-text-secondary);font-size:11px;font-weight:700}.sp__count{color:var(--color-text-muted);font-variant-numeric:tabular-nums;margin-left:auto;font-size:10.5px}.sp__grid{grid-template-columns:repeat(5,max-content);justify-content:start;gap:6px;display:grid}.sp-chip{background:var(--chip-bg);min-width:50px;height:17px;color:var(--chip-fg);cursor:pointer;border:1.5px solid #0000;border-radius:9px;flex-direction:row;justify-content:center;align-items:center;gap:0;padding:0 7px;font-family:inherit;transition:transform .1s,box-shadow .1s;display:inline-flex;position:relative}@media (hover:hover){.sp-chip:hover{transform:translateY(-1px);box-shadow:0 3px 8px #10182838}}.sp-chip:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px}.sp-chip__code{letter-spacing:-.005em;white-space:nowrap;font-size:11px;font-weight:700;line-height:12px}.sp-chip__name{text-transform:none;letter-spacing:0;opacity:.9;white-space:nowrap;text-overflow:ellipsis;max-width:100%;font-size:9px;font-weight:500;line-height:11px;overflow:hidden}.sp-chip.is-selected{box-shadow:0 0 0 2px var(--chip-bg), 0 2px 6px #10182840;border-color:#fff}.sp-chip.is-selected:after{content:"✓";color:#fff;text-align:center;background:#1a202c;border-radius:50%;width:16px;height:16px;font-size:10px;font-weight:700;line-height:16px;position:absolute;top:-7px;right:-6px}.sp-chip.has-same .sp-chip__dot{background:#1a202c;border:1.5px solid #fff;border-radius:50%;width:8px;height:8px;position:absolute;top:-3px;left:-3px}.sp__summary{min-height:18px;color:var(--color-text-muted);margin-top:8px;font-size:11.5px;line-height:18px}.sp__summary strong{color:var(--color-text);font-weight:600}.popover .sp-chip[disabled],.popover.is-readonly .sp-chip{cursor:default}.popover .textarea{min-height:56px}.popover .status-row{grid-template-columns:repeat(3,minmax(0,1fr));gap:4px;display:grid}.popover .status-row .status-pill{justify-content:center;gap:4px;height:auto;min-height:32px;padding:4px;font-size:11px}.popover .status-row .status-pill__dot{flex:none;width:8px;height:8px}.popover .status-row .status-pill.is-active .status-pill__dot{box-shadow:0 0 0 2px var(--color-surface), 0 0 0 3.5px var(--pill-color)}.popover .status-row .status-pill.is-active{box-shadow:inset 0 0 0 1.5px var(--pill-color)}.status-pill__text{text-align:left;flex-direction:column;align-items:flex-start;gap:1px;min-width:0;font-size:11px;line-height:13px;display:flex}.popover .status-row .status-pill__text{-webkit-hyphens:manual;hyphens:manual;word-break:keep-all;overflow-wrap:normal}.owner-filter{width:100%;position:relative}.owner-filter__btn{cursor:pointer;text-align:left;background:0 0;border:0;border-radius:6px;align-items:center;gap:6px;width:100%;padding:2px 4px;font-family:inherit;display:flex}.owner-filter__btn:hover{background:var(--color-surface-sunken)}.owner-filter__btn.is-active{background:var(--color-accent-soft)}.owner-filter__btn.is-active .header__caption{color:var(--color-accent)}.owner-filter__caret{color:var(--color-text-muted);margin-left:auto;font-size:10px}.owner-filter__badge{background:var(--color-accent);color:#fff;text-align:center;border-radius:8px;min-width:16px;height:16px;margin-left:auto;padding:0 4px;font-size:10px;font-weight:700;line-height:16px}.owner-filter__pop{z-index:120;border:1px solid var(--color-border);width:220px;box-shadow:var(--shadow-lg);background:#fff;border-radius:10px;padding:8px;position:absolute;top:calc(100% + 4px);left:0}.owner-filter__head{color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.02em;justify-content:space-between;align-items:center;padding:2px 4px 6px;font-size:11px;font-weight:600;display:flex}.owner-filter__list{max-height:240px;margin:0;padding:0;list-style:none;overflow:auto}.owner-filter__item{cursor:pointer;border-radius:6px;align-items:center;gap:8px;padding:6px;font-size:12.5px;display:flex}.owner-filter__item:hover{background:var(--color-surface-sunken)}.owner-filter__item.is-on{background:var(--color-accent-soft)}.owner-filter__item input{flex:none;width:15px;height:15px;margin:0}.owner-filter__name{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.owner-filter__empty{color:var(--color-text-muted);padding:8px 6px;font-size:12px}.owner-filter__foot{border-top:1px solid var(--color-divider);color:var(--color-text-muted);margin-top:6px;padding-top:6px;font-size:11.5px}.users-table__danger{color:var(--color-danger);margin-left:4px}.users-table__danger:hover{background:var(--color-danger-bg)}@media (width<=1100px){.workspace__main>.panel,.panel{z-index:40;border-left:none;border-top:1px solid var(--color-border);border-radius:14px 14px 0 0;flex:none;width:100%;max-width:100%;max-height:60vh;display:flex;position:fixed;inset:auto 0 0;box-shadow:0 -8px 24px #10182829}.panel.panel--hidden{display:none}.panel__close{flex:none;justify-content:center;align-items:center;width:44px;min-width:44px;height:44px;display:inline-flex}}@media (width<=900px){.legend__version{display:none}.legend__bar{flex-wrap:wrap;align-items:center;gap:4px 8px;height:auto;min-height:44px;padding:6px 10px;display:flex}.legend__toggle{flex:auto;min-width:0}.legend__nav{flex:none}.legend__range{white-space:nowrap;flex:100%;order:3;font-size:11px}.legend__preview{flex:100%;order:4;min-width:0;overflow:hidden}}@media (width<=640px){.projects-header{flex-wrap:wrap;gap:10px;padding:12px 14px}.projects-header__brand{flex:auto;min-width:0}.projects-header__title{font-size:16px}.projects-header__sub{display:none}.projects-toolbar{flex-wrap:wrap;flex:100%;order:3;gap:8px}.search{flex:100%;min-width:0}.search .input,.search__input{width:100%;min-width:0}.projects-toolbar .segmented{flex:0 auto;min-width:0}.projects-toolbar .btn--primary{margin-left:auto}.projects-body{padding:14px}.tiles{grid-template-columns:minmax(0,1fr)}.tile{min-width:0;max-width:100%;overflow:hidden}.tile__name,.tile__desc,.ellipsis{text-overflow:ellipsis;white-space:nowrap;flex:auto;min-width:0;max-width:100%;overflow:hidden}.tile__top{flex-wrap:wrap;gap:6px;min-width:0}.tile__menu{opacity:1;flex:none;margin-left:auto}.tile__meta{flex-wrap:wrap;row-gap:4px}.ws-header{flex-wrap:wrap;gap:6px;height:auto;min-height:0;padding:8px 10px}.ws-header__title{flex:100%;order:2}.ws-header__name{font-size:15px}.ws-header__tools{flex-wrap:wrap;flex:100%;order:3;gap:6px}.legend__bar{grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"toggle nav""range range";align-items:center;gap:4px 8px;max-width:100%;height:auto;min-height:44px;padding:6px 10px;display:grid;overflow:visible}.legend__toggle{white-space:nowrap;text-overflow:ellipsis;grid-area:toggle;min-width:0;padding:0 4px;font-size:12.5px;overflow:hidden}.legend__nav{flex:none;grid-area:nav;gap:3px}.legend__nav .btn{min-height:30px;padding:0 8px;font-size:12px}.legend__range{white-space:nowrap;text-overflow:ellipsis;grid-area:range;gap:4px;font-size:11px;overflow:hidden}.legend:not(.is-open) .legend__preview,.legend:not(.is-open) .legend__outside-group,.legend:not(.is-open) .spacer{display:none}.legend:not(.is-open) .legend__range{display:flex}.legend__body{grid-template-columns:minmax(0,1fr);gap:10px;max-height:45vh;padding:8px 12px 12px}.legend:not(.is-open) .legend__bar{min-height:40px}.legend__body{max-height:160px}.legend__range{font-size:12px}.legend__nav button,.legend__btn{min-width:36px;min-height:32px}.workspace__main>.panel,.panel{z-index:40;will-change:transform;border-left:none;border-top:1px solid var(--color-border);width:100%;max-height:60vh;padding:10px 12px calc(10px + env(safe-area-inset-bottom,0px));border-radius:14px 14px 0 0;flex:none;transition:transform .22s cubic-bezier(.22,.61,.36,1);display:flex;position:fixed;bottom:0;left:0;right:0;box-shadow:0 -8px 24px #10182829}.workspace__main>.panel.panel--hidden,.panel.panel--hidden{display:none}.panel__grabber{touch-action:none;cursor:grab;flex:none;justify-content:center;align-items:flex-start;height:20px;margin:-4px -12px 0;padding-top:8px;display:flex}.panel:not(.is-dragging) .panel__grabber{transition:none}.panel__close{width:44px;min-width:44px;height:44px;color:var(--color-text-secondary);flex:none;justify-content:center;align-items:center;font-size:16px;display:inline-flex}.panel__actions{flex-wrap:wrap;gap:6px;margin:8px 0 4px;display:flex}.panel__actions .btn{flex:auto;min-width:0;min-height:44px}.panel__text{min-height:84px}.tree__drag{display:none}:root{--mx-gutter-w:148px;--mx-left-cols-w:148px}.tree__row{min-height:44px}.tree__main{gap:2px;padding-right:4px}.tree__chevron{width:24px;min-width:24px;height:24px;font-size:20px;line-height:.9;position:relative}.tree__chevron:after{content:"";position:absolute;inset:-10px}.tree__title{font-size:13px;line-height:1.35}.tree__title.is-root{font-size:15px;line-height:1.25}.tree__title[data-depth="3"],.tree__title[data-depth="4"],.tree__title[data-depth="5"],.tree__title[data-depth="6"],.tree__title[data-depth="7"]{font-size:12.5px}.tree__hidden-badge{padding:0 5px;font-size:10.5px;line-height:15px}.tree__actions{display:none}.ws-header__range{font-size:11px}.popover,.access-modal,.users-modal,.dialog{max-width:calc(100vw - 20px);max-height:calc(100vh - 24px);overflow-y:auto;width:calc(100vw - 20px)!important}.dialog{max-height:calc(100dvh - 24px)}.dialog__footer{flex-wrap:wrap}.dialog__footer .btn{flex:auto;min-width:0;min-height:36px}.dialog .segmented,.popover .segmented{flex-wrap:wrap;min-width:0;max-width:100%}.dialog .segmented__btn,.popover .segmented__btn{flex:0 auto;min-width:0}.popover.popover--sheet{width:auto;min-width:100%;max-width:100%;padding:0 0 calc(10px + env(safe-area-inset-bottom,0px));overscroll-behavior:contain;border-radius:16px 16px 0 0;max-height:78vh;inset:auto 0 0;overflow-y:auto;box-shadow:0 -10px 28px #1018282e}.popover--sheet>:not(.popover__head){margin-left:16px;margin-right:16px}.popover--sheet .popover__head{z-index:2;background:var(--color-surface);border-bottom:1px solid var(--color-divider);margin:0;padding:10px 16px 8px;position:sticky;top:0}.popover__grabber{background:#3c3c434d;border-radius:2px;flex:none;width:36px;height:4px;margin:0 auto 6px;display:block}.popover--sheet .popover__head{flex-wrap:wrap}.popover--sheet .popover__title{order:2;font-size:16px}.popover--sheet .popover__head .btn{order:3;width:44px;min-width:44px;height:44px;margin-left:auto}.popover__grabber{flex:100%;order:1}.popover--sheet .field{margin-top:10px}.popover--sheet .sp{overscroll-behavior:contain;max-height:34vh;padding-right:2px;overflow-y:auto}.popover--sheet .sp__grid{grid-template-columns:repeat(3,max-content);justify-content:start;gap:5px}.popover--sheet .sp-chip{height:17px;padding:0 4px}.popover--sheet .sp-chip__code{font-size:11px}.popover--sheet .sp-chip__name{font-size:8.5px;line-height:10px}.popover--sheet .sp__summary{margin-top:6px;font-size:11px}.popover__more{border-top:1px solid var(--color-divider);width:auto;min-height:40px;color:var(--color-text-secondary);text-align:left;align-self:stretch;align-items:center;margin-top:10px;padding:0 4px;font-size:13px;font-weight:600;display:flex}.popover--sheet .popover__footer{z-index:2;background:var(--color-surface);border-top:1px solid var(--color-divider);gap:8px;margin:10px 0 0;padding:10px 16px 4px;position:sticky;bottom:0}.popover--sheet .popover__footer .btn{min-height:44px;font-size:14px}.popover--sheet .popover__footer .btn--primary{flex:auto}.popover--sheet .popover__footer .btn--icon{width:44px;min-width:44px;height:44px}.popover--sheet .status-row{grid-template-columns:repeat(3,minmax(0,1fr));gap:4px;display:grid}.popover--sheet .status-pill{min-height:36px}.popover--sheet .textarea{min-height:64px}.users-modal__body{overflow-x:auto}.users-table{min-width:480px}.users-modal__grid{grid-template-columns:minmax(0,1fr)}}@media (width<=420px){.projects-header__title{font-size:15px}.tile__stats{font-size:11.5px}.sp__grid{grid-template-columns:repeat(2,minmax(0,1fr))}}.stats-modal{max-width:600px}.stats-modal__head-actions{align-items:center;gap:10px;display:flex}.stats-modal__asof{color:var(--color-text-muted,#6b7a8f);font-size:11.5px}.stats-modal__body{flex-direction:column;gap:18px;padding:16px 20px 20px;display:flex;overflow:auto}.stats-block__title{letter-spacing:.04em;text-transform:uppercase;color:var(--color-text-muted,#6b7a8f);margin:0 0 10px;font-size:11px;font-weight:700}.stats-hero{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;display:grid}.stat-hero{background:var(--color-surface);border:1px solid #eef2f7;border-radius:12px;flex-direction:column;gap:2px;min-width:0;padding:14px 16px;display:flex}.stat-hero--accent{background:var(--color-accent-soft,#eff5ff);border-color:#1f6feb40}.stat-hero__value{font-variant-numeric:tabular-nums;color:var(--color-text);font-size:32px;font-weight:700;line-height:1.05}.stat-hero--accent .stat-hero__value{color:var(--color-accent)}.stat-hero__of{color:var(--color-text-muted,#6b7a8f);font-size:15px;font-weight:600}.stat-hero__qual{color:var(--color-text-secondary,#46536b);font-size:13px;line-height:1.25}.stat-hero__ratio{color:var(--color-text-muted,#6b7a8f);font-size:11.5px}.role-bar{background:var(--color-surface-sunken,#f2f4f7);border-radius:999px;height:10px;margin-bottom:6px;display:flex;overflow:hidden}.role-bar__seg{min-width:2px;display:block}.role-legend{color:var(--color-text-muted,#6b7a8f);margin:0 0 10px;font-size:11.5px}.metrics{flex-direction:column;margin:0;display:flex}.metric{border-bottom:1px solid #eef2f7;grid-template-columns:minmax(0,1fr) auto;align-items:baseline;gap:12px;min-height:36px;padding:8px 0;display:grid}.metric:last-child{border-bottom:none}.metric__label{color:var(--color-text);min-width:0;font-size:13px;line-height:1.3}.metric__value{font-variant-numeric:tabular-nums;white-space:nowrap;margin:0;font-size:15px;font-weight:600}.metric__of{color:var(--color-text-muted,#6b7a8f);font-size:12px;font-weight:500}.metric--warn .metric__value{color:var(--color-danger,#c62828)}.stats-more{border-top:1px solid #eef2f7;padding-top:4px}.stats-more__summary{min-height:40px;color:var(--color-text-secondary,#46536b);cursor:pointer;align-items:center;font-size:13px;font-weight:600;list-style:none;display:flex}.stats-more__summary::-webkit-details-marker{display:none}.stats-more__summary:before{content:"▸";color:var(--color-text-muted,#6b7a8f);margin-right:6px;font-size:11px}.stats-more[open] .stats-more__summary:before{content:"▾"}.stats-mini{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px 16px;padding:8px 0 4px;display:grid}.stats-mini__item{flex-direction:column;gap:2px;min-width:0;display:flex}.stats-mini__value{font-variant-numeric:tabular-nums;font-size:18px;font-weight:650;line-height:1.1}.stats-mini__label{color:var(--color-text-muted,#6b7a8f);font-size:11.5px;line-height:1.25}.stats-system{color:var(--color-text-muted,#6b7a8f);border-top:1px solid #eef2f7;margin:0;padding-top:10px;font-size:12px}@media (width<=560px){.stats-hero{grid-template-columns:1fr;gap:6px}.stat-hero{padding:10px 12px}.stat-hero__value{font-size:26px}.stats-mini{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=380px){.stats-mini{grid-template-columns:1fr}}
