:root{--green:#176b52;--green-dark:#0f4939;--green-soft:#eaf4f0;--ink:#20312b;--muted:#6f8079;--line:#dce7e2;--bg:#f4f7f6;--white:#fff;--danger:#b73b3b;--shadow:0 8px 26px rgba(25,61,48,.08)}*{box-sizing:border-box}html,body{margin:0;min-height:100%;font-family:"Microsoft YaHei","PingFang SC",Arial,sans-serif;color:var(--ink);background:var(--bg)}a{color:var(--green);text-decoration:none}button,input,select,textarea{font:inherit}button{cursor:pointer}.app-shell{min-height:100vh;display:flex}.sidebar{width:238px;background:linear-gradient(180deg,#0e4435,#173d33);color:#fff;position:fixed;inset:0 auto 0 0;display:flex;flex-direction:column;z-index:30;box-shadow:4px 0 18px #0d312824}.brand{display:flex;align-items:center;gap:12px;padding:25px 20px 20px;border-bottom:1px solid #ffffff18}.brand-mark,.leaf{width:44px;height:44px;border-radius:13px;display:grid;place-items:center;background:linear-gradient(135deg,#4eaf83,#d8b765);font-weight:800;color:#fff}.brand strong{display:block;font-size:17px}.brand small{display:block;color:#b7d1c8;margin-top:3px}.sidebar nav{padding:14px 10px;overflow:auto;flex:1}.sidebar nav a{display:block;color:#cfe0da;padding:10px 13px;margin:2px 0;border-radius:8px;font-size:14px}.sidebar nav a:hover,.sidebar nav a.active{background:#ffffff16;color:#fff}.logout-form{padding:14px}.logout-form button{width:100%;border:1px solid #ffffff25;background:#ffffff0b;color:#fff;border-radius:8px;padding:10px}.main{margin-left:238px;width:calc(100% - 238px);min-width:0}.topbar{height:68px;background:#fff;border-bottom:1px solid var(--line);display:flex;align-items:center;gap:18px;padding:0 28px;position:sticky;top:0;z-index:20}.topbar-title{flex:1;color:#476057}.user-chip{display:flex;flex-direction:column;align-items:flex-end;color:var(--ink)}.user-chip small{color:var(--muted);margin-top:3px}.menu-toggle{display:none;border:0;background:transparent;font-size:22px}.page{padding:28px;max-width:1640px;margin:0 auto}.page-title{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;margin-bottom:20px}.page-title h1{font-size:27px;margin:0 0 7px}.page-title p{margin:0;color:var(--muted);line-height:1.65}.button-group,.inline-actions,.inline-tools{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.btn{display:inline-flex;align-items:center;justify-content:center;border:1px solid var(--line);background:#fff;color:var(--ink);padding:9px 15px;border-radius:8px;min-height:38px}.btn:hover{border-color:#9ebcb1}.btn.primary{background:var(--green);border-color:var(--green);color:#fff}.btn.danger{background:var(--danger);border-color:var(--danger);color:#fff}.btn.small{padding:6px 11px;min-height:32px;font-size:13px}.btn.large{padding:12px 24px}.btn.full{width:100%}.panel{background:#fff;border:1px solid var(--line);border-radius:12px;padding:20px;box-shadow:var(--shadow);margin-bottom:20px}.panel h2{font-size:18px;margin:0 0 17px}.panel-head,.section-heading{display:flex;align-items:center;justify-content:space-between;gap:15px;margin-bottom:16px}.panel-head h2,.section-heading h2{margin:0}.section-heading span,.panel-head small{color:var(--muted);font-size:13px}.stats-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:15px;margin-bottom:20px}.stats-grid.eight{grid-template-columns:repeat(8,minmax(0,1fr))}.stat{background:#fff;border:1px solid var(--line);border-radius:12px;padding:17px;box-shadow:var(--shadow)}.stat span{display:block;color:var(--muted);font-size:13px}.stat strong{display:block;font-size:28px;margin-top:8px;color:var(--green-dark)}.stat strong.small-stat{font-size:16px;line-height:1.45}.stat.emphasis{background:var(--green);color:#fff}.stat.emphasis span,.stat.emphasis strong{color:#fff}.dashboard-grid,.two-col,.detail-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:20px}.detail-grid{grid-template-columns:minmax(0,1.2fr) minmax(340px,.8fr)}.search-bar{background:#fff;border:1px solid var(--line);padding:12px;border-radius:11px;display:grid;grid-template-columns:minmax(240px,1fr) 210px 160px auto auto;gap:10px;margin-bottom:20px;align-items:center}.search-bar.compact{grid-template-columns:1fr auto}.search-bar input,.search-bar select{min-width:0}.form-grid{display:grid;gap:14px}.form-grid.cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.form-grid.cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.form-grid.cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.form-grid label,.form-stack label,.product-form label{display:flex;flex-direction:column;gap:7px;font-size:13px;font-weight:600}.span-2{grid-column:span 2}.span-3{grid-column:span 3}.form-stack{display:flex;flex-direction:column;gap:14px}.form-section{padding:4px 0 24px;margin-bottom:22px;border-bottom:1px solid var(--line)}.form-section:last-of-type{border-bottom:0}.form-actions{display:flex;gap:10px;justify-content:flex-end;align-items:center}.product-form input,.product-form select,.product-form textarea,.form-stack input,.form-stack select,.form-stack textarea,.search-bar input,.search-bar select,.public-login input,.mini-form input{width:100%;border:1px solid #cfded8;border-radius:7px;background:#fff;padding:10px 11px;outline:none}.product-form textarea,.form-stack textarea{resize:vertical;line-height:1.7}.product-form input:focus,.product-form select:focus,.product-form textarea:focus,.search-bar input:focus{border-color:var(--green);box-shadow:0 0 0 3px #176b5214}.check,.inline-check{flex-direction:row!important;align-items:center!important;font-weight:500!important;gap:7px!important}.check input,.inline-check input{width:auto!important}.alert{padding:12px 15px;border-radius:8px;margin-bottom:17px}.alert.success{background:#e7f5ef;color:#156144;border:1px solid #b9dfd0}.alert.error{background:#fff0f0;color:#9b3131;border:1px solid #f0c8c8}.notice{background:#f1f7f4;border-left:4px solid var(--green);padding:13px 15px;line-height:1.7;font-size:13px;color:#4f655d;border-radius:5px}.badge,.status,.quote-status{display:inline-flex;padding:4px 8px;border-radius:999px;font-size:12px;background:var(--green-soft);color:var(--green-dark)}.status-0,.quote-status.rejected{background:#fff0f0;color:#a93636}.status-2,.quote-status.draft{background:#f2f3f4;color:#59636b}.status-3,.quote-status.pending{background:#fff7df;color:#8a6813}.quote-status.approved{background:#e5f5ee;color:#176b52}.block{display:block;margin-top:4px;color:var(--muted)}.muted{color:var(--muted)}.empty{padding:25px;text-align:center;color:var(--muted)}.empty-card{grid-column:1/-1;padding:60px;text-align:center;background:#fff;border:1px dashed var(--line);border-radius:12px;color:var(--muted)}.table-wrap{overflow:auto}table{width:100%;border-collapse:collapse}th,td{text-align:left;padding:11px 10px;border-bottom:1px solid #e6eeea;vertical-align:top;font-size:13px}th{color:#557067;font-weight:700;background:#f7faf9;white-space:nowrap}tr:last-child td{border-bottom:0}.link-btn{border:0;background:transparent;color:var(--green);padding:0}.danger-text{color:var(--danger)!important}.product-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:18px}.product-card{background:#fff;border:1px solid var(--line);border-radius:12px;overflow:hidden;box-shadow:var(--shadow);display:flex;flex-direction:column}.cover{height:210px;background:#edf3f0;display:grid;place-items:center;color:var(--muted)}.cover img{width:100%;height:100%;object-fit:cover}.product-body{padding:15px;display:flex;flex-direction:column;flex:1}.product-body h3{font-size:16px;margin:11px 0 7px}.product-body p{margin:4px 0;font-size:13px;line-height:1.55}.product-body .actions{margin-top:auto;padding-top:13px;display:flex;gap:13px}.card-top{display:flex;align-items:center;justify-content:space-between}.gallery .main-image{width:100%;height:480px;object-fit:contain;background:#f2f5f4;border-radius:8px}.thumbs{display:flex;gap:8px;overflow:auto;margin-top:10px}.thumbs img{width:76px;height:62px;object-fit:cover;border:2px solid transparent;border-radius:6px;cursor:pointer}.thumbs img:hover{border-color:var(--green)}.product-video{width:100%;max-height:520px;background:#000;border-radius:7px}.preline{white-space:pre-line;line-height:1.8}.parameter-table th{width:42%;background:#f4f8f6}.parameter-table .param-group td{background:#e8f3ee;color:var(--green-dark);font-weight:700}.key-info{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-top:16px}.key-info div{background:#f5f9f7;padding:12px;border-radius:8px}.key-info span{display:block;color:var(--muted);font-size:12px}.key-info b{display:block;margin-top:5px}.param-row{display:grid;grid-template-columns:1fr 1.25fr 1.25fr .65fr auto;gap:8px;margin-bottom:8px}.param-row input{min-width:0}.param-row button,.remove-section,.remove-quote-item{border:0;background:#fff0f0;color:var(--danger);border-radius:6px;padding:7px 10px}.section-row{background:#f8faf9;border:1px solid var(--line);border-radius:9px;padding:12px;margin-bottom:10px}.section-row-head{display:grid;grid-template-columns:1fr auto auto;gap:10px;align-items:center;margin-bottom:9px}.media-admin-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-top:18px}.media-admin-item{display:grid;grid-template-columns:62px 1fr auto;align-items:center;gap:10px;border:1px solid var(--line);border-radius:8px;padding:8px}.media-preview{width:62px;height:50px;background:#edf3f0;border-radius:6px;display:grid;place-items:center;color:var(--muted)}.media-preview img{width:100%;height:100%;object-fit:cover;border-radius:6px}.media-admin-item small{display:block;color:var(--muted);margin-top:3px}.case-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:13px}.case-card{border:1px solid var(--line);border-radius:9px;padding:14px;background:#fff}.case-card img{width:100%;height:160px;object-fit:cover;border-radius:7px;margin-bottom:10px}.case-card span{font-size:12px;color:var(--muted)}.case-card h3,.case-card h4{margin:7px 0}.case-card p{line-height:1.65;color:#52645d}.case-list article{display:flex;justify-content:space-between;gap:15px;border-bottom:1px solid var(--line);padding:13px 0}.case-list article:last-child{border-bottom:0}.case-list h3{margin:5px 0}.case-list p{margin:5px 0;color:var(--muted)}.document-list{display:grid;gap:8px}.document-list a{padding:11px;border:1px solid var(--line);border-radius:8px;background:#f8faf9}.document-list small{display:block;color:var(--muted);margin-top:3px}.approval-banner{display:flex;align-items:center;justify-content:space-between;gap:15px;background:#fff8e5;border:1px solid #ecd68e;border-radius:10px;padding:13px 16px;margin-bottom:20px}.role-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}.role-card{margin:0}.permission-group{font-size:13px;color:var(--green);margin:16px 0 8px;border-bottom:1px solid var(--line);padding-bottom:6px}.permission-item{display:flex;align-items:flex-start;gap:9px;padding:6px 0}.permission-item input{margin-top:3px}.permission-item small{display:block;color:var(--muted);font-weight:400;margin-top:2px}.inline-actions details{position:relative}.inline-actions summary{color:var(--green);cursor:pointer}.mini-form{position:absolute;right:0;top:24px;width:230px;background:#fff;border:1px solid var(--line);box-shadow:var(--shadow);padding:10px;border-radius:8px;z-index:5}.product-select-list{max-height:340px;overflow:auto;border:1px solid var(--line);border-radius:8px;padding:8px;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:5px}.product-select-list label{display:flex;align-items:center;gap:8px;padding:9px;border-radius:7px;background:#f7faf9}.product-select-list input{width:auto}.product-select-list small{display:block;color:var(--muted)}.product-select-list .select-all{grid-column:1/-1;background:#eaf4f0}.check-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.check-grid label{display:flex;align-items:center;gap:7px;background:#f7faf9;border:1px solid var(--line);padding:10px;border-radius:7px}.copy-line{display:flex;min-width:245px}.copy-line input{min-width:0;flex:1;border:1px solid var(--line);border-radius:6px 0 0 6px;padding:7px}.copy-line button{border:0;background:var(--green);color:#fff;border-radius:0 6px 6px 0;padding:0 10px}.modal{display:none;position:fixed;inset:0;background:#0008;z-index:100;align-items:center;justify-content:center}.modal.open{display:flex}.modal-card{background:#fff;border-radius:12px;padding:25px;text-align:center;position:relative;min-width:320px}.modal-close{position:absolute;right:10px;top:8px;border:0;background:transparent;font-size:24px}.public-page{display:grid;place-items:center;min-height:100vh;background:linear-gradient(135deg,#0f4939,#eaf4f0)}.public-login{width:min(430px,calc(100% - 30px));background:#fff;border-radius:15px;padding:30px;box-shadow:0 25px 70px #0003;display:flex;flex-direction:column;gap:13px}.public-login .leaf{margin:auto}.public-login h1{text-align:center;margin:5px 0}.public-login p,.public-login small{text-align:center;color:var(--muted);line-height:1.6}.share-page{background:#eef4f1}.share-header{background:#123f32;color:#fff;display:flex;justify-content:space-between;align-items:center;padding:16px max(20px,calc((100% - 1180px)/2));position:sticky;top:0;z-index:5}.share-header strong,.share-header span{display:block}.share-header small{color:#bcd6cc}.share-container{max-width:1180px;margin:0 auto;padding:25px 18px}.share-title{text-align:center;padding:20px}.share-title h1{margin:0 0 8px}.share-title p{color:var(--muted)}.share-product{margin-bottom:35px}.share-product-head{background:linear-gradient(135deg,#155c47,#22805f);color:#fff;border-radius:14px;padding:25px;margin-bottom:14px}.share-product-head span{opacity:.8}.share-product-head h2{font-size:28px;margin:9px 0}.share-gallery{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:11px;margin-bottom:14px}.share-gallery img{width:100%;height:250px;object-fit:cover;border-radius:10px;background:#fff}.share-card{background:#fff;border:1px solid var(--line);border-radius:12px;padding:20px;margin-bottom:14px;box-shadow:var(--shadow)}.share-card h3{margin:0 0 15px}.share-footer{text-align:center;background:#143d33;color:#c6d9d2;padding:18px}.watermark{position:fixed;inset:0;z-index:50;pointer-events:none;display:grid;grid-template-columns:repeat(4,1fr);overflow:hidden;opacity:.08}.watermark span{font-size:13px;transform:rotate(-25deg);align-self:center;color:#153d31}.no-copy{-webkit-user-select:none;user-select:none}.quote-form .quote-item-row{border:1px solid var(--line);border-radius:10px;padding:13px;margin-bottom:12px;background:#f9fbfa}.quote-product-select{display:flex;align-items:flex-end;gap:10px;margin-bottom:12px}.quote-product-select label{flex:1}.quote-line-total{text-align:right;margin-top:8px;color:var(--muted)}.quote-grand-total{text-align:right;font-size:18px;padding-top:15px}.quote-grand-total strong{font-size:28px;color:var(--green);margin-left:10px}.quote-product-cell{display:flex;align-items:center;gap:9px}.quote-product-cell img{width:64px;height:48px;object-fit:cover;border-radius:6px}.info-list{display:grid;grid-template-columns:100px 1fr;gap:10px;margin:0}.info-list dt{color:var(--muted)}.info-list dd{margin:0;white-space:pre-line}.approval-actions{display:grid;grid-template-columns:1fr 1fr;gap:18px}.approval-actions form{display:flex;flex-direction:column;gap:9px}.approval-actions textarea{border:1px solid var(--line);border-radius:7px;padding:10px}.timeline{display:grid;gap:12px}.timeline>div{border-left:3px solid var(--green);padding-left:13px}.timeline span{display:block;color:var(--muted);font-size:12px;margin-top:4px}.template-list{display:grid;gap:12px}.template-list article{display:flex;gap:12px;padding:13px;border:1px solid var(--line);border-radius:9px}.template-list article>span{width:10px;border-radius:5px}.template-list h3{margin:0 0 5px}.template-list p{margin:0 0 8px;color:var(--muted)}.narrow{max-width:760px}.small-stat{overflow-wrap:anywhere}
@media(max-width:1280px){.stats-grid.eight{grid-template-columns:repeat(4,1fr)}.product-grid{grid-template-columns:repeat(3,1fr)}.role-grid{grid-template-columns:repeat(2,1fr)}.media-admin-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:900px){.sidebar{transform:translateX(-100%);transition:.25s}.sidebar.open{transform:translateX(0)}.main{margin-left:0;width:100%}.menu-toggle{display:block}.page{padding:18px}.topbar{padding:0 16px}.topbar-title{display:none}.page-title{flex-direction:column}.stats-grid,.stats-grid.eight{grid-template-columns:repeat(2,1fr)}.dashboard-grid,.two-col,.detail-grid{grid-template-columns:1fr}.product-grid{grid-template-columns:repeat(2,1fr)}.search-bar{grid-template-columns:1fr 1fr}.search-bar input:first-child{grid-column:1/-1}.form-grid.cols-3,.form-grid.cols-4{grid-template-columns:repeat(2,1fr)}.span-3{grid-column:span 2}.role-grid{grid-template-columns:1fr}.check-grid{grid-template-columns:repeat(2,1fr)}.share-gallery{grid-template-columns:repeat(2,1fr)}.gallery .main-image{height:380px}.case-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:600px){.page{padding:13px}.page-title h1{font-size:23px}.panel{padding:14px}.stats-grid,.stats-grid.eight{grid-template-columns:1fr 1fr;gap:9px}.stat{padding:13px}.stat strong{font-size:23px}.product-grid{grid-template-columns:1fr}.cover{height:240px}.search-bar,.search-bar.compact{grid-template-columns:1fr}.search-bar input:first-child{grid-column:auto}.form-grid.cols-2,.form-grid.cols-3,.form-grid.cols-4{grid-template-columns:1fr}.span-2,.span-3{grid-column:auto}.param-row{grid-template-columns:1fr 1fr}.param-row button{grid-column:2}.section-row-head{grid-template-columns:1fr auto}.section-row-head .inline-check{grid-row:2}.media-admin-grid{grid-template-columns:1fr}.product-select-list{grid-template-columns:1fr}.check-grid{grid-template-columns:1fr}.share-header{align-items:flex-start;gap:12px}.share-header div:last-child{text-align:right}.share-gallery{grid-template-columns:1fr}.share-gallery img{height:260px}.share-product-head h2{font-size:22px}.case-grid{grid-template-columns:1fr}.key-info{grid-template-columns:1fr}.approval-actions{grid-template-columns:1fr}.quote-product-select{flex-direction:column;align-items:stretch}.gallery .main-image{height:300px}.copy-line{min-width:210px}}
.login-page{min-height:100vh;display:grid;place-items:center;padding:24px;background:radial-gradient(circle at top left,#2f8a68 0,#123f32 40%,#092d24 100%)}.login-card{width:min(920px,100%);display:grid;grid-template-columns:1.05fr .95fr;background:#fff;border-radius:18px;overflow:hidden;box-shadow:0 28px 90px #0005}.login-visual{padding:58px;background:linear-gradient(145deg,#0f4939,#1f7559);color:#fff;display:flex;flex-direction:column;justify-content:center}.login-visual .leaf{margin-bottom:22px}.login-visual h1{font-size:32px;margin:0 0 13px}.login-visual p{color:#c9ddd5;line-height:1.8}.login-form{padding:55px;display:flex;flex-direction:column;gap:16px;justify-content:center}.login-form h2{margin:0 0 8px;font-size:25px}.login-form label{display:flex;flex-direction:column;gap:7px;font-size:13px;font-weight:700}.login-form input{width:100%;border:1px solid #cfded8;border-radius:8px;padding:12px}.login-form small{color:var(--muted);text-align:center}.login-form .btn{margin-top:5px}@media(max-width:720px){.login-card{grid-template-columns:1fr}.login-visual{padding:28px}.login-visual h1{font-size:24px}.login-form{padding:30px}}
.build-log{max-width:520px;max-height:220px;overflow:auto;white-space:pre-wrap;background:#102f27;color:#d5eee5;padding:10px;border-radius:7px;font-size:12px}

.module-options{border:1px solid #dbe7e2;border-radius:10px;padding:12px;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.module-options legend{padding:0 6px;font-weight:700;color:#36584c}

.quote-share-panel .share-result{display:grid;grid-template-columns:1fr 180px;gap:24px;align-items:center}.quote-share-panel input[readonly]{background:#f7faf9}.quote-share-panel .qr-box{justify-self:center;background:#fff;padding:12px;border:1px solid #dce8e3;border-radius:12px}@media(max-width:760px){.quote-share-panel .share-result{grid-template-columns:1fr}.quote-share-panel .qr-box{justify-self:start}}

.category-list{display:grid;gap:12px}.category-edit-row{border:1px solid #e0ebe6;border-radius:12px;padding:12px;background:#fbfdfc}.media-actions{display:flex;gap:10px;align-items:center}.case-card>img{width:100%;height:160px;object-fit:cover;border-radius:10px;margin-bottom:10px}

/* 多语言产品资料 */
.translation-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.translation-card{border:1px solid #d8e5df;border-radius:10px;background:#f8fbfa;padding:0 14px}.translation-card summary{cursor:pointer;padding:13px 0;font-weight:700;color:#174c3b}.translation-card summary small{font-weight:400;color:#789087;margin-inline-start:6px}.translation-card[open]{padding-bottom:14px}@media(max-width:900px){.translation-grid{grid-template-columns:1fr}}
