*{box-sizing:border-box;padding:0;margin:0}body,html{max-width:100vw;overflow-x:hidden;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{color:rgb(var(--foreground-rgb));background:linear-gradient(to bottom,transparent,rgb(var(--background-end-rgb))) rgb(var(--background-start-rgb))}:root{--foreground-rgb:0,0,0;--background-start-rgb:214,219,220;--background-end-rgb:255,255,255;--color-primary:#0d9488;--color-primary-muted:#14b8a6;--gantivity-teal:#0d9488;--gantivity-teal-dark:#0f766e;--focus-ring:#0d9488;--color-danger:#dc3545;--gray-100:#f3f4f6;--gray-200:#e5e7eb;--gray-500:#6b7280;--gray-700:#374151;--space-4:4px;--space-8:8px;--space-12:12px;--space-16:16px;--space-24:24px;--radius-sm:4px;--radius-md:6px;--radius-lg:8px;--shadow-sm:0 1px 2px rgba(0,0,0,0.05);--shadow-md:0 4px 12px rgba(0,0,0,0.1)}@media (prefers-color-scheme:dark){:root{--foreground-rgb:255,255,255;--background-start-rgb:0,0,0;--background-end-rgb:0,0,0}}@keyframes skeleton-shine{0%{background-position:200% 0}to{background-position:-200% 0}}@keyframes spin{to{transform:rotate(1turn)}}@keyframes messaging-typing-bounce{0%,80%,to{transform:translateY(0);opacity:.35}40%{transform:translateY(-4px);opacity:1}}.messaging-typing-dot{display:inline-block;width:5px;height:5px;border-radius:50%;background:#64748b;animation:messaging-typing-bounce 1s ease-in-out infinite}.messaging-typing-dot:nth-child(2){animation-delay:.15s}.messaging-typing-dot:nth-child(3){animation-delay:.3s}@keyframes messaging-send-pulse{0%,to{opacity:.35}50%{opacity:1}}.messaging-send-pending{font-size:.45rem;letter-spacing:.18em;color:#8696a0;animation:messaging-send-pulse 1s ease-in-out infinite}.studio-loading-spinner{display:inline-block;width:14px;height:14px;border:2px solid #94a3b8;border-top-color:transparent;border-radius:50%;animation:spin .7s linear infinite}@keyframes chat-pulse{0%,to{opacity:1}50%{opacity:.5}}.chat-loading-dots{display:inline-block;animation:chat-pulse 1s ease-in-out infinite}@keyframes chat-panel-in{0%{opacity:0;transform:translateY(8px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes signal-pulse-stuck{0%,to{box-shadow:0 0 0 0 rgba(220,38,38,.55)}60%{box-shadow:0 0 0 6px rgba(220,38,38,0)}}@keyframes signal-pulse-very-slow{0%,to{box-shadow:0 0 0 0 rgba(234,88,12,.5)}60%{box-shadow:0 0 0 5px rgba(234,88,12,0)}}@keyframes signal-pulse-slow{0%,to{box-shadow:0 0 0 0 rgba(202,138,4,.45)}60%{box-shadow:0 0 0 5px rgba(202,138,4,0)}}@keyframes signal-shimmer-fast{0%{background-position:-120% 0}to{background-position:220% 0}}.signal-pill{display:inline-flex;align-items:center;gap:4px;padding:2px 8px;border-radius:999px;font-size:.65rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase;line-height:1;white-space:nowrap;border:1px solid transparent}.signal-pill[data-signal=stuck]{background:#fee2e2;color:#991b1b;border-color:#fecaca;animation:signal-pulse-stuck 1.6s ease-in-out infinite}.signal-pill[data-signal=very_slow]{background:#ffedd5;color:#9a3412;border-color:#fed7aa;animation:signal-pulse-very-slow 2s ease-in-out infinite}.signal-pill[data-signal=slow]{background:#fef9c3;color:#854d0e;border-color:#fde68a;animation:signal-pulse-slow 2.4s ease-in-out infinite}.signal-pill[data-signal=par]{background:#dcfce7;color:#166534;border-color:#bbf7d0}.signal-pill[data-signal=fast]{background:linear-gradient(120deg,#99f6e4,#5eead4 35%,#ccfbf1 50%,#5eead4 65%,#99f6e4);background-size:220% 100%;color:#115e59;border-color:#5eead4;animation:signal-shimmer-fast 3.2s linear infinite}.signal-pill__dot{width:6px;height:6px;border-radius:50%;background:currentColor;opacity:.85;flex-shrink:0}@media (prefers-reduced-motion:reduce){.signal-pill,.signal-pill[data-signal=fast],.signal-pill[data-signal=slow],.signal-pill[data-signal=stuck],.signal-pill[data-signal=very_slow]{animation:none!important}}.focus-ring:focus-visible{outline:2px solid var(--focus-ring);outline-offset:2px}.skip-link{position:absolute;left:-9999px;top:0;z-index:100000;padding:12px 20px;background:var(--gantivity-teal);color:#fff;font-weight:600;border-radius:0 0 8px 0;text-decoration:none}.skip-link:focus{left:0;outline:2px solid #fff;outline-offset:2px}.project-card{transition:box-shadow .2s ease,transform .2s ease,border-color .2s ease}.project-card:hover{box-shadow:var(--shadow-md);transform:translateY(-2px);border-color:#99f6e4!important}@media (prefers-reduced-motion:reduce){.project-card{transition:none}.project-card:hover{transform:none}}input:focus-visible:not(:disabled),select:focus-visible:not(:disabled),textarea:focus-visible:not(:disabled){outline:2px solid var(--focus-ring);outline-offset:2px}button:focus-visible:not(:disabled){outline:2px solid var(--focus-ring);outline-offset:2px}a:focus-visible{outline:2px solid var(--focus-ring);outline-offset:2px;border-radius:4px}#main:focus-visible{outline:2px solid var(--focus-ring);outline-offset:4px}.scroll-hint-x{position:relative}.scroll-hint-x:after{content:"";position:absolute;right:0;top:0;bottom:0;width:24px;background:linear-gradient(270deg,rgba(255,255,255,.95),transparent);pointer-events:none}.report-studio-workbench{background-color:#eceff3;background-image:radial-gradient(circle at 1px 1px,rgba(100,116,139,.22) 1px,transparent 0);background-size:18px 18px}.report-studio-card-lift{transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease}.report-studio-card-lift:hover{transform:translateY(-3px);box-shadow:0 16px 40px rgba(15,23,42,.09)}.report-studio-toolbar-pill{border-radius:14px;border:1px solid #e2e8f0;background:linear-gradient(180deg,#ffffff,#f8fafc);box-shadow:0 1px 2px rgba(15,23,42,.04)}@media (prefers-reduced-motion:reduce){.report-studio-card-lift{transition:none}.report-studio-card-lift:hover{transform:none}}.report-studio-tab-strip{scrollbar-width:thin;scrollbar-color:#d4d4d8 transparent}.report-studio-tab-strip::-webkit-scrollbar{height:6px}.report-studio-tab-strip::-webkit-scrollbar-thumb{background:#d4d4d8;border-radius:3px}.report-inspector-chip{transition:border-color .15s ease,box-shadow .15s ease,transform .12s ease}.report-inspector-chip:hover{box-shadow:0 2px 10px rgba(24,24,27,.1)}@media (prefers-reduced-motion:reduce){.report-inspector-chip{transition:none}.report-inspector-chip:hover{transform:none}}.mobile-bottom-bar{position:fixed;left:0;right:0;bottom:0;z-index:10050;pointer-events:none}.mobile-bottom-bar__inner{pointer-events:auto;margin:0 auto;max-width:calc(100vw - 20px);width:min(560px,calc(100vw - 20px));display:flex;flex-direction:row;flex-wrap:nowrap;align-items:stretch;gap:10px;padding:10px 10px 12px;border-radius:18px;border:1px solid #e2e8f0;background:rgba(255,255,255,.92);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);box-shadow:0 18px 45px rgba(15,23,42,.18);overflow-x:auto;overflow-y:hidden;-webkit-overflow-scrolling:touch;scrollbar-width:thin}.mobile-bottom-bar__btn{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;padding:10px 8px;border-radius:14px;border:1px solid #e2e8f0;background:#f8fafc;color:#334155;cursor:pointer;-webkit-user-select:none;user-select:none;flex:1 0 auto;min-width:64px}.mobile-bottom-bar__btn[disabled]{opacity:.5;cursor:not-allowed}.mobile-bottom-bar__btn[aria-pressed=true]{border-color:var(--color-primary);background:linear-gradient(180deg,rgba(13,148,136,.12),rgba(13,148,136,.06));color:#0f172a}.mobile-bottom-bar__icon,.sidebar-rail-icon{font-size:18px;line-height:1}.sidebar-rail-icon{display:inline-flex;align-items:center;justify-content:center;min-width:1.25rem;font-weight:500;color:inherit}.mobile-bottom-bar__label{font-size:11px;font-weight:700;letter-spacing:.02em}.gantt-hide-native-hscrollbar::-webkit-scrollbar{width:10px;height:0}.gantt-hide-native-hscrollbar::-webkit-scrollbar-thumb{background:#cbd5e1;border-radius:8px}.gantt-hide-native-hscrollbar::-webkit-scrollbar-corner,.gantt-hide-native-hscrollbar::-webkit-scrollbar-track{background:transparent}.admin-shell-nav-link:focus-visible{outline:2px solid var(--focus-ring,#0d9488);outline-offset:2px}@media (max-width:520px){.admin-shell-nav-label-full{display:none!important}.admin-shell-nav-label-short{display:inline!important}}a.admin-cc-card:hover{border-color:#99f6e4;box-shadow:0 4px 14px rgba(13,148,136,.12)}@media (max-width:900px){.portfolio-obs-canvas-layout{grid-template-columns:1fr!important}}.obs-canvas-fullscreen-root{position:fixed;inset:0;z-index:10050;display:flex;flex-direction:column;background:#f1f5f9;box-sizing:border-box}.obs-canvas-fullscreen-root:fullscreen{background:#f1f5f9}.obs-canvas-fullscreen-header{flex-shrink:0;display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;padding:10px 14px;background:#fff;border-bottom:1px solid #e2e8f0;box-shadow:0 1px 2px rgba(15,23,42,.04)}.obs-canvas-fullscreen-header-titles{display:flex;flex-direction:column;gap:2px;min-width:0}.obs-canvas-fullscreen-title{font-size:15px;font-weight:800;color:#0f172a;letter-spacing:-.02em}.obs-canvas-fullscreen-sub{font-size:12px;color:#64748b;font-weight:500}.obs-canvas-fullscreen-header-actions{display:flex;flex-wrap:wrap;gap:8px;align-items:center}.obs-canvas-fullscreen-btn-secondary{padding:8px 12px;border-radius:8px;border:1px solid #cbd5e1;background:#fff;font-weight:700;font-size:13px;color:#334155;cursor:pointer}.obs-canvas-fullscreen-btn-secondary:hover{background:#f8fafc}.obs-canvas-fullscreen-btn-close{padding:8px 14px;border-radius:8px;border:none;background:#0d9488;color:#fff;font-weight:700;font-size:13px;cursor:pointer}.obs-canvas-fullscreen-btn-close:hover{filter:brightness(1.05)}.obs-canvas-fullscreen-grid{flex:1 1;min-height:0;display:grid;grid-template-columns:minmax(0,1fr) minmax(280px,380px);gap:16px;padding:16px;overflow:hidden;align-items:stretch}.obs-canvas-fullscreen-chart-wrap{min-width:0;min-height:0;display:flex;flex-direction:column;overflow:hidden}.obs-canvas-expand-wrap{flex:1 1;min-height:0;display:flex;flex-direction:column}.obs-canvas-fullscreen-inspector-col{min-width:0;min-height:0;overflow:auto;position:relative}@media (max-width:900px){.obs-canvas-fullscreen-grid{grid-template-columns:1fr;overflow-y:auto;align-items:start}.obs-canvas-fullscreen-chart-wrap{min-height:min(50vh,420px);overflow:visible}}.obs-workspace-card{background:#fff;padding:1.25rem 1.35rem;border-radius:14px;border:1px solid #e2e8f0;box-shadow:0 1px 3px rgba(15,23,42,.05)}.obs-data-grid{display:grid;gap:14px;margin-bottom:18px}@media (min-width:768px){.obs-data-grid{grid-template-columns:1fr 1fr;align-items:start}}.obs-panel{padding:14px 16px;background:linear-gradient(180deg,#fafbfc,#f8fafc);border-radius:12px;border:1px solid #e8ecf1}.obs-panel-title{font-size:11px;font-weight:800;letter-spacing:.07em;text-transform:uppercase;color:#64748b;margin-bottom:10px}.obs-editor-segment{display:inline-flex;padding:4px;background:#f1f5f9;border-radius:10px;border:1px solid #e2e8f0;gap:2px;margin-bottom:14px}.obs-editor-segment button{padding:8px 18px;border-radius:8px;border:none;background:transparent;font-size:14px;font-weight:600;color:#64748b;cursor:pointer;transition:background .15s ease,color .15s ease,box-shadow .15s ease}.obs-editor-segment button:hover{color:#334155;background:rgba(255,255,255,.7)}.obs-editor-segment button[data-active=true]{background:#fff;color:#0f172a;box-shadow:0 1px 3px rgba(15,23,42,.08)}.obs-add-strip{display:flex;flex-wrap:wrap;gap:10px;align-items:center;padding:12px 14px;background:#fff;border:1px dashed #cbd5e1;border-radius:10px;margin-bottom:12px}.obs-add-strip input[type=text],.obs-add-strip select{padding:8px 12px;border-radius:8px;border:1px solid #e2e8f0;font-size:14px;min-width:0}.obs-add-strip .obs-add-submit{padding:8px 16px;border-radius:8px;border:none;background:#0d9488;color:#fff;font-weight:700;font-size:14px;cursor:pointer}.obs-add-strip .obs-add-submit:hover{background:#0f766e}.obs-tree-root{list-style:none;margin:0;padding:4px 0 0}.obs-tree-nested{list-style:none;padding:4px 0 2px 12px;margin:0 0 0 10px;border-left:2px solid #e8ecf1}.obs-tree-li{margin:0 0 4px}.obs-tree-row{display:flex;align-items:stretch;justify-content:space-between;gap:8px;min-height:42px;padding:4px 6px 4px 4px;border-radius:10px;border:1px solid transparent;transition:background .14s ease,border-color .14s ease,box-shadow .14s ease;cursor:pointer}.obs-tree-row:hover{background:#f8fafc;border-color:#e8ecf1}.obs-tree-row--selected{background:linear-gradient(90deg,#ecfdf5,#f8fafc);border-color:#99f6e4;box-shadow:0 1px 2px rgba(13,148,136,.06)}.obs-tree-row-main{display:flex;align-items:center;gap:8px;flex:1 1;min-width:0}.obs-tree-chevron{flex-shrink:0;width:28px;height:32px;display:inline-flex;align-items:center;justify-content:center;border:none;border-radius:8px;background:transparent;color:#64748b;cursor:pointer;font-size:11px}.obs-tree-chevron:hover{background:#eef2f6;color:#0f172a}.obs-tree-spacer{width:28px;flex-shrink:0}.obs-tree-name{font-weight:600;font-size:14px;color:#0f172a;line-height:1.35;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.obs-tree-meta{display:flex;align-items:center;gap:6px;flex-shrink:0;flex-wrap:wrap}.obs-tree-badge-team{font-size:9px;font-weight:800;letter-spacing:.08em;color:#4338ca;background:#eef2ff;padding:3px 7px;border-radius:6px}.obs-tree-badge-roster{font-size:11px;font-weight:600;color:#475569;background:#f1f5f9;padding:2px 8px;border-radius:6px}.obs-tree-code{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:11px;color:#64748b;max-width:88px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.obs-tree-actions{position:relative;flex-shrink:0;align-self:center}.obs-tree-menu-trigger{width:34px;height:34px;border-radius:8px;border:1px solid transparent;background:transparent;color:#64748b;font-size:18px;line-height:1;cursor:pointer;display:inline-flex;align-items:center;justify-content:center}.obs-tree-menu-trigger:hover{background:#fff;border-color:#e2e8f0;color:#0f172a}.obs-tree-dropdown{position:absolute;right:0;top:calc(100% + 4px);min-width:216px;background:#fff;border:1px solid #e2e8f0;border-radius:12px;box-shadow:0 16px 48px rgba(15,23,42,.14);z-index:40;padding:6px}.obs-tree-dropdown button{display:flex;width:100%;text-align:left;padding:9px 12px;border:none;border-radius:8px;background:none;font-size:13px;font-weight:500;color:#334155;cursor:pointer}.obs-tree-dropdown button:hover{background:#f1f5f9}.obs-tree-dropdown button.obs-dd-danger{color:#b91c1c}.obs-tree-dropdown button.obs-dd-danger:hover{background:#fef2f2}.obs-tree-edit-box{display:flex;flex-wrap:wrap;gap:8px;align-items:center;width:100%;padding:10px 12px;background:#fff;border:1px solid #cbd5e1;border-radius:10px}.obs-tree-edit-box input{padding:6px 10px;border-radius:8px;border:1px solid #e2e8f0;font-size:14px}.obs-tree-shell{padding:12px 14px 14px;background:#fafbfc;border:1px solid #edf0f4;border-radius:12px;min-height:140px}.obs-tree-plus-group{gap:3px;flex-shrink:0;margin-right:2px}.obs-tree-plus,.obs-tree-plus-group{display:inline-flex;align-items:center}.obs-tree-plus{width:26px;height:28px;justify-content:center;border-radius:7px;border:1px solid #99f6e4;background:linear-gradient(180deg,#ecfdf5,#d1fae5);color:#047857;font-size:16px;font-weight:800;line-height:1;cursor:pointer;padding:0}.obs-tree-plus:hover{border-color:#14b8a6;background:#ccfbf1;color:#065f46}.obs-tree-plus-sibling{border-color:#cbd5e1;background:linear-gradient(180deg,#fff,#f8fafc);color:#475569;font-size:14px;font-weight:700}.obs-tree-plus-sibling:hover{border-color:#94a3b8;background:#f1f5f9;color:#0f172a}.obs-tree-inline-add{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin:6px 0 8px 42px;padding:10px 12px;background:#fff;border:1px solid #99f6e4;border-radius:10px;box-shadow:0 2px 8px rgba(13,148,136,.08)}.obs-tree-inline-add-hint{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:#0d9488;width:100%}.obs-tree-inline-add-input{flex:1 1;min-width:160px;padding:8px 11px;border-radius:8px;border:1px solid #e2e8f0;font-size:14px}.obs-tree-inline-add-submit{padding:8px 14px;border-radius:8px;border:none;background:#0d9488;color:#fff;font-weight:700;font-size:13px;cursor:pointer}.obs-tree-inline-add-submit:hover{background:#0f766e}.obs-tree-inline-add-cancel{padding:8px 12px;border-radius:8px;border:1px solid #e2e8f0;background:#fff;font-size:13px;font-weight:600;color:#64748b;cursor:pointer}.obs-canvas-node-toolbar{position:absolute;top:2px;left:4px;z-index:4;display:flex;align-items:center;gap:3px;pointer-events:auto}.obs-canvas-plus-btn{width:22px!important;height:24px!important;font-size:13px!important}.obs-canvas-inline-add{margin:12px 0 0!important;max-width:100%}.obs-help-hint{font-size:12px;color:#64748b;margin:0 0 10px;line-height:1.45}