:root{--bg: #ffffff;--surface: #f5f5f7;--border: #d2d2d7;--text: #1d1d1f;--text-secondary: #6e6e73;--accent: #0071e3;--accent-hover: #0077ed;--danger: #d32f2f;--success: #2e7d32;--radius: 8px;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif;color:var(--text);background:var(--bg)}@media (prefers-color-scheme: dark){:root{--bg: #000000;--surface: #1c1c1e;--border: #38383a;--text: #f5f5f7;--text-secondary: #8e8e93;--accent: #0a84ff;--accent-hover: #409cff}}*{box-sizing:border-box}body{margin:0;min-height:100vh}button{font:inherit;cursor:pointer;border:none;border-radius:var(--radius);padding:.5rem .875rem;background:var(--accent);color:#fff}button:hover{background:var(--accent-hover)}button.secondary{background:var(--surface);color:var(--text);border:1px solid var(--border)}button.secondary:hover{background:var(--border)}input,select{font:inherit;padding:.5rem;border:1px solid var(--border);border-radius:var(--radius);background:var(--bg);color:var(--text)}.app{max-width:1200px;margin:0 auto;padding:1rem}.app-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:1.5rem;padding-bottom:.75rem;border-bottom:1px solid var(--border)}.app-header h1{font-size:1.25rem;margin:0}.user-bar{display:flex;align-items:center;gap:.75rem;font-size:.875rem;color:var(--text-secondary)}.login-form{max-width:320px;margin:10vh auto;padding:1.5rem;background:var(--surface);border-radius:var(--radius);border:1px solid var(--border)}.login-form h2{margin-top:0;font-size:1.125rem}.login-form label{display:block;margin-bottom:.75rem;font-size:.875rem}.login-form input{width:100%;margin-top:.25rem}.login-form button{width:100%;margin-top:.5rem}.error{color:var(--danger);font-size:.875rem;margin-top:.5rem}.queue-toolbar{display:flex;align-items:center;gap:.75rem;margin-bottom:.75rem;flex-wrap:wrap}.queue-toolbar label{font-size:.875rem;color:var(--text-secondary);display:flex;align-items:center;gap:.35rem}.queue-table{width:100%;border-collapse:collapse;font-size:.875rem}.queue-table th,.queue-table td{text-align:left;padding:.5rem;border-bottom:1px solid var(--border);white-space:nowrap}.queue-table th{color:var(--text-secondary);font-weight:500;cursor:pointer;-webkit-user-select:none;user-select:none}.queue-table tbody tr:hover{background:var(--surface);cursor:pointer}.amount-in{color:var(--success)}.amount-out{color:var(--danger)}.empty-state{padding:2rem;text-align:center;color:var(--text-secondary);background:var(--surface);border-radius:var(--radius);border:1px dashed var(--border)}.drawer-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000059}.drawer{position:fixed;top:0;right:0;width:min(480px,100vw);height:100vh;background:var(--bg);border-left:1px solid var(--border);padding:1rem;overflow-y:auto}.drawer h2{margin-top:0;font-size:1.125rem}.drawer-section{margin-bottom:1.25rem}.drawer-section label{display:block;font-size:.8125rem;color:var(--text-secondary);margin-bottom:.25rem}.drawer-actions{display:flex;gap:.5rem;margin-top:1.5rem}.drop-zone{padding:1rem;text-align:center;color:var(--text-secondary);background:var(--surface);border:2px dashed var(--border);border-radius:var(--radius);cursor:pointer;font-size:.875rem}.drop-zone.dragging{border-color:var(--accent);background:#0071e314}.justificatif-list{list-style:none;padding:0;margin:.75rem 0 0;font-size:.875rem}.justificatif-list li{display:flex;align-items:center;justify-content:space-between;gap:.5rem;padding:.35rem 0;border-bottom:1px solid var(--border)}.justificatif-list li:last-child{border-bottom:none}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);border:0}.drawer-section.suggestion{padding:.75rem;background:var(--surface);border-radius:var(--radius);border:1px solid var(--border)}.suggestion-reason{display:block;font-size:.75rem;color:var(--text-secondary);margin-top:.15rem}.candidate-list{list-style:none;padding:0;margin:.5rem 0 0;font-size:.875rem}.candidate-list li{padding:.35rem 0;border-bottom:1px solid var(--border);display:flex;align-items:center;gap:.5rem}.candidate-list li:last-child{border-bottom:none}.link-button{background:none;color:var(--accent);padding:0;text-decoration:underline}.link-button:hover{color:var(--accent-hover);background:none}.source-badge{font-size:.6875rem;text-transform:uppercase;padding:.1rem .35rem;border-radius:999px;background:var(--border);color:var(--text-secondary)}.cutoff-warning{padding:.75rem;background:#d32f2f14;border:1px solid var(--danger);border-radius:var(--radius);color:var(--danger)}.cutoff-warning .radio-label{display:flex;align-items:center;gap:.35rem;margin-top:.5rem;font-size:.875rem;color:var(--text)}.app-nav{display:flex;align-items:center;gap:.5rem}.app-nav button{font-size:.875rem}.app-nav button.active{background:var(--surface);color:var(--text);border:1px solid var(--border);box-shadow:inset 0 0 0 1px var(--accent)}.reports-toolbar{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-bottom:1rem;flex-wrap:wrap}.report-tabs{display:flex;gap:.5rem}.fiscal-year-filter{display:flex;align-items:center;gap:.5rem;font-size:.875rem;color:var(--text-secondary)}.fiscal-year-filter input{width:7rem}.identity-badge{padding:.75rem;border-radius:var(--radius);font-size:.875rem;margin-bottom:1rem;border:1px solid var(--border);background:var(--surface)}.identity-badge.balanced{border-color:var(--success);color:var(--success);background:#2e7d3214}.identity-badge.unbalanced{border-color:var(--danger);color:var(--danger);background:#d32f2f14}.identity-detail{display:block;font-size:.75rem;color:var(--text-secondary);margin-top:.15rem}.report-section{margin-bottom:1.5rem}.report-section h3{display:flex;align-items:center;justify-content:space-between;font-size:1rem;margin:0 0 .5rem;padding-bottom:.5rem;border-bottom:1px solid var(--border)}.report-total{font-variant-numeric:tabular-nums}.report-table{width:100%;border-collapse:collapse;font-size:.875rem}.report-table th,.report-table td{text-align:left;padding:.5rem;border-bottom:1px solid var(--border)}.report-table th{color:var(--text-secondary);font-weight:500}.report-table .numeric{text-align:right;font-variant-numeric:tabular-nums}.account-zh{color:var(--text-secondary)}.empty-section{font-size:.875rem;color:var(--text-secondary);margin:0}
