:root{--portal-navy:#082043;--portal-deep:#001428;--portal-teal:#00798a;--portal-teal-dark:#005f6d;--portal-gold:#d6aa4e;--portal-gold-light:#e5c47c;--portal-gold-bg:rgba(214,170,78,0.12);--portal-ink:#112233;--portal-muted:#54667a;--portal-bg:#eef2f5;--portal-paper:#ffffff;--portal-line:#d8e2ea;--portal-line-dark:#b8c8d6;--portal-radius:6px;--portal-shadow:0 4px 20px rgba(8,32,67,0.08);--portal-shadow-lg:0 16px 40px rgba(8,32,67,0.15)}#portal-root{min-height:100vh;background-color:var(--portal-bg);color:var(--portal-ink);font-family:var(--font-sans);display:flex;flex-direction:column}.portal-header{background:var(--portal-navy);color:#ffffff;border-bottom:3px solid var(--portal-gold);position:sticky;top:0;z-index:50;box-shadow:0 4px 18px rgba(0,20,40,.25)}.portal-header-inner{max-width:1600px;margin:0 auto;padding:12px 24px;display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap}.portal-brand{display:flex;align-items:center;gap:14px;text-decoration:none}.portal-brand-logo{height:38px;width:auto;object-fit:contain}.portal-brand-meta{display:flex;flex-direction:column}.portal-brand-title{font-size:14px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:#ffffff;line-height:1.2}.portal-brand-subtitle{font-size:11px;color:var(--portal-gold-light);letter-spacing:.04em;font-weight:500}.portal-nav-tabs{display:flex;align-items:center;gap:6px;background:rgba(255,255,255,.06);padding:4px;border-radius:var(--portal-radius);border:1px solid rgba(255,255,255,.12)}.portal-tab-btn{display:flex;align-items:center;gap:8px;padding:8px 14px;font-size:13px;font-weight:600;color:#cbd7e3;background:transparent;border:none;border-radius:4px;cursor:pointer;transition:all .15s ease;white-space:nowrap}.portal-tab-btn:hover{color:#ffffff;background:rgba(255,255,255,.1)}.portal-tab-btn.active{color:var(--portal-deep);background:var(--portal-gold);box-shadow:0 2px 8px rgba(214,170,78,.35)}.portal-tab-badge{background:rgba(0,0,0,.25);color:#ffffff;font-size:11px;padding:1px 6px;border-radius:10px;font-weight:700}.portal-tab-btn.active .portal-tab-badge{background:var(--portal-deep);color:var(--portal-gold-light)}.portal-header-actions{display:flex;align-items:center;gap:10px}.portal-btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:8px 14px;font-size:13px;font-weight:600;border-radius:var(--portal-radius);cursor:pointer;transition:all .15s ease;border:1px solid transparent;white-space:nowrap;text-decoration:none}.portal-btn-sm{padding:6px 10px;font-size:12px}.portal-btn-primary{background:var(--portal-teal);color:#ffffff;border-color:var(--portal-teal)}.portal-btn-primary:hover{background:var(--portal-teal-dark);border-color:var(--portal-teal-dark)}.portal-btn-gold{background:var(--portal-gold);color:var(--portal-deep);border-color:var(--portal-gold)}.portal-btn-gold:hover{background:var(--portal-gold-light)}.portal-btn-ghost{background:rgba(255,255,255,.08);color:#ffffff;border-color:rgba(255,255,255,.2)}.portal-btn-ghost:hover{background:rgba(255,255,255,.18);border-color:rgba(255,255,255,.35)}.portal-btn-secondary{background:#ffffff;color:var(--portal-ink);border-color:var(--portal-line-dark)}.portal-btn-secondary:hover{background:var(--portal-bg);border-color:var(--portal-teal);color:var(--portal-teal)}.portal-btn-danger{background:#fff0f0;color:#b91c1c;border-color:#fca5a5}.portal-btn-danger:hover{background:#fee2e2}.portal-auth-container{min-height:calc(100vh - 80px);display:flex;align-items:center;justify-content:center;padding:32px 16px}.portal-auth-card{width:100%;max-width:440px;background:#ffffff;border-radius:8px;padding:36px 32px;box-shadow:var(--portal-shadow-lg);border:1px solid var(--portal-line);text-align:center}.portal-auth-logo{height:60px;width:auto;margin:0 auto 20px;object-fit:contain}.portal-auth-title{font-size:22px;font-family:var(--font-serif);color:var(--portal-navy);margin-bottom:8px}.portal-auth-desc{font-size:13px;color:var(--portal-muted);margin-bottom:24px;line-height:1.5}.portal-auth-form{display:flex;flex-direction:column;gap:14px;text-align:left}.portal-auth-input-group label{display:block;font-size:12px;font-weight:600;color:var(--portal-navy);margin-bottom:6px;text-transform:uppercase;letter-spacing:.05em}.portal-auth-input{width:100%;padding:12px 14px;font-size:15px;border:1px solid var(--portal-line-dark);border-radius:var(--portal-radius);outline:none;transition:border-color .15s ease}.portal-auth-input:focus{border-color:var(--portal-teal);box-shadow:0 0 0 3px rgba(0,121,138,.15)}.portal-auth-hint{font-size:11px;color:var(--portal-muted);text-align:center;margin-top:14px}.portal-workspace{flex:1;max-width:1680px;margin:0 auto;width:100%;padding:24px;display:grid;grid-template-columns:minmax(420px,540px) 1fr;gap:28px;align-items:start}@media (max-width:1200px){.portal-workspace{grid-template-columns:1fr}}.portal-workspace-full{flex:1;max-width:1400px;margin:0 auto;width:100%;padding:28px 24px}.portal-editor-panel{background:#ffffff;border-radius:8px;border:1px solid var(--portal-line);box-shadow:var(--portal-shadow);padding:24px;display:flex;flex-direction:column;gap:22px}.portal-editor-header{display:flex;align-items:center;justify-content:space-between;padding-bottom:14px;border-bottom:1px solid var(--portal-line)}.portal-editor-title{font-size:18px;font-weight:700;color:var(--portal-navy);display:flex;align-items:center;gap:10px}.portal-form-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}.portal-form-grid-3{display:grid;grid-template-columns:1fr 1fr 1fr;gap:12px}.portal-form-group{display:flex;flex-direction:column;gap:6px}.portal-form-group.col-span-2{grid-column:span 2}.portal-form-group.col-span-3{grid-column:span 3}.portal-label{font-size:12px;font-weight:600;color:var(--portal-navy);letter-spacing:.02em}.portal-input,.portal-select,.portal-textarea{width:100%;padding:9px 12px;font-size:13.5px;border:1px solid var(--portal-line-dark);border-radius:var(--portal-radius);background:#ffffff;color:var(--portal-ink);outline:none;transition:all .15s ease}.portal-input:focus,.portal-select:focus,.portal-textarea:focus{border-color:var(--portal-teal);box-shadow:0 0 0 3px rgba(0,121,138,.15)}.portal-textarea{resize:vertical;line-height:1.5;font-family:inherit}.portal-items-table{width:100%;border-collapse:collapse;margin-top:8px;font-size:13px}.portal-items-table th{background:var(--portal-bg);color:var(--portal-navy);font-weight:600;font-size:11px;text-transform:uppercase;letter-spacing:.05em;padding:8px 10px;text-align:left;border-bottom:2px solid var(--portal-line-dark)}.portal-items-table td{padding:8px 10px;border-bottom:1px solid var(--portal-line);vertical-align:top}.portal-items-table .item-del-btn{background:transparent;border:none;color:#dc2626;cursor:pointer;padding:4px;border-radius:4px}.portal-items-table .item-del-btn:hover{background:#fee2e2}.portal-preview-panel{display:flex;flex-direction:column;align-items:center;position:sticky;top:90px}.portal-preview-toolbar{align-items:center;padding:10px 16px;background:#ffffff;border-radius:var(--portal-radius) var(--portal-radius) 0 0;border:1px solid var(--portal-line);border-bottom:none;color:var(--portal-muted)}.portal-document-sheet,.portal-preview-toolbar{width:100%;max-width:210mm;display:flex;justify-content:space-between;font-size:12px}.portal-document-sheet{min-height:297mm;background:#ffffff!important;background-color:#ffffff!important;box-shadow:var(--portal-shadow-lg);border:1px solid var(--portal-line);border-radius:0 0 var(--portal-radius) var(--portal-radius);padding:18mm 20mm;flex-direction:column;box-sizing:border-box;position:relative;line-height:1.55;color:var(--portal-ink)}.doc-header{display:flex;align-items:flex-start;justify-content:space-between;padding-bottom:14px;border-bottom:2px solid var(--portal-navy);margin-bottom:20px}.doc-brand-lockup{display:flex;flex-direction:column;gap:4px}.doc-logo{height:72px;width:auto;max-width:290px;object-fit:contain;object-position:left center;align-self:flex-start;margin-left:0;display:block}.doc-company-name{font-size:10.5px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--portal-navy);margin-top:4px}.doc-header-meta{text-align:right;font-size:11px;color:var(--portal-muted);line-height:1.5}.doc-header-meta strong{color:var(--portal-navy);font-size:11.5px}.doc-title-bar{display:flex;align-items:center;justify-content:space-between;background:var(--portal-navy);color:#ffffff;padding:10px 16px;border-radius:4px;margin-bottom:20px}.doc-title-text{font-size:18px;font-family:var(--font-serif);font-weight:700;letter-spacing:.04em;color:var(--portal-gold-light);text-transform:uppercase}.doc-number-badge{font-size:14px;font-weight:700;letter-spacing:.05em;background:rgba(255,255,255,.14);padding:4px 10px;border-radius:4px;border:1px solid rgba(255,255,255,.2)}.doc-meta-grid{display:grid;grid-template-columns:1.2fr 1fr;gap:20px;margin-bottom:24px}.doc-meta-card{background:#fcfdfe;border:1px solid var(--portal-line);border-radius:4px;padding:12px 14px}.doc-meta-card h4{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--portal-teal-dark);margin-bottom:8px;border-bottom:1px solid var(--portal-line);padding-bottom:4px}.doc-meta-row{display:flex;justify-content:space-between;font-size:11.5px;padding:2px 0}.doc-meta-row .label{color:var(--portal-muted)}.doc-meta-row .val{font-weight:600;color:var(--portal-navy);text-align:right}.doc-table{width:100%;border-collapse:collapse;margin-bottom:20px;font-size:11.5px}.doc-table th{background:#f4f7f9;color:var(--portal-navy);font-weight:700;text-transform:uppercase;letter-spacing:.05em;padding:8px 10px;border-top:1.5px solid var(--portal-navy);border-bottom:1.5px solid var(--portal-navy);font-size:10.5px}.doc-table td{padding:9px 10px;border-bottom:1px solid var(--portal-line)}.doc-table tr:nth-child(2n) td{background:#fafbfc}.doc-totals-box{display:flex;justify-content:flex-end;margin-bottom:24px}.doc-totals-table{width:260px;border-collapse:collapse;font-size:12px}.doc-totals-table td{padding:6px 8px}.doc-totals-table .total-label{color:var(--portal-muted);text-align:right}.doc-totals-table .total-val{text-align:right;font-weight:600;color:var(--portal-navy)}.doc-totals-table .grand-total-row td{border-top:2px solid var(--portal-navy);border-bottom:2px solid var(--portal-navy);background:var(--portal-gold-bg);padding:8px;font-size:13.5px;font-weight:700;color:var(--portal-navy)}.doc-banking-box{background:#f6f9fc;border:1px solid #d0e0ed;border-left:4px solid var(--portal-teal);border-radius:4px;padding:12px 16px;margin-bottom:20px;font-size:11px}.doc-banking-title{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--portal-navy);margin-bottom:6px}.doc-banking-grid{display:grid;grid-template-columns:1fr 1fr;gap:4px 16px}.letter-recipient-box{margin-bottom:24px;line-height:1.6}.letter-date-ref{display:flex;justify-content:space-between;margin-bottom:20px;font-size:12px;font-weight:600;color:var(--portal-navy)}.letter-subject{font-size:14px;font-weight:700;color:var(--portal-navy);text-transform:uppercase;letter-spacing:.04em;border-bottom:1.5px solid var(--portal-gold);padding-bottom:6px;margin-bottom:18px}.letter-body{font-size:12.5px;line-height:1.7;color:var(--portal-ink);white-space:pre-wrap;margin-bottom:28px}.letter-signoff{margin-top:24px;line-height:1.6}.letter-signature-line{width:180px;height:40px;border-bottom:1px solid var(--portal-line-dark);margin-bottom:8px}.doc-statutory-footer{margin-top:auto;padding-top:14px;border-top:1px solid var(--portal-line);font-size:9.5px;color:var(--portal-muted);text-align:center;line-height:1.5}.doc-statutory-footer strong{color:var(--portal-navy)}.tpl-minimal{font-family:var(--font-sans);color:#1a2530;display:flex;flex-direction:column;flex:1}.tpl-minimal-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:24px}.tpl-minimal-brand-block{display:flex;flex-direction:column;gap:4px;max-width:340px}.tpl-minimal-logo{height:68px;width:auto;max-width:280px;object-fit:contain;object-position:left center;align-self:flex-start;margin-left:0;margin-bottom:10px;display:block}.tpl-minimal-company-info{font-size:11.5px;color:#334155;line-height:1.45}.tpl-minimal-company-name{font-size:13.5px;font-weight:700;color:#082043;margin-bottom:2px}.tpl-minimal-title-block{text-align:right;display:flex;flex-direction:column;align-items:flex-end}.tpl-minimal-doc-title{font-size:32px;font-weight:800;letter-spacing:.05em;color:#082043;line-height:1.1;text-transform:uppercase;margin-bottom:4px}.tpl-minimal-doc-number{font-size:13px;font-weight:700;color:#1e293b}.tpl-minimal-balance-callout{margin-top:14px;text-align:right}.tpl-minimal-balance-callout-label{font-size:11px;font-weight:600;color:#64748b;text-transform:capitalize}.tpl-minimal-balance-callout-val{font-size:20px;font-weight:800;color:#082043;margin-top:1px}.tpl-minimal-info-grid{display:grid;grid-template-columns:1.2fr 1fr;gap:20px;margin-bottom:26px;align-items:flex-start}.tpl-minimal-bill-to-label{font-size:11px;color:#64748b;margin-bottom:4px;text-transform:capitalize}.tpl-minimal-client-name{font-size:13.5px;font-weight:700;color:#082043;margin-bottom:3px}.tpl-minimal-client-address{font-size:11.5px;color:#475569;line-height:1.45;white-space:pre-line}.tpl-minimal-subject-box{margin-top:14px}.tpl-minimal-subject-label{font-size:11px;color:#64748b;margin-bottom:2px}.tpl-minimal-subject-text{font-size:13px;font-weight:600;color:#082043}.tpl-minimal-dates-table{width:100%;border-collapse:collapse;font-size:12px}.tpl-minimal-dates-table td{padding:4px 6px}.tpl-minimal-dates-table .date-label{color:#64748b;text-align:right;width:45%}.tpl-minimal-dates-table .date-val{font-weight:600;color:#082043;text-align:right;width:55%}.tpl-minimal-items-table{width:100%;border-collapse:collapse;margin-bottom:20px;font-size:12px}.tpl-minimal-items-table th{background:#082043;color:#ffffff;font-weight:600;font-size:11.5px;padding:10px 12px;text-align:left}.tpl-minimal-items-table td{padding:12px;border-bottom:1px solid #e2e8f0;color:#1e293b}.tpl-minimal-items-table tr:last-child td{border-bottom:1.5px solid #cbd5e1}.tpl-minimal-totals-box{display:flex;flex-direction:column;align-items:flex-end;margin-bottom:24px}.tpl-minimal-totals-table{width:290px;border-collapse:collapse;font-size:12px}.tpl-minimal-totals-table td{padding:5px 8px}.tpl-minimal-totals-table .total-label{color:#64748b;text-align:right}.tpl-minimal-totals-table .total-val{text-align:right;font-weight:600;color:#0f172a}.tpl-minimal-totals-table .total-tax-inclusive{font-size:10px;color:#94a3b8;display:block}.tpl-minimal-totals-table .grand-total-row td{font-size:13.5px;font-weight:800;color:#082043;padding-top:8px}.tpl-minimal-totals-table .payment-made-row td{color:#dc2626;font-weight:600}.tpl-minimal-balance-due-row{background:#eaf6f8}.tpl-minimal-balance-due-row td{padding:10px 12px;font-size:14px;font-weight:800;color:#082043}.template-picker-bar{display:flex;align-items:center;justify-content:space-between;padding:10px 14px;background:#f1f5f9;border:1px solid #e2e8f0;border-radius:var(--portal-radius);margin-bottom:14px;gap:12px;flex-wrap:wrap}.template-picker-label{font-size:12px;font-weight:700;color:#082043;display:flex;align-items:center;gap:6px}.template-picker-buttons{display:flex;gap:6px}.template-picker-btn{font-size:11.5px;font-weight:600;padding:6px 12px;border-radius:6px;border:1px solid #cbd5e1;background:#ffffff;color:#475569;cursor:pointer;transition:all .15s ease}.template-picker-btn:hover{background:#f8fafc;color:#082043;border-color:#94a3b8}.template-picker-btn.active{background:#082043;color:#ffffff;border-color:#082043;box-shadow:0 1px 3px rgba(8,32,67,.25)}.tpl-minimal-banking-box{margin-top:10px;margin-bottom:16px;font-size:11px;color:#475569;line-height:1.5;border-top:1px dashed #cbd5e1;padding-top:12px}.tpl-minimal-banking-title{font-size:11.5px;font-weight:700;color:#082043;margin-bottom:4px}.tpl-minimal-banking-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}.tpl-minimal-notes{font-size:11px;color:#64748b;font-style:italic;margin-bottom:14px}.vault-header-bar{align-items:center;justify-content:space-between;margin-bottom:20px;flex-wrap:wrap}.vault-header-bar,.vault-stats{display:flex;gap:16px}.vault-stat-card{background:#ffffff;border:1px solid var(--portal-line);border-radius:var(--portal-radius);padding:12px 18px;min-width:140px}.vault-stat-num{font-size:24px;font-weight:700;color:var(--portal-navy);line-height:1.2}.vault-stat-label{font-size:12px;color:var(--portal-muted)}.vault-table{width:100%;border-collapse:collapse;background:#ffffff;border:1px solid var(--portal-line);border-radius:8px;overflow:hidden;box-shadow:var(--portal-shadow)}.vault-table th{background:#f4f7f9;padding:12px 14px;font-size:12px;text-transform:uppercase;letter-spacing:.05em;color:var(--portal-navy);font-weight:700;text-align:left;border-bottom:2px solid var(--portal-line)}.vault-table td{padding:12px 14px;border-bottom:1px solid var(--portal-line);font-size:13px}.vault-type-badge{display:inline-block;padding:3px 8px;border-radius:4px;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.04em}.badge-invoice{background:#e0f2fe;color:#0369a1}.badge-quote{background:#fef3c7;color:#92400e}.badge-letter{background:#f3e8ff;color:#6b21a8}.downloads-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:20px}.download-card{background:#ffffff;border:1px solid var(--portal-line);border-radius:8px;padding:20px;box-shadow:var(--portal-shadow);display:flex;flex-direction:column;justify-content:space-between;gap:16px;transition:transform .15s ease,box-shadow .15s ease}.download-card:hover{transform:translateY(-2px);box-shadow:var(--portal-shadow-lg);border-color:var(--portal-gold)}.download-card-meta{display:flex;align-items:flex-start;gap:14px}.download-icon-box{width:44px;height:44px;border-radius:8px;display:flex;align-items:center;justify-content:center;flex-shrink:0;background:#f0fdf4;color:#166534}.download-icon-box.zip{background:#eff6ff;color:#1e40af}.download-icon-box.pdf{background:#fef2f2;color:#991b1b}.download-icon-box.word{background:#f0f9ff;color:#0284c7}.download-icon-box.excel{background:#ecfdf5;color:#047857}.portal-toast{position:fixed;bottom:24px;right:24px;background:var(--portal-deep);color:#ffffff;border-left:4px solid var(--portal-gold);padding:12px 20px;border-radius:4px;box-shadow:0 10px 30px rgba(0,0,0,.35);font-size:13px;font-weight:500;z-index:1000;display:flex;align-items:center;gap:10px;animation:slideUp .25s ease-out}@keyframes slideUp{0%{transform:translateY(20px);opacity:0}to{transform:translateY(0);opacity:1}}@media print{@page{size:A4 portrait;margin:12mm 15mm 15mm 15mm}#portal-root,body,html{background:#ffffff!important;background-color:#ffffff!important;padding:0!important;margin:0!important;min-height:0!important;height:auto!important}#portal-root>.portal-header,.downloads-grid,.no-print,.portal-btn,.portal-editor-panel,.portal-header,.portal-preview-toolbar,.portal-toast,.site-footer,.site-header,.vault-header-bar,.vault-stats,.vault-table{display:none!important}.portal-preview-panel,.portal-workspace{display:block!important}.portal-document-sheet,.portal-preview-panel,.portal-workspace{padding:0!important;margin:0!important;max-width:100%!important;width:100%!important;background:#ffffff!important;background-color:#ffffff!important}.portal-document-sheet{box-shadow:none!important;border:none!important;border-radius:0!important;min-height:260mm!important;display:flex!important;flex-direction:column!important;justify-content:space-between!important}.doc-statutory-footer{margin-top:auto!important;background:#ffffff!important;background-color:#ffffff!important}.doc-logo{height:72px!important;max-width:290px!important}.doc-logo,.tpl-minimal-logo{width:auto!important;object-fit:contain!important;object-position:left center!important;margin-left:0!important;align-self:flex-start!important}.tpl-minimal-logo{height:68px!important;max-width:280px!important}*{-webkit-print-color-adjust:exact!important;print-color-adjust:exact!important}}