
@font-face{font-family:Scale;src:local('Scale');font-display:swap}
:root{--yellow:#FFBB00;--yellow2:#FFD45A;--ink:#111111;--muted:#6E6E6E;--bg:#F6F6F3;--card:#FFFFFF;--line:#E7E5DE;--green:#178B4B;--red:#D84235;--orange:#E67E22;--blue:#2F6FED;--shadow:0 8px 28px rgba(0,0,0,.055);--radius:18px}
*{box-sizing:border-box}html,body{margin:0;min-height:100%;background:var(--bg);color:var(--ink);font-family:Montserrat,Arial,sans-serif}body{display:flex}button,input,select,textarea{font:inherit}.hidden{display:none!important}
.sidebar{width:248px;background:#0D0D0D;color:#fff;position:fixed;inset:0 auto 0 0;display:flex;flex-direction:column;z-index:40;border-right:1px solid #242424}.logoWrap{padding:9px 14px 1px;display:flex;align-items:flex-start}.logoBox{width:112px;background:transparent;border-radius:0;padding:0;overflow:visible;line-height:0}.logoBox img{width:100%;height:auto;display:block}.workspace{padding:1px 14px 7px;color:#aaa;font-size:10px;text-transform:uppercase;letter-spacing:.11em;font-weight:800}.nav{padding:0 8px;display:flex;flex-direction:column;gap:2px}.nav button{appearance:none;border:0;background:transparent;color:#bcbcbc;text-align:left;padding:9px 10px;border-radius:9px;cursor:pointer;display:flex;gap:9px;align-items:center;font-weight:700;font-size:13px}.nav button:hover{background:#191919;color:#fff}.nav button.active{background:var(--yellow);color:#111}
.nav button.aiNavButton{background:linear-gradient(135deg,#6F5CE7,#8C79F2);color:#fff;margin-bottom:7px;box-shadow:0 5px 16px rgba(111,92,231,.22)}
.nav button.aiNavButton:hover{background:linear-gradient(135deg,#7866EB,#9584F5);color:#fff}
.nav button.aiNavButton.active{background:linear-gradient(135deg,#8C79F2,#B39DFF);color:#111;box-shadow:0 6px 18px rgba(111,92,231,.32)}
.nav .ico{width:20px;text-align:center;font-size:16px}.sideBottom{margin-top:auto;padding:10px 14px 12px;border-top:1px solid #222}.sideBottom .mini{font-size:11px;color:#8d8d8d;line-height:1.5}.app{margin-left:248px;width:calc(100% - 248px);min-height:100vh}.topbar{height:72px;background:rgba(246,246,243,.92);backdrop-filter:blur(12px);position:sticky;top:0;z-index:30;border-bottom:1px solid var(--line);display:flex;align-items:center;gap:14px;padding:0 28px}.search{flex:1;max-width:540px;position:relative}.search input{width:100%;border:1px solid var(--line);background:#fff;border-radius:12px;padding:11px 14px 11px 38px;outline:0}.search:before{content:'⌕';position:absolute;left:14px;top:8px;font-size:22px;color:#888}.topActions{margin-left:auto;display:flex;gap:8px;align-items:center}.btn{border:0;border-radius:11px;padding:10px 14px;font-weight:800;cursor:pointer}.btn.primary{background:var(--yellow);color:#111}.btn.dark{background:#111;color:#fff}.btn.ghost{background:#fff;border:1px solid var(--line);color:#333}.btn.danger{background:#FFF3F1;border:1px solid #F0B9B2;color:#B42318}.btn.danger:hover{background:#FDE7E3}.btn.small{padding:7px 10px;font-size:12px}.avatar{width:38px;height:38px;border-radius:50%;background:#111;color:var(--yellow);display:grid;place-items:center;font-weight:900}.content{padding:28px;max-width:1600px;margin:auto}.view{display:none}.view.active{display:block}.pageHead{display:flex;justify-content:space-between;align-items:flex-start;gap:20px;margin-bottom:22px}.eyebrow{font-size:11px;text-transform:uppercase;letter-spacing:.14em;color:#8a8a8a;font-weight:800}.pageHead h1,.heroTitle{font-family:Scale,Montserrat,Arial,sans-serif;font-size:34px;margin:5px 0 5px;letter-spacing:-.03em}.pageHead p{margin:0;color:var(--muted);max-width:740px;line-height:1.55}.grid{display:grid;gap:14px}.g4{grid-template-columns:repeat(4,1fr)}.g3{grid-template-columns:repeat(3,1fr)}.g2{grid-template-columns:repeat(2,1fr)}.card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);padding:18px}.kpi .label{font-size:11px;text-transform:uppercase;letter-spacing:.08em;color:#8b8b8b;font-weight:800}.kpi .value{font-family:Scale,Montserrat,sans-serif;font-size:29px;font-weight:900;margin:7px 0}.kpi .delta{font-size:12px}.good{color:var(--green)}.bad{color:var(--red)}.neutral{color:#777}.sectionTitle{font-family:Scale,Montserrat,sans-serif;font-size:20px;margin:30px 0 12px}.sectionRow{display:flex;justify-content:space-between;align-items:center;gap:12px}.callout{background:linear-gradient(100deg,#fff8da,#fff);border:1px solid #F4DE8B;border-left:5px solid var(--yellow);border-radius:14px;padding:17px 18px}.callout b{font-family:Scale,Montserrat,sans-serif}.list{display:flex;flex-direction:column;gap:8px}.listItem{display:flex;gap:12px;align-items:flex-start;padding:12px;border:1px solid var(--line);border-radius:12px;background:#fff}.dot{width:9px;height:9px;border-radius:50%;background:var(--yellow);margin-top:6px;flex:0 0 auto}.muted{color:var(--muted)}.small{font-size:12px}.tiny{font-size:11px}.pill{display:inline-flex;align-items:center;gap:5px;border-radius:999px;padding:5px 9px;font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.04em;background:#f1f1ee}.pill.green{background:#E4F6EB;color:#167842}.pill.yellow{background:#FFF1B7;color:#7a5700}.pill.red{background:#FCE9E7;color:#B63227}.pill.blue{background:#E9F0FF;color:#2F6FED}.pill.gray{background:#EFEFEF;color:#666}.clientGrid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.clientCard{cursor:pointer;transition:.16s}.clientCard:hover{transform:translateY(-2px);box-shadow:0 12px 30px rgba(0,0,0,.08)}.clientTop{display:flex;justify-content:space-between;gap:10px}.clientName{font-family:Scale,Montserrat,sans-serif;font-size:21px}.health{width:50px;height:50px;border-radius:50%;display:grid;place-items:center;font-weight:900;border:5px solid #eee}.services{display:flex;flex-wrap:wrap;gap:6px;margin-top:12px}.serviceChip{font-size:10px;padding:5px 8px;border-radius:999px;background:#FAF4D8;border:1px solid #F0E0A0}.filterbar{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:16px}.filterbar input,.filterbar select{border:1px solid var(--line);background:#fff;border-radius:10px;padding:9px 11px}.tableWrap{overflow:auto;background:#fff;border:1px solid var(--line);border-radius:15px}.table{width:100%;border-collapse:collapse;min-width:800px}.table th{font-size:10px;text-transform:uppercase;letter-spacing:.08em;color:#777;text-align:left;background:#fafafa;padding:11px 12px;border-bottom:1px solid var(--line)}.table td{padding:11px 12px;border-bottom:1px solid #f0f0ec;font-size:12.5px}.table tr:hover td{background:#fffdf5}.kanban{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;align-items:start}.kanCol{background:#ECECE8;border-radius:15px;padding:10px;min-height:450px}.kanHead{display:flex;justify-content:space-between;align-items:center;padding:4px 4px 10px;font-weight:900;font-size:13px}.taskCard{background:#fff;border:1px solid var(--line);border-radius:12px;padding:12px;margin-bottom:8px;cursor:pointer;box-shadow:0 3px 12px rgba(0,0,0,.035)}.taskCard:hover{border-color:#d5bd58}.taskTitle{font-weight:800;font-size:13px;line-height:1.35}.taskMeta{display:flex;justify-content:space-between;gap:8px;margin-top:10px;color:#777;font-size:10.5px}.prioBar{width:4px;border-radius:3px;background:var(--yellow);align-self:stretch}.calendarHead{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}.calGrid{display:grid;grid-template-columns:repeat(7,1fr);background:#fff;border:1px solid var(--line);border-radius:15px;overflow:hidden}.calDow{padding:10px;text-align:center;font-size:10px;text-transform:uppercase;letter-spacing:.08em;font-weight:800;background:#fafafa;border-bottom:1px solid var(--line)}.calDay{min-height:122px;padding:9px;border-right:1px solid #eee;border-bottom:1px solid #eee}.calDay:nth-child(7n){border-right:0}.dayNum{font-size:11px;font-weight:800;color:#666}.calDay.out{background:#fafafa;color:#bbb}.event{margin-top:6px;padding:5px 7px;border-radius:7px;background:#FFF0B6;font-size:9.5px;font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.event.meeting{background:#E9F0FF;color:#1D57BD}.event.high{background:#FCE9E7;color:#A82D24}.swot>div{padding:12px;border-radius:12px;background:#fafafa;border:1px solid var(--line)}.actionCard{display:grid;grid-template-columns:1fr auto;gap:10px;padding:13px 0;border-bottom:1px solid #eee}.actionCard:last-child{border-bottom:0}.progress{height:8px;background:#eee;border-radius:999px;overflow:hidden}.progress>i{display:block;height:100%;background:var(--yellow);border-radius:inherit}.barRows{display:flex;flex-direction:column;gap:10px}.barRow{display:grid;grid-template-columns:145px 1fr 55px;gap:10px;align-items:center;font-size:12px}.bar{height:9px;background:#eee;border-radius:999px;overflow:hidden}.bar i{height:100%;background:var(--yellow);display:block;border-radius:inherit}.spark{height:160px;width:100%;display:block}.legend{display:flex;gap:12px;font-size:10px;color:#777}.legend i{width:16px;height:3px;background:var(--yellow);display:inline-block;vertical-align:middle;margin-right:4px}.knowledgeGrid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.tagRow{display:flex;gap:5px;flex-wrap:wrap;margin-top:12px}.personRow{display:grid;grid-template-columns:1.2fr 1fr 1.25fr .65fr auto;gap:12px;align-items:center;padding:13px 0;border-bottom:1px solid #eee}.personRow:last-child{border:0}.capacity{height:8px;background:#eee;border-radius:999px;overflow:hidden}.capacity i{display:block;height:100%;background:var(--yellow)}.integrations{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.integration{display:flex;align-items:center;gap:12px}.integration img{width:46px;height:46px;object-fit:contain;background:#111;border-radius:10px;padding:6px}.modalBack{position:fixed;inset:0;background:rgba(0,0,0,.5);display:grid;place-items:center;z-index:100;padding:18px}.modal{background:#fff;width:min(760px,96vw);max-height:90vh;overflow:auto;border-radius:18px;box-shadow:0 20px 70px rgba(0,0,0,.25)}.modalHead{padding:18px 20px;border-bottom:1px solid var(--line);display:flex;justify-content:space-between;align-items:center}.modalBody{padding:20px}.formGrid{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}.field{display:flex;flex-direction:column;gap:6px}.field.full{grid-column:1/-1}.field label{font-size:10px;text-transform:uppercase;letter-spacing:.08em;color:#777;font-weight:800}.field input,.field select,.field textarea{border:1px solid var(--line);border-radius:10px;padding:10px;background:#fff}.field textarea{min-height:90px;resize:vertical}.modalFoot{padding:14px 20px;border-top:1px solid var(--line);display:flex;justify-content:flex-end;gap:8px}.drawerBack{position:fixed;inset:0;background:rgba(0,0,0,.25);z-index:80}.drawer{position:absolute;right:0;top:0;height:100%;width:min(760px,94vw);background:#f7f7f4;box-shadow:-10px 0 40px rgba(0,0,0,.16);overflow:auto}.drawerHead{background:#111;color:#fff;padding:22px;position:sticky;top:0;z-index:2}.drawerHead h2{font-family:Scale,Montserrat,sans-serif;margin:5px 0}.drawerBody{padding:18px}.drawerTabs{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:14px}.drawerTabs button{border:1px solid var(--line);background:#fff;border-radius:999px;padding:7px 10px;font-size:11px;font-weight:800;cursor:pointer}.drawerTabs button.active{background:var(--yellow);border-color:var(--yellow)}.assistantFab{position:fixed;right:24px;bottom:24px;background:var(--yellow);border:0;width:58px;height:58px;border-radius:50%;font-size:22px;box-shadow:0 10px 30px rgba(0,0,0,.18);cursor:pointer;z-index:70}.assistant{position:fixed;right:24px;bottom:92px;width:min(390px,calc(100vw - 36px));height:520px;background:#fff;border:1px solid var(--line);border-radius:18px;box-shadow:0 18px 60px rgba(0,0,0,.18);z-index:75;display:flex;flex-direction:column;overflow:hidden}.assistHead{background:#111;color:#fff;padding:14px 16px}.assistHead b{color:var(--yellow)}.assistMsgs{flex:1;overflow:auto;padding:14px;background:#fafaf8}.msg{padding:10px 12px;border-radius:12px;margin-bottom:8px;font-size:12px;line-height:1.5;max-width:88%}.msg.bot{background:#fff;border:1px solid var(--line)}.msg.user{margin-left:auto;background:#FFF0B8}.assistInput{padding:10px;border-top:1px solid var(--line);display:flex;gap:6px}.assistInput input{flex:1;border:1px solid var(--line);border-radius:10px;padding:9px}.toast{position:fixed;left:50%;bottom:24px;transform:translateX(-50%);background:#111;color:#fff;padding:10px 14px;border-radius:999px;z-index:200;font-size:12px}.empty{padding:26px;text-align:center;color:#888;border:1px dashed #ccc;border-radius:14px;background:#fff}.iconCard{display:flex;align-items:center;gap:12px}.brandIcon{width:46px;height:46px;background:#111;border-radius:12px;padding:6px;object-fit:contain}.mobileMenu{display:none}

.plannerControls input,

@media(max-width:1100px){.g4{grid-template-columns:repeat(2,1fr)}.clientGrid,.knowledgeGrid,.integrations{grid-template-columns:repeat(2,1fr)}.kanban{grid-template-columns:repeat(2,1fr)}.personRow{grid-template-columns:1fr 1fr}}
@media(max-width:760px){.sidebar{transform:translateX(-100%);transition:.2s}.sidebar.open{transform:none}.app{margin-left:0;width:100%}.mobileMenu{display:inline-block}.topbar{padding:0 14px}.content{padding:18px 14px}.g4,.g3,.g2,.clientGrid,.knowledgeGrid,.integrations,.kanban,.formGrid{grid-template-columns:1fr}.calDay{min-height:92px;padding:5px}.event{font-size:8px}.pageHead{flex-direction:column}.pageHead h1{font-size:29px}.personRow{grid-template-columns:1fr}.search{max-width:none}.topActions .hideMob{display:none}}

/* ===== PROGRÉS DE TASQUES A TARGETES DE CLIENT ===== */
.clientTaskProgress{margin-top:14px;padding-top:12px;border-top:1px solid var(--line)}
.clientTaskProgressHead{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:7px}
.clientTaskProgressHead .label{font-size:10px;font-weight:900;text-transform:uppercase;letter-spacing:.07em;color:var(--muted)}
.clientTaskProgressHead .count{font-family:Scale,Montserrat,sans-serif;font-size:13px;font-weight:900;color:var(--ink)}
.clientTaskProgressTrack{height:10px;border-radius:999px;background:#ECEBE6;overflow:hidden;position:relative}
.clientTaskProgressFill{height:100%;border-radius:999px;transition:width .25s ease,background .25s ease;min-width:0}


/* ===== FILTRE D'EQUIP AL CALENDARI ===== */
.calendarToolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin:0 0 12px}
.calendarFilters{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.calendarFilter{display:flex;align-items:center;gap:8px;background:#fff;border:1px solid var(--line);border-radius:12px;padding:7px 9px}
.calendarFilter label{font-size:10px;font-weight:900;text-transform:uppercase;letter-spacing:.07em;color:var(--muted)}
.calendarFilter select{border:0;background:transparent;font:600 12px Montserrat,sans-serif;color:var(--ink);outline:none;min-width:145px;max-width:220px;padding:3px 22px 3px 3px}


/* ===== ARXIU DE FEINA FETA ===== */
.workViewTabs{display:flex;gap:8px;flex-wrap:wrap;margin:0 0 14px}
.workViewTabs .btn.active{background:var(--ink);color:#fff;border-color:var(--ink)}
.archiveSummary{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:14px}
.archiveClient{margin-bottom:14px}
.archiveClientHead{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-bottom:10px}
.archiveTaskRow{display:grid;grid-template-columns:minmax(0,1.6fr) .8fr .75fr .65fr auto;gap:12px;align-items:center;padding:11px 0;border-bottom:1px solid var(--line)}
.archiveTaskRow:last-child{border-bottom:0}
.archiveTaskTitle{font-size:12px;font-weight:800}
.archiveMeta{font-size:10px;color:var(--muted);margin-top:3px}
@media(max-width:900px){
 .archiveTaskRow{grid-template-columns:1fr 1fr}
 .archiveTaskRow>div:first-child{grid-column:1/-1}
}


/* ===== REUNIONS: DATA I HORA DESTACADES ===== */
.meetingDateBlock{
  display:flex;align-items:center;gap:12px;margin:12px 0 10px;
  padding:10px 12px;border-radius:12px;background:#FFF8D8;border:1px solid #F0D56A;
}
.meetingDateDay{
  font-family:Scale,Montserrat,sans-serif;font-size:28px;font-weight:900;line-height:1;color:var(--ink);
  min-width:42px;text-align:center
}
.meetingDateMeta{display:flex;flex-direction:column;gap:2px}
.meetingDateMonth{
  font-size:10px;font-weight:900;text-transform:uppercase;letter-spacing:.08em;color:#6D6650
}
.meetingDateTime{
  font-family:Scale,Montserrat,sans-serif;font-size:20px;font-weight:900;line-height:1.1;color:var(--ink)
}
.meetingPast{opacity:.72}


/* ===== FEINA: KANBAN A TOTA L'AMPLADA ===== */
#view-work .kanban{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:14px;
  width:100%;
  max-width:none;
  align-items:start;
}
#view-work .kanCol{
  width:100%;
  min-width:0;
  max-width:none;
}
#view-work .taskCard{
  width:100%;
  box-sizing:border-box;
}
@media(max-width:900px){
  #view-work .kanban{
    grid-template-columns:1fr;
  }
}


/* ===== EQUIP DE CLIENT + PERMISOS ===== */
.accessSwitcher{display:flex;align-items:center;gap:7px;background:#fff;border:1px solid var(--line);border-radius:11px;padding:6px 9px}
.accessSwitcher span{font-size:9px;font-weight:900;text-transform:uppercase;letter-spacing:.08em;color:#777}
.accessSwitcher select{border:0;outline:0;background:transparent;font:700 11px Montserrat,sans-serif;max-width:210px}
.teamPicker{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px;padding:9px;border:1px solid var(--line);border-radius:11px;background:#fafaf8}
.teamCheck{display:flex;align-items:center;gap:8px;padding:8px 9px;border:1px solid #e8e7e1;background:#fff;border-radius:9px;cursor:pointer}
.teamCheck input{margin:0}
.teamCheck b{font-size:11px}
.teamCheck span{font-size:9px;color:#777}
.clientTeamLine{display:flex;gap:5px;align-items:center;flex-wrap:wrap;margin-top:7px}
.permissionCards{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}
.permissionCard{border-top:4px solid var(--yellow)}
.permissionCard h3{margin:0 0 7px}
.accessProfileRow{display:grid;grid-template-columns:1.2fr .65fr 1.2fr auto;gap:12px;align-items:center;padding:11px 0;border-bottom:1px solid var(--line)}
.accessProfileRow:last-child{border-bottom:0}
.roleBadge{display:inline-flex;border-radius:999px;padding:5px 9px;font-size:10px;font-weight:900;text-transform:uppercase;letter-spacing:.05em}
.roleBadge.soci{background:#111;color:var(--yellow)}
.roleBadge.comercial{background:#EAF7EE;color:#276B3D}
.roleBadge.treballador{background:#FFF1B7;color:#765400}
.roleBadge.client{background:#E9F0FF;color:#245CBD}
.permissionNotice{background:#FFF8D8;border:1px solid #F0D56A;border-radius:12px;padding:12px 14px;font-size:11px;line-height:1.5}
.accessLocked{padding:34px;text-align:center;background:#fff;border:1px dashed #ccc;border-radius:14px;color:#777}
@media(max-width:900px){
 .permissionCards{grid-template-columns:1fr}
 .accessProfileRow{grid-template-columns:1fr 1fr}
 .accessProfileRow>div:first-child{grid-column:1/-1}
 .teamPicker{grid-template-columns:1fr}
 .accessSwitcher span{display:none}
}


/* ===== PERFILS D'ACCÉS: CERCA I ORDRE ===== */
.accessProfileToolbar{
  display:flex;align-items:center;justify-content:space-between;gap:10px;
  flex-wrap:wrap;margin:0 0 12px
}
.accessProfileToolbar .searchWrap{
  flex:1;min-width:240px;position:relative
}
.accessProfileToolbar .searchWrap input{
  width:100%;box-sizing:border-box;border:1px solid var(--line);background:#fff;
  border-radius:11px;padding:10px 12px 10px 34px;font:600 11px Montserrat,sans-serif
}
.accessProfileToolbar .searchWrap:before{
  content:'⌕';position:absolute;left:11px;top:50%;transform:translateY(-50%);
  font-size:16px;color:#777
}
.accessProfileToolbar select{
  border:1px solid var(--line);background:#fff;border-radius:11px;padding:10px 12px;
  font:700 11px Montserrat,sans-serif;min-width:210px
}
.accessProfileOrder{
  display:flex;align-items:center;gap:6px;white-space:nowrap
}
.accessProfileOrder label{
  font-size:9px;font-weight:900;text-transform:uppercase;letter-spacing:.08em;color:#777
}
.accessProfileEmpty{
  padding:26px;text-align:center;color:#777;font-size:11px
}
@media(max-width:760px){
  .accessProfileToolbar{align-items:stretch}
  .accessProfileToolbar .searchWrap{min-width:100%}
  .accessProfileOrder{width:100%}
  .accessProfileOrder select{flex:1;min-width:0}
}


/* ===== COMPTABILITAT ===== */
.accountingToolbar{display:flex;align-items:end;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:14px}
.accountingToolbar .field{margin:0;min-width:190px}
.accountingKpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:18px}
.accountingKpi{position:relative;overflow:hidden}
.accountingKpi .value{font-family:Scale,Montserrat,sans-serif;font-size:27px;font-weight:900;line-height:1.05;margin-top:7px}
.accountingKpi .sub{font-size:10px;color:var(--muted);margin-top:5px}
.accountingKpi:before{content:'';position:absolute;top:0;left:0;right:0;height:4px;background:#ddd}
.accountingKpi.expected:before{background:#111}
.accountingKpi.unbilled:before{background:#B8B8B8}
.accountingKpi.pending:before{background:#FFBB00}
.accountingKpi.paid:before{background:#4A9E61}
.accountingTable{overflow:auto}
.accountingHead,.accountingRow{
  display:grid;grid-template-columns:minmax(210px,1.45fr) .7fr 70px minmax(240px,1.35fr) auto minmax(145px,auto);
  gap:12px;align-items:center;min-width:900px
}
.accountingHead{padding:0 11px 8px;color:#777;font-size:9px;font-weight:900;text-transform:uppercase;letter-spacing:.07em}
.accountingRow{padding:12px 11px;border-top:1px solid var(--line)}
.accountingRow:first-child{border-top:0}
.accountingClientName{font-weight:900;font-size:12px}
.accountingClientMeta{font-size:9px;color:var(--muted);margin-top:3px}
.billingSelect{width:100%;border:1px solid var(--line);border-radius:9px;padding:8px 9px;background:#fff;font:700 10px Montserrat,sans-serif}


.billingStatus.no_facturat
.billingStatus.pendent_pagament
.billingStatus.cobrat
.accountingProgress{height:9px;background:#eee;border-radius:999px;overflow:hidden;margin-top:8px}
.accountingProgress>span{display:block;height:100%;background:#4A9E61;border-radius:999px}
.accountingEmpty{padding:30px;text-align:center;color:var(--muted)}
@media(max-width:1050px){.accountingKpis{grid-template-columns:repeat(2,1fr)}}
@media(max-width:640px){.accountingKpis{grid-template-columns:1fr}.accountingToolbar{align-items:stretch}.accountingToolbar .field{width:100%}}


.accountingOverdueAlert{
  display:flex;align-items:flex-start;gap:10px;
  margin:0 0 16px;padding:13px 15px;
  border:1px solid #E5483F;background:#FFF0EE;color:#8F201A;
  border-radius:12px
}
.accountingOverdueAlert .icon{
  width:28px;height:28px;flex:0 0 28px;border-radius:50%;
  display:flex;align-items:center;justify-content:center;
  background:#D84235;color:#fff;font-weight:900
}
.accountingOverdueAlert b{color:#8F201A}
.accountingOverdueAlert .tiny{color:#A8433D;margin-top:3px}
.accountingKpi.pending.hasOverdue{
  border-color:#E5483F;
  background:#FFF9F8
}
.accountingKpi.pending.hasOverdue:before{background:#D84235}
.accountingKpi.pending .overdueMini{
  margin-top:7px;font-size:9px;font-weight:900;color:#B52D25
}
.accountingStatusCell{min-width:220px}
.accountingStatusCell .billingSelect{
  font-size:11px;padding:10px 11px
}


.accountingSignalCell{
  display:flex;align-items:center;justify-content:center
}
.accountingSignal{
  width:28px;height:28px;border-radius:50%;border:0;
  box-shadow:inset 0 0 0 1px rgba(0,0,0,.10),0 2px 5px rgba(0,0,0,.08);
  cursor:default;padding:0
}
.accountingSignal.no_facturat{background:#D84235}
.accountingSignal.pendent_pagament{background:#FFBB00}
.accountingSignal.cobrat{background:#4A9E61}


/* ===== SUGGERÈNCIES ===== */
.suggestionLayout{display:grid;grid-template-columns:minmax(300px,.8fr) minmax(0,1.2fr);gap:16px;align-items:start}
.suggestionFormCard{position:sticky;top:78px}
.suggestionList{display:flex;flex-direction:column;gap:10px}
.suggestionItem{border-left:4px solid var(--yellow)}
.suggestionTop{display:flex;justify-content:space-between;align-items:flex-start;gap:10px}
.suggestionAuthor{font-weight:900;font-size:12px}
.suggestionMeta{font-size:9px;color:var(--muted);margin-top:3px}
.suggestionText{font-size:11px;line-height:1.55;margin-top:10px;white-space:pre-wrap}
.suggestionEmpty{padding:32px;text-align:center;color:var(--muted)}
.suggestionRole{display:inline-flex;border-radius:999px;padding:4px 8px;font-size:9px;font-weight:900;text-transform:uppercase;letter-spacing:.05em}
.suggestionRole.soci{background:#111;color:var(--yellow)}
.suggestionRole.comercial{background:#EAF7EE;color:#276B3D}
.suggestionRole.treballador{background:#FFF1B7;color:#765400}
.suggestionRole.client{background:#E9F0FF;color:#245CBD}
.suggestionOnlyForm{max-width:720px;margin:0 auto}
@media(max-width:900px){
 .suggestionLayout{grid-template-columns:1fr}
 .suggestionFormCard{position:static}
}


/* ============================================================
   PORTAL AUSA · RESPONSIVE MÒBIL GLOBAL
   ============================================================ */
html{max-width:100%;overflow-x:hidden}
body{max-width:100%;overflow-x:hidden}
img,svg,canvas{max-width:100%}
input,select,textarea,button{max-width:100%}
.mobileNavBackdrop{display:none}

/* evita que contingut flexible forci overflow */
.grid>*,
.clientGrid>*,
.kanban>*,
.personRow>*,
.accessProfileRow>*,
.accountingRow>*,
.suggestionLayout>*,
.clientTop>*,
.actionCard>*{min-width:0}

.calendarScroll,
.tableWrap,
.accountingTable,


/* Tablet */
@media(max-width:1000px){
  .content{padding:22px 18px}
  .clientGrid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .g3{grid-template-columns:repeat(2,minmax(0,1fr))}
  .integrations{grid-template-columns:repeat(2,minmax(0,1fr))}
  .accountingKpis{grid-template-columns:repeat(2,minmax(0,1fr))}
}

/* Mòbil */
@media(max-width:760px){
  :root{--radius:14px}
  body{display:block}

  /* Navegació lateral */
  .sidebar{
    width:min(86vw,320px);
    transform:translateX(-105%);
    transition:transform .22s ease;
    box-shadow:12px 0 36px rgba(0,0,0,.24);
    overflow:hidden;
    padding-top:env(safe-area-inset-top);
  }
  .sidebar.open{transform:translateX(0)}
  .sidebar.open + .mobileNavBackdrop{
    display:block;
    position:fixed;
    inset:0;
    background:rgba(0,0,0,.42);
    z-index:35;
  }
  .logoWrap{padding:9px 12px 1px}
  .logoBox{width:112px;padding:0;border-radius:0;background:transparent}
  .workspace{padding:1px 12px 7px;font-size:10px}
  .nav{
    flex:1;
    min-height:0;
    overflow-y:auto;
    overscroll-behavior:contain;
    padding:0 8px 14px;
  }
  .nav button{
    min-height:44px;
    padding:11px 12px;
    font-size:13px;
    flex:0 0 auto;
  }
  .sideBottom{padding:11px 13px 14px}
  .sideBottom .mini{font-size:9px}

  /* Layout principal */
  .app{margin-left:0;width:100%;min-width:0}
  .topbar{
    height:auto;
    min-height:62px;
    padding:8px 12px;
    padding-left:max(12px,env(safe-area-inset-left));
    padding-right:max(12px,env(safe-area-inset-right));
    display:flex;
    flex-wrap:wrap;
    gap:8px;
  }
  .mobileMenu{
    display:inline-grid;
    place-items:center;
    width:44px;
    height:44px;
    min-width:44px;
    padding:0;
    order:1;
  }
  .topActions{
    order:2;
    margin-left:auto;
    gap:6px;
    min-width:0;
    max-width:calc(100% - 52px);
  }
  .accessSwitcher{
    max-width:calc(100vw - 112px);
    min-height:44px;
    padding:5px 8px;
  }
  .accessSwitcher span{display:none}
  .accessSwitcher select{
    font-size:14px;
    max-width:calc(100vw - 135px);
    width:auto;
    min-width:120px;
    text-overflow:ellipsis;
  }
  .avatar{
    width:36px;height:36px;min-width:36px;
    font-size:12px;
  }
  .search{
    order:3;
    flex:0 0 100%;
    width:100%;
    max-width:none;
  }
  .search input{
    min-height:44px;
    padding:10px 13px 10px 38px;
    font-size:16px; /* evita zoom automàtic a iOS */
  }
  .search:before{top:8px}

  .content{
    width:100%;
    max-width:100%;
    padding:16px 12px calc(88px + env(safe-area-inset-bottom));
  }

  /* Tipografia / capçaleres */
  .pageHead{
    flex-direction:column;
    gap:12px;
    margin-bottom:17px;
  }
  .pageHead h1,.heroTitle{
    font-size:27px;
    line-height:1.08;
    overflow-wrap:anywhere;
  }
  .pageHead p{font-size:12px}
  .pageHead>button{width:100%;min-height:44px}
  .sectionTitle{font-size:18px;margin:22px 0 10px}
  .sectionRow{flex-wrap:wrap;align-items:flex-start}
  .eyebrow{font-size:9px}
  .card{padding:14px;border-radius:14px}
  .callout{padding:14px}

  /* Grids */
  .g4,.g3,.g2,.clientGrid,.integrations,.kanban,.formGrid,
  .permissionCards,.teamPicker,.suggestionLayout{
    grid-template-columns:1fr!important;
  }

  /* Controls tàctils */
  .btn{
    min-height:42px;
    padding:10px 13px;
  }
  .btn.small{min-height:38px;padding:8px 10px}
  .field input,.field select,.field textarea,
  .filterbar input,.filterbar select,
  .calendarFilter select,
  .accessProfileToolbar input,.accessProfileToolbar select,
  .accountingToolbar input,.accountingToolbar select,
  .billingSelect{
    font-size:16px!important;
    min-height:44px;
  }
  .field textarea{min-height:120px}
  .filterbar{
    display:grid;
    grid-template-columns:1fr;
    width:100%;
    gap:8px;
  }
  .filterbar input,.filterbar select{width:100%}

  /* Dashboard / llistes */
  .listItem{flex-wrap:wrap;padding:11px}
  .listItem>div[style*="display:flex"]{width:100%}
  .kpi .value{font-size:25px}

  /* Clients */
  .clientGrid{gap:10px}
  .clientCard{transform:none!important}
  .clientTop{
    flex-direction:column;
    align-items:stretch;
  }
  .clientName{font-size:19px}
  .clientTeamLine{gap:4px}
  .clientTaskProgress{margin-top:11px;padding-top:10px}

  /* Feina */
  #view-work .kanban{
    grid-template-columns:1fr!important;
    gap:10px;
  }
  #view-work .kanCol{
    min-height:0;
    padding:9px;
  }
  .taskCard{padding:11px}
  .taskMeta{flex-wrap:wrap}
  .workViewTabs{
    display:grid;
    grid-template-columns:1fr;
    gap:7px;
  }
  .workViewTabs .btn{width:100%}
  .archiveSummary{display:grid;grid-template-columns:1fr 1fr}
  .archiveClientHead{align-items:flex-start;flex-direction:column}
  .archiveTaskRow{
    grid-template-columns:1fr!important;
    gap:7px;
    padding:12px 0;
  }
  .archiveTaskRow>div:first-child{grid-column:auto!important}

  /* Calendari: conserva una graella llegible i permet scroll horitzontal */
  .calendarToolbar{
    display:grid;
    grid-template-columns:1fr;
    gap:9px;
  }
  .calendarFilters{
    display:grid;
    grid-template-columns:1fr;
    gap:8px;
    width:100%;
  }
  .calendarHead{
    width:100%;
    display:grid;
    grid-template-columns:44px 1fr 44px;
    gap:7px;
  }
  .calendarHead .heroTitle{
    font-size:19px!important;
    text-align:center;
    align-self:center;
    margin:0;
  }
  .calendarHead .btn{padding:0;min-width:44px}
  .calendarFilter{
    width:100%;
    display:grid;
    grid-template-columns:auto 1fr;
    min-height:46px;
  }
  .calendarFilter select{min-width:0;width:100%}
  .calendarScroll{
    width:100%;
    overflow-x:auto;
    border-radius:14px;
    padding-bottom:6px;
  }
  .calGrid{
    min-width:720px;
    width:720px;
    border-radius:14px;
  }
  .calDay{
    min-height:108px;
    padding:7px;
  }
  .calDow{padding:8px}
  .event{
    font-size:9.5px;
    padding:5px 6px;
  }

  /* Reunions */
  #view-meetings .g2{grid-template-columns:1fr!important}
  .meetingDateBlock{padding:10px;margin:10px 0}
  .meetingDateDay{font-size:26px}
  .meetingDateTime{font-size:19px}
  .clientTop>div[style*="display:flex"]{
    width:100%;
  }

  /* Drawer / fitxes client */
  .drawerBack{overflow:hidden}
  .drawer,
  .drawerHead{
    padding:16px 14px;
    padding-top:max(16px,env(safe-area-inset-top));
  }
  .drawerHead h2{font-size:23px}
  .drawerBody{
    padding:13px 12px calc(24px + env(safe-area-inset-bottom));
  }
  .drawerTabs{
    flex-wrap:nowrap;
    overflow-x:auto;
    overscroll-behavior-x:contain;
    padding:0 0 6px;
    margin-bottom:12px;
  }
  .drawerTabs button{
    flex:0 0 auto;
    min-height:39px;
  }


  /* Analítica */
  .barRow{
    grid-template-columns:minmax(90px,.9fr) minmax(90px,1.4fr) 45px;
    gap:7px;
    font-size:11px;
  }
  .legend{flex-wrap:wrap}
  .spark{height:130px}

  /* Equip */
  .personRow{
    grid-template-columns:1fr!important;
    gap:9px;
    padding:14px 0;
  }
  .personRow .btn{width:100%}
  .integration{align-items:flex-start}

  /* Configuració / permisos */
  .accessProfileRow{
    grid-template-columns:1fr!important;
    gap:8px;
    padding:13px 0;
  }
  .accessProfileRow>div:first-child{grid-column:auto!important}
  .accessProfileRow .btn{width:100%}
  .accessProfileToolbar{
    display:grid;
    grid-template-columns:1fr;
    align-items:stretch;
  }
  .accessProfileToolbar .searchWrap{min-width:0;width:100%}
  .accessProfileOrder{
    display:grid;
    grid-template-columns:auto 1fr;
    width:100%;
  }
  .accessProfileOrder select{min-width:0;width:100%}

  /* Comptabilitat */
  .accountingToolbar{display:grid;grid-template-columns:1fr}
  .accountingToolbar>div:first-child{
    width:100%;
    display:grid!important;
    grid-template-columns:1fr!important;
    gap:8px!important;
  }
  .accountingToolbar .field{
    min-width:0!important;
    width:100%!important;
  }
  .accountingToolbar .pill{justify-self:start}
  .accountingKpis{grid-template-columns:1fr!important;gap:9px}
  .accountingKpi .value{font-size:24px}
  .accountingOverdueAlert{padding:12px}
  .accountingTable{
    overflow:visible;
    padding:0;
    background:transparent;
    border:0;
    box-shadow:none;
  }
  .accountingHead{display:none}
  .accountingRow{
    min-width:0;
    display:grid;
    grid-template-columns:1fr auto;
    gap:10px;
    padding:14px;
    margin-bottom:10px;
    background:#fff;
    border:1px solid var(--line)!important;
    border-radius:14px;
    box-shadow:var(--shadow);
  }
  .accountingRow>div:nth-child(1){grid-column:1/-1}
  .accountingRow>div:nth-child(2){
    grid-column:1/2;
    align-self:center;
  }
  .accountingRow>div:nth-child(3){
    grid-column:2/3;
    align-self:center;
    justify-self:end;
  }
  .accountingRow>div:nth-child(4){
    grid-column:1/-1;
    min-width:0;
  }
  .accountingRow>div:nth-child(5){
    grid-column:1/-1;
  }
  .accountingStatusCell{min-width:0;width:100%}
  .billingSelect{width:100%}
  .accountingSignal{width:30px;height:30px}

  /* Suggerències */
  .suggestionFormCard{position:static}
  .suggestionOnlyForm{max-width:none}
  .suggestionTop{
    flex-direction:column;
    align-items:stretch;
  }
  .suggestionTop>div:last-child{
    justify-content:flex-start!important;
  }

  /* Modals a pantalla completa */
  .modalBack{
    padding:0;
    place-items:stretch;
  }
  .modal{
    width:100vw;
    height:100dvh;
    max-height:none;
    border-radius:0;
    display:flex;
    flex-direction:column;
    overflow:hidden;
  }
  .modalHead{
    padding:14px 14px;
    padding-top:max(14px,env(safe-area-inset-top));
    flex:0 0 auto;
  }
  .modalHead h3{margin:0}
  .modalBody{
    padding:14px 12px;
    flex:1 1 auto;
    min-height:0;
    overflow-y:auto;
    overscroll-behavior:contain;
  }
  .modalFoot{
    padding:10px 12px calc(10px + env(safe-area-inset-bottom));
    flex:0 0 auto;
    background:#fff;
    flex-wrap:wrap;
  }
  .modalFoot .btn{flex:1 1 130px}

  /* Accions apilades */
  .actionCard{
    grid-template-columns:1fr!important;
  }
  .actionCard>div:last-child{
    justify-content:flex-start!important;
  }

  /* Assistent */
  .assistantFab{
    right:14px;
    bottom:calc(14px + env(safe-area-inset-bottom));
    width:52px;height:52px;
  }
  .assistant{
    left:8px;
    right:8px;
    bottom:calc(74px + env(safe-area-inset-bottom));
    width:auto;
    height:min(68dvh,560px);
    border-radius:16px;
  }
  .assistInput input{font-size:16px;min-width:0}

  /* Toast */
  .toast{
    max-width:calc(100vw - 24px);
    width:max-content;
    text-align:center;
    bottom:calc(14px + env(safe-area-inset-bottom));
  }
}

/* Telèfons estrets */
@media(max-width:480px){
  .content{padding-left:10px;padding-right:10px}
  .pageHead h1,.heroTitle{font-size:25px}
  .card{padding:12px}
  .archiveSummary{grid-template-columns:1fr}

  .meetingDateBlock{gap:9px}
  .meetingDateDay{min-width:36px}
  .accessSwitcher select{max-width:calc(100vw - 130px)}
  .barRow{grid-template-columns:85px 1fr 40px}
  .accountingOverdueAlert{font-size:11px}
}

/* Dispositius tàctils: evita efectes hover enganxats */
@media(hover:none){
  .clientCard:hover{transform:none;box-shadow:var(--shadow)}
  .taskCard:hover{border-color:var(--line)}
}


.taskRecurrenceBadge{
  display:inline-flex;align-items:center;gap:5px;
  margin-top:6px;padding:4px 7px;border-radius:999px;
  background:#FFF1B7;color:#705000;font-size:9px;font-weight:900
}
.recurrenceInfo{
  padding:11px 12px;border-radius:11px;background:#FFF8D8;
  border:1px solid #F0D56A;font-size:11px;line-height:1.45
}


/* ===== RESUM DE TASQUES A FITXA DE CLIENT ===== */
.taskSummary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin-bottom:12px}
.taskSummary>div{background:#fff;border:1px solid var(--line);border-radius:11px;padding:10px}
.taskSummary .v{font-family:Scale,Montserrat,sans-serif;font-size:18px;font-weight:900;margin-top:3px}
@media(max-width:900px){.taskSummary{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:480px){.taskSummary{grid-template-columns:1fr}}


/* ===== FITXA CLIENT · POP-UP GRAN CENTRAT ===== */
.drawerBack{
  position:fixed;
  inset:0;
  z-index:80;
  display:grid;
  place-items:center;
  padding:clamp(18px,3vw,42px);
  background:rgba(0,0,0,.48);
  backdrop-filter:blur(3px);
}
.drawer{
  position:relative!important;
  right:auto!important;
  top:auto!important;
  width:min(1180px,94vw)!important;
  height:min(88vh,900px)!important;
  max-width:1180px;
  max-height:900px;
  border-radius:22px!important;
  background:#F7F7F4;
  box-shadow:0 28px 90px rgba(0,0,0,.28)!important;
  overflow:hidden!important;
  display:flex;
  flex-direction:column;
}
.drawerHead{
  position:relative!important;
  top:auto!important;
  flex:0 0 auto;
  padding:24px 28px!important;
  background:#111;
  color:#fff;
  z-index:2;
}
.drawerHead h2{
  margin:5px 0 7px!important;
  font-size:32px;
  line-height:1.05;
}
.drawerHead .tiny{font-size:11px;line-height:1.5}
.drawerBody{
  flex:1 1 auto;
  min-height:0;
  overflow-y:auto;
  padding:22px 26px 28px!important;
}
.drawerTabs{
  position:sticky;
  top:-22px;
  z-index:5;
  display:flex;
  gap:8px;
  flex-wrap:wrap;
  margin:-2px 0 20px;
  padding:12px 0 10px;
  background:#F7F7F4;
}
.drawerTabs button{
  min-height:42px;
  padding:9px 15px!important;
  font-size:12px!important;
}
.drawerTabs button.active{
  background:var(--yellow);
  border-color:var(--yellow);
  color:#111;
}

/* ===== DATA DESTACADA · TASQUES CLIENT ===== */
.clientTaskRow{
  display:grid!important;
  grid-template-columns:minmax(0,1fr) 150px auto;
  gap:16px!important;
  align-items:center!important;
  padding:16px 0!important;
}
.clientTaskDeadline{
  min-width:140px;
  padding:12px 14px;
  border-radius:13px;
  background:#FFF8D8;
  border:1px solid #F0D56A;
  text-align:center;
}
.clientTaskDeadline.overdue{
  background:#FFF0EE;
  border-color:#E58B84;
}
.clientTaskDeadline .label{
  font-size:9px;
  font-weight:900;
  text-transform:uppercase;
  letter-spacing:.08em;
  color:#766B49;
}
.clientTaskDeadline.overdue .label{color:#A23B34}
.clientTaskDeadline .date{
  margin-top:3px;
  font-family:Scale,Montserrat,sans-serif;
  font-size:22px;
  font-weight:900;
  line-height:1.05;
  color:#111;
}
.clientTaskDeadline .weekday{
  margin-top:3px;
  font-size:10px;
  font-weight:800;
  color:#777;
  text-transform:capitalize;
}

/* ===== REUNIONS CLIENT · DATA/HORA GRAN ===== */
.clientMeetingCard{
  padding:15px 0!important;
  align-items:center!important;
}
.clientMeetingMain{min-width:0;flex:1}
.clientMeetingCard .meetingDateBlock{
  width:min(390px,100%);
  margin:12px 0!important;
  padding:12px 14px!important;
}
.clientMeetingCard .meetingDateDay{font-size:34px!important}
.clientMeetingCard .meetingDateTime{font-size:24px!important}
.clientMeetingCard .meetingDateMonth{font-size:11px!important}

@media(max-width:900px){
  .drawer{
    width:min(96vw,900px)!important;
    height:min(92dvh,900px)!important;
  }
  .clientTaskRow{
    grid-template-columns:minmax(0,1fr) 135px!important;
  }
  .clientTaskRow .clientTaskActions{
    grid-column:1/-1;
    justify-content:flex-start!important;
  }
}

@media(max-width:760px){
  .drawerBack{
    padding:8px!important;
    place-items:center!important;
  }
  .drawer,.drawer.wide{
    width:calc(100vw - 16px)!important;
    height:calc(100dvh - 16px)!important;
    max-width:none!important;
    max-height:none!important;
    border-radius:18px!important;
    box-shadow:0 18px 55px rgba(0,0,0,.28)!important;
  }
  .drawerHead{
    padding:max(18px,env(safe-area-inset-top)) 16px 18px!important;
  }
  .drawerHead h2{font-size:27px}
  .drawerBody{
    padding:14px 12px calc(20px + env(safe-area-inset-bottom))!important;
  }
  .drawerTabs{
    top:-14px;
    flex-wrap:nowrap!important;
    overflow-x:auto;
    padding:10px 0 9px;
    margin-bottom:14px;
  }
  .drawerTabs button{
    flex:0 0 auto;
    min-height:42px;
  }
  .clientTaskRow{
    grid-template-columns:1fr!important;
    gap:10px!important;
  }
  .clientTaskDeadline{
    width:100%;
    min-width:0;
    display:grid;
    grid-template-columns:auto 1fr auto;
    align-items:center;
    text-align:left;
    gap:9px;
  }
  .clientTaskDeadline .date{font-size:21px;margin:0}
  .clientTaskDeadline .weekday{margin:0;text-align:right}
  .clientTaskRow .clientTaskActions{
    grid-column:auto;
    width:100%;
  }
  .clientTaskRow .clientTaskActions .btn{flex:1 1 110px}
  .clientMeetingCard{
    display:block!important;
  }
  .clientMeetingCard>div:last-child{
    justify-content:flex-start!important;
    margin-top:10px;
  }
  .clientMeetingCard .meetingDateBlock{
    width:100%;
  }
}


/* ===== PORTAL AUSA · AUTH SUPABASE ===== */
.authGate{position:fixed;inset:0;z-index:1000;background:rgba(13,13,13,.94);display:grid;place-items:center;padding:20px;backdrop-filter:blur(12px)}
.authGate.hidden{display:none!important}.authCard{width:min(440px,94vw);background:#fff;border-radius:22px;padding:28px;box-shadow:0 30px 90px rgba(0,0,0,.4)}
.authBrand{font-family:Scale,Montserrat,sans-serif;font-size:27px;font-weight:900;margin-bottom:4px}.authBrand span{color:#B27B00}.authCard p{color:var(--muted);font-size:12px;line-height:1.55}
.authFields{display:grid;gap:10px;margin:18px 0}.authFields input{width:100%;border:1px solid var(--line);border-radius:11px;padding:12px 13px;font-size:16px;outline:0}.authFields input:focus{border-color:var(--yellow)}
.authActions{display:grid;grid-template-columns:1fr 1fr;gap:8px}.authMessage{min-height:18px;margin-top:12px;font-size:11px;color:var(--muted);line-height:1.45}.authMessage.error{color:var(--red)}
.authFoot{margin-top:14px;padding-top:12px;border-top:1px solid var(--line);font-size:10px;color:#888;line-height:1.5}.cloudDot{color:var(--green)!important;font-size:10px!important}.cloudUser{font-size:11px;max-width:150px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.cloudLogout{border:0;background:transparent;cursor:pointer;font-size:15px;padding:3px 5px;color:#666}.cloudLogout:hover{color:#111}
@media(max-width:760px){.authCard{padding:20px 16px}.authActions{grid-template-columns:1fr}.cloudUser{max-width:105px}.accessSwitcher .roleBadge{display:none}}

/* ===== PORTAL AUSA · GESTIÓ D'USUARIS REAL ===== */
.inviteUserHead{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:12px}
.inviteUserHead h3{margin:0}.userAccessStatus{display:flex;gap:6px;flex-wrap:wrap;margin-top:5px}
.inviteRelation{margin-top:8px}.credentialBox{background:#111;color:#fff;border-radius:15px;padding:18px;margin-top:14px}
.credentialRow{display:grid;grid-template-columns:115px minmax(0,1fr);gap:12px;align-items:center;padding:9px 0;border-bottom:1px solid #2c2c2c}
.credentialRow:last-child{border-bottom:0}.credentialRow .k{font-size:9px;text-transform:uppercase;letter-spacing:.08em;color:#999;font-weight:900}
.credentialValue{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:14px;font-weight:800;overflow-wrap:anywhere;user-select:all}
.credentialWarning{margin-top:12px;padding:11px 12px;border-radius:11px;background:#FFF8D8;border:1px solid #F0D56A;font-size:11px;line-height:1.5;color:#5f501f}
.firstPasswordHint{margin:10px 0 0;padding:10px 12px;border-radius:11px;background:#FFF8D8;border:1px solid #F0D56A;font-size:11px;line-height:1.5}
@media(max-width:760px){.credentialRow{grid-template-columns:1fr;gap:4px}.inviteUserHead .btn{width:100%}}


/* ===== FEINA · DEADLINE DESTACADA I ORDRE CRONOLÒGIC ===== */
#view-work .taskCardDeadline{
  display:flex;align-items:center;justify-content:space-between;gap:12px;
  margin-top:12px;padding:10px 12px;border-radius:11px;
  background:#FFF8D8;border:1px solid #F0D56A;
}
#view-work .taskCardDeadline .label{
  font-size:9px;font-weight:900;text-transform:uppercase;letter-spacing:.08em;color:#766B49;
}
#view-work .taskCardDeadline .date{
  font-family:Scale,Montserrat,sans-serif;font-size:22px;font-weight:900;line-height:1;color:#111;
  white-space:nowrap;
}
#view-work .taskCardDeadline.overdue{background:#FFF0EE;border-color:#E58B84}
#view-work .taskCardDeadline.overdue .label{color:#A23B34}
#view-work .taskCardDeadline.overdue .date{color:#8F201A}
#view-work .taskCardDeadline.today{background:#FFF1B7;border-color:#E5C447}
@media(max-width:760px){
  #view-work .taskCardDeadline .date{font-size:20px}
}


/* ===== FEINA · LLISTA GLOBAL PER DEADLINE (v5) ===== */
.workLayoutTabs{display:flex;gap:8px;flex-wrap:wrap;margin:0 0 14px}
.workLayoutTabs .btn.active{background:#111;color:#fff;border-color:#111}
.workDeadlineList{display:flex;flex-direction:column;gap:10px}
.workListRow{
  display:grid;grid-template-columns:190px minmax(0,1fr) auto;gap:20px;align-items:center;
  background:#fff;border:1px solid var(--line);border-radius:15px;padding:14px;
  box-shadow:0 3px 12px rgba(0,0,0,.035);cursor:pointer;transition:.15s ease;
}
.workListRow:hover{transform:translateY(-1px);border-color:#d5bd58;box-shadow:0 8px 22px rgba(0,0,0,.07)}
.workDeadlineBlock{
  min-width:0;max-width:100%;padding:13px 15px;border-radius:13px;background:#FFF8D8;border:1px solid #F0D56A;
  overflow:hidden;
}
.workDeadlineBlock .label{font-size:9px;font-weight:900;text-transform:uppercase;letter-spacing:.09em;color:#766B49}
.workDeadlineBlock .date{
  display:block;margin-top:4px;font-family:Scale,Montserrat,sans-serif;font-size:30px;font-weight:900;
  line-height:1.02;letter-spacing:-.025em;color:#111;white-space:nowrap;overflow:hidden;text-overflow:clip;
}
.workDeadlineBlock .relative{display:block;margin-top:5px;font-size:10px;font-weight:800;color:#766B49}
.workDeadlineBlock.overdue{background:#FFF0EE;border-color:#E58B84}
.workDeadlineBlock.overdue .label,.workDeadlineBlock.overdue .relative{color:#A23B34}
.workDeadlineBlock.overdue .date{color:#8F201A}
.workDeadlineBlock.today{background:#FFF1B7;border-color:#E5C447}
.workDeadlineBlock.nodate{background:#f5f5f2;border-color:#deddd7}
.workDeadlineBlock.nodate .date{font-size:20px;color:#777}
.workListMain{min-width:0}
.workListTitle{font-family:Scale,Montserrat,sans-serif;font-size:18px;font-weight:900;line-height:1.2;margin-top:4px}
.workListTop{display:flex;gap:6px;align-items:center;flex-wrap:wrap}
.workListMeta{display:flex;gap:10px;flex-wrap:wrap;margin-top:8px;font-size:11px;color:var(--muted)}
.workListActions{display:flex;gap:6px;align-items:center;justify-content:flex-end;flex-wrap:wrap}
@media(max-width:900px){
  .workListRow{grid-template-columns:170px minmax(0,1fr)}
  .workListActions{grid-column:1/-1;justify-content:flex-start}
  .workDeadlineBlock .date{font-size:27px}
}
@media(max-width:620px){
  .workLayoutTabs{display:grid;grid-template-columns:1fr}
  .workListRow{grid-template-columns:1fr;gap:10px;padding:12px}
  .workDeadlineBlock{display:grid;grid-template-columns:auto 1fr auto;gap:10px;align-items:center}
  .workDeadlineBlock .date{font-size:26px;margin:0}
  .workDeadlineBlock .relative{text-align:right;margin:0}
  .workListActions{grid-column:auto}
}



/* ===== CLIENT INTERN AUSA + CONNEXIONS · v10 ===== */
.clientCard.internalClient{
  background:linear-gradient(145deg,#101010,#242424);
  color:#fff;
  border:1px solid #FFBB00;
  box-shadow:0 12px 34px rgba(0,0,0,.16);
  position:relative;
  overflow:hidden;
}
.clientCard.internalClient:before{
  content:'AUSA';
  position:absolute;right:15px;top:12px;
  font-family:Scale,Montserrat,sans-serif;font-size:42px;font-weight:900;
  color:rgba(255,187,0,.10);letter-spacing:-.04em;pointer-events:none;
}
.clientCard.internalClient .muted{color:#c8c8c8!important}
.clientCard.internalClient .tiny.muted{color:#bdbdbd!important}
.clientCard.internalClient .clientName{color:#FFBB00}
.clientCard.internalClient .pill.gray{background:#303030;color:#ddd}
.clientCard.internalClient .clientTaskProgress{border-top-color:#383838}
.clientCard.internalClient .clientTaskProgressTrack{background:#383838}
.clientCard.internalClient .clientTaskProgressHead .label{color:#aaa}
.clientCard.internalClient .clientTaskProgressHead .count{color:#fff}
.pill.internal{background:#111;color:#FFBB00;border:1px solid #3b3b3b}

.workListRow.internalWork{
  background:#FFF9E6;border-color:#E0B43B;
  box-shadow:inset 5px 0 0 #111,0 4px 16px rgba(0,0,0,.045);
}
.taskCard.internalWork{
  background:#FFF9E6;border-color:#E0B43B;
  box-shadow:inset 4px 0 0 #111,0 3px 12px rgba(0,0,0,.04);
}
.listItem.internalWork{
  background:#FFF9E6;border-color:#E0B43B;box-shadow:inset 4px 0 0 #111;
}
.event.internalEvent{
  background:#111!important;color:#FFBB00!important;border:1px solid #FFBB00;
}
.card.internalMeeting{
  background:#FFF9E6;border-color:#E0B43B;
  box-shadow:inset 5px 0 0 #111,var(--shadow);
}

.connectionGrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.connectionCard{padding:16px;border:1px solid var(--line);border-radius:14px;background:#fff}
.connectionHead{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}
.connectionPlatform{font-family:Scale,Montserrat,sans-serif;font-size:18px;font-weight:900}
.connectionMeta{font-size:10px;color:var(--muted);margin-top:5px;line-height:1.5}
.connectionActions{display:flex;gap:7px;flex-wrap:wrap;margin-top:14px}
@media(max-width:760px){.connectionGrid{grid-template-columns:1fr}}

/* ===== ANALÍTICA MULTICANAL · v8 ===== */
.analyticsChannelWarning b{font-family:Scale,Montserrat,sans-serif}

/* Instagram Analytics · v14 */
.igSummary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}
.igMetricCard{background:var(--card);border:1px solid var(--border);border-radius:18px;padding:18px;min-height:134px;display:flex;flex-direction:column;justify-content:space-between}
.igMetricLabel{font-size:11px;letter-spacing:.09em;text-transform:uppercase;color:var(--muted);font-weight:800}
.igMetricValue{font-size:31px;line-height:1;font-weight:900;letter-spacing:-.035em;margin-top:12px}
.igMetricCompare{font-size:12px;font-weight:800;margin-top:12px;line-height:1.35}
.igMetricCompare.up{color:#22863a}.igMetricCompare.down{color:#c23b34}.igMetricCompare.neutral{color:var(--muted)}
.igPeriodBar{display:flex;justify-content:space-between;gap:12px;align-items:center;flex-wrap:wrap;margin:0 0 14px;padding:13px 15px;border:1px solid var(--border);border-radius:14px;background:var(--soft)}
.igPeriodBar .dates{font-size:12px;color:var(--muted)}
.igDataNote{font-size:11px;color:var(--muted);margin-top:10px}
@media(max-width:1100px){.igSummary{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:620px){.igSummary{grid-template-columns:1fr}.igMetricCard{min-height:116px}}


/* Analítica Instagram · visualitzacions estil Google Analytics / branding Ausa */
.analyticsTrendCard{padding:20px 22px 16px}
.analyticsChartHead{display:flex;justify-content:space-between;gap:16px;align-items:flex-start;flex-wrap:wrap;margin-bottom:6px}
.analyticsChartTitle{font-size:16px;font-weight:800;margin:0}
.analyticsChartSubtitle{font-size:12px;color:var(--muted);margin-top:4px}
.analyticsPlotWrap{position:relative;margin-top:10px}
.analyticsTimeChart{display:block;width:100%;height:310px;overflow:visible}
.analyticsChartLegend{display:flex;gap:18px;flex-wrap:wrap;align-items:center;margin-top:10px;font-size:12px;color:var(--muted)}
.analyticsLegendItem{display:inline-flex;gap:7px;align-items:center}
.analyticsLegendLine{width:24px;height:0;border-top:3px solid #FFBB00;border-radius:99px}
.analyticsLegendLine.previous{border-top:2px dashed #77736d}
.analyticsChartTooltip{position:absolute;pointer-events:none;display:none;z-index:5;min-width:190px;background:#222;color:#fff;border-radius:12px;padding:12px 13px;box-shadow:0 10px 30px rgba(0,0,0,.18);font-size:12px;line-height:1.45}
.analyticsChartTooltip b{display:block;font-size:13px;margin-bottom:7px}
.analyticsTooltipRow{display:flex;justify-content:space-between;gap:18px;margin-top:4px}
.analyticsTooltipDot{width:8px;height:8px;border-radius:50%;display:inline-block;margin-right:6px;background:#FFBB00}
.analyticsTooltipDot.previous{background:#77736d}
.analyticsChartEmpty{padding:58px 20px;text-align:center;color:var(--muted);font-size:13px}
@media(max-width:700px){.analyticsTimeChart{height:250px}.analyticsTrendCard{padding:16px}.analyticsChartHead{align-items:stretch}}


/* Instagram · Top publicacions */
.igTopPostsPanel{margin-bottom:14px}
.igTopPostsHead{display:flex;justify-content:space-between;gap:12px;align-items:center;flex-wrap:wrap;margin-bottom:12px}
.igTopPostsGrid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
.igTopPost{border:1px solid var(--border);border-radius:16px;overflow:hidden;background:var(--card);min-width:0}
.igTopPostMedia{position:relative;aspect-ratio:1.55/1;background:var(--soft);overflow:hidden}
.igTopPostMedia img{display:block;width:100%;height:100%;object-fit:cover}
.igTopPostPlaceholder{display:flex;width:100%;height:100%;align-items:center;justify-content:center;color:var(--muted);font-size:12px;font-weight:800;text-transform:uppercase;letter-spacing:.08em}
.igTopPostRank{position:absolute;top:10px;left:10px;background:#FFBB00;color:#111;border-radius:999px;padding:6px 9px;font-size:11px;font-weight:900}
.igTopPostBody{padding:14px}
.igTopPostText{font-size:13px;line-height:1.45;min-height:56px;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.igTopPostStats{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:12px}
.igTopPostStat{background:var(--soft);border-radius:10px;padding:9px 8px}
.igTopPostStat b{display:block;font-size:15px}
.igTopPostStat span{display:block;font-size:10px;color:var(--muted);margin-top:2px;text-transform:uppercase;letter-spacing:.05em;font-weight:800}
.igTopPostLink{display:inline-flex;margin-top:11px;font-size:12px;font-weight:800;color:inherit;text-decoration:none}
.igTopPostLink:hover{text-decoration:underline}
@media(max-width:900px){.igTopPostsGrid{grid-template-columns:1fr}}


/* Google Analytics · gràfica Top 10 pàgines */
.gaPagesLegend{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px 18px;margin-top:12px;font-size:11px;color:var(--muted)}
.gaLegendItem{display:flex;align-items:center;gap:8px;min-width:0}
.gaLegendSwatch{width:22px;height:0;border-top:3px solid var(--line);border-radius:99px;flex:0 0 auto}
.gaLegendLabel{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.gaLegendValue{margin-left:auto;font-weight:900;color:var(--text)}
.gaChartTooltip{max-width:390px}
.gaTooltipPath{max-width:245px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
@media(max-width:760px){.gaPagesLegend{grid-template-columns:1fr}}

/* YouTube Analytics · v100 */
.ytKpiGrid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin-bottom:14px}
.ytKpiCard{background:var(--card);border:1px solid var(--border);border-radius:18px;padding:19px;min-height:150px;display:flex;flex-direction:column}
.ytKpiLabel{font-size:11px;letter-spacing:.09em;text-transform:uppercase;color:var(--muted);font-weight:900}
.ytKpiValue{font-family:Scale,Montserrat,sans-serif;font-size:34px;line-height:1;font-weight:900;letter-spacing:-.04em;margin-top:12px}
.ytKpiBreakdown{display:flex;gap:8px;flex-wrap:wrap;margin-top:10px;font-size:11px;color:var(--muted)}
.ytKpiBreakdown span{background:var(--soft);border-radius:999px;padding:5px 8px;font-weight:800}
.ytKpiCompare{margin-top:auto;padding-top:13px;font-size:11px;font-weight:900;line-height:1.35}
.ytKpiCompare.up{color:#22863a}.ytKpiCompare.down{color:#c23b34}.ytKpiCompare.neutral{color:var(--muted)}
.ytChartLegend{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px 18px;margin-top:12px;font-size:11px;color:var(--muted)}
.ytLegendItem{display:flex;align-items:center;gap:8px;min-width:0}
.ytLegendSwatch{width:22px;height:0;border-top:3px solid var(--yt-line,#FFBB00);border-radius:99px;flex:0 0 auto}
.ytLegendTitle{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ytLegendValue{margin-left:auto;font-weight:900;color:var(--text)}
.ytRankSection{margin-top:14px}
.ytRankGrid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
.ytRankCard{background:var(--card);border:1px solid var(--border);border-radius:18px;padding:16px;min-width:0}
.ytRankHead{margin-bottom:11px}
.ytRankHead h3{font-size:15px;margin:3px 0 0}
.ytRankHead p{font-size:11px;color:var(--muted);margin:5px 0 0;line-height:1.45}
.ytRankRow{display:grid;grid-template-columns:30px 54px minmax(0,1fr) auto;gap:9px;align-items:center;padding:10px 0;border-top:1px solid #eee}
.ytRankRow:first-of-type{border-top:0}
.ytRankNo{font-size:13px;font-weight:900;color:#8b8b8b}
.ytRankThumb{width:54px;height:30px;border-radius:6px;overflow:hidden;background:#efefec;border:1px solid #e4e1da;display:flex;align-items:center;justify-content:center}
.ytRankThumb img{width:100%;height:100%;object-fit:cover;display:block}
.ytRankThumbFallback{font-size:9px;color:var(--muted);font-weight:900;letter-spacing:.04em}
.ytRankTitle{font-size:12px;font-weight:850;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ytRankMeta{font-size:10px;color:var(--muted);margin-top:3px}
.ytRankMetric{text-align:right;font-size:14px;font-weight:900;white-space:nowrap}
.ytRankPending{padding:20px 8px;text-align:center;color:var(--muted);font-size:12px;line-height:1.5}
.ytContentFilter{display:flex;gap:5px;flex-wrap:wrap;margin-top:10px}
.ytContentFilter button{appearance:none;border:1px solid #dedbd4;background:#f7f6f2;color:#6f6b65;border-radius:999px;padding:6px 9px;font:inherit;font-size:9px;font-weight:900;cursor:pointer;transition:.15s ease}
.ytContentFilter button:hover{border-color:#b9b5ad;color:var(--text)}
.ytContentFilter button.active{background:#171717;border-color:#171717;color:#fff}
.ytContentFilter.compact{margin-top:8px}
.ytContentFilter.compact button{padding:5px 8px;font-size:8px}
.ytFilterEmpty{padding:18px 8px;text-align:center;color:var(--muted);font-size:11px;line-height:1.5}
.ytType{display:inline-flex;border-radius:999px;background:#f1f1ee;padding:3px 6px;font-size:9px;font-weight:900;text-transform:uppercase;letter-spacing:.04em}
.ytType.short{background:#FCE9E7;color:#B63227}.ytType.video{background:#E9F0FF;color:#2F6FED}
.ttProfileBar{display:flex;align-items:center;gap:12px;background:#fff;border:1px solid var(--border);border-radius:18px;padding:14px 16px;margin-bottom:14px}
.ttProfileBar img{width:44px;height:44px;border-radius:50%;object-fit:cover;background:#eee}
.ttProfileBar .main{min-width:0}.ttProfileBar .main b{display:block;font-size:14px}.ttProfileBar .main span{display:block;color:var(--muted);font-size:11px;margin-top:3px}
.ttTopGrid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.ttVideoCard{background:#fff;border:1px solid var(--border);border-radius:16px;padding:10px;display:grid;grid-template-columns:72px minmax(0,1fr);gap:10px;min-width:0}
.ttVideoCard img{width:72px;height:96px;border-radius:10px;object-fit:cover;background:#eee}
.ttVideoCard b{font-size:11px;line-height:1.35;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.ttVideoStats{display:grid;grid-template-columns:repeat(2,1fr);gap:5px;margin-top:8px;font-size:9px;color:var(--muted)}
.ttVideoStats strong{color:var(--text);font-size:11px}
@media(max-width:1050px){.ytRankGrid{grid-template-columns:1fr}.ytKpiGrid{grid-template-columns:1fr}.ttTopGrid{grid-template-columns:1fr}}
@media(max-width:760px){.ytChartLegend{grid-template-columns:1fr}.ytKpiCard{min-height:132px}}


.gaViewControls{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.gaViewSelect{appearance:auto;border:1px solid var(--border);background:var(--card);color:var(--text);border-radius:10px;padding:8px 30px 8px 10px;font:inherit;font-size:12px;font-weight:800;min-width:108px}
.gaViewSelect:focus{outline:2px solid rgba(255,187,0,.28);outline-offset:1px}
.gaViewLoading{opacity:.65;pointer-events:none}


.accountingKpi.clickable{cursor:pointer;transition:transform .15s ease,box-shadow .15s ease,border-color .15s ease}
.accountingKpi.clickable:hover{transform:translateY(-1px);box-shadow:0 9px 24px rgba(0,0,0,.07)}
.accountingKpi.clickable:focus{outline:2px solid rgba(255,187,0,.45);outline-offset:2px}
.accountingKpi.clickable.active{border-color:#111;box-shadow:0 0 0 2px rgba(17,17,17,.08)}
.accountingSortBtn{appearance:none;border:0;background:none;padding:0;color:inherit;font:inherit;font-weight:900;text-transform:uppercase;letter-spacing:.07em;cursor:pointer;display:inline-flex;align-items:center;gap:5px}
.accountingSortBtn:hover{color:#111}
.accountingSortBtn .arrow{font-size:10px;line-height:1;opacity:.9}
.accountingFilterHint{display:inline-flex;align-items:center;gap:5px;margin-left:7px;font-size:9px;color:var(--muted);font-weight:800}


/* Reunions · principal + arxiu */
.meetingViewTabs{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin:0 0 14px}
.meetingViewTab{appearance:none;border:1px solid var(--line);background:#fff;color:var(--text);border-radius:999px;padding:9px 13px;font:800 11px Montserrat,sans-serif;cursor:pointer}
.meetingViewTab:hover{border-color:#aaa}
.meetingViewTab.active{background:#111;color:#fff;border-color:#111}
.meetingArchiveToolbar{display:flex;justify-content:space-between;align-items:end;gap:12px;flex-wrap:wrap;margin-bottom:14px}
.meetingArchiveFilter{display:grid;grid-template-columns:auto minmax(180px,280px);gap:8px;align-items:center}
.meetingArchiveFilter label{font-size:10px;font-weight:900;text-transform:uppercase;letter-spacing:.07em;color:var(--muted)}
.meetingArchiveFilter select{width:100%}
.meetingArchiveCount{font-size:10px;color:var(--muted);font-weight:800}
.meetingArchiveCard{opacity:.82}
@media(max-width:760px){
 .meetingArchiveToolbar{align-items:stretch}
 .meetingArchiveFilter{grid-template-columns:1fr}
 .meetingArchiveFilter select{min-width:0}
 .meetingViewTabs{display:grid;grid-template-columns:1fr 1fr}
 .meetingViewTab{width:100%}
}


/* Calendari · estat visual */
.calDay.today{
  position:relative;
  background:#FFF9DE;
  box-shadow:inset 0 0 0 2px #FFBB00;
}
.calDay.today .dayNum{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-width:25px;
  height:25px;
  padding:0 6px;
  border-radius:999px;
  background:#111;
  color:#FFBB00;
  font-weight:900;
}
.calTodayLabel{
  position:absolute;
  top:7px;
  right:7px;
  font-size:8px;
  font-weight:900;
  text-transform:uppercase;
  letter-spacing:.08em;
  color:#6f5a00;
}
.event.doneEvent,
.event.pastMeeting{
  background:#E8E8E5!important;
  color:#777!important;
  border:1px solid #D2D2CE!important;
  text-decoration:none;
  opacity:.88;
}
.event.doneEvent::before{
  content:'✓ ';
  font-weight:900;
}
.event.pastMeeting::before{
  content:'✓ ';
  font-weight:900;
}
.eventStatusMini{
  margin-left:4px;
  font-size:8px;
  font-weight:900;
  text-transform:uppercase;
  letter-spacing:.04em;
  opacity:.85;
}


/* Configuració · gestió de comptes */
.userManageActions{display:flex;justify-content:flex-end;gap:6px;flex-wrap:wrap}
.userAccessSelf{font-size:10px;color:var(--muted);font-weight:800}
.manageUserDangerBox{padding:12px;border:1px solid #efc4bf;background:#fff5f3;border-radius:12px;font-size:11px;line-height:1.5;color:#7f2c24}


/* ============================================================
   PORTAL AUSA · v32 · MOBILE TEST
   ============================================================ */
.mobileBottomNav,
.mobileQuickAdd{display:none}

@media(max-width:760px){
  /* Navegació inferior d'app */
  .mobileBottomNav{
    position:fixed;
    z-index:68;
    left:0;right:0;bottom:0;
    display:grid;
    grid-template-columns:repeat(5,minmax(0,1fr));
    align-items:stretch;
    min-height:67px;
    padding:5px 7px calc(5px + env(safe-area-inset-bottom));
    background:rgba(255,255,255,.97);
    border-top:1px solid var(--line);
    box-shadow:0 -8px 26px rgba(0,0,0,.08);
    backdrop-filter:blur(14px);
  }
  .mobileBottomNav button{
    appearance:none;
    border:0;
    background:transparent;
    min-width:0;
    min-height:54px;
    padding:5px 3px;
    border-radius:11px;
    display:flex;
    flex-direction:column;
    align-items:center;
    justify-content:center;
    gap:3px;
    color:#666;
    font:800 9px Montserrat,Arial,sans-serif;
    cursor:pointer;
  }
  .mobileBottomNav button .mobileNavIcon{
    font-size:20px;
    line-height:1;
    font-weight:900;
  }
  .mobileBottomNav button.active{
    background:#FFF1B7;
    color:#111;
  }

  /* El menú lateral passa a ser el menú "Més". */
  .mobileMenu{display:none!important}

  /* Espai perquè la barra inferior no tapi contingut. */
  .content{
    padding-bottom:calc(112px + env(safe-area-inset-bottom))!important;
  }

  /* Afegir ràpid sempre accessible. */
  .mobileQuickAdd{
    position:fixed;
    z-index:69;
    right:14px;
    bottom:calc(78px + env(safe-area-inset-bottom));
    width:52px;
    height:52px;
    border:0;
    border-radius:50%;
    display:grid;
    place-items:center;
    background:var(--yellow);
    color:#111;
    font-size:28px;
    line-height:1;
    font-weight:900;
    box-shadow:0 9px 28px rgba(0,0,0,.2);
    cursor:pointer;
  }

  /* Header compacte: compte + cerca. */
  .topbar{
    position:sticky;
    top:0;
    z-index:30;
    display:grid!important;
    grid-template-columns:minmax(0,1fr) auto;
    gap:7px 8px!important;
    padding:8px 10px!important;
    background:rgba(255,255,255,.97);
    backdrop-filter:blur(14px);
  }
  .topActions{
    grid-column:1/-1;
    grid-row:1;
    width:100%;
    max-width:none!important;
    margin:0!important;
    justify-content:space-between;
  }
  .accessSwitcher{
    max-width:calc(100vw - 70px)!important;
    min-width:0;
    flex:1;
  }
  .accessSwitcher .cloudUser{
    display:block;
    min-width:0;
    max-width:100%;
    overflow:hidden;
    text-overflow:ellipsis;
    white-space:nowrap;
    font-size:12px;
  }
  .search{
    grid-column:1/-1;
    grid-row:2;
    order:initial!important;
    width:100%;
  }

  /* Cards i accions pensades per dit. */
  .card{box-shadow:0 4px 18px rgba(0,0,0,.045)}
  .pageHead>button,
  .pageHead>div+button{
    width:100%;
  }
  .workLayoutTabs{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:7px;
  }
  .workLayoutTabs .btn{
    width:100%;
    min-width:0;
    white-space:normal;
    line-height:1.2;
  }

  /* Fitxa client realment a pantalla completa. */
  .drawerBack{
    padding:0!important;
    place-items:stretch!important;
  }
  .drawer,.drawer.wide{
    width:100vw!important;
    height:100dvh!important;
    max-width:none!important;
    max-height:none!important;
    border-radius:0!important;
  }
  .drawerHead{
    border-radius:0!important;
    padding:max(16px,env(safe-area-inset-top)) 14px 15px!important;
  }

  /* El botó IA no competeix amb les accions principals al mòbil. */
  .assistantFab{display:none!important}

  /* Comptabilitat: informació més explícita en targeta. */
  .accountingRow>div:nth-child(5)::before{
    content:'Actualitzat · ';
    font-weight:900;
    color:#666;
  }

  /* Calendari mòbil: selector Mes / Agenda. */
  .calendarMobileViewTabs{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:7px;
    width:100%;
    margin:0 0 10px;
  }
  .calendarMobileViewTabs .btn{width:100%}
  .calendarAgenda{
    display:flex;
    flex-direction:column;
    gap:10px;
  }
  .calendarAgendaDay{
    background:#fff;
    border:1px solid var(--line);
    border-radius:14px;
    overflow:hidden;
    box-shadow:var(--shadow);
  }
  .calendarAgendaDay.today{
    border-color:#FFBB00;
    box-shadow:0 0 0 2px rgba(255,187,0,.16);
  }
  .calendarAgendaDate{
    display:flex;
    align-items:center;
    gap:11px;
    padding:11px 12px;
    background:#FAFAF7;
    border-bottom:1px solid var(--line);
  }
  .calendarAgendaDay.today .calendarAgendaDate{background:#FFF8D8}
  .calendarAgendaDate .day{
    width:38px;
    height:38px;
    flex:0 0 38px;
    border-radius:11px;
    display:grid;
    place-items:center;
    background:#111;
    color:var(--yellow);
    font-family:Scale,Montserrat,sans-serif;
    font-size:19px;
    font-weight:900;
  }
  .calendarAgendaDate .label{
    min-width:0;
    font-weight:900;
    font-size:12px;
    text-transform:capitalize;
  }
  .calendarAgendaDate .sub{
    margin-top:2px;
    font-size:9px;
    color:var(--muted);
    font-weight:800;
    text-transform:uppercase;
    letter-spacing:.05em;
  }
  .calendarAgendaEvents{
    display:flex;
    flex-direction:column;
  }
  .calendarAgendaEvent{
    appearance:none;
    border:0;
    border-bottom:1px solid #F0EFE9;
    background:#fff;
    width:100%;
    text-align:left;
    padding:12px;
    display:grid;
    grid-template-columns:42px minmax(0,1fr) auto;
    gap:9px;
    align-items:center;
    cursor:pointer;
    color:#111;
  }
  .calendarAgendaEvent:last-child{border-bottom:0}
  .calendarAgendaEvent .time{
    font-size:10px;
    color:#666;
    font-weight:900;
  }
  .calendarAgendaEvent .title{
    min-width:0;
    font-size:12px;
    font-weight:900;
    line-height:1.3;
  }
  .calendarAgendaEvent .meta{
    margin-top:3px;
    color:var(--muted);
    font-size:9px;
    line-height:1.35;
  }
  .calendarAgendaEvent .kind{
    font-size:9px;
    font-weight:900;
    border-radius:999px;
    padding:5px 7px;
    white-space:nowrap;
    background:#FFF1B7;
    color:#765400;
  }
  .calendarAgendaEvent.meetingEvent .kind{
    background:#E9F0FF;
    color:#245CBD;
  }
  .calendarAgendaEvent.done,
  .calendarAgendaEvent.passed{
    background:#F2F2EF;
    color:#777;
  }
  .calendarAgendaEvent.done .kind,
  .calendarAgendaEvent.passed .kind{
    background:#E1E1DE;
    color:#666;
  }
  .calendarAgendaEmpty{
    padding:24px 14px;
    text-align:center;
    color:var(--muted);
    background:#fff;
    border:1px dashed #CFCFC9;
    border-radius:14px;
    font-size:12px;
  }

  /* Usuaris/permisos: botons còmodes. */
  .userManageActions{width:100%}
  .userManageActions .btn{width:100%}

  /* Login també aprofita tota l'amplada útil. */
  .authGate{padding:10px}
  .authCard{
    width:100%;
    max-width:440px;
    padding:20px 16px;
    border-radius:18px;
  }
}

@media(min-width:761px){
  .calendarMobileViewTabs{display:none!important}
}


/* v33 · Resum: reunions primer, tasques després */
.dashboardPriorityBlocks{
  display:grid;
  grid-template-columns:1fr;
  gap:4px;
}
.dashboardPriorityBlocks .sectionTitle{
  margin-top:20px;
}
@media(min-width:1100px){
  .dashboardPriorityBlocks{
    max-width:100%;
  }
}
@media(max-width:760px){
  .dashboardPriorityBlocks{
    gap:2px;
  }
  .dashboardPriorityBlocks .sectionRow{
    align-items:center;
  }
  .dashboardPriorityBlocks .sectionRow .btn{
    width:auto;
    min-height:38px;
    flex:0 0 auto;
  }
}


/* Analítica · informe PDF */
.analyticsHeaderActions{
  display:flex;
  gap:8px;
  align-items:center;
  justify-content:flex-end;
  flex-wrap:wrap;
}
.analyticsToolbar{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  flex-wrap:wrap;
  margin-bottom:16px;
}
.analyticsToolbar .filterbar{margin-bottom:0}
.analyticsToolbar .analyticsHeaderActions{margin-left:auto}
@media(max-width:760px){
  .analyticsHeaderActions{
    width:100%;
    display:grid;
    grid-template-columns:1fr 1fr;
  }
  .analyticsHeaderActions .btn{
    width:100%;
    min-width:0;
  }
  .analyticsToolbar{align-items:stretch}
  .analyticsToolbar .filterbar{width:100%}
  .analyticsToolbar .filterbar select{flex:1;min-width:0}
  .analyticsToolbar .analyticsHeaderActions{width:100%;margin-left:0}
}


/* v40 · CRM Prospectes */
.prospectDashboardAlert{
  border-color:#f1c94b;
  background:#fff9df;
}
.prospectKpis{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:12px;
  margin-bottom:16px;
}
.prospectToolbar{
  display:flex;
  justify-content:space-between;
  gap:12px;
  align-items:center;
  margin-bottom:14px;
}
.prospectFilters{
  display:flex;
  gap:8px;
  flex:1;
}
.prospectFilters input{min-width:260px;flex:1}
.prospectViewTabs{display:flex;gap:6px}
.prospectPipeline{
  display:grid;
  grid-template-columns:repeat(5,minmax(0,1fr));
  gap:12px;
  width:100%;
  min-width:0;
  overflow:visible;
  padding-bottom:8px;
}
.prospectColumn{
  background:#f2f1ec;
  border:1px solid var(--line);
  border-radius:15px;
  min-height:390px;
  min-width:0;
  overflow:hidden;
}
.prospectColumnHead{
  display:flex;
  justify-content:space-between;
  align-items:center;
  padding:12px 13px;
  border-bottom:1px solid var(--line);
  background:#fff;
  font-size:13px;
}
.prospectColumnHead span{
  min-width:25px;height:25px;border-radius:999px;
  display:grid;place-items:center;background:#f1efe8;font-size:11px;font-weight:900;
}
.prospectColumnBody{padding:9px}
.prospectColumnEmpty{
  border:1px dashed #d5d1c6;
  color:#918d84;
  border-radius:11px;
  padding:20px 10px;
  text-align:center;
  font-size:12px;
}
.prospectCard{
  background:#fff;
  border:1px solid var(--line);
  border-radius:12px;
  padding:12px;
  margin-bottom:9px;
  cursor:pointer;
  box-shadow:0 2px 8px rgba(0,0,0,.035);
}
.prospectCard:hover{border-color:#c9c4b7;transform:translateY(-1px)}
.prospectCardTop{display:flex;justify-content:space-between;gap:8px;align-items:flex-start}
.prospectCardTop b{font-size:13px}
.prospectMoney{font-size:19px;font-weight:900;margin-top:12px}
.prospectMoney span{font-size:10px;font-weight:600;color:var(--muted);margin-left:4px}
.prospectMeta{
  display:flex;justify-content:space-between;gap:8px;
  font-size:10px;color:var(--muted);margin-top:8px
}
.prospectFollowup{
  margin-top:8px;
  padding:0;
  border-radius:0;
  background:transparent;
  font-size:11px;
  font-weight:700;
  color:var(--text)
}
.prospectFollowup.overdue,.prospectDetailFollowup.overdue{background:transparent;color:#a62d1c}
.prospectFollowup.today,.prospectDetailFollowup.today{background:transparent;color:#725600}
.prospectFollowup.muted{color:var(--muted)}
.prospectPipelineMeta{
  display:grid;
  gap:6px;
  margin-top:8px;
}
.prospectPipelineMetaRow{
  display:flex;
  align-items:center;
  gap:6px;
  font-size:11px;
  color:var(--text);
}
.prospectPipelineMetaRow .label{
  color:var(--muted);
  font-weight:700;
  min-width:108px;
}
.prospectStageSelect{
  width:100%;
  margin-top:8px;
  min-height:34px;
  font-size:11px;
}
.prospectList{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:10px;
}
.prospectList .prospectCard{margin:0}
.prospectDetailActions{display:flex;gap:8px;flex-wrap:wrap}
.prospectDetailFollowup{
  margin-top:8px;
  padding:10px;
  background:#f5f4ef;
  border-radius:10px;
  font-weight:900;
}
.prospectActivityList{margin-top:14px}
.prospectActivityItem{
  padding:10px 0;
  border-top:1px solid var(--line);
}
.prospectActivityItem>div{display:flex;justify-content:space-between;gap:10px;flex-wrap:wrap}
.prospectActivityItem span{font-size:10px;color:var(--muted)}
.prospectActivityItem p{margin:6px 0 0;font-size:12px}
.prospectMobileHint{margin:0 0 9px}


.prospectCardTop>div{min-width:0}
.prospectCardTop b,
.prospectCardTop .tiny{
  overflow-wrap:anywhere;
}
.prospectCardTop .pill{
  flex:0 0 auto;
  max-width:48%;
  white-space:normal;
  text-align:center;
}
.prospectCardActions{
  display:flex;
  margin-top:8px;
}
.prospectMeetingBtn{
  width:100%;
  min-height:36px;
}
@media(max-width:1250px) and (min-width:951px){
  .prospectPipeline{
    grid-template-columns:repeat(3,minmax(0,1fr));
  }
}
@media(max-width:950px) and (min-width:761px){
  .prospectPipeline{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
}

@media(max-width:1000px){
  .prospectKpis{grid-template-columns:repeat(2,minmax(0,1fr))}
  .prospectList{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:760px){
  .prospectKpis{grid-template-columns:1fr}
  .prospectToolbar{display:grid;grid-template-columns:1fr}
  .prospectFilters{display:grid;grid-template-columns:1fr}
  .prospectFilters input{min-width:0;width:100%}
  .prospectViewTabs{display:grid;grid-template-columns:repeat(3,1fr)}
  .prospectViewTabs .btn{width:100%}
  .prospectList{grid-template-columns:1fr}
  .prospectDetailActions{display:grid;grid-template-columns:1fr 1fr}
  .prospectDetailActions .btn{width:100%}
}


/* v42 · Responsable visual de tasques */
.taskAssigneeAvatar{
  width:24px;
  height:24px;
  flex:0 0 24px;
  display:inline-grid;
  place-items:center;
  border-radius:50%;
  background:#111;
  color:#FFBB00;
  border:1px solid #111;
  font-family:Scale,Montserrat,Arial,sans-serif;
  font-size:10px;
  font-weight:900;
  line-height:1;
  vertical-align:middle;
}
.taskAssigneeAvatar.unassigned{
  background:#ECEBE6;
  color:#777;
  border-color:#D2D0C8;
}
.taskAssigneeAvatar.calendarAvatar{
  width:17px;
  height:17px;
  flex-basis:17px;
  font-size:8px;
}
.taskAssigneeAvatar.agendaAvatar{
  width:22px;
  height:22px;
  flex-basis:22px;
  font-size:9px;
}
.taskAssigneeAvatar.chipAvatar{
  width:21px;
  height:21px;
  flex-basis:21px;
  font-size:8px;
}
.taskAssigneeChip{
  display:inline-flex!important;
  align-items:center;
  gap:6px;
  width:max-content;
  max-width:100%;
  padding:3px 8px 3px 3px;
  border-radius:999px;
  background:#FFF4C7;
  border:1px solid #EACD62;
  color:#29230A;
  font-size:10px;
  font-weight:900;
  line-height:1.2;
}
.taskAssigneeChip>span:last-child{
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.taskAssigneeChip.unassigned{
  background:#F1F1EE;
  border-color:#D8D7D1;
  color:#777;
}
#view-work .workListMeta{
  align-items:center;
}
#view-work .taskMeta{
  align-items:center;
  flex-wrap:wrap;
}
#view-work .taskHoursMeta{
  white-space:nowrap;
}
#view-work .archiveMeta{
  margin-top:6px;
}
.event.taskCalendarEvent{
  display:flex;
  align-items:center;
  gap:5px;
  min-width:0;
}
.event.taskCalendarEvent .taskCalendarTitle{
  min-width:0;
  flex:1 1 auto;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.event.taskCalendarEvent .eventStatusMini{
  flex:0 0 auto;
}
.event.taskCalendarEvent.doneEvent::before{
  order:-2;
}
.event.taskCalendarEvent .calendarAvatar{
  order:-1;
}
.calendarAgendaMain{
  min-width:0;
}
.calendarAgendaTitleRow{
  display:flex;
  align-items:center;
  gap:7px;
  min-width:0;
}
.calendarAgendaTitleRow .title{
  min-width:0;
  flex:1;
}
@media(max-width:760px){
  .taskAssigneeChip{
    font-size:11px;
    padding-right:9px;
  }
}


/* v43 · Reunions amb inicial + sectors + seguiment automàtic */
.event.meetingCalendarEvent{
  display:flex;
  align-items:center;
  gap:5px;
  min-width:0;
}
.event.meetingCalendarEvent .meetingCalendarTitle{
  flex:1 1 auto;
  min-width:0;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.event.meetingCalendarEvent .eventStatusMini{
  flex:0 0 auto;
}
.taskAssigneeAvatar.meetingOwnerAvatar.unassigned{
  background:#E8EBF2;
  color:#70798C;
  border-color:#CCD1DC;
}
.taskFollowupBadge{
  display:inline-flex;
  width:max-content;
  margin-top:7px;
  padding:4px 7px;
  border-radius:999px;
  background:#FFF4C7;
  border:1px solid #EACD62;
  color:#6E5700;
  font-size:9px;
  font-weight:900;
}
.prospectFilters select{
  min-width:170px;
}
@media(max-width:760px){
  .prospectFilters select{
    width:100%;
    min-width:0;
  }
}


/* v44 · Prospectes · Llistat en taula ordenable */
.prospectTableWrap{
  width:100%;
  overflow-x:auto;
  border:1px solid var(--line);
  border-radius:14px;
  background:#fff;
  box-shadow:0 3px 14px rgba(0,0,0,.035);
}
.prospectTable{
  min-width:1380px;
  width:100%;
}
.prospectTableHeader,
.prospectTableRow{
  display:grid;
  grid-template-columns:
    minmax(210px,1.35fr)
    minmax(165px,1fr)
    minmax(135px,.8fr)
    minmax(135px,.85fr)
    minmax(200px,1.15fr)
    minmax(155px,.9fr)
    minmax(175px,1fr)
    minmax(165px,1fr)
    105px;
  align-items:center;
}
.prospectTableHeader{
  position:sticky;
  top:0;
  z-index:2;
  background:#111;
  color:#fff;
  min-height:46px;
}
.prospectTableSort,
.prospectTableActionsHead{
  height:100%;
  min-height:46px;
  border:0;
  border-right:1px solid rgba(255,255,255,.12);
  background:transparent;
  color:#fff;
  padding:9px 10px;
  text-align:left;
  font:900 9px Montserrat,Arial,sans-serif;
  text-transform:uppercase;
  letter-spacing:.055em;
}
.prospectTableSort{
  cursor:pointer;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:5px;
}
.prospectTableSort:hover{
  background:rgba(255,187,0,.13);
}
.prospectSortArrow{
  color:#FFBB00;
  font-size:12px;
}
.prospectSortArrow.muted{
  color:#777;
}
.prospectTableActionsHead{
  border-right:0;
  display:flex;
  align-items:center;
}
.prospectTableRow{
  min-height:58px;
  border-top:1px solid var(--line);
  cursor:pointer;
  transition:background .15s ease;
}
.prospectTableRow:hover{
  background:#FFF9DF;
}
.prospectTableCell{
  min-width:0;
  padding:9px 10px;
  font-size:10.5px;
  line-height:1.35;
  overflow:hidden;
  text-overflow:ellipsis;
}
.prospectTableCell a{
  color:inherit;
  text-decoration:underline;
  text-decoration-color:#c8c5bc;
  text-underline-offset:2px;
}
.prospectCompanyCell b{
  font-size:11.5px;
}
.prospectValueCell{
  font-weight:900;
  white-space:nowrap;
}
.prospectWebsiteCell,
.prospectNotesCell{
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}
.prospectNotesCell{
  color:#666;
}
.prospectOwnerInline{
  display:inline-flex;
  align-items:center;
  gap:6px;
  min-width:0;
  font-weight:800;
}
.prospectOwnerInline>span:last-child{
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}
.prospectFollowupTable{
  display:inline;
  padding:0;
  border-radius:0;
  background:transparent;
  font-size:11px;
  font-weight:700;
  white-space:nowrap;
  color:var(--text);
}
.prospectFollowupTable.overdue{
  background:transparent;
  color:#A62D1C;
}
.prospectFollowupTable.today{
  background:transparent;
  color:#725600;
}
.prospectFollowupTable.muted{
  color:var(--muted);
}
.prospectTableActions{
  display:flex;
  justify-content:flex-start;
}
.prospectTableActions .btn{
  white-space:nowrap;
}
@media(max-width:760px){
  .prospectTableWrap{
    border-radius:12px;
    -webkit-overflow-scrolling:touch;
  }
  .prospectTable{
    min-width:1340px;
  }
}


/* v45 · Tasques amb múltiples responsables */
.taskAssigneeAvatarGroup{
  display:inline-flex;
  align-items:center;
  flex:0 0 auto;
}
.taskAssigneeAvatarGroup .taskAssigneeAvatar + .taskAssigneeAvatar{
  margin-left:-5px;
}
.taskAssigneeAvatarGroup .taskAssigneeAvatar{
  box-shadow:0 0 0 2px #fff;
}
.taskAssigneeMore{
  width:24px;
  height:24px;
  flex:0 0 24px;
  margin-left:-5px;
  display:inline-grid;
  place-items:center;
  border-radius:50%;
  background:#EEEDE8;
  color:#555;
  border:1px solid #D2D0C8;
  box-shadow:0 0 0 2px #fff;
  font-size:8px;
  font-weight:900;
}
.taskAssigneeMore.calendarAvatar{
  width:17px;
  height:17px;
  flex-basis:17px;
  font-size:7px;
}
.taskAssigneeMore.agendaAvatar{
  width:22px;
  height:22px;
  flex-basis:22px;
  font-size:8px;
}
.taskAssigneeChips{
  display:inline-flex;
  flex-wrap:wrap;
  gap:5px;
  align-items:center;
  min-width:0;
}
.taskAssigneePicker{
  grid-template-columns:repeat(2,minmax(0,1fr));
}
@media(max-width:760px){
  .taskAssigneePicker{
    grid-template-columns:1fr;
  }
}


/* v46 · Color estable per usuari */
.taskAssigneeAvatar{
  transition:none;
}
.taskAssigneeAvatarGroup .taskAssigneeAvatar{
  position:relative;
}


/* v47 · Rol Comercial */
.permissionCards{
  grid-template-columns:repeat(4,minmax(0,1fr));
}
.commercialDashboardNote{
  background:#EAF7EE;
  border-color:#BFDCC8;
}
@media(max-width:1150px){
  .permissionCards{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
}
@media(max-width:760px){
  .permissionCards{
    grid-template-columns:1fr;
  }
}


/* v52 · Comptabilitat editable + imports manuals */
.accountingToolbar{
  align-items:flex-end;
}
.accountingAmountCell{
  min-width:0;
}
.accountingAmountEditor{
  display:flex;
  align-items:center;
  gap:5px;
  max-width:145px;
}
.accountingAmountInput{
  width:112px;
  min-height:36px;
  padding:7px 8px;
  border:1px solid var(--line);
  border-radius:8px;
  background:#fff;
  font:800 12px Montserrat,Arial,sans-serif;
  color:var(--text);
}
.accountingAmountInput:focus{
  outline:2px solid rgba(255,187,0,.3);
  border-color:#C99800;
}
.accountingAmountEditor>span{
  font-size:11px;
  font-weight:900;
}
.accountingManualBadge{
  display:inline-flex;
  margin-left:5px;
  padding:2px 5px;
  border-radius:999px;
  background:#FFF4C7;
  color:#6E5700;
  border:1px solid #EACD62;
  font-size:8px;
  font-weight:900;
  vertical-align:middle;
}
@media(max-width:760px){
  .accountingAmountInput{
    width:96px;
  }
}


/* v53 · Comptabilitat · referències puntuals */
.accountingExternalBadge{
  display:inline-flex;
  margin-left:5px;
  padding:2px 5px;
  border-radius:999px;
  background:#F0F0ED;
  color:#666;
  border:1px solid #D7D6D0;
  font-size:8px;
  font-weight:900;
  vertical-align:middle;
}


/* v54 · Edició i eliminació d'entrades comptables */
.accountingActions{
  display:flex;
  gap:6px;
  align-items:center;
  justify-content:flex-start;
}
.accountingActions .btn{
  white-space:nowrap;
}
@media(max-width:760px){
  .accountingActions{
    gap:5px;
  }
}


/* v55 · Arxiu d'enllaços */
.archiveSectionHead{
  display:flex;
  justify-content:space-between;
  align-items:flex-end;
  gap:14px;
  margin:18px 0 10px;
}
.archiveFixedGrid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:10px;
}
.archiveFixedCard{
  display:flex;
  align-items:center;
  gap:10px;
  min-width:0;
  padding:12px;
  background:#111;
  color:#fff;
  border-radius:12px;
  border:1px solid #252525;
}
.archiveFixedIcon{
  width:54px;
  height:54px;
  flex:0 0 54px;
  display:grid;
  place-items:center;
  border-radius:14px;
  background:transparent;
  color:#111;
  font-weight:900;
}
.archiveFixedIcon .clientBrandMark{
  width:54px;
  height:54px;
  border-radius:14px;
  border:0;
}
.archiveFixedIcon .clientBrandMark img{
  object-fit:contain;
  padding:4px;
  background:#fff;
}
.archiveFixedMain{
  flex:1;
  min-width:0;
}
.archiveFixedCard .eyebrow{
  color:#999;
  margin-bottom:3px;
}
.archiveFixedTitle{
  color:#fff;
  font-size:12px;
  font-weight:900;
  text-decoration:none;
  overflow-wrap:anywhere;
}
.archiveFixedTitle:hover{
  color:#FFBD00;
}
.archiveTabs{
  display:flex;
  gap:7px;
  flex-wrap:wrap;
  margin:22px 0 8px;
}
.archiveInfo{
  padding:9px 11px;
  margin-bottom:10px;
  border-radius:9px;
  background:#F5F4EF;
  color:#69665F;
  font-size:10px;
}
.archiveTableWrap{
  width:100%;
  overflow-x:auto;
  border:1px solid var(--line);
  border-radius:13px;
  background:#fff;
}
.archiveTable{
  min-width:860px;
}
.archiveTableHead,
.archiveRow{
  display:grid;
  grid-template-columns:
    minmax(150px,1fr)
    minmax(280px,2fr)
    110px
    145px
    minmax(190px,1fr);
  align-items:center;
  gap:10px;
  padding:0 12px;
}
.archiveTableHead{
  min-height:42px;
  background:#111;
  color:#fff;
  font-size:9px;
  font-weight:900;
  text-transform:uppercase;
  letter-spacing:.055em;
}
.archiveRow{
  min-height:58px;
  border-top:1px solid var(--line);
  font-size:11px;
}
.archiveClient{
  font-weight:900;
}
.archiveDescription{
  min-width:0;
}
.archiveDescription a{
  color:var(--text);
  font-weight:800;
  text-decoration:none;
  overflow-wrap:anywhere;
}
.archiveDescription a:hover{
  text-decoration:underline;
}
.archiveStatusSelect{
  width:100%;
  min-height:34px;
  padding:6px 8px;
  border-radius:8px;
  border:1px solid var(--line);
  font-size:10px;
  font-weight:900;
}
.archiveStatusSelect.gray{
  background:#F1F1EE;
  color:#666;
}
.archiveStatusSelect.yellow{
  background:#FFF4C7;
  color:#725600;
}
.archiveStatusSelect.green{
  background:#EAF7EE;
  color:#276B3D;
}
.archiveRowActions{
  display:flex;
  align-items:center;
  gap:6px;
  flex-wrap:wrap;
}
.archiveExpiry{
  font-size:9px;
  font-weight:900;
  color:#666;
}
.archiveDeleteBtn{
  color:#9B2C1F;
}
@media(max-width:1100px){
  .archiveFixedGrid{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
}
@media(max-width:760px){
  .archiveSectionHead{
    align-items:stretch;
    display:grid;
  }
  .archiveFixedGrid{
    grid-template-columns:1fr;
  }
  .archiveFixedCard{
    align-items:flex-start;
  }
  .archiveTableWrap{
    overflow:visible;
    border:0;
    background:transparent;
  }
  .archiveTable{
    min-width:0;
  }
  .archiveTableHead{
    display:none;
  }
  .archiveRow{
    display:grid;
    grid-template-columns:1fr;
    gap:7px;
    padding:12px;
    margin-bottom:9px;
    border:1px solid var(--line);
    border-radius:12px;
    background:#fff;
  }
  .archiveDescription a{
    font-size:13px;
  }
  .archiveStatusSelect{
    max-width:180px;
  }
}


/* v56 · Filtre de client + accés Client a Arxiu */
.archiveFilterBar{
  display:flex;
  align-items:flex-end;
  gap:10px;
  margin:14px 0 4px;
}
.archiveStatusBadge{
  display:inline-flex;
  align-items:center;
  min-height:30px;
  padding:6px 9px;
  border-radius:8px;
  border:1px solid var(--line);
  font-size:10px;
  font-weight:900;
}
.archiveStatusBadge.gray{
  background:#F1F1EE;
  color:#666;
}
.archiveStatusBadge.yellow{
  background:#FFF4C7;
  color:#725600;
}
.archiveStatusBadge.green{
  background:#EAF7EE;
  color:#276B3D;
}
@media(max-width:760px){
  .archiveFilterBar{
    display:grid;
  }
  .archiveFilterBar .field{
    min-width:0!important;
  }
}


/* v57 · Logos de client */
.clientBrandMark{
  --client-brand-bg:#777;
  position:relative;
  display:inline-grid;
  place-items:center;
  flex:0 0 auto;
  overflow:hidden;
  border-radius:50%;
  background:var(--client-brand-bg);
  color:#fff;
  border:1px solid rgba(0,0,0,.09);
  font-weight:900;
  line-height:1;
  vertical-align:middle;
}
.clientBrand-xs{width:18px;height:18px;font-size:8px}
.clientBrand-sm{width:24px;height:24px;font-size:10px}
.clientBrand-md{width:34px;height:34px;font-size:13px}
.clientBrand-lg{width:46px;height:46px;font-size:18px}
.clientBrand-xl{width:72px;height:72px;font-size:25px}
.clientBrandMark img{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  object-fit:contain;
  background:#fff;
}
.clientBrandMark.has-logo .clientBrandFallback{
  visibility:hidden;
}
.clientBrandInline{
  display:inline-flex;
  align-items:center;
  gap:6px;
  min-width:0;
  vertical-align:middle;
}
.clientBrandInline>span:last-child{
  min-width:0;
  overflow:hidden;
  text-overflow:ellipsis;
}
.clientCardNameRow{
  display:flex;
  align-items:center;
  gap:9px;
  margin-top:9px;
}
.clientDrawerTitle{
  display:flex;
  align-items:center;
  gap:10px;
  margin:5px 0;
}
.clientDrawerTitle h2{
  margin:0;
}
.clientLogoUpload{
  display:flex;
  align-items:center;
  gap:14px;
  padding:12px;
  border:1px solid var(--line);
  border-radius:12px;
  background:#fafaf8;
}
.clientLogoUploadMain{
  flex:1;
  min-width:0;
}
.clientLogoUploadActions{
  display:flex;
  gap:7px;
  flex-wrap:wrap;
  margin-top:8px;
}
.clientLogoUpload input[type="file"]{
  width:100%;
  max-width:420px;
}
.clientBrandInPill{
  text-transform:none;
  letter-spacing:0;
}
.calendarClientBrand{
  margin-right:2px;
}
.accountingClientName .clientBrandInline{
  font-weight:900;
}
.archiveClient .clientBrandInline,
.archiveFixedCard .clientBrandInline{
  font-weight:900;
}
@media(max-width:760px){
  .clientLogoUpload{
    align-items:flex-start;
  }
  .clientBrand-xl{
    width:58px;
    height:58px;
    font-size:21px;
  }
}


.analyticsSelectedClient{
  display:flex;
  align-items:center;
  margin:0 0 10px;
  font-family:Scale,Montserrat,sans-serif;
  font-size:17px;
  font-weight:900;
}
.avatar.clientTopAvatar{
  padding:0;
  background:transparent;
  overflow:visible;
}
.avatar.clientTopAvatar>.clientBrandMark{
  width:38px;
  height:38px;
}


/* v59 · Top posts Meta */
.igTopPostStats{
  grid-template-columns:repeat(4,minmax(0,1fr));
}
.facebookTopViews{
  display:flex;
  align-items:baseline;
  gap:6px;
  margin-top:10px;
}
.facebookTopViews b{
  font-size:18px;
  font-weight:900;
}
.facebookTopViews span{
  font-size:9px;
  color:var(--muted);
  font-weight:800;
}
@media(max-width:760px){
  .igTopPostStats{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
}


/* v60 · Assignació real de càrrega */
.taskAssignmentGroup{
  display:inline-flex;
  align-items:center;
  gap:7px;
  flex-wrap:wrap;
}
.taskAssignmentHint{
  display:inline-flex;
  align-items:center;
  min-height:24px;
  padding:4px 7px;
  border-radius:999px;
  font-size:9px;
  font-weight:900;
  white-space:nowrap;
}
.taskAssignmentHint.shared{
  background:#FFF4C7;
  color:#725600;
}
.taskAssignmentHint.claimed{
  background:#EAF7EE;
  color:#276B3D;
}
.taskAssignmentHint.all{
  background:#E9F0FF;
  color:#2F5FA8;
}
.taskAssignmentHelp{
  line-height:1.55;
}
.taskClaimBtn{
  white-space:nowrap;
}
.taskCardClaimAction{
  margin-top:9px;
}
.workListActions{
  display:flex;
  gap:6px;
  align-items:center;
  flex-wrap:wrap;
}
.teamCapacityKpis{
  margin-bottom:4px;
}
.teamSharedAvailable{
  margin-top:6px;
  display:inline-flex;
  padding:4px 7px;
  border-radius:999px;
  background:#FFF4C7;
  color:#725600;
  font-size:9px;
  font-weight:900;
}
@media(max-width:760px){
  .teamCapacityKpis{
    grid-template-columns:1fr;
  }
  .taskAssignmentHint{
    white-space:normal;
  }
}


/* v61 · Resum personalitzat per usuari */
.dashboardScopeControls{
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:8px;
  flex-wrap:wrap;
}
.dashboardScopeTabs{
  display:flex;
  gap:5px;
  padding:4px;
  border-radius:11px;
  background:#F0EFEA;
}
.dashboardPersonSelect{
  min-width:190px;
  min-height:38px;
  font-size:11px;
  font-weight:800;
}
.dashboardClientList{
  padding:0;
  overflow:hidden;
}
.dashboardClientRow{
  display:flex;
  align-items:center;
  gap:10px;
  min-height:58px;
  padding:10px 12px;
  border-top:1px solid var(--line);
  cursor:pointer;
}
.dashboardClientRow:first-child{
  border-top:0;
}
.dashboardClientRow:hover{
  background:#FAFAF7;
}
.dashboardClientMain{
  flex:1;
  min-width:0;
}
.dashboardClientMain b{
  font-size:12px;
}
.dashboardClientMain .tiny{
  margin-top:3px;
}
@media(max-width:760px){
  .dashboardScopeControls{
    width:100%;
    justify-content:stretch;
  }
  .dashboardScopeTabs{
    width:100%;
  }
  .dashboardScopeTabs .btn{
    flex:1;
  }
  .dashboardPersonSelect{
    width:100%;
  }
  .dashboardScopeControls>.btn{
    width:100%;
  }
}


/* v62 · Vinculació compte ↔ persona de l'equip */
.dashboardLinkedPerson{
  display:inline-flex;
  align-items:center;
  gap:6px;
  min-height:36px;
  padding:5px 9px;
  border-radius:999px;
  background:#F0EFEA;
  color:var(--text);
  font-size:10px;
  font-weight:900;
}


/* v64 · Fotos de l'equip */
.taskAssigneeAvatar{
  position:relative;
  overflow:hidden;
}
.taskAssigneeAvatar .taskAssigneeFallback{
  display:grid;
  place-items:center;
  width:100%;
  height:100%;
}
.taskAssigneeAvatar.has-photo .taskAssigneeFallback{
  visibility:hidden;
}
.taskAssigneeAvatar>img{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  object-fit:cover;
  background:#fff;
}
.taskAssigneeAvatar.teamAvatar{
  width:42px;
  height:42px;
  flex-basis:42px;
  font-size:14px;
}
.taskAssigneeAvatar.teamPhotoPreview{
  width:72px;
  height:72px;
  flex-basis:72px;
  font-size:24px;
}
.taskAssigneeAvatar.topTeamAvatar{
  width:38px;
  height:38px;
  flex-basis:38px;
  font-size:13px;
}
.teamPersonIdentity{
  display:flex;
  align-items:center;
  gap:10px;
  min-width:0;
}
.teamPersonIdentityMain{
  min-width:0;
}
.teamPhotoUpload{
  display:flex;
  align-items:center;
  gap:14px;
  padding:12px;
  border:1px solid var(--line);
  border-radius:12px;
  background:#FAFAF8;
}
.teamPhotoUploadMain{
  flex:1;
  min-width:0;
}
.teamPhotoUploadActions{
  display:flex;
  gap:7px;
  flex-wrap:wrap;
  margin-top:8px;
}
.avatar.teamMemberTopAvatar{
  padding:0;
  background:transparent;
  overflow:visible;
}
@media(max-width:760px){
  .teamPhotoUpload{
    align-items:flex-start;
  }
  .taskAssigneeAvatar.teamPhotoPreview{
    width:60px;
    height:60px;
    flex-basis:60px;
    font-size:21px;
  }
}


/* v65 · Vinculació pròpia dins Usuaris i permisos */
.accountTeamLink{
  display:inline-flex;
  align-items:center;
  gap:7px;
  min-width:0;
}
.accountTeamLink>span:last-child{
  min-width:0;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}


/* v66 · Calendari Mes / Setmana / Dia */
.calendarViewTabs{
  display:flex;
  gap:7px;
  flex-wrap:wrap;
  margin:0 0 12px;
}
.calendarViewTabs .btn{
  min-width:105px;
}
.calendarTodayBtn{
  white-space:nowrap;
}
.calendarWeekScroll{
  width:100%;
  overflow-x:auto;
  padding-bottom:6px;
}
.calendarWeekGrid{
  display:grid;
  grid-template-columns:repeat(7,minmax(145px,1fr));
  min-width:1015px;
  background:#fff;
  border:1px solid var(--line);
  border-radius:15px;
  overflow:hidden;
}
.calendarWeekDay{
  min-width:0;
  border-right:1px solid #ECECE7;
  background:#fff;
}
.calendarWeekDay:last-child{
  border-right:0;
}
.calendarWeekDay.today{
  background:#FFFCF0;
}
.calendarWeekDayHead{
  appearance:none;
  border:0;
  border-bottom:1px solid var(--line);
  width:100%;
  min-height:72px;
  background:#FAFAF7;
  padding:9px;
  display:flex;
  align-items:center;
  justify-content:center;
  gap:5px;
  flex-wrap:wrap;
  cursor:pointer;
  color:var(--text);
}
.calendarWeekDay.today .calendarWeekDayHead{
  background:#FFF6C9;
}
.calendarWeekDayHead .weekday{
  width:100%;
  text-align:center;
  font-size:9px;
  font-weight:900;
  text-transform:uppercase;
  letter-spacing:.06em;
  color:var(--muted);
}
.calendarWeekDayHead .number{
  font-family:Scale,Montserrat,sans-serif;
  font-size:22px;
  font-weight:900;
}
.calendarWeekDayHead .month{
  font-size:9px;
  font-weight:800;
  color:var(--muted);
  text-transform:uppercase;
}
.calendarWeekDayHead .todayLabel{
  width:100%;
  font-size:8px;
  font-weight:900;
  color:#725600;
  text-transform:uppercase;
}
.calendarWeekEvents{
  min-height:430px;
  padding:7px;
}
.calendarWeekEvent{
  appearance:none;
  width:100%;
  border:1px solid transparent;
  border-radius:9px;
  padding:8px;
  margin-bottom:7px;
  text-align:left;
  cursor:pointer;
  display:block;
  color:var(--text);
}
.calendarWeekEvent.meeting{
  background:#E9F0FF;
  border-color:#D6E2FB;
}
.calendarWeekEvent.task{
  background:#FFF3BF;
  border-color:#F1DF93;
}
.calendarWeekEvent.done,
.calendarWeekEvent.passed{
  background:#EFEFEC;
  border-color:#DEDED9;
  color:#777;
}
.calendarWeekEventTop{
  display:flex;
  align-items:center;
  gap:4px;
  margin-bottom:5px;
}
.calendarWeekEvent .time{
  margin-left:auto;
  font-size:8px;
  font-weight:900;
  color:inherit;
}
.calendarWeekEvent b{
  display:block;
  font-size:10px;
  line-height:1.3;
}
.calendarWeekEvent .meta{
  display:block;
  margin-top:4px;
  font-size:8px;
  line-height:1.3;
  opacity:.78;
}
.calendarWeekEvent .state{
  display:inline-flex;
  margin-top:5px;
  padding:3px 5px;
  border-radius:999px;
  background:rgba(255,255,255,.65);
  font-size:7px;
  font-weight:900;
  text-transform:uppercase;
}
.calendarWeekEmpty{
  padding:16px 5px;
  text-align:center;
  color:#AAA;
  font-size:9px;
}
.calendarDayView{
  background:#fff;
  border:1px solid var(--line);
  border-radius:15px;
  overflow:hidden;
}
.calendarDayView.today{
  border-color:#FFBB00;
  box-shadow:0 0 0 2px rgba(255,187,0,.12);
}
.calendarDayHero{
  display:flex;
  align-items:center;
  gap:14px;
  padding:15px 17px;
  background:#FAFAF7;
  border-bottom:1px solid var(--line);
}
.calendarDayView.today .calendarDayHero{
  background:#FFF8D8;
}
.calendarDayHeroNumber{
  width:58px;
  height:58px;
  flex:0 0 58px;
  border-radius:14px;
  display:grid;
  place-items:center;
  background:#111;
  color:var(--yellow);
  font-family:Scale,Montserrat,sans-serif;
  font-size:28px;
  font-weight:900;
}
.calendarDayHeroWeekday{
  font-size:16px;
  font-weight:900;
  text-transform:capitalize;
}
.calendarDayHeroDate{
  margin-top:3px;
  font-size:10px;
  font-weight:800;
  color:var(--muted);
  text-transform:capitalize;
}
.calendarDayEvents{
  display:flex;
  flex-direction:column;
}
.calendarDayEvent{
  appearance:none;
  width:100%;
  border:0;
  border-bottom:1px solid #EFEFEA;
  background:#fff;
  padding:14px 16px;
  display:grid;
  grid-template-columns:65px minmax(0,1fr) auto;
  gap:12px;
  align-items:center;
  text-align:left;
  cursor:pointer;
  color:var(--text);
}
.calendarDayEvent:last-child{
  border-bottom:0;
}
.calendarDayEvent.meeting{
  background:#FCFDFF;
}
.calendarDayEvent.done,
.calendarDayEvent.passed{
  background:#F3F3F0;
  color:#777;
}
.calendarDayTime{
  font-size:10px;
  font-weight:900;
  color:var(--muted);
}
.calendarDayEventMain{
  min-width:0;
}
.calendarDayTitleRow{
  display:flex;
  align-items:center;
  gap:7px;
  min-width:0;
}
.calendarDayTitleRow b{
  min-width:0;
  font-size:13px;
  line-height:1.35;
}
.calendarDayEventMain .meta{
  margin-top:4px;
  font-size:9px;
  line-height:1.4;
  color:var(--muted);
}
.calendarDayKind{
  padding:5px 7px;
  border-radius:999px;
  background:#F1F1EE;
  font-size:8px;
  font-weight:900;
  white-space:nowrap;
}
.calendarDayEvent.meeting .calendarDayKind{
  background:#E9F0FF;
  color:#245CBD;
}
.calendarDayEvent.task .calendarDayKind{
  background:#FFF1B7;
  color:#765400;
}
.calendarDayEvent.done .calendarDayKind,
.calendarDayEvent.passed .calendarDayKind{
  background:#E1E1DE;
  color:#666;
}
.calendarDayEmpty{
  padding:34px 16px;
  text-align:center;
  color:var(--muted);
  font-size:12px;
}
.calDay:hover{
  background:#FFFDF5;
}
.calDay.out:hover{
  background:#F6F6F2;
}
@media(max-width:760px){
  .calendarViewTabs{
    display:grid;
    grid-template-columns:repeat(3,1fr);
    gap:6px;
  }
  .calendarViewTabs .btn{
    width:100%;
    min-width:0;
    padding-left:7px;
    padding-right:7px;
  }
  .calendarHead{
    grid-template-columns:44px minmax(0,1fr) 44px!important;
  }
  .calendarHead .calendarTodayBtn{
    grid-column:1/-1;
    min-height:38px;
  }
  .calendarWeekGrid{
    grid-template-columns:repeat(7,145px);
    min-width:1015px;
  }
  .calendarWeekEvents{
    min-height:360px;
  }
  .calendarDayEvent{
    grid-template-columns:48px minmax(0,1fr);
    gap:8px;
    padding:12px;
  }
  .calendarDayKind{
    grid-column:2;
    justify-self:start;
  }
}


/* v67 · Reunions amb múltiples participants interns */
.meetingParticipantPicker{
  grid-template-columns:repeat(2,minmax(0,1fr));
}
.meetingParticipantChoice{
  display:flex;
  align-items:center;
  gap:8px;
  min-width:0;
}
.meetingParticipantChoice>span{
  min-width:0;
}
.meetingParticipantSummary{
  display:inline-flex;
  align-items:center;
  gap:7px;
  min-width:0;
  vertical-align:middle;
}
.meetingParticipantSummary>span:last-child{
  min-width:0;
  overflow:hidden;
  text-overflow:ellipsis;
}
.meetingParticipantsLine{
  display:flex;
  align-items:center;
  gap:6px;
  flex-wrap:wrap;
}
@media(max-width:760px){
  .meetingParticipantPicker{
    grid-template-columns:1fr;
  }
}


/* v68 · Filtre de Reunions per treballador */
.meetingCurrentToolbar,
.meetingArchiveToolbarMulti{
  display:flex;
  align-items:flex-end;
  gap:12px;
  flex-wrap:wrap;
  margin-bottom:12px;
}
.meetingPersonFilter{
  display:grid;
  grid-template-columns:auto minmax(190px,300px);
  gap:8px;
  align-items:center;
}
.meetingPersonFilter label{
  font-size:10px;
  font-weight:900;
  text-transform:uppercase;
  letter-spacing:.07em;
  color:var(--muted);
}
.meetingPersonFilter select{
  width:100%;
}
.meetingMineIndicator{
  display:inline-flex;
  align-items:center;
  gap:7px;
  min-height:38px;
  padding:6px 9px;
  border-radius:9px;
  background:#F3F2EE;
  font-size:10px;
  font-weight:900;
}
.meetingCurrentToolbar .meetingArchiveCount,
.meetingArchiveToolbarMulti .meetingArchiveCount{
  margin-left:auto;
}
@media(max-width:760px){
  .meetingCurrentToolbar,
  .meetingArchiveToolbarMulti{
    display:grid;
    align-items:stretch;
  }
  .meetingPersonFilter{
    grid-template-columns:1fr;
  }
  .meetingPersonFilter select{
    min-width:0;
  }
  .meetingCurrentToolbar .meetingArchiveCount,
  .meetingArchiveToolbarMulti .meetingArchiveCount{
    margin-left:0;
  }
}


/* v69 · Resum operatiu */
.dashboardHeadActions{
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:10px;
  flex-wrap:wrap;
}
.dashboardSection{
  margin-top:20px;
}
.dashboardSection .sectionRow{
  margin-bottom:9px;
}
.dashboardTodayGrid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:12px;
}
.dashboardTodayCard{
  padding:0;
  overflow:hidden;
}
.dashboardMiniHead{
  display:flex;
  align-items:center;
  justify-content:space-between;
  padding:11px 12px;
  border-bottom:1px solid var(--line);
  background:#FAFAF7;
  font-size:10px;
  font-weight:900;
  text-transform:uppercase;
  letter-spacing:.06em;
}
.dashboardMiniHead b{
  min-width:25px;
  height:25px;
  border-radius:999px;
  display:grid;
  place-items:center;
  background:#111;
  color:var(--yellow);
  font-size:10px;
}
.dashboardTodayCard .dashboardCompactItem{
  padding:10px 11px;
}
.dashboardTodayEmpty{
  padding:20px 12px;
  text-align:center;
  color:var(--muted);
  font-size:10px;
}
.dashboardCompactItem{
  display:flex;
  align-items:center;
  gap:9px;
}
.dashboardItemVisual{
  flex:0 0 auto;
  display:flex;
  align-items:center;
}
.dashboardItemMain{
  flex:1;
  min-width:0;
}
.dashboardItemMain b{
  display:block;
  overflow:hidden;
  text-overflow:ellipsis;
}
.dashboardItemActions{
  display:flex;
  gap:5px;
  align-items:center;
  justify-content:flex-end;
  flex-wrap:wrap;
}
.dashboardProspectIcon{
  width:28px;
  height:28px;
  border-radius:9px;
  display:grid;
  place-items:center;
  background:#FFF1B7;
  color:#765400;
  font-size:10px;
  font-weight:900;
}
.dashboardAttentionCount{
  font-size:9px;
  font-weight:900;
  color:var(--muted);
  text-transform:uppercase;
}
.dashboardAttentionList{
  padding:0;
  overflow:hidden;
}
.dashboardAttentionRow{
  appearance:none;
  width:100%;
  border:0;
  border-bottom:1px solid var(--line);
  background:#fff;
  padding:11px 13px;
  display:grid;
  grid-template-columns:31px minmax(0,1fr) 18px;
  gap:9px;
  align-items:center;
  text-align:left;
  color:var(--text);
  cursor:pointer;
}
.dashboardAttentionRow:last-child{
  border-bottom:0;
}
.dashboardAttentionRow:hover{
  background:#FAFAF7;
}
.dashboardAttentionIcon{
  width:29px;
  height:29px;
  border-radius:9px;
  display:grid;
  place-items:center;
  font-size:10px;
  font-weight:900;
  background:#EEE;
}
.dashboardAttentionRow.danger .dashboardAttentionIcon{
  background:#FFF0EE;
  color:#A23B34;
}
.dashboardAttentionRow.warning .dashboardAttentionIcon{
  background:#FFF3BF;
  color:#765400;
}
.dashboardAttentionRow.neutral .dashboardAttentionIcon{
  background:#EEF2F6;
  color:#465364;
}
.dashboardAttentionMain{
  min-width:0;
}
.dashboardAttentionMain b{
  display:block;
  font-size:11px;
}
.dashboardAttentionMain span{
  display:block;
  margin-top:2px;
  color:var(--muted);
  font-size:9px;
}
.dashboardAttentionArrow{
  color:var(--muted);
  font-weight:900;
}
.dashboardAllGood{
  padding:22px 14px;
  text-align:center;
  color:#477A55;
  font-size:11px;
  font-weight:800;
}
.dashboardMainGrid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:14px;
}
.dashboardClientStatusRow .dashboardClientTeam{
  margin-top:2px;
}
.dashboardLoadRow{
  padding:11px 0;
  border-bottom:1px solid var(--line);
}
.dashboardLoadRow:first-child{
  padding-top:0;
}
.dashboardLoadRow:last-child{
  border-bottom:0;
  padding-bottom:0;
}
.dashboardLoadTop{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
}
.dashboardLoadPerson{
  display:flex;
  align-items:center;
  gap:7px;
  min-width:0;
}
.dashboardLoadPerson>div{
  min-width:0;
}
.dashboardLoadPerson b{
  display:block;
  font-size:11px;
}
.dashboardLoadPerson span{
  display:block;
  margin-top:1px;
  color:var(--muted);
  font-size:8px;
}
.dashboardLoadNumbers{
  text-align:right;
  flex:0 0 auto;
}
.dashboardLoadNumbers b{
  display:block;
  font-size:10px;
}
.dashboardLoadNumbers span{
  display:block;
  margin-top:1px;
  color:var(--muted);
  font-size:8px;
}
.dashboardLoadTrack{
  height:9px;
  border-radius:999px;
  overflow:hidden;
  background:#ECECE8;
  margin-top:8px;
}
.dashboardLoadTrack span{
  display:block;
  height:100%;
  border-radius:999px;
}
.dashboardLoadTrack span.ok{
  background:#4A9E61;
}
.dashboardLoadTrack span.high{
  background:#FFBB00;
}
.dashboardLoadTrack span.over{
  background:#D84235;
}
.dashboardLoadFoot{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  margin-top:5px;
  color:var(--muted);
  font-size:8px;
  font-weight:700;
}
.dashboardTeamLoadList{
  padding:13px;
}
.dashboardLoadRow.compact{
  padding-top:10px;
  padding-bottom:10px;
}
.dashboardSharedSection .card{
  overflow:hidden;
}
@media(max-width:900px){
  .dashboardTodayGrid{
    grid-template-columns:1fr;
  }
  .dashboardMainGrid{
    grid-template-columns:1fr;
  }
}
@media(max-width:760px){
  .dashboardHeadActions{
    width:100%;
    align-items:stretch;
    justify-content:stretch;
  }
  .dashboardScopeControls{
    width:100%;
  }
  .dashboardSection{
    margin-top:16px;
  }
  .dashboardTodaySection{
    margin-top:12px;
  }
  .dashboardCompactItem{
    align-items:flex-start;
  }
  .dashboardItemActions{
    max-width:88px;
  }
  .dashboardLoadTop{
    align-items:flex-start;
  }
  .dashboardLoadFoot{
    display:grid;
    gap:3px;
  }
}


/* v70 · Càrrega recurrent només quan toca */
.dashboardRecurringRule{
  margin-top:5px;
  color:var(--muted);
  font-size:7px;
  font-weight:700;
  font-style:italic;
}


/* v71 · Productivitat i control operatiu */
.search{overflow:visible}
.globalSearchResults{position:absolute;left:0;right:0;top:48px;background:#fff;border:1px solid var(--line);border-radius:14px;box-shadow:0 18px 55px rgba(0,0,0,.16);overflow:hidden;z-index:80;max-height:520px;overflow-y:auto}
.globalSearchResult{appearance:none;width:100%;border:0;border-bottom:1px solid #EFEFEA;background:#fff;padding:10px 12px;display:grid;grid-template-columns:30px minmax(0,1fr) 18px;gap:9px;align-items:center;text-align:left;cursor:pointer;color:var(--text)}
.globalSearchResult:hover{background:#FFFBEA}.globalSearchResult:last-child{border-bottom:0}
.globalSearchIcon{width:28px;height:28px;border-radius:9px;display:grid;place-items:center;background:#F1F1EE;font-weight:900}
.globalSearchResult b{display:block;font-size:11px}.globalSearchResult small{display:block;margin-top:2px;color:var(--muted);font-size:9px}.globalSearchGo{color:var(--muted);font-weight:900}.globalSearchEmpty{padding:18px;text-align:center;color:var(--muted);font-size:10px}




.client360Hero{display:flex;flex-direction:column;gap:14px}.client360Kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:9px}
.client360Kpi{background:#fff;border:1px solid var(--line);border-radius:13px;padding:12px}.client360Kpi span{display:block;font-size:8px;text-transform:uppercase;letter-spacing:.07em;color:var(--muted);font-weight:900}.client360Kpi b{display:block;font-size:19px;margin-top:5px}.client360Kpi small{display:block;font-size:8px;color:var(--muted);margin-top:3px;line-height:1.35}
.client360MiniRow{display:flex;gap:8px;align-items:center;padding:8px 0;border-bottom:1px solid #EFEFEA}.client360MiniRow:last-child{border-bottom:0}.client360MiniRow>div{min-width:0}.client360MiniRow b{display:block;font-size:10px}.client360MiniRow small{display:block;font-size:8px;color:var(--muted);margin-top:2px}
.client360Analytics{display:grid;grid-template-columns:repeat(3,1fr);gap:6px}.client360Analytics div{padding:8px;border-radius:9px;background:#FAFAF7;text-align:center}.client360Analytics b{display:block;font-size:14px}.client360Analytics span{display:block;font-size:7px;color:var(--muted);margin-top:2px}

.recurringControlBox{display:flex;flex-direction:column;gap:8px}.recurringControlActions{display:flex;gap:6px;flex-wrap:wrap}.recurringLockedDrag{cursor:pointer!important}
.calendarEmptyAction{appearance:none;border:1px dashed #D8D8D2;background:transparent;width:100%;border-radius:9px;padding:12px 6px;color:var(--muted);cursor:pointer;font-size:9px}.calendarEmptyAction:hover{background:#FFFBEA;border-color:#E6C957;color:#4C430F}
.calendarDayQuickAdd{margin-left:auto}.calendarActionChooser{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.calendarActionChooser .card{appearance:none;text-align:left;cursor:pointer;display:flex;align-items:center;gap:10px}.calendarActionChooser .card:hover{border-color:#E1C552;background:#FFFDF4}.calendarActionChooser b{display:block;font-size:12px}.calendarActionChooser span:not(.calendarActionIcon){display:block;margin-top:2px;font-size:9px;color:var(--muted)}
.calendarActionIcon{width:34px;height:34px;border-radius:10px;background:#111;color:var(--yellow);display:grid;place-items:center;font-weight:900;flex:0 0 auto}

@media(max-width:1050px){.client360Kpis{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:760px){
 .globalSearchResults{position:fixed;left:14px;right:14px;top:64px}
 .client360Kpis{grid-template-columns:1fr 1fr}
 .calendarActionChooser{grid-template-columns:1fr}
}


/* v72 · Resum per període + xat intern */
.dashboardPeriodTabs{display:flex;gap:6px;flex-wrap:wrap;padding:4px;border-radius:12px;background:#F2F1ED}
.dashboardPeriodTabs .btn{white-space:nowrap}

.chatHeadActions{display:flex;gap:6px;flex-wrap:wrap}
.chatLayout{display:grid;grid-template-columns:minmax(250px,330px) minmax(0,1fr);gap:14px;min-height:640px}
.chatThreads,.chatConversationCard{padding:0;overflow:hidden}
.chatThreadsHead{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:13px 14px;border-bottom:1px solid var(--line);background:#FAFAF7}
.chatThreadsHead b{font-size:12px}.chatThreadsHead span{font-size:8px;color:var(--muted);font-weight:800}
.chatThreadList{display:flex;flex-direction:column;max-height:590px;overflow:auto}
.chatThreadRow{appearance:none;width:100%;border:0;border-bottom:1px solid #EFEFEA;background:#fff;padding:11px 12px;display:grid;grid-template-columns:36px minmax(0,1fr) auto;gap:9px;align-items:center;text-align:left;color:var(--text);cursor:pointer}
.chatThreadRow:hover{background:#FFFDF5}.chatThreadRow.active{background:#FFF6C9}
.chatGroupAvatar,.chatMiniAvatar{width:34px;height:34px;border-radius:11px;display:grid;place-items:center;background:#111;color:var(--yellow);font-size:12px;font-weight:900;flex:0 0 auto}
.chatMiniAvatar{width:26px;height:26px;border-radius:8px;font-size:9px}
.chatThreadMain{min-width:0}.chatThreadMain b{display:block;font-size:11px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.chatThreadMain span{display:block;margin-top:3px;font-size:8px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.chatThreadMeta{display:flex;flex-direction:column;align-items:flex-end;gap:5px}.chatThreadMeta small{font-size:7px;color:var(--muted)}
.chatThreadMeta strong{min-width:19px;height:19px;padding:0 5px;border-radius:999px;display:grid;place-items:center;background:#D84235;color:#fff;font-size:8px}
.chatConversationCard{display:flex;min-width:0}.chatConversation{width:100%;display:grid;grid-template-rows:auto minmax(0,1fr) auto;min-height:640px}
.chatConversationHead{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:12px 14px;border-bottom:1px solid var(--line);background:#FAFAF7}
.chatConversationIdentity{display:flex;align-items:center;gap:9px;min-width:0}.chatConversationIdentity>div{min-width:0}
.chatConversationIdentity b{display:block;font-size:12px}.chatConversationIdentity span{display:block;margin-top:2px;font-size:8px;color:var(--muted)}
.chatMessages{padding:18px;overflow:auto;display:flex;flex-direction:column;gap:8px;background:#F8F8F5}
.chatMessage{display:flex;flex-direction:column;max-width:min(76%,620px)}.chatMessage.mine{align-self:flex-end;align-items:flex-end}.chatMessage.other{align-self:flex-start;align-items:flex-start}
.chatMessageSender{font-size:8px;font-weight:900;color:var(--muted);margin:0 5px 3px}
.chatBubble{padding:9px 11px;border-radius:13px;font-size:11px;line-height:1.45;white-space:pre-wrap;word-break:break-word;box-shadow:0 1px 0 rgba(0,0,0,.03)}
.chatMessage.mine .chatBubble{background:#111;color:#fff;border-bottom-right-radius:4px}.chatMessage.other .chatBubble{background:#fff;border:1px solid var(--line);border-bottom-left-radius:4px}
.chatMessageTime{font-size:7px;color:var(--muted);margin:3px 5px 0}
.chatComposer{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;align-items:end;padding:11px;border-top:1px solid var(--line);background:#fff}
.chatComposer textarea{width:100%;min-height:44px;max-height:140px;resize:vertical;border:1px solid var(--line);border-radius:11px;padding:10px 11px;font:inherit;font-size:11px}
.chatWelcome{margin:auto;max-width:360px;text-align:center;color:var(--muted);padding:30px}.chatWelcomeIcon{width:58px;height:58px;border-radius:17px;display:grid;place-items:center;margin:0 auto 12px;background:#111;color:var(--yellow);font-size:26px}
.chatWelcome h2{color:var(--text);margin:0}.chatWelcome p{font-size:10px;line-height:1.5}.chatEmpty{padding:22px;text-align:center;font-size:9px;color:var(--muted)}
.chatMemberPicker{grid-template-columns:repeat(2,minmax(0,1fr))}

@media(max-width:900px){.chatLayout{grid-template-columns:1fr;min-height:0}.chatThreadList{max-height:270px}.chatConversation{min-height:540px}}
@media(max-width:760px){.dashboardPeriodTabs{width:100%;display:grid;grid-template-columns:1fr}.dashboardPeriodTabs .btn{width:100%}.chatMemberPicker{grid-template-columns:1fr}}


/* v75 · Selector de període dins del bloc principal del Resum */
.dashboardPeriodSectionRow .dashboardPeriodTabs{
  margin-top:8px;
  width:max-content;
}
@media(max-width:760px){
  .dashboardPeriodSectionRow .dashboardPeriodTabs{
    width:100%;
  }
}


/* v77 · Referències de tasques al Xat */
.chatComposerTaskReference{
  grid-column:1/-1;
  display:grid;
  grid-template-columns:auto minmax(0,1fr);
  gap:8px;
  align-items:center;
}
.chatComposerTaskReference label{
  font-size:8px;
  font-weight:900;
  text-transform:uppercase;
  letter-spacing:.06em;
  color:var(--muted);
}
.chatComposerTaskReference select{
  min-width:0;
  width:100%;
  border:1px solid var(--line);
  border-radius:10px;
  background:#FAFAF7;
  padding:8px 9px;
  font-size:9px;
  font-weight:700;
}
.chatTaskReference{
  appearance:none;
  width:100%;
  max-width:420px;
  border:1px solid rgba(0,0,0,.12);
  border-radius:10px;
  margin-top:6px;
  padding:8px 9px;
  display:grid;
  grid-template-columns:28px minmax(0,1fr) 16px;
  gap:8px;
  align-items:center;
  text-align:left;
  background:#FFF6C9;
  color:#191919;
  cursor:pointer;
}
.chatMessage.mine .chatTaskReference{
  background:#FFF6C9;
}
.chatTaskReference.unavailable{
  cursor:default;
  background:#EFEFEC;
  color:#666;
  grid-template-columns:28px minmax(0,1fr);
}
.chatTaskReferenceIcon{
  width:27px;
  height:27px;
  border-radius:8px;
  display:grid;
  place-items:center;
  background:#111;
  color:var(--yellow);
  font-size:10px;
  font-weight:900;
}
.chatTaskReference span:nth-child(2){
  min-width:0;
}
.chatTaskReference b{
  display:block;
  font-size:9px;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}
.chatTaskReference small{
  display:block;
  margin-top:2px;
  font-size:7px;
  color:#716A4E;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}
.chatTaskReferenceGo{
  color:#6D6445;
  font-weight:900;
}
.chatMessageJump .chatBubble{
  outline:3px solid var(--yellow);
  outline-offset:3px;
  box-shadow:0 0 0 7px rgba(255,187,0,.14);
}
.taskChatNotice{
  margin-bottom:14px;
  padding:12px;
  border:1px solid #E6C957;
  border-radius:13px;
  background:#FFF9DD;
}
.taskChatNoticeHead{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  margin-bottom:8px;
}
.taskChatNoticeHead>div{
  min-width:0;
}
.taskChatNoticeEyebrow{
  display:block;
  margin-bottom:2px;
  font-size:7px;
  font-weight:900;
  text-transform:uppercase;
  letter-spacing:.07em;
  color:#806A00;
}
.taskChatNoticeHead b{
  display:block;
  font-size:11px;
}
.taskChatNoticeCount{
  min-width:27px;
  height:27px;
  border-radius:999px;
  display:grid;
  place-items:center;
  background:#111;
  color:var(--yellow);
  font-size:9px;
  font-weight:900;
}
.taskChatNoticeList{
  display:flex;
  flex-direction:column;
  gap:6px;
}
.taskChatNoticeRow{
  appearance:none;
  width:100%;
  border:1px solid rgba(0,0,0,.08);
  border-radius:10px;
  background:#fff;
  padding:9px 10px;
  display:grid;
  grid-template-columns:minmax(0,1fr) 18px;
  gap:8px;
  align-items:center;
  text-align:left;
  color:var(--text);
  cursor:pointer;
}
.taskChatNoticeRow:hover{
  background:#FFFDF5;
  border-color:#D9BC4D;
}
.taskChatNoticeMessage{
  min-width:0;
}
.taskChatNoticeMessage b{
  display:block;
  font-size:9px;
}
.taskChatNoticeMessage span{
  display:block;
  margin-top:2px;
  font-size:9px;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}
.taskChatNoticeMessage small{
  display:block;
  margin-top:3px;
  color:var(--muted);
  font-size:7px;
}
.taskChatNoticeArrow{
  font-weight:900;
  color:#776A33;
}
@media(max-width:760px){
  .chatComposerTaskReference{
    grid-template-columns:1fr;
  }
}


/* v78 · Xat Realtime i indicadors de no llegits */
.nav button[data-view="chat"]{
  position:relative;
}
.chatNavUnread{
  margin-left:auto;
  min-width:18px;
  height:18px;
  padding:0 5px;
  border-radius:999px;
  display:grid;
  place-items:center;
  background:#D84235;
  color:#fff;
  font-size:8px;
  font-weight:900;
  box-shadow:0 0 0 2px #0D0D0D;
}
.nav button[data-view="chat"].active .chatNavUnread{
  box-shadow:0 0 0 2px var(--yellow);
}
.chatThreadUnread{
  min-width:21px!important;
  height:21px!important;
  padding:0 6px!important;
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  gap:4px!important;
}
.chatThreadUnread i{
  width:5px;
  height:5px;
  border-radius:50%;
  background:#fff;
  display:block;
}
.chatRealtimeStatus{
  display:inline-flex;
  align-items:center;
  gap:6px;
  font-size:8px;
  font-weight:900;
  color:#26733B;
  text-transform:uppercase;
  letter-spacing:.05em;
  white-space:nowrap;
}
.chatRealtimeStatus i{
  width:7px;
  height:7px;
  border-radius:50%;
  background:#35A854;
  box-shadow:0 0 0 3px rgba(53,168,84,.12);
}


/* v79 · Composer de Xat persistent i focus continu */
.chatComposer textarea:focus{
  outline:2px solid rgba(255,187,0,.42);
  border-color:#D5B23E;
}


/* v80 · Xat contingut, cerca i neteja */
@media(min-width:901px){
  .chatLayout{
    height:min(720px,calc(100vh - 210px));
    min-height:520px;
    max-height:720px;
  }
  .chatThreads,
  .chatConversationCard{
    height:100%;
    min-height:0;
  }
  .chatThreads{
    display:flex;
    flex-direction:column;
  }
  .chatThreadList{
    flex:1;
    min-height:0;
    max-height:none;
    overflow-y:auto;
    scrollbar-gutter:stable;
  }
  .chatConversation{
    height:100%;
    min-height:0;
  }
}
.chatMessages{
  min-height:0;
  overflow-y:auto;
  scrollbar-gutter:stable;
  overscroll-behavior:contain;
}
.chatConversationTools{
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:6px;
  flex-wrap:wrap;
}
.chatCleanButton{
  color:#A63831!important;
}
.chatSearchPanel{
  flex:0 0 auto;
  padding:10px 12px;
  display:grid;
  grid-template-columns:auto minmax(180px,1fr) auto;
  gap:8px;
  align-items:center;
  border-bottom:1px solid var(--line);
  background:#FFFDF5;
}
.chatSearchModes{
  display:flex;
  gap:5px;
}
.chatSearchPanel>input{
  width:100%;
  min-width:0;
  border:1px solid var(--line);
  border-radius:10px;
  background:#fff;
  padding:8px 10px;
  font:inherit;
  font-size:10px;
}
.chatSearchTaskHint{
  font-size:9px;
  color:var(--muted);
}
.chatSearchMeta{
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:8px;
  color:var(--muted);
  font-size:8px;
  font-weight:800;
  white-space:nowrap;
}
.chatCleanWarning{
  display:grid;
  grid-template-columns:38px minmax(0,1fr);
  gap:11px;
  align-items:start;
  padding:12px;
  border-radius:12px;
  background:#FFF4E8;
  border:1px solid #F0C79B;
}
.chatCleanWarning p{
  margin:5px 0 7px;
  font-size:10px;
  line-height:1.45;
}
.chatCleanIcon{
  width:36px;
  height:36px;
  border-radius:10px;
  display:grid;
  place-items:center;
  background:#C33C31;
  color:#fff;
  font-weight:900;
}
.chatCleanChoices{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:9px;
  margin-top:10px;
}
.chatCleanChoice{
  appearance:none;
  border:1px solid var(--line);
  border-radius:12px;
  background:#fff;
  padding:12px;
  text-align:left;
  cursor:pointer;
  color:var(--text);
}
.chatCleanChoice:hover{
  background:#FAFAF7;
}
.chatCleanChoice.danger{
  border-color:#E6AAA4;
}
.chatCleanChoice.keep{
  border-color:#DFC95D;
  background:#FFFDF2;
}
.chatCleanChoice b{
  display:block;
  font-size:11px;
}
.chatCleanChoice span{
  display:block;
  margin-top:4px;
  font-size:8px;
  color:var(--muted);
  line-height:1.4;
}
@media(max-width:900px){
  .chatConversation{
    max-height:640px;
    min-height:520px;
  }
  .chatSearchPanel{
    grid-template-columns:1fr;
  }
  .chatSearchMeta{
    justify-content:space-between;
  }
}
@media(max-width:760px){
  .chatConversationTools{
    justify-content:flex-start;
  }
  .chatCleanChoices{
    grid-template-columns:1fr;
  }
}


/* v81 · Google Sheets → Prospectes */
.prospectGoogleSyncBar{
  margin:0 0 14px;
  padding:11px 12px;
  border:1px solid #D8D8D2;
  border-radius:13px;
  background:#fff;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
}
.prospectGoogleSyncIdentity{
  display:flex;
  align-items:center;
  gap:9px;
  min-width:0;
}
.prospectGoogleSyncIdentity>div{
  min-width:0;
}
.prospectGoogleSyncIdentity b{
  display:block;
  font-size:10px;
}
.prospectGoogleSyncIdentity span{
  display:block;
  margin-top:2px;
  font-size:8px;
  color:var(--muted);
}
.prospectGoogleSheetsIcon{
  width:31px;
  height:31px;
  flex:0 0 31px;
  border-radius:9px;
  display:grid!important;
  place-items:center;
  background:#1F8E4D;
  color:#fff!important;
  font-size:12px!important;
  font-weight:900;
}
.prospectGoogleSyncMeta{
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:10px;
}
.prospectGoogleAuto{
  display:flex;
  align-items:center;
  gap:5px;
  font-size:7px;
  font-weight:800;
  color:#39714B;
  white-space:nowrap;
}
.prospectGoogleAuto i{
  width:6px;
  height:6px;
  border-radius:50%;
  background:#35A854;
  display:block;
}
.prospectGoogleSourceCard{
  margin-top:12px;
  background:#FBFFFC;
  border-color:#CFE6D6;
}
.prospectGoogleGrid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:7px;
}
.prospectGoogleField{
  min-width:0;
  padding:8px 9px;
  border-radius:9px;
  background:#fff;
  border:1px solid #E3E9E5;
}
.prospectGoogleField span{
  display:block;
  font-size:7px;
  color:var(--muted);
  font-weight:800;
  text-transform:uppercase;
  letter-spacing:.04em;
}
.prospectGoogleField b{
  display:block;
  margin-top:3px;
  font-size:9px;
  line-height:1.35;
  overflow-wrap:anywhere;
}
@media(max-width:760px){
  .prospectGoogleSyncBar{
    align-items:flex-start;
    flex-direction:column;
  }
  .prospectGoogleSyncMeta{
    width:100%;
    justify-content:space-between;
    flex-wrap:wrap;
  }
  .prospectGoogleGrid{
    grid-template-columns:1fr;
  }
}


/* v82 · Continguts Instagram + Facebook */
.socialConnectionBar{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  margin-bottom:12px;
  padding:10px 12px;
  border:1px solid var(--line);
  border-radius:13px;
  background:#fff;
}
.socialConnectionBar>div{
  display:flex;
  gap:6px;
  flex-wrap:wrap;
}
.socialConnectionBar>small{
  color:var(--muted);
  font-size:8px;
  text-align:right;
}
.socialConnection{
  display:inline-flex;
  align-items:center;
  gap:5px;
  padding:6px 8px;
  border-radius:999px;
  background:#F2F2EF;
  font-size:8px;
  font-weight:800;
}
.socialConnection i{
  width:6px;height:6px;border-radius:50%;background:#999;
}
.socialConnection.connected i{background:#2E9B54}
.socialConnection.disconnected{color:#777}
.socialFilters{
  display:flex;
  gap:8px;
  align-items:center;
  flex-wrap:wrap;
}
.socialMonthHead{
  justify-content:flex-start;
  gap:10px;
  margin:18px 0 10px;
}
.socialMonthHead h2{
  min-width:180px;
  text-align:center;
}
.socialCalendar{
  background:#fff;
  border:1px solid var(--line);
  border-radius:16px;
  overflow:hidden;
}
.socialCalendarWeek,
.socialCalendarGrid{
  display:grid;
  grid-template-columns:repeat(7,minmax(0,1fr));
}
.socialCalendarWeek{
  border-bottom:1px solid var(--line);
  background:#FAFAF7;
}
.socialCalendarWeek span{
  padding:8px;
  text-align:center;
  font-size:8px;
  font-weight:900;
  color:var(--muted);
}
.socialCalendarDay{
  min-height:122px;
  padding:7px;
  border-right:1px solid var(--line);
  border-bottom:1px solid var(--line);
  cursor:pointer;
  background:#fff;
}
.socialCalendarDay:nth-child(7n){border-right:0}
.socialCalendarDay.outside{background:#FAFAF8;color:#aaa}
.socialCalendarDay.today{box-shadow:inset 0 0 0 2px var(--yellow)}
.socialCalendarDayHead{
  display:flex;
  align-items:center;
  justify-content:space-between;
}
.socialCalendarDayHead b{font-size:9px}
.socialCalendarDayHead span{
  min-width:18px;height:18px;border-radius:999px;
  display:grid;place-items:center;
  font-size:7px;font-weight:900;background:#F0EFEA;
}
.socialCalendarItems{
  display:flex;flex-direction:column;gap:4px;margin-top:6px;
}
.socialCalendarItems>button{
  appearance:none;border:0;border-radius:7px;background:#F7F6F1;
  padding:5px;text-align:left;cursor:pointer;min-width:0;
}
.socialCalendarItems>button span:last-child{
  display:block;margin-top:3px;font-size:7px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
}
.socialCalendarItems>small{font-size:7px;color:var(--muted)}
.socialPlatformPill{
  display:inline-flex;
  align-items:center;
  margin-right:3px;
  padding:2px 4px;
  border-radius:5px;
  font-size:6px;
  font-weight:900;
  background:#EEE;
}
.socialPlatformPill.instagram{background:#F3EAF8}
.socialPlatformPill.facebook{background:#E9F0FF}
.socialPlatformPill.published{outline:1px solid #78B58B}
.socialPlatformPill.error{outline:1px solid #D98279}
.socialList{display:flex;flex-direction:column;gap:8px}
.socialPostCard{
  appearance:none;width:100%;
  border:1px solid var(--line);border-radius:13px;background:#fff;
  padding:8px;display:grid;grid-template-columns:72px minmax(0,1fr);gap:10px;
  text-align:left;color:var(--text);cursor:pointer;
}
.socialPostCard:hover{border-color:#D2B246}
.socialPostCard>img,.socialPostNoMedia{
  width:72px;height:72px;border-radius:9px;object-fit:cover;
}
.socialPostNoMedia{
  display:grid;place-items:center;background:#F1F0EB;font-weight:900;color:#777;
}
.socialPostCardBody{min-width:0;display:flex;flex-direction:column;gap:5px;justify-content:center}
.socialPostTopline{display:flex;align-items:center;justify-content:space-between;gap:8px}
.socialPostCardBody>b{font-size:10px;line-height:1.35}
.socialPostCardBody>small{font-size:7px;color:var(--muted)}
.socialFormConnections{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:8px}
.socialTargetChooser{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.socialTargetOption{
  display:flex;gap:8px;align-items:center;padding:9px;
  border:1px solid var(--line);border-radius:10px;background:#FAFAF7;cursor:pointer;
}
.socialTargetOption input{width:16px;height:16px}
.socialTargetOption b{display:block;font-size:9px}
.socialTargetOption small{display:block;margin-top:2px;font-size:7px;color:var(--muted)}
.socialTargetOption.disabled{opacity:.48;cursor:not-allowed;background:#f3f2ef}
.socialTargetOption.disabled input{cursor:not-allowed}
.socialTargetOption .targetBadge{display:inline-flex;margin-left:5px;padding:2px 5px;border-radius:999px;background:#111;color:#fff;font-size:6px;font-weight:900;letter-spacing:.05em;text-transform:uppercase;vertical-align:middle}
.socialTargetOption.youtube .targetBadge{background:#d92727}
.socialTargetOption.tiktok .targetBadge{background:#222}
.socialPlatformOptions{display:none}
.socialPlatformOptions.active{display:block}
.socialCrossPlatformNote{margin-top:8px;padding:9px 10px;border:1px solid #d9d6ce;border-radius:10px;background:#fff;font-size:8px;line-height:1.45;color:var(--muted)}
.socialMediaPreview{
  margin-top:7px;width:100%;height:190px;border:1px dashed #CBCAC4;border-radius:11px;
  display:grid;place-items:center;overflow:hidden;background:#FAFAF7;color:#999;font-size:9px;
}

.socialMediaPreview img{width:100%;height:100%;object-fit:contain;background:#111}
.socialMediaGrid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin-top:8px}
.socialMediaTile{position:relative;aspect-ratio:1/1;border:1px solid var(--line);border-radius:11px;overflow:hidden;background:#111;display:grid;place-items:center}
.socialMediaTile img,.socialMediaTile video{width:100%;height:100%;object-fit:cover;background:#111}
.socialMediaTile .kind{position:absolute;left:6px;bottom:6px;padding:3px 6px;border-radius:999px;background:rgba(0,0,0,.72);color:#fff;font-size:8px;font-weight:900;text-transform:uppercase}
.socialMediaTile .order{position:absolute;right:6px;top:6px;width:22px;height:22px;border-radius:50%;display:grid;place-items:center;background:var(--yellow);color:#111;font-size:9px;font-weight:900}
.socialRichOptions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.socialRichBox{border:1px solid var(--line);background:#fafaf8;border-radius:12px;padding:11px}
.socialRichBox .title{font-size:10px;font-weight:900;text-transform:uppercase;letter-spacing:.07em;margin-bottom:7px}
.socialEmojiBar{display:flex;gap:5px;flex-wrap:wrap;margin:7px 0 0}
.socialEmojiBar button{border:1px solid var(--line);background:#fff;border-radius:8px;min-width:34px;height:32px;cursor:pointer;font-size:17px}
.socialEmojiBar button:hover{border-color:#d6b83f;background:#fffaf0}
.socialInlineChecks{display:flex;gap:12px;align-items:center;flex-wrap:wrap}
.socialInlineChecks label{display:flex;align-items:center;gap:6px;font-size:10px;font-weight:700}
.socialApiNote{padding:10px 12px;border-radius:11px;border:1px solid #E6D68E;background:#FFF9DD;font-size:10px;line-height:1.55;color:#67551c}
.socialPostCard>video{width:80px;height:80px;object-fit:cover;background:#111}
.socialDetailMediaGrid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
.socialDetailMediaGrid img,.socialDetailMediaGrid video{width:100%;aspect-ratio:1/1;object-fit:cover;background:#111;border-radius:10px}
@media(max-width:760px){
  .socialMediaGrid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .socialRichOptions{grid-template-columns:1fr}
  .socialDetailMediaGrid{grid-template-columns:repeat(2,minmax(0,1fr))}
}

.socialDetailHero{
  display:grid;grid-template-columns:minmax(180px,42%) minmax(0,1fr);gap:16px;
}
.socialDetailHero>img,.socialDetailNoMedia{
  width:100%;aspect-ratio:1/1;border-radius:14px;object-fit:cover;background:#111;
}
.socialDetailNoMedia{display:grid;place-items:center;color:#888;font-size:38px;font-weight:900;background:#EEE}
.socialDetailHero h3{margin:9px 0 7px;font-size:18px}
.socialDetailHero p{white-space:pre-wrap;line-height:1.5;font-size:10px}
.socialTargetDetail{
  border:1px solid var(--line);border-radius:11px;padding:10px;background:#fff;
}
.socialTargetDetail>div{display:flex;align-items:center;justify-content:space-between;gap:8px}
.socialTargetDetail b{font-size:10px}
.socialTargetDetail small{display:block;margin-top:5px;font-size:7px;color:var(--muted);overflow-wrap:anywhere}
.socialTargetDetail p{margin:6px 0 0;font-size:8px;color:var(--red);line-height:1.4}
@media(max-width:900px){
  .socialCalendar{overflow-x:auto}
  .socialCalendarWeek,.socialCalendarGrid{min-width:760px}
}
@media(max-width:760px){
  .socialConnectionBar{align-items:flex-start;flex-direction:column}
  .socialConnectionBar>small{text-align:left}
  .socialTargetChooser{grid-template-columns:1fr}
  .socialDetailHero{grid-template-columns:1fr}
}


/* ===== Ausa IA · v93 ===== */
.aiShell{display:block;max-width:1180px}
.aiMainCard{padding:0;overflow:hidden}
.aiHeader{padding:18px 20px;background:#111;color:#fff;display:flex;justify-content:space-between;gap:16px;align-items:center}
.aiHeader h2{margin:3px 0 0;color:#fff}
.aiStatus{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.aiWriteToggle{display:flex;align-items:center;gap:8px;background:#fff;border:1px solid var(--line);border-radius:11px;padding:9px 11px;font-size:11px;font-weight:800;cursor:pointer;white-space:nowrap}
.aiWriteToggle input{width:18px;height:18px;accent-color:#FFBB00}
.aiWriteToggle.on{background:#FFF4C9;border-color:#E2C555}
.aiMessages{min-height:460px;max-height:62vh;overflow:auto;padding:18px;background:#FAFAF7;display:flex;flex-direction:column;align-items:stretch}
.aiMessage{position:static;right:auto;bottom:auto;width:auto;height:auto;z-index:auto;display:block;overflow:visible;box-shadow:none;max-width:88%;border-radius:14px;padding:12px 14px;margin-bottom:10px;font-size:13px;line-height:1.58}
.aiMessage.user{align-self:flex-end;margin-left:auto;background:#FFF0B8}
.aiMessage.aiAssistant{align-self:flex-start;margin-right:auto;background:#fff;border:1px solid var(--line)}
.aiMessage .aiHeadline{font-family:Scale,Montserrat,sans-serif;font-size:16px;font-weight:900;margin-bottom:7px}
.aiComposer{padding:14px;border-top:1px solid var(--line);background:#fff}
.aiComposer textarea{width:100%;min-height:86px;max-height:190px;border:1px solid var(--line);border-radius:12px;padding:12px;resize:vertical;font:inherit}
.aiComposerActions{display:flex;justify-content:flex-end;gap:10px;align-items:center;margin-top:10px;flex-wrap:wrap}.aiComposerRight{display:flex;gap:9px;align-items:center;flex-wrap:wrap}
.aiQuick{display:flex;gap:7px;flex-wrap:wrap;margin-bottom:12px}
.aiQuick button{border:1px solid var(--line);background:#fff;border-radius:999px;padding:7px 10px;font-size:11px;font-weight:800;cursor:pointer}
.aiQuick button:hover{border-color:#d8bd48;background:#fffaf0}
.aiPlan{margin-top:12px;border-top:1px solid var(--line);padding-top:12px}
.aiPlanItem{display:grid;grid-template-columns:32px 1fr;gap:9px;padding:10px 0;border-bottom:1px solid #eee}
.aiPlanItem:last-child{border-bottom:0}
.aiPlanIcon{width:28px;height:28px;border-radius:9px;background:#FFF0B8;display:grid;place-items:center;font-weight:900}
.aiPlanMeta{font-size:11px;color:var(--muted);margin-top:3px}
.aiWarning{background:#FFF3F1;border:1px solid #F0B9B2;border-radius:10px;padding:9px 10px;font-size:11px;margin-top:8px}
.aiMeta{display:flex;gap:6px;flex-wrap:wrap;margin-top:9px}.aiMeta span{font-size:10px;font-weight:800;border:1px solid #e3e3df;background:#fafaf7;border-radius:999px;padding:4px 7px;color:#666}





.aiServicePreview{white-space:pre-wrap;font-size:12px;line-height:1.55;color:#555}
@media(max-width:980px){.aiMessages{max-height:none;min-height:380px}.aiComposerActions{justify-content:stretch}.aiComposerRight{width:100%}.aiComposerRight .btn{flex:1}.aiWriteToggle{flex:1;justify-content:center}}


/* ===== PORTAL AUSA · v111 · PWA ===== */
@media (display-mode: standalone){
  body{overscroll-behavior-y:none}
  .topbar{padding-top:max(8px,env(safe-area-inset-top))}
}


/* ============================================================
   PORTAL AUSA · v109 · MOBILE APP UX
   ============================================================ */
.mobileSearchToggle,
.mobileInstallBtn{display:none}

@media(max-width:760px){
  html{
    -webkit-text-size-adjust:100%;
    text-size-adjust:100%;
    background:#F6F6F3;
  }
  body{
    min-height:100dvh;
    overscroll-behavior-y:none;
    -webkit-tap-highlight-color:transparent;
    background:#F6F6F3;
  }
  button,a,input,select,textarea,label{
    -webkit-tap-highlight-color:transparent;
  }
  button,.btn,[role="button"]{touch-action:manipulation}

  /* ===== Header d'app: una sola fila; la cerca només s'obre quan cal ===== */
  .topbar{
    min-height:58px!important;
    grid-template-columns:1fr!important;
    padding:
      max(7px,env(safe-area-inset-top))
      max(10px,env(safe-area-inset-right))
      7px
      max(10px,env(safe-area-inset-left))!important;
    border-bottom-color:#E6E4DC;
  }
  .topActions{
    grid-column:1!important;
    grid-row:1!important;
    min-height:44px;
    display:flex!important;
    align-items:center;
    gap:8px!important;
  }
  .accessSwitcher{
    min-height:44px!important;
    max-width:none!important;
    flex:1;
    padding:6px 9px!important;
    overflow:hidden;
    background:#fff;
  }
  .accessSwitcher .cloudUser{
    display:block!important;
    flex:1;
    min-width:0;
    max-width:none!important;
    font-size:12px!important;
    overflow:hidden;
    white-space:nowrap;
    text-overflow:ellipsis;
  }
  .accessSwitcher .roleBadge{display:none!important}
  .cloudLogout{
    min-width:36px;
    min-height:36px;
    border-radius:10px;
  }
  .avatar{
    width:42px!important;
    height:42px!important;
    min-width:42px!important;
  }
  .mobileSearchToggle{
    display:inline-grid;
    place-items:center;
    width:42px;
    height:42px;
    min-width:42px;
    border:1px solid var(--line);
    border-radius:12px;
    background:#fff;
    color:#111;
    font-size:23px;
    font-weight:900;
    cursor:pointer;
  }
  .mobileSearchToggle.active{
    background:#111;
    color:var(--yellow);
    border-color:#111;
  }
  .topbar .search{
    display:none!important;
    grid-column:1!important;
    grid-row:2!important;
    width:100%!important;
    margin:0!important;
  }
  .topbar .search.mobileOpen{display:block!important}
  .topbar .search input{
    min-height:46px!important;
    border-radius:13px;
    font-size:16px!important;
  }
  .globalSearchResults{
    position:fixed!important;
    left:10px!important;
    right:10px!important;
    top:calc(64px + env(safe-area-inset-top))!important;
    max-height:min(62dvh,520px)!important;
    border-radius:16px!important;
    z-index:96!important;
  }

  /* ===== Contingut: amplada real de mòbil ===== */
  .content{
    padding:
      14px
      max(10px,env(safe-area-inset-right))
      calc(104px + env(safe-area-inset-bottom))
      max(10px,env(safe-area-inset-left))!important;
  }
  .pageHead{margin-bottom:15px!important}
  .pageHead h1,.heroTitle{
    font-size:26px!important;
    line-height:1.06!important;
    letter-spacing:-.035em!important;
  }
  .pageHead p{
    font-size:12px!important;
    line-height:1.45!important;
  }
  .sectionTitle{
    margin:20px 0 10px!important;
    font-size:18px!important;
  }
  .card{
    border-radius:15px!important;
    padding:13px!important;
  }

  /* Segments / pestanyes: una línia amb scroll tàctil en lloc d'amuntegar-se. */
  .drawerTabs,
  .dashboardPeriodTabs,
  .dashboardScopeTabs,
  .workLayoutTabs,
  .calendarMobileViewTabs,
  .ytContentFilter{
    scrollbar-width:none;
    -ms-overflow-style:none;
  }
  .drawerTabs::-webkit-scrollbar,
  .dashboardPeriodTabs::-webkit-scrollbar,
  .dashboardScopeTabs::-webkit-scrollbar,
  .workLayoutTabs::-webkit-scrollbar,
  .calendarMobileViewTabs::-webkit-scrollbar,
  .ytContentFilter::-webkit-scrollbar{display:none}
  .dashboardPeriodTabs,
  .dashboardScopeTabs,
  .ytContentFilter{
    display:flex!important;
    flex-wrap:nowrap!important;
    overflow-x:auto!important;
    overscroll-behavior-x:contain;
    padding-bottom:2px;
  }
  .dashboardPeriodTabs .btn,
  .dashboardScopeTabs .btn,
  .ytContentFilter button{
    flex:0 0 auto!important;
    white-space:nowrap;
  }

  /* ===== Menú "Més": bottom sheet en lloc de panell lateral ===== */
  .sidebar{
    inset:auto 0 0 0!important;
    width:100%!important;
    height:min(78dvh,720px)!important;
    max-height:calc(100dvh - 44px)!important;
    transform:translateY(105%)!important;
    transition:transform .24s cubic-bezier(.2,.8,.2,1)!important;
    border:1px solid #292929!important;
    border-bottom:0!important;
    border-radius:24px 24px 0 0!important;
    box-shadow:0 -24px 70px rgba(0,0,0,.32)!important;
    padding:
      12px
      max(9px,env(safe-area-inset-right))
      calc(12px + env(safe-area-inset-bottom))
      max(9px,env(safe-area-inset-left))!important;
    z-index:91!important;
  }
  .sidebar::before{
    content:'';
    display:block;
    width:44px;
    height:5px;
    border-radius:999px;
    background:#555;
    margin:0 auto 9px;
  }
  .sidebar.open{transform:translateY(0)!important}
  .sidebar.open + .mobileNavBackdrop{
    display:block!important;
    position:fixed!important;
    inset:0!important;
    background:rgba(0,0,0,.48)!important;
    backdrop-filter:blur(2px);
    z-index:90!important;
  }
  body.mobileMenuOpen{overflow:hidden!important}
  .logoWrap{display:none!important}
  .workspace{
    padding:3px 8px 11px!important;
    font-size:12px!important;
    color:#fff!important;
    text-transform:none!important;
    letter-spacing:0!important;
  }
  .workspace::before{
    content:'Més opcions';
    font-family:Scale,Montserrat,Arial,sans-serif;
    display:block;
    font-size:22px;
    font-weight:900;
    margin-bottom:2px;
  }
  .workspace{font-size:0!important}
  .workspace::after{
    content:'Portal Ausa';
    display:block;
    color:#8f8f8f;
    font-size:10px;
    font-weight:800;
    text-transform:uppercase;
    letter-spacing:.08em;
  }
  .nav{
    display:grid!important;
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
    gap:7px!important;
    align-content:start;
    padding:0 2px 10px!important;
    overflow-y:auto!important;
  }
  .nav button{
    min-height:58px!important;
    border:1px solid #292929!important;
    border-radius:14px!important;
    background:#171717!important;
    padding:10px!important;
    font-size:11px!important;
    line-height:1.2;
    align-items:center!important;
  }
  .nav button:hover{background:#1d1d1d!important}
  .nav button.active{
    background:var(--yellow)!important;
    border-color:var(--yellow)!important;
    color:#111!important;
  }
  .nav button.aiNavButton{
    grid-column:1/-1;
    min-height:52px!important;
    margin:0!important;
    background:linear-gradient(135deg,#6F5CE7,#8C79F2)!important;
    border:0!important;
    color:#fff!important;
  }
  .nav .ico{
    width:28px!important;
    font-size:20px!important;
  }
  .sideBottom{
    margin-top:auto!important;
    padding:10px 2px 0!important;
    border-top:1px solid #282828!important;
  }
  .sideBottom .mini{padding:8px 4px 0;font-size:9px!important}
  .mobileInstallBtn{
    display:none;
    appearance:none;
    width:100%;
    min-height:48px;
    border:1px solid #3b3b3b;
    border-radius:13px;
    background:#202020;
    color:#fff;
    padding:9px 11px;
    align-items:center;
    justify-content:center;
    gap:8px;
    font:800 11px Montserrat,Arial,sans-serif;
    cursor:pointer;
  }
  .mobileInstallBtn.visible{display:flex}
  .mobileInstallBtn span{color:var(--yellow);font-size:18px}

  /* ===== Barra inferior: controls d'app nativa ===== */
  .mobileBottomNav{
    min-height:70px!important;
    padding:
      5px
      max(5px,env(safe-area-inset-right))
      calc(5px + env(safe-area-inset-bottom))
      max(5px,env(safe-area-inset-left))!important;
    z-index:80!important;
    border-top-color:#DDDAD1!important;
  }
  .mobileBottomNav button{
    min-height:55px!important;
    border-radius:12px!important;
    font-size:9px!important;
  }
  .mobileBottomNav button .mobileNavIcon{font-size:21px!important}
  .mobileQuickAdd{
    right:max(12px,env(safe-area-inset-right))!important;
    bottom:calc(79px + env(safe-area-inset-bottom))!important;
    width:54px!important;
    height:54px!important;
    z-index:81!important;
  }

  /* ===== Quick add com action sheet ===== */
  .mobileActionSheetBack{
    position:fixed;
    inset:0;
    z-index:110;
    background:rgba(0,0,0,.48);
    display:flex;
    align-items:flex-end;
  }
  .mobileActionSheet{
    width:100%;
    max-height:min(76dvh,680px);
    overflow:auto;
    background:#F6F6F3;
    border-radius:24px 24px 0 0;
    padding:
      10px
      max(10px,env(safe-area-inset-right))
      calc(14px + env(safe-area-inset-bottom))
      max(10px,env(safe-area-inset-left));
    box-shadow:0 -20px 60px rgba(0,0,0,.28);
  }
  .mobileActionSheet::before{
    content:'';
    display:block;
    width:42px;
    height:5px;
    border-radius:999px;
    background:#C9C6BE;
    margin:0 auto 12px;
  }
  .mobileActionSheetHead{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:10px;
    margin-bottom:10px;
    padding:0 3px;
  }
  .mobileActionSheetHead h3{
    font-family:Scale,Montserrat,Arial,sans-serif;
    font-size:21px;
    margin:0;
  }
  .mobileActionSheetClose{
    width:40px;
    height:40px;
    border:1px solid var(--line);
    border-radius:50%;
    background:#fff;
    font-size:17px;
  }
  .mobileActionList{display:grid;gap:8px}
  .mobileActionItem{
    appearance:none;
    width:100%;
    min-height:64px;
    border:1px solid var(--line);
    border-radius:15px;
    background:#fff;
    padding:10px 12px;
    display:grid;
    grid-template-columns:42px minmax(0,1fr) 20px;
    gap:10px;
    align-items:center;
    text-align:left;
    color:#111;
  }
  .mobileActionIcon{
    width:42px;height:42px;border-radius:12px;
    display:grid;place-items:center;
    background:#111;color:var(--yellow);
    font-size:20px;font-weight:900;
  }
  .mobileActionItem b{display:block;font-size:13px}
  .mobileActionItem small{display:block;margin-top:3px;font-size:10px;color:var(--muted);line-height:1.35}
  .mobileActionArrow{font-size:18px;color:#999}

  /* ===== Formularis / modals: pensats per teclat mòbil ===== */
  .modalBack{z-index:115!important}
  .modal{
    height:100dvh!important;
    min-height:100dvh!important;
    max-height:100dvh!important;
  }
  .modalHead{
    position:sticky!important;
    top:0;
    z-index:3;
    background:#fff;
    padding-top:max(14px,env(safe-area-inset-top))!important;
  }
  .modalBody{
    padding-bottom:116px!important;
    -webkit-overflow-scrolling:touch;
  }
  .modalFoot{
    position:sticky!important;
    bottom:0;
    z-index:4;
    padding-bottom:calc(10px + env(safe-area-inset-bottom))!important;
    background:rgba(255,255,255,.97)!important;
    backdrop-filter:blur(12px);
    box-shadow:0 -7px 22px rgba(0,0,0,.06);
  }
  .modalFoot .btn{
    min-height:46px!important;
    font-size:13px!important;
  }
  input,select,textarea{border-radius:11px}
  input[type="checkbox"],input[type="radio"]{
    min-width:20px;
    width:20px;
    height:20px;
  }

  /* ===== Fitxes client ===== */
  .drawer,.drawer.wide{
    height:100dvh!important;
    min-height:100dvh!important;
  }
  .drawerHead{
    position:sticky!important;
    top:0;
    z-index:4;
    background:#fff;
  }
  .drawerTabs{
    position:sticky;
    top:0;
    z-index:3;
    background:#fff;
    margin-left:-12px!important;
    margin-right:-12px!important;
    padding:8px 12px!important;
    border-bottom:1px solid var(--line);
  }

  /* ===== Continguts ===== */
  #view-content .socialConnectionBar{
    padding:11px!important;
    gap:8px!important;
  }
  #view-content .socialConnectionBar>div{
    display:flex;
    gap:5px;
    flex-wrap:wrap;
  }
  #view-content .socialConnection{font-size:8px!important}
  #view-content .socialFilters{
    grid-template-columns:1fr 1fr!important;
  }
  #view-content .socialFilters>select{min-width:0}
  #view-content .socialFilters .workLayoutTabs{display:none!important}
  #view-content .socialList{gap:9px}
  #view-content .socialPostCard{
    grid-template-columns:70px minmax(0,1fr)!important;
    min-height:82px;
    padding:7px!important;
    border-radius:14px!important;
  }
  #view-content .socialPostCard>img,
  #view-content .socialPostCard>video,
  #view-content .socialPostNoMedia{
    width:70px!important;
    height:70px!important;
    border-radius:10px!important;
  }
  #view-content .socialPostCardBody>b{font-size:11px!important}
  #view-content .socialPostCardBody>small{font-size:8px!important;line-height:1.4}
  .socialTargetOption{
    min-height:58px;
    padding:10px!important;
  }
  .socialTargetOption b{font-size:10px!important}
  .socialTargetOption small{font-size:8px!important;line-height:1.35}
  .socialRichBox{padding:10px!important}

  /* ===== Analítica ===== */
  .analyticsToolbar{
    display:grid!important;
    grid-template-columns:1fr!important;
    gap:8px!important;
  }
  .analyticsToolbar .analyticsHeaderActions{
    width:100%;
    display:grid!important;
    grid-template-columns:1fr!important;
  }
  .analyticsToolbar .analyticsHeaderActions .btn{width:100%}
  .igSummary,.ytKpiGrid{gap:9px!important}
  .igMetricCard,.ytKpiCard{
    min-height:0!important;
    padding:14px!important;
  }
  .ytKpiValue{font-size:30px!important}
  .ytRankRow{
    grid-template-columns:24px 50px minmax(0,1fr)!important;
    gap:8px!important;
    position:relative;
    padding-right:4px!important;
  }
  .ytRankMetric{
    grid-column:3;
    text-align:left!important;
    font-size:12px!important;
  }
  .ytRankThumb{width:50px!important;height:29px!important}
  .analyticsTimeChart{height:230px!important}
  .gaChartTooltip{max-width:calc(100vw - 36px)!important}

  /* ===== Xat / IA ===== */
  #view-chat .chatLayout{gap:9px!important}
  #view-chat .chatThreadList{max-height:210px!important}
  #view-chat .chatConversation{min-height:430px!important}
  #view-chat .chatMessages{padding:11px!important}
  #view-chat .chatComposer{
    position:sticky;
    bottom:calc(70px + env(safe-area-inset-bottom));
    z-index:8;
    padding:8px!important;
    background:rgba(255,255,255,.98)!important;
    backdrop-filter:blur(10px);
  }
  #view-chat .chatComposer textarea{
    font-size:16px!important;
    min-height:46px!important;
  }
  #view-ai .aiHeader{
    padding:14px!important;
    align-items:flex-start!important;
    flex-direction:column;
  }
  #view-ai .aiMessages{
    min-height:360px!important;
    padding:11px!important;
  }
  #view-ai .aiMessage{
    max-width:94%!important;
    font-size:12px!important;
    padding:10px 11px!important;
  }
  #view-ai .aiComposer{
    position:sticky;
    bottom:calc(70px + env(safe-area-inset-bottom));
    z-index:8;
    padding:10px!important;
    background:rgba(255,255,255,.98)!important;
    backdrop-filter:blur(10px);
  }
  #view-ai .aiComposer textarea{
    min-height:72px!important;
    font-size:16px!important;
  }

  /* ===== Taules horitzontals: feedback visual i scroll suau ===== */
  .tableWrap,.calendarScroll,.socialCalendar{
    -webkit-overflow-scrolling:touch;
    overscroll-behavior-x:contain;
  }
  .tableWrap{
    margin-left:-2px;
    margin-right:-2px;
    box-shadow:inset -14px 0 18px -18px rgba(0,0,0,.35);
  }

  /* ===== Estat standalone / pantalla d'inici ===== */
  @media(display-mode:standalone){
    .topbar{
      padding-top:max(8px,env(safe-area-inset-top))!important;
    }
    .content{
      padding-bottom:calc(108px + env(safe-area-inset-bottom))!important;
    }
  }
}

@media(max-width:390px){
  .content{
    padding-left:8px!important;
    padding-right:8px!important;
  }
  .mobileBottomNav button{font-size:8px!important}
  .mobileBottomNav button .mobileNavIcon{font-size:19px!important}
  #view-content .socialFilters{grid-template-columns:1fr!important}
}


/* ============================================================
   PORTAL AUSA · v110 · MOBILE REVIEW
   Correccions després de prova real en iPhone
   ============================================================ */
@media(max-width:760px){

  /* --- App chrome --- */
  #quickAddTop{
    display:none!important;
  }
  .mobileMenu{
    display:none!important;
  }
  .topbar{
    min-height:64px!important;
    padding:
      max(8px,env(safe-area-inset-top))
      max(10px,env(safe-area-inset-right))
      8px
      max(10px,env(safe-area-inset-left))!important;
  }
  .topActions{
    min-width:0;
    width:100%;
    display:grid!important;
    grid-template-columns:minmax(0,1fr) 44px 44px!important;
    gap:8px!important;
  }
  .accessSwitcher{
    min-width:0!important;
    width:100%!important;
    height:44px!important;
    min-height:44px!important;
    padding:5px 9px!important;
    border-radius:12px!important;
  }
  .accessSwitcher>span{
    display:none!important;
  }
  .accessSwitcher .cloudUser{
    font-size:12px!important;
    font-weight:900!important;
  }
  .cloudLogout{
    width:34px!important;
    height:34px!important;
    min-width:34px!important;
  }
  .mobileSearchToggle,
  .avatar{
    width:44px!important;
    height:44px!important;
    min-width:44px!important;
    border-radius:12px!important;
  }

  /* --- Bottom navigation: always visible above Safari/PWA safe area --- */
  .mobileBottomNav{
    display:grid!important;
    visibility:visible!important;
    opacity:1!important;
    position:fixed!important;
    left:0!important;
    right:0!important;
    bottom:0!important;
    z-index:2147483000!important;
    grid-template-columns:repeat(5,minmax(0,1fr))!important;
    min-height:74px!important;
    padding:
      5px
      max(5px,env(safe-area-inset-right))
      calc(7px + env(safe-area-inset-bottom))
      max(5px,env(safe-area-inset-left))!important;
    background:rgba(255,255,255,.98)!important;
    border-top:1px solid #DDDAD1!important;
    box-shadow:0 -10px 30px rgba(0,0,0,.10)!important;
    backdrop-filter:blur(18px)!important;
    -webkit-backdrop-filter:blur(18px)!important;
  }
  .mobileBottomNav button{
    display:flex!important;
    min-width:0!important;
    min-height:55px!important;
    padding:5px 2px!important;
    border:0!important;
    border-radius:12px!important;
    background:transparent!important;
    color:#72706B!important;
    align-items:center!important;
    justify-content:center!important;
    flex-direction:column!important;
    gap:3px!important;
    font:800 8.5px Montserrat,Arial,sans-serif!important;
  }
  .mobileBottomNav button.active{
    background:#FFF0AC!important;
    color:#111!important;
  }
  .mobileBottomNav .mobileNavIcon{
    display:block!important;
    height:23px!important;
    font-size:21px!important;
    line-height:23px!important;
    font-weight:900!important;
  }
  .content{
    padding-bottom:calc(112px + env(safe-area-inset-bottom))!important;
  }

  /* + no pot tapar una tasca ni la barra inferior */
  .mobileQuickAdd{
    display:grid!important;
    place-items:center!important;
    width:52px!important;
    height:52px!important;
    right:max(13px,env(safe-area-inset-right))!important;
    bottom:calc(88px + env(safe-area-inset-bottom))!important;
    z-index:2147482999!important;
    box-shadow:0 9px 24px rgba(0,0,0,.18)!important;
  }

  /* --- Dashboard top --- */
  #view-dashboard .pageHead{
    gap:10px!important;
    margin-bottom:10px!important;
  }
  #view-dashboard .pageHead h1{
    font-size:27px!important;
    line-height:1.02!important;
  }
  #view-dashboard .pageHead p{
    margin-top:6px!important;
    font-size:11.5px!important;
    line-height:1.4!important;
  }
  .dashboardScopeControls{
    margin-top:1px!important;
  }
  .dashboardScopeTabs{
    display:grid!important;
    grid-template-columns:1fr 1fr!important;
    width:100%!important;
    gap:5px!important;
    padding:4px!important;
    border-radius:13px!important;
    overflow:visible!important;
  }
  .dashboardScopeTabs .btn{
    width:100%!important;
    min-height:42px!important;
    padding:7px 5px!important;
    font-size:10px!important;
  }
  .dashboardLinkedPerson{
    margin-top:7px!important;
  }

  /* Avui / aquesta setmana / setmana que ve: always all visible */
  .dashboardPeriodSectionRow{
    margin-bottom:9px!important;
  }
  .dashboardPeriodSectionRow>div{
    width:100%!important;
  }
  .dashboardPeriodSectionRow .eyebrow{
    margin-bottom:7px!important;
  }
  .dashboardPeriodSectionRow .dashboardPeriodTabs,
  .dashboardPeriodTabs{
    display:grid!important;
    grid-template-columns:repeat(3,minmax(0,1fr))!important;
    width:100%!important;
    max-width:none!important;
    overflow:visible!important;
    gap:5px!important;
    padding:4px!important;
    border-radius:13px!important;
    background:#F0EFEA!important;
  }
  .dashboardPeriodTabs .btn{
    width:100%!important;
    min-width:0!important;
    min-height:42px!important;
    padding:6px 4px!important;
    white-space:normal!important;
    line-height:1.12!important;
    font-size:9px!important;
    border-radius:10px!important;
  }

  /* --- Dashboard cards: denser and more useful on small screens --- */
  .dashboardSection{
    margin-top:14px!important;
  }
  .dashboardTodayGrid{
    display:grid!important;
    grid-template-columns:1fr!important;
    gap:8px!important;
  }
  .dashboardTodayCard{
    border-radius:14px!important;
  }
  .dashboardMiniHead{
    min-height:46px!important;
    padding:9px 11px!important;
    font-size:9px!important;
  }
  .dashboardMiniHead b{
    min-width:26px!important;
    height:26px!important;
    font-size:9px!important;
  }
  .dashboardTodayEmpty{
    padding:13px 11px!important;
    font-size:9.5px!important;
  }
  .dashboardTodayCard .dashboardCompactItem,
  .dashboardCompactItem{
    padding:8px 9px!important;
    gap:7px!important;
    align-items:center!important;
  }
  .dashboardItemMain b{
    font-size:10.5px!important;
    line-height:1.25!important;
  }
  .dashboardItemMain .tiny,
  .dashboardItemMain small{
    font-size:8px!important;
    line-height:1.3!important;
  }
  .dashboardItemActions{
    max-width:76px!important;
    gap:3px!important;
  }
  .dashboardItemActions .pill{
    padding:4px 6px!important;
    font-size:7.5px!important;
  }
  .dashboardMainGrid{
    gap:9px!important;
  }
  .dashboardAttentionRow{
    padding:9px 10px!important;
    grid-template-columns:29px minmax(0,1fr) 16px!important;
    gap:7px!important;
  }
  .dashboardAttentionMain b{
    font-size:10.5px!important;
  }
  .dashboardAttentionMain span{
    font-size:8px!important;
  }

  /* Hide redundant secondary blocks on dashboard if their main period card is already visible.
     The detailed data remains available through Feina/Reunions. */
  #view-dashboard .dashboardMainGrid .dashboardMeetingBlock,
  #view-dashboard .dashboardMainGrid .dashboardTaskBlock{
    display:none!important;
  }

  /* --- Cards and buttons generally --- */
  .card{
    box-shadow:0 2px 10px rgba(0,0,0,.025)!important;
  }
  .btn{
    touch-action:manipulation;
  }
  .btn.small{
    min-height:38px;
  }

  /* --- Work --- */
  #view-work .workLayoutTabs{
    display:none!important;
  }
  #view-work .workToolbar,
  #view-meetings .meetingCurrentToolbar{
    gap:7px!important;
  }

  /* --- Calendar --- */
  #view-calendar .calendarMobileViewTabs{
    display:grid!important;
    grid-template-columns:repeat(3,1fr)!important;
    width:100%!important;
    overflow:visible!important;
  }
  #view-calendar .calendarMobileViewTabs button{
    min-width:0!important;
    white-space:normal!important;
    font-size:9px!important;
  }

  /* --- Analytics --- */
  #view-analytics .analyticsPlatformTabs,
  #view-analytics .analyticsClientTabs{
    overflow-x:auto!important;
    flex-wrap:nowrap!important;
    scrollbar-width:none;
  }
  #view-analytics .analyticsPlatformTabs::-webkit-scrollbar,
  #view-analytics .analyticsClientTabs::-webkit-scrollbar{
    display:none;
  }

  /* --- Modals / drawers: never under bottom nav/home indicator --- */
  .modalFoot{
    padding-bottom:calc(12px + env(safe-area-inset-bottom))!important;
  }
  .drawer{
    padding-bottom:env(safe-area-inset-bottom)!important;
  }
}

@media(max-width:380px){
  .dashboardPeriodTabs .btn{
    font-size:8px!important;
    padding-left:2px!important;
    padding-right:2px!important;
  }
  .mobileBottomNav button{
    font-size:7.8px!important;
  }
}


/* ============================================================
   PORTAL AUSA · v111 · UX EQUIP / MOBILE
   ============================================================ */
.rememberSessionChoice{
  display:flex;align-items:flex-start;gap:10px;
  padding:11px 12px;margin:-3px 0 13px;
  border:1px solid var(--line);border-radius:12px;background:#FAFAF7;
  cursor:pointer;
}
.rememberSessionChoice input{width:19px;height:19px;margin:1px 0 0;accent-color:#111;flex:0 0 auto}
.rememberSessionChoice span{display:grid;gap:3px}
.rememberSessionChoice b{font-size:11px}
.rememberSessionChoice small{font-size:9px;line-height:1.4;color:var(--muted)}
.rememberSessionChoice.inModal{margin:0;background:#fff}

.topProfileButton{border:0;cursor:pointer;font:900 12px Montserrat,Arial,sans-serif}
.topProfileButton:hover{outline:3px solid rgba(255,187,0,.22)}
.topProfileMenu{
  position:absolute;right:28px;top:62px;z-index:95;
  width:220px;padding:7px;
  border:1px solid var(--line);border-radius:14px;background:#fff;
  box-shadow:0 18px 50px rgba(0,0,0,.16);
}
.topProfileMenu button{
  appearance:none;width:100%;min-height:42px;border:0;border-radius:10px;background:transparent;
  display:grid;grid-template-columns:24px 1fr;gap:7px;align-items:center;
  padding:8px 9px;text-align:left;font:800 11px Montserrat,Arial,sans-serif;cursor:pointer;color:#222;
}
.topProfileMenu button:hover{background:#F6F5F0}
.topProfileMenu button.danger{color:#B42318}
.topProfileMenuDivider{height:1px;background:var(--line);margin:5px 3px}
.myProfileCard{display:grid;gap:14px}
.myProfileHero{display:flex;gap:13px;align-items:center;padding:15px;border:1px solid var(--line);border-radius:14px;background:#FAFAF7}
.myProfileHero h3{margin:0 0 3px;font-size:18px}
.myProfileFallback{width:58px;height:58px;border-radius:50%;background:#111;color:var(--yellow);display:grid;place-items:center;font-weight:900}
.myProfileDetails{display:grid;grid-template-columns:repeat(2,1fr);gap:8px}
.myProfileDetails>div,.personalSettingInfo{padding:12px;border:1px solid var(--line);border-radius:12px;background:#fff;display:grid;gap:4px}
.myProfileDetails span,.personalSettingInfo span{font-size:9px;color:var(--muted);text-transform:uppercase;letter-spacing:.06em}
.myProfileDetails b,.personalSettingInfo b{font-size:11px}

.workListRow.taskInProgress,.taskCard.taskInProgress{
  border-color:#9CB9F5!important;
  box-shadow:inset 4px 0 0 #2F6FED,0 3px 12px rgba(47,111,237,.06)!important;
  background:linear-gradient(90deg,#F2F6FF 0,#fff 26%)!important;
}
.taskCalendarEvent.inProgressEvent{
  background:#E9F0FF!important;color:#1D57BD!important;
  box-shadow:inset 3px 0 0 #2F6FED;
}
.calendarAgendaEvent.inProgress{
  border-color:#ABC2F4!important;background:#F3F6FF!important;
}
.calendarDayAdd{
  appearance:none;width:100%;border:1px dashed #CCC8BD;border-radius:7px;background:transparent;color:#777;
  margin-top:6px;padding:5px 4px;font:800 8px Montserrat,Arial,sans-serif;cursor:pointer;
}
.calendarDayAdd:hover{border-color:#FFBB00;background:#FFF8DA;color:#111}
.calendarDayAdd span{display:inline}

.workFilterBar select{min-width:170px}

@media(max-width:760px){
  .topProfileMenu{
    position:fixed!important;
    right:max(10px,env(safe-area-inset-right))!important;
    top:calc(62px + env(safe-area-inset-top))!important;
    width:min(260px,calc(100vw - 20px))!important;
    z-index:2147483005!important;
  }
  .rememberSessionChoice{padding:12px;margin:0 0 12px}
  .rememberSessionChoice b{font-size:11px}
  .rememberSessionChoice small{font-size:9px}
  .myProfileDetails{grid-template-columns:1fr}
  .workFilterBar{
    display:grid!important;
    grid-template-columns:1fr 1fr!important;
    gap:7px!important;
  }
  .workFilterBar input{grid-column:1/-1;width:100%!important}
  .workFilterBar select{min-width:0!important;width:100%!important}

  /* Calendari mensual complet en pantalla: cap dijous/divendres tallat */
  .calendarScroll{
    overflow-x:hidden!important;
    width:100%!important;
    padding-bottom:0!important;
  }
  .calGrid{
    min-width:0!important;
    width:100%!important;
    grid-template-columns:repeat(7,minmax(0,1fr))!important;
  }
  .calDow{
    min-width:0!important;padding:7px 1px!important;font-size:8px!important;
  }
  .calDay{
    min-width:0!important;min-height:88px!important;padding:4px 3px!important;
    overflow:hidden!important;
  }
  .dayNum{font-size:9px!important}
  .calTodayLabel{font-size:6px!important;padding:2px 3px!important}
  .calDay .event{
    min-width:0!important;
    padding:3px!important;margin-top:3px!important;
    border-radius:5px!important;font-size:7px!important;
  }
  .calDay .event .clientBrandInline,
  .calDay .event .taskAssigneeAvatarGroup,
  .calDay .event .calendarAvatar,
  .calDay .eventStatusMini{
    display:none!important;
  }
  .calDay .taskCalendarTitle,
  .calDay .meetingCalendarTitle{
    display:block!important;
    width:100%!important;
    overflow:hidden!important;
    text-overflow:ellipsis!important;
    white-space:nowrap!important;
  }
  .calendarDayAdd{
    margin-top:3px!important;padding:4px 1px!important;font-size:9px!important;
    background:#FAFAF7!important;
  }
  .calendarDayAdd span{display:none!important}

  /* Barra inferior: Reunions en lloc de Continguts */
  .mobileBottomNav{grid-template-columns:repeat(5,minmax(0,1fr))!important}

  /* Estat En curs molt obvi també a mòbil */
  .workListRow.taskInProgress{box-shadow:inset 4px 0 0 #2F6FED!important}
}
@media(max-width:380px){
  .workFilterBar{grid-template-columns:1fr!important}
  .workFilterBar input{grid-column:auto}
}


/* ============================================================
   PORTAL AUSA · v112 · DESKTOP GUARD
   La navegació mòbil només existeix visualment <= 760 px.
   ============================================================ */
@media(min-width:761px){
  .mobileBottomNav,
  .mobileQuickAdd,
  .mobileMenu,
  .mobileSearchToggle,
  .mobileInstallBtn{
    display:none!important;
    visibility:hidden!important;
    opacity:0!important;
    pointer-events:none!important;
  }

  /* Restore normal desktop flow in case mobile state/classes persist */
  body.mobileMenuOpen{
    overflow:auto!important;
  }
  .sidebar{
    transform:none!important;
  }
  .sidebar::before{
    display:none!important;
  }
  .topbar .search{
    display:block!important;
  }
}


/* ============================================================
   PORTAL AUSA · v113 · CALENDARI MENSUAL 7 DIES
   Correcció desktop + mòbil: DL-DG sempre dins l'amplada disponible.
   ============================================================ */

/* El contenidor mensual no pot conservar una amplada mínima antiga. */
#view-calendar .calendarScroll{
  width:100%!important;
  max-width:100%!important;
  min-width:0!important;
  overflow-x:hidden!important;
}

/* Set columnes reals i flexibles: DL, DT, DC, DJ, DV, DS, DG */
#view-calendar .calGrid{
  display:grid!important;
  grid-template-columns:repeat(7,minmax(0,1fr))!important;
  width:100%!important;
  max-width:100%!important;
  min-width:0!important;
  box-sizing:border-box!important;
}

/* Cap cel·la pot forçar la graella a créixer horitzontalment. */
#view-calendar .calDow,
#view-calendar .calDay{
  min-width:0!important;
  max-width:none!important;
  width:auto!important;
  box-sizing:border-box!important;
  overflow:hidden!important;
}

/* Els registres llargs es retallen dins la seva columna, no amplien el calendari. */
#view-calendar .calDay .event,
#view-calendar .taskCalendarEvent,
#view-calendar .meetingCalendarEvent{
  min-width:0!important;
  max-width:100%!important;
  box-sizing:border-box!important;
}

#view-calendar .taskCalendarTitle,
#view-calendar .meetingCalendarTitle{
  min-width:0!important;
  overflow:hidden!important;
  text-overflow:ellipsis!important;
  white-space:nowrap!important;
}

/* Controls superiors: no han d'eixamplar el calendari. */
#view-calendar .calendarToolbar,
#view-calendar .calendarControls,
#view-calendar .calendarFilterBar{
  max-width:100%!important;
  min-width:0!important;
}

/* Desktop: mantenim les 7 columnes visibles sense scroll lateral. */
@media(min-width:761px){
  #view-calendar .calGrid{
    grid-template-columns:repeat(7,minmax(0,1fr))!important;
  }

  #view-calendar .calDow{
    padding-left:5px!important;
    padding-right:5px!important;
    text-align:center;
  }

  #view-calendar .calDay{
    padding-left:7px!important;
    padding-right:7px!important;
  }

  #view-calendar .calendarDayAdd{
    max-width:100%!important;
  }
}

/* Pantalles d'escriptori estretes / tablets horitzontals */
@media(min-width:761px) and (max-width:1180px){
  #view-calendar .calDay{
    padding-left:4px!important;
    padding-right:4px!important;
  }

  #view-calendar .calDay .event{
    padding-left:4px!important;
    padding-right:4px!important;
    font-size:8px!important;
  }

  #view-calendar .calDay .calendarAvatar,
  #view-calendar .calDay .clientBrandInline{
    transform:scale(.88);
    transform-origin:left center;
  }
}


/* Portal Ausa v114 · To de marca */
.clientBrandToneBox{
  margin-top:12px;padding:11px 12px;border:1px solid #E2DED3;border-radius:12px;
  background:#FAF8F2;line-height:1.5;
}
.clientBrandToneBox b{
  display:block;margin-bottom:5px;font-size:9px;text-transform:uppercase;letter-spacing:.07em;
}
.clientBrandToneBox div{white-space:pre-wrap;font-size:10px}


/* ============================================================
   PORTAL AUSA · v115 · AUSA IA · FITXERS I IMATGES
   ============================================================ */
.aiComposerActions{justify-content:space-between!important}
.aiComposerLeft{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.aiAttachButton{display:inline-flex;align-items:center;gap:5px}
.aiAttachHint{max-width:420px}
.aiAttachmentStrip{
  display:flex;gap:8px;flex-wrap:wrap;
  margin-bottom:9px;padding:8px;
  border:1px solid var(--line);border-radius:12px;background:#FAFAF7;
}
.aiAttachmentChip{
  max-width:280px;min-height:48px;
  display:grid;grid-template-columns:38px minmax(0,1fr) 28px;
  gap:8px;align-items:center;
  padding:5px 6px;border:1px solid #DDD9CF;border-radius:11px;background:#fff;
}
.aiAttachmentChip img{
  width:38px;height:38px;border-radius:8px;object-fit:cover;background:#eee;
}
.aiAttachmentFileIcon{
  width:38px;height:38px;border-radius:8px;background:#111;color:var(--yellow);
  display:grid;place-items:center;font-size:9px;font-weight:900;
}
.aiAttachmentInfo{min-width:0;display:grid;gap:2px}
.aiAttachmentInfo b{
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:10px;
}
.aiAttachmentInfo small{font-size:8px;color:var(--muted)}
.aiAttachmentChip>button{
  width:28px;height:28px;border:0;border-radius:8px;background:#F2F1EC;cursor:pointer;
}
.aiMessageAttachments{
  display:flex;gap:5px;flex-wrap:wrap;margin-top:8px;
}
.aiMessageAttachments span{
  display:inline-flex;align-items:center;gap:4px;
  padding:5px 7px;border-radius:8px;
  background:rgba(0,0,0,.06);font-size:8px;font-weight:800;
}
.aiMessage.user .aiMessageAttachments span{background:rgba(255,255,255,.18)}

@media(max-width:760px){
  .aiComposerActions{
    display:grid!important;grid-template-columns:1fr!important;gap:8px!important;
  }
  .aiComposerLeft,.aiComposerRight{width:100%!important}
  .aiComposerLeft{display:grid!important;grid-template-columns:auto minmax(0,1fr)!important}
  .aiAttachHint{font-size:8px!important;line-height:1.3}
  .aiAttachButton{min-height:42px!important}
  .aiAttachmentStrip{flex-wrap:nowrap;overflow-x:auto;padding:7px}
  .aiAttachmentChip{min-width:220px;max-width:250px}
}


/* ============================================================
   PORTAL AUSA · v116 · PROSPECTES · PROPOSTA
   ============================================================ */
.prospectProposalCell{display:flex;align-items:center;justify-content:center}
.prospectProposalLink{
  display:inline-grid;place-items:center;width:34px;height:34px;min-width:34px;
  border:1px solid var(--line);border-radius:10px;background:#fff;color:#111;
  text-decoration:none;font:900 16px Montserrat,Arial,sans-serif;transition:.15s ease;
}
.prospectProposalLink:hover{border-color:#FFBB00;background:#FFF8D9;transform:translateY(-1px)}
.prospectProposalLink.compact{width:30px;height:30px;min-width:30px;border-radius:9px;font-size:14px}
.prospectProposalEmpty{color:#B8B4AB;font-size:11px}
.prospectDetailProposal{display:inline-flex!important;align-items:center;gap:6px;text-decoration:none}
.prospectCardTop{display:flex;align-items:center;justify-content:space-between;gap:8px}
@media(max-width:760px){
  .prospectProposalLink{width:40px;height:40px;min-width:40px;border-radius:11px}
  .prospectProposalLink.compact{width:38px;height:38px;min-width:38px}
}


/* Portal Ausa v117 · connexions visibles per treballadors */
.connectionReadOnly{
  margin-top:10px;padding-top:10px;border-top:1px solid var(--line);
  display:flex;justify-content:flex-end;
}


/* Portal Ausa v118 · permisos reals de treballador */
.workerAccessOk{
  display:inline-flex;align-items:center;gap:5px;
  padding:5px 8px;border-radius:999px;background:#EAF7EE;color:#276B3D;
  font-size:8px;font-weight:900;text-transform:uppercase;letter-spacing:.04em;
}


/* ============================================================
   PORTAL AUSA · v119 · MENÚ LATERAL DESPLEGABLE
   ============================================================ */
.desktopSidebarToggle{display:none}

@media(min-width:761px){
  .sidebar{
    transition:transform .22s cubic-bezier(.2,.8,.2,1),box-shadow .22s ease;
    will-change:transform;
  }
  .app{
    transition:margin-left .22s cubic-bezier(.2,.8,.2,1),width .22s cubic-bezier(.2,.8,.2,1);
  }

  .desktopSidebarToggle{
    display:grid;
    place-items:center;
    position:fixed;
    left:232px;
    top:50%;
    transform:translateY(-50%);
    z-index:70;
    width:32px;
    height:54px;
    border:1px solid #2C2C2C;
    border-radius:0 13px 13px 0;
    background:#111;
    color:var(--yellow);
    box-shadow:5px 0 18px rgba(0,0,0,.14);
    cursor:pointer;
    transition:left .22s cubic-bezier(.2,.8,.2,1),border-radius .22s ease,background .15s ease;
  }
  .desktopSidebarToggle:hover{
    background:#1B1B1B;
  }
  .desktopSidebarToggle span{
    font:900 27px/1 Arial,sans-serif;
    transform:translateX(-1px);
    transition:transform .2s ease;
  }

  body.sidebarCollapsed .sidebar{
    transform:translateX(-100%)!important;
    box-shadow:none!important;
  }
  body.sidebarCollapsed .app{
    margin-left:0!important;
    width:100%!important;
  }
  body.sidebarCollapsed .desktopSidebarToggle{
    left:0;
    border-radius:0 13px 13px 0;
  }
  body.sidebarCollapsed .desktopSidebarToggle span{
    transform:rotate(180deg) translateX(-1px);
  }

  /* Quan treballem a pantalla completa, aprofitem una mica més l'espai real. */
  body.sidebarCollapsed .content{
    max-width:1760px;
  }
}

/* La funcionalitat d'escriptori no interfereix amb el menú mòbil. */
@media(max-width:760px){
  .desktopSidebarToggle{display:none!important}
  body.sidebarCollapsed .sidebar{transform:translateY(105%)!important}
  body.sidebarCollapsed .app{margin-left:0!important;width:100%!important}
}

/* ===== AUSA DEVELOPER · STANDALONE SHELL ===== */
html,body{min-height:100%;background:#F6F6F3}.developerShell{min-height:100vh}.developerShell>.content{padding:0;max-width:none;margin:0}.developerShell .view{display:block}.developerShell .view.active{display:block}
.devTop{height:56px;background:#0D0D0D;color:#fff;display:flex;align-items:center;padding:0 18px;gap:14px;position:sticky;top:0;z-index:120;border-bottom:1px solid #242424}.devTop b{color:#CDBFFF}.devTop .spacer{flex:1}.devTop .devBack{appearance:none;border:0;background:transparent;color:#aaa;cursor:pointer;font-size:10px;font-weight:800;padding:7px}.devTop .devBack:hover{color:#fff}.devUser{font-size:9px;color:#aaa}.devLogout{border:1px solid #333;background:#181818;color:#ddd;border-radius:8px;padding:7px 9px;cursor:pointer}
.authGate{position:fixed;inset:0;z-index:10000;background:rgba(13,13,13,.96);display:grid;place-items:center;padding:20px;backdrop-filter:blur(12px)}.authGate.hidden{display:none!important}.authCard{width:min(440px,94vw);background:#fff;border-radius:22px;padding:28px;box-shadow:0 30px 90px rgba(0,0,0,.4)}.authBrand{font-family:Scale,Montserrat,sans-serif;font-size:27px;font-weight:900;margin:4px 0}.authBrand span{color:#6F5CE7}.authCard p{color:var(--muted);font-size:12px;line-height:1.55}.authFields{display:grid;gap:10px;margin:18px 0}.authFields input{width:100%;border:1px solid var(--line);border-radius:11px;padding:12px 13px;font-size:16px;outline:0}.authFields input:focus{border-color:#6F5CE7}.authActions{display:grid;grid-template-columns:1fr;gap:8px}.authMessage{min-height:18px;margin-top:12px;font-size:11px;color:var(--muted);line-height:1.45}.authMessage.error{color:var(--red)}
.clientBrandMark{width:34px;height:34px;border-radius:9px;background:#111;color:#ffbb00;display:grid;place-items:center;font-weight:900}.clientBrand-sm{width:34px;height:34px}.clientBrandFallback{font-size:12px}.accessLocked{max-width:650px;margin:80px auto;background:#fff;border:1px solid var(--line);border-radius:16px;padding:28px;text-align:center}
@media(max-width:760px){.devTop{padding:0 10px}.devTop .devUser{display:none}.authCard{padding:20px 16px}}
