@import"https://fonts.googleapis.com/css2?family=Manrope:wght@400;600;700&display=swap";.app-shell{display:flex;min-height:100vh;background:var(--bg)}.sidebar{width:250px;background:#0f172a;color:#e8efff;display:flex;flex-direction:column;padding:1rem;position:sticky;top:0;height:100vh;z-index:10;transition:transform .25s ease}.sidebar .brand{display:flex;align-items:center;gap:.7rem;margin-bottom:1.5rem}.brand-logo{width:42px;height:42px;object-fit:cover}.brand-name{font-weight:800}.brand-baseline{color:#9db1d0;font-size:.85rem}.nav{display:flex;flex-direction:column;gap:.4rem}.nav-item{padding:.65rem .8rem;border-radius:10px;color:#dbe8ff;font-weight:700}.nav-item.active,.nav-item:hover{background:#ffffff14;color:#fff}.nav-action{margin-top:.3rem}.nav .pill.cta{background:linear-gradient(135deg,#0f9b9f,#0f5870);color:#fff;border:none;box-shadow:0 8px 20px #00000026}.nav .pill.cta:hover{transform:translateY(-1px);box-shadow:0 10px 24px #0003}.sidebar-footer{margin-top:auto}.user-chip{display:flex;align-items:center;gap:.6rem;padding:.6rem;background:#ffffff0d;border-radius:12px}.avatar{width:36px;height:36px;border-radius:50%;background:#0f9b9f;color:#fff;display:grid;place-items:center;font-weight:800}.user-name{font-weight:700}.user-role{color:#9db1d0;font-size:.85rem}.app-main{flex:1;display:flex;flex-direction:column;min-width:0;margin-left:250px;width:100%}.topbar{height:64px;display:flex;align-items:center;justify-content:space-between;padding:0 1.2rem;background:var(--surface);border-bottom:1px solid var(--border);position:sticky;top:0;z-index:4;width:100%}.topbar-title{font-weight:800;font-size:1.1rem}.topbar-actions{display:flex;gap:.5rem;align-items:center}.pill.full{width:100%;text-align:center}.burger{display:none;width:42px;height:42px;border-radius:12px;border:1px solid var(--border);background:#fff;flex-direction:column;justify-content:center;gap:5px;padding:8px}.burger span{display:block;height:2px;background:var(--text);border-radius:2px}.app-content{padding:1.2rem;min-height:calc(100vh - 64px);display:flex;flex-direction:column;gap:1rem}.months-grid{display:flex;flex-direction:column;gap:1rem}.month-card{border:1px solid var(--border);border-radius:16px;background:var(--surface);box-shadow:var(--shadow);padding:.2rem .2rem .8rem}.month-card summary{list-style:none;cursor:pointer}.month-card summary::-webkit-details-marker{display:none}.month-header{display:flex;align-items:center;justify-content:space-between;gap:.8rem;padding:.8rem 1rem}.month-title{font-weight:800;font-size:1.1rem}.month-sub{color:var(--muted);font-size:.9rem}.month-statline{display:flex;align-items:center;gap:.75rem;flex-wrap:wrap}.stat-chip{padding:.5rem .75rem;border-radius:12px;background:#f3f7fb;border:1px solid var(--border);text-align:left}.stat-chip.align-left{text-align:left}.stat-label{color:var(--muted);font-size:.85rem}.stat-value{font-weight:800}.stat-chip.positive{background:#e5f7f7;border-color:#b5e5e6;color:#0f7b7f}.stat-chip.negative{background:#fff1f1;border-color:#ffd4d4;color:#b32b3b}.month-body{padding:.2rem 1rem 0;display:flex;flex-direction:column;gap:.9rem}.month-actions{display:flex;gap:.5rem;flex-wrap:wrap}.summary-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:.7rem}.summary-card{padding:.9rem;border:1px solid var(--border);border-radius:12px;background:#f8fafc}.summary-label{color:var(--muted);font-size:.9rem;margin-bottom:.2rem}.summary-value{font-weight:800}.summary-value.positive{color:#0f7b7f}.summary-value.negative{color:#b32b3b}.summary-value.warning{color:#c27b16}.chart-card{display:flex;flex-direction:column;gap:.4rem}.sparkline{width:100%;height:120px}.sparkline-axis{display:grid;grid-template-columns:repeat(12,1fr);font-size:.8rem;color:var(--muted)}.sparkline-axis span{text-align:center}.donut-wrap{display:flex;flex-direction:column;gap:.5rem;align-items:flex-start}.donut{width:120px;height:120px;border-radius:50%;position:relative;display:grid;place-items:center}.donut:after{content:"";position:absolute;inset:18px;background:#f8fafc;border-radius:50%}.donut-center{position:absolute;font-weight:800}.donut-legend{display:flex;gap:.8rem;align-items:center;flex-wrap:wrap;color:var(--muted);font-size:.9rem}.legend-dot{width:12px;height:12px;border-radius:50%;display:inline-block;margin-right:4px}.logs-table{display:flex;flex-direction:column}.logs-table{width:100%}.logs-head,.logs-row{display:grid;grid-template-columns:1fr 1fr 1.2fr 1fr 2fr;gap:.5rem;padding:.65rem .8rem;align-items:center;border-top:1px solid var(--border)}.logs-head{background:#f1f5f9;font-weight:700;color:#475569;border-top:none}.logs-row:nth-child(2n){background:#f9fbfd}.logs-empty{padding:.8rem;color:var(--muted)}.log-detail{display:flex;flex-direction:column;gap:.2rem;font-size:.9rem}.log-chip{display:inline-block;background:#f1f5f9;border:1px solid var(--border);border-radius:8px;padding:.25rem .45rem}.log-action,.log-actor{font-weight:700}.logs-accordion summary{list-style:none;cursor:pointer;display:flex;justify-content:space-between;align-items:center}.logs-summary{display:flex;gap:.6rem;font-weight:800}.logs-accordion summary::-webkit-details-marker{display:none}.facture-info{display:flex;flex-direction:column;gap:.25rem}.facture-title{font-weight:700}.facture-flags{display:flex;gap:.75rem;align-items:center;color:var(--muted);font-size:.9rem;flex-wrap:wrap}.dot{width:10px;height:10px;border-radius:50%;display:inline-block;background:var(--border);margin-right:5px}.dot.ok{background:#0f7b7f}.table-card{border:1px solid var(--border);border-radius:12px;overflow:hidden;width:100%}.table-head,.table-row{display:grid;grid-template-columns:1fr .7fr .7fr .7fr 1fr 1.1fr .6fr;gap:.3rem;padding:.6rem .8rem;align-items:center;font-size:.95rem}.table-head{background:#f1f5f9;font-weight:700;color:#475569}.table-row{border-top:1px solid var(--border)}@media(max-width:820px){.table-head{display:none}.table-row{grid-template-columns:repeat(2,minmax(0,1fr));align-items:flex-start}.table-row .cell{display:flex;gap:.35rem;padding:.2rem 0;font-size:.95rem}.table-row .cell:before{content:attr(data-label);font-weight:700;color:var(--muted);min-width:90px}.table-row .row-actions{justify-content:flex-start;gap:.4rem}}.history-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:.8rem}.history-card{border:1px solid var(--border);border-radius:12px;background:var(--surface);padding:.9rem;box-shadow:var(--shadow);text-align:left;cursor:pointer}.history-title{font-weight:800}.history-status{font-weight:700}.history-status.status-ouvert{color:#111}.history-status.status-facture_deposee{color:#c27b16}.history-status.status-complete{color:#0b7947}.history-meta{color:var(--muted);font-size:.9rem}@media(max-width:1100px){.sidebar{position:fixed;transform:translate(-100%);height:100vh}.sidebar.open{transform:translate(0);box-shadow:var(--shadow)}.app-main{margin-left:0}.burger{display:flex}.topbar-actions{display:none}.month-header{flex-direction:column;align-items:flex-start}.table-head{display:none}.table-row{grid-template-columns:repeat(2,minmax(0,1fr));grid-auto-rows:auto}.table-row>div:nth-child(1){font-weight:800}.table-row>div:nth-child(2){justify-self:start}.table-row>div:nth-child(n+3){color:var(--muted)}}:root{color-scheme:light;--bg: #f6f7fb;--surface: #ffffff;--text: #0f172a;--muted: #5f6b85;--primary: #0f9b9f;--primary-soft: #d9f3f4;--border: #dce3ef;--shadow: 0 10px 30px rgba(15, 27, 70, .08)}*{box-sizing:border-box}body{margin:0;font-family:Manrope,system-ui,-apple-system,sans-serif;background:var(--bg);color:var(--text)}a{color:inherit;text-decoration:none}button{font-family:inherit;cursor:pointer;border:none;background:none}.muted{color:var(--muted)}h1{margin:0;font-size:1.6rem}.page{display:flex;flex-direction:column;gap:1rem;align-items:stretch}.login-page{min-height:100vh;display:grid;place-items:center;background:var(--bg);padding:1rem}.login-card{background:var(--surface);border:1px solid var(--border);border-radius:16px;box-shadow:var(--shadow);padding:1.5rem;width:min(420px,100%);display:flex;flex-direction:column;gap:1rem}.login-header{display:flex;align-items:center;gap:.8rem}.login-form{display:flex;flex-direction:column;gap:.8rem}.login-form label{display:flex;flex-direction:column;gap:.35rem;font-weight:700}.login-form input{border:1px solid var(--border);border-radius:10px;padding:.65rem .8rem;font-size:1rem;font-family:inherit}.error-box{background:#fff1f1;border:1px solid #ffd4d4;color:#b32b3b;padding:.6rem .8rem;border-radius:10px;font-weight:700}.page-header{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:.75rem}.eyebrow{font-size:.8rem;color:var(--primary);letter-spacing:.04em;text-transform:uppercase;font-weight:700}.pill{padding:.55rem 1rem;border-radius:999px;background:var(--primary);color:#fff;border:1px solid var(--primary);font-weight:700;transition:.2s ease}.pill.ghost{background:transparent;color:var(--text);border-color:var(--border)}.pill:hover{transform:translateY(-1px);box-shadow:var(--shadow)}.badge{padding:.4rem .7rem;border-radius:10px;font-weight:700;font-size:.9rem;background:var(--primary-soft);color:var(--primary);border:1px solid var(--primary)}.badge.ghost{background:transparent;color:var(--muted);border-color:var(--border)}.badge.status-facture_deposee{background:#fff4da;color:#ad7800;border-color:#f1c94a}.badge.status-complete{background:#e3f6e9;color:#0b7947;border-color:#88d1a8}.status-text{font-weight:800;color:var(--muted)}.status-text.open{color:#111}.status-text.facture_deposee{color:#c27b16}.status-text.complete{color:#0b7947}.tag{display:inline-block;padding:.3rem .65rem;border-radius:999px;font-weight:700;font-size:.85rem;border:1px solid var(--border);text-align:center;width:fit-content}.tag-atelier{background:#f0f6ff;color:#1f5fbf;border-color:#cdddfc}.tag-site{background:#f8f3ed;color:#8b4b1f;border-color:#e8d4bf}.pill-bar{display:flex;gap:.5rem;flex-wrap:wrap}.panel{background:var(--surface);padding:1rem;border-radius:16px;border:1px solid var(--border);box-shadow:var(--shadow)}.backdrop{position:fixed;inset:0;background:#0003;z-index:5}.modal-backdrop{position:fixed;inset:0;background:#00000059;display:grid;place-items:center;padding:1rem;z-index:20}.modal-card{width:min(520px,100%);background:var(--surface);border-radius:16px;border:1px solid var(--border);box-shadow:var(--shadow);padding:1.2rem;display:flex;flex-direction:column;gap:1rem}.modal-header{display:flex;align-items:center;justify-content:space-between;gap:.5rem}.modal-form{display:flex;flex-direction:column;gap:.8rem}.modal-form label{display:flex;flex-direction:column;gap:.35rem;font-weight:700}.modal-form input,.modal-form select,.modal-form textarea{border:1px solid var(--border);border-radius:10px;padding:.65rem .8rem;font-size:1rem;font-family:inherit}.modal-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:.6rem}.modal-actions{display:flex;justify-content:flex-end;gap:.5rem}.pill.danger{background:#d92f3a;border-color:#d92f3a;color:#fff}.facture-actions{display:flex;gap:.4rem;align-items:center;flex-wrap:wrap}.icon-btn{border:none;background:none;font-size:1rem;cursor:pointer;color:#d92f3a;padding:.2rem;transition:.2s ease}.icon-btn:hover{transform:scale(1.08)}.row-actions{display:flex;justify-content:flex-end;position:relative}.actions-col{text-align:right}.table-head div,.table-row div{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}@media(max-width:900px){.page-header{flex-direction:column;align-items:flex-start}}
