@font-face{font-family:XimiMiSans;src:url('/assets/misans-regular.ttf') format('truetype');font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:XimiMiSans;src:url('/assets/misans-medium.ttf') format('truetype');font-weight:500;font-style:normal;font-display:swap}
@font-face{font-family:XimiMiSans;src:url('/assets/misans-bold.ttf') format('truetype');font-weight:700;font-style:normal;font-display:swap}
:root{--bg:#eff0f5;--paper:#fbfcfe;--ink:#0f2054;--text:#10235b;--muted:#7d7f87;--line:#dddfe6;--green:#454e69;--soft-green:#e7eaf2;--lime:#adbbe6;--amber:#aa7330;--soft-amber:#fbf2df;--purple:#7d6b8c;--soft-purple:#f0ecf5;--red:#b96c56;--shadow:0 16px 70px #0f205212}
*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font-family:XimiMiSans,sans-serif;font-weight:400;font-synthesis:none;font-size:15px;line-height:1.6}button,input,select,textarea{font:inherit;color:inherit}button,a,input,select,textarea{-webkit-tap-highlight-color:transparent}button,a{touch-action:manipulation}button{cursor:pointer}button{border:0;background:none}button:disabled{opacity:.42;cursor:not-allowed}a{color:inherit;text-decoration:none}button:focus-visible,a:focus-visible{outline:3px solid #8391bc;outline-offset:4px}input:focus,textarea:focus,select:focus{outline:none;border-color:#77809b;box-shadow:0 0 0 3px #7d88aa20}::selection{background:#adbbe6}.svg-defs{position:absolute;width:0;height:0;overflow:hidden}.icon{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.55;stroke-linecap:round;stroke-linejoin:round;flex-shrink:0}.sidebar{position:fixed;inset:0 auto 0 0;width:222px;background:var(--ink);color:#d6dae5;padding:30px 20px 0;display:flex;flex-direction:column;z-index:20}.brand{display:flex;align-items:center;gap:12px;color:#e9ecf6;font-size:24px;line-height:1.1;margin:0 8px 37px}.brand-small{display:block;font-size:12px;letter-spacing:2.5px;margin-top:8px;color:#bdc1cd}.sidebar-label{font-size:10px;letter-spacing:2.3px;color:#9ca2b2;display:flex;justify-content:space-between;margin:0 10px 11px}.sidebar-label span{opacity:.5}.project-switch{border:1px solid #ffffff23;border-radius:8px;padding:11px 9px;display:flex;align-items:center;gap:8px;color:#e8eaf0;width:100%;text-align:left;font-size:13px;margin-bottom:28px}.project-switch>span:nth-child(2){overflow:hidden;white-space:nowrap;text-overflow:ellipsis;flex:1}.project-switch .icon{width:14px}.project-initial{display:grid;place-items:center;width:24px;height:24px;background:#ffffff12;border-radius:5px;flex-shrink:0;font-size:12px}.nav-link{width:100%;display:flex;align-items:center;gap:12px;color:#b8bcc9;padding:12px 14px;border-radius:7px;text-align:left;font-size:14px;margin:3px 0;transition:.18s}.nav-link.active{background:#adbbe6;color:#0f2055}.nav-link:hover:not(.active){background:#ffffff0b;color:white}.nav-count{margin-left:auto;font-size:11px;border-radius:4px;background:#12276710;padding:0 6px;line-height:21px}.private-dot{width:5px;height:5px;border-radius:50%;background:#969eb6;margin-left:auto}.nav-divider{height:1px;background:#ffffff16;margin:24px 12px 16px}.sidebar-note{margin:auto 12px 36px;padding-top:40px}.tiny-cross{font-size:28px;color:#adbbe6}.sidebar-note p{font-size:22px;line-height:1.8;color:#dbdee9;margin:10px 0 15px}.sidebar-note>span:last-child{font-size:8px;letter-spacing:1.5px;color:#999fb1}.local-status{border-top:1px solid #ffffff19;display:flex;gap:9px;align-items:center;padding:20px 4px;font-size:11px;line-height:1.3}.status-light{width:6px;height:6px;border-radius:50%;background:#899cd7;flex-shrink:0}.local-status small{display:block;font-size:10px;color:#9aa0b2;margin-top:7px}.version{margin-left:auto;color:#9aa0b2;font-size:10px}.workspace{margin-left:222px;min-height:100vh;display:flex;flex-direction:column}.topbar{height:72px;border-bottom:1px solid var(--line);padding:0 40px;display:flex;align-items:center;justify-content:space-between;background:#f3f4f8}.breadcrumb{display:flex;gap:15px;color:var(--muted);font-size:12px}.breadcrumb strong{font-weight:400;color:var(--ink)}.breadcrumb>span{color:#b4b7c1}.topbar-right{display:flex;gap:24px;align-items:center}.today{font-size:12px;color:var(--muted)}.avatar{width:30px;height:30px;background:#dcdfe9;border-radius:50%;font-size:13px;display:grid;place-items:center;color:#454c63}main{padding:36px 40px 0;max-width:1650px;width:100%;margin:0 auto;flex:1}.project-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:24px}.eyebrow{color:var(--muted);font-size:10px;letter-spacing:2.2px;display:flex;align-items:center;gap:12px}.eyebrow .demo-badge{font-size:10px;letter-spacing:.5px;color:#7f8491;border:1px solid #d5d8e1;padding:0 6px;border-radius:3px}.project-heading h1{font-size:34px;font-weight:400;line-height:1.4;margin:10px 0 7px;letter-spacing:1px;color:var(--ink)}.project-meta{color:var(--muted);font-size:12px;display:flex;gap:16px;align-items:center;flex-wrap:wrap}.project-meta .separator{color:#cbced7}.project-actions{display:flex;align-items:center;gap:10px;padding-top:17px}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;border:1px solid #cfd2dd;padding:9px 15px;border-radius:6px;font-size:13px;background:transparent;line-height:1.65;white-space:nowrap;transition:background .15s,transform .15s}.btn:hover{background:#dfe2ec}.btn:active{transform:translateY(1px)}.btn.primary{background:var(--green);color:#fbfcfe;border-color:var(--green)}.btn.primary:hover{background:#152d77}.btn.lime{background:var(--lime);color:var(--ink);border-color:var(--lime)}.btn.soft{background:#fbfcfe;border-color:var(--line)}.btn.small{font-size:11px;padding:5px 9px;gap:5px}.btn.small .icon{width:14px;height:14px}.btn .icon{width:16px;height:16px}.icon-button{display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;border-radius:6px;color:#777d90}.icon-button:hover{background:#dfe2ec}.icon-button .icon{width:18px;height:18px}.pipeline{display:flex;align-items:center;justify-content:space-between;gap:16px;margin:30px 0 26px;padding:14px 20px;border:1px solid #d6dae5;background:#e6e9f0;border-radius:8px}.pipeline-steps{display:flex;gap:15px;align-items:center;color:#888c9a;font-size:12px}.stage{display:flex;align-items:center;gap:7px;white-space:nowrap}.stage-dot{width:19px;height:19px;border:1px solid #b2b8c8;display:inline-grid;place-items:center;border-radius:50%;font-size:9px}.stage.current{color:var(--green)}.stage.current .stage-dot{border-color:var(--green);background:var(--green);color:#edf0f9}.stage.done{color:var(--green)}.pipeline-arrow{height:1px;width:25px;background:#c3c8d8}.pipeline-note{font-size:11px;color:#72788a}.metrics{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:28px}.metric{text-align:left;background:var(--paper);border:1px solid var(--line);border-radius:9px;padding:18px 20px 15px;min-width:0;position:relative}.metric:hover{border-color:#a8b0c6}.metric-top{display:flex;justify-content:space-between;align-items:center;font-size:12px;color:#6c7181}.metric-top .icon{width:17px;height:17px;opacity:.75}.metric-number{font-size:35px;line-height:1.2;color:var(--ink);margin:12px 0 9px;display:flex;align-items:baseline;gap:6px}.metric-number small{font-size:14px;color:#9095a5}.metric-bottom{font-size:10px;color:#808696;display:flex;justify-content:space-between;gap:4px}.metric-line{height:3px;border-radius:3px;background:#e1e5f0;margin:0 0 10px;overflow:hidden}.metric-line span{display:block;height:100%;background:#6b779a;min-width:0}.metric.warn .metric-top,.metric.warn .metric-number{color:#ad7d3f}.metric.warn{background:#fdfbf5}.metric.warn .metric-line{background:#f3ead4}.metric.warn .metric-line span{background:#d7b476}.list-panel{border:1px solid var(--line);border-radius:9px;background:var(--paper);overflow:hidden;min-height:300px}.panel-toolbar{padding:18px 20px;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;gap:14px}.panel-title{font-size:17px;display:flex;align-items:center;gap:9px;color:var(--ink)}.panel-title small{color:#9196a4;font-size:11px}.toolbar-tools{display:flex;gap:10px;align-items:center}.search{display:flex;align-items:center;gap:8px;border:1px solid var(--line);border-radius:5px;padding:7px 10px;background:#f8f9fd;max-width:190px}.search input{width:100%;padding:0;border:0;background:transparent;font-size:12px;outline:none;box-shadow:none}.search .icon{width:15px;height:15px;color:#868c9d}.toolbar-select{border:1px solid var(--line);border-radius:5px;padding:7px 24px 7px 10px;font-size:11px;background:var(--paper);max-width:180px}.list-tabs{display:flex;gap:23px;padding:0 20px;border-bottom:1px solid var(--line);overflow-x:auto}.list-tab{white-space:nowrap;position:relative;padding:13px 0;font-size:12px;color:#838899}.list-tab.active{color:var(--green)}.list-tab.active:after{content:'';position:absolute;bottom:0;height:2px;background:var(--green);left:0;right:0}.list-tab .count{font-size:10px;padding:1px 5px;border-radius:3px;background:#e9ebf1;margin-left:5px}.list-labels{display:grid;grid-template-columns:minmax(220px,1fr) 125px 125px 110px 34px;gap:16px;padding:10px 24px 10px 79px;background:#f5f6fb;color:#9195a3;font-size:10px;border-bottom:1px solid #e5e8f0}.design-row{display:grid;grid-template-columns:38px minmax(220px,1fr) 125px 125px 110px 34px;gap:16px;align-items:center;padding:21px 24px;border-bottom:1px solid #e4e6ee;transition:background .15s}.design-row:last-child{border-bottom:0}.design-row:hover{background:#f5f6fb}.row-code{font-size:11px;color:#8e95a9;align-self:start;padding-top:4px}.row-title{display:flex;gap:8px;align-items:center;flex-wrap:wrap;font-size:16px;color:#13296b;line-height:1.55}.row-title button{text-align:left;padding:0}.row-title button:hover{color:#636f92}.row-subtitle{font-size:11px;color:#8c919f;line-height:1.7;margin-top:5px;overflow:hidden;display:-webkit-box;-webkit-line-clamp:1;-webkit-box-orient:vertical}.row-alerts{font-size:10px;color:#b0874e;margin-top:7px;display:flex;gap:7px;flex-wrap:wrap}.row-alert{display:inline-flex;align-items:center;gap:4px}.row-alert:before{content:'';width:3px;height:3px;background:#cbaa6d;border-radius:50%}.pill{display:inline-flex;align-items:center;gap:5px;border-radius:4px;padding:4px 8px;font-size:11px;line-height:1.4;white-space:nowrap;width:max-content}.pill:before{content:'';width:4px;height:4px;border-radius:50%;background:currentColor}.pill.requirement-confirmed,.pill.approved{color:#485478;background:#e6e9f3}.pill.pending{background:#edeef3;color:#808698}.pill.missing{background:var(--soft-amber);color:#aa7e3e}.pill.todo{color:#8a8f9e;background:#e9ebf1}.pill.designing{color:#577b91;background:#eaf1f4}.pill.submitted{color:#827094;background:#f1edf5}.pill.revision{color:#b77c57;background:#fbefdf}.priority{font-size:11px;color:#959aa9;display:flex;align-items:center;gap:6px}.priority.high{color:#b36c51}.priority.medium{color:#ab8d4c}.priority.low{color:#6b738c}.priority-lines{display:flex;align-items:flex-end;gap:2px;height:12px}.priority-lines i{display:block;width:3px;background:currentColor;opacity:.25;border-radius:1px}.priority-lines i:nth-child(1){height:4px}.priority-lines i:nth-child(2){height:8px}.priority-lines i:nth-child(3){height:12px}.priority.high i,.priority.medium i:nth-child(-n+2),.priority.low i:first-child{opacity:1}.children-list{margin:9px 0 0;padding-left:12px;border-left:1px solid #d2d6e3;display:flex;flex-direction:column;gap:8px}.child-line{display:flex;gap:9px;align-items:center;font-size:11px;color:#747c93}.child-line button{text-align:left;padding:0;flex:1}.child-line .pill{font-size:9px;padding:2px 5px}.list-foot{padding:13px 23px;display:flex;justify-content:space-between;font-size:10px;color:#8e94a5;background:#f6f8fc}.list-foot span:first-child{display:flex;align-items:center;gap:6px}.list-foot .icon{width:13px;height:13px}.workspace-footer{display:flex;justify-content:space-between;padding:30px 40px 24px;color:#959aa8;font-size:10px;gap:20px}.workspace-footer span:first-child{font-size:9px;letter-spacing:1.8px}dialog{padding:0;color:var(--text);font-family:inherit;border:1px solid var(--line)}dialog::backdrop{background:#0e1e4d50;backdrop-filter:blur(3px)}.drawer{position:fixed;inset:0 0 0 auto;margin:0;width:490px;max-width:96vw;height:100dvh;max-height:100dvh;border:0;border-left:1px solid var(--line);background:#f6f8fc;box-shadow:-15px 0 70px #142c3020}.drawer-head{padding:25px 28px 19px;border-bottom:1px solid var(--line);display:flex;justify-content:space-between;align-items:flex-start;background:var(--paper);position:sticky;top:0;z-index:2}.drawer-head h2{font-weight:400;font-size:23px;margin:6px 0 0}.drawer-head .eyebrow{font-size:10px}.drawer form{padding:0 28px}.editor-tabs{display:flex;gap:22px;padding-top:8px;border-bottom:1px solid var(--line);position:sticky;top:100px;background:#f6f8fc;z-index:1}.editor-tabs button{padding:12px 0;font-size:12px;border-bottom:2px solid transparent;color:#7f8598}.editor-tabs button.active{border-color:var(--green);color:var(--green)}.form-section{padding:22px 0;border-bottom:1px solid var(--line)}.form-section h3{font-size:13px;font-weight:400;margin:0 0 15px;display:flex;justify-content:space-between;align-items:center}.field{display:flex;flex-direction:column;gap:7px;margin-bottom:16px;min-width:0}.field:last-child{margin-bottom:0}.field>label,.field>.field-label{font-size:12px;color:#6f7586;display:flex;align-items:center;justify-content:space-between;gap:10px}.field .required-tag{font-size:10px;color:#b58b50}.field input,.field textarea,.field select{width:100%;background:var(--paper);border:1px solid #d5d9e4;border-radius:5px;padding:10px 12px;font-size:13px;line-height:1.7}.field textarea{resize:vertical;min-height:88px}.field small,.help-text{font-size:11px;color:#868b9c;line-height:1.8}.field.has-missing input,.field.has-missing textarea,.field.has-missing select{border-color:#dfc799;background:#fffcf4}.field-row{display:grid;grid-template-columns:1fr 1fr;gap:14px}.field-row .field{margin-bottom:16px}.inline-check{display:flex;align-items:center;gap:9px;font-size:12px;color:#5a6176;cursor:pointer}.inline-check input{accent-color:var(--green);width:15px;height:15px}.material-row{display:flex;gap:9px;align-items:center;margin-bottom:9px}.material-row input[type=text]{width:100%;border:1px solid var(--line);background:var(--paper);padding:8px 9px;border-radius:4px;font-size:12px}.material-row input[type=checkbox]{accent-color:var(--green)}.material-row .icon-button{width:26px;height:26px;flex-shrink:0}.drawer-footer{position:sticky;bottom:0;background:#f6f8fcee;backdrop-filter:blur(10px);padding:17px 28px;display:flex;gap:10px;justify-content:space-between;border-top:1px solid var(--line);z-index:2}.drawer-footer .btn.primary{flex:1}.drawer-inner{min-height:calc(100% - 76px)}.status-box{padding:16px;border:1px solid var(--line);border-radius:7px;background:var(--paper);margin:18px 0}.status-box p{font-size:11px;color:#838a9d;margin:10px 0 0}.status-box .action-row{margin-top:15px;display:flex;gap:7px;flex-wrap:wrap}.status-box h3{font-size:12px;font-weight:400;margin:0 0 10px;color:#73798c}.timeline{padding:8px 0}.timeline-entry{position:relative;padding:0 0 23px 18px;border-left:1px solid #ced2e0}.timeline-entry:before{content:'';position:absolute;left:-3px;top:7px;width:5px;height:5px;background:#838daa;border-radius:50%}.timeline-entry strong{font-weight:400;font-size:12px}.timeline-entry small{display:block;font-size:10px;color:#8c92a5}.timeline-entry p{font-size:11px;white-space:pre-wrap;color:#707890;margin:5px 0}.modal{width:540px;max-width:94vw;max-height:90dvh;border-radius:12px;background:#f6f8fc;box-shadow:var(--shadow)}.modal-head{display:flex;justify-content:space-between;padding:24px 28px 14px;align-items:center}.modal h2{font-size:22px;font-weight:400;margin:0}.modal-body{padding:5px 28px 26px}.modal-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:24px}.modal-description{font-size:12px;color:#808697;margin:0 0 23px}.empty{padding:55px 24px;text-align:center;color:#808699}.empty .empty-symbol{font-size:32px;color:#97a0bb;margin-bottom:10px}.empty h3{font-size:17px;font-weight:400;color:#49516a;margin:0 0 7px}.empty p{font-size:12px;margin:0 0 20px}.toast{position:fixed;left:calc(50% + 100px);bottom:25px;transform:translate(-50%,20px);opacity:0;pointer-events:none;max-width:650px;background:#0f2158;color:#eff1f8;padding:12px 20px;border-radius:7px;box-shadow:0 7px 35px #0c1b4728;font-size:13px;z-index:100;transition:.2s}.toast.show{opacity:1;transform:translate(-50%,0)}.toast.error{background:#80543c}#save-warning{background:#fbedd6;color:#9b6b32;padding:11px 40px;font-size:12px}#save-warning button{text-decoration:underline;margin-left:12px}.initial-loading{padding:100px;color:#7d8499;text-align:center}.section-heading{display:flex;justify-content:space-between;align-items:center;margin-bottom:23px}.section-heading h2{font-weight:400;font-size:23px;margin:0}.section-heading p{font-size:12px;color:#838a9d;margin:4px 0}.kanban{display:grid;grid-template-columns:repeat(5,minmax(185px,1fr));gap:14px;overflow-x:auto;padding-bottom:15px}.kanban-column{background:#e5e8ef;border-radius:8px;padding:12px;min-height:300px}.column-title{display:flex;justify-content:space-between;font-size:12px;margin:3px 2px 16px;color:#686e81}.column-title span:last-child{font-size:11px;color:#9399aa}.kanban-card{padding:15px 14px;border:1px solid #d5d9e5;border-radius:6px;background:var(--paper);margin-bottom:10px;text-align:left;width:100%;display:block}.kanban-card:hover{border-color:#97a1bf}.kanban-card .code{font-size:10px;color:#8c94aa}.kanban-card h3{font-weight:400;font-size:14px;margin:6px 0}.kanban-card p{font-size:10px;color:#8c92a3;margin:5px 0;line-height:1.7}.kanban-card .card-bottom{display:flex;justify-content:space-between;align-items:center;margin-top:10px}.kanban-card .priority{font-size:9px}.board-note{font-size:11px;color:#81889d;margin-top:12px}.fees-top{display:grid;grid-template-columns:1.25fr 1fr;gap:20px;margin-bottom:25px}.quote-summary{background:var(--ink);color:#dde2f0;border-radius:9px;padding:24px 28px;position:relative;overflow:hidden}.quote-summary:after{content:'¥';position:absolute;right:20px;bottom:-40px;font-size:150px;color:#ffffff07}.quote-summary .eyebrow{color:#a6aec8}.quote-summary h2{font-weight:400;font-size:42px;margin:13px 0 8px;color:#adbbe6}.quote-summary p{font-size:12px;color:#b1b8cb;margin:0}.payment-summary{border:1px solid var(--line);border-radius:9px;background:var(--paper);padding:24px}.payment-summary h3{font-weight:400;font-size:16px;margin:0 0 12px}.payment-summary p{font-size:12px;color:#7e859a;margin:8px 0 20px}.fee-row{display:grid;grid-template-columns:50px 1fr 140px 130px 36px;gap:15px;align-items:center;padding:17px 23px;border-bottom:1px solid var(--line);font-size:13px}.fee-row.header{background:#eff1f8;color:#7d849a;font-size:11px}.fee-row small{display:block;font-size:10px;color:#8c92a5}.fee-row .fee-value{font-size:17px;color:#454f6d}.fee-row .fee-pending{font-size:12px;color:#b1874b}.private-banner{font-size:11px;color:#7d8498;margin-bottom:18px;display:flex;align-items:center;gap:7px}.private-banner .icon{width:14px;height:14px}.history-card{display:flex;justify-content:space-between;gap:20px;padding:22px 24px;background:var(--paper);border:1px solid var(--line);border-radius:8px;margin-bottom:12px;align-items:center}.history-card h3{font-size:15px;font-weight:400;margin:0 0 6px}.history-card p{font-size:11px;color:#878da1;margin:0}.history-card .actions{display:flex;gap:8px}.backup-layout{display:grid;grid-template-columns:1fr 1fr;gap:20px}.backup-card{padding:28px;background:var(--paper);border:1px solid var(--line);border-radius:9px}.backup-card .big-icon{width:42px;height:42px;border-radius:10px;background:#e5e8f2;display:grid;place-items:center;color:#666e86}.backup-card h3{font-size:19px;font-weight:400;margin:18px 0 10px}.backup-card p{font-size:12px;color:#7f869a;line-height:1.9;margin:0 0 24px}.path-info{margin-top:22px;background:#e3e6ef;padding:20px 24px;border-radius:8px;font-size:11px;color:#767e94;word-break:break-all}.path-info strong{font-weight:400;color:#515a77}.project-option{display:flex;align-items:center;gap:10px;border:1px solid var(--line);border-radius:7px;padding:13px;margin:9px 0}.project-option.active{border-color:#9ea8c7;background:#e8ebf4}.project-option>button:first-child{flex:1;text-align:left}.project-option strong{font-weight:400;font-size:14px;display:block}.project-option small{font-size:10px;color:#7e859b}.archive-list-title{font-size:11px;color:#8a8fa0;margin:22px 0 7px}.export-dialog{position:fixed;inset:4vh 4vw;margin:auto;width:1270px;max-width:92vw;height:92vh;max-height:92vh;border-radius:12px;overflow:hidden;background:#e7e9f0}.export-shell{display:grid;grid-template-columns:310px 1fr;height:100%}.export-controls{padding:25px 24px;background:#f6f8fc;border-right:1px solid var(--line);display:flex;flex-direction:column;overflow:auto}.export-controls h2{font-weight:400;font-size:23px;margin:0}.export-controls>p{font-size:11px;color:#7e859a;line-height:1.9;margin:8px 0 26px}.segment{display:flex;border:1px solid var(--line);padding:3px;border-radius:6px;background:#e9ecf3;gap:3px}.segment button{flex:1;padding:7px 8px;border-radius:4px;font-size:12px;color:#7d849a}.segment button.active{background:var(--paper);box-shadow:0 1px 4px #0e1f5210;color:#3e4868}.export-controls .field{margin-bottom:23px}.export-privacy{padding:13px 14px;border:1px solid #ced4e5;background:#e7eaf4;border-radius:6px;font-size:11px;color:#5d6888;line-height:1.9}.export-privacy.partner{background:#f8efe4;border-color:#e7d7bf;color:#a5824b}.export-controls .export-bottom{margin-top:auto;padding-top:20px}.export-controls .export-bottom>.btn{width:100%}.export-controls small{font-size:10px;color:#828aa0;display:block;margin:9px 0;text-align:center}.export-preview-area{overflow:auto;padding:0 30px 35px;position:relative;scrollbar-gutter:stable}.preview-toolbar{display:flex;justify-content:space-between;align-items:center;position:sticky;top:0;background:#e7e9f0f2;backdrop-filter:blur(8px);padding:16px 0;z-index:1;font-size:11px;color:#767d93}.preview-toolbar .left{display:flex;gap:12px;align-items:center}.preview-width{display:flex;gap:4px}.preview-width button{padding:5px 8px;border-radius:4px;font-size:10px;color:#767d93}.preview-width button.active{background:#d5d9e5;color:#475274}.export-preview{margin:0 auto;max-width:610px;width:100%;transition:max-width .2s}.export-preview img{display:block;width:100%;height:auto;margin-bottom:20px;box-shadow:0 7px 25px #0e1f5215;border-radius:2px}.preview-placeholder{padding:100px 20px;text-align:center;color:#7f879e;font-size:12px}.form-notice{font-size:11px;color:#ae8451;background:#fcf3df;border-radius:5px;padding:12px;margin:15px 0;line-height:1.8}.hidden{display:none!important}.fee-total-box{background:#e4e8f2;padding:15px;border-radius:6px;display:flex;justify-content:space-between;font-size:13px}.fee-total-box strong{font-weight:400;font-size:20px}.feedback-text{white-space:pre-wrap;font-size:12px;padding:12px;border-left:2px solid #d2aa78;background:#faf3e7;color:#a27c49}.drawer-group-note{font-size:11px;background:#e6e9f2;padding:13px;border-radius:5px;color:#6f7891;margin-top:20px}.button-link{font-size:11px;padding:0;color:#666f89;text-decoration:underline;text-underline-offset:3px}.filter-info{font-size:11px;color:#7c849e;margin-bottom:13px;display:flex;justify-content:space-between}.pill-group{display:flex;gap:5px;flex-wrap:wrap}.export-complete{padding:15px;background:#dde2f0;border-radius:7px;color:#596485;font-size:12px;margin-top:16px}.no-margin{margin:0}.project-empty{padding:100px 20px;text-align:center}.project-empty h1{font-size:30px;font-weight:400}.project-empty p{color:#7e8498;font-size:13px}.project-empty .btn{margin-top:20px}
@media(min-width:1650px){main{padding-top:42px}.project-heading h1{font-size:38px}.design-row{padding-top:24px;padding-bottom:24px}.metric{padding:22px 24px}.metric-number{font-size:40px}}
@media(max-width:1250px){.sidebar{width:195px;padding-left:14px;padding-right:14px}.workspace{margin-left:195px}main{padding:28px 26px 0}.topbar{padding:0 26px}.project-heading h1{font-size:29px}.project-actions{gap:7px}.pipeline-note{display:none}.list-labels{grid-template-columns:minmax(180px,1fr) 100px 110px 90px 28px;gap:10px;padding-left:66px}.design-row{grid-template-columns:30px minmax(180px,1fr) 100px 110px 90px 28px;gap:10px;padding:18px}.metrics{gap:10px}.metric{padding:16px}.panel-toolbar{flex-wrap:wrap}.toolbar-tools{margin-left:auto}.workspace-footer{padding-left:26px;padding-right:26px}.list-tabs{gap:18px}.toast{left:calc(50% + 80px)}}
@media(max-width:1000px){.sidebar{width:78px;padding:25px 12px 0}.brand{margin:0 auto 28px;display:block}.brand img{width:40px;height:40px}.brand>span,.sidebar-label,.project-switch>span,.project-switch>.icon,.nav-link>span,.sidebar-note,.local-status,.nav-count,.private-dot{display:none}.project-switch{border:0;margin:0 0 20px;padding:0;justify-content:center;height:28px}.project-switch:before{content:'项目';font-size:11px;color:#9ea5b9}.nav-link{justify-content:center;padding:13px 0;margin:6px 0}.nav-divider{margin:22px 3px}.workspace{margin-left:78px}.pipeline-steps{gap:10px}.pipeline-arrow{width:15px}.project-meta{gap:10px}.metrics{gap:10px}.metric-number{font-size:29px}.metric-bottom{font-size:9px}.toast{left:calc(50% + 35px)}.export-shell{grid-template-columns:270px 1fr}.export-controls{padding:22px 18px}.export-preview-area{padding-left:20px;padding-right:20px}}
@media(max-width:760px){main{padding:24px 17px 0}.topbar{height:58px;padding:0 17px}.today{display:none}.project-heading{display:block}.project-actions{padding-top:18px;justify-content:flex-end}.project-heading h1{font-size:27px}.pipeline{padding:12px;margin:20px 0}.pipeline-arrow{width:10px}.pipeline-steps{font-size:10px;gap:7px}.stage{gap:4px}.stage-dot{width:15px;height:15px;font-size:8px}.metrics{grid-template-columns:repeat(2,1fr);margin-bottom:20px}.metric-number{margin-top:8px}.metric{padding:13px}.toolbar-tools{width:100%;margin:0}.search{flex:1;max-width:none}.toolbar-select{width:130px}.list-labels{display:none}.design-row{grid-template-columns:27px 1fr 28px;gap:8px;padding:17px 13px}.design-row>.row-requirement,.design-row>.row-design,.design-row>.row-priority{grid-column:2}.design-row>.row-requirement{grid-row:auto}.design-row>.row-design{display:none}.design-row>.row-priority{display:none}.design-row>.icon-button{grid-column:3;grid-row:1}.row-subtitle{-webkit-line-clamp:2}.list-foot{gap:10px;flex-wrap:wrap}.list-tabs{gap:15px;padding:0 15px}.fees-top,.backup-layout{grid-template-columns:1fr}.fee-row{grid-template-columns:35px 1fr 85px 27px;padding:14px 13px;gap:8px}.fee-row>div:nth-child(3){display:none}.fee-row .fee-value{font-size:15px}.workspace-footer{padding:25px 17px}.workspace-footer span:last-child{display:none}.history-card{display:block}.history-card .actions{margin-top:13px}.export-dialog{inset:2vh 2vw;max-width:96vw;width:96vw;height:96vh;max-height:96vh}.export-shell{grid-template-columns:220px 1fr}.export-controls{padding:20px 13px}.export-preview-area{padding:0 12px 20px}.preview-toolbar{gap:5px;flex-wrap:wrap}.preview-toolbar .left{gap:6px}.export-controls h2{font-size:20px}.drawer-head{padding:22px}.drawer form{padding:0 22px}.drawer-footer{padding:16px 22px}.list-foot span:last-child{display:none}}
@media(prefers-reduced-motion:reduce){*{transition:none!important;scroll-behavior:auto!important}}

/* v02: keep every design item in one comparable, fully readable row. */
.list-labels{grid-template-columns:32px 154px minmax(150px,1fr) 145px minmax(190px,1.35fr) 28px;padding:12px 22px;gap:14px}
.design-row{grid-template-columns:32px 154px minmax(150px,1fr) 145px minmax(190px,1.35fr) 28px;align-items:start;padding:22px;gap:14px}
.row-main .row-title{font-size:16px;line-height:1.7}.row-statuses{display:flex;flex-wrap:wrap;gap:5px;margin:8px 0 10px}.row-statuses .pill{font-size:10px;padding:4px 6px}.row-main .row-priority{margin-top:5px}.row-main .row-priority small{display:block;margin-top:6px}
.row-content,.row-specs,.row-notes{font-size:12px;line-height:1.95;white-space:pre-line;overflow-wrap:anywhere;color:#5d6375}.row-content{color:#4b5269;font-size:13px}.row-copy{margin-top:12px;color:#5f6780;font-size:12px}.row-copy small{display:block;color:#8d93a6;font-size:10px;margin-bottom:3px}.row-specs small{display:block;margin-top:9px;font-size:10px;color:#8d92a2;line-height:1.8}.row-specs{font-size:12px}.missing-cell{background:#fcf4e2;color:#ad854b;padding:9px 10px;border-radius:4px;margin:-2px 0 0}.missing-cell small{color:#b29b75}.row-notes .row-alerts{margin-top:8px}.row-alerts button.row-alert{padding:0;font-size:10px;color:#af8a51;text-align:left}.row-cell-label{display:none}.row-notes .row-alerts .row-alert:hover{color:#8b622e;text-decoration:underline}.children-list .child-line{display:block}.children-list .child-line .pill{margin-top:4px}.children-list{font-size:10px}
@media(max-width:1250px){.list-labels,.design-row{grid-template-columns:30px 126px minmax(135px,1fr) 120px minmax(160px,1.3fr) 24px;gap:10px;padding-left:17px;padding-right:17px}.row-title{font-size:14px}.row-content,.row-specs,.row-notes{font-size:11px}}
@media(max-width:760px){.list-labels{display:none}.design-row{grid-template-columns:26px minmax(0,1fr) 26px;padding:17px 14px;gap:10px}.row-main{grid-column:2;grid-row:1}.design-row>.icon-button{grid-column:3;grid-row:1}.row-content,.row-specs,.row-notes{grid-column:2;font-size:12px;margin-top:4px}.row-cell-label{display:block;font-size:10px;color:#8f95a8;margin-bottom:4px}.row-statuses{gap:6px}.row-main .row-priority{display:block}.children-list .child-line{display:flex}}

/* v03: generous columns; preserve readable type instead of squeezing the table. */
main{max-width:none;padding-left:28px;padding-right:28px}
.table-scroll{overflow-x:auto;scrollbar-color:#969db1 #e7eaf1;scrollbar-width:thin}
.table-scroll .list-labels,.table-scroll .design-row{display:grid;grid-template-columns:60px 250px 300px 240px minmax(450px,1fr) 30px;min-width:1450px;gap:16px;padding:18px 24px}
.table-scroll .row-main{grid-column:auto;grid-row:auto}.table-scroll .row-content,.table-scroll .row-specs,.table-scroll .row-notes{grid-column:auto;font-size:14px;line-height:1.85;margin-top:0;word-break:normal;overflow-wrap:break-word}
.table-scroll .row-code{font-size:14px;color:#727a90}.table-scroll .row-main .row-title{font-size:17px}.table-scroll .row-statuses{margin:10px 0;gap:6px}.table-scroll .row-statuses .pill{font-size:11px}.table-scroll .row-cell-label{display:none}.table-scroll .design-row>.icon-button{grid-column:auto;grid-row:auto}.table-scroll .row-specs small{font-size:12px}.table-scroll .row-copy{font-size:13px}.table-scroll .missing-cell{padding:10px 12px}.table-scroll .row-notes .row-alert{font-size:12px}
.export-preview{max-width:none}

/* v04: Klein blue workspace, seven business columns. */
:root{--bg:#f3f5fa;--paper:#fff;--ink:#062577;--text:#263958;--muted:#8290a7;--line:#e0e6f0;--green:#002fa7;--soft-green:#eaf0ff;--lime:#dfe9ff;--shadow:0 16px 70px #05257715}
.sidebar{background:#062577;color:#c9d9ff}.brand{color:white}.brand-small,.sidebar-label,.local-status small,.version{color:#a9c1f5}.sidebar-note p{color:#edf3ff}.tiny-cross{color:#b9d0ff}.nav-link{color:#b9cdf6}.nav-link.active{background:#e7efff;color:#002fa7}.status-light{background:#bcd2ff}
.btn.primary{background:#002fa7;border-color:#002fa7;color:white}.btn.primary:hover{background:#00258a}.topbar{background:white}.pipeline{background:#ebf1ff;border-color:#dae4fa}.stage.current .stage-dot{background:#002fa7;border-color:#002fa7}.metric{background:white}.metric-number{color:#082775}.metric-line span{background:#002fa7}.metric.warn{background:#f5f7fc}.metric.warn .metric-top,.metric.warn .metric-number{color:#526b9e}.metric.warn .metric-line span{background:#8da8e4}
.table-scroll .list-labels,.table-scroll .design-row{grid-template-columns:60px 230px 300px 250px minmax(430px,1fr) 110px 150px;min-width:1680px;gap:16px}.list-labels{background:#edf2fc;color:#7186ac}.table-scroll .row-main .row-title,.table-scroll .row-content{color:#1c3979}.table-scroll .row-notes{color:#47566d}.table-scroll .row-code{color:#7386a6}.table-scroll .row-specs{color:#284575}.table-scroll .missing-cell{background:#eef3ff;border:1px solid #d5e0f7;color:#5d73a3}.spec-button{padding:0;text-align:left;white-space:pre-line}.row-progress,.row-priority{padding-top:0}
.status-select,.priority-select{font-size:13px;padding:7px 10px;border:1px solid transparent;border-radius:5px;min-width:84px;cursor:pointer}
.priority.high,.priority-select.high{color:#c7384b;background:#fff0f2}.priority.medium,.priority-select.medium{color:#9b7516;background:#fff5d5}.priority.low,.priority-select.low{color:#265ec8;background:#eaf1ff}.priority.unset,.priority-select.unset{color:#8994a5;background:#f0f3f7}
.pill.todo,.status-select.todo{color:#778293;background:#edf0f4}.pill.designing,.status-select.designing{color:#078b9b;background:#e3f7fa}.pill.revision,.status-select.revision{color:#c47724;background:#fff0df}.pill.approved,.status-select.approved{color:#268558;background:#e5f6ec}
.kanban{grid-template-columns:repeat(4,minmax(185px,1fr))}.fee-row{grid-template-columns:60px 1fr 180px 36px}.quote-summary{background:#062577}.quote-summary h2{color:white}.quote-summary .eyebrow,.quote-summary p{color:#bad0ff}.fee-row .fee-value{color:#002fa7}.fee-total-box{background:#eaf0ff;color:#002fa7}.export-controls{background:#fff}.export-dialog,.export-preview-area,.preview-toolbar{background:#e9edf5}.export-privacy{background:#eef3ff;color:#41619f;border-color:#d7e2fa}.export-privacy.partner{background:#082775;color:#e1ebff;border-color:#082775}.export-complete{background:#eaf0ff;color:#234b9e}.toast{background:#062577}.drawer,.editor-tabs,.drawer-footer{background:#f6f8fd}.form-notice{background:#edf2fc;color:#5b719c}.drawer-group-note{background:#eaf0ff;color:#5270a5}.row-notes{white-space:pre-wrap}.pill.requirement-confirmed{color:#3159a3;background:#e9f0ff}
.table-scroll .row-priority,.table-scroll .row-progress{display:block!important}

:root{--amber:#667ca7;--soft-amber:#edf2fb;--purple:#5270a5;--soft-purple:#eef2fb}.field.has-missing input,.field.has-missing textarea,.field.has-missing select{border-color:#cbdafa;background:#f2f6ff}.pill.missing{color:#617da9;background:#edf2fb}.feedback-text{color:#536f9e;background:#edf2fb;border-color:#96afe0}

/* v05: vertically center the whole text block; preserve horizontal reading alignment. */
.table-scroll .design-row{align-items:stretch}
.table-scroll .design-row>div,.table-scroll .row-code{display:flex!important;flex-direction:column;justify-content:center;align-self:stretch;padding-top:0}
.table-scroll .row-priority,.table-scroll .row-progress{align-items:center;text-align:center;margin-top:0}
.table-scroll .priority-select,.table-scroll .status-select{text-align:center;text-align-last:center}
.table-scroll .list-labels{align-items:center}
.table-scroll .list-labels>span{text-align:center}
.table-scroll .row-code{padding-top:0;align-items:center;text-align:center}.fee-row{align-items:center}
.table-scroll .design-row>.row-priority,.table-scroll .design-row>.row-progress{grid-column:auto;grid-row:auto}
.table-scroll .design-row>.missing-cell{margin:0}
.table-scroll .row-specs{align-items:center;text-align:center}
.table-scroll .row-specs .spec-button{text-align:center;max-width:100%;overflow-wrap:break-word}

/* MiSans: regular body, medium labels, bold headings. */
.project-heading h1,.project-empty h1{font-weight:700}
.brand,.sidebar-note p,.drawer-head h2,.modal h2,.section-heading h2,.export-controls h2,.appearance-heading h2,.quote-summary h2{font-weight:700}
.panel-title,.list-labels,.row-title,.kanban-card h3,.form-section h3,.payment-summary h3,.history-card h3,.backup-card h3,.project-option strong,.fee-total-box strong,.btn.primary,.nav-link.active,.list-tab.active,.fee-row.header{font-weight:500}
.metric-number,.fee-value{font-weight:500}
