@layer vendor,app,overrides,utilities;@layer vendor,app,overrides,utilities;@layer app{:root{--border-radius:0.75rem;--border-radius-sm:0.5rem;--border-radius-lg:1rem;--space-4:1rem;--space-5:1.25rem;--primary-color:var(--color-primary-dark);--accent-color:var(--color-info);--portal-primary-color:var(--color-primary-dark);--portal-accent-color:var(--color-info);--shadow-sm:0 1px 3px rgba(0,0,0,0.08);--shadow-md:0 4px 12px rgba(0,0,0,0.08);--shadow-lg:0 8px 24px rgba(0,0,0,0.12)}body{background-color:var(--color-background);font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Oxygen,Ubuntu,Cantarell,sans-serif;padding-top:0;color:var(--color-text-primary);-webkit-font-smoothing:antialiased}.portal-header{background:linear-gradient(135deg,var(--portal-primary-color) 0%,var(--color-gray-800) 60%,var(--portal-accent-color) 100%);color:var(--color-text-inverse);-webkit-text-fill-color:var(--color-text-inverse);padding:1.25rem 0;box-shadow:var(--shadow-lg);position:relative}.portal-header::after{content:'';position:absolute;bottom:0;left:0;right:0;height:3px;background:linear-gradient(90deg,var(--portal-accent-color),transparent)}.portal-header .company-logo{max-height:50px;max-width:180px;border-radius:6px}.portal-header .company-name{font-size:1.4rem;font-weight:700;margin:0;letter-spacing:-0.01em}.portal-header .customer-welcome{font-size:0.85rem;opacity:0.85}.portal-nav{background:var(--color-surface);background:var(--color-surface);border-bottom:1px solid var(--color-border);box-shadow:var(--shadow-sm);position:sticky;top:0;z-index:100}.portal-nav .nav{gap:0.25rem}.portal-nav .nav-link{color:var(--color-gray-600);padding:0.875rem 1.25rem;font-weight:500;font-size:0.9rem;border-bottom:3px solid transparent;transition:all 0.2s ease;border-radius:0}.portal-nav .nav-link:hover{color:var(--portal-primary-color);background-color:var(--color-gray-50);border-bottom-color:var(--color-gray-300)}.portal-nav .nav-link.active{color:var(--portal-accent-color);border-bottom-color:var(--portal-accent-color);background-color:transparent;font-weight:600}.portal-nav .nav-link i{margin-right:0.5rem;font-size:0.85rem}.portal-nav .nav-badge{font-size:0.7rem;padding:0.15rem 0.45rem;margin-left:0.4rem;border-radius:10px;font-weight:600}.portal-content{max-width:1200px;margin:1.75rem auto;padding:0 1.25rem}.portal-content h2{font-size:1.5rem;font-weight:700;color:var(--color-text-primary);letter-spacing:-0.01em}.portal-content h2 i{color:var(--portal-accent-color);opacity:0.7}.portal-card{background:var(--color-surface);border-radius:var(--border-radius);box-shadow:var(--shadow-md);padding:1.5rem;margin-bottom:1.5rem;border:1px solid var(--color-border);transition:box-shadow 0.2s ease}.portal-card:hover{box-shadow:var(--shadow-lg)}.portal-card-header{border-bottom:1px solid var(--color-border);padding-bottom:1rem;margin-bottom:1rem}.portal-card-title{color:var(--color-text-primary);font-weight:700;font-size:1.05rem;margin:0}.portal-card-title i{color:var(--portal-accent-color)}.stat-card{text-align:center;padding:1.5rem 1rem;border-radius:var(--border-radius);background:var(--color-surface);border:1px solid var(--color-border);box-shadow:var(--shadow-sm);transition:transform 0.2s ease,box-shadow 0.2s ease}.stat-card:hover{transform:translateY(-3px);box-shadow:var(--shadow-md)}.stat-card .stat-value{font-size:1.75rem;font-weight:800;color:var(--portal-primary-color);letter-spacing:-0.02em;line-height:1.2}.stat-card .stat-label{color:var(--color-text-secondary);font-size:0.8rem;text-transform:uppercase;letter-spacing:0.5px;font-weight:600;margin-top:0.25rem}.stat-card.highlight{background:linear-gradient(135deg,var(--portal-accent-color) 0%,var(--color-info-dark) 100%);color:var(--color-text-inverse);-webkit-text-fill-color:var(--color-text-inverse);border-color:transparent;box-shadow:0 4px 14px rgba(49,130,206,0.3)}.stat-card.highlight .stat-value,.stat-card.highlight .stat-label{color:var(--color-text-inverse);-webkit-text-fill-color:var(--color-text-inverse)}.portal-card .ds-btn{border-radius:20px;font-size:0.85rem;padding:0.4rem 1rem;font-weight:500;transition:all 0.15s ease}.portal-card .ds-btn--outline{background:var(--color-gray-50);border-color:var(--color-border);color:var(--color-text-secondary)}.portal-card .ds-btn--outline:hover{background:var(--color-gray-100);color:var(--color-text-primary);border-color:var(--color-gray-300)}.portal-card .status-badge,.portal-nav ~ .container .status-badge{font-size:0.78rem;padding:0.35rem 0.7rem;border-radius:20px;font-weight:600;letter-spacing:0.01em}.table-portal{margin-bottom:0;font-size:0.9rem}.table-portal th{background-color:var(--color-gray-50);color:var(--color-text-secondary);font-weight:600;font-size:0.78rem;text-transform:uppercase;letter-spacing:0.04em;border-bottom:2px solid var(--color-border);border-top:none;padding:0.75rem 0.75rem}.table-portal td{vertical-align:middle;padding:0.75rem 0.75rem;border-bottom:1px solid var(--color-gray-100);color:var(--color-text-primary)}.table-portal tbody tr{transition:background-color 0.1s ease}.table-portal tbody tr:hover{background-color:var(--color-gray-50)}.table-portal tbody tr:last-child td{border-bottom:none}.table-portal a{color:var(--portal-accent-color);font-weight:600}.table-portal a:hover{color:var(--color-info-dark)}.portal-footer{background:var(--color-primary-dark);color:var(--color-gray-300);padding:2rem 0;margin-top:3rem;border-top:3px solid var(--portal-accent-color)}.portal-footer strong{color:var(--color-text-inverse);-webkit-text-fill-color:var(--color-text-inverse)}.portal-footer a{color:var(--color-gray-100);text-decoration:none;transition:color 0.15s ease}.portal-footer a:hover{color:var(--color-text-inverse);-webkit-text-fill-color:var(--color-text-inverse)}.empty-state{text-align:center;padding:3rem 1rem;color:var(--color-text-secondary)}.empty-state i{font-size:3rem;margin-bottom:1rem;color:var(--color-gray-300);display:block}.empty-state h5{color:var(--color-text-primary);font-weight:600;margin-bottom:0.5rem}.empty-state p{max-width:360px;margin-left:auto;margin-right:auto;font-size:0.9rem}.btn-portal-primary{background-color:var(--portal-accent-color);border-color:var(--portal-accent-color);color:var(--color-text-inverse);-webkit-text-fill-color:var(--color-text-inverse);border-radius:var(--border-radius-sm);font-weight:500}.btn-portal-primary:hover{background-color:var(--color-info-dark);border-color:var(--color-info-dark);color:var(--color-text-inverse);-webkit-text-fill-color:var(--color-text-inverse)}.btn-group-sm .ds-btn{border-radius:var(--border-radius-sm);padding:0.3rem 0.6rem;font-size:0.8rem}.btn-group-sm .ds-btn i{font-size:0.8rem}.portal-content .ds-card{border:1px solid var(--color-border);border-radius:var(--border-radius-sm);box-shadow:var(--shadow-sm);transition:transform 0.2s ease,box-shadow 0.2s ease}.portal-content .ds-card:hover{transform:translateY(-2px);box-shadow:var(--shadow-md)}@media (max-width:768px){.portal-header{padding:1rem 0}.portal-header .company-name{font-size:1.15rem}.portal-header .company-logo{max-height:40px;max-width:120px}.portal-nav .nav{gap:0}.portal-nav .nav-link{padding:0.7rem 0.75rem;font-size:0.82rem}.portal-nav .nav-link span.nav-text{display:none}.portal-content{margin:1rem auto;padding:0 0.75rem}.portal-content h2{font-size:1.25rem}.portal-card{padding:1rem;margin-bottom:1rem;border-radius:var(--border-radius-sm)}.stat-card{padding:1rem 0.5rem}.stat-card .stat-value{font-size:1.35rem}.stat-card .stat-label{font-size:0.7rem}.table-responsive{overflow-x:auto;-webkit-overflow-scrolling:touch}.table-portal{min-width:500px;font-size:0.82rem}.table-portal th,.table-portal td{padding:0.5rem;white-space:nowrap}.table-portal td:nth-child(4){white-space:normal;word-break:break-word;min-width:80px;max-width:120px}.portal-footer{margin-top:2rem;padding:1.5rem 0}.empty-state{padding:2rem 1rem}.empty-state i{font-size:2.5rem}}@media (max-width:480px){.portal-header .d-flex.align-items-center{gap:0.5rem}.portal-header .company-name{font-size:1rem}.portal-nav .nav-link{padding:0.6rem 0.5rem;font-size:0.78rem}.portal-content{padding:0 0.5rem}.portal-card .ds-btn{font-size:0.78rem;padding:0.35rem 0.75rem}.stat-card .stat-value{font-size:1.15rem}.table-portal{min-width:420px}}.pp-terms-box{max-height:20rem}}@layer vendor,app,overrides,utilities;@layer app{:root{--border-radius:0.5rem;--space-4:1rem;--space-5:1.25rem;--primary-color:var(--color-primary-dark);--accent-color:var(--color-info)}body{background-color:var(--color-background);font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Oxygen,Ubuntu,Cantarell,sans-serif}.quote-container{max-width:900px;margin:2rem auto;padding:0 1rem}.quote-card{--portal-quote-card-shadow:var(--shadow-sm);background:var(--color-surface);border-radius:var(--border-radius);box-shadow:var(--portal-quote-card-shadow);padding:2rem;margin-bottom:1.5rem}.company-header{border-bottom:2px solid var(--accent-color);padding-bottom:1.5rem;margin-bottom:1.5rem}.quote-title{color:var(--primary-color)}.quote-total{font-size:2rem;font-weight:bold;color:var(--primary-color)}.portal-card .status-badge{font-size:0.9rem;padding:0.5rem 1rem}.btn-accept{background-color:var(--color-success);border-color:var(--color-success)}.btn-accept:hover{background-color:var(--color-success-dark);border-color:var(--color-success-dark)}.payment-details{background:var(--color-background);border-radius:var(--border-radius);padding:1.5rem;margin-top:1.5rem}.payment-details h6{color:var(--primary-color);border-bottom:2px solid var(--accent-color);padding-bottom:0.5rem;margin-bottom:1rem}.footer-section{background:linear-gradient(135deg,var(--color-gray-50) 0%,var(--color-gray-200) 100%);border-radius:var(--border-radius);padding:1.5rem;margin-top:1.5rem;text-align:center}.stamp-container{display:flex;flex-wrap:wrap;gap:1rem;justify-content:flex-end;margin-top:1.5rem}.stamp-item img{max-width:150px;max-height:150px}.quote-table thead{background-color:var(--primary-color)}.quote-table>thead th,.quote-table thead th{background-color:var(--primary-color);color:var(--color-text-inverse);-webkit-text-fill-color:var(--color-text-inverse);border-bottom-color:var(--primary-color)}.quote-table{font-size:0.95rem}.quote-table td.text-end{white-space:nowrap}.portal-preformat-text{white-space:pre-wrap}.company-logo{max-height:80px;margin-bottom:1rem}.portal-nav-bar{background:linear-gradient(135deg,var(--primary-color) 0%,var(--color-primary-dark) 100%);padding:0.75rem 1rem;margin-bottom:1rem;border-radius:var(--border-radius)}.portal-nav-bar a{color:var(--color-text-inverse);text-decoration:none;font-size:0.9rem;opacity:0.9}.portal-nav-bar a:hover{opacity:1}.portal-nav-bar .nav-links{display:flex;gap:1.5rem;flex-wrap:wrap}.portal-nav-bar .nav-links a.active{font-weight:600;border-bottom:2px solid var(--accent-color);padding-bottom:var(--space-0-5)}.invoice-container{max-width:900px;margin:2rem auto;padding:0 1rem}.invoice-card{--portal-invoice-card-shadow:var(--shadow-sm);background:var(--color-surface);border-radius:var(--border-radius);box-shadow:var(--portal-invoice-card-shadow);padding:2rem;margin-bottom:1.5rem}.invoice-title{color:var(--primary-color)}.invoice-total{font-size:2rem;font-weight:bold;color:var(--primary-color)}.status-sent{background-color:var(--color-info);color:var(--color-text-inverse);-webkit-text-fill-color:var(--color-text-inverse)}.status-paid{background-color:var(--color-success);color:var(--color-text-inverse);-webkit-text-fill-color:var(--color-text-inverse)}.status-overdue{background-color:var(--color-danger);color:var(--color-text-inverse);-webkit-text-fill-color:var(--color-text-inverse)}.btn-pay{background-color:var(--color-success);border-color:var(--color-success);font-size:1.1rem;padding:0.75rem 2rem}.btn-pay:hover{background-color:var(--color-success-dark);border-color:var(--color-success-dark)}.btn-download{background-color:var(--accent-color);border-color:var(--accent-color)}.btn-download:hover{background-color:var(--color-info-dark);border-color:var(--color-info-dark)}.line-items-table{width:100%}.line-items-table th{background-color:var(--primary-color);color:var(--color-text-inverse);padding:0.75rem;text-align:left}.line-items-table td{padding:0.75rem;border-bottom:1px solid var(--color-border)}.line-items-table tr:last-child td{border-bottom:none}.totals-section{background:linear-gradient(135deg,var(--color-gray-50) 0%,var(--color-gray-200) 100%);border-radius:var(--border-radius);padding:1.5rem;margin-top:1.5rem}.action-buttons{display:flex;gap:1rem;flex-wrap:wrap;justify-content:center;margin-top:2rem}@media (max-width:576px){.action-buttons{flex-direction:column}.action-buttons .btn{width:100%}}body.portal-quote-error{background-color:var(--color-background);font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Oxygen,Ubuntu,Cantarell,sans-serif;display:flex;align-items:center;justify-content:center;min-height:100vh;min-height:100dvh}body.portal-quote-error .error-container{text-align:center;max-width:500px;padding:2rem}body.portal-quote-error .error-icon{font-size:5rem;color:var(--color-danger);margin-bottom:1.5rem}body.portal-invoice-error{background:linear-gradient(135deg,var(--color-primary-light) 0%,var(--color-purple) 100%);min-height:100vh;min-height:100dvh;display:flex;align-items:center;justify-content:center}body.portal-invoice-error .error-card{--portal-error-card-shadow:var(--shadow-2xl);background:var(--color-surface);border-radius:var(--space-4);box-shadow:var(--portal-error-card-shadow);padding:3rem;text-align:center;max-width:500px}body.portal-invoice-error .error-icon{font-size:4rem;color:var(--color-danger);margin-bottom:1.5rem}body.portal-invoice-error .error-title{color:var(--color-primary-dark);margin-bottom:1rem}body.portal-invoice-error .error-message{color:var(--color-text-secondary);margin-bottom:2rem}[data-theme="dark"] .quote-card{--portal-quote-card-shadow:var(--shadow-md)}@media (max-width:768px){.quote-container,.invoice-container{margin:0.5rem auto;padding:0 0.5rem}.quote-card,.invoice-card{padding:1rem;margin-bottom:1rem;border-radius:0.375rem}.company-header{padding-bottom:1rem;margin-bottom:1rem}.company-header .col-md-8,.company-header .col-md-4{width:100%;max-width:100%;flex:0 0 100%}.company-header .col-md-4{text-align:left;margin-top:1rem;padding-top:1rem;border-top:1px solid var(--color-border)}.company-header h2{font-size:1.25rem}.company-header h3{font-size:1.1rem;margin-bottom:0.5rem}.company-header p{font-size:0.85rem}.company-logo{max-height:60px;max-width:140px}.quote-title,.invoice-title{font-size:1.1rem}.quote-total,.invoice-total{font-size:1.4rem}.table-responsive{overflow-x:auto;-webkit-overflow-scrolling:touch}.quote-table,.line-items-table{font-size:0.8rem;min-width:400px}.quote-table th,.quote-table td,.line-items-table th,.line-items-table td{padding:0.5rem 0.4rem;white-space:nowrap}.quote-table td:first-child,.line-items-table td:first-child{white-space:normal;word-break:break-word;min-width:100px}.quote-table td:first-child,.quote-table th:first-child,.line-items-table td:first-child,.line-items-table th:first-child{position:sticky;left:0;z-index:1;max-width:45vw}.quote-table td:first-child,.line-items-table td:first-child{background-color:var(--color-surface)}.portal-nav-bar{padding:0.5rem 0.75rem;border-radius:0.375rem}.portal-nav-bar a{font-size:0.8rem}.portal-nav-bar .nav-links{gap:0.75rem}.portal-card .status-badge{font-size:0.8rem;padding:0.35rem 0.75rem}.payment-details{padding:1rem}.footer-section{padding:1rem}.totals-section{padding:1rem}.stamp-item img{max-width:100px;max-height:100px}.ds-btn--lg{font-size:0.9rem;padding:0.6rem 1rem}}@media (max-width:480px){.quote-container,.invoice-container{margin:0.25rem auto;padding:0 0.25rem}.quote-card,.invoice-card{padding:0.75rem;border-radius:0.25rem}.quote-total,.invoice-total{font-size:1.2rem}.quote-table,.line-items-table{font-size:0.75rem;min-width:0}.quote-table>:is(thead,tbody)>tr>:is(th,td),.line-items-table th,.line-items-table td{padding:0.4rem 0.3rem}.quote-table>thead>tr>th{font-size:0.7rem;letter-spacing:0;white-space:normal}.quote-table>tbody>tr>td:nth-child(2){white-space:normal}.portal-nav-bar .nav-links{gap:0.5rem}.portal-nav-bar a{font-size:0.75rem}.company-header h2{font-size:1.1rem}}[data-theme="dark"] .invoice-card{--portal-invoice-card-shadow:var(--shadow-md)}[data-theme="dark"] body.portal-invoice-error .error-card{--portal-error-card-shadow:var(--shadow-2xl)}}@layer app{@media (max-width:767px){.portal-header .row{flex-direction:column}.portal-header .col-md-6{width:100%;max-width:100%;flex:0 0 100%}.portal-header .col-md-6.text-md-end{text-align:left;margin-top:var(--space-2);padding-top:var(--space-2);border-top:1px solid var(--color-overlay-light-subtle);font-size:var(--font-size-sm)}.portal-header .d-flex.align-items-center{gap:var(--space-3)}}@media (max-width:767px){.portal-nav .nav{overflow-x:auto;flex-wrap:nowrap;-webkit-overflow-scrolling:touch;scrollbar-width:none}.portal-nav .nav::-webkit-scrollbar{display:none}.portal-nav .nav-item{flex-shrink:0}.portal-nav .nav-link{padding:var(--space-3) var(--space-4);font-size:var(--font-size-sm);white-space:nowrap;display:flex;align-items:center;gap:var(--space-2)}.portal-nav .nav-link .nav-text{display:inline}.portal-nav .nav-link i{margin-right:0;font-size:var(--font-size-sm)}}@media (max-width:480px){.portal-nav .nav-link{padding:var(--space-3);font-size:var(--font-size-xs)}.portal-nav .nav-link .nav-text{display:none}.portal-nav .nav-link i{font-size:var(--font-size-base)}}.portal-content{overflow-x:hidden;box-sizing:border-box}@media (max-width:767px){.portal-content .row{flex-direction:column}.portal-content .col-md-6,.portal-content .col-md-4,.portal-content .col-md-8{width:100%;max-width:100%;flex:0 0 100%}.portal-content h2{font-size:var(--font-size-xl)}}@media (max-width:480px){.portal-card .d-flex.flex-wrap.gap-2{flex-direction:column}.portal-card .d-flex.flex-wrap.gap-2 .ds-btn{width:100%;justify-content:center;text-align:center}}@media (max-width:480px){.portal-content .row.g-4>.col-6,.portal-content .row.g-4>.col-md-3{flex:0 0 50%;max-width:50%}}.portal-card .ds-table-responsive,.portal-card .table-responsive{overflow-x:auto;-webkit-overflow-scrolling:touch;border-radius:var(--border-radius)}@media (max-width:767px){.portal-card .ds-table-responsive{margin:0 calc(-1 * var(--space-4));padding:0 var(--space-4);width:calc(100% + 2 * var(--space-4))}.table-portal{min-width:500px}}@media (max-width:767px){.portal-content .col-lg-6{width:100%;max-width:100%;flex:0 0 100%}.portal-content .row.g-4{margin-bottom:var(--space-4)}}@media (max-width:767px){.portal-footer .row{flex-direction:column}.portal-footer .col-md-6{width:100%;max-width:100%;flex:0 0 100%}.portal-footer .col-md-6.text-md-end{text-align:left;margin-top:var(--space-4)}.portal-footer{padding:var(--space-6) 0;margin-top:var(--space-8)}}@media (max-width:767px){.action-buttons{flex-direction:column;gap:var(--space-3)}.action-buttons .ds-btn,.action-buttons .btn{width:100%;justify-content:center}}@media (max-width:767px){.portal-header,.portal-nav,.portal-content,.portal-footer{max-width:100vw;overflow-x:hidden}}}