@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;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}.calculator-page{max-width:1440px;margin:0 auto;width:100%}.calculator-heading{padding:.35rem .15rem .5rem}.calculator-heading h1{font-size:clamp(1.75rem,3vw,2.35rem);letter-spacing:-.045em;font-weight:700}.calculator-heading .muted{max-width:720px;line-height:1.55;margin:.45rem 0 0}.calculator-note{align-self:flex-start;border:1px solid #cae4e5;color:#276c6e;background:#eef8f8;padding:.42rem .7rem;border-radius:999px;font-size:.78rem;font-weight:600}.calculator-layout{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(300px,.58fr);gap:1.35rem;align-items:start}.calculator-form{display:flex;flex-direction:column;gap:1rem}.calculator-section{display:flex;flex-direction:column;gap:.55rem;padding:1.15rem 1.2rem 1.25rem;box-shadow:none}.section-kicker{color:var(--primary);font-size:.71rem;font-weight:700;letter-spacing:.09em;text-transform:uppercase}.section-title{font-size:1.08rem;font-weight:700;letter-spacing:-.015em}.section-copy{color:var(--muted);font-size:.9rem;line-height:1.45;margin:0 0 .25rem}.family-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:.55rem}.family-choice{display:flex;gap:.65rem;align-items:center;min-height:56px;padding:.7rem .8rem;border:1px solid #e2e8f0;border-radius:11px;font-size:.91rem;font-weight:600;color:#334155;cursor:pointer;transition:border-color .18s ease,background .18s ease,transform .18s ease}.family-choice:hover{border-color:#9dcfd0;background:#f8fdfd}.family-choice.selected{border-color:var(--primary);background:#edf8f8;color:#075f62}.family-choice input{accent-color:var(--primary);width:16px;height:16px;flex:0 0 auto}.calculator-fields{display:grid;grid-template-columns:repeat(auto-fit,minmax(245px,1fr));gap:.75rem .9rem;margin-top:.3rem}.calculator-field,.settings-form label{display:flex;flex-direction:column;gap:.42rem;color:#475569;font-size:.84rem;font-weight:600;line-height:1.35}.calculator-field select,.calculator-field input,.settings-form input{width:100%;min-height:43px;border:1px solid #dce4ee;border-radius:9px;padding:.58rem .7rem;background:#fbfcfe;color:#172033;font:inherit;font-size:.92rem;font-weight:500;outline:none;transition:border-color .18s ease,box-shadow .18s ease,background .18s ease}.calculator-field select:hover,.calculator-field input:hover,.settings-form input:hover{background:#fff;border-color:#bdcbd8}.calculator-field select:focus,.calculator-field input:focus,.settings-form input:focus{background:#fff;border-color:var(--primary);box-shadow:0 0 0 3px #0f9b9f1f}.calculator-submit{align-self:flex-start;padding:.65rem 1.2rem;box-shadow:0 5px 14px #0f9b9f2e}.calculator-result{position:sticky;top:82px;display:flex;flex-direction:column;gap:.8rem;padding:1.15rem;box-shadow:0 12px 32px #0f1b4612}.orientation-card,.result-price,.commission-card,.maintenance-card{display:flex;flex-direction:column;gap:.25rem;padding:.8rem .85rem;border-radius:10px;background:#f6f9fb;border:1px solid #dfe7ef}.orientation-card{background:#eaf7f7;border-color:#b9e0e1;color:#075f62}.orientation-card span,.result-price span,.commission-card span,.maintenance-card span,.result-grid span{color:var(--muted);font-size:.76rem;font-weight:600;text-transform:uppercase;letter-spacing:.045em}.orientation-card strong,.commission-card strong,.maintenance-card strong{font-size:.96rem;font-weight:700}.orientation-diagnostic,.orientation-poc,.orientation-manual{background:#fff7e8;border-color:#f0d28d;color:#805600}.result-price{padding:1rem .9rem;background:#10283c;border-color:#10283c;color:#fff}.result-price span{color:#b8cedd}.result-price strong{font-size:1.55rem;letter-spacing:-.03em;font-weight:700}.result-range{padding-bottom:.7rem;border-bottom:1px solid var(--border);font-size:.9rem;line-height:1.45}.result-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:.7rem}.result-grid div{display:flex;flex-direction:column;gap:.2rem;font-size:.87rem}.result-grid strong{color:#243447;font-size:.93rem;font-weight:650}.calculator-alert{border-radius:9px;padding:.65rem .7rem;background:#fff7e8;color:#805600;font-size:.86rem;font-weight:600;line-height:1.4}.factor-list{display:flex;flex-direction:column;gap:.3rem;font-size:.86rem;color:#475569}.factor-list strong{color:#243447;font-weight:700;margin-bottom:.1rem}.factor-list span:before{content:"• ";color:var(--primary)}.result-guidance{line-height:1.55;color:#5b4a24;font-size:.92rem;font-weight:500}.settings-card{display:flex;flex-direction:column;gap:.8rem;box-shadow:none}.settings-form{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.7rem;align-items:end}@media(max-width:900px){.calculator-layout{grid-template-columns:1fr}.calculator-result{position:static}.settings-form{grid-template-columns:1fr}}.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}}
