:root{--bg-app: #F0EAE0;--bg-card: #FDFAF5;--bg-hover: #EBE4D8;--text-primary: #1A1714;--text-secondary: #786E64;--text-tertiary: #A89D93;--border-color: #D4C9BC;--border-light: #E8E0D4;--gold: #A67C3C;--gold-light: #F2E8D0;--gold-dark: #7A5A2A;--success: #166534;--success-bg: #DCFCE7;--danger: #7C2020;--danger-bg: #FEE2E2;--warning: #7A5A2A;--warning-bg: #F2E8D0;--primary: #A67C3C;--primary-dark: #7A5A2A;--primary-bg: #F2E8D0;--neutral-bg: #EBE4D8;--axe-projet: #2A6B63;--axe-projet-bg: #DCEAE8;--axe-centre-cout: #7A4A6B;--axe-centre-cout-bg: #EDE0E8;--axe-departement: #3D4A6B;--axe-departement-bg: #E0E4ED;--sidebar-bg: #0E0E12;--sidebar-text: #D8D8E8;--sidebar-text-muted: #A8A8BC;--sidebar-icon-opacity: .85;--sidebar-hover: rgba(255, 255, 255, .05);--sidebar-active-bg: rgba(166, 124, 60, .12);--sidebar-active-text: #D4AA6A;--sidebar-border: rgba(255, 255, 255, .06);--font-display: "Cormorant Garamond", Georgia, serif;--font-ui: "DM Sans", system-ui, sans-serif;--font-mono: "JetBrains Mono", "Fira Code", monospace}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html,body{height:100%}body{font-family:var(--font-ui);font-size:14px;background-color:var(--bg-app);color:var(--text-primary);line-height:1.55;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}img,svg,canvas,video{max-width:100%}h1{font-family:var(--font-display);font-size:26px;font-weight:500;letter-spacing:-.01em;line-height:1.2;color:var(--text-primary)}h2{font-family:var(--font-display);font-size:18px;font-weight:500;line-height:1.25;color:var(--text-primary);letter-spacing:-.01em}h3{font-family:var(--font-ui);font-size:13px;font-weight:600;color:var(--text-primary);text-transform:uppercase;letter-spacing:.08em}p{font-size:13.5px;color:var(--text-secondary);line-height:1.6}a{color:inherit;text-decoration:none}input[type=number]{appearance:textfield}input[type=number]::-webkit-inner-spin-button,input[type=number]::-webkit-outer-spin-button{display:none}.btn{display:inline-flex;align-items:center;justify-content:center;gap:7px;padding:8px 16px;font-family:var(--font-ui);font-size:13px;font-weight:500;border-radius:4px;cursor:pointer;transition:all .18s ease;border:1px solid transparent;text-decoration:none;letter-spacing:.01em;white-space:nowrap}.btn-primary{background:var(--text-primary);color:#fdfaf5;border-color:var(--text-primary)}.btn-primary:hover{background:var(--gold-dark);border-color:var(--gold-dark)}.btn-secondary{background:transparent;border-color:var(--border-color);color:var(--text-primary)}.btn-secondary:hover{background:var(--bg-hover);border-color:var(--text-secondary)}.btn-danger{background:transparent;border-color:var(--danger);color:var(--danger)}.btn-danger:hover{background:var(--danger-bg)}.btn-success{background:var(--success);color:#fff;border-color:var(--success)}.btn-success:hover{filter:brightness(.9)}.btn-sm{padding:5px 10px;font-size:12px}.btn:disabled{opacity:.4;cursor:not-allowed;pointer-events:none}.card{background:var(--bg-card);border:1px solid var(--border-color);border-radius:6px;padding:24px;min-width:0}.form-group{display:flex;flex-direction:column;gap:5px;margin-bottom:14px}.form-group label{font-size:12px;font-weight:500;color:var(--text-secondary);letter-spacing:.04em;text-transform:uppercase}.form-control{width:100%;padding:9px 12px;font-family:var(--font-ui);font-size:13.5px;color:var(--text-primary);background:var(--bg-card);border:1px solid var(--border-color);border-radius:4px;outline:none;transition:border-color .15s,box-shadow .15s;appearance:none}.form-control:focus{border-color:var(--gold);box-shadow:0 0 0 3px #a67c3c1f}.form-control::placeholder{color:var(--text-tertiary)}select.form-control{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%23786E64' stroke-width='2'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 10px center;padding-right:28px;cursor:pointer}.alert{padding:10px 14px;border-radius:4px;font-size:13px;margin-bottom:12px;border-left:3px solid}.alert-danger{background:var(--danger-bg);color:var(--danger);border-left-color:var(--danger)}.alert-success{background:var(--success-bg);color:var(--success);border-left-color:var(--success)}.table{width:100%;border-collapse:collapse;font-size:13.5px}.table th{padding:10px 16px;font-size:10.5px;font-weight:600;text-transform:uppercase;letter-spacing:.07em;color:var(--text-tertiary);text-align:left;border-bottom:1px solid var(--border-color);background:var(--bg-app);white-space:nowrap}.table td{padding:11px 16px;border-bottom:1px solid var(--border-light);color:var(--text-primary);vertical-align:middle}.table tbody tr:last-child td{border-bottom:none}.table tbody tr:hover td{background:var(--bg-hover)}.text-right{text-align:right!important}.text-secondary{color:var(--text-secondary)!important}.badge{display:inline-flex;align-items:center;padding:2px 8px;border-radius:3px;font-size:11px;font-weight:500;letter-spacing:.02em}.badge--success{background:var(--success-bg);color:var(--success)}.badge--danger{background:var(--danger-bg);color:var(--danger)}.badge--warning{background:var(--warning-bg);color:var(--warning)}.badge--gold{background:var(--gold-light);color:var(--gold-dark)}.badge--neutral{background:var(--neutral-bg);color:var(--text-secondary)}.badge--primary{background:var(--primary-bg);color:var(--gold-dark)}.badge--axe-projet{background:var(--axe-projet-bg);color:var(--axe-projet)}.badge--axe-centre-cout{background:var(--axe-centre-cout-bg);color:var(--axe-centre-cout)}.badge--axe-departement{background:var(--axe-departement-bg);color:var(--axe-departement)}.mono{font-family:var(--font-mono);font-size:12px;color:var(--text-secondary);letter-spacing:-.01em}code.mono{background:var(--neutral-bg);padding:1px 6px;border-radius:3px}.table-wrapper{overflow-x:auto;-webkit-overflow-scrolling:touch}.data-table{width:100%;border-collapse:collapse}.data-table thead tr{background:var(--bg-app)}.data-table th{padding:7px 14px;font-size:10.5px;font-weight:600;text-transform:uppercase;letter-spacing:.08em;color:var(--text-tertiary);text-align:left;border-bottom:1px solid var(--border-color);white-space:nowrap}.data-table td{padding:6px 14px;font-size:13px;line-height:1.3;border-bottom:1px solid var(--border-light);color:var(--text-primary);vertical-align:middle}.data-table tbody tr:last-child td{border-bottom:none}.data-table tbody tr:hover td{background:var(--bg-hover)}.data-table--compact th{padding:4px 10px}.data-table--compact td{padding:4px 10px;font-size:12.5px}.empty-row{text-align:center;padding:24px;color:var(--text-tertiary);font-size:13px}.pagination{display:flex;align-items:center;justify-content:center;gap:12px;padding:14px 0;font-size:13px;color:var(--text-secondary);flex-wrap:wrap}.loading{text-align:center;padding:40px;color:var(--text-secondary);font-size:13px}.mb-4{margin-bottom:20px}.mt-2{margin-top:8px}.page{display:flex;flex-direction:column;gap:24px;min-height:100%;min-width:0}.page-header{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;min-width:0}.page-header h1{margin:0}.page-subtitle{margin-top:4px;font-size:13px;color:var(--text-secondary)}.section-label{font-size:10.5px;font-weight:600;text-transform:uppercase;letter-spacing:.1em;color:var(--text-tertiary);display:flex;align-items:center;gap:12px}.section-label:after{content:"";flex:1;height:1px;background:var(--border-light)}.amount-debit{font-family:var(--font-ui);font-variant-numeric:tabular-nums;font-size:14px;font-weight:500;color:var(--danger)}.amount-credit{font-family:var(--font-ui);font-variant-numeric:tabular-nums;font-size:14px;font-weight:500;color:var(--success)}.filters-bar{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.filters-bar>*{min-width:180px}.empty-state{text-align:center;padding:48px 24px;color:var(--text-secondary);font-size:13px}[data-theme=dark]{--bg-app: #0F0F14;--bg-card: #161620;--bg-hover: #1E1E2A;--text-primary: #E6E0D8;--text-secondary: #9088A0;--text-tertiary: #5E5870;--border-color: #2A2838;--border-light: #1E1E2A;--gold-light: rgba(166, 124, 60, .18);--neutral-bg: #1E1E2A;--primary-bg: rgba(166, 124, 60, .18);--success: #4ADE80;--success-bg: rgba(74, 222, 128, .12);--danger: #F87171;--danger-bg: rgba(248, 113, 113, .12);--warning: #D4AA6A;--warning-bg: rgba(166, 124, 60, .18);--primary: #D4AA6A;--primary-dark: #A67C3C;--axe-projet: #6ED4C4;--axe-projet-bg: rgba(110, 212, 196, .14);--axe-centre-cout: #D9A0C7;--axe-centre-cout-bg: rgba(217, 160, 199, .14);--axe-departement: #8FA3D9;--axe-departement-bg: rgba(143, 163, 217, .14)}[data-theme=dark] body{background-color:var(--bg-app);color:var(--text-primary)}[data-theme=dark] .btn-primary{background:var(--gold);color:#0f0f14;border-color:var(--gold)}[data-theme=dark] .btn-primary:hover{background:var(--gold-dark);border-color:var(--gold-dark);color:#0f0f14}[data-theme=dark] select.form-control{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%239088A0' stroke-width='2'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E")}[data-theme=dark] .table th{background:var(--bg-app)}@media(max-width:760px){body{font-size:13.5px}h1{font-size:23px}h2{font-size:17px}.page{gap:18px}.page-header{flex-direction:column;align-items:stretch;gap:12px}.page-header .btn,.page-header button,.filters-bar>*,.btn-primary,.btn-secondary{width:100%}.card{padding:16px}.table{min-width:680px}.table th,.table td{padding:9px 12px}.pagination{align-items:stretch}.pagination .btn,.pagination button{flex:1 1 140px}}[data-tooltip]{position:relative;cursor:default}[data-tooltip]:before,[data-tooltip]:after{position:absolute;pointer-events:none;opacity:0;visibility:hidden;transition:opacity .2s ease,visibility .2s ease,transform .2s ease;z-index:9999;left:50%;transform:translate(-50%) translateY(5px)}[data-tooltip]:before{content:attr(data-tooltip);bottom:100%;margin-bottom:8px;padding:6px 10px;background-color:#1f2937;color:#f9fafb;font-size:.75rem;font-weight:500;border-radius:6px;white-space:normal;width:max-content;max-width:250px;text-align:center;box-shadow:0 4px 6px -1px #0000001a,0 2px 4px -1px #0000000f;line-height:1.4}[data-tooltip]:after{content:"";bottom:100%;margin-bottom:3px;border-width:5px;border-style:solid;border-color:#1f2937 transparent transparent transparent}[data-tooltip]:hover:before,[data-tooltip]:hover:after{opacity:1;visibility:visible;transform:translate(-50%) translateY(0)}
