/* Sousa Group One — unified workspace: shared tokens across every module. */
body[data-brand] {
  --bg:#10151e; --soft:#18202c; --panel:#1c2532; --panel2:#253141;
  --border:#3d4a5c; --text:#edf2f8; --muted:#aab9cc;
  --green:#bdcde4; --green2:#afc0d9; --action:#afc7ef; --on-action:#142139;
  --shadow:0 8px 28px #00000018; --radius:16px;
  --card:var(--panel); --accent:var(--action);
  --accent-soft:color-mix(in srgb,var(--action) 12%,var(--panel));
  --sgo-focus:3px solid var(--action); color-scheme:dark;
}
body.light[data-brand] {
  --bg:#f3f5f8; --soft:#f8f9fc; --panel:#fff; --panel2:#eef2f7;
  --border:#dce3ec; --text:#202c3d; --muted:#5e6d80;
  --green:#354e71; --green2:#283d5b; --action:#283f61; --on-action:#fff;
  --shadow:0 6px 24px #20304907; color-scheme:light;
}
body[data-brand="home"] { --brand-hue:158; --brand-saturation:70%; --green:#57d5aa; }
body[data-brand="electricite"] { --green:#ffb467; }
body[data-brand="tech"] { --green:#77c5fb; }
body[data-brand="moving"] { --green:#fc929c; }
body[data-brand="solar"] { --green:#a5d976; }
body[data-brand="events"] { --green:#cbb1fa; }
body.light[data-brand="home"] { --green:#087b58; }
body.light[data-brand="electricite"] { --green:#a8530d; }
body.light[data-brand="tech"] { --green:#136eab; }
body.light[data-brand="moving"] { --green:#b53445; }
body.light[data-brand="solar"] { --green:#487524; }
body.light[data-brand="events"] { --green:#7950b5; }
body { font-size:16px; line-height:1.5; background:var(--bg); -webkit-font-smoothing:antialiased; }
body::before { display:none; }
button,input,select,textarea { font:inherit; }
h1,h2,h3 { letter-spacing:-.025em; line-height:1.25; }
h3 { font-size:1.05rem; font-weight:650; }
small { font-size:.8rem; }
.eyebrow { font-size:.75rem; letter-spacing:.1em; font-weight:650; color:var(--muted); }
.nav-icon { width:20px; height:20px; flex:0 0 20px; vertical-align:middle; }
.skip-link { position:fixed; top:-100px; left:16px; z-index:1000; padding:12px 20px; background:var(--panel); color:var(--text); border:2px solid var(--action); border-radius:8px; }
.skip-link:focus { top:12px; }
:where(button,a,input,select,textarea,[tabindex]):focus-visible { outline:3px solid var(--action); outline-offset:3px; }

/* Brand rail and working canvas */
.app { grid-template-columns:256px minmax(0,1fr); }
.sidebar { height:100dvh; background:#171e29; border:0; padding:20px 14px 14px;
  --text:#f3f5f9; --muted:#a9b7c9; --panel:#222c3b; --border:#394457; --action:#aec8f3;
  color:var(--text); color-scheme:dark; }
.side-brand { padding:0 10px 20px; gap:11px; }
.side-brand .brand-logo { width:44px; height:44px; border-radius:10px; }
.side-brand b { font-size:1rem; font-weight:650; letter-spacing:-.02em; }
.side-brand span { color:#a9b7c9; font-size:.7rem; letter-spacing:.25em; }
.company-box { display:grid; grid-template-columns:36px minmax(0,1fr); column-gap:10px; align-items:center; padding:12px 10px; margin-bottom:10px; background:#222c3b; border:1px solid #394457; border-radius:12px; }
.active-company-logo { grid-column:1; grid-row:1 / 3; width:36px; height:36px; margin:0; border-radius:8px; }
.company-box label { grid-column:2; font-size:.75rem; margin:0; font-weight:400; color:#a9b7c9; }
.company-box select { grid-column:2; font-size:.875rem; min-height:32px; padding:2px 18px 2px 0; background:transparent; border:0; color:#f3f5f9; font-weight:550; border-radius:4px; }
.company-box select option { background:#222c3b; }
.sidebar nav { flex:1; min-height:0; gap:0; scrollbar-width:thin; scrollbar-color:#47576b transparent; padding:0 3px 10px; }
.nav-section { display:grid; gap:3px; }
.nav-group { color:#91a1b7; font-size:.7rem; font-weight:600; letter-spacing:.11em; text-transform:uppercase; margin:0; padding:18px 10px 7px; }
.nav-item { width:100%; min-height:41px; padding:9px 10px; border-radius:8px; color:#b7c3d4; font-size:.875rem; font-weight:450; line-height:1.4; gap:11px; box-shadow:none; }
.nav-item:hover { color:#fff; background:#263244; }
.nav-item.active { color:#fff; background:#34445c; box-shadow:inset 3px 0 #c2d3ed; font-weight:600; }
.nav-unread { margin-left:auto; background:#cfddf2; color:#15223a; font-size:.75rem; padding:0 6px; border-radius:5px; }
.side-bottom { padding-top:12px; border-top:1px solid #344052; }
.sidebar .btn { color:#b7c3d4; border-color:#394457; background:transparent; font-weight:500; }
.side-close { position:absolute; top:20px; right:12px; }
.main { min-width:0; background:var(--bg); }
.topbar { min-height:88px; padding:18px 32px; background:var(--panel); border-bottom:1px solid var(--border); backdrop-filter:none; }
.topbar h2 { font-size:1.3rem; font-weight:650; }
.topbar .eyebrow { font-size:.7rem; margin-bottom:4px; }
.top-actions { gap:8px; }
.profile-button { display:flex; align-items:center; gap:10px; padding:0 0 0 15px; margin-left:8px; border:0; border-left:1px solid var(--border); background:transparent; color:var(--text); text-align:left; }
.profile-monogram { display:grid; place-items:center; width:38px; height:38px; border-radius:50%; background:var(--accent-soft); color:var(--action); font-size:.85rem; font-weight:650; flex-shrink:0; }
#userName { font-size:.8rem; max-width:190px; white-space:normal; line-height:1.45; color:var(--muted); }
.content { max-width:1600px; width:100%; margin:0 auto; padding:30px 32px 48px; }
.workspace-welcome { display:flex; justify-content:space-between; align-items:center; gap:24px; margin-bottom:28px; }
.workspace-welcome h1 { font-size:clamp(1.6rem,2.5vw,2.2rem); line-height:1.2; letter-spacing:-.04em; margin:8px 0; font-weight:650; }
.workspace-welcome p:last-child { margin:0; color:var(--muted); }
.workspace-shortcuts { display:flex; gap:8px; flex-wrap:wrap; }
.workspace-shortcut { display:flex; align-items:center; gap:8px; min-height:44px; padding:10px 13px; border:1px solid var(--border); background:var(--panel); color:var(--text); border-radius:9px; font-size:.875rem; }
.workspace-shortcut:hover { border-color:var(--action); background:var(--accent-soft); }

/* Shared controls, cards, lists and forms */
.btn,.icon { transition:background .15s ease,border-color .15s ease; box-shadow:none; }
.btn { min-height:42px; padding:9px 14px; border-radius:8px; font-size:.875rem; font-weight:600; background:var(--panel); border:1px solid var(--border); color:var(--text); }
.btn:hover { transform:none; background:var(--panel2); border-color:var(--muted); }
.btn.primary,body.light .btn.primary { background:var(--action); color:var(--on-action); border-color:var(--action); }
.btn.primary:hover { filter:brightness(1.12); }
.btn.danger { color:#ef8f95; background:#b629321a; border-color:#b6293250; }
body.light .btn.danger { color:#ad2837; }
.btn.small { font-size:.8rem; min-height:36px; padding:6px 10px; }
.icon { width:40px; height:40px; border-radius:9px; background:var(--panel); border-color:var(--border); font-size:1.15rem; font-weight:500; }
.icon:hover { background:var(--panel2); }
button:disabled { opacity:.55; cursor:not-allowed; }
label { font-size:.875rem; font-weight:550; color:var(--text); margin:16px 0 7px; }
input,select,textarea { min-height:44px; border-radius:8px; font-size:1rem; padding:10px 12px; background:var(--panel); color:var(--text); border-color:var(--border); }
input::placeholder,textarea::placeholder { color:var(--muted); opacity:1; }
input:focus,select:focus,textarea:focus { border-color:var(--action); box-shadow:0 0 0 3px var(--accent-soft); }
input[type="checkbox"],input[type="radio"] { min-height:0; accent-color:var(--action); }
textarea { min-height:100px; }
.actions { display:flex; gap:8px; flex-wrap:wrap; }
.section-head { align-items:center; margin-bottom:16px; gap:12px; }
.section { margin-bottom:24px; }
.grid { gap:18px; }
.card { min-width:0; background:var(--panel); border:1px solid var(--border); border-radius:14px; padding:22px; box-shadow:var(--shadow); }
.card::before,.kpi::after { display:none; }
.card p { line-height:1.6; }
.kpi { min-height:140px; border-top:3px solid var(--green); }
.kpi p { font-size:.875rem; margin-bottom:16px; }
.kpi-value { display:block; font-size:clamp(1.8rem,2.5vw,2.4rem); font-weight:600; letter-spacing:-.045em; font-variant-numeric:tabular-nums; line-height:1.2; overflow-wrap:anywhere; }
.card.empty { min-height:200px; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:10px; padding:36px 20px; text-align:center; border-style:dashed; box-shadow:none; }
.empty .nav-icon { width:38px; height:38px; flex-basis:38px; padding:8px; box-sizing:content-box; color:var(--muted); background:var(--panel2); border-radius:14px; }
.empty strong { font-size:1rem; font-weight:550; }
.empty span { font-size:.875rem; color:var(--muted); }
.table { border:0; border-radius:8px; overflow:auto; }
.card:has(> .table) { padding:6px; }
table { font-size:.875rem; min-width:680px; }
th { background:var(--soft); color:var(--muted); font-size:.75rem; font-weight:650; letter-spacing:.025em; padding:14px 16px; white-space:nowrap; }
td { padding:16px; border-bottom-color:var(--border); line-height:1.55; }
td small { font-size:.75rem; color:var(--muted); }
tbody tr:last-child td { border-bottom:0; }
tbody tr:hover td { background:var(--soft); }
td .btn { font-size:.8rem; min-height:36px; padding:6px 10px; margin-block:2px; }
.status,.badge { border-radius:6px; padding:4px 8px; font-size:.75rem; font-weight:550; }
.status.neutral { background:var(--panel2); color:var(--text); border:1px solid var(--border); }
.notice,.toast { border-radius:10px; font-size:.875rem; padding:14px 18px; box-shadow:var(--shadow); }
.error { color:#ed959c; font-size:.875rem; }
body.light .error { color:#b52e40; }
.modal-wrap { padding:24px; background:#10182799; backdrop-filter:blur(4px); }
.modal { border:1px solid var(--border); border-radius:18px; background:var(--panel); box-shadow:0 24px 90px #0004; max-height:calc(100dvh - 48px); }
.modal > header { padding:20px 24px; background:var(--panel); border-bottom:1px solid var(--border); }
.modal > header h3 { font-size:1.2rem; }
.modal-body { padding:8px 24px 24px; }
.modal-body form > .actions { margin-top:24px; padding-top:16px; border-top:1px solid var(--border); justify-content:flex-end; }
.employee-header { border-radius:12px; background:var(--soft); border:1px solid var(--border); }
.employee-summary { gap:12px; }
.employee-photo { border-radius:14px; }
.mini,.list-row,.quick button,.day { background:var(--soft); border-color:var(--border); border-radius:10px; }

/* Planning, P1/P2/P3, finance and account surfaces */
.planning-controls { padding:16px; border:1px solid var(--border); border-radius:12px; background:var(--panel); }
.planning-calendar caption { font-size:1rem; }
.planning-calendar th,.planning-calendar td { padding:12px; }
.planning-calendar th:first-child { width:180px; }
.planning-calendar small,.planning-empty { font-size:.75rem; }
.planning-today { background:var(--accent-soft); }
.planning-shift { background:var(--panel); border-left-color:var(--green); font-size:.875rem; }
.planning-add { color:var(--action); min-height:40px; font-size:.8rem; }
.tabs,.ops-tabs,.p1-tabs,.p2-tabs,.account-tabs { display:flex; gap:5px; overflow-x:auto; border-bottom:1px solid var(--border); border-radius:0; padding:0 0 8px; background:transparent; scrollbar-width:thin; }
.tab,.ops-tabs button,.p1-tabs button,.p2-tabs button,.account-tabs button { min-height:42px; border:1px solid transparent; border-radius:8px; font-size:.875rem; font-weight:500; padding:9px 13px; background:transparent; color:var(--muted); white-space:nowrap; }
.tab.active,.ops-tabs button.active,.p1-tabs button.active,.p2-tabs button.active,.account-tabs button.active { background:var(--accent-soft); color:var(--action); border-color:var(--border); font-weight:650; }
.ops-hero,.p2-hero { padding:24px; border:1px solid var(--border); border-radius:14px; background:var(--panel); }
.ops-hero h2,.p2-hero h2 { font-size:1.5rem; }
.ops-hero p { color:var(--muted); }
.ops-kpi,.p1-kpis article,.p2-kpis article { background:var(--panel); border-color:var(--border); border-radius:12px; padding:20px; min-height:118px; }
.ops-kpi b,.p1-kpis b,.p2-kpis b { font-weight:600; font-size:1.85rem; letter-spacing:-.03em; }
.ops-kpi span,.p2-kpis span,.p1-kpis span { font-size:.875rem; }
.ops-kanban-col { background:var(--soft); border:1px solid var(--border); border-radius:12px; }
.ops-task { background:var(--panel); border-color:var(--border); }
.p1-dashboard-head { font-size:.75rem; text-transform:none; letter-spacing:0; opacity:1; color:var(--muted); }
.p1-dashboard-grid { gap:18px; }
.p1-big { font-weight:600; }
body[data-view="dashboard"] #content { display:flex; flex-direction:column; }
.workspace-welcome { order:-3; }
body[data-view="dashboard"] #content > .grid { order:-2; }
.p1-dashboard-extra { order:-1; margin-bottom:28px; }
.p2-feature-grid,.p2-status-grid { font-size:.875rem; }

/* Messaging: retain thread scroll behavior and mobile conversation navigation. */
.whatsapp-chat { height:calc(100dvh - 160px); min-height:430px; grid-template-columns:minmax(250px,310px) minmax(0,1fr); border-radius:14px; box-shadow:var(--shadow); }
.chat-sidebar,.chat-header,.chat-composer { background:var(--panel); }
.chat-sidebar-head { padding:18px; }
.chat-sidebar-head h3 { font-size:1.1rem; }
.chat-sidebar-head span { font-size:.8rem; }
.chat-search { background:var(--soft); border:1px solid var(--border); border-radius:9px; }
.chat-search input { font-size:.9rem; }
.chat-contact { margin:3px 8px; padding:13px 10px; border-radius:10px; width:calc(100% - 16px); }
.chat-contact.active { background:var(--accent-soft); }
.chat-contact-top b { font-size:.9rem; font-weight:600; }
.chat-contact-top time { font-size:.7rem; }
.chat-preview { font-size:.8rem; }
.chat-contact-bottom small { font-size:.65rem; }
.chat-avatar-initial { background:var(--panel2); color:var(--action); }
.chat-main-panel { background:var(--soft); }
.chat-header-person strong { font-size:.95rem; }
.chat-header-person span { font-size:.75rem; }
.chat-thread.messages { gap:10px; padding:24px; }
.chat-thread .message { font-size:.95rem; padding:11px 14px; border:1px solid var(--border); box-shadow:none; border-radius:12px; }
.chat-thread .message.mine { background:var(--accent-soft); border:1px solid var(--border); }
.message-meta { font-size:.7rem; }
.chat-day span { font-size:.75rem; background:var(--panel2); }
.chat-empty p { font-size:1rem; }
.chat-empty small { font-size:.875rem; }
.chat-compose-field textarea { font-size:1rem; min-height:44px; border-radius:10px; background:var(--soft); }
.chat-tool,.chat-send { min-width:42px; min-height:42px; }
.chat-send { color:var(--on-action); background:var(--action); border-radius:10px; }
.chat-new-actions button { min-height:36px; }

/* Login */
.login { grid-template-columns:minmax(0,1fr) minmax(400px,.9fr); background:var(--bg); }
.login-art { background:#171e29; color:#fff; padding:48px clamp(32px,5vw,80px); }
.login-art::after { display:none; }
.login-art .brand span { color:#aab9cf; }
.login-art .hero { margin:64px 0; }
.login-art .hero h1 { font-size:clamp(2.6rem,4.5vw,5rem); line-height:1.08; letter-spacing:-.045em; font-weight:600; margin:24px 0; }
.login-art .hero h1 span { color:#aebed5; }
.login-art .hero p { color:#afbdcf; font-size:1rem; max-width:410px; line-height:1.7; }
.login-art .pill { color:#c4d2e6; border:1px solid #42516a; background:#263347; border-radius:5px; font-size:.7rem; font-weight:500; letter-spacing:.1em; }
.login-companies { display:flex; flex-wrap:wrap; gap:12px 20px; max-width:440px; color:#b6c3d5; font-size:.8rem; border-top:1px solid #364355; padding-top:24px; }
.login-companies span { border-left:2px solid #4ca987; padding-left:8px; }
.login-companies span:nth-child(1) { border-color:#df9751; }
.login-companies span:nth-child(3) { border-color:#67a9d4; }
.login-companies span:nth-child(4) { border-color:#d3777e; }
.login-companies span:nth-child(5) { border-color:#b6c772; }
.login-companies span:nth-child(6) { border-color:#af98cf; }
.login-side { background:var(--panel); padding:48px; }
.login-card { background:transparent; border:0; box-shadow:none; border-radius:0; width:min(390px,100%); padding:0; }
.login-logo { width:68px; height:68px; margin:0 0 28px; border-radius:14px; }
.login-card h2 { font-size:2rem; font-weight:650; }
.login-card .muted { font-size:.875rem; }
.login-card .btn { min-height:48px; }
.login-card > p:last-child { margin-top:24px; line-height:1.6; }

@media (max-width:1200px) {
  .app { grid-template-columns:230px minmax(0,1fr); }
  .content { padding:24px; }
  .topbar { padding:16px 24px; }
  #userName { max-width:130px; }
  .workspace-welcome { align-items:flex-start; flex-direction:column; gap:18px; }
}
@media (max-width:900px) {
  .app { grid-template-columns:minmax(0,1fr); }
  .sidebar { position:fixed; width:min(310px,90vw); left:-320px; top:0; transition:left .2s ease; z-index:40; }
  .sidebar.open { left:0; }
  .sidebar .side-brand { padding-right:45px; }
  .mobile { display:grid; }
  .backdrop { z-index:35; background:#0c152080; }
  .content { padding:22px 18px 36px; }
  .topbar { min-height:76px; padding:12px 18px; }
  .topbar h2 { font-size:1.15rem; }
  .whatsapp-chat { grid-template-columns:minmax(0,1fr); height:calc(100dvh - 125px); min-height:350px; }
  .login { grid-template-columns:minmax(0,1fr); }
  .login-art { display:none; }
  .login-side { min-height:100dvh; padding:32px; }
}
@media (max-width:600px) {
  .topbar { gap:8px; padding:12px; min-height:72px; }
  .top-left { gap:9px; min-width:0; }
  .topbar h2 { font-size:1rem; overflow-wrap:anywhere; }
  .topbar .eyebrow { font-size:.6rem; }
  .top-actions { gap:4px; }
  .top-actions .icon { width:36px; height:38px; }
  .profile-button { padding:0; border:0; margin-left:2px; }
  .profile-monogram { width:34px; height:34px; }
  #userName { display:none; }
  .content { padding:20px 12px 32px; }
  .workspace-welcome { margin-bottom:20px; }
  .workspace-welcome h1 { font-size:1.75rem; }
  .workspace-shortcuts { width:100%; display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); }
  .workspace-shortcut { flex-direction:column; padding:12px 5px; font-size:.8rem; gap:6px; }
  .g3,.g4 { grid-template-columns:minmax(0,1fr); }
  .grid { gap:12px; }
  .kpi { min-height:108px; padding:18px; }
  .kpi p { margin-bottom:10px; }
  .kpi-value { font-size:1.9rem; }
  .card { padding:18px; }
  .section-head { align-items:flex-start; flex-direction:column; gap:12px; }
  .section-head .actions { width:100%; }
  .section-head .btn { flex:1 1 auto; }
  .btn { min-height:44px; }
  .planning-controls { gap:10px; padding:12px; }
  .planning-controls label { flex:1 1 140px; min-width:0; }
  .planning-scroll { max-height:65dvh; }
  .ops-hero,.p2-hero { padding:18px; flex-direction:column; align-items:stretch; }
  .ops-hero h2,.p2-hero h2 { font-size:1.25rem; }
  .modal-wrap { padding:0; align-items:flex-end; }
  .modal { width:100%; max-height:94dvh; border-radius:18px 18px 0 0; padding-bottom:env(safe-area-inset-bottom); }
  .modal > header { padding:16px 18px; }
  .modal-body { padding:4px 18px 24px; }
  .content:has(.whatsapp-chat) { padding:8px; }
  .whatsapp-chat { height:calc(100dvh - 92px); min-height:280px; border-radius:10px; }
  .chat-thread.messages { padding:14px 10px; }
  .chat-thread .message { font-size:.95rem; max-width:90%; }
  .chat-header { gap:7px; padding-inline:9px; }
  .chat-composer { padding-bottom:max(10px,env(safe-area-inset-bottom)); }
  .employee-summary { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .login-side { padding:28px 24px; }
}
@media print {
  body[data-brand],body.light[data-brand] { --text:#111; --panel:#fff; --bg:#fff; --border:#ccc; --muted:#444; color:#111; background:#fff; }
  .skip-link,.workspace-shortcuts,.side-close { display:none!important; }
  .card { box-shadow:none; break-inside:avoid; }
}
@media (prefers-reduced-motion:reduce) {
  *,*::before,*::after { transition:none!important; animation:none!important; scroll-behavior:auto!important; }
}
