/* ---------- Page-specific: Espace Pro ---------- */
.sb-switch { display:flex; align-items:center; gap:10px; padding:9px 12px; border:1px solid var(--border); border-radius:var(--r-md); background:var(--surface); margin-bottom:8px; font-weight:600; font-size:.9rem; }
.sb-switch .avatar { width:28px; height:28px; font-size:.68rem; }
.sb-switch .cv { margin-left:auto; color:var(--fg-3); font-size:.8rem; }
.sidebar .navitem i { width:18px; text-align:center; color:var(--fg-3); }
.sidebar .navitem.active i { color:inherit; }
.sidebar .sb-bottom { margin-top:auto; display:flex; gap:8px; align-items:center; padding-top:12px; border-top:1px solid var(--border); }
.sidebar .sb-bottom a { flex:1; }
@media (max-width:900px) { .sidebar .sb-bottom { margin-top:0; border-top:0; padding-top:0; width:100%; } .sidebar .sb-switch { width:100%; } .sidebar .navitem { width:auto; } }
.topbar .search { flex:1; min-width:200px; max-width:420px; margin-left:auto; }
.topbar .search .input { padding-block:9px; }
.topbar .avatar[data-tip]::after { left:auto; right:0; transform:translateY(4px); }
.topbar .avatar[data-tip]:hover::after { transform:none; }
.bell { position:relative; }
.bell .nb { position:absolute; top:-5px; right:-5px; min-width:18px; height:18px; border-radius:999px; background:var(--bad); color:#fff; font-size:.64rem; font-weight:700; display:grid; place-content:center; padding:0 5px; }
.section-h { display:flex; align-items:center; justify-content:space-between; gap:12px; flex-wrap:wrap; margin-bottom:14px; }
.section-h h3 { font-size:1rem; }
.sub { color:var(--fg-3); font-size:.8rem; }
.view { animation: fadeUp var(--t-med) var(--ease); }
.chart { width:100%; height:auto; font-family:var(--font-body); }
.chart text { font-family:var(--font-body); }
/* Dashboard */
.tl-item { display:grid; grid-template-columns:50px 36px 1fr auto; gap:12px; align-items:center; padding:10px 0; border-bottom:1px solid var(--border); }
.tl-item:last-child { border-bottom:0; }
.tl-item .time { font-family:var(--font-mono); font-size:.8rem; color:var(--fg-2); }
.tl-item .who { font-weight:600; font-size:.9rem; }
.tl-item .what { font-size:.78rem; color:var(--fg-3); }
.occ-row { display:grid; grid-template-columns:96px 1fr 42px; gap:12px; align-items:center; font-size:.86rem; margin-bottom:12px; }
.occ-row:last-child { margin-bottom:0; }
.mini-kpi { display:flex; align-items:center; gap:12px; padding:10px 12px; background:var(--surface-2); border-radius:var(--r-md); }
.mini-kpi .v { font-size:1.3rem; font-weight:700; }
/* Agenda */
.ag-wrap { overflow:auto; border:1px solid var(--border); border-radius:var(--r-lg); background:var(--surface); max-height:72vh; position:relative; }
.ag { display:grid; grid-template-columns:56px repeat(var(--cols,7), minmax(150px,1fr)); min-width:max-content; width:100%; }
.ag-head { position:sticky; top:0; z-index:5; background:var(--surface); border-bottom:1px solid var(--border); border-left:1px solid var(--border); padding:10px 8px; text-align:center; font-size:.74rem; font-weight:600; color:var(--fg-2); text-transform:uppercase; letter-spacing:.08em; }
.ag-head .d { display:block; font-size:1.1rem; font-weight:700; color:var(--fg); letter-spacing:0; text-transform:none; }
.ag-head.today .d { color:var(--accent); }
.ag-corner { position:sticky; top:0; left:0; z-index:7; background:var(--surface); border-bottom:1px solid var(--border); }
.ag-time { position:sticky; left:0; height:var(--h); z-index:6; background:var(--surface); }
.ag-time span { position:absolute; right:8px; transform:translateY(-50%); font-size:.68rem; color:var(--fg-3); font-family:var(--font-mono); }
.ag-col { position:relative; height:var(--h); border-left:1px solid var(--border); background-image:repeating-linear-gradient(to bottom, var(--border) 0 1px, transparent 1px calc(var(--row) * 2)); }
.ag-col.closed { background-image:repeating-linear-gradient(135deg, var(--surface-2) 0 8px, transparent 8px 16px); }
.appt { position:absolute; left:4px; right:4px; border-radius:8px; padding:5px 8px; font-size:.72rem; line-height:1.25; overflow:hidden; cursor:pointer; border-left:3px solid var(--c, var(--accent)); background:color-mix(in srgb, var(--c, var(--accent)) 18%, var(--surface)); color:var(--fg); transition:transform var(--t-fast), box-shadow var(--t-fast); }
.appt:hover { transform:scale(1.015); box-shadow:var(--shadow-1); z-index:3; }
.appt b { display:block; font-weight:700; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.appt .m { color:var(--fg-2); white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.appt.google { --c:var(--violet); background:repeating-linear-gradient(135deg, var(--violet-soft) 0 6px, transparent 6px 12px), var(--surface-2); cursor:default; }
.appt.google b { color:var(--violet); }
.appt.pause { --c:var(--fg-3); background:var(--surface-2); color:var(--fg-3); cursor:default; }
.appt.annule { opacity:.45; text-decoration:line-through; }
.appt.attente { border-left-style:dashed; }
.appt[data-tip]::after { white-space:normal; width:200px; left:50%; bottom:auto; top:calc(100% + 6px); }
.nowline { position:absolute; left:0; right:0; height:2px; background:var(--bad); z-index:4; pointer-events:none; }
.nowline::before { content:""; position:absolute; left:-5px; top:-4px; width:10px; height:10px; border-radius:50%; background:var(--bad); }
.legend { display:flex; gap:16px; flex-wrap:wrap; font-size:.78rem; color:var(--fg-2); }
.legend i { width:12px; height:12px; border-radius:3px; display:inline-block; margin-right:6px; vertical-align:-2px; }
.month-grid { display:grid; grid-template-columns:repeat(7,1fr); gap:6px; }
.month-cell { min-height:84px; background:var(--surface-2); border:1px solid var(--border); border-radius:var(--r-md); padding:8px; font-size:.82rem; cursor:pointer; }
.month-cell.off { opacity:.35; }
.month-cell.today { border-color:var(--accent); }
.month-cell .n { font-weight:700; }
.month-cell .bar { height:5px; border-radius:3px; background:var(--accent); margin-top:8px; }
.drawer-body { padding:24px; display:flex; flex-direction:column; gap:18px; }
.drawer-head { display:flex; align-items:center; justify-content:space-between; padding:18px 24px; border-bottom:1px solid var(--border); }
.kv { display:grid; grid-template-columns:120px 1fr; gap:8px 12px; font-size:.88rem; }
.kv dt { color:var(--fg-3); } .kv dd { margin:0; font-weight:500; }
.hist-item { display:flex; justify-content:space-between; gap:10px; padding:8px 0; border-bottom:1px solid var(--border); font-size:.85rem; }
.hist-item:last-child { border-bottom:0; }
.switch-row { display:flex; align-items:center; justify-content:space-between; gap:12px; padding:10px 0; border-bottom:1px solid var(--border); font-size:.88rem; }
.switch-row:last-child { border-bottom:0; }
.switch-row .sub { display:block; }
/* Tables */
.tr-click { cursor:pointer; }
.table .actions { display:flex; gap:4px; justify-content:flex-end; }
.table .actions .btn-icon { width:32px; height:32px; }
.tags-cell { display:flex; gap:4px; flex-wrap:wrap; }
.filters { display:flex; gap:12px; align-items:center; flex-wrap:wrap; margin-bottom:14px; }
.filters .input-wrap { min-width:240px; }
/* Prestations */
.svc-row { display:grid; grid-template-columns:28px 1fr 110px 110px auto auto 36px; gap:12px; align-items:center; padding:10px 0; border-bottom:1px solid var(--border); font-size:.9rem; }
.svc-row:last-child { border-bottom:0; }
.svc-row .handle { color:var(--fg-3); cursor:grab; }
.svc-row .input { padding:7px 10px; font-size:.86rem; }
.svc-row .sw { display:flex; align-items:center; gap:8px; font-size:.78rem; color:var(--fg-3); white-space:nowrap; }
@media (max-width:760px) { .svc-row { grid-template-columns:28px 1fr 36px; } .svc-row .sw, .svc-row .input { grid-column:2 / 3; } }
/* Equipe */
.hours-mini { display:grid; grid-template-columns:repeat(7,1fr); gap:4px; }
.hours-mini .dc { font-size:.66rem; text-align:center; color:var(--fg-3); font-weight:700; }
.hours-mini .bar { height:34px; border-radius:6px; background:var(--surface-2); position:relative; overflow:hidden; }
.hours-mini .bar span { position:absolute; left:0; right:0; background:var(--c, var(--accent)); opacity:.75; border-radius:4px; }
.color-dot { width:18px; height:18px; border-radius:50%; border:2px solid var(--surface); box-shadow:0 0 0 1px var(--border-strong); cursor:pointer; }
.color-dot.sel { box-shadow:0 0 0 2px var(--fg); }
/* Messages */
.tpl-item { display:flex; align-items:center; gap:10px; width:100%; text-align:left; padding:9px 12px; border-radius:var(--r-md); color:var(--fg-2); font-size:.88rem; font-weight:500; }
.tpl-item:hover { background:var(--surface-2); color:var(--fg); }
.tpl-item.active { background:var(--accent-soft); color:var(--accent); }
.tpl-item .st { margin-left:auto; font-size:.66rem; }
.vars { display:flex; gap:6px; flex-wrap:wrap; }
.vars .chip { padding:5px 10px; font-family:var(--font-mono); font-size:.74rem; }
.phone { width:230px; margin:0 auto; background:var(--bg); border:6px solid var(--surface-3); border-radius:32px; padding:36px 12px 26px; position:relative; min-height:400px; box-shadow:var(--shadow-2); }
.phone::before { content:""; position:absolute; top:10px; left:50%; transform:translateX(-50%); width:70px; height:16px; border-radius:999px; background:var(--surface-3); }
.phone .from { text-align:center; font-size:.7rem; color:var(--fg-3); margin-bottom:12px; }
.phone .from b { display:block; color:var(--fg); font-size:.8rem; }
.bubble { background:var(--surface-2); border:1px solid var(--border); border-radius:16px 16px 16px 4px; padding:10px 12px; font-size:.78rem; line-height:1.45; white-space:pre-wrap; word-break:break-word; }
.bubble.mail { border-radius:10px; }
.bubble.mail .subj { font-weight:700; border-bottom:1px solid var(--border); padding-bottom:6px; margin-bottom:6px; }
.phone .ts { font-size:.64rem; color:var(--fg-3); margin-top:6px; }
.counter { font-family:var(--font-mono); font-size:.76rem; color:var(--fg-3); }
.counter.over { color:var(--warn); }
.msg-layout { display:grid; grid-template-columns:240px 1fr 290px; gap:20px; align-items:start; }
@media (max-width:1100px) { .msg-layout { grid-template-columns:220px 1fr; } .msg-layout > :last-child { grid-column:1 / -1; } }
@media (max-width:760px) { .msg-layout { grid-template-columns:1fr; } }
/* Sync */
.sync-card .logo-box { width:44px; height:44px; border-radius:12px; display:grid; place-content:center; font-size:1.2rem; background:var(--surface-2); }
.ical-link { display:flex; gap:8px; align-items:center; }
.ical-link code { flex:1; background:var(--bg-2); border:1px solid var(--border); padding:8px 10px; border-radius:var(--r-sm); font-family:var(--font-mono); font-size:.72rem; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.rule { display:grid; grid-template-columns:1fr auto; gap:14px; align-items:center; padding:12px 0; border-bottom:1px solid var(--border); }
.rule:last-child { border-bottom:0; }
.rule .ctl { min-width:200px; }
/* Avis */
.rating-big { font-family:var(--font-display); font-size:3.2rem; line-height:1; }
.rbar { display:grid; grid-template-columns:14px 1fr 36px; gap:8px; align-items:center; font-size:.8rem; color:var(--fg-2); margin-bottom:6px; }
.review { padding:16px 0; border-bottom:1px solid var(--border); }
.review:last-child { border-bottom:0; }
.review .reply { margin-top:10px; padding:10px 12px; background:var(--surface-2); border-radius:var(--r-md); font-size:.85rem; border-left:3px solid var(--accent); }
/* Stats */
.heat { display:grid; grid-template-columns:34px repeat(12,1fr); gap:3px; }
.heat .lbl { font-size:.66rem; color:var(--fg-3); display:flex; align-items:center; justify-content:center; }
.heat .cell { aspect-ratio:1.4; border-radius:4px; background:var(--accent); min-height:18px; }
.heat .cell[data-tip]::after { font-size:.68rem; }
/* Paramètres */
.hour-row { display:grid; grid-template-columns:100px 48px 1fr 20px 1fr; gap:10px; align-items:center; padding:8px 0; border-bottom:1px solid var(--border); font-size:.88rem; }
.hour-row:last-child { border-bottom:0; }
.hour-row .input { padding:7px 10px; }
.hour-row.off .input { opacity:.4; pointer-events:none; }
.dropzone { border:1.5px dashed var(--border-strong); border-radius:var(--r-lg); padding:26px; text-align:center; color:var(--fg-3); font-size:.86rem; transition:all var(--t-fast); cursor:pointer; }
.dropzone:hover { border-color:var(--accent); color:var(--accent); background:var(--accent-soft); }
.photo-strip { display:grid; grid-template-columns:repeat(4,1fr); gap:8px; margin-top:12px; }
.photo-strip div { aspect-ratio:4/3; border-radius:var(--r-md); }
.sticky-save { position:sticky; bottom:16px; display:flex; justify-content:flex-end; gap:10px; padding:12px 16px; background:color-mix(in srgb, var(--surface) 88%, transparent); backdrop-filter:blur(10px); border:1px solid var(--border-strong); border-radius:var(--r-lg); margin-top:20px; }

/* ===== Addendum 1 : sidebar repliable, tiroir mobile, focus, transitions ===== */
.sidebar { transition: width var(--t-med) var(--ease); }
.sidebar .navitem span, .sidebar .sb-switch > span:not(.avatar), .sidebar .wordmark, .sidebar .sb-bottom a, .sidebar .badge { transition: opacity var(--t-fast); }
body.sb-collapsed .sidebar { width: 68px; min-width: 68px; padding-inline: 10px; }
body.sb-collapsed .sidebar .navitem span, body.sb-collapsed .sidebar .wordmark,
body.sb-collapsed .sidebar .sb-switch span:not(.avatar), body.sb-collapsed .sidebar .sb-switch .cv,
body.sb-collapsed .sidebar .count, body.sb-collapsed .sidebar > .badge,
body.sb-collapsed .sidebar .sb-bottom a span, body.sb-collapsed .sidebar .sb-bottom form { display: none; }
body.sb-collapsed .sidebar .navitem { justify-content: center; }
body.sb-collapsed .sidebar .sb-switch { justify-content: center; padding: 8px; }
body.sb-collapsed .sidebar .sb-bottom { justify-content: center; }
#sbToggle { margin-top: 4px; }
/* Tooltips (au survol ET au focus clavier) */
[data-tip] { position: relative; }
[data-tip]::after { content: attr(data-tip); position: absolute; left: 50%; top: 100%; transform: translate(-50%, 6px); background: var(--surface-3); color: var(--fg); font-size: .72rem; font-weight: 600; padding: 5px 9px; border-radius: 7px; white-space: nowrap; opacity: 0; pointer-events: none; transition: opacity var(--t-fast), transform var(--t-fast); z-index: 90; border: 1px solid var(--border-strong); box-shadow: var(--shadow-1); }
[data-tip]:hover::after, [data-tip]:focus-visible::after { opacity: 1; transform: translate(-50%, 2px); }
body.sb-collapsed .sidebar .navitem[data-tip]::after { left: calc(100% + 8px); top: 50%; transform: translate(0, -50%); }
body.sb-collapsed .sidebar .navitem[data-tip]:hover::after, body.sb-collapsed .sidebar .navitem[data-tip]:focus-visible::after { opacity: 1; transform: translate(4px, -50%); }
/* Focus visible global */
a:focus-visible, button:focus-visible, .input:focus-visible, .select:focus-visible, [tabindex]:focus-visible { outline: 2px solid var(--accent); outline-offset: 2px; border-radius: 6px; }
/* Tiroir mobile */
#sbBackdrop { position: fixed; inset: 0; background: rgba(0,0,0,.55); z-index: 69; opacity: 0; pointer-events: none; transition: opacity var(--t-med); }
#sbBackdrop.show { opacity: 1; pointer-events: auto; }
#sbHamburger { display: none; }
@media (max-width: 900px) {
  #sbHamburger { display: inline-flex; }
  .app .sidebar { position: fixed; left: 0; top: 0; bottom: 0; width: min(290px, 85vw) !important; min-width: 0 !important; z-index: 70; transform: translateX(-102%); transition: transform var(--t-med) var(--ease); flex-direction: column !important; overflow-y: auto; background: var(--surface); border-right: 1px solid var(--border-strong); padding: 16px !important; }
  body.sb-open .app .sidebar { transform: translateX(0); box-shadow: var(--shadow-2); }
  body.sb-collapsed .app .sidebar { width: min(290px, 85vw) !important; }
  body.sb-collapsed .sidebar .navitem span, body.sb-collapsed .sidebar .wordmark { display: inline; }
  body.sb-collapsed .sidebar .navitem { justify-content: flex-start; }
}
