:root{color:#172026;background:#eef3f6;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-synthesis:none;text-rendering:optimizeLegibility}*{box-sizing:border-box}body{margin:0;min-width:320px;min-height:100vh}button,input,textarea,select{font:inherit}button{cursor:pointer}.login-shell{min-height:100vh;display:grid;place-items:center;padding:24px;background:linear-gradient(180deg,#f8fbfc,#e9eff2)}.login-panel{width:min(420px,100%);padding:32px;background:#fff;border:1px solid #dfe7ec;border-radius:10px;box-shadow:0 24px 70px #1720261f}.brand-mark{width:48px;height:48px;display:grid;place-items:center;color:#0b7168;background:#e4f4f0;border:1px solid #b9dfd6;border-radius:10px}.brand-mark.small{width:36px;height:36px;border-radius:9px}.login-panel h1,.topbar h1{margin:18px 0 6px;font-size:24px;letter-spacing:0}.login-panel p,.topbar p{margin:0;color:#667782;line-height:1.55}.login-form,.stack-form{display:grid;gap:14px;margin-top:26px}label{display:grid;gap:7px;color:#3f4e58;font-size:13px;font-weight:650}input,textarea,select{width:100%;min-height:38px;border:1px solid #cfdae2;border-radius:8px;padding:8px 10px;color:#172026;background:#fff;outline:none}textarea{min-height:88px;resize:vertical}input:focus,textarea:focus,select:focus{border-color:#0b8176;box-shadow:0 0 0 3px #0b81761f}.primary-btn,.secondary-btn,.icon-btn,.new-project,.tab,.project-item,.quick-panel button{border-radius:8px;display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:38px}.primary-btn{border:1px solid #0b7168;color:#fff;background:#0b7168;font-weight:750;padding:0 15px}.primary-btn:hover{background:#075f58}.secondary-btn{border:1px solid #ccd8df;color:#27343c;background:#fff;font-weight:700;padding:0 13px}.text-btn{min-height:28px;padding:0;border:0;color:#0b7168;background:transparent;font-size:13px;font-weight:800}.text-btn:hover{color:#075f58;text-decoration:underline}.secondary-btn:hover,.icon-btn:hover{background:#f2f7f8;border-color:#b8c8d1}.primary-btn.compact,.secondary-btn.compact{min-height:34px;padding:0 11px}.primary-btn:disabled,.secondary-btn:disabled,.new-project:disabled{opacity:.6;cursor:not-allowed}.form-error,.bubble.error{color:#a43129;background:#fff0ed;border:1px solid #efc4bc;border-radius:8px;padding:10px 12px}.app-shell{min-height:100vh;display:grid;grid-template-columns:284px minmax(0,1fr);background:radial-gradient(circle at 82% 4%,rgba(44,183,165,.16),transparent 28%),linear-gradient(180deg,#f6fafb,#edf3f6)}.sidebar{position:sticky;top:0;height:100vh;display:flex;flex-direction:column;gap:18px;padding:16px;color:#d9e7ec;background:linear-gradient(180deg,#101b23,#152833);border-right:1px solid rgba(255,255,255,.08);box-shadow:18px 0 44px #12222c21}.side-brand{display:flex;gap:10px;align-items:center;padding-bottom:8px}.side-brand strong{display:block;font-size:17px;color:#f7fbfc}.side-brand span{display:block;color:#90a7b1;font-size:12px}.side-section-label{display:block;margin:0 0 8px;color:#7f99a5;font-size:11px;font-weight:800;letter-spacing:0}.side-nav{display:grid;gap:5px}.side-nav-item{width:100%;min-height:50px;display:grid;grid-template-columns:22px minmax(0,1fr);align-items:center;gap:10px;padding:8px 10px;border:1px solid transparent;border-radius:8px;color:#b7cbd3;background:transparent;text-align:left}.side-nav-item:hover:not(:disabled){color:#f7fbfc;background:#ffffff0f}.side-nav-item.active{color:#e9fffb;background:#17b5a329;border-color:#4cd6c252}.side-nav-item:disabled{opacity:.42;cursor:not-allowed}.side-nav-item strong,.side-nav-item small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.side-nav-item strong{font-size:13px}.side-nav-item small{margin-top:2px;color:#7f99a5;font-size:11px;font-weight:600}.project-switcher{min-height:0;display:flex;flex-direction:column;padding-top:12px;border-top:1px solid rgba(255,255,255,.09)}.project-switcher-head{display:flex;align-items:center;justify-content:space-between;gap:8px}.project-list{display:grid;gap:6px;overflow:auto;padding-right:2px}.project-item{width:100%;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;align-items:center;min-height:44px;padding:9px 10px;border:1px solid rgba(255,255,255,.08);color:#d9e7ec;background:#ffffff09;text-align:left;cursor:default;-webkit-user-select:none;user-select:none}.project-item span,.project-item small,.table-row strong,.table-row span{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.project-item small{color:#8ba3ad;font-size:12px}.project-item:hover{background:#ffffff12}.project-item.active{color:#f2fffd;background:#14bca72e;border-color:#4dddcb5c}.project-rename-form{grid-column:1 / -1;display:grid;grid-template-columns:minmax(0,1fr) 32px 32px;gap:6px;align-items:center}.project-rename-form input{min-height:32px;padding:6px 8px}.context-menu{position:fixed;z-index:30;min-width:152px;padding:6px;border:1px solid #d7e1e7;border-radius:9px;background:#fff;box-shadow:0 18px 44px #17202629}.context-menu button{width:100%;min-height:34px;padding:0 10px;border:0;border-radius:7px;display:flex;align-items:center;gap:8px;color:#27343c;background:transparent;text-align:left;cursor:default}.context-menu button:hover{background:#f2f6f7}.context-menu button.danger{color:#a33a33}.context-menu button.danger:hover{color:#fff;background:#b63d35}.main{min-width:0;padding:24px 28px 36px}.topbar{min-height:76px;display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:18px;padding:16px 18px;background:#ffffffb8;border:1px solid rgba(205,219,226,.85);border-radius:10px;box-shadow:0 10px 30px #1720260f;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px)}.topbar h1{margin-top:0}.page-title{min-width:0;display:flex;align-items:center;gap:12px}.page-title h1{margin:0 0 4px}.page-title p{max-width:760px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.page-icon{width:42px;height:42px;display:grid;place-items:center;flex:0 0 auto;color:#08685f;background:#e3f5f1;border:1px solid #b8e4da;border-radius:8px}.top-actions{display:flex;align-items:center;gap:10px}.sync-notice{display:flex;align-items:center;gap:12px;margin:-6px 0 18px;padding:12px 14px;color:#155f58;background:#eef9f5;border:1px solid #bdded3;border-radius:8px}.sync-notice svg,.sync-placeholder svg{flex:0 0 auto;animation:spin 1s linear infinite}.sync-notice div{display:grid;gap:2px;min-width:0}.sync-notice strong{font-size:13px}.sync-notice span{color:#3f6f68;font-size:13px;line-height:1.45}.sync-placeholder{min-height:180px;display:grid;place-items:center;align-content:center;gap:8px;grid-column:1 / -1;padding:24px;color:#155f58;background:#f5fbf9;border:1px dashed #bdded3;border-radius:8px;text-align:center}.sync-placeholder span{max-width:420px;color:#60777b;font-size:13px;line-height:1.5}@keyframes spin{to{transform:rotate(360deg)}}.icon-btn{width:38px;border:1px solid #ccd8df;color:#40505a;background:#fff}.sidebar .icon-btn{border-color:#ffffff24;color:#d8e8ed;background:#ffffff0f}.sidebar .icon-btn:hover{border-color:#4fdac780;background:#20c2ad29}.icon-btn.small{width:32px;min-height:32px}.icon-btn.danger{color:#9f342d}.icon-btn.danger:hover{color:#fff;background:#b63d35;border-color:#b63d35}.user-chip{display:inline-flex;gap:8px;align-items:center;height:38px;padding:0 12px;background:#fff;border:1px solid #ccd8df;border-radius:999px;color:#35424a}.tabs{position:sticky;top:0;z-index:10;display:flex;gap:4px;margin:0 -24px 18px;padding:0 24px 12px;overflow-x:auto;background:#f3f6f8;border-bottom:1px solid #dfe7ec}.tab{border:0;padding:0 12px;color:#51616b;background:transparent;font-weight:700}.tab:hover{background:#e9eff2}.tab.active{color:#075f58;background:#dff1ed}.overview-layout{display:grid;gap:14px}.command-panel{min-height:150px;display:flex;align-items:center;justify-content:space-between;gap:18px;padding:22px;color:#eafffb;background:linear-gradient(135deg,#101b23fa,#14363ef5),#111d25;border:1px solid rgba(64,216,198,.24);border-radius:10px;box-shadow:0 18px 50px #101b232e}.command-panel h2{margin:8px 0;font-size:30px;letter-spacing:0}.command-panel p{max-width:620px;margin:0;color:#a7bcc4;line-height:1.6}.eyebrow{color:#5ce3ce;font-size:12px;font-weight:800;letter-spacing:0}.command-status{width:138px;height:104px;display:grid;place-items:center;align-content:center;gap:4px;background:#ffffff12;border:1px solid rgba(94,224,207,.28);border-radius:8px}.command-status span{font-size:31px;font-weight:850}.command-status small{color:#9fb5be}.content-grid{display:grid;grid-template-columns:repeat(4,minmax(150px,1fr));gap:14px}.overview-columns{display:grid;grid-template-columns:minmax(320px,.8fr) minmax(0,1.2fr);gap:14px;align-items:start}.metric,.panel,.empty-state{background:#fff;border:1px solid #dfe7ec;border-radius:10px;box-shadow:0 1px 2px #17202609}.metric{min-height:118px;display:grid;align-content:start;gap:7px;padding:16px}.metric svg{color:#0b7168}.metric span,.metric small,.empty-hint,.table-row span,.info-table span{color:#697983}.metric strong{font-size:27px}.panel{padding:16px}.panel.wide{grid-column:1 / -1}.panel-title{display:flex;align-items:center;gap:8px;margin-bottom:14px;color:#172026;font-weight:780}.info-table{display:grid;grid-template-columns:128px minmax(0,1fr);gap:11px 18px;line-height:1.45}.checklist{display:grid;gap:8px}.check-item{width:100%;min-height:48px;display:grid;grid-template-columns:70px minmax(0,1fr) 18px;gap:10px;align-items:center;padding:9px 10px;border:1px solid #dbe5eb;border-radius:8px;color:#26343d;background:#f7fafb;text-align:left}.check-item:hover{border-color:#bdd1d9;background:#eef6f6}.check-item span{color:#9f4f26;font-size:12px;font-weight:800}.check-item.done span{color:#0b7168}.check-item strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.split-layout,.agent-layout,.management-layout,.requirements-list-page,.requirement-detail-page,.members-page,.reports-layout,.ops-layout{display:grid;gap:14px;align-items:start}.split-layout,.agent-layout{grid-template-columns:320px minmax(0,1fr)}.management-layout{grid-template-columns:minmax(500px,1.2fr) minmax(360px,.8fr)}.reports-layout,.ops-layout,.prototype-layout{grid-template-columns:280px minmax(0,1fr)}.prototype-layout{display:grid;grid-template-columns:minmax(340px,.85fr) minmax(0,1.15fr);gap:14px;align-items:start}.prototype-form{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:13px}.prototype-form .full{grid-column:1 / -1}.prototype-help{display:grid;gap:4px;padding:12px;color:#40505a;background:#f4f8f9;border:1px solid #dbe6eb;border-radius:8px}.prototype-help strong{color:#0b7168}.prototype-help span{line-height:1.55}.docker-status{display:grid;gap:4px;margin-bottom:14px;padding:12px;color:#5d3416;background:#fff6e8;border:1px solid #efd2a5;border-radius:8px}.docker-status.ready{color:#155f58;background:#eaf8f4;border-color:#bdded3}.docker-status span,.docker-status small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.prototype-build-options{padding:12px;background:#fbfcfd;border:1px solid #dbe6eb;border-radius:8px}.build-option-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.build-log{display:grid;gap:4px;margin-top:14px;max-height:240px;overflow:auto;padding:12px;color:#cde3e9;background:#111d25;border-radius:8px;font-family:SFMono-Regular,Consolas,monospace;font-size:12px}.prototype-row{grid-template-columns:minmax(220px,1fr) 96px 120px 136px}.list-panel,.editor-panel,.requirements-list-page .list-panel,.requirement-detail-page .panel,.members-page .panel{min-width:0}.panel-subtitle{margin:6px 0 0;color:#697983;font-size:13px;line-height:1.5}.quick-link-form{display:grid;grid-template-columns:minmax(240px,1.2fr) minmax(180px,.8fr) auto;gap:10px;align-items:end;margin:12px 0;padding:12px;background:#f7fafb;border:1px solid #dfe9ee;border-radius:8px}.quick-link-form label{display:grid;gap:6px;color:#55656d;font-size:12px;font-weight:650}.quick-link-form input,.quick-link-main{min-width:0}.inline-message{margin-bottom:10px;color:#0b7168;font-size:13px;font-weight:650}.requirement-detail-page{max-width:980px}.detail-header{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:18px;padding-bottom:14px;border-bottom:1px solid #e1e9ee}.detail-header .panel-title{margin:8px 0 4px}.detail-header p{margin:0;color:#697983;line-height:1.55}.requirement-editor-form{grid-template-columns:repeat(3,minmax(0,1fr))}.panel-head,.list-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px}.row-actions{display:inline-flex;align-items:center;gap:8px;flex-wrap:wrap}.panel-head .panel-title{margin-bottom:0}.list-toolbar{margin:12px 0;color:#697983;font-size:12px}.editor-form,.settings-form{display:grid;gap:13px}.editor-form{grid-template-columns:repeat(2,minmax(0,1fr))}.settings-form{grid-template-columns:repeat(3,minmax(180px,1fr))}.editor-form .full,.editor-form .form-actions,.settings-form .full,.form-actions{grid-column:1 / -1}.editor-form textarea{min-height:86px}.field-label{display:block;margin-bottom:8px;color:#3f4e58;font-size:13px;font-weight:700}.role-chip-grid{display:flex;flex-wrap:wrap;gap:8px}.role-chip{min-height:32px;padding:0 10px;border:1px solid #d8e2e8;border-radius:999px;display:inline-flex;align-items:center;gap:7px;background:#fff;color:#27343c;cursor:pointer}.role-chip input{width:14px;height:14px;margin:0}.role-chip strong{font-size:13px}.role-chip.checked{border-color:#55aa9d;background:#e7f5f1;color:#075f58}.form-section{padding:11px 12px;border:1px solid #d8e2e8;border-radius:8px;background:#f8fafb}.form-section summary{color:#27343c;font-size:13px;font-weight:760;cursor:pointer}.section-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:12px}.assignment-picker{display:grid;gap:10px;padding:12px;border:1px solid #d8e2e8;border-radius:9px;background:#f8fafb}.assignment-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.assignment-head strong{display:block;color:#27343c;font-size:13px}.assignment-head span,.assignment-head small{display:block;margin-top:3px;color:#697983;font-size:12px;line-height:1.45}.assignment-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:8px}.assignment-option{min-height:54px;padding:9px 10px;border:1px solid #d8e2e8;border-radius:8px;display:grid;grid-template-columns:16px minmax(0,1fr);gap:9px;align-items:center;background:#fff;cursor:pointer}.assignment-option.checked{border-color:#55aa9d;background:#e7f5f1}.assignment-option input{width:14px;height:14px;margin:0}.assignment-option span,.assignment-option strong,.assignment-option small{min-width:0}.assignment-option strong,.assignment-option small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.assignment-option strong{color:#27343c;font-size:13px}.assignment-option small{margin-top:3px;color:#697983;font-size:12px}.table-list,.report-list,.action-list,.quick-panel{display:grid;gap:8px}.requirement-card-grid,.member-card-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.member-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:12px 0}.member-toolbar>span{color:#687a84;font-size:12px;white-space:nowrap}.search-box{display:flex;align-items:center;gap:8px;flex:1;min-width:0;padding:0 10px;color:#74848d;background:#fff;border:1px solid #d8e4ea;border-radius:8px}.search-box input{width:100%;min-width:0;border:0;background:transparent;box-shadow:none}.search-box input:focus{outline:none;box-shadow:none}.member-department-list{display:grid;gap:16px}.member-department{display:grid;gap:10px}.member-department-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding-bottom:6px;border-bottom:1px solid #e4edf1}.member-department-head strong{min-width:0;color:#22313a;font-size:14px;overflow-wrap:anywhere}.member-department-head span{color:#71828b;font-size:12px;white-space:nowrap}.requirement-card,.member-card{display:grid;gap:10px;align-content:start;min-height:188px;padding:12px;background:#fff;border:1px solid #e1e9ee;border-radius:8px}.requirement-card[role=button]{cursor:pointer}.requirement-card:hover,.requirement-card.selected{background:#f2f8f6;border-color:#bdded5}.card-headline,.member-card-title{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;align-items:start}.card-headline strong,.member-card-title strong{min-width:0;color:#22313a;font-size:14px;line-height:1.4;overflow-wrap:anywhere}.member-card-title span{max-width:112px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#5f717b;font-size:12px;text-align:right}.card-meta-grid{display:grid;grid-template-columns:58px minmax(0,1fr);gap:6px 8px;align-items:start}.card-meta-grid span{color:#72828b;font-size:12px}.card-meta-grid strong{min-width:0;color:#30424b;font-size:12px;font-weight:650;line-height:1.35;overflow-wrap:anywhere}.card-link{justify-self:start}.empty-link{color:#8b9aa3;font-size:12px}.table-row{display:grid;grid-template-columns:1fr 140px 160px;gap:12px;align-items:center;min-height:52px;padding:9px 11px;background:#fff;border:1px solid #e1e9ee;border-radius:8px}.table-row[role=button]{width:100%;color:inherit;text-align:left;cursor:pointer}.table-row:hover,.table-row.selected{background:#f2f8f6;border-color:#bdded5}.rich-row{grid-template-columns:minmax(240px,1fr) 110px 140px 120px 120px 34px}.user-row{grid-template-columns:minmax(160px,1fr) 120px minmax(180px,1fr) 110px}.log-row{grid-template-columns:1fr 120px 190px}.directory-meta{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;padding:12px;background:#f8fafb;border:1px solid #e1e9ee;border-radius:8px}.directory-meta.compact{margin-top:12px;padding:0;border:0;background:transparent}.directory-meta div,.table-row div{min-width:0}.directory-meta span{display:block;color:#697983;font-size:12px}.directory-meta strong{display:block;margin-top:4px;overflow:hidden;color:#27343c;text-overflow:ellipsis;white-space:nowrap}.action-list button,.filter-item{width:100%;min-height:60px;padding:12px;border:1px solid #d8e2e8;border-radius:9px;display:grid;grid-template-columns:24px minmax(0,1fr);gap:10px;align-items:center;color:#27343c;background:#fff;text-align:left}.action-list button:hover,.filter-item:hover,.filter-item.active{background:#f2f8f6;border-color:#bdded5}.action-list button:disabled{opacity:.58}.action-list strong,.filter-item strong{display:block;font-size:13px}.action-list small,.filter-item span{display:block;margin-top:3px;color:#697983;font-size:12px;line-height:1.45}.inline-status{color:#697983;font-size:12px}.report-filter{position:sticky;top:70px;display:grid;gap:8px}.filter-item{grid-template-columns:minmax(0,1fr);min-height:52px;cursor:pointer}.progress-card{display:grid;gap:10px;padding:12px;background:#fff;border:1px solid #e1e9ee;border-radius:9px}.progress-card-head{display:grid;grid-template-columns:110px minmax(0,1fr) auto;gap:10px;align-items:center}.progress-card-head span{overflow:hidden;color:#697983;text-overflow:ellipsis;white-space:nowrap}.progress-grid{display:grid;grid-template-columns:64px minmax(0,1fr);gap:7px 10px}.progress-grid span{color:#697983;font-size:12px;font-weight:700}.progress-grid p{margin:0;color:#27343c;line-height:1.5}.status-pill{display:inline-flex;align-items:center;justify-content:center;width:fit-content;max-width:100%;min-height:24px;padding:0 9px;border-radius:999px;color:#075f58!important;background:#e4f4f0;font-size:12px;font-weight:750}.status-pill.warning{color:#875000!important;background:#fff3d7}.row-link{width:30px;height:30px;display:inline-flex;align-items:center;justify-content:center;color:#0b7168;border:1px solid #cce1dc;border-radius:8px;background:#fff}.table-row a,.requirement-title-link{color:#0b7168;font-weight:700;text-decoration:none}.requirement-title-link{display:inline-flex;max-width:100%;align-items:center;gap:6px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.empty-state{display:grid;place-items:center;gap:12px;min-height:360px;text-align:center;padding:32px}.empty-state svg{color:#0b7168}.empty-state h2{margin:0}.empty-state p{max-width:520px;margin:0;color:#697983}.empty-hint{padding:10px}.empty-hint.padded{padding:22px;text-align:center}.quick-panel{align-content:start}.quick-panel button{justify-content:flex-start;padding:0 12px;background:#fff;border:1px solid #d8e2e8;color:#35424a}.chat-panel{display:grid;grid-template-rows:minmax(440px,calc(100vh - 250px)) auto;min-width:0;background:#fff;border:1px solid #dfe7ec;border-radius:10px;overflow:hidden}.chat-stream{display:flex;flex-direction:column;gap:10px;padding:16px;overflow:auto;background:#f8fafb}.bubble{max-width:860px;white-space:pre-wrap;line-height:1.55;padding:11px 13px;border-radius:9px;background:#fff;border:1px solid #d8e2e8}.bubble.muted{color:#56646e;background:#edf3f6}.bubble.result{border-color:#bedbd6}.bubble.confirm,.bubble.success{display:grid;gap:4px;background:#eef9f5;border-color:#bdded3}.monospace{font-family:SFMono-Regular,Consolas,monospace;font-size:12px}.chat-input{display:flex;gap:10px;padding:12px;border-top:1px solid #dfe7ec}.chat-input input{flex:1}.form-actions{display:flex;align-items:center;gap:10px;color:#0b7168}@media (max-width: 1100px){.app-shell{grid-template-columns:1fr}.sidebar{position:static;height:auto;border-right:0;border-bottom:1px solid rgba(255,255,255,.12)}.project-list{grid-template-columns:repeat(auto-fit,minmax(180px,1fr))}.content-grid,.overview-columns,.split-layout,.agent-layout,.management-layout,.reports-layout,.ops-layout,.prototype-layout,.quick-link-form,.requirement-card-grid,.member-card-grid,.settings-form,.prototype-form,.build-option-grid,.table-row,.rich-row,.user-row,.log-row{grid-template-columns:1fr}.topbar,.command-panel{align-items:flex-start;flex-direction:column}.command-status{width:100%;height:auto;min-height:82px}}
