@import"https://fonts.googleapis.com/css2?family=Inter:wght@400;450;500;600;700&family=JetBrains+Mono:wght@400;500&display=swap";@import"https://cdn.jsdelivr.net/gh/orioncactus/pretendard@v1.3.9/dist/web/static/pretendard.css";: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}.gantt-root{--gantt-bar: #6e72f0;--gantt-bar-done: #46c46a;--gantt-bar-exec: #e0a23b;--gantt-bar-plan: #5b9def;--gantt-bar-test: #a78bfa;--gantt-bar-inspect: #2dd4bf;--gantt-bar-waiting: #fb923c;--gantt-bar-answered: #38bdf8;--gantt-progress: rgba(255, 255, 255, .32);--gantt-grid-row: var(--surface, #15171c);--gantt-grid-row-alt: var(--surface-2, #1a1d24);--gantt-border: var(--border, rgba(255, 255, 255, .08));--gantt-tick: var(--border, rgba(255, 255, 255, .06));--gantt-tick-thick: var(--border-strong, rgba(255, 255, 255, .14));--gantt-arrow: var(--text-3, #646a74);--gantt-text: var(--text, #e7e9ed);--gantt-text-muted: var(--text-2, #9aa0ab);--gantt-header-bg: var(--bg-elev, #111317);--gantt-handle: var(--text-2, #9aa0ab);--gantt-today: var(--accent, #6e72f0);--gantt-milestone: #a78bfa;--g-arrow-color: var(--gantt-arrow);--g-bar-color: var(--gantt-bar);--g-bar-border: var(--gantt-border);--g-tick-color: var(--gantt-tick);--g-tick-color-thick: var(--gantt-tick-thick);--g-border-color: var(--gantt-border);--g-text-muted: var(--gantt-text-muted);--g-text-light: #fff;--g-text-dark: var(--gantt-text);--g-progress-color: var(--gantt-progress);--g-handle-color: var(--gantt-handle);--g-header-background: var(--gantt-header-bg);--g-row-color: var(--gantt-grid-row);--g-row-border-color: var(--gantt-border);--g-today-highlight: var(--gantt-today);--g-actions-background: var(--gantt-grid-row-alt);--g-popup-actions: var(--gantt-grid-row-alt);--g-weekend-highlight-color: var(--gantt-grid-row-alt);--g-weekend-label-color: var(--gantt-grid-row-alt);--g-expected-progress: var(--gantt-grid-row-alt);width:100%;height:100%;overflow:auto;padding:16px 18px;box-sizing:border-box}.gantt-root .gantt-mount{min-width:max-content}.gantt-root .gantt .gantt--status-done .bar{fill:var(--gantt-bar-done)}.gantt-root .gantt .gantt--status-exec .bar{fill:var(--gantt-bar-exec)}.gantt-root .gantt .gantt--status-plan .bar{fill:var(--gantt-bar-plan)}.gantt-root .gantt .gantt--status-test .bar{fill:var(--gantt-bar-test)}.gantt-root .gantt .gantt--status-inspect .bar{fill:var(--gantt-bar-inspect)}.gantt-root .gantt .gantt--status-waiting .bar{fill:var(--gantt-bar-waiting)}.gantt-root .gantt .gantt--status-answered .bar{fill:var(--gantt-bar-answered)}.gantt-root .gantt .gantt--unscheduled .bar{opacity:.4;stroke:var(--gantt-border);stroke-width:1.5;stroke-dasharray:4 3}.gantt-root .gantt .gantt--unscheduled .bar-label{opacity:.55;font-style:italic}.gantt-root .gantt .bar-label{fill:var(--gantt-text);font-family:inherit;font-size:12px}.gantt-root .gantt .gantt--milestone .bar{fill:var(--gantt-milestone);rx:2;ry:2;transform-box:fill-box;transform-origin:center;transform:rotate(45deg) scale(.62)}.gantt-root .gantt .gantt--milestone .bar-progress,.gantt-root .gantt .gantt--milestone .handle{display:none}.gantt-root .gantt .gantt--milestone .bar-label{font-weight:600}.gantt-root .gantt .gantt--indent-1 .bar-label{transform:translate(12px)}.gantt-root .gantt .gantt--indent-2 .bar-label{transform:translate(24px)}.gantt-root .gantt .gantt--indent-3 .bar-label{transform:translate(36px)}.gantt-root .gantt .gantt--indent-4 .bar-label{transform:translate(48px)}.gantt-root .gantt .gantt--indent-5 .bar-label{transform:translate(60px)}.gantt-root .gantt .gantt--indent-6 .bar-label{transform:translate(72px)}.gantt-wbs{display:flex;align-items:stretch;width:100%;min-height:0;overflow:hidden}.gantt-root.gantt-root--wbs{flex:1 1 auto;min-width:0;height:100%;overflow:hidden;padding:0}.gantt-tree{flex:0 0 280px;width:280px;height:100%;overflow-y:auto;overflow-x:hidden;box-sizing:border-box;background:var(--surface, #15171c);border-right:1px solid var(--border, rgba(255, 255, 255, .12));color:var(--text, #e7e9ed);font-size:13px}.gantt-tree__header{position:sticky;top:0;z-index:2;display:flex;align-items:flex-end;padding:0 12px 8px;box-sizing:border-box;background:var(--bg-elev, #111317);border-bottom:1px solid var(--border, rgba(255, 255, 255, .12));font-weight:600;font-size:12px;color:var(--text-2, #9aa0ab)}.gantt-tree__row{display:flex;align-items:center;gap:4px;box-sizing:border-box;padding-right:10px;border-bottom:1px solid var(--border, rgba(255, 255, 255, .06));white-space:nowrap}.gantt-tree__row--unscheduled .gantt-tree__title{opacity:.55;font-style:italic}.gantt-tree__toggle{flex:0 0 auto;width:18px;height:18px;display:inline-flex;align-items:center;justify-content:center;padding:0;border:none;background:transparent;color:var(--text-2, #9aa0ab);cursor:pointer;font-size:11px;line-height:1}.gantt-tree__toggle:hover{color:var(--text, #e7e9ed)}.gantt-tree__toggle--leaf{cursor:default}.gantt-tree__label{flex:1 1 auto;min-width:0;display:flex;align-items:baseline;gap:6px;overflow:hidden;padding:0;border:none;background:transparent;color:inherit;cursor:pointer;text-align:left}.gantt-tree__label:hover .gantt-tree__title{text-decoration:underline}.gantt-tree__code{flex:0 0 auto;color:var(--text-2, #9aa0ab);font-variant-numeric:tabular-nums;font-size:12px}.gantt-tree__title{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.gantt-tree__progress{flex:0 0 auto;margin-left:auto;color:var(--text-2, #9aa0ab);font-variant-numeric:tabular-nums;font-size:12px}.gantt-host .gantt-root{--gantt-bar: var(--accent);--gantt-bar-done: var(--st-done);--gantt-bar-exec: var(--st-executing);--gantt-bar-plan: var(--st-planning);--gantt-bar-test: var(--st-moritest);--gantt-bar-inspect: var(--st-inspection);--gantt-bar-waiting: var(--st-waiting);--gantt-bar-answered: var(--st-answered);--gantt-milestone: var(--st-moritest);--gantt-progress: color-mix(in srgb, #fff 28%, transparent);--gantt-today: var(--accent)}:root{--bg: #0b0c0e;--bg-elev: #111317;--surface: #15171c;--surface-2: #1a1d24;--surface-hover: #22262f;--border: rgba(255, 255, 255, .08);--border-strong: rgba(255, 255, 255, .16);--text: #e7e9ed;--text-2: #9aa0ab;--text-3: #646a74;--accent: #6e72f0;--accent-hover: #5a5ee8;--accent-soft: rgba(110, 114, 240, .16);--accent-border: rgba(110, 114, 240, .45);--st-registered: #868c97;--st-planning: #5b9def;--st-executing: #e0a23b;--st-moritest: #a78bfa;--st-inspection: #2dd4bf;--st-done: #46c46a;--st-waiting: #fb923c;--st-answered: #38bdf8;--st-stopped: #f0626e;--mono: "JetBrains Mono", Pretendard, ui-monospace, monospace;--shadow: 0 16px 48px rgba(0, 0, 0, .55);--scroll: rgba(255, 255, 255, .12);--scroll-h: rgba(255, 255, 255, .22)}[data-theme=light]{--bg: #fbfbfa;--bg-elev: #ffffff;--surface: #f4f4f2;--surface-2: #ffffff;--surface-hover: #f0f0ee;--border: rgba(17, 20, 24, .1);--border-strong: rgba(17, 20, 24, .18);--text: #1a1c20;--text-2: #5b616b;--text-3: #8a9099;--accent: #5458dc;--accent-hover: #4448cf;--accent-soft: rgba(84, 88, 220, .1);--accent-border: rgba(84, 88, 220, .38);--st-registered: #7a828d;--st-planning: #2f7bd6;--st-executing: #bb7a18;--st-moritest: #7c5ce0;--st-inspection: #0fa89b;--st-done: #2ea043;--st-waiting: #e07814;--st-answered: #0ea5e9;--st-stopped: #d6414f;--shadow: 0 16px 48px rgba(20, 22, 28, .18);--scroll: rgba(17, 20, 24, .16);--scroll-h: rgba(17, 20, 24, .28)}*{box-sizing:border-box}html,body,#root{margin:0;padding:0;height:100%}body{font-family:Inter,Pretendard,-apple-system,Segoe UI,Apple SD Gothic Neo,Malgun Gothic,system-ui,sans-serif;font-size:14px;background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased}::-webkit-scrollbar{width:9px;height:9px}::-webkit-scrollbar-thumb{background:var(--scroll);border-radius:6px;border:2px solid transparent;background-clip:padding-box}::-webkit-scrollbar-thumb:hover{background:var(--scroll-h);background-clip:padding-box}a{color:inherit;text-decoration:none}button,input,textarea,select{font-family:inherit}@keyframes uspulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.35;transform:scale(.8)}}@keyframes usslide{0%{transform:translate(24px);opacity:0}to{transform:translate(0);opacity:1}}@keyframes ustoast{0%{transform:translateY(14px);opacity:0}to{transform:translateY(0);opacity:1}}@keyframes usfade{0%{opacity:0}to{opacity:1}}.app-shell{height:100vh;width:100%;display:flex;overflow:hidden;background:var(--bg);color:var(--text)}.sidebar{width:236px;flex:none;display:flex;flex-direction:column;background:var(--bg-elev);border-right:1px solid var(--border);transition:width .16s cubic-bezier(.2,0,.2,1);overflow:hidden}.sidebar.collapsed{width:60px}.sidebar-brand{display:flex;align-items:center;gap:9px;padding:16px 16px 18px;height:52px}.sidebar-logo{width:24px;height:24px;border-radius:7px;background:var(--accent);display:flex;align-items:center;justify-content:center;flex:none;box-shadow:0 2px 8px var(--accent-soft)}.sidebar-brand-name{font-size:15px;font-weight:600;letter-spacing:-.2px}.sidebar-nav{display:flex;flex-direction:column;gap:2px;padding:4px 10px;flex:1}.nav-item{display:flex;align-items:center;gap:11px;padding:8px 10px;border-radius:8px;font-size:13.5px;cursor:pointer;transition:background .12s;white-space:nowrap;color:var(--text-2);border:none;background:transparent;text-align:left;width:100%}.nav-item:hover{background:var(--surface-hover)}.nav-item.active{background:var(--accent-soft);color:var(--accent);font-weight:600}.nav-item .nav-icon{display:flex;flex:none}.nav-item .nav-label{flex:1;text-align:left}.nav-badge{font-size:11px;font-weight:600;color:var(--st-waiting);background:color-mix(in srgb,var(--st-waiting) 16%,transparent);padding:1px 6px;border-radius:9px}.sidebar-foot{padding:10px;border-top:1px solid var(--border)}.biz-switch{display:flex;align-items:center;gap:9px;padding:9px 10px;border-radius:8px;cursor:pointer}.biz-switch:hover{background:var(--surface-hover)}.biz-avatar{width:24px;height:24px;border-radius:6px;background:linear-gradient(135deg,var(--accent),#9b6ef0);flex:none;display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:700;color:#fff}.biz-info{flex:1;min-width:0}.biz-name{font-size:13px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.biz-sub{font-size:11px;color:var(--text-3)}.main{flex:1;min-width:0;display:flex;flex-direction:column;overflow:hidden}.topbar{height:52px;flex:none;display:flex;align-items:center;gap:14px;padding:0 18px;border-bottom:1px solid var(--border);background:var(--bg)}.breadcrumb{display:flex;align-items:center;gap:8px;font-size:13px;min-width:0}.breadcrumb .crumb-dim{color:var(--text-3)}.breadcrumb .crumb-mono{font-family:var(--mono);font-size:12.5px;color:var(--text-2)}.breadcrumb .crumb-cur{font-weight:600}.breadcrumb a:hover{color:var(--text)}.topbar-search{display:flex;align-items:center;background:var(--surface);border:1px solid var(--border);border-radius:8px;padding:0 10px;height:32px;width:230px;gap:8px}.topbar-search:focus-within{border-color:var(--accent-border)}.topbar-search input{border:none;background:transparent;outline:none;color:var(--text);font-size:13px;width:100%}.topbar-search .kbd{font-family:var(--mono);font-size:11px;color:var(--text-3);border:1px solid var(--border);border-radius:4px;padding:0 5px;flex:none}.icon-btn{position:relative;width:32px;height:32px;border:none;background:transparent;color:var(--text-2);border-radius:8px;display:flex;align-items:center;justify-content:center;cursor:pointer;flex:none}.icon-btn:hover{background:var(--surface-hover)}.icon-btn .unread-dot{position:absolute;top:6px;right:7px;width:7px;height:7px;border-radius:50%;background:var(--accent);border:1.5px solid var(--bg)}.user-avatar{width:30px;height:30px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:600;color:#fff;flex:none;background:var(--st-inspection)}.notif-wrap{position:relative}.notif-pop{position:absolute;top:42px;right:0;width:340px;background:var(--bg-elev);border:1px solid var(--border);border-radius:12px;box-shadow:var(--shadow);z-index:60;overflow:hidden;animation:usfade .12s ease}.notif-head{display:flex;align-items:center;justify-content:space-between;padding:12px 14px;border-bottom:1px solid var(--border)}.notif-head .title{font-weight:600;font-size:13.5px}.notif-head .clear{font-size:12px;color:var(--accent);cursor:pointer}.notif-list{max-height:340px;overflow-y:auto}.notif-row{display:flex;gap:10px;padding:11px 14px;border-bottom:1px solid var(--border);cursor:pointer}.notif-row:hover{background:var(--surface)}.notif-dot{width:7px;height:7px;border-radius:50%;margin-top:6px;flex:none}.notif-text{font-size:13px;line-height:1.4}.notif-meta{font-size:11.5px;color:var(--text-3);margin-top:3px;display:flex;gap:6px}.notif-meta .ref{font-family:var(--mono)}.page{flex:1;min-height:0;overflow-y:auto;padding:24px 28px}.page-narrow{max-width:1040px;margin:0 auto}.page-title{font-size:20px;font-weight:600;letter-spacing:-.3px;margin:0 0 4px}.page-sub{font-size:13px;color:var(--text-3);margin:0 0 20px}.section-title{font-size:13px;font-weight:600;color:var(--text-2);margin:22px 0 12px}.muted{color:var(--text-3);font-size:13px}.card-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:14px}.tile{display:flex;flex-direction:column;gap:10px;background:var(--surface-2);border:1px solid var(--border);border-radius:12px;padding:16px;cursor:pointer;transition:background .12s,border-color .12s;min-height:110px}.tile:hover{background:var(--surface-hover);border-color:var(--border-strong)}.tile-head{display:flex;align-items:center;gap:10px}.tile-icon{width:34px;height:34px;border-radius:9px;background:var(--accent-soft);color:var(--accent);display:flex;align-items:center;justify-content:center;flex:none}.tile-name{font-size:14.5px;font-weight:600}.tile-desc{font-size:12.5px;color:var(--text-2);line-height:1.45}.tile-meta{margin-top:auto;font-size:11.5px;color:var(--text-3);font-family:var(--mono)}.tile-mono{font-family:var(--mono);font-size:11.5px;color:var(--text-3);word-break:break-all}.progress{height:5px;border-radius:4px;background:var(--surface);overflow:hidden}.progress>span{display:block;height:100%;background:var(--st-done);border-radius:4px}.field{display:flex;flex-direction:column;gap:6px;font-size:12.5px;color:var(--text-2)}.input,.textarea,.select{background:var(--surface);border:1px solid var(--border);border-radius:8px;padding:9px 11px;color:var(--text);font-size:13px;outline:none;width:100%}.input:focus,.textarea:focus,.select:focus{border-color:var(--accent-border)}.textarea{resize:vertical;line-height:1.5}.btn{display:inline-flex;align-items:center;justify-content:center;gap:7px;height:34px;padding:0 14px;border-radius:8px;border:1px solid var(--border);background:var(--surface);color:var(--text);font-size:13px;font-weight:500;cursor:pointer;transition:background .12s,border-color .12s;white-space:nowrap}.btn:hover{border-color:var(--border-strong);background:var(--surface-hover)}.btn-primary{background:var(--accent);border-color:var(--accent);color:#fff}.btn-primary:hover{background:var(--accent-hover);border-color:var(--accent-hover)}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-sm{height:30px;padding:0 11px;font-size:12.5px}.inline-error{display:flex;align-items:center;gap:8px;border:1px solid color-mix(in srgb,var(--st-stopped) 40%,transparent);background:color-mix(in srgb,var(--st-stopped) 12%,transparent);color:var(--st-stopped);font-size:12.5px;border-radius:8px;padding:9px 12px}.chip{display:inline-flex;align-items:center;gap:6px;height:22px;padding:0 8px;border-radius:6px;font-size:11px;font-weight:600;white-space:nowrap}.chip .dot{width:6px;height:6px;border-radius:50%}.avatar{border-radius:50%;display:flex;align-items:center;justify-content:center;font-weight:700;color:#fff;flex:none}.board-toolbar{height:48px;flex:none;display:flex;align-items:center;gap:10px;padding:0 18px;border-bottom:1px solid var(--border)}.board-select{height:30px;padding:0 28px 0 10px;border-radius:7px;border:1px solid var(--border);background:var(--surface);color:var(--text);font-size:14px;font-weight:600;cursor:pointer;outline:none;max-width:280px}.board-select:hover{border-color:var(--border-strong)}.board-select:focus{border-color:var(--accent-border)}.toolbar-chip{display:flex;align-items:center;gap:6px;font-size:13px;color:var(--text-2);background:var(--surface);border:1px solid var(--border);border-radius:7px;height:30px;padding:0 11px;cursor:pointer}.toolbar-chip:hover{border-color:var(--border-strong);color:var(--text)}.toolbar-add{display:flex;gap:8px;align-items:center}.toolbar-add .input{height:30px;width:200px;padding:0 11px}.variant-switch{display:flex;background:var(--surface);border:1px solid var(--border);border-radius:8px;padding:2px;gap:2px}.variant-switch button,.variant-switch a{border:none;border-radius:6px;height:24px;padding:0 12px;font-size:12px;font-weight:600;cursor:pointer;transition:all .12s;white-space:nowrap;background:transparent;color:var(--text-3);display:inline-flex;align-items:center;text-decoration:none}.variant-switch button.active,.variant-switch a.active{background:var(--accent-soft);color:var(--accent)}.board-scroll{flex:1;min-height:0;overflow-x:auto;overflow-y:hidden}.board{display:flex;gap:12px;padding:16px 18px;height:100%;min-width:max-content}.kanban-col{display:flex;flex-direction:column;width:296px;flex:none;min-height:0}.col-header{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:7px 4px 9px;margin-bottom:4px}.col-header-left{display:flex;align-items:center;gap:8px;min-width:0}.col-dot{width:8px;height:8px;border-radius:50%;flex:none}.col-name{font-size:13px;font-weight:600;color:var(--text);white-space:nowrap}.col-count{font-size:11.5px;font-weight:600;color:var(--text-3);background:var(--surface);padding:0 7px;height:18px;border-radius:9px;display:inline-flex;align-items:center}.col-add{width:24px;height:24px;border:none;background:transparent;color:var(--text-3);border-radius:6px;display:flex;align-items:center;justify-content:center;cursor:pointer;flex:none}.col-add:hover{background:var(--surface-hover);color:var(--text)}.col-body{display:flex;flex-direction:column;gap:9px;flex:1;min-height:0;overflow-y:auto;padding:3px 3px 12px;border-radius:9px;transition:background .12s}.col-body.drag-over{background:var(--accent-soft);outline:1.5px dashed var(--accent-border);outline-offset:-2px}.col-empty{font-size:12px;color:var(--text-3);text-align:center;padding:14px 0;border:1px dashed var(--border);border-radius:8px}.kard{background:var(--surface-2);border:1px solid var(--border);border-radius:9px;padding:11px;cursor:pointer;-webkit-user-select:none;user-select:none;transition:background .12s,border-color .12s}.kard:hover{border-color:var(--border-strong);background:var(--surface-hover)}.kard.standard{display:flex;flex-direction:column;gap:9px}.kard.lanes{display:flex;gap:11px;align-items:flex-start}.kard.waiting{border-color:color-mix(in srgb,var(--st-waiting) 38%,var(--border))}.kard.stopped{border-color:color-mix(in srgb,var(--st-stopped) 45%,var(--border));opacity:.9}.kard.dragging{opacity:.35}.kard-top{display:flex;align-items:center;justify-content:space-between;gap:8px}.kard-top-right{display:flex;align-items:center;gap:5px;flex:none}.kard-title{font-size:13.5px;line-height:1.4;font-weight:500;color:var(--text);word-break:break-word}.kard-foot{display:flex;align-items:center;justify-content:space-between;gap:8px;font-size:11.5px;color:var(--text-3)}.kard-foot .id{font-family:var(--mono)}.kard-foot .who{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.kard-stop{width:24px;height:24px;border:none;background:transparent;color:var(--text-3);border-radius:6px;display:flex;align-items:center;justify-content:center;cursor:pointer;flex:none}.kard-stop:hover{background:color-mix(in srgb,var(--st-stopped) 18%,transparent);color:var(--st-stopped)}.wait-block{display:flex;gap:7px;align-items:flex-start;padding:7px 9px;border-radius:7px;background:color-mix(in srgb,var(--st-waiting) 13%,transparent);border:1px solid color-mix(in srgb,var(--st-waiting) 32%,transparent)}.wait-block .pulse{width:7px;height:7px;border-radius:50%;background:var(--st-waiting);margin-top:4px;flex:none;animation:uspulse 1.6s ease-in-out infinite}.wait-block .wlabel{font-size:11px;font-weight:700;color:var(--st-waiting);letter-spacing:.1px}.wait-block .wq{font-size:12px;color:var(--text-2);line-height:1.4;margin-top:2px;display:-webkit-box;-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.plan-block{padding:7px 9px;border-radius:7px;background:color-mix(in srgb,var(--st-planning) 13%,transparent);border:1px solid color-mix(in srgb,var(--st-planning) 32%,transparent)}.plan-block .plabel{font-size:11px;font-weight:700;color:var(--st-planning);letter-spacing:.1px}.plan-block .pdoc{font-size:12px;color:var(--text-2);line-height:1.4;margin-top:2px;white-space:pre-wrap;display:-webkit-box;-webkit-line-clamp:4;line-clamp:4;-webkit-box-orient:vertical;overflow:hidden}.stopped-tag{display:flex;gap:6px;align-items:center;font-size:11.5px;font-weight:600;color:var(--st-stopped)}.lanes-body{min-width:0;flex:1;display:flex;flex-direction:column;gap:6px}.lanes-row1{display:flex;align-items:center;justify-content:space-between;gap:6px}.lanes-name{font-size:11.5px;font-weight:600;color:var(--text-2)}.panel-backdrop{position:fixed;inset:0;z-index:80;display:flex;justify-content:flex-end;background:#00000080;animation:usfade .15s ease}.panel{width:480px;max-width:94vw;height:100%;background:var(--bg-elev);border-left:1px solid var(--border);box-shadow:var(--shadow);display:flex;flex-direction:column;animation:usslide .2s cubic-bezier(.2,0,.2,1)}.panel-head{padding:16px 18px;border-bottom:1px solid var(--border);flex:none}.panel-head-row{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:12px}.panel-head-left{display:flex;align-items:center;gap:9px;min-width:0}.panel-id{font-family:var(--mono);font-size:12px;color:var(--text-3)}.panel-title{margin:0;font-size:18px;font-weight:600;line-height:1.35;letter-spacing:-.2px}.panel-assignee{display:flex;align-items:center;gap:9px;margin-top:11px}.panel-assignee .who{font-size:13px;font-weight:600}.panel-assignee .role{font-size:11.5px;color:var(--text-3)}.panel-stop{display:flex;align-items:center;gap:6px;height:30px;padding:0 11px;border:1px solid color-mix(in srgb,var(--st-stopped) 40%,transparent);background:transparent;color:var(--st-stopped);border-radius:7px;font-size:12.5px;font-weight:500;cursor:pointer}.panel-stop:hover{background:color-mix(in srgb,var(--st-stopped) 14%,transparent)}.panel-close{width:30px;height:30px;border:none;background:transparent;color:var(--text-2);border-radius:7px;display:flex;align-items:center;justify-content:center;cursor:pointer}.panel-close:hover{background:var(--surface-hover);color:var(--text)}.panel-tabs{display:flex;gap:2px;padding:0 18px;border-bottom:1px solid var(--border);flex:none}.panel-tab{background:transparent;border:none;border-bottom:2px solid transparent;color:var(--text-3);font-size:13px;font-weight:600;padding:11px 4px;margin-right:18px;cursor:pointer;transition:all .12s}.panel-tab.active{border-bottom-color:var(--accent);color:var(--text)}.panel-body{flex:1;min-height:0;overflow-y:auto;padding:16px 18px}.convo-topic{display:flex;align-items:center;gap:8px;margin-bottom:14px;font-size:11.5px;font-weight:600;letter-spacing:.3px;text-transform:uppercase;color:var(--text-3)}.convo-list{display:flex;flex-direction:column;gap:14px}.msg-row{display:flex;flex-direction:column;gap:5px;align-items:flex-start}.msg-row.human{align-items:flex-end}.msg-meta{font-size:11px;padding:0 4px}.msg-meta .name{font-weight:600;color:var(--text-2)}.msg-meta .time{color:var(--text-3)}.bubble{max-width:86%;padding:10px 13px;border-radius:13px;font-size:13px;line-height:1.55;white-space:pre-wrap}.bubble.ai{background:var(--surface);border:1px solid var(--border);border-bottom-left-radius:4px}.bubble.human{background:var(--accent);color:#fff;border-bottom-right-radius:4px}.bubble.question{background:var(--accent-soft);border:1px solid var(--accent-border);border-bottom-left-radius:4px}.opt-list{display:flex;flex-direction:column;gap:8px;margin-top:12px}.opt-btn{display:flex;gap:10px;align-items:flex-start;text-align:left;padding:10px 12px;border:1px solid var(--accent-border);background:var(--bg-elev);border-radius:9px;cursor:pointer;width:100%}.opt-btn:hover{background:var(--accent-soft)}.opt-key{width:20px;height:20px;border-radius:6px;background:var(--accent);color:#fff;font-size:11px;font-weight:700;display:flex;align-items:center;justify-content:center;flex:none}.opt-label{font-size:12.5px;font-weight:600;color:var(--text)}.opt-desc{display:block;font-size:11.5px;color:var(--text-2);line-height:1.45;margin-top:2px}.composer{flex:none;padding:12px 18px;border-top:1px solid var(--border)}.composer-box{display:flex;align-items:flex-end;gap:8px;background:var(--surface);border:1px solid var(--border);border-radius:10px;padding:8px 8px 8px 12px}.composer-box:focus-within{border-color:var(--accent-border)}.composer-box textarea{flex:1;border:none;background:transparent;outline:none;resize:none;color:var(--text);font-size:13px;line-height:1.5;max-height:90px;padding:3px 0}.composer-send{width:32px;height:32px;border:none;border-radius:8px;background:var(--accent);color:#fff;display:flex;align-items:center;justify-content:center;cursor:pointer;flex:none}.composer-send:hover{background:var(--accent-hover)}.composer-send:disabled{opacity:.5;cursor:not-allowed}.act-group{margin-bottom:18px}.act-day{font-size:11px;font-weight:700;letter-spacing:.4px;text-transform:uppercase;color:var(--text-3);margin-bottom:12px}.act-row{display:flex;gap:12px}.act-rail{display:flex;flex-direction:column;align-items:center;flex:none}.act-bullet{width:26px;height:26px;border-radius:50%;background:var(--surface);border:1px solid var(--border);display:flex;align-items:center;justify-content:center;color:var(--text-2)}.act-line{width:1.5px;flex:1;background:var(--border);min-height:8px}.act-body{padding-bottom:16px;min-width:0}.act-summary{font-size:13px;line-height:1.45;color:var(--text)}.act-meta{font-size:11.5px;color:var(--text-3);margin-top:3px}.act-meta .actor{font-weight:600;color:var(--text-2)}.sess-list{display:flex;flex-direction:column;gap:10px}.sess{border:1px solid var(--border);border-radius:10px;padding:13px 14px;background:var(--surface-2)}.sess-head{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:10px}.sess-head-left{display:flex;align-items:center;gap:8px;min-width:0}.sess-sid{font-family:var(--mono);font-size:12.5px;color:var(--text-2)}.sess-link{display:flex;align-items:center;gap:4px;font-size:12px;color:var(--accent);flex:none}.sess-grid{display:flex;gap:18px;font-size:11.5px;color:var(--text-3)}.sess-grid .k{margin-bottom:2px}.sess-grid .v{color:var(--text-2);font-weight:500}.sess-grid .v.mono{font-family:var(--mono)}.toast{position:fixed;bottom:22px;right:22px;z-index:90;display:flex;align-items:center;gap:12px;background:var(--bg-elev);border:1px solid var(--border);border-radius:10px;padding:12px 14px;box-shadow:var(--shadow);min-width:280px;animation:ustoast .2s ease}.toast .msg{font-size:13px;flex:1}.toast .undo{font-size:12.5px;font-weight:600;color:var(--accent);background:transparent;border:none;cursor:pointer;flex:none}.login-screen{height:100vh;display:flex;align-items:center;justify-content:center;background:var(--bg);color:var(--text)}.login-card{width:360px;max-width:90vw;background:var(--bg-elev);border:1px solid var(--border);border-radius:16px;box-shadow:var(--shadow);padding:30px 28px;display:flex;flex-direction:column;gap:16px}.login-brand{display:flex;align-items:center;gap:10px;margin-bottom:4px}.login-brand .name{font-size:18px;font-weight:700;letter-spacing:-.3px}.login-tagline{font-size:12.5px;color:var(--text-3);margin:-10px 0 6px}.row{display:flex;align-items:center;gap:8px}.spacer{flex:1}.loading{color:var(--text-3);font-size:13px;padding:8px 0}
