:root{--green-dark:#065f46;--green:#059669;--green-light:#10b981;--green-bg:#ecfdf5;--amber:#f59e0b;--amber-bg:#fffbeb;--red:#dc2626;--blue:#2563eb;--text:#1f2937;--text-light:#6b7280;--text-muted:#9ca3af;--bg:#f9fafb;--white:#fff;--border:#e5e7eb;--border-light:#f3f4f6;--shadow:0 2px 8px #00000014;--shadow-md:0 4px 16px #0000001f;--radius:8px;--radius-lg:12px;color:var(--text);background:var(--bg);font:16px/1.5 -apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif}*{box-sizing:border-box;margin:0;padding:0}body{margin:0}button{cursor:pointer;font:inherit;border-radius:var(--radius);border:none;padding:8px 16px;transition:all .2s}input,select,textarea{font:inherit;border:1px solid var(--border);border-radius:var(--radius);background:var(--white);color:var(--text);outline:none;padding:8px 12px;transition:border-color .2s}input:focus,select:focus,textarea:focus{border-color:var(--green);box-shadow:0 0 0 3px #0596691a}a{color:var(--green);text-decoration:none}a:hover{text-decoration:underline}.btn-primary{background:var(--green);color:#fff;font-weight:600}.btn-primary:hover{background:var(--green-dark)}.btn-primary:disabled{opacity:.6;cursor:not-allowed}.btn-secondary{background:var(--border-light);color:var(--text);border:1px solid var(--border)}.btn-secondary:hover{background:var(--border)}.btn-danger{background:var(--red);color:#fff}.btn-danger:hover{background:#b91c1c}.btn-sm{padding:4px 10px;font-size:.85rem}.card{background:var(--white);border-radius:var(--radius-lg);box-shadow:var(--shadow);padding:1.25rem}.form-group{margin-bottom:1rem}.form-label{color:var(--text);margin-bottom:.35rem;font-size:.875rem;font-weight:600;display:block}.app{flex-direction:column;min-height:100vh;display:flex}.navbar{background:var(--green-dark);color:#fff;z-index:100;justify-content:space-between;align-items:center;height:56px;padding:0 1rem;display:flex;position:sticky;top:0;box-shadow:0 2px 8px #0003}.nav-brand{letter-spacing:.02em;font-size:1.2rem;font-weight:700}.nav-links{align-items:center;gap:.25rem;display:flex}.nav-links a{color:#ffffffbf;border-radius:6px;padding:.35rem .65rem;font-size:.9rem;text-decoration:none;transition:all .15s}.nav-links a:hover,.nav-links a.active{color:#fff;background:#ffffff26}.nav-logout{color:#ffffffbf!important;cursor:pointer!important;background:0 0!important;border:1px solid #ffffff59!important;border-radius:6px!important;margin-left:.25rem!important;padding:.3rem .7rem!important;font-size:.85rem!important}.nav-logout:hover{color:#fff!important;border-color:#ffffffb3!important}.main-content{flex:1;width:100%;max-width:900px;margin:0 auto;padding:1.5rem 1rem}.page-header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;margin-bottom:1.5rem;display:flex}.page-title{color:var(--green-dark);font-size:1.4rem;font-weight:700}.bottom-nav{display:none}@media (width<=700px){.nav-links{display:none}.navbar{justify-content:center}.main-content{padding:1rem .75rem 5rem}.bottom-nav{background:var(--green-dark);z-index:200;border-top:1px solid #ffffff26;height:60px;display:flex;position:fixed;bottom:0;left:0;right:0;box-shadow:0 -2px 12px #00000040}.bottom-nav-item{color:#fff9;-webkit-tap-highlight-color:transparent;flex-direction:column;flex:1;justify-content:center;align-items:center;gap:2px;padding:.3rem 0;font-size:.62rem;text-decoration:none;transition:color .15s;display:flex}.bottom-nav-item.active{color:#6ee7b7}.bottom-nav-icon{font-size:1.35rem;line-height:1}.bottom-nav-label{font-size:.6rem}}.upload-area{border:2px dashed var(--border);border-radius:var(--radius-lg);text-align:center;background:var(--white);padding:3rem 1.5rem;transition:all .2s}.upload-area.drag-over{border-color:var(--green);background:var(--green-bg)}.upload-area.uploading{border-color:var(--green-light);background:var(--green-bg)}.upload-icon{margin-bottom:.75rem;font-size:3rem}.upload-text{color:var(--text);margin-bottom:1.25rem;font-size:1rem}.upload-buttons{flex-wrap:wrap;justify-content:center;gap:.75rem;display:flex}.upload-buttons button{padding:.6rem 1.5rem;font-size:1rem}.upload-hint{color:var(--text-muted);margin-top:.75rem;font-size:.8rem}.upload-spinner{flex-direction:column;align-items:center;gap:1rem;display:flex}.upload-spinner p{color:var(--green-dark);font-weight:600}.spinner{border:4px solid var(--border);border-top-color:var(--green);border-radius:50%;width:40px;height:40px;animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.receipt-header{flex-wrap:wrap;gap:1rem;margin-bottom:1rem;display:flex}.receipt-field{flex:1;min-width:140px}.receipt-field label{color:var(--text-light);margin-bottom:.25rem;font-size:.8rem;font-weight:600;display:block}.receipt-field input{width:100%;font-size:.9rem}.totaal-warning{color:#92400e;border-radius:var(--radius);background:#fef3c7;border:1px solid #fbbf24;margin-bottom:.75rem;padding:.5rem .75rem;font-size:.85rem}.table-wrap{border-radius:var(--radius-lg);box-shadow:var(--shadow);overflow-x:auto}table{border-collapse:collapse;background:var(--white);width:100%;font-size:.85rem}th{background:var(--green-dark);color:#fff;text-align:left;text-transform:uppercase;letter-spacing:.03em;white-space:nowrap;padding:.6rem .75rem;font-size:.75rem;font-weight:600}th:first-child{border-radius:var(--radius-lg) 0 0 0}th:last-child{border-radius:0 var(--radius-lg) 0 0}td{border-bottom:1px solid var(--border-light);vertical-align:middle;padding:.4rem .5rem}tr:last-child td{border-bottom:none}.num{text-align:right}.cell-input{background:0 0;border:1px solid #0000;border-radius:4px;width:100%;padding:.3rem .4rem;font-size:.85rem}.cell-input:focus{border-color:var(--green);background:#fff}.cell-input.wide{min-width:180px}.num-input{text-align:right;width:70px}.btn-delete{color:var(--text-muted);cursor:pointer;background:0 0;border:none;border-radius:4px;padding:.2rem .4rem;font-size:1.2rem}.btn-delete:hover{color:var(--red);background:#fef2f2}.save-bar{border-top:1px solid var(--border);justify-content:flex-end;gap:.75rem;margin-top:1.5rem;padding-top:1rem;display:flex}.success-message{background:var(--green-bg);color:var(--green-dark);border-radius:var(--radius-lg);border:1px solid #a7f3d0;flex-wrap:wrap;align-items:center;gap:.5rem;margin-bottom:1.5rem;padding:1rem;display:flex}.error-message{color:#991b1b;border-radius:var(--radius);background:#fef2f2;border:1px solid #fecaca;margin-bottom:1rem;padding:.75rem 1rem;font-size:.9rem}.filter-bar{flex-wrap:wrap;align-items:flex-end;gap:.75rem;margin-bottom:1rem;display:flex}.filter-bar input{padding:6px 10px;font-size:.875rem}.receipt-list{flex-direction:column;gap:.5rem;display:flex}.receipt-card{background:var(--white);border-radius:var(--radius-lg);box-shadow:var(--shadow);overflow:hidden}.receipt-card-header{cursor:pointer;align-items:center;gap:1rem;padding:.75rem 1rem;transition:background .15s;display:flex}.receipt-card-header:hover{background:var(--green-bg)}.receipt-card-info{flex-direction:column;flex:1;display:flex}.receipt-date{color:var(--text);font-size:.9rem;font-weight:600}.receipt-store{color:var(--text-light);font-size:.8rem}.receipt-card-meta{text-align:right}.receipt-amount{color:var(--green-dark);font-size:1rem;font-weight:700;display:block}.receipt-count{color:var(--text-muted);font-size:.75rem}.receipt-chevron{color:var(--text-muted);font-size:.7rem}.receipt-detail{border-top:1px solid var(--border-light);padding:.75rem}.receipt-detail table{font-size:.82rem}.receipt-detail th{padding:.4rem .6rem;font-size:.7rem}.receipt-detail td{padding:.35rem .6rem}.receipt-actions{justify-content:flex-end;margin-top:.75rem;display:flex}.badge{background:var(--green-bg);color:var(--green-dark);border-radius:99px;padding:1px 6px;font-size:.7rem;font-weight:600;display:inline-block}.export-stats{grid-template-columns:repeat(3,1fr);gap:1rem;display:grid}.stat-card{background:var(--white);border-radius:var(--radius-lg);box-shadow:var(--shadow);padding:1rem 1.25rem}.stat-label{color:var(--text-light);text-transform:uppercase;letter-spacing:.04em;margin-bottom:.25rem;font-size:.8rem}.stat-value{color:var(--green-dark);font-size:1.5rem;font-weight:700}.empty-state{text-align:center;color:var(--text-muted);padding:3rem 1rem}@media (width<=600px){.export-stats{grid-template-columns:1fr}.receipt-header{flex-direction:column}.num-input{width:55px}.cell-input.wide{min-width:120px}table{font-size:.78rem}td,th{padding:.35rem .4rem}}
