/* Carla Modal System — contrat transverse pour toutes les fenêtres présentes et futures. */
:root{
  --carla-modal-width:960px;
  --carla-modal-compact:640px;
  --carla-modal-wide:1120px;
  --carla-modal-radius:10px;
  --carla-modal-gutter:36px;
  --carla-section-gap:20px;
  --carla-grid-gap:16px;
  --carla-control-height:44px;
  --carla-border:#dce2ea;
  --carla-ink:#172b4a;
  --carla-muted:#6f7d91;
  --carla-soft:#f7f9fb;
  --carla-primary:#203858;
  --carla-accent:#b78e48;
  /* Compatibilité avec la première version de la charte des formulaires. */
  --carla-form-width:var(--carla-modal-width);
  --carla-form-radius:var(--carla-modal-radius);
  --carla-form-gap:var(--carla-section-gap);
  --carla-form-control-height:var(--carla-control-height);
  --carla-form-border:var(--carla-border);
  --carla-form-ink:var(--carla-ink);
  --carla-form-muted:var(--carla-muted);
  --carla-form-soft:var(--carla-soft);
  --carla-form-primary:var(--carla-primary);
  --carla-form-accent:var(--carla-accent);
}

/* Modal */
dialog.carla-modal{width:min(var(--carla-modal-width),calc(100vw - 40px))!important;max-width:none!important;max-height:calc(100dvh - 40px);padding:0!important;overflow:hidden;border:1px solid rgba(24,44,72,.14)!important;border-radius:var(--carla-modal-radius)!important;background:#fff!important;box-shadow:0 30px 90px rgba(15,30,51,.27)!important}
dialog.carla-modal.carla-modal--compact{width:min(var(--carla-modal-compact),calc(100vw - 40px))!important}
dialog.carla-modal.carla-modal--wide{width:min(var(--carla-modal-wide),calc(100vw - 40px))!important}
dialog.carla-modal::backdrop{background:rgba(17,29,45,.5)!important;backdrop-filter:blur(4px)}

/* Modal content shell */
.carla-modal-form,.carla-modal-shell{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:var(--carla-section-gap) var(--carla-grid-gap);max-height:calc(100dvh - 40px);padding:32px var(--carla-modal-gutter);overflow:auto;overscroll-behavior:contain}
.carla-modal-form>*{grid-column:1/-1;min-width:0}
.carla-modal-form>header,.carla-modal-shell>header{position:relative!important;top:auto!important;z-index:2;display:flex;align-items:flex-start;justify-content:space-between;gap:24px;margin:-32px calc(var(--carla-modal-gutter) * -1) 0;padding:28px var(--carla-modal-gutter) 22px!important;border:0!important;background:#fff}
.carla-modal-form>header:after,.carla-modal-shell>header:after{position:absolute;right:var(--carla-modal-gutter);bottom:0;left:var(--carla-modal-gutter);height:1px;background:#edf0f4;content:""}
.carla-modal-form>header h2,.carla-modal-shell>header h2{margin:4px 0 0;color:var(--carla-ink);font-family:Georgia,serif;font-size:1.5rem;font-weight:500;line-height:1.2}
.carla-modal-form>header p,.carla-modal-shell>header p{max-width:680px;margin:7px 0 0;color:var(--carla-muted);font-size:.73rem;line-height:1.5}
.carla-modal-form>header>button,.carla-modal-shell>header>button{display:grid;place-items:center;flex:0 0 auto;width:34px;height:34px;padding:0!important;border:0!important;border-radius:6px!important;background:transparent!important;color:#657286!important;font-size:1.35rem!important}
.carla-modal-form>header>button:hover,.carla-modal-shell>header>button:hover{background:#f0f3f7!important;color:#1f3657!important}

/* Section */
.carla-section{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:14px var(--carla-grid-gap);grid-column:1/-1;padding:18px 20px;border:1px solid #e5e9ef;border-radius:8px;background:#fff}
.carla-section>h3,.carla-section-title{grid-column:1/-1;margin:0 0 2px;color:#29415f;font-size:.75rem;font-weight:800;letter-spacing:.01em}
.carla-section>h3:before{display:inline-block;margin-right:8px;color:var(--carla-accent);content:"◇"}
.carla-section>*:not(h3){grid-column:1/-1;min-width:0}
.carla-section--soft{background:var(--carla-soft)}

/* Shared grids */
.carla-modal-form :is(.prospect-form-grid,.task-form-grid,.client-form-grid,.matter-create-fields,.form-pair,.billing-form-grid){display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:14px var(--carla-grid-gap);margin:0}
.carla-modal-form :is(.prospect-form-grid,.task-form-grid,.client-form-grid,.matter-create-fields,.form-pair)>*{grid-column:span 6;min-width:0}
.carla-modal-form .billing-form-grid>*{grid-column:span 4;min-width:0}
.carla-grid-heading{grid-column:1/-1!important;margin:0 0 2px;padding-bottom:9px;border-bottom:1px solid #edf0f4;color:#29415f;font-size:.73rem;font-weight:850}
.carla-modal-form :is(.wide,.prospect-summary-field,.carla-wide){grid-column:1/-1!important}

/* Controls */
.carla-form:not(.outlook-compose):not(.composer) label{display:grid;align-content:start;gap:6px;color:#536177;font-size:.68rem;font-weight:760;line-height:1.25}
.carla-form:not(.outlook-compose):not(.composer) :is(input:not([type=checkbox]):not([type=radio]):not([type=color]):not([type=file]),select,textarea){width:100%;min-height:var(--carla-control-height);padding:10px 12px;border:1px solid var(--carla-border);border-radius:6px;background:#fff;color:#263851;font:inherit;box-shadow:0 1px 1px rgba(23,42,73,.025);transition:border-color .15s,box-shadow .15s,background .15s}
.carla-form:not(.outlook-compose):not(.composer) textarea{min-height:82px;resize:vertical;line-height:1.5}
.carla-form:not(.outlook-compose):not(.composer) :is(input,select,textarea):focus{border-color:#8295ad;outline:0;box-shadow:0 0 0 3px rgba(41,70,111,.09)}
.carla-form:not(.outlook-compose):not(.composer) :is(input,select,textarea):disabled{background:#f2f4f7;color:#536177}

/* ContextHeader */
.carla-context-banner,.carla-context-header{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:13px;grid-column:1/-1;padding:13px 15px;border:1px solid #dde5ed;border-radius:7px;background:var(--carla-soft)}
.carla-context-banner>span,.carla-context-header>span{display:grid;place-items:center;width:34px;height:34px;border-radius:6px;background:#fff;color:#29466f;font-size:1rem;box-shadow:0 1px 4px rgba(29,48,76,.08)}
.carla-context-banner div,.carla-context-header div{display:grid;gap:2px}.carla-context-banner small,.carla-context-header small{color:#7b8798;font-size:.59rem;font-weight:800;letter-spacing:.06em;text-transform:uppercase}.carla-context-banner b,.carla-context-header b{overflow:hidden;color:#263b5c;font-size:.76rem;text-overflow:ellipsis;white-space:nowrap}

/* Progressive disclosure */
.carla-disclosure{grid-column:1/-1;padding:0;border:1px dashed #ccd5e0;border-radius:7px;background:#fbfcfd}.carla-disclosure>summary{padding:12px 14px;color:#29466f;font-size:.69rem;font-weight:800;cursor:pointer;list-style:none}.carla-disclosure>summary::-webkit-details-marker{display:none}.carla-disclosure>summary:before{margin-right:7px;content:"＋"}.carla-disclosure[open]>summary:before{content:"−"}.carla-disclosure>label{padding:0 14px 14px}.carla-disclosure textarea{background:#fff}

/* QuickSelect */
.carla-choice-field,.carla-quick-select{display:grid;gap:8px}.carla-choice-field>span,.carla-quick-select>span{color:#536177;font-size:.68rem;font-weight:760}.carla-choice-field>select{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}.carla-choice-row{display:flex;flex-wrap:wrap;gap:7px}.carla-choice-row button{min-height:38px;padding:8px 12px;border:1px solid #d5dce5;border-radius:6px;background:#fff;color:#40536d;font-size:.68rem;font-weight:750}.carla-choice-row button:hover{border-color:#9aabba;background:#f8fafc}.carla-choice-row button.selected{border-color:#29466f;background:#29466f;color:#fff;box-shadow:0 4px 11px rgba(41,70,111,.15)}

/* PrimaryButton / SecondaryButton and footer */
.carla-modal-form>footer{position:sticky;bottom:-32px;z-index:4;display:flex;align-items:center;justify-content:flex-end;gap:10px;margin:2px calc(var(--carla-modal-gutter) * -1) -32px;padding:17px var(--carla-modal-gutter)!important;border:0!important;background:rgba(255,255,255,.97);box-shadow:0 -1px #e7ebf0;backdrop-filter:blur(10px)}
.carla-modal-form>footer button,.carla-modal-form>footer a,.carla-secondary-button{min-height:40px;padding:9px 15px;border:1px solid #d6dde6!important;border-radius:6px!important;background:#fff!important;color:#45566d!important;font-weight:760;text-decoration:none}
.carla-modal-form>footer :is(button[type=submit],button:not([type]).screen-action,.screen-action),.carla-primary-button{min-width:190px;border-color:var(--carla-primary)!important;background:var(--carla-primary)!important;color:#fff!important;box-shadow:0 6px 16px rgba(32,56,88,.18)}
.carla-modal-form>footer .danger-action{margin-right:auto;border-color:#e6c8c4!important;background:#fff6f5!important;color:#943f38!important}
.carla-form-status:not(:empty),.carla-modal-form [role=status]:not(:empty),.carla-modal-form [role=alert]:not(:empty){padding:10px 12px;border-radius:6px;background:#f3f6fa;color:#536177;font-size:.69rem}

/* Rendez-vous : date/heure et durée partagent la même ligne sur écran confortable. */
.calendar-quick-form>.calendar-title-field{grid-column:1/-1}.calendar-quick-form>.calendar-when{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--carla-grid-gap);grid-column:span 6}.calendar-quick-form>.calendar-choice-group{grid-column:span 6;margin:0;padding:0;border:0}.calendar-quick-form>.calendar-location-row,.calendar-quick-form>#calendar-known-context,.calendar-quick-form>#calendar-form-status,.calendar-quick-form>.calendar-notes-details{grid-column:1/-1}.calendar-quick-form>label:not(.calendar-title-field){grid-column:span 4}

/* Fenêtres spécialisées : même cadre, surface utile conservée. */
dialog.carla-modal:is(.billing-preview-dialog,.document-viewer){width:min(var(--carla-modal-wide),calc(100vw - 40px))!important;border-radius:var(--carla-modal-radius)!important}
.client-create-shell.carla-modal-shell>*{grid-column:1/-1}

@media(max-width:900px){:root{--carla-modal-gutter:28px}.carla-modal-form .billing-form-grid>*{grid-column:span 6}.calendar-quick-form>.calendar-when,.calendar-quick-form>.calendar-choice-group{grid-column:1/-1}}
@media(max-width:680px){:root{--carla-modal-gutter:20px;--carla-section-gap:16px}dialog.carla-modal,dialog.carla-modal.carla-modal--compact,dialog.carla-modal.carla-modal--wide{width:calc(100vw - 16px)!important;max-height:calc(100dvh - 16px)}.carla-modal-form,.carla-modal-shell{max-height:calc(100dvh - 16px);padding:24px var(--carla-modal-gutter)}.carla-modal-form>header,.carla-modal-shell>header{margin:-24px calc(var(--carla-modal-gutter) * -1) 0;padding:22px var(--carla-modal-gutter) 18px!important}.carla-modal-form>footer{bottom:-24px;margin:0 calc(var(--carla-modal-gutter) * -1) -24px;padding:14px var(--carla-modal-gutter)!important}.carla-modal-form :is(.prospect-form-grid,.task-form-grid,.billing-form-grid,.client-form-grid,.matter-create-fields,.form-pair)>*,.calendar-quick-form>label:not(.calendar-title-field){grid-column:1/-1}.carla-section{padding:16px}.carla-modal-form>footer{flex-wrap:wrap}.carla-modal-form>footer .screen-action,.carla-modal-form>footer button[type=submit]{width:100%;order:-1}}

/* Densité premium — référence portable 13/14 pouces, sans changer les fonctions. */
@media(min-width:681px){
  :root{--carla-modal-gutter:28px;--carla-section-gap:12px;--carla-grid-gap:12px;--carla-control-height:40px}
  dialog.carla-modal{max-height:calc(100dvh - 24px)}
  .carla-modal-form,.carla-modal-shell{gap:12px;max-height:calc(100dvh - 24px);padding:22px var(--carla-modal-gutter)}
  .carla-modal-form>header,.carla-modal-shell>header{margin:-22px calc(var(--carla-modal-gutter) * -1) 0;padding:18px var(--carla-modal-gutter) 14px!important}
  .carla-modal-form>header h2,.carla-modal-shell>header h2{font-size:1.28rem}.carla-modal-form>header p,.carla-modal-shell>header p{margin-top:4px;line-height:1.35}
  .carla-modal-form>footer{bottom:-22px;margin:0 calc(var(--carla-modal-gutter) * -1) -22px;padding:11px var(--carla-modal-gutter)!important}
  .carla-section{gap:10px 12px;padding:13px 15px}.carla-section>h3,.carla-section-title{margin:0;font-size:.71rem}
  .carla-modal-form :is(.prospect-form-grid,.task-form-grid,.client-form-grid,.matter-create-fields,.form-pair,.billing-form-grid){gap:10px 12px}
  .carla-modal-form :is(.prospect-form-grid,.task-form-grid,.client-form-grid,.matter-create-fields)>*{grid-column:span 4}
  .carla-grid-heading{padding-bottom:6px}
  .carla-form:not(.outlook-compose):not(.composer) label{gap:4px}
  .carla-form:not(.outlook-compose):not(.composer) :is(input:not([type=checkbox]):not([type=radio]):not([type=color]):not([type=file]),select,textarea){padding:8px 10px}
  .carla-form:not(.outlook-compose):not(.composer) textarea{min-height:68px}
  .carla-context-banner,.carla-context-header{gap:10px;padding:9px 12px}.carla-context-banner>span,.carla-context-header>span{width:28px;height:28px}
  .carla-disclosure>summary{padding:9px 12px}.carla-disclosure>label{padding:0 12px 10px}
  .carla-choice-field,.carla-quick-select{gap:5px}.carla-choice-row{gap:5px}.carla-choice-row button{min-height:34px;padding:6px 10px}
  .carla-modal-form>footer button,.carla-modal-form>footer a,.carla-secondary-button{min-height:38px;padding:8px 13px}
  .client-create-shell.carla-modal-shell{padding-bottom:22px}
  .client-create-shell .client-type-step{padding:18px 0}.client-create-shell .client-type-step>div{gap:12px;margin-top:12px}.client-create-shell .client-type-step button{min-height:112px;padding:16px}.client-create-shell .client-type-step button>span{font-size:1.75rem}
  .client-create-shell .guided-client-form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;padding-top:8px}.client-create-shell .guided-client-form>.carla-section{align-content:start}.client-create-shell .guided-client-form>.carla-disclosure,.client-create-shell .guided-client-form>footer{grid-column:1/-1}
  .client-create-shell .client-form-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:9px 11px}.client-create-shell .client-form-grid label.wide{grid-column:1/-1}.client-create-shell .guided-client-form footer{margin-top:0;padding-top:10px}
  .client-create-shell .company-search-step{padding-top:12px}.client-create-shell .company-search-step h3{margin:8px 0}
}
@media(min-width:1180px){.client-create-shell .guided-client-form{grid-template-columns:repeat(2,minmax(0,1fr))}.client-create-shell .client-form-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.client-create-shell .client-form-grid label.wide{grid-column:span 2}}

/* Nouveau dossier — composition dédiée bâtie sur les contrôles et la modale Carla. */
dialog.carla-modal.matter-create-dialog{width:min(780px,calc(100vw - 40px))!important}
.matter-create-shell{row-gap:0;padding-bottom:0}
.matter-create-shell>.matter-create-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:22px 18px;padding:26px 0 28px}
.matter-create-shell>.matter-create-fields>*{grid-column:1/-1;min-width:0}
.matter-create-shell .matter-client-group,.matter-create-shell .matter-title-group{display:grid;gap:7px}
.matter-create-shell .matter-client-row{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:start;gap:11px}
.matter-create-shell .matter-client-combobox{position:relative;min-width:0}
.matter-create-shell .matter-client-combobox>input{padding-right:38px}
.matter-create-shell .matter-client-combobox:after{position:absolute;top:50%;right:14px;width:7px;height:7px;border-right:1.5px solid #718097;border-bottom:1.5px solid #718097;content:"";pointer-events:none;transform:translateY(-70%) rotate(45deg)}
.matter-create-shell [data-new-client]{min-height:var(--carla-control-height);padding:9px 14px;border:1px solid #cfd7e1;border-radius:6px;background:#fff;color:#29466f;font-size:.7rem;font-weight:780;white-space:nowrap;transition:border-color .15s,background .15s,box-shadow .15s}
.matter-create-shell [data-new-client]:hover{border-color:#9eabba;background:#f8fafc}
.matter-create-shell [data-new-client]:focus-visible{outline:0;box-shadow:0 0 0 3px rgba(41,70,111,.1)}
.matter-create-shell .matter-title-group{grid-column:1/-1}
.matter-create-shell .matter-create-pair{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}
.matter-create-shell label{display:grid;align-content:start;gap:7px;color:#46566d;font-size:.7rem;font-weight:760;line-height:1.25}
.matter-create-shell .required-mark{color:#a57427}
.matter-create-shell :is(input:not([type=checkbox]),select){width:100%;min-width:0;min-height:46px;padding:10px 13px;border:1px solid var(--carla-border);border-radius:7px;background:#fff;color:#263851;font:inherit;box-shadow:0 1px 2px rgba(23,42,73,.03);transition:border-color .15s,box-shadow .15s,background .15s}
.matter-create-shell :is(input,select)::placeholder{color:#929dac;opacity:1}
.matter-create-shell :is(input,select):hover{border-color:#bdc7d3}
.matter-create-shell :is(input,select):focus{border-color:#7589a3;outline:0;box-shadow:0 0 0 3px rgba(41,70,111,.1)}
.matter-create-shell :is(input,select):disabled{background:#f2f4f7;color:#758195;cursor:not-allowed}
.matter-create-shell :is(input,select)[aria-invalid="true"]{border-color:#b85e55;box-shadow:0 0 0 3px rgba(184,94,85,.08)}
.matter-create-shell .field-error{min-height:16px;margin:0;color:#a44740;font-size:.66rem;line-height:16px}
.carla-modal-form.matter-create-shell .field-error:not(:empty){padding:0;background:transparent;color:#a44740}
.matter-create-shell .matter-client-results{position:absolute;z-index:12;top:calc(100% + 6px);right:0;left:0;max-height:248px;padding:5px;overflow:auto;border:1px solid #d7dee7;border-radius:8px;background:#fff;box-shadow:0 16px 38px rgba(20,39,65,.16)}
.matter-create-shell .matter-client-results[hidden]{display:none}
.matter-create-shell .matter-client-option{display:grid;width:100%;gap:3px;padding:10px 11px;border:0;border-radius:6px;background:transparent;color:#263b5b;text-align:left;cursor:pointer}
.matter-create-shell .matter-client-option:hover,.matter-create-shell .matter-client-option.active{background:#f1f5f9;outline:0}
.matter-create-shell .matter-client-option strong{font-size:.74rem;font-weight:760}
.matter-create-shell .matter-client-option small{color:#7a8798;font-size:.63rem}
.matter-create-shell .matter-client-empty{margin:0;padding:11px;color:#7a8798;font-size:.68rem}
.matter-create-shell>.matter-create-status{min-height:0;margin:0 0 18px}
.matter-create-shell>.matter-create-status:empty{display:none}
dialog.matter-create-dialog .matter-create-shell>footer{position:sticky;bottom:0;z-index:5;display:flex;align-items:center;justify-content:flex-end;gap:10px;margin:0 calc(var(--carla-modal-gutter) * -1);padding:17px var(--carla-modal-gutter)!important;border:0!important;background:rgba(255,255,255,.98);box-shadow:0 -1px #e7ebf0;backdrop-filter:blur(10px)}
.matter-create-shell>footer button{min-height:40px;padding:9px 15px;border:1px solid #d6dde6;border-radius:6px;background:#fff;color:#536177;font-weight:760}
.matter-create-shell>footer .screen-action{min-width:190px;border-color:var(--carla-primary);background:var(--carla-primary);color:#fff;box-shadow:0 6px 16px rgba(32,56,88,.18)}
.matter-create-shell>footer .screen-action:hover{background:#182f4e}
.matter-create-shell>footer button:disabled{cursor:wait;opacity:.65}
.sr-only{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}

@media(max-width:680px){
  dialog.carla-modal.matter-create-dialog{width:calc(100vw - 16px)!important}
  .matter-create-shell>.matter-create-fields{gap:18px;padding:22px 0 24px}
  .matter-create-shell .matter-client-row,.matter-create-shell .matter-create-pair{grid-template-columns:1fr}
  .matter-create-shell [data-new-client]{justify-self:start}
  dialog.matter-create-dialog .matter-create-shell>footer{margin:0 calc(var(--carla-modal-gutter) * -1);flex-wrap:wrap}
  .matter-create-shell>footer .screen-action{width:100%;order:-1}
}
