:root{--c2m-anthracite: #34343a;--c2m-ink: #20242b;--c2m-muted: #6b7079;--c2m-red: #e63b22;--c2m-orange: #ff5a2e;--c2m-red-dark: #b72b1b;--c2m-bg: #f5f5f4;--c2m-surface: #ffffff;--c2m-surface-soft: #f0f1f3;--c2m-border: #d8dadd;--c2m-danger: #a51d1d;--c2m-danger-bg: #fde7e3;--c2m-success: #3f5d35;--c2m-success-bg: #e9f1e5;--c2m-warning: #8a4d10;--c2m-warning-bg: #fff0d6;--c2m-info: #4c5664;--c2m-info-bg: #e7eaee;color:var(--c2m-ink);background:var(--c2m-bg);font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}*{box-sizing:border-box}body{margin:0}button,input,select{font:inherit}button{min-height:40px;border:0;border-radius:7px;padding:0 16px;color:#fff;background:linear-gradient(135deg,var(--c2m-red),var(--c2m-orange));cursor:pointer;font-weight:700;box-shadow:0 8px 18px #e63b2224;transition:background .18s ease,box-shadow .18s ease,transform .18s ease}button:hover:not(:disabled){box-shadow:0 10px 22px #e63b2233;transform:translateY(-1px)}button:disabled{cursor:not-allowed;opacity:.45}button.secondary{color:var(--c2m-red-dark);background:#fff0ec;box-shadow:none}button.ghost{color:var(--c2m-anthracite);background:var(--c2m-surface);border:1px solid var(--c2m-border);box-shadow:none}button.danger{color:var(--c2m-danger);background:var(--c2m-danger-bg);box-shadow:none}button.compact{min-height:32px;padding:0 10px}input,select{min-height:40px;width:100%;border:1px solid var(--c2m-border);border-radius:7px;padding:8px 10px;background:var(--c2m-surface);color:var(--c2m-ink)}input:focus,select:focus{border-color:var(--c2m-red);box-shadow:0 0 0 3px #e63b2221;outline:none}input:disabled,select:disabled{background:var(--c2m-surface-soft);color:#9ba0a8;cursor:not-allowed}label{display:grid;gap:6px;color:var(--c2m-muted);font-size:13px;font-weight:700}.center{display:grid;min-height:100vh;place-items:center}.login-page{display:grid;min-height:100vh;place-items:center;padding:24px;background:radial-gradient(circle at 82% 15%,rgba(230,59,34,.16),transparent 28%),linear-gradient(135deg,#ffffff 0%,var(--c2m-bg) 52%,#ececef 100%)}.login-panel{width:min(420px,100%);border:1px solid var(--c2m-border);border-radius:8px;padding:32px;background:#fffffff5;box-shadow:0 18px 60px #34343a29}.login-panel h1{margin:4px 0 8px;font-size:38px;letter-spacing:0}.login-mark{width:48px;height:48px;object-fit:contain;margin-bottom:14px}.login-subtitle{margin:0 0 24px;color:var(--c2m-muted);line-height:1.5}.seneca-quote{margin:20px 0 0;padding-top:16px;border-top:1px solid var(--c2m-border);color:var(--c2m-muted);font-size:12px;line-height:1.5}.eyebrow{margin:0;color:var(--c2m-red);font-size:13px;font-weight:800;text-transform:uppercase}.stack{display:grid;gap:16px}.error,.success{margin:0;border-radius:7px;padding:10px 12px}.error{color:var(--c2m-danger);background:var(--c2m-danger-bg)}.success{color:var(--c2m-success);background:var(--c2m-success-bg)}.app-shell{min-height:100vh}.topbar{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:16px clamp(16px,4vw,40px);background:var(--c2m-surface);border-bottom:1px solid var(--c2m-border);box-shadow:0 6px 20px #34343a0d}.brand-lockup{display:flex;align-items:center;gap:12px}.brand-lockup img{width:36px;height:36px;object-fit:contain}.topbar strong{display:block;font-size:22px}.topbar span{color:var(--c2m-muted)}.session{display:flex;align-items:center;gap:12px}.dashboard,.consultant-layout{display:grid;gap:18px;padding:24px clamp(16px,4vw,40px)}.dashboard{grid-template-columns:minmax(260px,.75fr) minmax(360px,1.2fr) minmax(320px,1fr);align-items:start}.admin-layout{grid-template-columns:minmax(260px,.7fr) minmax(420px,1.3fr)}.wide-panel{grid-column:1 / -1}.panel{border:1px solid var(--c2m-border);border-radius:8px;padding:18px;background:var(--c2m-surface);box-shadow:0 10px 30px #34343a0d}.panel h2{margin:0 0 16px;font-size:20px}.section-heading,.actions,.rebill-row,.meta-strip{display:flex;align-items:center;gap:12px}.section-heading{justify-content:space-between;margin-bottom:16px}.inline-form{display:flex;gap:8px}.grid-form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-bottom:16px}.grid-form.wide{grid-template-columns:repeat(4,minmax(0,1fr))}.grid-form button{align-self:end;order:20}.simple-list{margin:16px 0 0;padding-left:18px}.table-check{display:inline-flex;align-items:center;justify-content:center}.table-check input{width:18px;min-height:18px}.client-multi-select{display:grid;gap:6px;min-width:220px}.client-checkbox-list{display:grid;gap:6px;max-height:180px;overflow:auto;border:1px solid var(--c2m-border);border-radius:7px;padding:8px;background:var(--c2m-surface)}.client-checkbox-option{display:grid;grid-template-columns:18px minmax(0,1fr);align-items:center;gap:8px;color:var(--c2m-ink);font-size:13px;font-weight:600}.client-checkbox-option input{width:18px;min-height:18px;margin:0}.validation-panel{display:grid;gap:12px;margin-bottom:18px;border-top:1px solid var(--c2m-border);padding-top:16px}.validation-panel h3{margin:0}.rebilling-preview,.excluded-lines{display:grid;gap:10px}.rebilling-preview h3,.excluded-lines h4{margin:0}.expense-detail-modal{padding:18px}.expense-detail-layout{display:grid;grid-template-columns:minmax(280px,.65fr) minmax(420px,1.35fr);gap:16px;padding-top:16px}.expense-detail-facts{display:grid;align-content:start;gap:8px}.expense-detail-facts p{display:grid;gap:3px;margin:0;border-bottom:1px solid var(--c2m-border);padding-bottom:8px}.expense-detail-facts strong{color:var(--c2m-muted);font-size:12px;text-transform:uppercase}.table-wrap{width:100%;overflow-x:auto}table{width:100%;border-collapse:collapse;font-size:14px}th,td{border-bottom:1px solid #ececef;padding:10px 8px;text-align:left;vertical-align:middle;white-space:nowrap}th{color:var(--c2m-muted);font-size:12px;text-transform:uppercase}tbody tr{cursor:pointer}tbody tr:hover{background:#faf7f6}.upload-button{display:inline-flex;min-height:40px;align-items:center;border-radius:7px;padding:0 16px;color:#fff;background:linear-gradient(135deg,var(--c2m-red),var(--c2m-orange));cursor:pointer}.upload-button input{display:none}.empty-state{display:grid;min-height:220px;place-items:center;border:1px dashed var(--c2m-border);border-radius:8px;color:var(--c2m-muted);background:#fafafa}.upload-dropzone{display:grid;min-height:260px;place-items:center;align-content:center;gap:10px;border:1px dashed var(--c2m-red);border-radius:8px;padding:24px;text-align:center;color:var(--c2m-ink);background:#fff8f6;cursor:pointer}.upload-dropzone strong{font-size:20px}.upload-dropzone span{color:var(--c2m-muted)}.upload-dropzone input{display:none}.upload-dropzone:hover{background:#fff4f0}.expense-workspace{display:grid;grid-template-columns:minmax(360px,.82fr) minmax(50%,1.18fr);gap:16px;align-items:start}.expense-form{display:grid;gap:16px}.expense-fields{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.expense-fields label:nth-child(4),.expense-fields label:nth-child(5){grid-column:span 1}.meta-strip{justify-content:space-between;border-radius:8px;padding:10px 12px;background:var(--c2m-surface-soft);color:var(--c2m-muted);font-size:14px}.rebill-row{justify-content:space-between;align-items:center}.client-select{width:min(360px,100%);border-radius:8px;padding:8px;transition:background .18s ease,box-shadow .18s ease}.client-select.active{background:#fff4f0;box-shadow:inset 3px 0 0 var(--c2m-red)}.invoice-number{width:min(260px,100%)}.date-field{position:relative}.date-input-wrap{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:6px;align-items:center}.date-input-wrap.invalid input{border-color:var(--c2m-danger)}.calendar-button{min-height:40px;border:1px solid var(--c2m-border);border-radius:7px;padding:0 10px;background:var(--c2m-surface-soft);color:var(--c2m-ink)}.calendar-popover{position:absolute;z-index:10;top:calc(100% + 6px);left:0;width:280px;border:1px solid var(--c2m-border);border-radius:8px;padding:10px;background:var(--c2m-surface);box-shadow:0 16px 36px #1118272e}.calendar-header{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:8px}.calendar-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:4px}.calendar-grid button,.calendar-grid span{display:grid;min-height:32px;place-items:center;border-radius:6px}.calendar-grid button{border:1px solid transparent;background:var(--c2m-surface-soft);color:var(--c2m-ink)}.calendar-grid button:hover,.calendar-grid button.selected{border-color:var(--c2m-red);background:#fff4f0}.calendar-day-label{color:var(--c2m-muted);font-size:12px;font-weight:700}.row-actions{display:flex;gap:8px}.receipt-preview{display:grid;grid-template-rows:auto minmax(620px,calc(100vh - 270px));min-height:680px;border:1px solid var(--c2m-border);border-radius:8px;background:#fafafa;overflow:hidden}.empty-preview{place-items:center;color:var(--c2m-muted)}.preview-header{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:10px 12px;border-bottom:1px solid var(--c2m-border);background:var(--c2m-surface)}.preview-controls{display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-end;gap:6px}.preview-controls span{min-width:48px;text-align:center;color:var(--c2m-muted);font-size:13px}.preview-header strong{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.preview-viewport{overflow:auto;min-height:620px;background:#fff;cursor:grab}.preview-viewport.panning{cursor:grabbing}.preview-content{display:block;width:100%;height:100%;min-height:620px;border:0;object-fit:contain;background:#fff;transform-origin:0 0;-webkit-user-select:none;user-select:none}.switch-line{display:flex;grid-template-columns:none;align-items:center;gap:12px;color:var(--c2m-ink);font-size:15px}.switch-line input{position:relative;width:54px;height:30px;min-height:30px;appearance:none;border:0;border-radius:999px;background:#c9ccd1;cursor:pointer;transition:background .2s ease}.switch-line input:after{position:absolute;top:4px;left:4px;width:22px;height:22px;border-radius:999px;background:#fff;box-shadow:0 2px 6px #0f172a38;content:"";transition:transform .2s ease}.switch-line input:checked{background:var(--c2m-red)}.switch-line input:checked:after{transform:translate(24px)}.status{display:inline-flex;border-radius:999px;padding:4px 9px;font-size:12px;font-weight:800}.status.brouillon{color:var(--c2m-warning);background:var(--c2m-warning-bg)}.status.soumise{color:var(--c2m-info);background:var(--c2m-info-bg)}.status.traitee,.status.remboursee,.status.refacturee{color:var(--c2m-success);background:var(--c2m-success-bg)}.status.a_refacturer{color:var(--c2m-red-dark);background:#fff0ec}.status.rejetee{color:var(--c2m-danger);background:var(--c2m-danger-bg)}.status.generated,.status.validated,.status.paid{color:var(--c2m-success);background:var(--c2m-success-bg)}.status.cancelled{color:var(--c2m-danger);background:var(--c2m-danger-bg)}.status.draft{color:var(--c2m-muted);background:var(--c2m-surface-soft)}.accounting-workflows h3,.generated-invoice h3{margin:0 0 12px;color:var(--c2m-anthracite)}.history-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin-bottom:18px}.accounting-choice-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.accounting-state-grid{display:grid;grid-template-columns:1fr;gap:18px}.choice-card{display:grid;gap:8px;min-height:140px;align-content:center;text-align:left;border:1px solid var(--c2m-border);border-radius:8px;padding:18px;background:var(--c2m-surface);color:var(--c2m-ink)}.choice-card strong{font-size:22px}.choice-card span{color:var(--c2m-muted)}.choice-card:hover{border-color:var(--c2m-red);background:#fff8f6}.title-row{display:flex;flex-wrap:wrap;align-items:center;gap:12px}.title-row h2{margin:0}.history-panel{display:grid;align-content:start;gap:12px}.history-group{display:grid;gap:10px;border:1px solid var(--c2m-border);border-radius:8px;padding:12px;background:#fff}.history-group h4{margin:0;color:var(--c2m-ink)}.operation-card{display:grid;gap:10px;border-top:1px solid var(--c2m-border);padding-top:10px}.operation-head,.operation-metrics,.operation-lines li{display:flex;flex-wrap:wrap;align-items:center;gap:10px}.operation-head{justify-content:space-between}.operation-metrics{padding:8px;border-radius:8px;background:var(--c2m-surface-soft)}.operation-metrics span,.operation-lines li{color:var(--c2m-muted);font-size:13px}.operation-metrics strong,.operation-lines strong{color:var(--c2m-ink)}.operation-lines{display:grid;gap:6px;margin:8px 0 0;padding:0;list-style:none}.inline-details{min-width:180px}.detail-row td{background:#fff8f6;border-top:0}.operation-detail{display:grid;gap:10px;padding:10px 0}.operation-detail .table-wrap{margin:0}.modal-backdrop{position:fixed;inset:0;z-index:20;display:grid;place-items:center;padding:24px;background:#11182773}.modal-panel{width:min(1120px,100%);max-height:calc(100vh - 48px);overflow:auto;border-radius:8px;background:var(--c2m-surface);box-shadow:0 24px 60px #11182740}.invoice-modal{padding:18px}.modal-header{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px;border-bottom:1px solid var(--c2m-border);padding-bottom:12px}.modal-header h3{margin:0}.modal-panel .generated-invoice{border-top:0;margin-top:0}.workflow-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.workflow-box{display:grid;gap:12px;border:1px solid var(--c2m-border);border-radius:8px;padding:14px;background:#fafafa}.selectable-list{display:grid;gap:8px;max-height:260px;overflow:auto}.selectable-row{display:grid;grid-template-columns:24px 92px minmax(110px,1fr) minmax(120px,1fr) minmax(110px,.8fr) minmax(120px,.9fr) auto auto;align-items:center;gap:8px;border:1px solid var(--c2m-border);border-radius:7px;padding:8px;background:var(--c2m-surface);color:var(--c2m-ink);font-size:13px}.selectable-row input{width:18px;min-height:18px}.summary-strip{display:flex;flex-wrap:wrap;gap:8px;border-radius:8px;padding:10px;background:var(--c2m-surface-soft)}.summary-strip span{color:var(--c2m-muted);font-size:13px}.summary-strip strong{color:var(--c2m-ink)}.generated-invoice{display:grid;gap:12px;margin-top:16px;border-top:1px solid var(--c2m-border);padding-top:16px}.muted-note{margin:0;color:var(--c2m-muted)}@media(max-width:980px){.dashboard,.expense-workspace,.expense-fields,.expense-detail-layout,.accounting-choice-grid,.accounting-state-grid,.history-grid,.workflow-grid,.grid-form.wide{grid-template-columns:1fr}.topbar,.session,.rebill-row{align-items:stretch;flex-direction:column}.invoice-number{width:100%}}@media(max-width:640px){.grid-form,.inline-form{grid-template-columns:1fr;flex-direction:column}.section-heading,.actions,.meta-strip{align-items:stretch;flex-direction:column}}
