[hidden]{display:none!important}.comparison-image{height:160px;display:grid;place-items:center;border-radius:8px}.asset-compare{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.asset-compare h3{font-size:12px}.flow-actions{display:flex;gap:8px;margin-top:20px}#flow-dialog{width:min(620px,94vw);max-width:620px;max-height:90vh;overflow:auto}#flow-error{color:#b45309}.filter-empty{padding:24px;text-align:center;color:#6D786F}.flow-actions .primary{width:auto}#flow-content select{padding:8px;border:1px solid #DFE5DC;border-radius:6px}.project-card:focus-visible,.table-row:focus-visible,.asset-card:focus-visible{outline:3px solid #A9C7B4;outline-offset:3px}@media(max-width:760px){.project-topline .mock-badge{display:inline-flex!important}.project-topline{flex-wrap:wrap}.asset-compare{grid-template-columns:1fr}.comparison-image{height:130px}}:root{--ink:#263A32;--muted:#6D786F;--faint:#8B978D;--line:#DFE5DC;--surface:#fff;--cloud:#F7F8F5;--primary:#365F49;--primary-dark:#2C4C3B;--accent:#6E8F79;--gold:#C9A227;--green:#2C6B45;--green-bg:#EDF2EC;--amber:#b45309;--amber-bg:#fff5e6;--red:#dc2626;--red-bg:#fff0f0;--shadow:0 10px 30px rgba(38,58,50,.06)}*{box-sizing:border-box}html{background:var(--cloud)}body{margin:0;background:var(--cloud);color:var(--ink);font-family:"PingFang SC","MiSans","HarmonyOS Sans SC","Source Han Sans SC","Microsoft YaHei",system-ui,sans-serif;font-size:14px;line-height:1.5}button,input{font:inherit}button{cursor:pointer;border:0;color:inherit;background:none}button:focus-visible,a:focus-visible,input:focus-visible{outline:3px solid #A9C7B4;outline-offset:2px}.app-shell{min-height:100vh}.topbar{height:68px;background:#fff;border-bottom:1px solid var(--line);display:flex;align-items:center;padding:0 42px;gap:52px;position:sticky;top:0;z-index:10}.brand{display:flex;align-items:center;gap:11px;text-decoration:none;color:var(--ink);white-space:nowrap}.brand-mark{display:grid;place-items:center;width:34px;height:34px;border-radius:9px;background:#EDF2EC;color:var(--primary);font-size:20px;font-weight:800}.brand strong{display:block;font-size:16px;letter-spacing:1px}.brand small{display:block;font-size:10px;color:var(--faint);letter-spacing:.6px}.main-nav{display:flex;align-items:stretch;height:100%;gap:28px;flex:1}.nav-item{color:var(--muted);position:relative;padding:0 2px;font-size:14px}.nav-item.active{color:#2C4C3B;font-weight:700}.nav-item.active:after{content:"";position:absolute;bottom:0;left:0;right:0;height:3px;background:var(--primary);border-radius:3px 3px 0 0}.top-actions{display:flex;gap:13px;align-items:center}.mock-badge{display:inline-flex;align-items:center;gap:6px;color:#6D786F;background:#F1F4EF;border:1px solid #DFE5DC;border-radius:14px;padding:4px 9px;font-size:11px;white-space:nowrap;cursor:pointer}.dot{width:6px;height:6px;border-radius:50%;background:#8B978D}.icon-button,.avatar{width:32px;height:32px;border:1px solid var(--line);border-radius:8px;display:grid;place-items:center;background:#fff;color:var(--muted);font-weight:600}.avatar{border-radius:50%;background:#EDF2EC;color:var(--primary);border:0;font-size:12px}main{max-width:1440px;margin:auto;padding:42px 42px 60px}.view,.project-view{display:none}.view.active,.project-view.active{display:block}.page-heading{display:flex;align-items:flex-end;justify-content:space-between;margin-bottom:34px}.page-heading.compact{margin-bottom:26px}.eyebrow{margin:0 0 7px;color:#2C4C3B;font-size:10px;font-weight:800;letter-spacing:1.7px}.h1-accent{background:linear-gradient(120deg,#2C4C3B,#7FA98F);-webkit-background-clip:text;background-clip:text;color:transparent}
.page-heading h1,.project-heading h1{font-size:28px;line-height:1.2;letter-spacing:-.5px;margin:0;font-weight:750}.heading-note{color:var(--muted);margin:9px 0 0}.heading-actions,.project-actions{display:flex;gap:10px}.primary,.secondary{border-radius:7px;padding:10px 16px;font-weight:700;font-size:13px;transition:.18s}.primary{background:var(--primary);color:#fff;box-shadow:0 4px 12px rgba(54,95,73,.17)}.primary:hover{background:var(--primary-dark)}.secondary{border:1px solid #DFE5DC;background:#fff;color:#6D786F}.secondary:hover,.text-button:hover{background:#F7F8F5}.home-grid{display:grid;gap:34px}.metric-strip{display:grid;grid-template-columns:repeat(4,1fr);background:#fff;border:1px solid var(--line);box-shadow:var(--shadow);border-radius:10px;padding:23px 28px;gap:20px}.metric{border-right:1px solid var(--line);padding-right:25px}.metric:last-child{border:0}.metric span,.metric small{display:block;color:var(--muted);font-size:12px}.metric strong{display:block;font-size:29px;line-height:1.2;margin:6px 0;color:var(--ink)}.metric strong.amber{color:var(--amber)}.metric strong small{display:inline;font-size:13px;color:var(--faint);font-weight:500}.metric small b{color:var(--green)}.progress{height:5px;background:#F1F4EF;border-radius:10px;margin:12px 0 5px;overflow:hidden}.progress i{display:block;height:100%;background:var(--primary);border-radius:inherit}.section-title{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px}.section-title h2{font-size:17px;margin:0}.section-title p{margin:3px 0 0;color:var(--muted);font-size:12px}.text-button{color:#2C4C3B;padding:7px;border-radius:5px;font-size:12px}.project-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.project-card{border:1px solid var(--line);background:#fff;border-radius:10px;display:grid;grid-template-columns:155px 1fr;overflow:hidden;cursor:pointer;transition:.18s;box-shadow:0 3px 12px rgba(38,58,50,.05)}.project-card:hover,.table-row:hover{border-color:#A9C7B4;box-shadow:0 7px 20px rgba(54,95,73,.10);transform:translateY(-1px)}.project-cover{min-height:183px;position:relative;display:grid;place-items:center;overflow:hidden}.cover-skin{background:linear-gradient(145deg,#e7e7e3,#b9c0b2 55%,#9ca991)}.cover-lamp{background:linear-gradient(145deg,#f6f5f1,#d9e3e2)}.cover-tag{position:absolute;top:12px;left:12px;background:#ffffffc9;border-radius:4px;padding:3px 7px;font-size:10px;color:#5F6B62}.cover-product{width:62px;height:82px;border-radius:8px 8px 12px 12px;background:linear-gradient(100deg,#eee8db,#fffdf6 45%,#d8d3c7);box-shadow:8px 12px 18px #4a493b48;display:flex;align-items:center;justify-content:center;color:#6f756b;font-size:9px;text-align:center;line-height:1.1}.cover-product b{font-size:11px}.lamp-object{width:54px;height:22px;border-radius:50% 50% 45% 45%;background:#fff;box-shadow:0 14px 24px #81908e66;position:relative}.lamp-object:after{content:"";position:absolute;left:25px;top:17px;width:5px;height:55px;background:#d1d7d7;border-radius:3px;box-shadow:0 51px 0 10px #d7dddc}.project-info{padding:18px 17px}.project-line{display:flex;align-items:center;justify-content:space-between;gap:8px}.project-line h3{margin:0;font-size:15px}.project-info>p{color:var(--muted);font-size:12px;margin:8px 0 18px}.status-pill{display:inline-flex;align-items:center;border-radius:12px;padding:3px 8px;font-size:10px;font-weight:700;white-space:nowrap}.status-pill.amber{background:var(--amber-bg);color:var(--amber)}.status-pill.blue{background:#EDF2EC;color:#2C4C3B}.status-pill.neutral{background:#F1F4EF;color:var(--muted)}.project-progress{display:flex;align-items:center;gap:9px}.project-progress>span{height:5px;background:#F1F4EF;border-radius:6px;flex:1}.project-progress i{display:block;background:var(--primary);height:100%;border-radius:inherit}.project-progress b{font-size:11px;color:var(--muted)}.project-foot{display:flex;justify-content:space-between;align-items:center;margin-top:16px;color:var(--muted);font-size:11px}.arrow-button,.row-arrow{width:27px;height:27px;border:1px solid var(--line);border-radius:50%;color:var(--primary);font-size:16px}.task-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:13px}.task-card{min-height:137px;text-align:left;border:1px solid var(--line);border-radius:9px;background:#fff;padding:18px;display:flex;flex-direction:column;position:relative;transition:.18s}.task-card:not(:disabled):hover{border-color:#A9C7B4;transform:translateY(-2px);box-shadow:var(--shadow)}.task-card.primary-task{border-color:#A9C7B4;background:#EDF2EC}.task-card.disabled-task{cursor:not-allowed;background:#F7F8F5;opacity:.6}.task-icon{font-size:22px;color:var(--accent);margin-bottom:14px}.task-card strong{font-size:13px}.task-card small{color:var(--muted);font-size:11px;margin-top:4px}.task-card em{position:absolute;right:12px;top:12px;font-size:9px;color:var(--accent);font-style:normal;background:#FFF6E5;padding:3px 6px;border-radius:4px}.delivery-table,.project-table{border:1px solid var(--line);background:#fff;border-radius:10px;overflow:hidden}.delivery-row{display:grid;grid-template-columns:1.6fr 1fr 1fr 1fr;padding:14px 20px;align-items:center;border-top:1px solid var(--line);font-size:12px;color:var(--muted)}.delivery-row.header{border:0;color:var(--faint);font-size:11px;background:#F7F8F5}.delivery-row b,.delivery-row small{display:block}.delivery-row b{color:var(--ink);font-size:12px}.delivery-row small{font-size:11px;color:var(--faint);margin-top:2px}.pass-text{color:var(--green);font-size:11px}.review-text{color:var(--amber);font-size:11px}.block-text{color:var(--red);font-size:11px}.filter-bar{display:flex;justify-content:space-between;align-items:center;margin-bottom:18px}.segmented{display:flex;gap:4px;background:#F1F4EF;border-radius:7px;padding:3px}.segmented button{padding:7px 14px;border-radius:5px;color:var(--muted);font-size:12px}.segmented button.selected{background:#fff;color:#2C4C3B;box-shadow:0 1px 4px rgba(38,58,50,.13)}.segmented b{font-size:10px;margin-left:4px}.search{display:flex;align-items:center;gap:7px;border:1px solid var(--line);background:#fff;border-radius:6px;color:var(--faint);padding:6px 10px;width:240px}.search input{border:0;outline:0;width:100%;font-size:12px}.table-head,.table-row{display:grid;grid-template-columns:2.2fr 1.2fr 1fr 1fr 1fr 30px;align-items:center;gap:16px}.table-head{padding:12px 18px;color:var(--faint);font-size:11px;background:#F7F8F5}.table-row{padding:14px 18px;border-top:1px solid var(--line);font-size:12px;color:var(--muted);cursor:pointer;transition:.18s}.table-project{display:flex;align-items:center;gap:11px}.table-project b,.table-project small{display:block}.table-project b{color:var(--ink)}.table-project small{font-size:10px;color:var(--faint);margin-top:2px}.tiny-cover{width:38px;height:42px;border-radius:5px;display:grid;place-items:center;overflow:hidden;position:relative}.tiny-cover .cover-product{transform:scale(.42)}.tiny-cover .lamp-object{transform:scale(.55)}.asset-layout{display:grid;grid-template-columns:210px 1fr;gap:24px}.asset-sidebar{border-right:1px solid var(--line);padding-right:20px}.sidebar-label{color:var(--faint);font-size:11px;font-weight:700;margin:5px 0 12px}.sidebar-label.separated{border-top:1px solid var(--line);padding-top:20px;margin-top:22px}.asset-project{width:100%;display:flex;align-items:center;gap:9px;text-align:left;border-radius:7px;padding:9px;margin-bottom:5px}.asset-project.selected{background:#EDF2EC;color:#2C4C3B}.asset-project span:nth-child(2){flex:1}.asset-project b,.asset-project small{display:block}.asset-project b{font-size:12px}.asset-project small{font-size:10px;color:var(--faint)}.asset-project i{font-style:normal;color:var(--faint)}.mini-product{width:27px;height:31px;border-radius:5px;display:block}.mini-product.skin{background:linear-gradient(145deg,#e4e5de,#9da998)}.mini-product.lamp{background:linear-gradient(145deg,#f4f4f1,#bdcbc9)}.check-row{display:flex;align-items:center;gap:7px;color:var(--muted);font-size:12px;padding:6px}.check-row b{margin-left:auto;color:var(--faint);font-size:11px}.check-row .green{color:var(--green)}.check-row .orange{color:var(--amber)}.check-row .red{color:var(--red)}.asset-toolbar{display:flex;justify-content:space-between;color:var(--muted);font-size:12px;margin-bottom:14px}.asset-grid{display:grid;grid-template-columns:repeat(4,minmax(150px,1fr));gap:14px}.asset-card{border:1px solid var(--line);border-radius:9px;background:#fff;overflow:hidden;cursor:pointer;transition:.18s}.asset-card:hover,.asset-card.selected{border-color:#A9C7B4;box-shadow:0 6px 20px rgba(54,95,73,.10)}.asset-card.blocked{border-color:#f1cccc}.asset-image{height:230px;position:relative;display:grid;place-items:center;overflow:hidden}.skin-image{background:linear-gradient(145deg,#ecece7,#c3cbbd)}.benefit-image{background:linear-gradient(145deg,#f1e8dd,#d4c1ad);text-align:center}.scene-image{background:linear-gradient(145deg,#dfe6dd,#a9bca8);text-align:center}.detail-image{background:linear-gradient(145deg,#ebe3db,#d1c1b2);text-align:center}.asset-version{position:absolute;left:10px;top:10px;background:#ffffffc7;color:#5F6B62;border-radius:4px;padding:3px 6px;font-size:10px;z-index:2}.jar{width:72px;height:91px;border-radius:10px 10px 17px 17px;background:linear-gradient(100deg,#d5cec0,#f9f7ef 48%,#c1bbae);box-shadow:9px 15px 18px #59645852;position:relative}.jar:before{content:"MOON\A CALM";white-space:pre;text-align:center;position:absolute;top:37px;left:0;right:0;color:#797e70;font-size:9px;line-height:1.15}.jar:after{content:"";position:absolute;top:-8px;left:5px;right:5px;height:13px;border-radius:50%;background:#aaa79c}.jar.small{transform:scale(.7)}.benefit-copy{position:absolute;top:38px;left:18px;color:#98785b;line-height:1.2;font-size:15px}.benefit-copy b{font-size:20px}.scene-leaf{position:absolute;font-size:65px;color:#617761;transform:rotate(-30deg);right:26px;bottom:33px}.detail-placeholder{position:absolute;top:30px;color:#a56347;font-size:17px;line-height:1.4}.asset-card-body{padding:11px 12px}.asset-card-body div{display:flex;justify-content:space-between;gap:5px}.asset-card-body b{font-size:12px}.asset-card-body small{display:block;color:var(--faint);font-size:10px;margin-top:5px}.empty-page{text-align:center;max-width:500px;margin:130px auto}.empty-illustration{font-size:44px;color:var(--accent);margin-bottom:18px}.empty-page h1{font-size:28px;margin:0}.empty-page>p:not(.eyebrow){color:var(--muted);margin:10px 0 20px}.project-topline{display:flex;align-items:center;gap:16px;margin-bottom:30px}.project-topline .text-button{margin-left:auto}.back-button{color:var(--muted);font-size:12px}.project-heading{display:flex;align-items:flex-end;justify-content:space-between;margin-bottom:22px}.truth-banner{display:flex;align-items:center;gap:12px;background:var(--green-bg);border:1px solid #CFE0D3;border-radius:8px;padding:12px 15px;margin-bottom:18px}.truth-icon{display:grid;place-items:center;background:var(--green);color:#fff;width:25px;height:25px;border-radius:50%;font-weight:800}.truth-banner strong{font-size:12px;color:#2C5B41}.truth-banner p{margin:2px 0 0;color:#5E7266;font-size:11px}.truth-banner .text-button{margin-left:auto;color:var(--green)}.workbench{display:grid;grid-template-columns:230px minmax(400px,1fr) 285px;gap:15px;min-height:560px}.work-sidebar,.work-canvas,.qa-sidebar{background:#fff;border:1px solid var(--line);border-radius:9px;box-shadow:var(--shadow)}.work-sidebar{padding:17px 13px}.work-section{border-bottom:1px solid var(--line);padding-bottom:16px;margin-bottom:17px}.work-section:last-child{border:0}.work-section-title{display:flex;justify-content:space-between;color:var(--faint);font-weight:700;font-size:11px;padding:0 7px 9px}.work-section-title span{color:#2C4C3B}.work-item{width:100%;display:flex;align-items:center;gap:9px;text-align:left;padding:10px 7px;border-radius:6px}.work-item.active{background:#EDF2EC}.work-item>span:nth-child(2){flex:1}.work-item b,.work-item small{display:block}.work-item b{font-size:11px}.work-item small{font-size:10px;color:var(--faint);margin-top:2px}.work-item i{font-style:normal;color:var(--faint)}.work-icon{width:21px;height:21px;border-radius:50%;display:grid;place-items:center;font-size:11px}.work-icon.done{background:var(--green-bg);color:var(--green)}.work-icon.review{background:var(--amber-bg);color:var(--amber)}.work-icon.wait{background:#F1F4EF;color:var(--faint)}.fact-summary p{font-size:10px;margin:8px 7px;color:var(--ink)}.fact-summary p span{color:var(--faint);display:inline-block;width:60px}.tiny-link{color:#2C4C3B;font-size:10px;padding:2px}.swatch{display:inline-block;width:9px;height:9px;border-radius:50%;border:1px solid #cbd2da;margin-right:4px}.swatch.white{background:#f5f1e8}.work-canvas{display:flex;flex-direction:column;overflow:hidden}.canvas-toolbar{display:flex;justify-content:space-between;align-items:center;padding:13px 15px;border-bottom:1px solid var(--line);font-size:12px;color:var(--muted)}.canvas-toolbar .status-pill{margin-left:8px}.canvas-toolbar>div{display:flex;align-items:center;gap:7px;font-size:11px}.canvas-image{flex:1;min-height:390px;position:relative;display:grid;place-items:center;background:linear-gradient(145deg,#dfe6dd,#b9c9b4 52%,#93aa8f);overflow:hidden}.canvas-image .jar{transform:scale(1.3)}.canvas-image .large-leaf{right:22%;bottom:18%;font-size:110px}.canvas-note{position:absolute;font-size:10px;background:#ffffffd9;color:#5F6B62;border:1px solid #d8e1e4;padding:4px 7px;border-radius:4px}.note-one{left:16%;top:24%}.note-two{right:8%;top:28%;color:var(--amber);border-color:#edd4ad}.canvas-footer{border-top:1px solid var(--line);padding:12px 15px;display:flex;align-items:center;gap:9px}.canvas-footer>div{flex:1}.canvas-footer strong,.canvas-footer span{display:block}.canvas-footer strong{font-size:12px}.canvas-footer span{color:var(--amber);font-size:10px;margin-top:3px}.canvas-footer button{padding:7px 10px;font-size:11px}.qa-sidebar{padding:17px}.qa-heading{display:flex;justify-content:space-between;align-items:flex-start;border-bottom:1px solid var(--line);padding-bottom:13px}.qa-heading h2{font-size:15px;margin:0}.qa-score{text-align:center;padding:20px 0 16px}.qa-score strong{font-size:40px;color:var(--amber);line-height:1}.qa-score>span{color:var(--faint);font-size:13px}.qa-score small{display:block;color:var(--faint);font-size:10px;margin-top:5px}.qa-list{border-top:1px solid var(--line)}.qa-row{display:flex;align-items:flex-start;gap:8px;padding:12px 0;border-bottom:1px solid var(--line)}.qa-row>span{width:19px;height:19px;border-radius:50%;display:grid;place-items:center;font-size:11px}.qa-row.pass>span{background:var(--green-bg);color:var(--green)}.qa-row.review>span{background:var(--amber-bg);color:var(--amber)}.qa-row>div{flex:1}.qa-row b,.qa-row small{display:block}.qa-row b{font-size:11px}.qa-row small{font-size:10px;color:var(--muted);line-height:1.4;margin-top:3px}.qa-footer{display:flex;justify-content:space-between;padding-top:14px;color:var(--faint);font-size:10px}.qa-footer b{color:var(--muted);font-weight:500}.project-bottom{display:flex;justify-content:space-between;padding:13px 2px;color:var(--faint);font-size:11px}.live-dot{display:inline-block;width:6px;height:6px;border-radius:50%;background:var(--green);margin-right:5px}.drawer{visibility:hidden;position:fixed;inset:0;z-index:30}.drawer.open{visibility:visible}.drawer-backdrop{position:absolute;inset:0;background:rgba(38,58,50,.32);opacity:0;transition:.2s}.drawer.open .drawer-backdrop{opacity:1}.drawer-panel{position:absolute;right:0;top:0;bottom:0;width:min(440px,100%);background:#fff;box-shadow:-10px 0 30px rgba(38,58,50,.11);transform:translateX(100%);transition:.25s;display:flex;flex-direction:column}.drawer.open .drawer-panel{transform:none}.drawer-header{display:flex;justify-content:space-between;padding:25px 25px 17px;border-bottom:1px solid var(--line)}.drawer-header h2{font-size:19px;margin:0}.drawer-tabs{display:flex;border-bottom:1px solid var(--line);padding:0 25px;gap:20px}.drawer-tabs button{padding:13px 0;font-size:12px;color:var(--muted);position:relative}.drawer-tabs button.selected{color:#2C4C3B;font-weight:700}.drawer-tabs button.selected:after{content:"";position:absolute;bottom:-1px;left:0;right:0;height:2px;background:var(--primary)}.drawer-content{padding:20px 25px;overflow:auto}.drawer-notice{display:flex;gap:8px;background:#F7F8F5;border:1px solid #DFE5DC;border-radius:7px;padding:10px;color:#6D786F;font-size:11px}.drawer-notice span{width:17px;height:17px;border-radius:50%;background:#EDF2EC;color:var(--primary);display:grid;place-items:center;font-weight:800}.drawer-notice p{margin:0}.record{border-bottom:1px solid var(--line);padding:18px 0}.record-top{display:flex;justify-content:space-between;font-size:12px}.record-top>span{color:var(--green)}.record-grid{display:grid;grid-template-columns:70px 1fr;gap:7px;margin-top:13px;color:var(--faint);font-size:11px}.record-grid b{color:var(--ink);font-weight:500}.prompt-preview{font-size:11px;color:var(--muted);line-height:1.7;background:#F7F8F5;padding:10px;border-radius:5px;margin:12px 0 0}.cost-summary{background:#F7F8F5;border-radius:7px;padding:17px;margin-top:18px}.cost-summary span,.cost-summary p{font-size:11px;color:var(--muted)}.cost-summary strong{display:block;font-size:28px;color:var(--accent);margin:3px 0}.cost-summary strong small{font-size:11px;color:var(--muted);font-weight:400}.cost-summary p{margin:0;color:var(--faint)}body.drawer-open{overflow:hidden}.toast{position:fixed;bottom:26px;left:50%;transform:translate(-50%,20px);background:#263A32;color:#fff;border-radius:6px;padding:10px 16px;font-size:12px;opacity:0;pointer-events:none;transition:.2s;z-index:50}.toast.show{opacity:1;transform:translate(-50%,0)}dialog{border:0;border-radius:10px;padding:30px;max-width:420px;box-shadow:0 20px 60px rgba(38,58,50,.25);color:var(--ink)}dialog::backdrop{background:rgba(38,58,50,.32)}.dialog-close{position:absolute;right:15px;top:12px;font-size:20px;color:var(--muted)}dialog h2{font-size:20px;margin:0 0 10px}dialog p:not(.eyebrow){color:var(--muted);font-size:13px;margin-bottom:22px}dialog .primary{width:100%}.showcase-block{display:grid;grid-template-columns:1.05fr 1fr;gap:28px;align-items:center;background:#fff;border:1px solid var(--line);border-radius:12px;padding:30px 32px;box-shadow:var(--shadow)}.showcase-copy h2{font-size:23px;line-height:1.3;margin:0 0 16px;letter-spacing:-.3px}.showcase-points{list-style:none;margin:0 0 20px;padding:0;display:grid;gap:10px}.showcase-points li{display:flex;align-items:flex-start;gap:9px;font-size:13px;color:var(--ink);line-height:1.55}.point-icon{color:var(--primary);font-weight:800;flex:none}.showcase-demo{background:var(--cloud);border:1px solid var(--line);border-radius:10px;padding:18px}.compare-row{display:flex;align-items:center;justify-content:center;gap:12px;flex-wrap:wrap}.compare-item{margin:0;text-align:center}.compare-thumb{width:min(120px,38vw);height:min(120px,38vw);border-radius:8px;display:grid;place-items:center;overflow:hidden;position:relative}.compare-thumb .scene-leaf{font-size:32px;right:8px;bottom:8px}.compare-item figcaption{margin-top:8px;font-size:11px;color:var(--muted)}.compare-arrow{font-size:20px;color:var(--accent);font-weight:700}.qa-badges{display:flex;justify-content:center;gap:8px;flex-wrap:wrap;margin-top:16px}.qa-badge{font-size:10px;font-weight:700;color:var(--green);background:var(--green-bg);border-radius:10px;padding:3px 9px}.showcase-note{text-align:center;font-size:10px;color:var(--muted);margin:10px 0 0}@media(max-width:900px){.showcase-block{grid-template-columns:1fr;padding:22px 20px}.showcase-copy .primary{width:100%}}@media(max-width:400px){.compare-thumb{width:104px;height:104px}.compare-row{gap:8px}}
.sample-photo{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:0;border-radius:inherit}
.project-cover .sample-photo~.cover-product,.project-cover .sample-photo~.lamp-object,.tiny-cover .sample-photo~.cover-product,.tiny-cover .sample-photo~.lamp-object,.compare-thumb .sample-photo~.cover-product,.compare-thumb .sample-photo~.jar,.compare-thumb .sample-photo~.scene-leaf,.asset-image .sample-photo~.jar,.asset-image .sample-photo~.scene-leaf,.asset-image .sample-photo~.benefit-copy,.asset-image .sample-photo~.detail-placeholder,.canvas-image .sample-photo~.jar,.canvas-image .sample-photo~.scene-leaf{display:none}
.sample-note{font-size:10px;color:var(--muted);margin:8px 0 0}
.asset-toolbar .sample-note{margin:0}

/* ===== 体验优化：绿色视觉系统（QTB-UI 设计层） =====
   主色 #365F49 · 背景 #F7F8F5 · 主文字 #263A32 · 次文字 #6D786F · 分割线 #DFE5DC
   规则：绿色只用于主操作与选中；警告用琥珀，失败用红色，并始终配文字说明，
   检查未通过不得渲染成绿色成功。 */
:root{
  --brand:#365F49;--brand-strong:#2C4C3B;--brand-soft:#EDF2EC;--brand-line:#A9C7B4;
  --sage:#7FA98F;--warn:#B45309;--warn-soft:#FFF5E6;--danger:#B91C1C;--danger-soft:#FCE8E6;
  --bg:#F7F8F5;--surface:#FFFFFF;--surface-alt:#F1F4EF;
  --radius-sm:8px;--radius-md:12px;--radius-lg:18px;
  --space-1:6px;--space-2:10px;--space-3:16px;--space-4:24px;--space-5:34px;
  --ring:0 0 0 3px rgba(54,95,73,.18);
}
body{background:var(--bg);color:var(--brand-strong)}
.topbar{gap:32px;padding:0 clamp(16px,3vw,42px);box-shadow:0 1px 0 rgba(38,58,50,.04)}
.brand-mark{background:var(--brand-soft);color:var(--brand)}
.main-nav{gap:24px;overflow-x:auto;scrollbar-width:none}
.main-nav::-webkit-scrollbar{display:none}
.nav-item{border-radius:999px;padding:6px 12px;height:34px;align-self:center;transition:background .16s,color .16s}
.nav-item:hover{background:var(--brand-soft);color:var(--brand-strong)}
.nav-item.active{background:var(--brand-soft);color:var(--brand-strong);font-weight:700}
.nav-item.active:after{display:none}
.credit-chip{display:inline-flex;align-items:center;gap:6px;border:1px solid var(--line);background:var(--surface);
  border-radius:999px;padding:6px 12px;font-size:12px;color:var(--muted);white-space:nowrap}
.credit-chip b{color:var(--brand-strong);font-size:13px}
.credit-chip:hover{border-color:var(--brand-line);background:var(--brand-soft)}
.avatar{background:var(--brand-soft);color:var(--brand-strong)}
.primary{background:var(--brand);box-shadow:0 6px 16px rgba(54,95,73,.18)}
.primary:hover{background:var(--brand-strong)}
.primary:disabled,.secondary:disabled{opacity:.55;cursor:not-allowed;box-shadow:none}
.secondary:hover{border-color:var(--brand-line);color:var(--brand-strong)}
.text-button{color:var(--brand);font-weight:600}
.text-button:hover{background:var(--brand-soft)}
input,select,textarea{border-color:var(--line)}
input:focus,select:focus,textarea:focus{outline:none;border-color:var(--brand);box-shadow:var(--ring)}
button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,[tabindex]:focus-visible{outline:3px solid var(--brand-line);outline-offset:2px}
.page-heading h1,.project-heading h1{font-weight:700;letter-spacing:-.3px}
.eyebrow{color:var(--brand);letter-spacing:1.4px}
.h1-accent{background:linear-gradient(120deg,var(--brand),var(--sage));-webkit-background-clip:text;background-clip:text;color:transparent}
.metric-strip,.section-block,.project-card,.task-card,.asset-card,.delivery-table,.project-table{border-radius:var(--radius-md)}
.task-card.primary-task{border-color:var(--brand-line);background:var(--brand-soft)}
.task-icon{color:var(--brand)}
.status-pill.blue{background:var(--brand-soft);color:var(--brand-strong)}
.status-pill.green{background:var(--brand-soft);color:var(--green)}
.project-card:hover,.asset-card:hover,.asset-card.selected,.table-row:hover{border-color:var(--brand-line);box-shadow:0 8px 22px rgba(54,95,73,.10)}

/* 状态与反馈：加载 / 空 / 错误 / 不可用，全部带文字，不靠颜色单独表意 */
.state-note{display:flex;gap:10px;align-items:flex-start;border:1px solid var(--line);border-radius:var(--radius-sm);
  background:var(--surface);padding:12px 14px;font-size:12px;color:var(--muted);line-height:1.6}
.state-note b{color:var(--brand-strong)}
.state-note.warn{border-color:#EAD3AD;background:var(--warn-soft);color:#7A4A10}
.state-note.danger{border-color:#EFC3BF;background:var(--danger-soft);color:#8A1F1F}
.state-note.ok{border-color:#CFE0D3;background:var(--brand-soft);color:#2C5B41}
.state-actions{display:flex;gap:8px;margin-top:8px;flex-wrap:wrap}
.loading-line{height:12px;border-radius:999px;background:linear-gradient(90deg,var(--surface-alt),#E7EDE7,var(--surface-alt));
  background-size:200% 100%;animation:qtb-shimmer 1.2s ease-in-out infinite}
.loading-block{height:88px;border-radius:var(--radius-md);margin:10px 0}
@keyframes qtb-shimmer{0%{background-position:200% 0}100%{background-position:-200% 0}}
.empty-state{text-align:center;padding:34px 18px;border:1px dashed var(--line);border-radius:var(--radius-md);
  background:var(--surface);color:var(--muted)}
.empty-state h3{margin:0 0 6px;color:var(--brand-strong);font-size:15px}
.empty-state p{margin:0 0 12px;font-size:12px}
.real-error{color:var(--danger)}

/* 桌面/移动端：导航与操作区不横向溢出，主按钮、价格与错误始终可点 */
@media(max-width:960px){
  .topbar{height:auto;flex-wrap:wrap;gap:10px;padding:10px 16px}
  .main-nav{gap:6px;order:3;width:100%;justify-content:flex-start}
  .top-actions{margin-left:auto;gap:8px}
  main{padding:22px 16px 48px}
  .page-heading{flex-direction:column;align-items:stretch;gap:14px}
  .heading-actions{flex-wrap:wrap}
  .heading-actions .primary,.heading-actions .secondary{flex:1 1 auto;justify-content:center;text-align:center}
  .metric-strip{grid-template-columns:repeat(2,1fr);padding:16px}
  .metric{border-right:0;padding-right:0}
  .project-list{grid-template-columns:1fr}
  .task-grid{grid-template-columns:repeat(2,1fr)}
  .asset-grid{grid-template-columns:repeat(2,minmax(140px,1fr))}
  .asset-image{height:180px}
  .asset-layout{grid-template-columns:1fr}
  .asset-sidebar{border-right:0;border-bottom:1px solid var(--line);padding:0 0 12px}
  .filter-bar{flex-direction:column;align-items:stretch;gap:10px}
  .search{width:100%}
}
@media(max-width:560px){
  .brand small{display:none}
  .task-grid,.asset-grid{grid-template-columns:1fr}
  .project-card{grid-template-columns:110px 1fr}
  .project-cover{min-height:150px}
  .credit-chip{padding:5px 9px}
  .showcase-block{padding:18px 16px}
}
@media(prefers-reduced-motion:reduce){
  .loading-line{animation:none}
  .project-card:hover,.task-card:not(:disabled):hover,.asset-card:hover{transform:none}
}
@media (forced-colors: active){
  .primary,.secondary,.nav-item.active{border:1px solid ButtonText}
}

/* ===== 模块02：首次制作一页三步向导（create 视图） =====
   复用现有绿色设计系统：主操作/选中用 --brand，警告琥珀、失败红色，均配文字说明。 */
.wiz-steps{list-style:none;display:flex;gap:10px;margin:0 0 16px;padding:0;flex-wrap:wrap}
.wiz-steps li{display:contents}
.wiz-step{display:inline-flex;align-items:center;gap:8px;border:1px solid var(--line);background:var(--surface);
  border-radius:999px;padding:8px 14px;font-size:12px;font-weight:600;color:var(--muted);transition:.16s}
.wiz-step i{font-style:normal;width:20px;height:20px;border-radius:50%;display:grid;place-items:center;
  background:var(--surface-alt);color:var(--muted);font-size:11px}
.wiz-step:disabled{opacity:.55;cursor:not-allowed}
.wiz-step.is-current{border-color:var(--brand);background:var(--brand-soft);color:var(--brand-strong)}
.wiz-step.is-current i{background:var(--brand);color:#fff}
.wiz-step.is-done{color:var(--brand);border-color:var(--brand-line)}
.wiz-step.is-done i{background:var(--brand-soft);color:var(--brand)}
.wiz-step:not(:disabled):hover{border-color:var(--brand-line);color:var(--brand-strong)}
.wiz-panel{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-md);
  box-shadow:var(--shadow);padding:22px;display:grid;gap:14px}
.wiz-resume{border:1px solid var(--brand-line);background:var(--brand-soft);border-radius:var(--radius-sm);
  padding:14px 16px;display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:14px}
.wiz-resume p{margin:0;font-size:12px;color:var(--brand-strong);line-height:1.6}
.wiz-resume-actions{display:flex;gap:8px;flex-wrap:wrap}
.wiz-drop{border:1.5px dashed var(--brand-line);border-radius:var(--radius-sm);background:var(--surface-alt);
  padding:26px 18px;display:grid;gap:6px;place-items:center;text-align:center;cursor:pointer;transition:.16s}
.wiz-drop b{font-size:13px;color:var(--brand-strong)}
.wiz-drop span{font-size:11px;color:var(--muted)}
.wiz-drop:hover,.wiz-drop.dragover{border-color:var(--brand);background:var(--brand-soft)}
.wiz-drop.dragover b{color:var(--brand)}
.wiz-field{display:grid;gap:6px;font-size:12px;font-weight:600;color:var(--brand-strong)}
.wiz-field input,.wiz-field select,.wiz-field textarea{width:100%;padding:9px 10px;border:1px solid var(--line);
  border-radius:7px;font-family:inherit;font-size:13px;color:var(--ink);background:var(--surface)}
.wiz-field input:disabled{background:var(--surface-alt);color:var(--muted)}
.wiz-preview{display:flex;gap:14px;align-items:flex-start;border-top:1px solid var(--line);padding-top:14px}
.wiz-preview-thumb{margin:0;width:150px;height:150px;flex:none;border:1px solid var(--line);border-radius:var(--radius-sm);
  overflow:hidden;background:var(--surface-alt);display:grid;place-items:center}
.wiz-preview-thumb img{width:100%;height:100%;object-fit:contain}
.wiz-preview-body{flex:1;min-width:0;display:grid;gap:8px}
.wiz-upload-status{margin:0;font-size:12px;color:var(--muted)}
.upload-done{border:1px solid var(--brand-line);background:var(--brand-soft);border-radius:var(--radius-sm);padding:10px 12px}
.upload-done b{font-size:12px;color:var(--brand-strong)}
.upload-done p{margin:6px 0 0;font-size:11px;color:var(--muted);line-height:1.6;word-break:break-all}
.upload-warnings{list-style:none;margin:8px 0 0;padding:0;display:grid;gap:5px}
.upload-warnings li{font-size:11px;color:var(--warn);background:var(--warn-soft);border-radius:5px;padding:5px 8px}
.wiz-upload-retry{display:flex;gap:8px;flex-wrap:wrap}
.wiz-actions{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap;
  border-top:1px solid var(--line);padding-top:14px}
.wiz-actions-main{display:flex;gap:8px;flex-wrap:wrap}
.wiz-hint{font-size:11px;color:var(--muted);line-height:1.6}
.wiz-form-grid{display:grid;grid-template-columns:minmax(220px,340px);gap:8px;align-items:end}
.wiz-section-title{margin:0;font-size:14px;color:var(--brand-strong);display:flex;align-items:baseline;gap:8px}
.wiz-section-title span{font-size:11px;font-weight:400;color:var(--muted)}
.wiz-templates{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.wiz-template-card{border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--surface);
  padding:12px;display:grid;gap:5px;text-align:left;transition:.16s;min-width:0}
.wiz-template-card b{font-size:12px;color:var(--ink)}
.wiz-template-card span{font-size:11px;color:var(--muted);line-height:1.5}
.wiz-template-card small{font-size:10px;color:var(--faint)}
.wiz-template-card:hover{border-color:var(--brand-line)}
.wiz-template-card.selected{border-color:var(--brand);background:var(--brand-soft);box-shadow:var(--ring)}
.wiz-template-card.selected b{color:var(--brand-strong)}
.wiz-more>summary,.wiz-advanced>summary{cursor:pointer;font-size:12px;font-weight:600;color:var(--brand);padding:4px 0}
.wiz-more[open]>summary,.wiz-advanced[open]>summary{margin-bottom:10px}
.wiz-more,.wiz-advanced{border:1px solid var(--line);border-radius:var(--radius-sm);padding:10px 12px;background:var(--surface)}
.wiz-row{display:grid;grid-template-columns:minmax(200px,320px) 1fr;gap:10px;align-items:end}
.wiz-row-4{grid-template-columns:repeat(4,minmax(0,1fr));align-items:start}
.wiz-row-4 label{display:grid;gap:5px;font-size:11px;color:var(--muted)}
.wiz-row-4 input{width:100%;padding:8px 9px;border:1px solid var(--line);border-radius:6px;font-size:12px;font-family:inherit}
.wiz-check{display:flex;align-items:center;gap:7px;font-size:12px;color:var(--brand-strong)}
.wiz-notes{border:1px solid var(--line);border-radius:var(--radius-sm);padding:12px 14px;background:var(--surface-alt)}
.wiz-notes h4{margin:0 0 8px;font-size:12px;color:var(--brand-strong);display:flex;gap:8px;align-items:baseline;flex-wrap:wrap}
.wiz-notes h4 span{font-size:11px;font-weight:400;color:var(--muted)}
.wiz-delivery-list{list-style:none;margin:0;padding:0;display:grid;gap:8px}
.wiz-delivery-list li{display:flex;flex-wrap:wrap;gap:6px 12px;align-items:baseline;font-size:11px;color:var(--muted);
  background:var(--surface);border:1px solid var(--line);border-radius:6px;padding:8px 10px}
.wiz-delivery-list li b{font-size:12px;color:var(--ink)}
/* .spec-chip / .real-empty / .fact-row 等沿用 m03.css、m04.css 既有定义，不在此重复 */
.spec-conflicts{list-style:none;margin:0;padding:0;display:grid;gap:8px}
.spec-conflict{border-radius:6px;padding:9px 11px;font-size:12px;line-height:1.6}
.spec-conflict.hard{background:var(--warn-soft);color:#7A4A10}
.spec-conflict.blocked{background:var(--danger-soft);color:#8A1F1F}
.spec-conflict p{margin:4px 0 0}
.spec-conflict-head b{font-size:10px;background:#ffffff9c;border-radius:4px;padding:2px 6px}
.spec-noway{color:#8A1F1F}
.spec-resolution{display:grid;gap:5px;margin-top:8px;font-size:11px;color:inherit}
.spec-resolution select{width:100%;max-width:320px;padding:7px 8px;border:1px solid var(--line);border-radius:6px;
  font-family:inherit;font-size:12px;background:var(--surface)}
.wiz-readiness{border:1px solid var(--line);border-radius:var(--radius-sm);padding:12px 14px;background:var(--surface-alt)}
.wiz-readiness h4{margin:0 0 8px;font-size:12px;color:var(--brand-strong)}
.wiz-quote-bar{border:1px solid var(--brand-line);background:var(--brand-soft);border-radius:var(--radius-sm);padding:14px 16px}
.wiz-quote-bar b{font-size:14px;color:var(--brand-strong);display:block}
.wiz-quote-bar>span{display:block;font-size:11px;color:var(--muted);margin-top:4px}
.wiz-quote-bar p{margin:8px 0 0;font-size:11px;color:var(--brand-strong);line-height:1.6}
.wiz-quote-bar p.real-note{color:var(--muted)}
.wiz-done{border:1px solid var(--brand-line);background:var(--brand-soft);border-radius:var(--radius-sm);padding:14px 16px}
.wiz-done p{margin:0 0 8px;font-size:12px;color:var(--brand-strong);line-height:1.6}
.wiz-done b{font-size:13px}
/* 演示素材样例：真实模型生成，仅作展示，不参与真实商品与交付 */
.sample-sheet{margin-top:12px;border:1px solid var(--line,#E1E6D9);border-radius:10px;padding:10px 14px;background:#fff}
.sample-sheet summary{cursor:pointer;font-size:12px;color:var(--muted,#62705C)}
.sample-sheet-grid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:8px;margin-top:10px}
.sample-sheet-grid .tiny-cover{min-height:88px}
@media(max-width:760px){.sample-sheet-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:760px){
  .wiz-panel{padding:16px}
  .wiz-steps{gap:6px}
  .wiz-step{padding:7px 10px;font-size:11px}
  .wiz-preview{flex-direction:column}
  .wiz-preview-thumb{width:100%;height:180px}
  .wiz-templates{grid-template-columns:1fr}
  .wiz-row{grid-template-columns:1fr}
  .wiz-row-4{grid-template-columns:1fr 1fr}
  .wiz-actions{flex-direction:column-reverse;align-items:stretch}
  .wiz-actions .primary,.wiz-actions .secondary,.wiz-actions-main{width:100%}
  .wiz-actions .primary,.wiz-actions .secondary{padding:12px 16px}
  .wiz-actions-main{display:grid;gap:8px}
  .wiz-resume{flex-direction:column;align-items:stretch}
}


