/* Quote module: all new styles are namespaced to preserve existing finance screens. */
.quote-flow{display:flex;align-items:center;gap:15px;background:#fff;border:1px solid var(--line);border-radius:12px;padding:18px 20px;margin:0 0 22px;font-size:12px;color:#586a7c;flex-wrap:wrap}.quote-flow span{display:flex;align-items:center;gap:8px}.quote-flow b{width:27px;height:27px;display:grid;place-items:center;border-radius:8px;background:#edf7f3;color:var(--green);font-size:10px}.quote-flow>.icon{width:14px;color:#afbdc8}.quote-flow small{margin-left:auto;color:#8793a3;font-size:10px}.quote-table{width:100%;border-collapse:collapse}.quote-table td{vertical-align:middle}.quote-table td:first-child{max-width:310px;min-width:220px}.quote-table td:nth-child(2){max-width:220px;overflow-wrap:anywhere}.quote-number{color:#078a73;font-weight:700;background:none;border:0;padding:0;font-size:12px;cursor:pointer;text-align:left}.quote-number:hover{text-decoration:underline}.quote-cell-sub{display:block;font-size:10px;color:#8491a0;margin-top:5px;max-width:310px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.quote-project-link{display:inline-flex;align-items:center;gap:4px;color:#657f9f;background:none;font-size:10px;padding:6px 0 0}.quote-project-link .icon{width:11px;height:11px}.quote-pagination{padding:16px 20px;border-top:1px solid var(--line);display:flex;justify-content:space-between;align-items:center;font-size:11px;color:var(--muted)}.quote-pagination>div{display:flex;gap:8px}.quote-editor-top{display:grid;grid-template-columns:minmax(0,1.65fr) minmax(280px,.85fr);gap:20px;margin-bottom:20px}.quote-editor-top .field{margin-bottom:15px}.quote-editor-top .panel-body{padding-top:0}.quote-editor-top textarea{min-height:62px}.quote-micro-note{display:flex;align-items:flex-start;gap:7px;font-size:10px;line-height:1.7;color:#7a8e9c;margin-top:12px}.quote-micro-note .icon{width:14px;height:14px;margin-top:2px}.quote-lines-editor{margin:0 0 20px}.q-item{padding:18px 20px;border-top:1px solid var(--line);background:#fff}.q-item:nth-child(even){background:#fcfdfe}.q-item-head{display:flex;align-items:center;gap:10px;margin-bottom:13px}.q-item-number{width:27px;height:27px;border-radius:7px;background:#edf4f4;display:grid;place-items:center;color:#478e80;font-size:11px;flex-shrink:0}.q-item input{min-width:0;width:100%;padding:9px 10px;border:1px solid #e0e7ee;border-radius:7px;font-size:12px;background:#fff;color:var(--ink)}.q-item-head label>span,.q-line-field>span,.q-line-result>span{display:block;font-size:10px;color:#7d8b9b;margin-bottom:6px}.q-line-desc{flex:1;min-width:0}.q-line-code{width:155px}.q-item-tools{display:flex;align-items:center;margin-top:15px}.q-item-tools button{width:26px;height:27px}.q-item-tools .icon{width:15px;height:15px}.q-item-fields{display:grid;grid-template-columns:.7fr .7fr 1.3fr .7fr .7fr 1.3fr 1.5fr;gap:10px;margin-left:37px}.q-line-field{display:block;min-width:0}.q-line-field:nth-child(6) input{background:#fffdf5;border-color:#ede6d7}.q-line-result{min-width:0;display:flex;flex-direction:column;justify-content:center;text-align:right}.q-line-result strong{font-size:14px;color:#195b50;overflow-wrap:anywhere}.quote-lines-footer{display:flex;align-items:center;justify-content:space-between;gap:15px;padding:16px 20px;border-top:1px solid var(--line)}.quote-lines-footer small{color:#86919c;font-size:10px;line-height:1.6}.quote-editor-bottom{display:grid;grid-template-columns:minmax(0,1fr) 315px;align-items:start;gap:20px;margin-bottom:20px}.quote-editor-bottom .field{margin-bottom:8px}.quote-editor-bottom textarea{min-height:75px}.quote-sticky-summary{position:sticky;top:15px}.quote-sticky-summary .panel-body{padding-top:2px}.quote-total-row{display:flex;align-items:baseline;justify-content:space-between;gap:14px;font-size:11px;padding:8px 0;color:#728194}.quote-total-row strong{color:#263d4f;font-weight:600;white-space:nowrap}.quote-total-row.grand{margin-top:9px;border-top:1px solid #c3e0d7;border-bottom:1px solid #c3e0d7;background:#eff9f5;padding:16px 10px;align-items:center}.quote-total-row.grand span{font-size:9px;color:#187460;font-weight:700;letter-spacing:.5px}.quote-total-row.grand strong{font-size:20px;letter-spacing:-.5px;color:#166952}.quote-cost-summary{border-top:1px dashed #e1e7ed;padding-top:12px;margin-top:16px}.quote-cost-summary .quote-total-row{font-size:10px}.quote-cost-summary small,.quote-cost-summary p{font-size:10px;line-height:1.65;color:#92a0ae}.quote-cost-summary .negative strong{color:var(--red)}.quote-cost-summary .positive strong{color:var(--green)}.quote-input-warning{color:#b27524;font-size:11px;line-height:1.7;padding:10px 0}.quote-save-bar{position:sticky;bottom:0;background:#fff;box-shadow:0 -5px 18px #1a33440a;border:1px solid var(--line);border-radius:12px;padding:17px 20px;display:flex;align-items:center;justify-content:space-between;gap:15px;z-index:5}.quote-save-bar>span{display:flex;align-items:center;gap:8px;color:#83919e;font-size:11px}.quote-save-bar i{background:#dda74f;width:7px;height:7px;border-radius:50%}.quote-editor-error{margin:10px 0;font-size:12px}.quote-detail-band{display:flex;justify-content:space-between;gap:25px;align-items:center;background:linear-gradient(110deg,#142c3d,#1d514d);color:#fff;padding:23px 26px;border-radius:14px;margin-bottom:20px}.quote-detail-band>div:first-child{display:flex;align-items:center;gap:14px;flex-wrap:wrap}.quote-detail-band .tag{background:#ffffffde}.quote-detail-band strong{font-size:15px;font-weight:500}.quote-detail-band span:not(.tag){font-size:11px;color:#9ebcbf}.quote-amount{text-align:right}.quote-amount small{display:block;font-size:9px;letter-spacing:1px;color:#9bc3c0;margin-bottom:5px}.quote-amount b{font-size:28px;white-space:nowrap;font-weight:600;letter-spacing:-.8px}.quote-action-bar{display:flex;gap:8px;flex-wrap:wrap;margin:18px 0 22px}.quote-action-bar:empty{display:none}.quote-action-bar .btn{font-size:11px;min-height:35px}.quote-detail-grid{display:grid;grid-template-columns:minmax(0,1.7fr) minmax(300px,1fr);align-items:start;gap:20px;margin-bottom:20px}.quote-client-info{padding:0 21px 18px;border-bottom:1px solid var(--line)}.quote-client-info h3{font-size:14px;margin:0 0 8px}.quote-client-info p{font-size:11px;line-height:1.7;margin:0;color:var(--muted);overflow-wrap:anywhere}.quote-detail-table{width:100%;border-collapse:collapse}.quote-detail-table td:first-child{white-space:normal;max-width:220px;overflow-wrap:anywhere}.quote-detail-table .quote-cell-sub{max-width:180px}.quote-detail-table th{font-size:9px}.quote-detail-table td{font-size:11px}.quote-terms h3{font-size:12px;margin:3px 0 7px;color:#3f596e}.quote-terms p{white-space:pre-wrap;overflow-wrap:anywhere;line-height:1.7;font-size:12px;color:#7c8b98;margin:0 0 20px}.quote-internal{background:#fffcf3;border:1px solid #f3e7c5;border-radius:8px;padding:13px;margin-top:15px}.quote-internal h3{font-size:10px;color:#8e762c}.quote-internal p{margin:0}.quote-revisions{display:flex;gap:7px;flex-wrap:wrap;border-bottom:1px solid var(--line);padding-bottom:16px;margin-bottom:20px}.quote-revisions button{background:#f0f4f7;border:1px solid #e4eaee;border-radius:6px;padding:7px 9px;color:#7e8c98;font-size:10px}.quote-revisions .selected{background:#e9f6f1;border-color:#cbe8dd;color:#13775f}.quote-events>div{position:relative;padding:0 0 20px 17px;border-left:1px solid #e0e8ee;margin-left:3px}.quote-events>div>i{position:absolute;left:-4px;top:4px;width:7px;height:7px;border-radius:50%;background:#9ebbad}.quote-events strong{font-size:11px;color:#526b7d}.quote-events p{font-size:11px;line-height:1.7;color:#7b8d9b;margin:5px 0;overflow-wrap:anywhere}.quote-events small{font-size:9px;color:#9cabb6}.quote-project-panel{margin-top:20px}.sidebar{overflow-y:auto}.right{text-align:right!important}.quote-table th,.quote-detail-table th{white-space:nowrap}@media(max-width:1200px){.quote-flow small{width:100%;margin-left:0}.q-item-fields{grid-template-columns:repeat(4,minmax(0,1fr))}.q-line-result{text-align:left}.quote-detail-grid{grid-template-columns:1fr}.quote-editor-bottom{grid-template-columns:minmax(0,1fr) 300px}.quote-editor-top{grid-template-columns:minmax(0,1fr) 290px}.quote-amount b{font-size:25px}}@media(max-width:850px){.quote-editor-top,.quote-editor-bottom{grid-template-columns:1fr}.quote-sticky-summary{position:static}.quote-detail-band{align-items:flex-start;flex-direction:column}.quote-amount{text-align:left}.quote-save-bar{align-items:flex-start;flex-direction:column}.q-line-code{width:120px}.quote-detail-grid{grid-template-columns:1fr}.quote-lines-footer{align-items:flex-start;flex-direction:column}.quote-flow{gap:9px}.quote-flow>.icon{display:none}}@media(max-width:550px){.q-item{padding:15px 12px}.q-item-fields{margin-left:0;grid-template-columns:repeat(2,minmax(0,1fr))}.q-item-head{flex-wrap:wrap}.q-item-head .q-line-desc{flex-basis:70%}.q-line-code{flex:1;margin-left:37px}.q-item-tools{margin-top:16px}.q-line-result strong{font-size:14px}.quote-flow{font-size:11px}.quote-detail-band{padding:20px}.quote-total-row.grand strong{font-size:19px}.quote-save-bar .actions{width:100%}.quote-save-bar .actions .btn{flex:1}}

/* Non-interactive notifications must never intercept the sticky Save button. */
#toasts{pointer-events:none}

/* v0.4: editable bidirectional pricing; internal-use fields are never a customer template. */
.q-pricing-grid{align-items:start}.q-line-field small{font-size:10px;color:var(--muted);display:block;min-height:14px;margin-top:5px;line-height:1.4}
.q-price-source{min-width:200px;max-width:330px;flex:1;display:grid;gap:5px}.q-price-source span{font-size:11px;font-weight:600}.q-price-source small{font-size:10px;line-height:1.5;color:var(--muted)}
.q-pricing-grid input[name=markup_multiplier],.q-pricing-grid input[name=unit_price]{background:#f2fbf8;border-color:#9bcfc1}.q-pricing-grid input[name=unit_cost]{background:#fffaf0}
.q-pricing-grid .q-computed{min-height:63px}.q-pricing-grid input[name=unit_price]:focus,.q-pricing-grid input[name=markup_multiplier]:focus{outline:2px solid #0f9d8a33}
