/* ===========================================================================
   MAUMER · DESIGN TOKENS
   Font única de veritat del color, la tipografia i l'espaiat. Si necessites un
   color nou, afegeix-lo AQUI i fes-lo servir amb var(): mai un hex solt.
   =========================================================================== */
:root{
  /* --- marca --- */
  /* El coral #D84156 és el color de marca i es manté intacte com a FONS (botons,
     capçaleres). Per a TEXT coral sobre blanc fem servir --mau-ink, que és el
     mateix to una mica més fosc perquè es llegeixi bé (5,8:1 en lloc de 4,4:1). */
  --mau:#D84156; --mau-d:#B93245; --mau-ink:#B93245; --mau-l:#FE506C; --mau-soft:#FDEEF0;
  --blue:#D84156; --blue-l:#FE506C;           /* àlies històrics (coral de marca) */
  --navy:#1D232A; --navy2:#1D232A; --dark2:#12171c; --teal:#1D232A;

  /* --- superfícies --- */
  --bg:#f7f5f4; --card:#ffffff; --surface-2:#f2efed; --surface-3:#e9e5e2;
  --dark:#171c22; --dark-2:#0f1319; --dark-line:#2c3541;

  /* --- text --- */
  /* --mut-2 pujat de #98a2ad a #707780: el gris antic no arribava al contrast mínim
     llegible (2,6:1) i les etiquetes petites costaven de llegir. Ara 4,5:1. */
  --ink:#1D232A; --ink-2:#3a4552; --mut:#756B66; --mut-2:#707780; --on-dark:#eef2f6;
  --mut-2-soft:#98a2ad;    /* el gris clar original, només per a fons foscos */

  /* --- semàntics (estat) --- */
  --ok:#1f8a4c; --ok-l:#43c07a; --ok-bg:#eaf6ee; --ok-line:#b6e0c2; --okbg:#eaf4ee;
  --warn:#a5781f; --warn-l:#e0a63c; --warn-bg:#fdf3e6; --warn-line:#eccfa0;
  --danger:#b3261e; --danger-d:#8a1f1f; --danger-bg:#fdecea; --danger-line:#f5c2bd;
  --info:#2b6cb0; --info-l:#7cc0ff; --info-bg:#eef3fb; --info-line:#c3d4ee;

  /* --- semàntics sobre fons fosc (sidebar, barres de progrés) --- */
  --ok-bg-dark:#12331f; --warn-bg-dark:#33280f; --danger-bg-dark:#2a1414; --info-bg-dark:#12233a;
  --danger-l:#e06d6d; --danger-line-dark:#7a2f2f;

  /* --- línies, ombres, radis --- */
  --line:#ece8e6; --line-2:#ded8d4;
  --shadow:0 1px 2px rgba(29,35,42,.04),0 6px 22px rgba(29,35,42,.07);
  --shadow-sm:0 1px 2px rgba(29,35,42,.08);
  --shadow-lg:0 8px 30px rgba(29,35,42,.14);
  --radius:16px; --radius-sm:10px; --radius-pill:30px;

  /* --- escala d'espaiat (4px) --- */
  --sp-1:4px; --sp-2:8px; --sp-3:12px; --sp-4:16px; --sp-5:24px; --sp-6:32px;

  /* --- tipografia --- */
  --fs-xs:11px; --fs-sm:12.5px; --fs-md:14px; --fs-lg:16px; --fs-xl:20px;

  /* --- àlies de compatibilitat (noms antics usats en vistes velles) --- */
  --muted:var(--mut); --red:var(--mau); --side:var(--dark); --gris:var(--mut);
}
*{box-sizing:border-box}
body{margin:0;font-family:'Jost',Arial,Helvetica,sans-serif;background:var(--bg);color:var(--ink);line-height:1.55;font-weight:400}
a{color:var(--blue);text-decoration:none}a:hover{text-decoration:underline}
h1{color:var(--ink);font-weight:600;letter-spacing:-.01em}
h2,h3{font-weight:600}
nav{background:var(--navy);color:#fff;padding:8px 24px;min-height:64px;display:flex;align-items:center;gap:6px 8px;flex-wrap:wrap;row-gap:4px}
nav img.logo{height:28px;margin-right:8px}
nav .brand{font-weight:600;font-size:16px;margin-right:auto;color:#fff;letter-spacing:.06em}
nav .brand:hover{text-decoration:none}
nav a{color:#cfc9c5;font-size:13.5px;padding:8px 11px;border-radius:8px;letter-spacing:.02em}
nav a:hover{color:#fff;background:rgba(255,255,255,.08);text-decoration:none}
nav a.cta{background:var(--blue);color:#fff}nav a.cta:hover{background:var(--blue-l)}
nav form{margin:0}
nav button{background:transparent;border:1px solid rgba(255,255,255,.22);color:#cfc9c5;border-radius:30px;padding:7px 14px;cursor:pointer;font-size:13px;font-family:inherit}
nav button:hover{background:rgba(255,255,255,.1)}
.wrap{max-width:1080px;margin:26px auto;padding:0 20px}
.grid{display:grid;grid-template-columns:320px 1fr;gap:20px}
@media(max-width:820px){.grid{grid-template-columns:1fr}nav{height:auto;padding:12px 16px}}
.card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:22px;margin-bottom:18px;box-shadow:var(--shadow)}
.card h2{margin:0 0 14px;font-size:14px;color:var(--ink);text-transform:uppercase;letter-spacing:.07em}
.muted{color:var(--mut);font-size:13.5px}
label{display:block;font-size:11px;color:var(--mut);margin:12px 0 5px;font-weight:500;text-transform:uppercase;letter-spacing:.05em}
input,select,textarea{width:100%;padding:11px 13px;border:1px solid #ded8d4;border-radius:11px;font-size:14px;font-family:inherit;background:#fff;color:var(--ink);transition:border .15s,box-shadow .15s}
input:focus,select:focus,textarea:focus{outline:none;border-color:var(--blue);box-shadow:0 0 0 3px rgba(216,65,86,.12)}
.row2{display:grid;grid-template-columns:1fr 1fr;gap:12px}
button.btn,a.btn{display:inline-block;background:var(--blue);color:#fff;border:0;border-radius:30px;padding:11px 22px;font-size:14px;font-weight:600;cursor:pointer;margin-top:14px;font-family:inherit;letter-spacing:.02em;transition:background .15s}
button.btn:hover,a.btn:hover{background:var(--blue-l);text-decoration:none}
a.btn.sec,button.btn.sec{background:#f0ebe8;color:var(--ink)}a.btn.sec:hover,button.btn.sec:hover{background:#e7e0db}
.deal{border:1px solid var(--line);border-radius:14px;padding:16px;margin-bottom:12px;display:flex;justify-content:space-between;gap:16px;align-items:center;background:#fff;transition:box-shadow .15s}
.deal:hover{box-shadow:var(--shadow)}
.deal.match{border-color:#e7b9c1;background:linear-gradient(0deg,#fdf3f5,#fff)}
.deal h3{margin:0 0 5px;font-size:15px;color:var(--ink)}
.deal .meta{font-size:12.5px;color:var(--mut);line-height:1.65}
.score{text-align:center;min-width:88px}
.score .pct{font-size:26px;font-weight:700;color:var(--ink)}
.score .pct.ok{color:var(--blue)}
.score .lbl{font-size:10px;color:var(--mut);text-transform:uppercase;letter-spacing:.06em}
.badge{display:inline-block;background:var(--blue);color:#fff;font-size:10.5px;font-weight:600;padding:3px 10px;border-radius:20px;margin-left:6px}
.badge.ai{background:var(--navy)}
table{width:100%;border-collapse:separate;border-spacing:0;font-size:13.5px;overflow:hidden;border-radius:12px}
th,td{padding:11px 12px;text-align:left;border-bottom:1px solid var(--line)}
th{background:#f3efed;color:var(--ink);font-weight:600;font-size:11.5px;text-transform:uppercase;letter-spacing:.04em}
tr:last-child td{border-bottom:0}
tr:hover td{background:#faf8f7}
.flash{background:var(--ink);color:#fff;border-radius:12px;padding:12px 16px;margin-bottom:16px;font-size:13.5px}
.hero{background:linear-gradient(135deg,#12171c,#1D232A);color:#fff;padding:80px 20px;text-align:center}
.hero h1{color:#fff;font-size:42px;margin:0 0 16px;letter-spacing:-.02em;line-height:1.12;font-weight:600}
.hero p{font-size:18px;color:#cfc9c5;max-width:680px;margin:0 auto 26px}
.hero .btn{background:var(--blue);color:#fff;padding:13px 30px}
.hero .btn:hover{background:var(--blue-l)}
.steps{display:flex;gap:18px;max-width:920px;margin:38px auto;flex-wrap:wrap}
.step{flex:1;min-width:230px;background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:24px;box-shadow:var(--shadow)}
.step h3{margin:0 0 8px;color:var(--ink);font-size:16px}
.navbadge{background:var(--blue);color:#fff;border-radius:20px;font-size:11px;padding:1px 7px;font-weight:600}
.sechead{display:flex;justify-content:space-between;align-items:flex-end;margin:4px 2px 14px}
.sechead h2{margin:0;font-size:20px;font-weight:600;text-transform:none;letter-spacing:0;color:var(--ink)}
.cards{display:grid;grid-template-columns:1fr 1fr;gap:18px}@media(max-width:680px){.cards{grid-template-columns:1fr}}
.pc{display:block;background:#fff;border:1px solid var(--line);border-radius:18px;overflow:hidden;box-shadow:var(--shadow);transition:transform .15s,box-shadow .15s;color:inherit}
.pc:hover{transform:translateY(-3px);box-shadow:0 14px 38px rgba(29,35,42,.13);text-decoration:none}
.pc .img{height:170px;background-size:cover;background-position:center;position:relative;background-color:#e9e4e1}
.pc .ov{position:absolute;inset:0;background:linear-gradient(180deg,rgba(0,0,0,.05),rgba(0,0,0,.35))}
.pc .mt{position:absolute;top:12px;right:12px;background:var(--blue);color:#fff;font-weight:700;font-size:13px;padding:5px 12px;border-radius:30px;box-shadow:0 4px 12px rgba(216,65,86,.4)}
.pc .mt.lo{background:rgba(29,35,42,.85)}
.pc .st{position:absolute;top:12px;left:12px;background:rgba(255,255,255,.92);color:var(--ink);font-size:11px;font-weight:600;padding:4px 11px;border-radius:30px}
.pc .bd{padding:16px 18px}.pc h3{margin:0 0 3px;font-size:16px;font-weight:600;color:var(--ink)}
.pc .loc{font-size:12.5px;color:var(--mut);margin-bottom:12px}
.pc .mx{display:flex;gap:18px;border-top:1px solid var(--line);padding-top:12px}
.pc .mx .k{font-size:10px;color:var(--mut);text-transform:uppercase;letter-spacing:.05em}
.pc .mx .v{font-size:17px;font-weight:700;color:var(--ink)}.pc .mx .v.acc{color:var(--blue)}
.widgets{display:grid;grid-template-columns:repeat(5,1fr);gap:13px;margin-bottom:18px}
@media(max-width:860px){.widgets{grid-template-columns:repeat(2,1fr)}}
.widgets .wg, .wg{background:#fff;border:1px solid var(--line);border-radius:15px;padding:16px;box-shadow:var(--shadow)}
.wg .n{font-size:26px;font-weight:700;color:var(--ink)}
.wg .l{font-size:10.5px;color:var(--mut);text-transform:uppercase;letter-spacing:.06em;margin-top:2px}
.wg.hl{background:var(--navy)}.wg.hl .n,.wg.hl .l{color:#fff}
.kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:13px;margin-bottom:18px}
@media(max-width:860px){.kpis{grid-template-columns:repeat(2,1fr)}}

/* ===== Responsive / mobile ===== */
@media(max-width:680px){
  nav{padding:10px 14px;gap:4px}
  nav .brand{font-size:14px}
  nav img.logo{height:22px;margin-right:6px}
  nav a{font-size:12.5px;padding:6px 8px}
  nav button{padding:6px 12px;font-size:12.5px}
  .wrap{margin:16px auto;padding:0 14px}
  h1{font-size:24px}
  .row2{grid-template-columns:1fr}
  .card{padding:16px;overflow-x:auto}
  .hero{padding:54px 16px}
  .hero h1{font-size:30px}
  .hero p{font-size:16px}
  .sechead{flex-direction:column;align-items:flex-start;gap:2px}
  .deal{flex-direction:column;align-items:flex-start;gap:10px}
  .score{text-align:left;min-width:0}
  table{min-width:480px}
}


/* ===== Maumer brand refresh (investor shell + profile) ===== */
:root{ --mau:#d65a4e; --mau-d:#bf473d; --mau-soft:#fbeceb; --ink:#1c2128; --side:#1c2128; }
.btn,button.btn{ background:var(--mau); border-color:var(--mau); }
.btn:hover{ background:var(--mau-d); border-color:var(--mau-d); }
.btn.ghost{ background:#fff; color:var(--mau); border:1px solid var(--mau); }
.btn.ghost:hover{ background:var(--mau-soft); }
.cta{ background:var(--mau)!important; border-color:var(--mau)!important; }

.ishell{ display:flex; min-height:100vh; }
.iside{ width:250px; flex:none; background:var(--side); color:#aeb4be; display:flex; flex-direction:column; position:sticky; top:0; height:100vh; overflow-y:auto; }
.ibrand{ display:flex; align-items:center; gap:10px; padding:22px 22px 6px; color:#fff; font-weight:700; font-size:21px; letter-spacing:1.5px; text-decoration:none; }
.ilogo{ height:26px; width:auto; }
.irole{ padding:2px 24px 16px; font-size:10.5px; letter-spacing:2px; text-transform:uppercase; color:#7b828d; border-bottom:1px solid #2a313b; }
.iside nav{ padding:6px 12px 10px; flex:1; }
.isg{ font-size:10px; letter-spacing:1.6px; text-transform:uppercase; color:#6b7280; padding:16px 12px 6px; }
.iside nav a{ display:flex; align-items:center; justify-content:space-between; gap:10px; padding:10px 13px; margin:2px 0; border-radius:9px; color:#c4c9d2; text-decoration:none; font-size:14px; border-left:3px solid transparent; transition:background .12s,color .12s; }
.iside nav a:hover{ background:#262d37; color:#fff; }
.iside nav a.on{ background:#2c333e; color:#fff; border-left-color:var(--mau); }
.ibadge{ background:var(--mau); color:#fff; border-radius:11px; font-size:11px; padding:1px 8px; font-weight:600; }
.iside-foot{ padding:16px 24px 22px; font-size:11px; color:#6b7280; border-top:1px solid #2a313b; line-height:1.6; }
.iside-foot span{ color:#565d68; }

.imain{ flex:1; min-width:0; display:flex; flex-direction:column; background:#f4f6f9; }
.itop{ height:64px; background:#fff; border-bottom:1px solid #e7e9ee; display:flex; align-items:center; gap:14px; padding:0 24px; position:sticky; top:0; z-index:30; }
.iham{ display:none; background:none; border:0; font-size:22px; line-height:1; cursor:pointer; color:var(--ink); }
.isp{ flex:1; }
.iout-link{ font-size:13px; color:#fff; background:var(--ink); padding:8px 15px; border-radius:8px; text-decoration:none; font-weight:500; }
.iout-link:hover{ background:#2c333e; }
.ibell{ position:relative; font-size:18px; text-decoration:none; color:#5a616b; line-height:1; }
.idot{ position:absolute; top:-3px; right:-4px; width:9px; height:9px; background:var(--mau); border-radius:50%; border:2px solid #fff; }
.iuser{ display:flex; align-items:center; gap:9px; text-decoration:none; color:var(--ink); }
.iav{ width:35px; height:35px; border-radius:50%; background:var(--mau); color:#fff; display:flex; align-items:center; justify-content:center; font-weight:700; font-size:15px; }
.iuname{ font-size:14px; font-weight:600; }
.iexit{ background:#fff; border:1px solid #e2e5eb; border-radius:8px; padding:8px 13px; cursor:pointer; font-size:13px; color:#5a616b; }
.iexit:hover{ background:#f4f6f9; }
.icontent{ flex:1; padding:26px 28px 14px; }
.icontent .wrap{ max-width:1080px; }
.iov{ display:none; }

/* profile cards */
.phead{ display:flex; align-items:baseline; gap:14px; flex-wrap:wrap; margin:4px 2px 18px; }
.phead h1{ margin:0; font-size:24px; color:var(--ink); }
.pcard{ background:#fff; border:1px solid #e7e9ee; border-radius:14px; padding:24px 26px; margin-bottom:20px; box-shadow:0 1px 3px rgba(20,30,50,.04); }
.ph{ margin:0 0 18px; font-size:18px; color:var(--ink); }
.pg{ display:grid; grid-template-columns:1fr 1fr; gap:15px 20px; }
.pf2{ grid-column:1/-1; }
.pf label{ display:block; font-size:12px; color:#6b7280; margin-bottom:6px; }
.pf input{ width:100%; padding:11px 13px; border:1px solid #dfe3ea; border-radius:9px; font-size:14px; box-sizing:border-box; }
.pf input:focus{ outline:none; border-color:var(--mau); box-shadow:0 0 0 3px var(--mau-soft); }
.pf input:disabled{ background:#f2f4f7; color:#8a8f99; }
.pact{ margin-top:18px; text-align:right; }

@media(max-width:860px){
  .iside{ position:fixed; left:-270px; transition:left .22s ease; z-index:60; box-shadow:0 0 40px rgba(0,0,0,.3); }
  body.iopen .iside{ left:0; }
  body.iopen .iov{ display:block; position:fixed; inset:0; background:rgba(0,0,0,.35); z-index:55; }
  .iham{ display:block; }
  .iuname{ display:none; }
  .iout-link{ display:none; }
  .icontent{ padding:16px 14px; }
  .pg{ grid-template-columns:1fr; }
}


/* dashboard welcome + criterios */
.dwelcome{ display:flex; justify-content:space-between; align-items:flex-end; gap:16px; margin:2px 2px 18px; }
.dwelcome h1{ margin:0; font-size:25px; color:var(--ink); }
.critbar{ display:flex; flex-wrap:wrap; gap:10px; margin-bottom:22px; }
.crit{ background:#fff; border:1px solid #e7e9ee; border-radius:11px; padding:10px 15px; min-width:120px; }
.ck{ display:block; font-size:11px; color:#8a8f99; text-transform:uppercase; letter-spacing:.5px; }
.cv{ display:block; font-size:15px; font-weight:600; color:var(--ink); margin-top:2px; }
@media(max-width:680px){ .dwelcome{ flex-direction:column; align-items:stretch; } .crit{ flex:1; min-width:44%; } }


/* deal page + co-investment + flows */
.kpis2{ display:flex; gap:22px; border-top:1px solid var(--line); border-bottom:1px solid var(--line); padding:13px 0; margin:0 0 14px; }
.kpis2 .kl{ font-size:10px; text-transform:uppercase; letter-spacing:.05em; color:#8a8f99; }
.kpis2 .kv{ font-size:21px; font-weight:700; color:var(--ink); }
.kpis2 .kv.acc{ color:var(--mau); }
.stbadge{ display:inline-block; padding:4px 11px; border-radius:20px; font-size:12px; font-weight:600; margin-bottom:4px; }
.actrow{ display:flex; flex-wrap:wrap; gap:8px; margin-top:8px; }
.actrow form{ margin:0; }
.cocard{ border:1px solid #f0d6d2; background:linear-gradient(180deg,#fdf6f5,#fff); }
.cobar{ height:11px; background:#efe6e4; border-radius:8px; overflow:hidden; margin:12px 0 10px; }
.cofill{ height:100%; background:var(--mau); border-radius:8px; }
.costats{ display:flex; gap:22px; flex-wrap:wrap; margin-bottom:12px; }
.costats>div{ display:flex; flex-direction:column; }
.costats b{ font-size:18px; color:var(--ink); }
.costats span{ font-size:11.5px; color:#8a8f99; }
.coform{ display:flex; gap:12px; align-items:flex-end; flex-wrap:wrap; }
.coform label{ display:block; font-size:12px; color:#6b7280; margin-bottom:5px; }
.coform input{ padding:10px 12px; border:1px solid #dfe3ea; border-radius:9px; width:150px; }
.calc .cgrid{ display:grid; grid-template-columns:1fr 1fr; gap:10px 14px; }
.calc .cgrid label{ font-size:11px; color:#6b7280; display:block; margin-bottom:4px; }
.calc .cgrid input{ width:100%; padding:9px 11px; border:1px solid #dfe3ea; border-radius:8px; box-sizing:border-box; }
.cout{ margin-top:14px; display:grid; grid-template-columns:1fr 1fr; gap:10px; }
.cout>div{ background:#f7f8fa; border-radius:10px; padding:9px 12px; display:flex; flex-direction:column; }
.cout span{ font-size:10.5px; text-transform:uppercase; letter-spacing:.04em; color:#8a8f99; }
.cout b{ font-size:17px; color:var(--ink); }
.cout b.acc{ color:var(--mau); }
.ilst{ display:inline-block; margin-left:8px; padding:2px 9px; border-radius:12px; font-size:11px; font-weight:600; background:#fbeceb; color:var(--mau); }

/* mobile: collapse 2-col dossier grids */
@media(max-width:760px){
  .grid{ grid-template-columns:1fr !important; }
  .ficha-hero{ grid-template-columns:1fr !important; }
  .icontent .card,.icontent table{ overflow-x:auto; }
  .actrow .btn{ flex:1; text-align:center; }
}

/* ============================================================
   MAUMER · capa de disseny (v2) — coherència visual i llegibilitat
   ============================================================ */

/* 1. BOTONS: cap botó il·legible. Tots amb contrast garantit. */
button.btn, a.btn{ box-shadow:0 1px 2px rgba(29,35,42,.08); }
button.btn:disabled, a.btn.disabled{ opacity:.5; cursor:not-allowed; }
/* variants semàntiques amb la paleta Maumer */
.btn.ok, button.btn.ok{ background:#1f8a4c; color:#fff; }
.btn.ok:hover, button.btn.ok:hover{ background:#187038; }
.btn.warn, button.btn.warn{ background:#a5781f; color:#fff; }
.btn.warn:hover, button.btn.warn:hover{ background:#8a6318; }
.btn.danger, button.btn.danger{ background:#8a1f1f; color:#fff; }
.btn.danger:hover, button.btn.danger:hover{ background:#701818; }
/* el botó principal sempre en blanc sobre coral (arregla el text que no es llegia) */
a.btn:not(.sec):not(.ghost), button.btn:not(.sec):not(.ghost){ color:#fff !important; }

/* 2. BARRA DE PROGRÉS GLOBAL (accions llargues: dossier, verificacions, scraping) */
#mmProgress{ position:fixed; left:0; right:0; top:0; z-index:9999; display:none; }
#mmProgress .track{ height:4px; background:rgba(216,65,86,.15); }
#mmProgress .fill{ height:100%; width:0%; background:linear-gradient(90deg,var(--blue),var(--blue-l));
  transition:width .3s ease; }
#mmProgress .lbl{ position:absolute; top:8px; left:50%; transform:translateX(-50%);
  background:var(--ink); color:#fff; font-size:12.5px; padding:6px 14px; border-radius:20px;
  box-shadow:0 4px 14px rgba(29,35,42,.22); white-space:nowrap; }

/* 3. TAULES: llegibles i amb jerarquia */
table th{ font-size:11px; text-transform:uppercase; letter-spacing:.05em; color:var(--mut);
  font-weight:600; border-bottom:1px solid var(--line); padding:8px 9px; text-align:left; }
table td{ padding:9px; border-bottom:1px solid var(--line); vertical-align:middle; }
table tr:hover td{ background:#faf8f7; }

/* 4. XIPS / ETIQUETES coherents */
.chip{ display:inline-block; font-size:11px; border-radius:20px; padding:2px 9px;
  border:1px solid var(--line); background:#f5f2f0; color:var(--mut); }
.chip.ok{ background:#eaf6ee; border-color:#b6e0c2; color:#1f8a4c; font-weight:600; }
.chip.warn{ background:#fdf3e6; border-color:#eccfa0; color:#a5781f; font-weight:600; }
.chip.info{ background:#fdeef0; border-color:#f5c2ca; color:var(--blue); font-weight:600; }

/* 5. Flash més visible i amb color de marca */
.flash{ border-left:4px solid var(--blue); }

/* ===========================================================================
   MAUMER · CAPA DE COMPONENTS (v3)
   Botons, formularis, taules, chips i navegació unificats.
   =========================================================================== */

/* ---------- BOTONS ---------- */
.btn{
  display:inline-flex; align-items:center; justify-content:center; gap:6px;
  background:var(--mau); color:#fff !important; border:1px solid var(--mau);
  border-radius:var(--radius-pill); padding:9px 18px; font-size:var(--fs-md);
  font-weight:600; font-family:inherit; line-height:1.2; cursor:pointer;
  text-decoration:none !important; transition:background .15s, box-shadow .15s, transform .05s;
}
.btn:hover{ background:var(--mau-d); border-color:var(--mau-d); box-shadow:var(--shadow-sm); }
.btn:active{ transform:translateY(1px); }
.btn:focus-visible{ outline:2px solid var(--mau-l); outline-offset:2px; }
.btn[disabled],.btn.is-disabled{ opacity:.5; cursor:not-allowed; pointer-events:none; }

.btn.sec{ background:var(--card); color:var(--ink) !important; border-color:var(--line-2); }
.btn.sec:hover{ background:var(--surface-2); border-color:var(--mut); }
.btn.ghost{ background:transparent; color:var(--ink) !important; border-color:transparent; }
.btn.ghost:hover{ background:var(--surface-2); }
.btn.ok{ background:var(--ok); border-color:var(--ok); }
.btn.ok:hover{ background:#186f3d; border-color:#186f3d; }
.btn.warn{ background:var(--warn); border-color:var(--warn); }
.btn.danger{ background:var(--danger); border-color:var(--danger); }
.btn.danger:hover{ background:var(--danger-d); border-color:var(--danger-d); }
.btn.sm{ padding:5px 12px; font-size:var(--fs-sm); }
.btn.lg{ padding:12px 24px; font-size:var(--fs-lg); }
.btn.block{ width:100%; }

/* ---------- FORMULARIS ---------- */
input[type=text],input[type=number],input[type=email],input[type=password],
input[type=date],input[type=tel],input[type=url],select,textarea{
  font-family:inherit; font-size:var(--fs-md); color:var(--ink);
  background:var(--card); border:1px solid var(--line-2); border-radius:var(--radius-sm);
  padding:8px 11px; transition:border-color .15s, box-shadow .15s;
}
input:focus,select:focus,textarea:focus{
  outline:none; border-color:var(--mau); box-shadow:0 0 0 3px var(--mau-soft);
}
input::placeholder,textarea::placeholder{ color:var(--mut-2); }
label{ font-size:var(--fs-sm); color:var(--mut); }
.field{ display:flex; flex-direction:column; gap:var(--sp-1); }
.field > label{ font-weight:600; color:var(--ink-2); }
.hint{ font-size:var(--fs-xs); color:var(--mut-2); }

/* ---------- TAULES ---------- */
.wrap table{ width:100%; border-collapse:collapse; font-size:13.5px; }
.wrap th{
  text-align:left; padding:9px 10px; font-size:var(--fs-xs); font-weight:700;
  text-transform:uppercase; letter-spacing:.05em; color:var(--mut-2);
  border-bottom:1px solid var(--line-2); white-space:nowrap;
}
.wrap td{ padding:9px 10px; border-bottom:1px solid var(--line); vertical-align:middle; }
.wrap tbody tr:hover td, .wrap tr:hover td{ background:var(--surface-2); }
/* Columnes de xifres: sempre a la dreta i amb els dígits de la mateixa amplada,
   perquè les unitats quedin una sota l'altra i es puguin comparar d'un cop d'ull.
   La classe .r s'usava a les vistes però no estava definida enlloc: els números
   quedaven a l'esquerra i les capçaleres a la dreta. */
.wrap td.num,.wrap th.num,.wrap td.r,.wrap th.r{
  text-align:right; font-variant-numeric:tabular-nums; white-space:nowrap;
}

/* ---------- TARGETES ---------- */
.card{
  background:var(--card); border:1px solid var(--line); border-radius:var(--radius);
  padding:18px 20px; box-shadow:var(--shadow); margin-bottom:16px;
}
.card > h1:first-child,.card > h2:first-child,.card > h3:first-child{ margin-top:0; }

/* ---------- CHIPS / BADGES ---------- */
.chip,.pill,.badge{
  display:inline-flex; align-items:center; gap:4px;
  font-size:var(--fs-xs); font-weight:600; line-height:1.6;
  padding:2px 9px; border-radius:var(--radius-pill);
  background:var(--surface-2); color:var(--ink-2); border:1px solid var(--line-2);
}
.chip.ok,.pill.ok,.badge.ok{ background:var(--ok-bg); color:var(--ok); border-color:var(--ok-line); }
.chip.warn,.pill.warn,.badge.warn{ background:var(--warn-bg); color:var(--warn); border-color:var(--warn-line); }
.chip.danger,.pill.no,.badge.danger{ background:var(--danger-bg); color:var(--danger); border-color:var(--danger-line); }
.chip.info,.pill.info,.badge.info{ background:var(--info-bg); color:var(--info); border-color:var(--info-line); }
.chip.mau{ background:var(--mau-soft); color:var(--mau-d); border-color:#f6cdd3; }

/* ---------- TIPOGRAFIA ---------- */
h1{ font-size:26px; font-weight:700; letter-spacing:-.015em; line-height:1.25; }
h2{ font-size:19px; font-weight:700; letter-spacing:-.01em; }
h3{ font-size:15px; font-weight:700; }
.muted,.mut{ color:var(--mut); }
code{ background:var(--surface-2); border:1px solid var(--line); border-radius:5px;
      padding:1px 5px; font-size:.9em; font-family:ui-monospace,Menlo,Consolas,monospace; }

/* ---------- MISSATGES ---------- */
.alert{ border-radius:var(--radius-sm); padding:11px 14px; font-size:var(--fs-md);
        border:1px solid var(--line-2); background:var(--surface-2); margin:10px 0; }
.alert.ok{ background:var(--ok-bg); border-color:var(--ok-line); color:#125b32; }
.alert.warn{ background:var(--warn-bg); border-color:var(--warn-line); color:#7d5a12; }
.alert.danger{ background:var(--danger-bg); border-color:var(--danger-line); color:var(--danger-d); }
.alert.info{ background:var(--info-bg); border-color:var(--info-line); color:#1e4e80; }

/* ---------- ACCESSIBILITAT ---------- */
:focus-visible{ outline:2px solid var(--mau-l); outline-offset:2px; }
@media (prefers-reduced-motion:reduce){ *{ transition:none !important; animation:none !important; } }

/* ---------- RESPONSIVE ---------- */
@media (max-width:820px){
  .wrap{ padding-left:14px; padding-right:14px; }
  h1{ font-size:22px; }
  #act .layout{ flex-direction:column; }
  #act .side{ position:static; flex:1 1 auto; width:100%; }
  .card{ padding:14px; }
}

/* ---------- NAVEGACIÓ AGRUPADA (operador) ---------- */
nav{ position:relative; z-index:60; }
nav a.on{ background:rgba(255,255,255,.13); color:#fff; }
.navg{ position:relative; }
.navg-t{
  background:transparent; border:0; color:#cfc9c5; font-family:inherit; font-size:13.5px;
  padding:8px 11px; border-radius:8px; cursor:pointer; display:inline-flex; align-items:center; gap:5px;
  letter-spacing:.02em; transition:background .15s, color .15s;
}
.navg-t:hover{ background:rgba(255,255,255,.08); color:#fff; }
.navg.on > .navg-t{ background:rgba(255,255,255,.13); color:#fff; }
.navg-t .cv{ font-size:9px; opacity:.6; transition:transform .15s; }
.navg.open > .navg-t .cv{ transform:rotate(180deg); }
.navg-m{
  display:none; position:absolute; top:calc(100% + 6px); left:0; min-width:262px;
  background:var(--card); border:1px solid var(--line-2); border-radius:12px;
  box-shadow:var(--shadow-lg); padding:6px; z-index:70;
}
.navg.open > .navg-m{ display:block; }
.navg-m a{
  display:block; padding:8px 11px; border-radius:8px; color:var(--ink) !important;
  font-size:13.5px; line-height:1.3; text-decoration:none !important;
}
.navg-m a b{ display:block; font-weight:600; }
.navg-m a span{ display:block; font-size:11.5px; color:var(--mut-2); margin-top:1px; }
.navg-m a:hover{ background:var(--surface-2); }
.navg-m a.on{ background:var(--mau-soft); }
.navg-m a.on b{ color:var(--mau-d); }
@media (max-width:820px){
  .navg{ width:100%; }
  .navg-t{ width:100%; justify-content:space-between; }
  .navg-m{ position:static; width:100%; box-shadow:none; margin:4px 0 8px; }
}

/* ---------- CORRECCIONS DE CONTRAST (WCAG AA) ----------
   Text petit sobre fons clar necessita 4,5:1. Aquestes regles ajusten els tons
   només allà on el text és petit; els fons de marca no es toquen.            */
a{ color:var(--mau-ink); }
.chip.ok,.pill.ok,.badge.ok{ color:#1c7e45; }
.chip.warn,.pill.warn,.badge.warn{ color:#91691b; }
#act .chip.rb{ color:#1c7e45; }
#act .chip.rbm,#act .chip.offm,#act .chip.sub{ color:#91691b; }
#act .chip.off{ color:#1c7e45; }
/* sobre fons foscos el gris clar sí que contrasta: hi mantenim el to original */
#act .side label,#act .side h3,#act .found,.iside .isg{ color:var(--mut-2-soft); }

/* ---------- BARRA DE PROGRÉS GLOBAL ---------- */
#mmProgress .temps{ font-size:11px; color:var(--mut-2); margin-top:2px; font-variant-numeric:tabular-nums; }
