:root{color:#1d3557;--primary:#7dc7f6;--primary-dark:#4fa7e4;--primary-soft:#eaf7ff;--border:#b7d9ef;--border-strong:#6f8fa5;--text:#1f3142;--muted:#5f7387;--white:#fff;--sidebar:#fff;--shadow:0 10px 30px #24527814;background:#f7fbff;font-family:Inter,Arial,sans-serif;font-weight:400;line-height:1.5}*{box-sizing:border-box}html,body,#root{min-height:100%;margin:0}body{color:var(--text);background:#f4f9fd}button,input,textarea,select{font:inherit}a{color:inherit}.app-shell{grid-template-columns:200px 1fr;min-height:100vh;display:grid}.app-content{flex-direction:column;min-width:0;display:flex}.main-content{padding:18px}.page-card{background:var(--white);border:1px solid var(--border);box-shadow:var(--shadow);border-radius:14px}.section-title{color:var(--text);margin:0 0 12px;font-size:15px;font-weight:700}.grid-2{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;display:grid}.grid-3{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;display:grid}.grid-4{grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;display:grid}.form-group{flex-direction:column;gap:6px;display:flex}.form-group label{color:var(--muted);font-size:11px;font-weight:600}.form-group input,.form-group textarea,.form-group select{border:1px solid var(--border);width:100%;color:var(--text);background:#fff;border-radius:9px;padding:9px 11px;font-size:12px}.form-group input:focus,.form-group textarea:focus,.form-group select:focus{border-color:var(--primary-dark);outline:none;box-shadow:0 0 0 2px #4fa7e426}.form-group textarea{resize:vertical;min-height:85px}.primary-btn,.secondary-btn,.danger-btn{cursor:pointer;border-radius:9px;padding:8px 14px;font-size:12px;font-weight:600;transition:background .15s,box-shadow .15s}.primary-btn{background:var(--primary);border:1px solid var(--primary-dark);color:#0d3553}.primary-btn:hover{background:var(--primary-dark);color:#fff}.secondary-btn{background:var(--primary-soft);border:1px solid var(--border);color:var(--text)}.secondary-btn:hover{border-color:var(--primary-dark);background:#d4ecfc}.danger-btn{color:#a14646;background:#fff4f4;border:1px solid #efc3c3}.danger-btn:hover{background:#ffe0e0}.danger-btn:disabled{opacity:.4;cursor:not-allowed}.inline-actions{flex-wrap:wrap;gap:9px;display:flex}@media (width<=1024px){.app-shell{grid-template-columns:1fr}.main-content{padding:12px}}@media (width<=768px){.grid-2,.grid-3,.grid-4{grid-template-columns:1fr}}.header{border-bottom:1px solid var(--border);z-index:10;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#fffffff7;justify-content:space-between;align-items:center;gap:9px;padding:8px 14px;display:flex;position:sticky;top:0}.header-brand{align-items:center;display:flex}.header-logo{width:auto;height:32px;display:block}.header-actions{flex-wrap:wrap;gap:6px;display:flex}.active-tab{box-shadow:inset 0 0 0 2px #4fa7e480}.header-user-badge{color:#1a5f8a;text-overflow:ellipsis;white-space:nowrap;background:#eaf5ff;border:1px solid #b7d9ef;border-radius:999px;align-items:center;max-width:160px;padding:5px 11px;font-size:11.5px;font-weight:600;display:inline-flex;overflow:hidden}.header-logout-btn{cursor:pointer;color:#a14646;background:#fff4f4;border:1px solid #efc3c3;border-radius:9px;padding:6px 12px;font-size:11.5px;font-weight:600;transition:background .15s}.header-logout-btn:hover{background:#ffe0e0}@media (width<=768px){.header{flex-direction:column;align-items:flex-start;padding:8px}}.sidebar{background:var(--sidebar);border-right:1px solid var(--border);flex-direction:column;gap:14px;height:100vh;padding:12px 10px;display:flex;position:sticky;top:0;overflow-y:auto}.sidebar-brand{align-items:center;gap:8px;display:flex}.sidebar-logo-img{width:auto;height:29px}.sidebar-brand h2{margin:0;font-size:10px;font-weight:700}.sidebar-brand p{color:var(--muted);margin:2px 0 0;font-size:9px}.sidebar-nav{flex-direction:column;gap:5px;display:flex}.sidebar-link{text-align:left;color:var(--text);cursor:pointer;background:0 0;border:1px solid #0000;border-radius:7px;align-items:center;gap:6px;padding:6px 8px;font-size:11px;transition:background .15s,border-color .15s;display:flex}.sidebar-link:hover{background:var(--primary-soft);border-color:var(--border)}.sidebar-link.active{background:var(--primary-soft);border-color:var(--primary-dark);color:#0e4a6e;font-weight:700}.sidebar-icon{font-size:11px}.sidebar-info{padding:10px}.sidebar-info h3{margin:0 0 6px;font-size:11px}.sidebar-info ol{color:var(--muted);margin:0 0 9px;padding-left:11px;font-size:10px}.sidebar-info li{margin-bottom:3px}.sidebar-reset-btn{text-align:center;width:100%;padding:5px 8px;font-size:10px}@media (width<=1024px){.sidebar{border-right:none;border-bottom:1px solid var(--border);flex-flow:wrap;height:auto;padding:8px;position:static}.sidebar-nav{flex-direction:row}.sidebar-info{display:none}}.sidebar-tax-card{padding:10px}.sidebar-tax-label{color:#1a5f8a;text-transform:uppercase;letter-spacing:.04em;align-items:center;gap:5px;margin-bottom:8px;font-size:10px;font-weight:700;display:flex}.tax-toggle-row{justify-content:space-between;align-items:center;display:flex}.tax-toggle-text{color:var(--text);font-size:11px}.tax-toggle-switch{cursor:pointer;flex-shrink:0;width:34px;height:19px;position:relative}.tax-toggle-switch input{opacity:0;width:0;height:0;position:absolute}.tax-toggle-track{background:#c8d8e4;border-radius:99px;transition:background .2s;position:absolute;inset:0}.tax-toggle-switch input:checked+.tax-toggle-track{background:#1a5f8a}.tax-toggle-thumb{pointer-events:none;background:#fff;border-radius:50%;width:13px;height:13px;transition:transform .2s;position:absolute;top:3px;left:3px}.tax-toggle-switch input:checked~.tax-toggle-thumb{transform:translate(15px)}.tax-rate-row{align-items:center;gap:6px;margin-top:8px;animation:.15s taxFadeIn;display:flex}@keyframes taxFadeIn{0%{opacity:0;transform:translateY(-3px)}to{opacity:1;transform:none}}.tax-rate-label{color:var(--muted);flex-shrink:0;font-size:10px}.tax-rate-input{border:1px solid var(--border);min-width:0;color:var(--text);text-align:right;background:#fff;border-radius:5px;flex:1;padding:4px 6px;font-size:11px}.tax-rate-input:focus{border-color:#1a5f8a;outline:none}.tax-pct{color:var(--muted);flex-shrink:0;font-size:11px}.sidebar-display-card{padding:10px}.sidebar-mode-pills{flex-direction:column;gap:5px;margin-top:2px;display:flex}.mode-pill{color:#6a8499;cursor:pointer;text-align:left;background:#f4f8fb;border:1.5px solid #dce8f0;border-radius:8px;align-items:center;gap:7px;width:100%;padding:7px 10px;font-size:11px;font-weight:500;transition:background .15s,border-color .15s,color .15s,box-shadow .15s;display:flex}.mode-pill svg{opacity:.6;flex-shrink:0;transition:opacity .15s}.mode-pill:hover{color:#2c5070;background:#e4eef6;border-color:#b0cfe0}.mode-pill:hover svg{opacity:.9}.mode-pill.active{color:#fff;background:linear-gradient(135deg,#1a5f8a 0%,#1e72a8 100%);border-color:#1a5f8a;font-weight:700;box-shadow:0 2px 8px #1a5f8a4d}.mode-pill.active svg{stroke:#fff;opacity:1}.quote-form-layout{flex-direction:column;gap:14px;display:flex}.form-top-actions{flex-wrap:wrap;align-items:center;gap:10px;padding:11px 16px;display:flex}.form-top-label{color:var(--muted);margin-right:4px;font-size:12px;font-weight:600}.quote-form-section{padding:16px}.form-heading-row{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-bottom:12px;display:flex}.form-heading-row .section-title{margin-bottom:0}.form-helper-text{color:var(--muted);margin:-4px 0 10px;font-size:11px}.rte-toolbar{border:1px solid var(--border);background:#f0f6fb;border-bottom:none;border-radius:9px 9px 0 0;flex-wrap:wrap;gap:4px;padding:6px 8px;display:flex}.rte-toolbar button{border:1px solid var(--border);cursor:pointer;color:var(--text);background:#fff;border-radius:6px;padding:4px 9px;font-size:12px;line-height:1.4;transition:background .12s}.rte-toolbar button:hover{background:var(--primary-soft);border-color:var(--primary-dark)}.rte-divider{background:var(--border);align-self:stretch;width:1px;margin:2px 4px;display:inline-block}.rte-editor{border:1px solid var(--border);min-height:100px;color:var(--text);background:#fff;border-radius:0 0 9px 9px;outline:none;padding:10px 12px;font-size:12px;line-height:1.7}.rte-editor:focus{border-color:var(--primary-dark);box-shadow:0 0 0 2px #4fa7e426}.rte-editor ul{margin:4px 0;padding-left:20px}.email-list{flex-direction:column;gap:10px;display:flex}.email-row{align-items:flex-end;gap:9px;display:flex}.email-grow{flex:1}.email-remove-btn{flex-shrink:0;align-self:flex-end}.toggle-label{color:var(--muted);cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;gap:7px;font-size:12px;display:flex}.toggle-label input[type=checkbox]{width:15px;height:15px;accent-color:var(--primary-dark);cursor:pointer}.readonly-field{cursor:default;color:var(--muted)!important;background:#f0f6fb!important}.item-editor{border:1px solid var(--border);background:#f7fbff;border-radius:11px;flex-direction:column;gap:12px;margin-top:14px;padding:14px;display:flex}.item-editor-header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;display:flex}.item-editor-title{margin:0;font-size:13px;font-weight:700}.item-totals-row{flex-wrap:wrap;gap:9px;display:flex}.item-summary-chip{background:var(--primary-soft);color:var(--text);border:1px solid var(--border);border-radius:999px;align-items:center;gap:7px;padding:5px 11px;font-size:11px;display:inline-flex}.item-summary-chip span{color:var(--muted)}.item-summary-total{border-color:var(--primary-dark);background:#d8f0ff;font-weight:700}.item-footer-actions{border-top:1px dashed var(--border);align-items:center;margin-top:4px;padding-top:10px;display:flex}.form-totals-summary{border:1px solid var(--border);background:#fff;border-radius:11px;flex-direction:column;width:min(100%,320px);margin-top:16px;margin-left:auto;padding:12px 15px;display:flex}.totals-summary-row{color:var(--text);border-bottom:1px solid #e5eef5;justify-content:space-between;gap:12px;padding:8px 0;font-size:12px;display:flex}.totals-summary-row:last-child{border-bottom:none}.totals-summary-grand{color:#0e4a6e;font-size:14px;font-weight:700}.large-textarea{min-height:320px;font-size:11px;line-height:1.7}.form-subsection-divider{border:none;border-top:1px solid var(--border);margin:8px 0 14px}.form-subsection-title{color:var(--muted);margin:0 0 12px;font-size:12px;font-weight:600}@media (width<=768px){.form-heading-row,.email-row,.item-editor-header{flex-direction:column;align-items:stretch}.item-totals-row{flex-direction:column}.form-totals-summary{width:100%}}.items-bottom-actions{flex-wrap:wrap;align-items:center;gap:10px;margin-top:14px;display:flex}.item-duplicate-btn{padding:6px 12px;font-size:12px;color:#2a6c97!important;background:#edf7ff!important;border-color:#2a6c97!important}.item-duplicate-btn:hover{color:#fff!important;background:#2a6c97!important}.item-duplicate-btn:disabled{opacity:.4;cursor:not-allowed}.import-excel-btn{cursor:pointer;color:#1a7f4e;background:#edf9f2;border:1.5px solid #1a7f4e;border-radius:6px;align-items:center;gap:6px;padding:7px 14px;font-size:13px;font-weight:600;transition:background .15s,color .15s;display:inline-flex}.import-excel-btn:hover{color:#fff;background:#1a7f4e}.import-status-banner{border-radius:7px;margin-bottom:6px;padding:10px 16px;font-size:13px;font-weight:500;animation:.3s fadeInDown}.import-status-success{color:#1a7f4e;background:#edf9f2;border:1px solid #a8e6c3}.import-status-warn{color:#92670a;background:#fffbea;border:1px solid #f6d860}.import-status-error{color:#c0392b;background:#fff0f0;border:1px solid #f5a0a0}@keyframes fadeInDown{0%{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:translateY(0)}}.totals-mode-toggle{background:#eef3f7;border-radius:8px;gap:4px;margin-bottom:10px;padding:3px;display:flex}.totals-mode-btn{cursor:pointer;color:#6a8499;background:0 0;border:none;border-radius:6px;flex:1;padding:5px 10px;font-size:11.5px;font-weight:600;transition:background .15s,color .15s}.quote-preview-page{flex-direction:column;gap:14px;display:flex}.preview-toolbar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:14px;padding:13px 16px;display:flex}.preview-note{color:var(--muted);margin:0;font-size:11px}.preview-pages{flex-direction:column;gap:18px;display:flex}.quote-document{width:min(100%,920px);box-shadow:none;color:#2c3e50;background:0 0;border:none;margin:0 auto;padding:0;font-size:12px}.quote-page{box-sizing:border-box;background:#fff;border:1px solid #dbe7ef;width:210mm;min-height:297mm;margin:0 auto;padding:18mm 14mm 16mm;position:relative;box-shadow:0 10px 30px #0c263a14}.preview-page-gap{margin-top:4px}.preview-page-break-banner{color:#2a6c97;background:#edf7ff;border:1px dashed #9fc3dd;border-radius:2px;margin:0 0 10px;padding:4px 8px;font-size:10px;font-weight:700;display:inline-block}.quote-logo-above{margin-bottom:14px}.quote-logo-img{width:auto;height:54px;display:block}.quote-logo-small-gap{margin-bottom:8px}.quote-logo-small{height:42px}.quote-top-panel{color:#fff;background:#425b76;border-radius:2px;padding:18px 20px 20px}.quote-product-title{color:#fff;margin:0 0 16px;font-size:20px;font-weight:700;line-height:1.3}.quote-meta-grid{grid-template-columns:1fr 1fr;gap:20px;display:grid}.quote-address-block p,.quote-reference-block p{color:#ffffffed;margin:0 0 4px;font-size:12px}.qab-company{font-weight:700;font-size:13px!important}.qab-recipient{font-weight:700;margin-top:10px!important}.quote-reference-block{text-align:right}.quote-comment-box{background:#fff;border:1px solid #c8d8e4;border-radius:2px;min-height:64px;margin-top:18px;padding:14px 16px}.quote-comment-heading{color:#1c3d55;margin:0 0 8px;font-size:12px}.quote-comment-text,.quote-comment-text p,.quote-comment-text li{color:#3a5569;margin:0 0 6px;font-size:12px;line-height:1.6}.quote-comment-text ul{margin:6px 0 6px 18px;padding:0}.quote-products-section{margin-top:22px}.quote-section-heading{color:#1c3d55;margin:0 0 10px;font-size:13px;font-weight:700}.product-table-head{color:#1c3d55;border-bottom:2px solid #2c3e50;grid-template-columns:2fr .4fr .9fr .5fr 1fr 1fr 1.1fr;gap:8px;padding:7px 0 9px;font-size:10px;font-weight:700;display:grid}.col-right{text-align:right}.product-row{border-bottom:1px solid #c8d8e4;grid-template-columns:2fr .4fr .9fr .5fr 1fr 1fr 1.1fr;align-items:start;gap:8px;padding:14px 0;font-size:11px;display:grid}.product-row.page-break-before{border-top:2px dashed #9fc3dd;margin-top:4px;padding-top:16px}.product-description-cell{flex-direction:column;gap:4px;display:flex}.product-name{color:#1c3d55;margin:0;font-size:12px;font-weight:500}.product-desc-text{color:var(--muted);margin:0;font-size:11px}.product-detail-grid{grid-template-columns:1fr 1fr;gap:12px;margin-top:4px;display:grid}.product-detail-grid p{color:var(--muted);margin:0 0 3px;font-size:11px}.product-qty-cell,.product-unit-cell,.product-total-cell{font-size:12px}.product-total-cell{color:#1c3d55;font-weight:500}.unit-label{color:var(--muted);font-size:10px}.quote-totals-block{border:1px solid #c8d8e4;border-radius:2px;width:min(100%,340px);margin-top:14px;margin-left:auto;overflow:hidden}.qt-row{color:var(--text);border-bottom:1px solid #c8d8e4;justify-content:space-between;gap:12px;padding:10px 12px;font-size:12px;display:flex}.qt-row:last-child{border-bottom:none}.qt-divider{display:none}.qt-emphasis{color:#1c3d55;font-size:14px;font-weight:700}.quote-terms-section{margin-top:0}.quote-terms-first-page{padding-top:0}.quote-terms-heading{color:#1c3d55;margin:0 0 8px;font-size:12px;font-weight:700}.terms-body{color:#4a6070;font-size:11px;line-height:1.7}.terms-body p{margin:0 0 4px}.quote-signature-section{margin-top:28px}.pdf-section-block{break-inside:avoid}.quote-sig-heading{color:#1c3d55;margin:0 0 18px;font-size:13px;font-weight:700}.signature-grid{grid-template-columns:1fr 1fr;gap:28px 46px;display:grid}.sig-name-field{grid-column:1/2}.sig-line{border-top:1.5px solid #5a86a0;margin-bottom:7px}.sig-label{color:var(--muted);margin:0;font-size:11px}.sig-value{color:var(--text);margin:3px 0 0;font-size:12px;font-weight:600}.quote-contact-section{border-top:none;margin-top:0;padding-top:0}.quote-contact-page{margin-top:0}.quote-contact-heading{color:#1c3d55;margin:0 0 12px;font-size:12px;font-weight:700}.contact-avatar-row{align-items:flex-start;gap:14px;display:flex}.contact-avatar{border-radius:50%;flex-shrink:0;width:36px;height:36px;overflow:hidden}.contact-details p{color:#3a5569;margin:0 0 3px;font-size:12px}.contact-name{font-weight:700;color:#1c3d55!important;font-size:13px!important}.contact-details a{color:#1a79b6;text-decoration:none}.contact-details a:hover{text-decoration:underline}@media (width<=980px){.quote-page{width:100%;min-height:auto;padding:24px 18px}}@media (width<=760px){.quote-meta-grid,.product-detail-grid,.signature-grid{grid-template-columns:1fr}.quote-reference-block{text-align:left}.product-table-head,.product-row{grid-template-columns:1fr}.col-right{text-align:left}.quote-totals-block{width:100%}}@media print{body{background:#fff!important}.no-print,.header,.sidebar{display:none!important}.quote-page{page-break-after:always;width:100%!important;min-height:auto!important;box-shadow:none!important;border:none!important;margin:0!important;padding:0!important}.quote-page:last-child{page-break-after:auto}}.totals-mode-toggle{background:#eef3f7;border-radius:8px;gap:4px;padding:3px;display:flex}.totals-mode-btn{cursor:pointer;color:#6a8499;background:0 0;border:none;border-radius:6px;padding:5px 14px;font-size:12px;font-weight:600;transition:background .15s,color .15s}.totals-mode-btn:hover{color:#2c5070;background:#dde8f0}.totals-mode-btn.active{color:#0e4a6e;background:#fff;box-shadow:0 1px 4px #0000001f}.auth-page{background:linear-gradient(135deg,#eaf5ff 0%,#f4f9fd 60%,#e8f0f7 100%);justify-content:center;align-items:center;min-height:100vh;padding:24px 16px;font-family:Inter,Segoe UI,Arial,sans-serif;display:flex}.auth-page:before{content:"";pointer-events:none;background-image:linear-gradient(#1a5f8a0a 1px,#0000 1px),linear-gradient(90deg,#1a5f8a0a 1px,#0000 1px);background-size:32px 32px;position:fixed;inset:0}.auth-card{background:#fff;border:1px solid #c8dff0;border-radius:18px;width:100%;max-width:420px;padding:40px 44px;position:relative;box-shadow:0 4px 6px #1a5f8a0f,0 20px 40px #1a5f8a1a}.auth-logo-wrap{justify-content:center;margin-bottom:24px;display:flex}.auth-logo{width:auto;height:40px}.auth-heading{color:#0e2d45;text-align:center;letter-spacing:-.3px;margin:0 0 6px;font-size:22px;font-weight:700}.auth-sub{color:#5f7387;text-align:center;margin:0 0 28px;font-size:13px}.auth-field{flex-direction:column;gap:5px;margin-bottom:16px;display:flex}.auth-field label{color:#374f63;letter-spacing:.02em;text-transform:uppercase;font-size:11.5px;font-weight:600}.auth-field input{color:#1f3142;background:#fafcff;border:1.5px solid #c8dff0;border-radius:10px;outline:none;padding:10px 13px;font-family:inherit;font-size:13.5px;transition:border-color .15s,box-shadow .15s,background .15s}.auth-field input:focus{background:#fff;border-color:#1a5f8a;box-shadow:0 0 0 3px #1a5f8a1f}.auth-field input.error{border-color:#c0392b;box-shadow:0 0 0 3px #c0392b1a}.auth-field-error{color:#c0392b;margin-top:2px;font-size:11px}.auth-error-banner{color:#a12b2b;background:#fff0f0;border:1px solid #f5a0a0;border-radius:8px;margin-bottom:18px;padding:10px 14px;font-size:12.5px;line-height:1.5}.auth-submit-btn{color:#fff;letter-spacing:.02em;cursor:pointer;background:linear-gradient(135deg,#1a5f8a 0%,#1e72a8 100%);border:none;border-radius:10px;width:100%;margin-top:6px;padding:12px;font-family:inherit;font-size:14px;font-weight:700;transition:opacity .15s,transform .1s,box-shadow .15s;box-shadow:0 3px 10px #1a5f8a59}.auth-submit-btn:hover:not(:disabled){opacity:.93;transform:translateY(-1px);box-shadow:0 5px 16px #1a5f8a66}.auth-submit-btn:active:not(:disabled){transform:translateY(0)}.auth-submit-btn:disabled{opacity:.6;cursor:not-allowed;transform:none}.auth-footer{text-align:center;color:#5f7387;margin-top:24px;font-size:12.5px}.auth-footer a{color:#1a5f8a;font-weight:600;text-decoration:none}.auth-footer a:hover{text-decoration:underline}.auth-password-hint{color:#7a96ab;margin-top:4px;font-size:10.5px}.auth-divider{border:none;border-top:1px solid #dde9f3;margin:22px 0}@media (width<=480px){.auth-card{padding:28px 22px}}
