:root {
  --client-navy: #112c3f;
  --client-navy-2: #173c55;
  --client-blue: #1f789f;
  --client-orange: #ff851b;
  --client-orange-dark: #dc6510;
  --client-green: #1fa36b;
  --client-red: #c94444;
  --client-bg: #f3f6f8;
  --client-card: #fff;
  --client-border: #d9e2e8;
  --client-text: #172d3c;
  --client-muted: #647886;
  --client-shadow: 0 18px 50px rgba(15, 43, 62, .12);
  font-family: Inter, "Segoe UI", Arial, sans-serif;
}
* { box-sizing: border-box; }
body.client-auth-page, body.client-app-page { margin: 0; color: var(--client-text); background: var(--client-bg); min-height: 100vh; }
a { color: inherit; }
.auth-shell { min-height: 100vh; display: grid; grid-template-columns: minmax(340px, 1.05fr) minmax(420px, .95fr); }
.auth-brand-panel { padding: clamp(42px, 7vw, 96px); color: #fff; background: radial-gradient(circle at 15% 15%, rgba(44,142,182,.35), transparent 34%), linear-gradient(145deg, #0d2739, #173d55 62%, #0e2d42); display: flex; flex-direction: column; justify-content: center; }
.auth-brand-panel img { width: 190px; height: auto; margin-bottom: 50px; }
.auth-kicker, .dashboard-kicker, .settings-heading > span { margin: 0 0 10px; color: #64c8ed; font-size: 12px; font-weight: 800; letter-spacing: .18em; }
.auth-brand-panel h1 { margin: 0; max-width: 650px; font-size: clamp(36px, 4.5vw, 64px); line-height: 1.04; letter-spacing: -.035em; }
.auth-brand-panel > p:not(.auth-kicker) { max-width: 630px; margin: 26px 0 0; color: #c8dbe7; font-size: 18px; line-height: 1.65; }
.security-note { margin-top: 42px; padding: 18px 20px; max-width: 560px; border: 1px solid rgba(255,255,255,.17); border-radius: 14px; background: rgba(255,255,255,.07); display: grid; gap: 4px; }
.security-note strong { color: #fff; }.security-note span { color: #bdd1dd; font-size: 14px; }
.auth-card { align-self: center; width: min(510px, calc(100% - 52px)); margin: 32px auto; padding: 38px; border: 1px solid var(--client-border); border-radius: 20px; background: #fff; box-shadow: var(--client-shadow); }
.auth-card-heading span { color: var(--client-orange); font-size: 11px; font-weight: 900; letter-spacing: .16em; }
.auth-card-heading h2 { margin: 7px 0 26px; font-size: 32px; }
.auth-card form, .settings-card form { display: grid; gap: 17px; }
.auth-card label, .settings-card label, .admin-create-grid label, .user-card label { display: grid; gap: 7px; color: #415765; font-size: 13px; font-weight: 700; }
.auth-card input, .settings-card input, .settings-card select, .admin-create-grid input, .admin-create-grid select, .user-card input, .user-card select { width: 100%; min-height: 45px; padding: 10px 12px; border: 1px solid #cbd8df; border-radius: 9px; background: #fff; color: var(--client-text); font: inherit; outline: none; }
.auth-card input:focus, .settings-card input:focus, .settings-card select:focus, .admin-create-grid input:focus, .user-card input:focus, .user-card select:focus { border-color: #2a91bb; box-shadow: 0 0 0 3px rgba(42,145,187,.14); }
.form-help { margin: 18px 0 0; color: var(--client-muted); font-size: 13px; line-height: 1.5; }
.form-alert { margin: 0 0 22px; padding: 13px 15px; border-radius: 9px; font-size: 14px; font-weight: 650; }
.form-alert.error { color: #8a2424; background: #fff0f0; border: 1px solid #f1c3c3; }.form-alert.success { color: #12633f; background: #eaf8f1; border: 1px solid #bce5cf; }.form-alert.warning { color: #7b4a08; background: #fff6df; border: 1px solid #efd69a; }
.client-button { appearance: none; display: inline-flex; align-items: center; justify-content: center; min-height: 40px; padding: 9px 15px; border: 1px solid transparent; border-radius: 8px; text-decoration: none; font: 700 13px/1.2 Inter, "Segoe UI", Arial, sans-serif; cursor: pointer; transition: transform .15s ease, background .15s ease, border-color .15s ease; }
.client-button:hover { transform: translateY(-1px); }.client-button:disabled { opacity: .55; cursor: wait; transform: none; }
.client-button.primary { color: #fff; background: var(--client-orange); border-color: var(--client-orange); }.client-button.primary:hover { background: var(--client-orange-dark); border-color: var(--client-orange-dark); }
.client-button.subtle { color: #24495f; background: #edf5f8; border-color: #d4e5ec; }.client-button.outline { color: #315568; background: #fff; border-color: #bdd0da; }.client-button.danger-text { color: #a63838; background: #fff; border-color: #efd0d0; }
.client-button.full { width: 100%; }.client-button.large { min-height: 48px; padding-inline: 22px; font-size: 14px; }
.client-topbar { min-height: 72px; padding: 10px clamp(18px, 4vw, 56px); display: flex; align-items: center; justify-content: space-between; gap: 24px; color: #fff; background: var(--client-navy); box-shadow: 0 4px 18px rgba(15,43,62,.18); }
.client-brand { display: flex; align-items: center; gap: 14px; text-decoration: none; }.client-brand img { width: 105px; }.client-brand span { display: grid; }.client-brand strong { font-size: 17px; }.client-brand small { color: #a9c1cf; margin-top: 2px; }
.client-user-nav { display: flex; align-items: center; gap: 9px; }.client-user-identity { display: grid; margin-right: 10px; text-align: right; }.client-user-identity strong { font-size: 13px; }.client-user-identity small { color: #adc2ce; font-size: 11px; margin-top: 2px; }
.dashboard-shell, .settings-shell { width: min(1450px, calc(100% - 48px)); margin: 0 auto; padding: 48px 0 70px; }.settings-shell { width: min(1050px, calc(100% - 48px)); }.settings-shell.wide { width: min(1450px, calc(100% - 48px)); }
.dashboard-heading { display: flex; align-items: flex-end; justify-content: space-between; gap: 30px; margin-bottom: 34px; }.dashboard-heading h1, .settings-heading h1 { margin: 0; font-size: clamp(32px, 4vw, 48px); letter-spacing: -.025em; }.dashboard-heading p, .settings-heading p { margin: 10px 0 0; color: var(--client-muted); font-size: 16px; }
.dashboard-status { min-height: 22px; margin: -15px 0 18px; color: var(--client-muted); font-size: 13px; font-weight: 700; }.dashboard-status.error { color: var(--client-red); }.dashboard-status.success { color: var(--client-green); }.dashboard-status.working { color: var(--client-blue); }
.project-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(320px, 1fr)); gap: 22px; }.project-card, .empty-project-card { min-height: 245px; padding: 25px; border: 1px solid var(--client-border); border-radius: 15px; background: var(--client-card); box-shadow: 0 8px 24px rgba(20,52,70,.07); }
.project-card { display: flex; flex-direction: column; }.project-card-top { display: flex; justify-content: space-between; gap: 15px; }.project-card-type { color: var(--client-blue); font-size: 10px; font-weight: 900; letter-spacing: .12em; }.project-version { color: #728795; font-size: 11px; font-weight: 800; }
.project-card h2 { margin: 20px 0 7px; font-size: 23px; line-height: 1.15; }.project-address { min-height: 38px; margin: 0; color: var(--client-muted); line-height: 1.45; }.project-meta { margin: auto 0 20px; padding-top: 18px; color: #7b8d98; font-size: 12px; }.project-actions { display: flex; flex-wrap: wrap; gap: 7px; }
.empty-project-card { grid-column: 1 / -1; text-align: center; display: grid; justify-items: center; align-content: center; }.empty-project-icon { width: 58px; height: 58px; display: grid; place-items: center; border-radius: 50%; color: #fff; background: var(--client-orange); font-size: 30px; }.empty-project-card h2 { margin: 17px 0 6px; }.empty-project-card p { margin: 0 0 20px; color: var(--client-muted); }
.settings-heading { margin-bottom: 30px; }.settings-grid { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: 24px; }.settings-card { padding: 26px; border: 1px solid var(--client-border); border-radius: 15px; background: #fff; box-shadow: 0 8px 24px rgba(20,52,70,.06); }.settings-card h2 { margin: 0 0 5px; }.settings-card > p { margin: 0 0 22px; color: var(--client-muted); }
.admin-create-card { margin-bottom: 24px; }.admin-create-grid { display: grid !important; grid-template-columns: 1.05fr 1.25fr 1fr .7fr .85fr .85fr auto; align-items: end; gap: 12px !important; }.admin-create-action { padding-bottom: 1px; }
.users-list { display: grid; gap: 15px; }.user-card { padding: 22px; border: 1px solid var(--client-border); border-radius: 14px; background: #fff; }.user-card.pending { background: #fffaf0; border-color: #efcf83; }.user-card.inactive { opacity: .72; background: #f7f8f9; }.user-card.expired { background: #fff7f7; border-color: #efcaca; }.user-card.not_started { background: #fffaf0; border-color: #edd9a8; }.user-card-heading { display: flex; justify-content: space-between; gap: 20px; margin-bottom: 18px; }.user-card-heading div { display: grid; gap: 4px; }.user-card-heading small { color: var(--client-muted); }.user-status { align-self: start; padding: 5px 9px; border-radius: 999px; color: #17704b; background: #e8f7f0; font-size: 11px; font-weight: 900; }.pending .user-status { color: #8a5a0a; background: #fff0c7; }.inactive .user-status, .expired .user-status, .user-status.inactive { color: #8a3434; background: #f8e5e5; }.not_started .user-status { color: #7b570f; background: #fff0c7; }
.user-card-form { display: block !important; }.user-edit-grid { display: grid; grid-template-columns: 1.15fr .65fr .8fr .8fr .7fr; gap: 12px; align-items: end; margin-bottom: 14px; }.checkbox-label { display: flex !important; align-items: center; min-height: 45px; padding: 0 10px; border: 1px solid #d6e0e5; border-radius: 9px; }.checkbox-label input { width: auto; min-height: auto; margin-right: 8px; }.approval-form { margin-top: 14px; display: flex !important; justify-content: flex-end; }.password-reset-form { margin-top: 14px; padding-top: 14px; border-top: 1px solid #e4eaee; display: flex !important; align-items: end; gap: 10px !important; }.password-reset-form label { flex: 1; max-width: 340px; }
/* Compléments de la page d'édition client */
.client-editor-page .prototype-badge { color: #d8f3ff; border-color: rgba(128,211,239,.42); background: rgba(32,121,158,.18); }
.client-editor-page .top-actions { gap: 7px; }.client-editor-page .top-actions .editor-dashboard-link { color: #d9e9f1; text-decoration: none; white-space: nowrap; }.client-editor-page .editor-user-chip { min-width: 0; padding: 7px 10px; border-left: 1px solid rgba(255,255,255,.14); display: grid; line-height: 1.15; }.client-editor-page .editor-user-chip strong { max-width: 120px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; color: #fff; font-size: 12px; }.client-editor-page .editor-user-chip a { color: #9fc4d5; font-size: 10px; text-decoration: none; }
.autosave-state.error { color: #c53636 !important; }.autosave-state.error span { background: #d94848 !important; }.autosave-state.offline { color: #a26418 !important; }.autosave-state.offline span { background: #e29a36 !important; }.autosave-state.saved span { background: #22a86f !important; }
.client-conflict-banner { position: fixed; z-index: 100000; left: 50%; bottom: 24px; transform: translateX(-50%); width: min(820px, calc(100% - 32px)); padding: 16px 18px; border: 1px solid #efb8b8; border-radius: 12px; color: #722626; background: #fff4f4; box-shadow: 0 16px 50px rgba(72,25,25,.24); display: flex; align-items: center; justify-content: space-between; gap: 20px; }.client-conflict-banner > div:first-child { display: grid; gap: 4px; }.client-conflict-banner span { font-size: 13px; }.client-conflict-actions { display: flex; gap: 8px; white-space: nowrap; }.client-conflict-actions button, .client-conflict-actions a { padding: 8px 11px; border: 1px solid #cc7777; border-radius: 7px; color: #762b2b; background: #fff; font: 700 12px Inter, Arial, sans-serif; text-decoration: none; cursor: pointer; }
@media (max-width: 1050px) { .auth-shell { grid-template-columns: 1fr; }.auth-brand-panel { min-height: 42vh; padding: 42px; }.auth-brand-panel img { margin-bottom: 28px; }.auth-card { margin-block: 45px; }.admin-create-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }.user-edit-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }.client-user-identity { display: none; } }
@media (max-width: 760px) { .client-topbar { align-items: flex-start; flex-direction: column; }.client-user-nav { width: 100%; flex-wrap: wrap; }.dashboard-shell, .settings-shell, .settings-shell.wide { width: min(100% - 24px, 1450px); padding-top: 28px; }.dashboard-heading { align-items: stretch; flex-direction: column; }.settings-grid { grid-template-columns: 1fr; }.admin-create-grid, .user-edit-grid { grid-template-columns: 1fr; }.password-reset-form { align-items: stretch; flex-direction: column; }.password-reset-form label { max-width: none; }.client-conflict-banner { align-items: stretch; flex-direction: column; }.client-conflict-actions { white-space: normal; } }

.access-validity-card { margin-bottom: 24px; }


/* V0.22.68 — inscription publique / essai 30 jours */
.auth-registration-cta{
  display:grid;
  gap:9px;
  margin-top:22px;
  padding-top:19px;
  border-top:1px solid var(--client-border);
}
.auth-registration-cta>span{
  color:#526975;
  font-size:12px;
  font-weight:800;
  text-align:center;
}
.auth-registration-cta>small{
  color:var(--client-muted);
  font-size:11px;
  text-align:center;
}
.auth-registration-cta .client-button.secondary{
  text-decoration:none;
}
.trial-benefits{
  display:grid;
  gap:10px;
  max-width:630px;
  margin-top:28px;
}
.trial-benefits>div{
  display:flex;
  flex-direction:column;
  gap:3px;
  padding:13px 15px;
  border:1px solid rgba(255,255,255,.16);
  border-radius:11px;
  background:rgba(255,255,255,.07);
}
.trial-benefits strong{font-size:14px;color:#fff}
.trial-benefits span{font-size:12px;line-height:1.4;color:#c8dbe7}
.registration-card{width:min(530px,calc(100% - 52px))}
.registration-card form{gap:14px}
.field-help{
  margin-top:-2px;
  color:var(--client-muted);
  font-size:11px;
  font-weight:500;
}
.registration-terms{
  margin:15px 0 0;
  padding:10px 12px;
  border-radius:8px;
  background:#f4f8fa;
  color:#617681;
  font-size:11px;
  line-height:1.5;
}
.auth-switch{text-align:center}
.auth-switch a{color:#16799f;font-weight:800;text-decoration:none}
.auth-switch a:hover{text-decoration:underline}


/* V0.22.68 — bouton d'inscription clairement identifiable */
.auth-registration-cta{
  gap:10px;
}

.auth-registration-separator{
  position:relative;
  display:flex;
  align-items:center;
  justify-content:center;
  gap:10px;
  width:100%;
  color:#6b7d88!important;
  font-size:11px!important;
  font-weight:800!important;
}

.auth-registration-separator::before,
.auth-registration-separator::after{
  content:"";
  flex:1 1 auto;
  height:1px;
  background:#dfe7eb;
}

.registration-button{
  position:relative;
  min-height:50px!important;
  display:grid!important;
  grid-template-columns:28px minmax(0,1fr) auto;
  align-items:center;
  gap:10px;
  padding:8px 12px!important;
  border:1.5px solid #2a91bb!important;
  border-radius:9px!important;
  background:#f4fbfe!important;
  color:#176d91!important;
  text-decoration:none!important;
  box-shadow:0 4px 12px rgba(30,122,158,.08);
}

.registration-button:hover{
  transform:translateY(-1px);
  border-color:#16799f!important;
  background:#e9f6fb!important;
  box-shadow:0 7px 18px rgba(30,122,158,.15);
}

.registration-button-icon{
  width:26px;
  height:26px;
  display:grid;
  place-items:center;
  border-radius:50%;
  background:#2a91bb;
  color:#fff;
  font-size:20px;
  font-weight:500;
  line-height:1;
}

.registration-button-label{
  text-align:left;
  font-size:13px;
  font-weight:900;
  color:#173e53;
}

.registration-button-badge{
  padding:5px 8px;
  border-radius:999px;
  background:#ff851b;
  color:#fff;
  font-size:9px;
  font-weight:900;
  white-space:nowrap;
}

@media(max-width:520px){
  .registration-button{
    grid-template-columns:28px minmax(0,1fr);
  }
  .registration-button-badge{
    grid-column:2;
    justify-self:start;
    margin-top:-3px;
  }
}


/* V0.22.68 — paramètres utilisateur du budget indicatif */
.budget-account-card{margin:24px 0}.budget-account-card .user-card-heading{align-items:center}.budget-account-card p{margin:14px 0 0!important}
.budget-intro-card{margin-bottom:22px}.budget-support-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}.budget-support-card{padding:22px}.budget-support-heading{margin-bottom:18px}.budget-support-heading span{font-size:10px;font-weight:900;letter-spacing:.12em;color:#f0771b}.budget-support-heading h2{margin:4px 0 0}.budget-tier-row{display:grid;grid-template-columns:1fr 1fr;gap:10px;align-items:end;padding:10px 0;border-top:1px solid #edf1f3}.budget-tier-row:first-of-type{border-top:0}.budget-tier-row label{position:relative}.budget-tier-row label small{position:absolute;right:10px;bottom:14px;color:#7a8b95;font-weight:700}.budget-tier-row label input{padding-right:58px}.budget-tier-row.final>span{align-self:center;font-size:13px;font-weight:800;color:#60737f}.budget-settings-actions{display:flex;justify-content:flex-end;margin-top:22px}.budget-reset-form{display:flex!important;justify-content:flex-end;margin-top:12px}.budget-settings-page .settings-card>p{line-height:1.55}
@media(max-width:1050px){.budget-support-grid{grid-template-columns:1fr}}@media(max-width:620px){.budget-tier-row{grid-template-columns:1fr}}

/* V0.22.68 — lecture du barème dégressif */
.budget-scale-card{margin-bottom:22px}.budget-scale-card>p{margin-top:14px!important}.budget-scale-examples{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}.budget-scale-examples span{padding:7px 10px;border:1px solid #dce7eb;border-radius:999px;background:#f7fbfc;color:#546b78;font-size:11px}.budget-scale-examples b{color:#274f64}

.electrical-settings-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
.electrical-settings-form select{width:100%}
.electrical-checkbox-line{display:flex!important;align-items:center;gap:10px;font-weight:700}.electrical-checkbox-line input{width:auto!important;margin:0}
.electrical-settings-help{font-size:13px;color:#667b88;line-height:1.45}
@media(max-width:900px){.electrical-settings-grid{grid-template-columns:1fr}}


/* SolarLayer 1.0.8 — décompte de la période d'essai après connexion */
.form-alert.info { color: #174b6b; background: #edf7fc; border: 1px solid #b9dceb; }
.trial-login-toast {
  position: fixed; top: 82px; right: 20px; z-index: 10050;
  width: min(430px, calc(100vw - 32px)); display: flex; gap: 14px;
  align-items: flex-start; padding: 14px 15px; border-radius: 12px;
  box-shadow: 0 14px 34px rgba(17, 38, 55, .22); border: 1px solid #bddceb;
  background: #f2f9fd; color: #174b6b;
}
.trial-login-toast > div { display: grid; gap: 3px; }
.trial-login-toast strong { font-size: 13px; letter-spacing: .02em; text-transform: uppercase; }
.trial-login-toast span { font-size: 14px; line-height: 1.4; font-weight: 650; }
.trial-login-toast small { margin-top: 4px; color: inherit; opacity: .85; line-height: 1.35; }
.trial-login-toast > button { margin-left: auto; border: 0; background: transparent; color: inherit; font-size: 22px; line-height: 1; cursor: pointer; }
.trial-login-toast.warning { background: #fff6df; color: #7b4a08; border-color: #efd69a; }
.trial-login-toast.critical { background: #fff0f0; color: #8a2424; border-color: #f1c3c3; }
@media (max-width: 720px) { .trial-login-toast { top: 72px; right: 12px; width: calc(100vw - 24px); } }
