:root{--background-color:#ffffff;--secondary-background-color:#f8f9fa;--text-color:#212529;--accent-color:#e9ecef;--secondary-accent-color:#d7dbdf;--accent-text-color:#6c757d;--primary-color:#007bff;--primary-hover:#0056b3;--secondary-color:#ffffff;--success-color:#28a745;--error-color:#dc3545;--warning-color:#ffc107;--border-color:#dee2e6;--shadow-sm:0 .125rem .25rem rgba(0,0,0,.075);--shadow:0 .5rem 1rem rgba(0,0,0,.1);--shadow-lg:0 1rem 3rem rgba(0,0,0,.12)}*{box-sizing:border-box}body,html{margin:0;padding:0;font-family:Figtree,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;font-size:15px;background-color:var(--background-color);color:var(--text-color);-webkit-font-smoothing:antialiased}.login-container{min-height:100vh;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#f5f7fa,#e4e9f0)}.login-card{width:100%;max-width:420px;border:none;border-radius:12px;box-shadow:var(--shadow-lg);overflow:hidden}.login-card .card-body{padding:2.5rem}.login-logo{width:160px;height:auto;margin-bottom:1.5rem}.login-title{font-weight:700;color:var(--text-color);margin-bottom:.25rem}.login-subtitle{color:var(--accent-text-color);font-size:.9rem;margin-bottom:2rem}.app-navbar{background-color:var(--secondary-color);border-bottom:1px solid var(--border-color);padding:.5rem 1.5rem;box-shadow:var(--shadow-sm);position:-webkit-sticky;position:sticky;top:0;z-index:1000}.app-navbar .navbar-brand{font-weight:700;font-size:1.25rem;color:var(--primary-color);display:flex;align-items:center;gap:.5rem}.app-navbar .navbar-brand img{height:32px;width:auto}.paslijst-header{background:var(--secondary-color);border:1px solid var(--border-color);border-radius:10px;padding:1.25rem 1.5rem;margin-bottom:1rem;box-shadow:var(--shadow-sm)}.paslijst-header label{font-weight:600;font-size:.8rem;text-transform:uppercase;letter-spacing:.03em;color:var(--accent-text-color);margin-bottom:.3rem}.search-dropdown-wrapper{position:relative}.search-dropdown-list{position:absolute;top:100%;left:0;right:0;z-index:999;max-height:250px;overflow-y:auto;background:var(--secondary-color);border:1px solid var(--border-color);border-top:none;border-radius:0 0 6px 6px;box-shadow:var(--shadow);list-style:none;margin:0;padding:0}.search-dropdown-list li{padding:.6rem 1rem;cursor:pointer;border-bottom:1px solid var(--accent-color);font-size:.9rem;transition:background .15s}.search-dropdown-list li.active,.search-dropdown-list li:hover{background-color:var(--accent-color)}.search-dropdown-list li:last-child{border-bottom:none}.search-dropdown-list .business-meta{font-size:.78rem;color:var(--accent-text-color)}.paslijst-card{background:var(--secondary-color);border:1px solid var(--border-color);border-radius:10px;box-shadow:var(--shadow-sm);overflow:hidden;margin-bottom:1rem}.paslijst-card .card-header{background:var(--accent-color);border-bottom:1px solid var(--border-color);padding:.75rem 1.25rem;font-weight:600;display:flex;justify-content:space-between;align-items:center}.paslijst-table{width:100%;margin-bottom:0;font-size:.9rem}.paslijst-table thead th{background:var(--secondary-background-color);border-bottom:2px solid var(--border-color);padding:.6rem .75rem;font-weight:600;font-size:.8rem;text-transform:uppercase;letter-spacing:.03em;color:var(--accent-text-color);white-space:nowrap;position:-webkit-sticky;position:sticky;top:0;z-index:1}.paslijst-table tbody td{padding:.5rem .75rem;vertical-align:middle;border-bottom:1px solid var(--accent-color)}.paslijst-table tbody tr:hover{background-color:rgba(0,123,255,.03)}.paslijst-table tbody tr.manual-item{background-color:#fffbeb}.paslijst-table .col-nr{width:50px;text-align:center}.paslijst-table .col-artikel{min-width:200px}.paslijst-table .col-kleur{width:140px}.paslijst-table .col-maat{width:100px}.paslijst-table .col-aantal{width:90px}.paslijst-table .col-opmerking{min-width:150px}.paslijst-table .col-acties{width:50px;text-align:center}.manual-badge{display:inline-block;background:var(--warning-color);color:#000;font-size:.7rem;font-weight:700;padding:.1rem .4rem;border-radius:3px;margin-left:.4rem;vertical-align:middle}.qty-input{width:70px;text-align:center;font-weight:600}.add-item-bar{display:flex;gap:.5rem;padding:.75rem 1.25rem;border-top:1px solid var(--border-color);background:var(--secondary-background-color)}.product-search-input{font-size:1rem;padding:.75rem 1rem}.product-list{max-height:400px;overflow-y:auto}.product-item{padding:.75rem 1rem;border-bottom:1px solid var(--accent-color);cursor:pointer;transition:background .15s}.product-item:hover{background:var(--accent-color)}.product-item .product-name{font-weight:600}.product-item .product-meta{font-size:.8rem;color:var(--accent-text-color)}.signature-section{background:var(--secondary-color);border:1px solid var(--border-color);border-radius:10px;padding:1.25rem 1.5rem;box-shadow:var(--shadow-sm)}.signature-canvas-wrapper{border:2px dashed var(--border-color);border-radius:8px;background:#fafbfc;position:relative;width:100%;max-width:500px;height:150px}.signature-canvas-wrapper canvas{width:100%;height:100%;border-radius:6px;touch-action:none}.signature-placeholder{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);color:var(--accent-text-color);font-size:.85rem;pointer-events:none;opacity:.6}.notes-section{padding:1.25rem 1.5rem;margin-bottom:1rem}.action-bar,.notes-section{background:var(--secondary-color);border:1px solid var(--border-color);border-radius:10px;box-shadow:var(--shadow-sm)}.action-bar{padding:1rem 1.5rem;margin-bottom:2rem;display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:.75rem}.action-bar .summary{font-size:.9rem;color:var(--accent-text-color)}.action-bar .summary strong{color:var(--text-color);font-size:1.1rem}.btn-primary{background-color:var(--primary-color)!important;border-color:var(--primary-color)!important}.btn-primary:hover{background-color:var(--primary-hover)!important;border-color:var(--primary-hover)!important}.btn-success{background-color:var(--success-color)!important;border-color:var(--success-color)!important}.btn-danger{background-color:var(--error-color)!important;border-color:var(--error-color)!important}.form-control:focus,.form-select:focus{border-color:var(--primary-color);box-shadow:0 0 0 .2rem rgba(0,123,255,.15)}.form-control-sm{font-size:.875rem}.empty-state{text-align:center;padding:3rem 1rem;color:var(--accent-text-color)}.empty-state i{font-size:2.5rem;margin-bottom:1rem;display:block;opacity:.4}@media (max-width:768px){.paslijst-header{padding:1rem}.paslijst-table{font-size:.82rem}.paslijst-table tbody td,.paslijst-table thead th{padding:.4rem .5rem}.action-bar{flex-direction:column;align-items:stretch}.action-bar .btn-group{display:flex;flex-wrap:wrap;gap:.5rem}}@media print{.action-bar .btn,.add-item-bar,.app-navbar,.col-acties,.no-print{display:none!important}.notes-section,.paslijst-card,.paslijst-header,.signature-section{box-shadow:none;border:1px solid #ccc;page-break-inside:avoid;break-inside:avoid}body{font-size:12px}.paslijst-table{font-size:11px}.signature-canvas-wrapper{border-style:solid}}.modal-backdrop.show{opacity:.5}.modal.show .modal-dialog{transform:none}.table-responsive{max-height:60vh;overflow-y:auto}.toast-container{position:fixed;top:1rem;right:1rem;z-index:9999}