:root{--bg: #f4f5f7;--card-bg: #ffffff;--text: #1a1d23;--muted: #6b7280;--border: #e5e7eb;--primary: #2563eb;--primary-dark: #1d4ed8;--danger: #dc2626;--radius: 12px}*{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;background:var(--bg);color:var(--text);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif;-webkit-font-smoothing:antialiased}.app{display:flex;flex-direction:column;min-height:100vh}.topbar{padding:1rem 1.25rem;background:var(--card-bg);border-bottom:1px solid var(--border);position:sticky;top:0;z-index:10}.topbar h1{margin:0;font-size:1.25rem;font-weight:700}.content{flex:1;padding:1rem 1rem 5rem;max-width:640px;width:100%;margin:0 auto}.page{display:flex;flex-direction:column;gap:1rem}.card{background:var(--card-bg);border:1px solid var(--border);border-radius:var(--radius);padding:1.25rem}.card h2{margin-top:0;font-size:1.05rem}.card-header-row{display:flex;align-items:center;justify-content:space-between}.card-header-row h2{margin:0}.uber-check-link{text-align:center}.uber-review-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:1rem}.uber-review-item{border:1px solid var(--border);border-radius:8px;padding:1rem}.uber-summary{margin:0 0 .75rem}.uber-review-fields{display:grid;grid-template-columns:1fr 1fr;gap:0 1rem;margin-bottom:.5rem}.uber-review-fields .field:first-child{grid-column:1 / -1}.field{display:flex;flex-direction:column;gap:.35rem;margin-bottom:1rem;font-size:.85rem;color:var(--muted)}.field input,.field select{font-size:1rem;padding:.65rem .75rem;border-radius:8px;border:1px solid var(--border);background:#fff;color:var(--text)}.field input:focus,.field select:focus{outline:2px solid var(--primary);outline-offset:1px}button,.btn-primary{cursor:pointer;font-size:1rem;font-weight:600;border:none;border-radius:8px;padding:.7rem 1.1rem;background:var(--primary);color:#fff}button:hover,.btn-primary:hover{background:var(--primary-dark)}button:disabled{opacity:.6;cursor:not-allowed}.btn-link{background:none;color:var(--primary);padding:.2rem .4rem;font-weight:500;font-size:.85rem}.btn-link:hover{background:none;text-decoration:underline}.btn-link.danger,button.danger{color:var(--danger);background:none}.danger:hover{background:none;text-decoration:underline}.muted{color:var(--muted);font-size:.9rem}.error{color:var(--danger);font-size:.9rem}.expense-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.6rem}.expense-list li{display:flex;justify-content:space-between;align-items:center;padding:.6rem 0;border-bottom:1px solid var(--border);gap:.5rem}.form-actions{display:flex;align-items:center;gap:1rem}.expense-label{font-size:.8rem;font-weight:600;color:var(--text);margin-bottom:.15rem}.tag{display:inline-block;margin-left:.5rem;font-size:.75rem;color:var(--muted)}.table-wrap{overflow-x:auto}table{width:100%;border-collapse:collapse;font-size:.9rem}th,td{text-align:left;padding:.6rem .5rem;border-bottom:1px solid var(--border);white-space:nowrap}.actions{display:flex;gap:.75rem;align-items:center;flex-wrap:wrap}.actions a{color:var(--primary);font-size:.85rem;text-decoration:none;font-weight:500}.status{display:inline-block;padding:.15rem .55rem;border-radius:999px;font-size:.75rem;font-weight:600}.status-in_progress{background:#dbeafe;color:#1d4ed8}.status-closed{background:#fef3c7;color:#92400e}.status-paid{background:#d1fae5;color:#065f46}.back-link{display:inline-block;margin-bottom:.75rem;color:var(--primary);text-decoration:none;font-size:.9rem}.bottomnav{position:sticky;bottom:0;display:flex;background:var(--card-bg);border-top:1px solid var(--border);padding:.5rem 0 calc(.5rem + env(safe-area-inset-bottom))}.bottomnav a{flex:1;text-align:center;padding:.5rem;color:var(--muted);text-decoration:none;font-size:.85rem;font-weight:600;border-radius:8px}.bottomnav a.active{color:var(--primary);background:#eff6ff}.document-actions{display:flex;gap:.6rem;flex-wrap:wrap}.btn-secondary{background:#eef2ff;color:var(--primary);font-size:.9rem;padding:.6rem .9rem}.btn-secondary:hover{background:#e0e7ff}.file-label{position:relative;overflow:hidden;display:inline-flex;align-items:center;cursor:pointer}.file-label input[type=file]{position:absolute;top:0;right:0;bottom:0;left:0;opacity:0;cursor:pointer}.file-preview{margin-top:.6rem;display:flex;align-items:center;gap:.6rem;font-size:.85rem;color:var(--muted);flex-wrap:wrap}.attachment-preview-link{flex-shrink:0;line-height:0}.attachment-preview{width:64px;height:64px;object-fit:cover;border-radius:8px;border:1px solid var(--border);background:#fff}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0f172a99;display:flex;align-items:flex-end;justify-content:center;z-index:100}.modal-content{background:var(--card-bg);width:100%;max-width:640px;max-height:92vh;overflow-y:auto;border-radius:var(--radius) var(--radius) 0 0;padding:1rem;display:flex;flex-direction:column;gap:.75rem}@media (min-width: 700px){.modal-overlay{align-items:center}.modal-content{border-radius:var(--radius);max-height:88vh}}.modal-header{display:flex;justify-content:space-between;align-items:center}.modal-header h2{margin:0;font-size:1.05rem}.scanner-camera,.scanner-adjust{display:flex;flex-direction:column;gap:.75rem}.scanner-video{width:100%;max-height:60vh;background:#000;border-radius:8px}.scanner-controls{display:flex;justify-content:space-between;align-items:center;gap:.75rem}.shutter{font-size:1.4rem;line-height:1;padding:.6rem 1.2rem}.scanner-fallback{display:flex;flex-direction:column;gap:.6rem}.scanner-loading{padding:3rem 0;text-align:center}.scanner-adjust-frame{position:relative;width:100%;line-height:0}.scanner-adjust-frame img{width:100%;height:auto;border-radius:8px;display:block}.scanner-adjust-frame svg{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;touch-action:none}.scanner-polygon{fill:#2563eb33;stroke:#2563eb;stroke-width:3}.scanner-handle{fill:#2563eb;stroke:#fff;stroke-width:3;cursor:grab}
