.actions>div{grid-template-columns:repeat(3,1fr)}
.demo-banner{position:sticky;top:72px;z-index:19;display:flex;justify-content:center;align-items:center;gap:12px;padding:9px 18px;background:#fff0cb;color:#6f4a00;border-bottom:1px solid #e5c878;font-size:12px;line-height:1.45}.demo-banner[hidden]{display:none}.demo-banner b{padding:3px 8px;border-radius:999px;background:#b55c20;color:#fff;letter-spacing:.08em}.demo-login-hint{padding:12px 14px;border:1px solid #e5c878;border-radius:10px;background:#fff8e7;color:#6f4a00;font-size:13px;line-height:1.6}.demo-upload-note{display:none;margin-left:8px;color:#b55c20;font-style:normal;font-size:11px}.demo-mode .demo-upload-note{display:inline}.demo-mode #appMain{padding-top:20px}.demo-mode .hero small::before{content:"竞赛 DEMO · ";color:#b55c20}
@media(max-width:680px){.demo-banner{top:56px;align-items:flex-start;text-align:left}.demo-banner span{flex:1}.demo-mode #appMain{padding-top:14px}}
.hero-actions,.history-actions,.save-options,.modal-tabs{display:flex;gap:8px}
.article-head{align-items:center;gap:12px;margin-bottom:18px;flex-wrap:wrap}.article-head h2{margin:0}.article-head-actions{display:flex;align-items:center;justify-content:flex-end;gap:12px;margin-left:auto;max-width:100%;flex-wrap:wrap}.article-head-actions span{color:var(--muted);font-size:13px;white-space:nowrap}.article-head-actions button{padding:8px 12px;white-space:nowrap}
.history-actions button{padding:8px 11px}
.modal{position:fixed;inset:0;background:#102d3399;z-index:100;display:grid;place-items:center;padding:24px}
.modal[hidden]{display:none}
.modal-card{background:#fff;border-radius:18px;width:min(1180px,96vw);max-height:90vh;overflow:auto;padding:22px;box-shadow:0 25px 80px #0005}
.modal-head{display:flex;align-items:center;justify-content:space-between;position:sticky;top:-22px;background:#fff;padding:8px 0 14px;z-index:2}
.modal-head h2{margin:0}.modal-head button{font-size:22px;padding:3px 10px}.modal-tabs{margin-bottom:16px}.modal-tabs button.active{background:var(--teal);color:#fff}
.table-wrap{overflow:auto;border:1px solid var(--line);border-radius:12px}table{border-collapse:collapse;width:100%;min-width:900px}th,td{padding:10px;border-bottom:1px solid var(--line);text-align:left;white-space:nowrap}th{background:#173f46;color:#fff;font-size:12px}td{font-size:12px}
.quote-info{display:flex;gap:28px;flex-wrap:wrap;padding:16px;background:var(--soft);border-radius:12px;margin-bottom:12px}.save-options button{min-width:150px}
.field-tip{display:inline-grid;place-items:center;margin-left:6px;width:16px;height:16px;border-radius:50%;background:#d76d38;color:#fff;font-size:11px;font-style:normal;cursor:help;vertical-align:middle}
.bom-grid>.field{min-width:0}.bom-grid>.field>span{white-space:normal;overflow-wrap:anywhere}
.material-picker{position:relative}.material-trigger{width:100%;min-height:42px;text-align:left;display:flex;align-items:center;gap:8px}.material-trigger small{color:#748078}.material-menu,.material-submenu{position:absolute;z-index:30;top:calc(100% + 4px);width:min(260px,calc(100vw - 16px));max-height:360px;overflow:auto;background:#fff;border:1px solid #d8d3c7;border-radius:10px;box-shadow:0 14px 34px #25332b26;padding:6px}.material-menu{left:0}.material-submenu{left:260px;top:0}.material-menu button,.material-submenu button{width:100%;border:0;background:transparent;display:flex;justify-content:space-between;align-items:center;padding:9px 10px;text-align:left;border-radius:7px;font:500 14px/1.25 "Microsoft YaHei",sans-serif}.material-menu button b,.material-submenu button b{font:inherit}.material-menu button:hover,.material-submenu button:hover{background:#edf4ef}.material-submenu button span{color:#748078;font:inherit}.material-submenu-back{display:none!important;color:var(--teal);font-weight:700!important;border-bottom:1px solid var(--line)!important;border-radius:0!important;margin-bottom:4px}.material-submenu-stacked .material-submenu-back{display:flex!important}
@media(max-width:680px){.hero{flex-direction:column}.hero-actions{width:100%}.hero-actions button{flex:1}.history-actions{grid-column:span 2}.history-actions button{flex:1}.modal{padding:8px}.modal-card{padding:14px;width:100%;max-height:96vh}.modal-head{top:-14px}}
textarea{width:100%;box-sizing:border-box;border:1px solid var(--line);border-radius:9px;padding:10px 11px;background:#fbfcfa;color:var(--ink);font:inherit;resize:vertical}.danger{color:#a33!important;border-color:#d9aaa2!important}.feedback-text{white-space:pre-wrap;min-width:0;max-width:100%;overflow-wrap:anywhere;word-break:break-word}.global-notice{position:fixed;right:max(16px,env(safe-area-inset-right));bottom:max(16px,env(safe-area-inset-bottom));z-index:320;width:min(420px,calc(100vw - 32px));padding:13px 16px;border-radius:11px;background:#8f3f2f;color:#fff;box-shadow:0 14px 38px #102d3355;font-size:13px;line-height:1.6;overflow-wrap:anywhere}.global-notice.success{background:#26715c}.global-notice[hidden]{display:none}
.product-card{margin-bottom:18px}.file-list{display:flex;gap:8px;flex-wrap:wrap;margin-top:10px}.file-list span{display:flex;align-items:center;gap:5px;background:var(--soft);padding:6px 9px;border-radius:8px;font-size:12px}.file-list span button{border:0;background:transparent;padding:0 3px;color:#a33}.product-summary,.attachment-nav{display:flex;gap:18px;align-items:center;flex-wrap:wrap;padding:12px;background:var(--soft);border-radius:10px;margin-bottom:12px}.attachment-nav{justify-content:space-between}.attachment-image{display:block;max-width:100%;max-height:65vh;margin:auto}.attachment-frame{width:100%;height:65vh;border:1px solid var(--line);border-radius:10px;background:#f1f2ef}.quote-document-frame{height:68vh}.attachment-unsupported,.preview-error,.preview-loading{text-align:center;padding:60px 20px;background:var(--soft);border-radius:12px}.attachment-unsupported p,.preview-error p{color:var(--muted);max-width:720px;margin:12px auto 20px;line-height:1.7}.preview-loading{display:grid;gap:8px;color:var(--teal)}.preview-loading span,.preview-note{color:var(--muted);font-size:12px}.preview-toolbar,.preview-pages,.preview-formats,.preview-download,.preview-error-actions{display:flex;align-items:center;gap:8px}.preview-toolbar{justify-content:space-between;flex-wrap:wrap;margin-bottom:12px}.preview-pages,.preview-error-actions{justify-content:center}.preview-formats button.active{background:var(--teal);border-color:var(--teal);color:#fff}.preview-pages button:disabled,.attachment-nav button:disabled{cursor:not-allowed;opacity:.45}.attachment-pages{margin:10px 0}.preview-download{justify-content:flex-end;margin-top:10px}.preview-download a,.download-link{display:inline-flex;border:1px solid var(--line);border-radius:9px;padding:9px 12px;color:var(--teal);text-decoration:none;background:#fff}.preview-note{text-align:center;margin:9px 0 0}.pinned{border-color:var(--accent);background:#fffaf5}
.login-gate{position:fixed;inset:0;z-index:200;display:grid;place-items:center;padding:20px;background:radial-gradient(circle at 20% 10%,#2d6872 0,#163b42 40%,#0e292f 100%)}.login-gate[hidden]{display:none}.login-card{width:min(430px,100%);display:grid;gap:16px;background:#fff;border-radius:22px;padding:34px;box-shadow:0 30px 90px #001b}.login-card h1{margin:10px 0 0}.login-card>p{margin:0;color:var(--muted)}.login-brand{display:flex;flex-direction:column;color:var(--teal)}.login-brand b{font-size:22px}.login-brand span{font-size:11px;letter-spacing:2px;color:var(--muted)}.form-message{min-height:20px;color:#b25232!important}.account-box{display:flex;flex-direction:row;align-items:center;gap:8px;min-width:0;white-space:nowrap}.account-box b{max-width:min(28vw,320px);overflow:hidden;text-overflow:ellipsis;font-size:12px}.account-box button{flex:none;padding:6px 9px;background:#ffffff12;color:#fff;border-color:#ffffff2b}.user-item{display:grid;grid-template-columns:minmax(190px,1.2fr) minmax(130px,.7fr) minmax(130px,.7fr) auto;align-items:end;gap:12px;padding:14px;border:1px solid var(--line);border-radius:12px}.user-item>div:first-child{min-width:0;overflow-wrap:anywhere}.user-item span{display:block;color:var(--muted);font-size:12px;overflow-wrap:anywhere}.compact-field{display:grid;gap:5px}.compact-field span{font-size:11px;color:var(--muted)}.form-button{justify-content:end}.modal-action{margin-top:14px}
.material-price-tools{display:grid;grid-template-columns:2fr 1fr;gap:12px}.material-price-item{display:grid;grid-template-columns:minmax(230px,1.4fr) minmax(120px,.7fr) minmax(150px,.8fr) auto;gap:14px;align-items:end;padding:14px;border:1px solid var(--line);border-radius:12px}.material-price-item>div:first-child{align-self:center}.material-price-item>div:first-child span,.material-price-template{display:block;color:var(--muted);font-size:12px;margin-top:4px}.material-price-item .field{margin:0}.material-price-actions{display:flex;gap:8px;align-items:center}.price-missing{color:#b25232}.price-ready{color:#26715c}
.history-detail-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-bottom:16px}.history-detail-grid section{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px 14px;padding:14px;background:var(--soft);border-radius:12px}.history-detail-grid section:nth-child(3){grid-column:span 2;grid-template-columns:repeat(3,minmax(0,1fr))}.history-detail-grid h3{grid-column:1/-1;margin:0 0 3px;color:var(--teal);font-size:14px}.history-detail-grid section div{min-width:0}.history-detail-grid span{display:block;color:var(--muted);font-size:11px;margin-bottom:3px}.history-detail-grid b{display:block;font-size:12px;font-weight:600;line-height:1.5;overflow-wrap:anywhere}
@media(max-width:900px){.account-box b{display:none}.user-item{grid-template-columns:1fr 1fr}.user-item>div:first-child{grid-column:span 2}.preview-toolbar{align-items:stretch}.preview-formats,.preview-pages{width:100%}.preview-formats button,.preview-pages button{flex:1}.quote-document-frame,.attachment-frame{height:62vh}.material-price-tools{grid-template-columns:1fr}.material-price-item{grid-template-columns:1fr 1fr}.material-price-item>div:first-child{grid-column:span 2}.material-price-actions{justify-content:flex-end}}
@media(max-width:560px){.material-price-item{grid-template-columns:1fr}.material-price-item>div:first-child{grid-column:auto}.material-price-actions{justify-content:stretch}.material-price-actions button{flex:1}}
@media(max-width:680px){.history-detail-grid{grid-template-columns:1fr}.history-detail-grid section,.history-detail-grid section:nth-child(3){grid-column:auto;grid-template-columns:1fr 1fr}}
.template-update-card{max-width:none}.template-current{padding:14px;border:1px solid var(--line);border-radius:12px;background:var(--soft);margin-bottom:16px}.template-current-head{display:flex;align-items:center;justify-content:space-between;gap:14px}.template-current-head span,.template-current-head b{display:block}.template-current-head span{font-size:11px;color:var(--muted);margin-bottom:4px}.template-current-head strong{font-family:Consolas,monospace;color:var(--teal);font-size:13px}.template-meta{display:flex;gap:8px 20px;flex-wrap:wrap;margin-top:9px;color:var(--muted);font-size:11px}.template-upload-row{display:grid;grid-template-columns:minmax(280px,1fr) auto;gap:14px;align-items:end}.template-upload-row button{margin:0;height:43px}.template-impact-note{padding:10px 12px;border-radius:9px;background:#eef5f3;color:#47646a;font-size:12px;line-height:1.7}.template-validation-card{margin:18px 0;border:1px solid #a7cabf}.template-validation-head{display:flex;align-items:center;justify-content:space-between;gap:16px}.template-validation-head span{color:#26715c;font-size:12px;font-weight:700}.template-validation-head h2{margin:4px 0}.template-validation-head small{color:var(--muted);overflow-wrap:anywhere}.template-diff-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin:16px 0}.template-diff-grid>div{padding:13px;border-radius:10px;background:var(--soft)}.template-diff-grid span{display:block;color:var(--muted);font-size:11px}.template-diff-grid b{display:block;margin-top:4px;font-size:22px;color:var(--teal)}.template-check-list{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:12px}.template-check-list span{padding:6px 9px;border-radius:999px;font-size:11px}.template-check-success{background:#e5f3ed;color:#26715c}.template-check-error{background:#f8e9e6;color:#a33}.template-warning{margin:8px 0;padding:10px 12px;border-left:3px solid #d79b38;background:#fff8e8;color:#76521b;font-size:12px;line-height:1.6}.template-diff-list{margin-top:12px}.template-diff-list b{font-size:12px;color:var(--teal)}.template-diff-list p{margin:5px 0;color:var(--muted);font-size:12px;line-height:1.6;overflow-wrap:anywhere}.template-price-table{margin-top:13px}.template-price-table table{min-width:700px}.template-history-title{margin-top:26px}.template-history-item{display:grid;grid-template-columns:minmax(260px,1.5fr) minmax(160px,.7fr) auto;gap:14px;align-items:center;padding:14px;border:1px solid var(--line);border-radius:12px}.template-history-item span,.template-history-item small{display:block;color:var(--muted);font-size:11px;margin-top:4px;overflow-wrap:anywhere}.template-history-summary{font-size:12px;color:var(--muted)}.template-history-current{border-color:#91bdb0;background:#f4faf8}.template-history-current>strong{color:#26715c}.template-confirm>p{line-height:1.7}.template-confirm-check{display:flex;align-items:flex-start;gap:9px;padding:13px;background:var(--soft);border-radius:10px;margin-top:14px}.template-confirm-check input{width:auto;margin-top:3px}.template-confirm-check span{font-size:13px;line-height:1.6}.template-confirm .modal-action{width:100%}
@media(max-width:680px){#feedback .history-item,#feedbackAdmin .history-item{grid-template-columns:minmax(0,1fr)}#feedback .history-item>*,#feedbackAdmin .history-item>*{min-width:0;max-width:100%}#feedback .history-actions,#feedbackAdmin .history-actions{grid-column:auto;width:100%;flex-wrap:wrap}#feedbackAdmin .history-actions button{flex:1 1 88px}}
@media(max-width:680px){#templateUpdates .page-title{align-items:stretch;flex-direction:column;gap:12px}#templateUpdates .page-title>button{width:100%}.template-upload-row{grid-template-columns:1fr}.template-upload-row button{width:100%}.template-validation-head{align-items:stretch;flex-direction:column}.template-validation-head button{width:100%}.template-diff-grid{grid-template-columns:1fr 1fr}.template-history-item{grid-template-columns:1fr}.template-history-item button{width:100%}.template-current-head{align-items:flex-start;flex-direction:column}.template-current-head strong{overflow-wrap:anywhere}.template-meta{display:grid;gap:5px}.template-diff-list p{overflow-wrap:anywhere}}
.history-filters{display:grid;grid-template-columns:minmax(240px,2fr) repeat(2,minmax(150px,1fr)) auto;align-items:end;gap:12px;margin-bottom:14px;padding:16px;background:var(--card);border:1px solid var(--line);border-radius:16px;box-shadow:0 10px 35px #18333a0b}.history-filter-actions{display:flex;gap:8px}.history-filter-actions button{margin:0;white-space:nowrap}.history-filter-summary{grid-column:1/-1;min-height:18px;margin:0;color:var(--muted);font-size:12px}
@media(max-width:900px){.history-filters{grid-template-columns:repeat(2,minmax(0,1fr))}.history-filters>.field:first-child{grid-column:1/-1}.history-filter-actions{justify-content:flex-end}}
@media(max-width:560px){.history-filters{grid-template-columns:1fr}.history-filters>.field:first-child{grid-column:auto}.history-filter-actions{justify-content:stretch}.history-filter-actions button{flex:1}}
.actual-cost-field input{border-color:#a9c9c1;background:#f3faf8;font-variant-numeric:tabular-nums}.actual-cost-field input:focus{border-color:var(--teal);background:#fff}.actual-cost-field span::after{content:"可修改";display:inline-block;margin-left:6px;padding:2px 6px;border-radius:999px;background:#e3f1ed;color:#397069;font-size:10px}
#feedback>.settings-card,#users>.settings-card{max-width:none;margin-bottom:18px}.feedback-form-grid{grid-template-columns:minmax(220px,.42fr) minmax(0,1.58fr);align-items:start}.feedback-form-grid .wide{grid-column:auto}#submitFeedback{min-width:160px;margin-top:16px}#feedback .history-item{grid-template-columns:minmax(190px,.5fr) minmax(280px,1.5fr) auto;align-items:start}#feedbackAdmin .history-item{grid-template-columns:minmax(180px,.5fr) minmax(280px,1.35fr) minmax(130px,.4fr) auto;align-items:start}#feedback .history-item>*,#feedbackAdmin .history-item>*{min-width:0}.account-create-grid{grid-template-columns:repeat(5,minmax(0,1fr));align-items:end}.account-create-grid .form-button button{width:100%;height:42px;margin:0}#usersList .user-item{background:#fcfcfa}#usersList .history-actions{justify-content:flex-end}
@media(max-width:1100px){.account-create-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.account-create-grid .form-button{grid-column:2}.feedback-form-grid{grid-template-columns:minmax(190px,.55fr) minmax(0,1.45fr)}#feedbackAdmin .history-item{grid-template-columns:minmax(170px,.55fr) minmax(240px,1.45fr)}#feedbackAdmin .history-item select{width:100%}#feedbackAdmin .history-actions{justify-content:flex-end}}
@media(max-width:680px){.feedback-form-grid,.account-create-grid{grid-template-columns:1fr}.account-create-grid .form-button{grid-column:auto}.feedback-form-grid .wide{grid-column:auto}#submitFeedback{width:100%}#feedback .history-item,#feedbackAdmin .history-item{grid-template-columns:minmax(0,1fr)}#users .page-title,#feedbackAdmin .page-title{align-items:stretch;flex-direction:column;gap:12px}#users .page-title>button,#feedbackAdmin .page-title>button{width:100%}}
.agent-launcher{position:fixed;right:max(22px,env(safe-area-inset-right));bottom:max(22px,env(safe-area-inset-bottom));z-index:80;display:flex;align-items:center;gap:8px;padding:12px 17px;border-color:#226872;background:#226872;color:#fff;border-radius:999px;box-shadow:0 15px 36px #163f4650;font-weight:700}.agent-launcher[hidden]{display:none}.agent-launcher:hover{background:#194f57}.agent-launcher span{display:grid;place-items:center;width:23px;height:23px;border-radius:50%;background:#ffffff24}.agent-panel{position:fixed;z-index:90;inset:0 0 0 auto;width:min(440px,100vw);height:100dvh;box-sizing:border-box;display:flex;flex-direction:column;background:#f8f8f4;border-left:1px solid var(--line);box-shadow:-20px 0 55px #102d3330}.agent-panel[hidden]{display:none}.agent-panel-head{position:static;display:flex;align-items:center;justify-content:space-between;flex:none;padding:19px 20px 15px;background:#173f46;color:#fff}.agent-panel-head small{display:block;margin-bottom:3px;color:#bcd7d1;font-size:11px;letter-spacing:.08em}.agent-panel-head h2{margin:0;color:#fff;font-size:20px}.agent-panel-head button{padding:3px 10px;border-color:#ffffff3d;background:#ffffff10;color:#fff;font-size:23px}.agent-safety-note{display:grid;gap:5px;flex:none;margin:14px 16px 0;padding:12px;border:1px solid #bcd7d1;border-radius:11px;background:#eef6f3}.agent-safety-note b{color:#226872;font-size:12px}.agent-safety-note b[data-kind="unavailable"]{color:#a35435}.agent-safety-note span{color:#526a68;font-size:11px;line-height:1.55}.agent-messages{display:flex;flex:1;flex-direction:column;gap:10px;min-height:120px;overflow-y:auto;padding:16px}.agent-message{align-self:flex-start;width:min(86%,340px);box-sizing:border-box;padding:10px 12px;border:1px solid var(--line);border-radius:4px 13px 13px;background:#fff}.agent-message-user{align-self:flex-end;border-color:#9fc7bd;background:#e5f2ee;border-radius:13px 4px 13px 13px}.agent-message b{display:block;margin-bottom:4px;color:var(--teal);font-size:11px}.agent-message p{margin:0;white-space:pre-wrap;overflow-wrap:anywhere;color:var(--ink);font-size:13px;line-height:1.62}.agent-proposal{flex:none;max-height:32vh;overflow-y:auto;margin:0 16px 12px;padding:12px;border:1px solid #9fc7bd;border-radius:12px;background:#fff}.agent-proposal[hidden]{display:none}.agent-proposal section+section{margin-top:10px}.agent-proposal h4{margin:0 0 5px;color:var(--teal);font-size:12px}.agent-proposal ul{margin:0;padding-left:18px}.agent-proposal li{margin:3px 0;overflow-wrap:anywhere;font-size:12px;line-height:1.55}.agent-stale-warning{margin:0 0 10px;padding:9px;border-radius:8px;background:#fff0e8;color:#a35435;font-size:12px;line-height:1.55}.agent-composer{display:grid;gap:8px;flex:none;padding:14px 16px;border-top:1px solid var(--line);background:#fff}.agent-composer>label{color:#526a68;font-size:11px;font-weight:700}.agent-composer textarea{min-height:82px;max-height:190px}.agent-composer-actions{display:flex;justify-content:flex-end;gap:8px}.agent-composer-actions button{margin:0}.agent-apply-bar{display:grid;gap:7px;flex:none;padding:0 16px max(14px,env(safe-area-inset-bottom));background:#fff}.agent-apply-bar button{width:100%;margin:0}.agent-apply-bar p{margin:0;text-align:center;color:var(--muted);font-size:10px;line-height:1.45}
@media(max-width:680px){.agent-launcher{right:max(12px,env(safe-area-inset-right));bottom:max(12px,env(safe-area-inset-bottom));padding:11px 14px}.agent-panel{width:100vw;border-left:0}.agent-panel-head{padding-top:max(16px,env(safe-area-inset-top))}.agent-messages{padding:12px}.agent-proposal{margin:0 12px 10px;max-height:29vh}.agent-composer{padding:12px}.agent-apply-bar{padding-inline:12px}}
@media(prefers-reduced-motion:reduce){.agent-launcher,.agent-panel{scroll-behavior:auto}}

.dimension-basis{border:0;padding:0;margin:0;display:flex;align-items:center;gap:10px;flex-wrap:wrap;min-width:0}.dimension-basis legend{font-size:12px;color:#60736e;margin-bottom:10px}.dimension-basis label{display:flex;align-items:center;gap:4px;font-size:13px;cursor:pointer}.dimension-basis input{width:auto;accent-color:#236c62}.dimension-hint{font-size:12px;color:#61766e;line-height:1.7}.attachment-picker{position:relative;display:flex;align-items:center;gap:12px;border:1px dashed #9bbeb4;border-radius:14px;background:#f2f8f5;padding:14px 18px;cursor:pointer;transition:background .2s}.attachment-picker:hover{background:#e7f2ec}.attachment-picker:focus-within{outline:2px solid #216b60;outline-offset:3px}.attachment-icon{display:grid;place-items:center;width:36px;height:36px;background:#deeee6;color:#276759;border-radius:50%;font-size:24px}.attachment-picker b{display:block;color:#305e53;font-size:13px}.attachment-picker small{display:block;color:#7a8a82;margin-top:4px}.attachment-picker input{position:absolute;inset:0;opacity:0;width:100%;height:100%;cursor:pointer}.agent-image-tools{display:flex;align-items:center;gap:10px;font-size:11px;color:#74867e;margin-top:10px}.agent-image-picker{position:relative;border:1px solid #bbd1c8;border-radius:20px;padding:8px 12px;color:#286552;cursor:pointer}.agent-image-picker input{position:absolute;inset:0;opacity:0;width:100%;cursor:pointer}.agent-image-list{display:flex;gap:8px;flex-wrap:wrap;margin-top:10px}.agent-image-item{position:relative}.agent-image-item img{width:70px;height:60px;object-fit:cover;border-radius:8px;border:1px solid #d0ddd6}.agent-image-item button{position:absolute;right:-5px;top:-5px;border-radius:50%;width:22px;height:22px;padding:0;background:#fff}.agent-new-quote{display:flex!important;align-items:center;gap:8px;font-size:12px!important;margin-top:12px}.agent-new-quote input{width:auto}.agent-image-note{font-size:11px;color:#7c877f;line-height:1.6}.dimension-row-note{font-size:11px;color:#607970;grid-column:1/-1;margin:0}.dimension-row-note button{font-size:11px;padding:3px 8px;margin-left:8px}

.agent-panel{overflow-y:auto}.agent-panel-head{position:sticky;top:0;z-index:2}.agent-messages{flex:none;height:160px;min-height:100px}.agent-apply-bar{position:sticky;bottom:0;z-index:2;padding-top:10px;box-shadow:0 -5px 15px #183b3210}.dimension-settings{font-size:12px;color:#64776f;margin-top:14px}.dimension-settings summary{cursor:pointer}.dimension-settings p{line-height:1.8}

.material-text{width:100%;min-height:40px;border:1px solid #cbd5e1;border-radius:8px;padding:8px 12px;margin-bottom:6px}.material-suggestions{position:absolute;z-index:80;top:42px;left:0;right:0;max-height:260px;overflow:auto;background:white;border:1px solid #cbd5e1;border-radius:10px;box-shadow:0 8px 24px #0002}.material-suggestions button{display:block;width:100%;text-align:left;padding:10px;border:0;background:white}.material-suggestions button:hover{background:#eaf3ff}.material-suggestions small{display:block;padding:12px}.dimension-row-note{grid-column:1/-1}

/* Single editable material selector and pallet assemblies */
.material-picker .material-text{width:100%;height:44px;padding:10px 32px 10px 12px;background:#fff;cursor:text;text-align:left}
.material-picker:after{content:'⌄';position:absolute;right:12px;top:12px;pointer-events:none;color:#65746f}
.material-suggestions{max-height:280px;overflow-y:auto;z-index:40}.material-suggestions button.active,.material-suggestions button:hover{background:#e7f2ed}
.pallet-assembly{border:2px solid #abc9bc;border-radius:16px;padding:20px;margin-bottom:20px;background:#f5faf7}
.pallet-hint{font-size:13px;color:#56685f;margin:10px 0 18px}.pallet-parts{margin-top:20px;padding-left:16px;border-left:3px solid #c6dccf}.pallet-parts .bom-row{background:#fff}.add-pallet-part{margin-top:12px;color:#27634b;border:1px dashed #81ae95;background:#fff;width:100%;padding:12px}
.file-upload-control{display:flex;align-items:center;gap:12px;position:relative;min-height:46px;padding:8px 12px;border:1px dashed #9eb5aa;border-radius:12px;background:#f5faf7;cursor:pointer}.file-upload-action{background:#e0eee6;color:#245f46;padding:8px 12px;border-radius:8px;font-weight:600}.file-upload-control input[type=file]{position:absolute;inset:0;opacity:0;width:100%;cursor:pointer}.file-upload-control:focus-within{outline:2px solid #528b70}#templateFileName{overflow-wrap:anywhere;color:#68776f}
@media(max-width:600px){.pallet-assembly{padding:12px}.pallet-parts{padding-left:8px}.file-upload-control{flex-wrap:wrap}}

.modal{backdrop-filter:blur(7px);-webkit-backdrop-filter:blur(7px)}
.dialog-footer{display:flex;justify-content:flex-end;gap:12px;position:sticky;bottom:-22px;padding:16px 0 0;margin-top:18px;background:#fff;z-index:3}.dialog-footer button{min-width:88px;margin:0!important}.dialog-footer .modal-action{width:auto!important}
.app-dialog{z-index:300}.app-dialog .modal-card{width:min(480px,94vw)}.dialog-message{white-space:pre-wrap;line-height:1.8;overflow-wrap:anywhere}.app-dialog input{width:100%}
@media(max-width:680px){.dialog-footer{bottom:-14px;padding-bottom:4px}}

.desktop-download{display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:10px 14px;border-radius:9px;border:1px solid #d1ddd5;background:#f3f7f2;color:#215c50;text-decoration:none;font-size:12px;font-weight:600;white-space:nowrap}.desktop-download:hover{background:#e4eee4}.desktop-download:focus-visible{outline:3px solid #b99a5c;outline-offset:2px}.login-card>.desktop-download{margin-top:16px;width:100%}body.mobile-app .desktop-download{display:none}body.desktop-client .desktop-download{display:none}
