/* PTI Admin — gestion intégrée (même langage visuel que la plateforme : blanc, gris clair, graphite). */
.biz-kpis{grid-template-columns:repeat(auto-fit,minmax(160px,1fr))}
.stat-card small{font-size:11.5px;color:var(--muted)}
.stat-card.is-warn strong{color:#a33b35}
.biz-tabs{display:flex;gap:6px;flex-wrap:wrap;margin:22px 0 4px;padding:4px;background:#ececef;border-radius:11px;width:max-content;max-width:100%}
.biz-tab{background:transparent!important;border:0!important;color:var(--muted)!important;min-height:34px;padding:6px 14px;border-radius:8px;font-weight:600}
.biz-tab:hover{color:var(--ink)!important}
.biz-tab.is-active{background:#fff!important;color:var(--ink)!important;box-shadow:0 1px 3px rgba(0,0,0,.08)}
.biz-tab b{font-weight:700;margin-left:4px;padding:1px 7px;border-radius:999px;background:rgba(0,0,0,.07);font-size:11px}
.biz-filters{margin:18px 0}
.biz-filters label.check,.toolbar label.check{flex:0 0 auto;min-width:0;display:flex;align-items:center;gap:8px;align-self:center;font-weight:500}
.panel.flush{padding:0;overflow:hidden}
.panel.flush .table-wrap{border:0;border-radius:0}
.panel.flush .empty{padding:24px}
table th.num,table td.num{text-align:right;white-space:nowrap;font-variant-numeric:tabular-nums}
table td small{display:block;margin-top:3px;font-size:11.5px}
table tr.clickable{cursor:pointer}
table tr.clickable:hover td{background:#fafafb}
.pos{color:#2f6b47}.neg{color:#a33b35}
.row-actions{display:flex;gap:6px;flex-wrap:wrap;align-items:center}
.row-actions .button{min-height:32px;padding:6px 12px;font-size:12px}
.biz-h2{font-size:17px;margin:30px 0 0}
.biz-inline{margin:8px 2px 0;font-size:12.5px}
.biz-pager{justify-content:center;align-items:center}
.biz-pager>*{width:auto}
.biz-grid2{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin-top:16px}
.biz-grid3{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin:16px 0}
.biz-dl{display:grid;grid-template-columns:auto 1fr;gap:6px 14px;margin:8px 0;font-size:13px}
.biz-dl dt{color:var(--muted)}
.biz-dl dd{margin:0;text-align:right;font-variant-numeric:tabular-nums}
.biz-dl.is-nested{font-size:12px}
.biz-modal{border:1px solid var(--line);border-radius:14px;padding:0;width:min(640px,calc(100vw - 24px));max-height:88vh;box-shadow:0 30px 80px rgba(0,0,0,.25);color:var(--ink)}
.biz-modal.is-wide{width:min(980px,calc(100vw - 24px))}
.biz-modal::backdrop{background:rgba(20,20,22,.35)}
.biz-modal-head{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:16px 20px;border-bottom:1px solid var(--line);position:sticky;top:0;background:#fff;z-index:1}
.biz-modal-head h2{margin:0;font-size:17px}
.biz-modal-body{padding:18px 20px 22px;overflow:auto}
.biz-modal-body h3{font-size:14px;margin:18px 0 6px}
.biz-import{align-items:end}
.biz-import p{flex-basis:100%;margin:0}
.biz-tx{display:grid;grid-template-columns:minmax(0,1.3fr) auto minmax(0,1.6fr);gap:16px;align-items:start;padding:14px 18px;border-top:1px solid var(--line)}
.biz-tx:first-child{border-top:0}
.biz-tx-main{display:grid;gap:3px}
.biz-tx-amount{font-weight:700;font-variant-numeric:tabular-nums;white-space:nowrap;padding-top:14px}
.biz-tx-side{display:grid;gap:8px}
.biz-sugg{display:flex;justify-content:space-between;gap:10px;align-items:center;padding:8px 10px;border:1px solid var(--line);border-radius:10px;background:#fafafb}
.biz-sugg.is-alt{opacity:.85}
.biz-sugg small{display:block;margin-top:3px}
.biz-notif{display:grid;grid-template-columns:34px minmax(0,1fr) auto;gap:14px;align-items:center;padding:14px 18px;border-top:1px solid var(--line)}
.biz-notif:first-child{border-top:0}
.biz-notif p{margin:3px 0 0;color:var(--muted);font-size:13px}
.biz-notif strong{display:block}
.biz-notif-icon{width:34px;height:34px;border-radius:10px;display:grid;place-items:center;font-weight:800;background:#f0f0f2}
.biz-notif.is-danger .biz-notif-icon{background:#f7eceb;color:#a33b35}
.biz-notif.is-warning .biz-notif-icon{background:#f6f0e2;color:#8a6417}
.biz-notif.is-read{opacity:.55}
.biz-quick{display:flex;flex-wrap:wrap;gap:8px}
.biz-chat{display:grid;gap:14px}
.biz-thread{display:grid;gap:12px;max-height:60vh;overflow:auto}
.biz-thread:empty{display:none}
.biz-msg{padding:12px 14px;border-radius:12px;border:1px solid var(--line);max-width:100%;overflow:auto}
.biz-msg.is-user{justify-self:end;background:#1d1d1f;color:#fff;border-color:#1d1d1f;max-width:80%}
.biz-msg.is-bot{background:#fafafb}
.biz-msg small{display:block;margin-top:8px}
.biz-ask{display:flex;gap:8px}
.biz-ask input{flex:1}
.biz-report .panel-head{align-items:flex-start}
@media (max-width:760px){.biz-grid2,.biz-grid3{grid-template-columns:1fr}.biz-tx{grid-template-columns:1fr auto}.biz-tx-side{grid-column:1/-1}.biz-notif{grid-template-columns:34px 1fr}.biz-notif .row-actions{grid-column:2}.biz-tabs{width:100%}.biz-tab{flex:1}}
@media print{body.biz-printing header,body.biz-printing main>*:not(#report),body.biz-printing .no-print,body.biz-printing #notice{display:none!important}body.biz-printing main{padding:0!important}body.biz-printing .panel{border:0}}
html[data-pti-theme=dark] .biz-tabs{background:#2a2a2d}
html[data-pti-theme=dark] .biz-tab.is-active{background:#1c1c1e!important;color:#f5f5f7!important}
html[data-pti-theme=dark] .biz-modal,html[data-pti-theme=dark] .biz-modal-head{background:#1c1c1e;color:#f5f5f7;border-color:#3a3a3c}
html[data-pti-theme=dark] .biz-sugg,html[data-pti-theme=dark] .biz-msg.is-bot,html[data-pti-theme=dark] table tr.clickable:hover td{background:#232325}

[hidden] { display: none !important; }
/* Barre de période : raccourcis d'abord, dates précises seulement si besoin */
.biz-period { flex-wrap: wrap; row-gap: 10px; }
.range-chips { display: inline-flex; flex-wrap: wrap; gap: 4px; padding: 3px; border: 1px solid var(--c-line, #e4e8e2); border-radius: 10px; background: var(--c-surface, #fff); }
.range-chip { border: 0; background: transparent; color: var(--c-muted, #6d786c); font: inherit; font-size: 12.5px; font-weight: 550; padding: 7px 12px; border-radius: 8px; cursor: pointer; white-space: nowrap; }
.range-chip:hover { background: var(--c-sage, #eef3ed); color: var(--c-ink, #252d29); }
.range-chip.is-active { background: var(--c-green, #294a3e); color: #fff; }
body.theme-dark .range-chip.is-active { color: #111; }
.range-dates { display: inline-flex; gap: 10px; align-items: flex-end; }
.range-dates[hidden] { display: none; }
@media (max-width: 700px) { .range-chips { width: 100%; justify-content: flex-start; } .range-dates { width: 100%; } .range-dates label { flex: 1; } }

/* Page Paramètres : une carte par réglage, sans imbrication */
.biz-cards { display: grid; grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)); gap: 12px; margin-bottom: 26px; }
.biz-card { display: grid; gap: 5px; padding: 16px 18px; border: 1px solid var(--c-line, #e4e8e2); border-radius: 12px; background: var(--c-surface, #fff); text-decoration: none; color: inherit; transition: border-color .15s, background .15s; }
.biz-card:hover { border-color: var(--c-green, #294a3e); background: var(--c-sage, #f4f7f2); }
.biz-card strong { font-size: 14px; font-weight: 600; }
.biz-card span { font-size: 12px; color: var(--c-muted, #6d786c); line-height: 1.5; }
.biz-subnav { display: flex; flex-wrap: wrap; gap: 14px; margin: -8px 0 18px; font-size: 12.5px; }
.biz-subnav a { color: var(--c-green, #294a3e); text-decoration: underline; text-underline-offset: 3px; }

/* ---------- Densité : moins de cadres, une seule couleur d'accent ---------- */
.biz-kpis .stat-card { border: 0; background: var(--c-sage, #f4f6f2); box-shadow: none; padding: 14px 16px; }
.biz-kpis .stat-card strong { font-size: 21px; letter-spacing: -.4px; }
.biz-kpis .stat-card span { font-size: 11px; letter-spacing: .4px; text-transform: uppercase; color: var(--c-muted, #6d786c); }
.biz-kpis .stat-card.is-warn { background: #fdf6e8; }
.biz-h2 { font-size: 15px; font-weight: 600; margin: 26px 0 12px; }
.biz-tabs { gap: 2px; }
.biz-filters { gap: 10px; }
.panel-note{margin:0;padding:12px 16px;border-top:1px solid var(--c-line,#e4e8e2);font-size:12px;color:var(--c-muted,#6d786c)}
#tools table td small{display:block;font-size:11px;color:var(--c-muted,#6d786c);margin-top:3px}
#tools table code{font-size:11px}
.panel-note.row { gap: 18px; align-items: center; }
.panel-note select { width: auto; min-width: 90px; }
.panel-note label.row { gap: 8px; white-space: nowrap; }
.calc-row { display: flex; flex-wrap: wrap; gap: 16px; align-items: flex-end; padding: 18px 20px 6px; }
.calc-row label { display: grid; gap: 6px; font-size: 12px; font-weight: 600; color: var(--c-muted, #6d786c); }
.calc-row input, .calc-row select { min-width: 150px; }
.calc-quick { display: flex; gap: 6px; padding-bottom: 2px; }
.biz-fold { border: 1px solid var(--c-line, #e4e8e2); border-radius: 12px; margin-top: 18px; background: var(--c-surface, #fff); }
.biz-fold > summary { cursor: pointer; padding: 14px 18px; font-size: 13px; font-weight: 600; list-style: none; }
.biz-fold > summary::-webkit-details-marker { display: none; }
.biz-fold > summary::before { content: "▸ "; color: var(--c-muted, #6d786c); }
.biz-fold[open] > summary::before { content: "▾ "; }
.biz-kpis .stat-card.is-accent { background: var(--c-green, #294a3e); color: #fff; }
.biz-kpis .stat-card.is-accent span, .biz-kpis .stat-card.is-accent small { color: rgba(255,255,255,.75); }

/* ---------- Cabinet : jauge de documents, recherche de client ---------- */
.firm-quota{margin:0 0 12px;padding:14px 16px;border:1px solid var(--biz-line,#e4e8e2);border-radius:12px;background:var(--biz-surface,#fff)}
.firm-quota p{margin:0 0 8px;font-size:13px}
.firm-quota p:last-child{margin-bottom:0}
.firm-bar{height:8px;border-radius:99px;background:#eef1ec;overflow:hidden}
.firm-bar span{display:block;height:100%;background:#2f5d45;border-radius:99px}
.firm-quota.is-warn .firm-bar span{background:#a97b23}
.firm-quota.is-full .firm-bar span{background:#a8443c}
.firm-quota-note{color:#a8443c}
.firm-toolbar{display:flex;gap:12px;align-items:flex-end;flex-wrap:wrap;margin:14px 0}
.firm-search{display:grid;gap:6px;flex:1;min-width:220px;max-width:380px;font-size:12px;font-weight:600}
.firm-settings{border-top:1px dashed var(--biz-line,#e4e8e2);margin-top:10px;padding-top:12px;flex-wrap:wrap;gap:12px}
.firm-settings label{font-size:12px}
.firm-settings input[type=number]{width:120px}
.firm-settings .check-label{display:flex;align-items:center;gap:8px;max-width:260px;font-weight:600}
.firm-settings .check-label input[type=checkbox]{flex:0 0 auto;width:17px;height:17px;margin:0}

/* Suppression et suspension : le rouge n'est utilisé que pour ce qui efface vraiment. */
button.danger,.button.danger{border-color:#e2c3c0;color:#a33b35}
button.danger:hover,.button.danger:hover{background:#f7eceb;border-color:#d7a9a4}
body.theme-dark button.danger,html[data-pti-theme="dark"] button.danger{border-color:#4a2e2b;color:#e0a09a}
body.theme-dark button.danger:hover,html[data-pti-theme="dark"] button.danger:hover{background:#2a1b1a}
.sub-panel.is-suspended{opacity:.7}
.sub-panel .chip.warn{display:inline-block;padding:2px 8px;border-radius:999px;font-size:11px;font-weight:600;background:#f7eceb;color:#a33b35;border:1px solid #eed3d0;vertical-align:middle}
.sub-panel details{margin:8px 0}
.sub-panel details summary{cursor:pointer;font-size:12.5px;font-weight:600}

/* Premier écran d'un cabinet sans dossier : on explique et on propose l'action, pas un vide. */
.firm-start h2{margin:0 0 8px;font-size:17px}
.firm-start p{margin:0 0 10px;max-width:60ch}
.firm-start ul{margin:0 0 10px 18px;padding:0;max-width:60ch}
.firm-start li{margin-bottom:5px}
.firm-start .primary{margin-top:6px}
.firm-trash h2{margin:0 0 6px;font-size:16px}
.firm-trash p{margin:0 0 8px}
.firm-trash strong{font-weight:600}
/* Connexions : formulaires privés de l'administrateur PTI. */
.connection-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;align-items:start}.connection-form h2,.connection-form p{margin:0}.connection-scope{padding:12px;border-radius:8px;background:var(--sage);font-size:12px;line-height:1.5}.connection-buttons{display:flex;gap:10px;flex-wrap:wrap}.connection-saved{padding:16px;border:1px solid var(--line);border-radius:10px;background:var(--surface)}.connection-saved p{margin-top:0}@media(max-width:760px){.connection-grid{grid-template-columns:1fr;gap:0}}

/* 0.14.0 — Équipe du cabinet : le responsable ajoute ses collaborateurs. */
.firm-team{margin-top:18px}
.firm-team h2{margin:0 0 6px;font-size:16px}
.firm-team h3{margin:18px 0 10px;font-size:14px}
.firm-team td select{min-width:150px}
.firm-team-fields{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:12px;margin-bottom:12px}
.firm-team-fields label{display:grid;gap:6px;font-size:12px;font-weight:600}
.firm-team-pass{display:flex;gap:6px}
.firm-team-pass input{flex:1;min-width:0}
.firm-team-add .caption{margin:10px 0 0;max-width:70ch}