:root{--g-arrow-color: #1f2937;--g-bar-color: #fff;--g-bar-border: #fff;--g-tick-color-thick: #ededed;--g-tick-color: #f3f3f3;--g-actions-background: #f3f3f3;--g-border-color: #ebeff2;--g-text-muted: #7c7c7c;--g-text-light: #fff;--g-text-dark: #171717;--g-progress-color: #dbdbdb;--g-handle-color: #37352f;--g-weekend-label-color: #dcdce4;--g-expected-progress: #c4c4e9;--g-header-background: #fff;--g-row-color: #fdfdfd;--g-row-border-color: #c7c7c7;--g-today-highlight: #37352f;--g-popup-actions: #ebeff2;--g-weekend-highlight-color: #f7f7f7}html[data-theme=dark]{--g-arrow-color: #e5e5e5;--g-bar-color: #2a2a2a;--g-bar-border: #3a3a3a;--g-tick-color-thick: #1a1a1a;--g-tick-color: #0a0a0a;--g-actions-background: #1a1a1a;--g-border-color: #2a2a2a;--g-text-muted: #999999;--g-text-light: #ffffff;--g-text-dark: #f5f5f5;--g-progress-color: #4a4a4a;--g-handle-color: #d0d0d0;--g-weekend-label-color: #3a3a3a;--g-expected-progress: #5a5a5a;--g-header-background: #0a0a0a;--g-row-color: #141414;--g-row-border-color: #2a2a2a;--g-today-highlight: #999999;--g-popup-actions: #1a1a1a;--g-weekend-highlight-color: #0f0f0f}.gantt-container{line-height:14.5px;position:relative;overflow:auto;font-size:12px;height:var(--gv-grid-height);width:100%;border-radius:8px;isolation:isolate}.gantt-container .popup-wrapper{position:absolute;top:0;left:0;background:var(--g-header-background);box-shadow:0 10px 24px -3px #0003;padding:10px;border-radius:5px;width:max-content;z-index:1000}.gantt-container .popup-wrapper .title{margin-bottom:2px;color:var(--g-text-dark);font-size:.85rem;font-weight:650;line-height:15px}.gantt-container .popup-wrapper .subtitle{color:var(--g-text-dark);font-size:.8rem;margin-bottom:5px}.gantt-container .popup-wrapper .details{color:var(--g-text-muted);font-size:.7rem}.gantt-container .popup-wrapper .actions{margin-top:10px;margin-left:3px}.gantt-container .popup-wrapper .action-btn{border:none;padding:5px 8px;background-color:var(--g-popup-actions);border-right:1px solid var(--g-border-color)}.gantt-container .popup-wrapper .action-btn:hover{filter:brightness(97%)}.gantt-container .popup-wrapper .action-btn:first-child{border-top-left-radius:4px;border-bottom-left-radius:4px}.gantt-container .popup-wrapper .action-btn:last-child{border-right:none;border-top-right-radius:4px;border-bottom-right-radius:4px}.gantt-container .grid-header{height:calc(var(--gv-lower-header-height) + var(--gv-upper-header-height) + 10px);background-color:var(--g-header-background);position:sticky;top:0;left:0;border-bottom:1px solid var(--g-row-border-color);z-index:1000}.gantt-container .lower-text,.gantt-container .upper-text{text-anchor:middle}.gantt-container .upper-header{height:var(--gv-upper-header-height)}.gantt-container .lower-header{height:var(--gv-lower-header-height)}.gantt-container .lower-text{font-size:12px;position:absolute;width:calc(var(--gv-column-width) * .8);height:calc(var(--gv-lower-header-height) * .8);margin:0 calc(var(--gv-column-width) * .1);align-content:center;text-align:center;color:var(--g-text-muted)}.gantt-container .upper-text{position:absolute;width:fit-content;font-weight:500;font-size:14px;color:var(--g-text-dark);height:calc(var(--gv-lower-header-height) * .66)}.gantt-container .current-upper{position:sticky;left:0!important;padding-left:17px;background:var(--g-header-background)}.gantt-container .side-header{position:sticky;top:0;right:0;float:right;z-index:1000;line-height:20px;font-weight:400;width:max-content;margin-left:auto;padding-right:10px;padding-top:10px;background:var(--g-header-background);display:flex}.gantt-container .side-header *{transition-property:background-color;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s;background-color:var(--g-actions-background);border-radius:.5rem;border:none;padding:5px 8px;color:var(--g-text-dark);font-size:14px;letter-spacing:.02em;font-weight:420;box-sizing:content-box;margin-right:5px}.gantt-container .side-header *:last-child{margin-right:0}.gantt-container .side-header *:hover{filter:brightness(97.5%)}.gantt-container .side-header select{width:60px;padding-top:2px;padding-bottom:2px}.gantt-container .side-header select:focus{outline:none}.gantt-container .date-range-highlight{background-color:var(--g-progress-color);border-radius:12px;height:calc(var(--gv-lower-header-height) - 6px);top:calc(var(--gv-upper-header-height) + 5px);position:absolute}.gantt-container .current-highlight{position:absolute;background:var(--g-today-highlight);width:1px;z-index:999}.gantt-container .current-ball-highlight{position:absolute;background:var(--g-today-highlight);z-index:1001;border-radius:50%}.gantt-container .current-date-highlight{background:var(--g-today-highlight);color:var(--g-text-light);border-radius:5px}.gantt-container .holiday-label{position:absolute;top:0;left:0;opacity:0;z-index:1000;background:var(--g-weekend-label-color);border-radius:5px;padding:2px 5px}.gantt-container .holiday-label.show{opacity:100}.gantt-container .extras{position:sticky;left:0}.gantt-container .extras .adjust{position:absolute;left:8px;top:calc(var(--gv-grid-height) - 60px);background-color:var(--g-actions-background);color:var(--g-text-light);border:none;padding:8px;border-radius:3px}.gantt-container .hide{display:none}.gantt{user-select:none;-webkit-user-select:none;position:absolute}.gantt .grid-background{fill:none}.gantt .grid-row{fill:var(--g-row-color)}.gantt .row-line{stroke:var(--g-border-color)}.gantt .tick{stroke:var(--g-tick-color);stroke-width:.4}.gantt .tick.thick{stroke:var(--g-tick-color-thick);stroke-width:.7}.gantt .arrow{fill:none;stroke:var(--g-arrow-color);stroke-width:1.5}.gantt .bar-wrapper .bar{fill:var(--g-bar-color);stroke:var(--g-bar-border);stroke-width:0;transition:stroke-width .3s ease}.gantt .bar-progress{fill:var(--g-progress-color);border-radius:4px}.gantt .bar-expected-progress{fill:var(--g-expected-progress)}.gantt .bar-invalid{fill:transparent;stroke:var(--g-bar-border);stroke-width:1;stroke-dasharray:5}:is(.gantt .bar-invalid)~.bar-label{fill:var(--g-text-light)}.gantt .bar-label{fill:var(--g-text-dark);dominant-baseline:central;font-family:Helvetica;font-size:13px;font-weight:400}.gantt .bar-label.big{fill:var(--g-text-dark);text-anchor:start}.gantt .handle{fill:var(--g-handle-color);opacity:0;transition:opacity .3s ease}.gantt .handle.active,.gantt .handle.visible{cursor:ew-resize;opacity:1}.gantt .handle.progress{fill:var(--g-text-muted)}.gantt .bar-wrapper{cursor:pointer}.gantt .bar-wrapper .bar{outline:1px solid var(--g-row-border-color);border-radius:3px}.gantt .bar-wrapper:hover .bar{transition:transform .3s ease}.gantt .bar-wrapper:hover .date-range-highlight{display:block}.gantt .grid-column{fill:transparent;pointer-events:all}.gantt .grid-column:hover{fill:var(--g-weekend-highlight-color);transition:fill .1s ease}:root{--bg: #eef3ff;--panel: #ffffff;--ink: #101114;--muted: #626873;--line: #d9e0ec;--soft: #f5f7fb;--brand: #5b8def;--brand-ink: #183b75;--state-strong: #e3ecff;--shadow: 0 18px 50px rgba(20, 28, 44, .06);font-family:-apple-system,BlinkMacSystemFont,SF Pro Display,SF Pro Text,Segoe UI,Roboto,Helvetica,Arial,sans-serif}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;min-height:100vh;background:linear-gradient(90deg,#f8fbff 0,#f8fbff 300px,var(--bg) 300px),var(--bg);color:var(--ink);font-size:15px;letter-spacing:0}button,input{font:inherit}button{cursor:pointer}.layout-wrapper{display:flex;width:100%}.layout-side{width:280px;flex-shrink:0}.sidebar{width:280px;background:var(--panel);border-right:1px solid var(--border);display:flex;flex-direction:column;height:100vh;position:sticky;top:0;padding-top:24px}dc-sidebar-menu{flex-grow:1;overflow-y:auto;display:block}.brand,.nav,.sidebar-footer{padding:0 20px}.brand{margin-bottom:32px}.sidebar-footer{padding-top:20px;padding-bottom:20px;border-top:1px solid var(--border);background:var(--panel)}.global-header{height:60px;display:flex;align-items:center;justify-content:space-between;padding:0 40px;border-bottom:1px solid var(--border);background:#fff}.search-container{flex-grow:1;max-width:400px}.search-input{width:100%;padding:8px 16px;border-radius:20px;border:1px solid var(--border);background:var(--soft);font-size:14px}.settings-button{display:flex;align-items:center;gap:10px;width:100%;padding:10px 12px;border-radius:8px;background:transparent;border:none;color:var(--text-light);font-size:14px;font-weight:500;cursor:pointer;transition:all .2s}.settings-button:hover{background:var(--soft);color:var(--text)}.settings-button i{font-size:18px}.brand{display:flex;align-items:center;gap:12px;min-height:48px}.brand-mark{width:42px;height:42px;display:grid;place-items:center;border-radius:8px;background:#101114;color:#fff;font-weight:850;font-size:1.2rem}.eyebrow{display:block;color:var(--muted);font-size:12px;margin-top:6px;text-transform:uppercase;letter-spacing:.05em;font-weight:600}.brand span,.account span,small{display:block;color:var(--muted);font-size:12px}.nav{display:grid;gap:10px}.root-link,.project-node{color:#3c414b;text-decoration:none;border-radius:8px;font-weight:640;font-size:14px}.root-link{display:grid;gap:3px;padding:12px;border:1px solid var(--line);background:#fff}.project-node{width:100%;border:0;background:transparent;display:grid;grid-template-columns:18px 1fr;gap:8px;align-items:start;padding:11px 12px;text-align:left}.project-node:hover,.project-node.active{background:var(--state-strong);color:#0d1117}.project-node.active{box-shadow:inset 3px 0 #101114}.project-node strong{display:block;line-height:1.25}.caret{width:18px;height:18px;display:grid;place-items:center;color:#414751;font-size:14px;line-height:1}.account{margin-top:auto;padding:14px;border:1px solid var(--line);border-radius:8px;background:#f8fbff}.shell{margin-left:300px;padding:28px 28px 44px}.topbar{min-height:78px;display:flex;align-items:center;justify-content:space-between;gap:24px;margin-bottom:20px}h1,h2,h3,p{margin:0}h1{font-size:clamp(28px,4vw,46px);line-height:1.02;letter-spacing:0;font-weight:780}h2{font-size:24px;letter-spacing:0;font-weight:740}h3{font-size:16px;font-weight:720}p{color:var(--muted);line-height:1.55}.top-actions,.section-heading,.panel-header,.admin-grid{display:flex;align-items:center;gap:12px}.top-actions{justify-content:flex-end}.section{margin-top:24px}.section-heading{justify-content:space-between;margin-bottom:16px}.panel{background:var(--panel);border:1px solid var(--line);border-radius:8px;box-shadow:var(--shadow);padding:18px}.panel+.panel{margin-top:16px}.panel-header{justify-content:space-between;margin-bottom:14px}.metrics{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:14px;margin-bottom:16px}.layout-content{flex-grow:1;display:flex;flex-direction:column;background:var(--bg);min-width:0;height:100vh;overflow:hidden}.workspace-scroll{flex-grow:1;overflow-y:auto;padding:32px 40px}.global-header{height:60px;display:flex;align-items:center;justify-content:space-between;padding:0 40px;border-bottom:1px solid var(--border);background:#fff;flex-shrink:0}.topbar{padding:24px 40px 10px;background:var(--bg);flex-shrink:0;border-bottom:1px solid transparent}.metric{min-height:132px;background:var(--panel);border:1px solid var(--line);border-radius:8px;box-shadow:var(--shadow);padding:18px;display:grid;align-content:space-between;gap:10px}.metric strong{font-size:32px;line-height:1}.metric.accent{background:#101114;color:#fff}.metric.accent span,.metric.accent small{color:#dfe7f7}.progress{height:7px;border-radius:999px;background:#d8deea;overflow:hidden}.progress i{display:block;height:100%;border-radius:inherit;background:var(--brand)}.badge{display:inline-flex;align-items:center;min-height:24px;padding:0 9px;border-radius:999px;background:#eef1f6;color:#46505f;font-size:12px;font-weight:720;white-space:nowrap}.badge.success{background:#e4f8ee;color:#126b3f}.badge.blue{background:#edf4ff;color:var(--brand-ink)}.badge.neutral{background:#eef1f6;color:#46505f}.badge.warning{background:#fff8e1;color:#b07100}.badge.dark{background:#334155;color:#f8fafc}.badge.danger{background:#fff0f0;color:#c53030}.badge.info{background:#f0f4ff;color:#3b82f6}.badge.purple{background:#f5f3ff;color:#7c3aed}.scope-text{white-space:pre-wrap}.markdown-viewer{color:#28313f;line-height:1.6}.panel .markdown-viewer{max-height:16em;overflow-y:auto;padding-right:8px}.markdown-viewer h1,.markdown-viewer h2,.markdown-viewer h3,.markdown-viewer h4{margin:18px 0 8px;line-height:1.2}.markdown-viewer h1:first-child,.markdown-viewer h2:first-child,.markdown-viewer h3:first-child{margin-top:0}.markdown-viewer h1{font-size:22px}.markdown-viewer h2{font-size:19px}.markdown-viewer h3{font-size:16px}.markdown-viewer p,.markdown-viewer ul,.markdown-viewer ol,.markdown-viewer blockquote{margin:8px 0}.markdown-viewer ul,.markdown-viewer ol{padding-left:22px}.markdown-viewer li+li{margin-top:5px}.markdown-viewer a{color:#244f9f;word-break:break-word}.markdown-viewer blockquote{border-left:3px solid var(--line);padding-left:12px;color:var(--muted)}.markdown-viewer code{padding:2px 5px;border-radius:5px;background:#eef1f6;font:13px ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace}.gantt-panel{overflow-x:auto}.gantt-layout{display:grid;grid-template-columns:minmax(260px,34%) minmax(520px,1fr);align-items:stretch;border:1px solid var(--line);border-radius:8px;overflow:hidden;background:#fff}.gantt-labels{position:sticky;left:0;z-index:2;background:#fff;border-right:1px solid var(--line);min-width:0;display:flex;flex-direction:column}.gantt-label-scroll{overflow-x:auto;overflow-y:hidden;flex-grow:1}.gantt-label-grid{width:max-content;min-width:100%;display:grid;grid-template-columns:140px auto;align-items:stretch}.gantt-label-header{height:86px;border-bottom:1px solid var(--line);color:#4d5562;font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;background:#f8fafc}.gantt-label-header span{padding:0 16px;display:flex;align-items:center;height:100%}.gantt-label-header span+span{border-left:1px solid var(--line)}.gantt-label-row{height:32px;border-bottom:1px solid var(--line);color:#29313d;font-size:12px}.gantt-label-row span{padding:0 16px;display:flex;align-items:center;height:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.gantt-label-row .name{border-left:1px solid var(--line)}.gantt-container-scroll{flex-grow:1;overflow:auto}.gantt-host{min-width:1200px}.gantt-host .gantt-container{overflow:visible!important}.gantt-host .grid-header{fill:#f8fafc;stroke:var(--border)}.gantt-host .bar-label{display:none!important}.gantt-host .bar{fill:#dbeafe!important;stroke:#bfdbfe!important;stroke-width:1}.gantt-host .bar-progress{fill:#2563eb!important}.gantt-host .bar-wrapper:hover .bar{fill:#d1e4ff!important}.empty,.loading,.empty-state{padding:18px;border:1px solid var(--line);border-radius:8px;background:#fff}.table-panel{overflow-x:auto}table{width:100%;border-collapse:collapse;min-width:760px}th,td{padding:12px 10px;border-bottom:1px solid var(--line);text-align:left;vertical-align:top}.dense-table th,.dense-table td{padding:8px 10px;font-size:13px}.dense-table th{font-size:11px}th{color:#4d5562;font-size:12px;text-transform:uppercase;letter-spacing:.04em}.admin-grid{align-items:stretch;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);margin-bottom:16px}.cloud-connections{display:grid;gap:10px;margin-top:14px}.cloud-connection{display:flex;justify-content:space-between;gap:12px;padding:12px;border:1px solid var(--line);border-radius:8px;background:var(--soft)}.meeting-form{display:grid;gap:12px}.markdown-result{min-height:220px;max-height:360px;overflow:auto;white-space:pre-wrap;margin:14px 0 0;padding:14px;border:1px solid var(--line);border-radius:8px;background:#0f1720;color:#e7eef8;font:13px/1.5 ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace}.primary,.text-button,.icon-button,.avatar{border:0;border-radius:8px;min-height:38px;padding:0 13px;font-weight:720}.primary{background:#101114;color:#fff}.primary:disabled{opacity:.45;cursor:not-allowed}.text-button{display:inline-flex;align-items:center;justify-content:center;background:#eef3ff;color:#183b75;text-decoration:none}.icon-button,.avatar{width:42px;padding:0;background:#fff;border:1px solid var(--line)}.avatar{border-radius:50%;background:#101114;color:#fff}.error-text{color:#a33928}a{color:#244f9f}.sync-time{margin-top:4px;opacity:.8;font-weight:500}@media(max-width:900px){body{background:var(--bg)}.sidebar{position:static;width:auto;max-height:none}.shell{margin-left:0;padding:20px}.topbar,.section-heading,.cloud-connection{align-items:flex-start;flex-direction:column}.metrics,.admin-grid{grid-template-columns:1fr}}.loading-bar{position:fixed;top:0;left:0;right:0;height:3px;background:transparent;z-index:1000;overflow:hidden}.loading-bar-inner{height:100%;background:#2563eb;width:100%;transform:translate(-100%);animation:loading-shimmer 2s infinite ease-in-out}@keyframes loading-shimmer{0%{transform:translate(-100%)}50%{transform:translate(0)}to{transform:translate(100%)}}.admin-minimal{display:flex;gap:12px;align-items:center;padding:24px;background:#fff;border-radius:12px;border:1px solid var(--border);margin-top:16px}.sync-time-badge{font-size:11px;color:var(--text-light);margin-left:auto}
