/* ==========================================================================
   Plataforma biblioteques · full d'estils
   - Tipografia: Source Sans 3 (lletra d'interfície molt llegible, amb xifres tabulars) per al text i
     Literata (lletra de llibre) per als títols. Totes dues s'inclouen a static/fonts (llicència OFL).
   - Color: el corporatiu de la Diputació de Barcelona (Pantone 201 C, #9D2235) amb la gamma anàloga, els
     grisos i el blau d'acompanyament del Manual de marca 2026. base.html els posa des de core/tema.py.
   - El vermell d'avís i el bordeus corporatiu s'assemblen: per això el focus i la informació neutra van en
     blau (--blau) i cap estat es comunica només amb el color (sempre amb icona o text).
   ========================================================================== */
@font-face { font-family:"Source Sans 3"; font-style:normal; font-weight:200 900; font-display:swap;
  src:url("fonts/source-sans-3-latin-wght-normal.woff2") format("woff2");
  unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD; }
@font-face { font-family:"Source Sans 3"; font-style:normal; font-weight:200 900; font-display:swap;
  src:url("fonts/source-sans-3-latin-ext-wght-normal.woff2") format("woff2");
  unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF; }
@font-face { font-family:"Literata"; font-style:normal; font-weight:200 900; font-display:swap;
  src:url("fonts/literata-latin-wght-normal.woff2") format("woff2");
  unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD; }
@font-face { font-family:"Literata"; font-style:normal; font-weight:200 900; font-display:swap;
  src:url("fonts/literata-latin-ext-wght-normal.woff2") format("woff2");
  unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF; }

:root {
  --lletra: "Source Sans 3", "Segoe UI", system-ui, -apple-system, Roboto, sans-serif;
  --lletra-titol: "Literata", Georgia, "Times New Roman", serif;
  --fons: #f3f5f6;
  --fons-2: #e3e8ea;
  --paper: #ffffff;
  --paper-2: #f8f9fa;
  --tinta: #1b1f23;
  --tinta-2: #4a545b;
  --linia: #d5dbde;
  --linia-forta: #7d898f;
  --accent: #9d2235;
  --accent-fort: #821431;
  --accent-suau: #fdf0f2;
  --accent-mig: #f5b3c1;
  --lateral: #5b1225;
  --lateral-2: #821431;
  --segell: #fcf0d6;
  --blau: #12314a;
  --blau-suau: #dce2e4;
  --blau-mig: #699cbd;
  --vermell: #a3231c;
  --vermell-suau: #fbe9e7;
  --taronja: #944600;
  --taronja-suau: #fdeedd;
  --groc: #6f5800;
  --groc-suau: #fbf3cf;
  --verd: #1e6b2e;
  --verd-suau: #e3f3e6;
  --radi: 10px;
  --radi-petit: 7px;
  --ample-menu: 15.5rem;
  font-size: 100%;
}
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; }
body {
  margin: 0; background: var(--fons); color: var(--tinta);
  font-family: var(--lletra); font-size: 1.04rem; line-height: 1.5;
  font-variant-numeric: lining-nums;
}
a { color: var(--accent); text-decoration-thickness: 1px; text-underline-offset: .15em; }
a:hover { color: var(--accent-fort); text-decoration-thickness: 2px; }
h1, h2 { font-family: var(--lletra-titol); font-weight: 600; letter-spacing: -.01em; line-height: 1.2; text-wrap: balance; }
h1 { font-size: 1.7rem; margin: 0 0 .4rem; }
h2 { font-size: 1.2rem; margin: 0 0 .75rem; }
h3 { font-size: 1rem; font-weight: 700; margin: 0 0 .5rem; }
.subtle, .petit { color: var(--tinta-2); }
.petit { font-size: .86rem; }
code, kbd { font-family: ui-monospace, "Cascadia Mono", Consolas, monospace; font-size: .9em; }
:focus-visible { outline: 3px solid var(--blau); outline-offset: 2px; border-radius: 4px; }
main:focus { outline: none; }
::selection { background: var(--blau-suau); }
.nomes-lector { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
.salta { position: absolute; left: .75rem; top: -4rem; z-index: 100; background: var(--paper); color: var(--tinta); padding: .6rem 1rem; border-radius: var(--radi-petit); border: 2px solid var(--accent); font-weight: 700; }
.salta:focus { top: .75rem; }

/* Icones (joc propi, a templates/_icones.html) */
.ic { width: 1.2em; height: 1.2em; flex: none; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; vertical-align: -.22em; }
.ic.gran { width: 1.6em; height: 1.6em; }

/* Estructura: menú lateral + cos */
body.amb-menu { display: grid; grid-template-columns: var(--ample-menu) minmax(0, 1fr); min-height: 100vh; }
.menu-plegat body.amb-menu { --ample-menu: 4.4rem; }
.cos { min-width: 0; }
main { max-width: 1240px; margin: 0 auto; padding: 1.4rem 1.75rem 3.5rem; }
.sense-menu main { padding-top: 2rem; }

.lateral { position: sticky; top: 0; height: 100vh; overflow-y: auto; background: var(--lateral); color: #fff;
  display: flex; flex-direction: column; gap: .25rem; padding: .8rem .7rem .6rem; }
.lateral :focus-visible { outline-color: #fff; }
.lateral .casa { display: flex; align-items: center; gap: .65rem; padding: .2rem .5rem .55rem; color: #fff; text-decoration: none; }
.lateral .casa .ic { width: 1.9rem; height: 1.9rem; stroke-width: 1.6; color: var(--segell); }
.lateral .casa strong { display: block; font-family: var(--lletra-titol); font-weight: 600; font-size: 1.05rem; line-height: 1.2; }
.lateral .casa small { display: block; font-size: .78rem; color: rgba(255,255,255,.78); margin-top: .1rem; }
.lateral nav { flex: 1; }
.lateral ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 2px; }
.lateral ul.final { margin-top: .7rem; padding-top: .5rem; border-top: 1px solid rgba(255,255,255,.18); }
.lateral .grup { margin: .75rem 0 .2rem; padding: 0 .65rem; font-size: .8rem; color: rgba(255,255,255,.76); }
.lateral nav a { display: flex; align-items: center; gap: .7rem; padding: .4rem .65rem; border-radius: var(--radi-petit);
  color: rgba(255,255,255,.92); text-decoration: none; position: relative; }
.lateral nav a .ic { width: 1.3rem; height: 1.3rem; }
.lateral nav a:hover { background: var(--lateral-2); color: #fff; }
/* La secció activa es marca com un teixell: etiqueta blanca amb la franja del color corporatiu */
.lateral nav a[aria-current] { background: var(--paper); color: var(--lateral); font-weight: 700; box-shadow: inset 5px 0 var(--accent); }
.lateral .versio { margin: .4rem 0 0; padding: 0 .65rem; font-size: .78rem; color: rgba(255,255,255,.76); }
.lateral .plega { margin-top: .2rem; background: transparent; border: 0; color: rgba(255,255,255,.82); justify-content: flex-start; gap: .7rem; padding: .5rem .65rem; font-weight: 400; }
.lateral .plega:hover { background: var(--lateral-2); color: #fff; }
.lateral .plega .ic { width: 1.3rem; height: 1.3rem; }
.menu-plegat .lateral .et { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
.menu-plegat .lateral .casa, .menu-plegat .lateral nav a, .menu-plegat .lateral .plega { justify-content: center; padding-left: 0; padding-right: 0; }
.menu-plegat .lateral .plega .ic { transform: scaleX(-1); }
.menu-plegat .lateral nav ul + ul { margin-top: .6rem; padding-top: .6rem; border-top: 1px solid rgba(255,255,255,.18); }
/* En pantalles baixes (portàtils), el menú es compacta perquè calgui desplaçar-lo el mínim */
@media (max-height: 920px) and (min-width: 901px) {
  .lateral { gap: .1rem; padding-top: .55rem; }
  .lateral .casa { padding-bottom: .3rem; }
  .lateral nav a { padding-top: .24rem; padding-bottom: .24rem; }
  .lateral .grup { margin: .45rem 0 .05rem; }
  .lateral ul.final { margin-top: .4rem; padding-top: .35rem; }
  .lateral .plega { padding-top: .3rem; padding-bottom: .3rem; }
}
.vel { position: fixed; inset: 0; background: rgba(20, 24, 28, .5); z-index: 29; }

.superior { position: sticky; top: 0; z-index: 20; display: flex; align-items: center; gap: 1rem;
  padding: .6rem 1.75rem; background: var(--fons); border-bottom: 1px solid var(--linia); }
.superior .dreta { margin-left: auto; display: flex; gap: .6rem; align-items: center; }
.superior form { margin: 0; }
.superior .qui { display: inline-flex; align-items: center; gap: .35rem; color: var(--tinta-2); font-size: .9rem; white-space: nowrap; text-decoration: none; }
.boto-menu { display: none; }
.cerca-global { position: relative; flex: 1 1 18rem; max-width: 30rem; display: flex; align-items: center; margin: 0; }
.cerca-global .ic { position: absolute; left: .7rem; color: var(--tinta-2); pointer-events: none; }
.cerca-global input { width: 100%; padding-left: 2.3rem; padding-right: 2.2rem; border-radius: 999px; background: var(--paper); }
.cerca-global kbd { position: absolute; right: .7rem; pointer-events: none; }
.cerca-global input:focus + kbd, .cerca-global input:not(:placeholder-shown) + kbd { display: none; }
kbd { border: 1px solid var(--linia-forta); border-bottom-width: 2px; border-radius: 4px; padding: 0 .35rem; background: var(--paper); color: var(--tinta-2); }

@media (max-width: 900px) {
  body.amb-menu { display: block; }
  .lateral { position: fixed; left: 0; top: 0; bottom: 0; width: 17rem; max-width: 86vw; z-index: 30; transform: translateX(-102%); visibility: hidden; }
  .lateral.obert { transform: none; visibility: visible; box-shadow: 0 0 2rem rgba(0,0,0,.35); }
  .lateral .plega { display: none; }
  .menu-plegat .lateral .et { position: static; width: auto; height: auto; clip-path: none; }
  .menu-plegat .lateral .casa, .menu-plegat .lateral nav a { justify-content: flex-start; padding-left: .65rem; padding-right: .65rem; }
  .boto-menu { display: inline-flex; padding: .45rem; }
  .superior { padding: .5rem .9rem; gap: .5rem; }
  .superior .qui span, .superior .discret span, .superior .boto-ajuda span { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); }
  .superior .boto-ajuda { padding: .42rem .55rem; }
  .cerca-global kbd { display: none; }
  main { padding: 1rem .9rem 3rem; }
}
@media (prefers-reduced-motion: no-preference) {
  @media (max-width: 900px) { .lateral { transition: transform .18s ease-out, visibility .18s; } }
}

/* Missatges */
.missatges { list-style: none; padding: 0; margin: 0 0 1rem; display: grid; gap: .4rem; }
.missatges li { display: flex; gap: .6rem; align-items: flex-start; padding: .65rem .85rem; border-radius: var(--radi); background: #eef2f4; border: 1px solid #b9c6cd; }
.missatges li .ic { margin-top: .15rem; color: var(--blau); }
.missatges li.error { background: var(--vermell-suau); border-color: #eeb9b3; } .missatges li.error .ic { color: var(--vermell); }
.missatges li.warning { background: var(--groc-suau); border-color: #e4d27f; } .missatges li.warning .ic { color: var(--groc); }
.missatges li.success { background: var(--verd-suau); border-color: #a9d7b2; } .missatges li.success .ic { color: var(--verd); }

/* Blocs */
.graella { display: grid; gap: 1rem; grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); }
.dues-col { display: grid; gap: 1rem; grid-template-columns: minmax(0, 1fr) 320px; align-items: start; }
@media (max-width: 1080px) { .dues-col { grid-template-columns: minmax(0, 1fr); } }
.targeta { background: var(--paper); border: 1px solid var(--linia); border-radius: var(--radi); padding: 1.1rem 1.2rem; }
.targeta.urgent { border-left: 5px solid var(--taronja); }
.xifra { font-family: var(--lletra-titol); font-size: 2rem; font-weight: 600; line-height: 1.1; font-variant-numeric: lining-nums tabular-nums; }
.kpis { display: flex; gap: .75rem; flex-wrap: wrap; margin: .6rem 0 1rem; }
.kpis > div { min-width: 8.5rem; flex: 0 1 auto; padding: .7rem .9rem; background: var(--paper); border: 1px solid var(--linia); border-radius: var(--radi); }
.targeta .kpis > div { background: var(--paper-2); }
.kpis .etiqueta { font-size: .84rem; color: var(--tinta-2); max-width: 16rem; }

.barra-progres { height: 10px; background: var(--fons-2); border-radius: 5px; overflow: hidden; margin: .4rem 0; position: relative; }
.barra-progres span { display: block; height: 100%; background: var(--blau); }
.barra-progres .marca-llindar { position: absolute; top: -3px; bottom: -3px; width: 2px; background: var(--tinta); }
.ok { color: var(--verd); }
.alerta { color: var(--taronja); }
.greu { color: var(--vermell); }

/* Xips */
.xip { display: inline-flex; align-items: center; gap: .25rem; font-size: .8rem; line-height: 1.5; padding: .05rem .55rem; border-radius: 999px; background: var(--fons-2); color: var(--tinta); white-space: nowrap; text-decoration: none; }
.xip.vermell { background: var(--vermell-suau); color: var(--vermell); }
.xip.taronja { background: var(--taronja-suau); color: var(--taronja); }
.xip.groc { background: var(--groc-suau); color: var(--groc); }
.xip.verd { background: var(--verd-suau); color: var(--verd); }
.xip.blau { background: var(--blau-suau); color: var(--blau); }
a.xip:hover { box-shadow: inset 0 0 0 1px currentColor; }
.xip.triat { background: var(--blau); color: #fff; font-weight: 600; }

/* Pestanyes */
.pestanyes { display: flex; gap: .2rem; flex-wrap: wrap; border-bottom: 1px solid var(--linia); margin: .25rem 0 1rem; }
.pestanyes a { padding: .55rem .8rem; text-decoration: none; color: var(--tinta-2); border-bottom: 3px solid transparent; margin-bottom: -1px; border-radius: var(--radi-petit) var(--radi-petit) 0 0; }
.pestanyes a:hover { color: var(--tinta); background: var(--fons-2); }
.pestanyes a.actiu { color: var(--tinta); border-bottom-color: var(--accent); font-weight: 700; }
.pestanyes .comptador { font-size: .78rem; background: var(--fons-2); border-radius: 999px; padding: 0 .45rem; margin-left: .2rem; color: var(--tinta); }
.pestanyes .comptador.calent { background: var(--taronja-suau); color: var(--taronja); }

/* Taula de treball */
.taula { width: 100%; border-collapse: separate; border-spacing: 0; background: var(--paper); border: 1px solid var(--linia); border-radius: var(--radi); overflow: hidden; font-variant-numeric: lining-nums tabular-nums; }
.taula th, .taula td { padding: .6rem .75rem; border-bottom: 1px solid var(--linia); vertical-align: top; text-align: left; }
.taula tbody tr:last-child td { border-bottom: 0; }
.taula th { font-size: .84rem; color: var(--tinta-2); font-weight: 700; background: var(--fons-2); }
.taula tbody tr:hover td { background: var(--paper-2); }
.taula td.num, .taula th.num { text-align: right; white-space: nowrap; }
.taula tr.fila-vermell td:first-child { box-shadow: inset 5px 0 var(--vermell); }
.taula tr.fila-taronja td:first-child { box-shadow: inset 5px 0 var(--taronja); }
.taula tr.fila-groc td:first-child { box-shadow: inset 5px 0 #c9a400; }
.taula tr.inactiva { color: var(--tinta-2); }
.titol-doc { font-weight: 700; }
.coincidencia { margin-top: .4rem; padding: .45rem .6rem; border-radius: var(--radi-petit); font-size: .88rem; display: flex; gap: .5rem; align-items: center; flex-wrap: wrap; }
.coincidencia.fons { background: var(--vermell-suau); }
.coincidencia.en_curs { background: var(--taronja-suau); }
.coincidencia.possible_fons, .coincidencia.possible_curs { background: var(--groc-suau); }
.coincidencia.resolta { background: var(--fons-2); color: var(--tinta-2); }
.coincidencia form { display: inline; }

/* Botons */
button, .boto {
  font: inherit; font-size: .9rem; font-weight: 600; line-height: 1.3; padding: .42rem .8rem; min-height: 2.2rem;
  border-radius: var(--radi-petit); border: 1px solid var(--linia-forta); background: var(--paper); color: var(--tinta);
  cursor: pointer; text-decoration: none; display: inline-flex; align-items: center; justify-content: center; gap: .4rem;
}
button:hover, .boto:hover { border-color: var(--tinta); background: var(--paper-2); color: var(--tinta); text-decoration: none; }
button.primari, .boto.primari { background: var(--accent); border-color: var(--accent); color: #fff; }
button.primari:hover, .boto.primari:hover { background: var(--accent-fort); border-color: var(--accent-fort); color: #fff; }
button.perill, .boto.perill { color: var(--vermell); border-color: #d9a39d; }
button.perill:hover { background: var(--vermell-suau); border-color: var(--vermell); color: var(--vermell); }
button.discret { border-color: transparent; background: transparent; color: var(--tinta-2); font-weight: 400; }
button.discret:hover { background: var(--fons-2); color: var(--tinta); }
button:disabled { opacity: .55; cursor: not-allowed; }
summary.boto { list-style: none; } summary.boto::-webkit-details-marker { display: none; }
details[open] > summary.boto:not(.primari) { background: var(--fons-2); }
.accions { display: flex; gap: .45rem; flex-wrap: wrap; align-items: center; }
select.llengua { font-size: .82rem; padding: .15rem .3rem; min-height: 0; }
input[type=number].unitats { width: 3.6rem; padding: .25rem .35rem; min-height: 0; }

/* Formularis */
:where(input:not([type=checkbox]):not([type=radio]):not([type=file]):not([type=hidden]):not([type=color]):not([type=range]), select, textarea) {
  font: inherit; color: var(--tinta); background: var(--paper); border: 1px solid var(--linia-forta);
  border-radius: var(--radi-petit); padding: .45rem .6rem; min-height: 2.2rem; max-width: 100%;
}
:where(input, select, textarea):focus-visible { outline: 3px solid var(--blau); outline-offset: 1px; border-color: var(--blau); }
:where(input[type=checkbox], input[type=radio]) { width: 1.1rem; height: 1.1rem; accent-color: var(--accent); }
::placeholder { color: #5f6b72; opacity: 1; }
form.cercador { display: flex; gap: .5rem; margin-bottom: .75rem; }
form.cercador input[type=search] { flex: 1; }
.formulari p { margin: 0 0 1rem; }
.formulari label { display: block; font-weight: 700; margin-bottom: .25rem; }
.formulari input, .formulari select { min-width: 280px; max-width: 100%; }
.formulari input[type=checkbox], .formulari input[type=radio] { min-width: 0; }
.formulari .helptext { display: block; color: var(--tinta-2); font-size: .84rem; margin-top: .2rem; }
.errorlist { color: var(--vermell); padding-left: 1rem; margin: .25rem 0; font-weight: 600; }
.buit { padding: 2rem; text-align: center; color: var(--tinta-2); }
.login { max-width: 380px; margin: 3.5rem auto; padding: 1.75rem; }
.login .ic.gran { width: 2.6rem; height: 2.6rem; color: var(--accent); stroke-width: 1.5; }
.login h1 { margin: .5rem 0 .2rem; }
.login input { width: 100%; }
.login button { width: 100%; margin-top: .25rem; }

/* Pertinència */
.nota { display:inline-flex; flex-direction:column; align-items:center; min-width:64px; padding:.3rem .4rem; border-radius:8px; background:var(--linia); }
.nota strong { font-size:1.15rem; line-height:1.1; }
.nota span { font-size:.7rem; text-align:center; }
.nota.n4 { background: var(--verd-suau); color: var(--verd); }
.nota.n3 { background: var(--blau-suau); color: var(--blau); }
.nota.n2 { background: var(--groc-suau); color: var(--groc); }
.nota.n1 { background: var(--vermell-suau); color: var(--vermell); }
.nota .ia { font-size:.65rem; opacity:.85; }
details.pertinencia { margin-top:.4rem; font-size:.85rem; }
details.pertinencia summary { cursor:pointer; color: var(--tinta-2); }
details.pertinencia ul { margin:.3rem 0; padding-left:1.1rem; }
.efecte-pos { color: var(--verd); } .efecte-neg { color: var(--vermell); }

/* Agenda */
.subnav { display:flex; gap:.4rem; flex-wrap:wrap; margin-bottom:1rem; }
.mesnav { display:flex; align-items:center; gap:.6rem; }
.mesnav h1 { margin:0; text-transform:capitalize; }
.calendari { width:100%; border-collapse:collapse; table-layout:fixed; background:var(--paper); border:1px solid var(--linia); }
.calendari th { font-size:.75rem; color:var(--tinta-2); padding:.35rem; border-bottom:1px solid var(--linia); }
.calendari td { vertical-align:top; height:112px; border:1px solid var(--linia); padding:.25rem; font-size:.78rem; }
.calendari td.fora { background:var(--fons-2); color:var(--tinta-2); }
.calendari td.avui { box-shadow: inset 0 0 0 2px var(--accent); }
.calendari td.festiu { background: repeating-linear-gradient(45deg,var(--fons),var(--fons) 6px,var(--fons-2) 6px,var(--fons-2) 12px); }
.calendari .num { font-weight:600; display:flex; justify-content:space-between; }
.calendari .num a { text-decoration:none; color:var(--tinta-2); font-weight:700; display:inline-flex; align-items:center; justify-content:center; min-width:1.6rem; min-height:1.6rem; border-radius:50%; }
.calendari .num a:hover { background:var(--blau-suau); color:var(--blau); }
.chip { display:block; color:#fff; border-radius:4px; padding:.1rem .3rem; margin-top:.15rem; text-decoration:none;
        white-space:nowrap; overflow:hidden; text-overflow:ellipsis; font-size:.74rem; }
.chip.pendent { outline:2px dashed var(--vermell); outline-offset:-2px; }
.chip.anullada { opacity:.45; text-decoration:line-through; }
.chip.expo { background:transparent !important; color:var(--vermell); border:1px solid currentColor; }
.llegenda span { display:inline-flex; align-items:center; gap:.25rem; margin-right:.6rem; font-size:.78rem; }
.llegenda i { width:10px; height:10px; border-radius:2px; display:inline-block; }
@media (max-width: 760px) { .calendari td { height:auto; min-height:60px; } .chip { white-space:normal; } }

/* Horari tipus aplicació */
.dies-setmana { display:grid; grid-template-columns:repeat(7,1fr); gap:.4rem; }
.dia-h { border:1px solid var(--linia); border-radius:8px; padding:.4rem; text-align:center; background:var(--paper-2); }
.dia-h input { width:100%; text-align:center; font-weight:700; color:var(--vermell); border:0; background:transparent; font-size:1rem; }
.cal-horari { display:grid; grid-template-columns:repeat(7,1fr); gap:.4rem; }
.cal-horari button { width:100%; min-height:62px; border-radius:8px; border:1px solid #9be3b0; background:#effbf3; color:var(--tinta); }
.cal-horari button.festiu { background:#fbe9e7; border-color:#f1b0a8; }
.cal-horari button.tancat { background:#fff1e0; border-color:#f3c48d; }
.cal-horari button.zero { background:var(--fons); border-color:var(--linia); color:var(--tinta-2); }
.cal-horari b { display:block; font-size:1rem; }
.cal-horari small { font-size:.72rem; }
.resum-cde { border:2px solid #e8c774; background:#fdf8ec; border-radius:12px; padding:1rem; }
.resum-cde .fila { display:flex; justify-content:space-between; align-items:center; margin:.35rem 0; }
.resum-cde .caixa { border:1px solid #6b6b3a; background:#eef3d0; padding:.2rem .6rem; font-weight:700; font-family:monospace; font-size:1.2rem; }

/* Tancament CDE */
.pantalla-cde { background:var(--paper); border:1px solid var(--linia); border-radius:var(--radi); margin-bottom:1rem; }
.pantalla-cde h2 { background:#8a1538; color:#fff; margin:0; padding:.45rem .8rem; font-size:.95rem; border-radius:var(--radi) var(--radi) 0 0; }
.pantalla-cde table { width:100%; border-collapse:collapse; }
.pantalla-cde td, .pantalla-cde th { padding:.3rem .6rem; border-bottom:1px solid var(--linia); font-size:.85rem; }
.pantalla-cde th { font-size:.72rem; color:var(--tinta-2); text-align:left; }
.pantalla-cde td.valor { font-family:monospace; font-size:1rem; text-align:right; width:90px; }
.pantalla-cde td.valor input { width:80px; text-align:right; font-family:monospace; background:#fdf8d6; border:1px solid #8a8a4a; padding:.15rem; }
.pantalla-cde tr.zero td.valor { color:#aaa; }
.pantalla-cde tr.difereix { background:#fff4e5; }
.codi { font-family:monospace; font-size:.7rem; color:var(--tinta-2); }

/* Memòria i pla */
.xifres-portada { display:grid; gap:.75rem; grid-template-columns:repeat(auto-fill, minmax(150px, 1fr)); margin-top:.75rem; }
.xifres-portada .targeta { padding:.75rem; }
.grafic { width:100%; height:auto; display:block; }
.crono { display:inline-block; width:16px; height:10px; margin-right:3px; border-radius:2px; background:var(--linia); }
.crono.ple { background:var(--blau); }
.formulari textarea { width:100%; padding:.4rem; font:inherit; }

/* Marques de dies especials */
.marca { display:inline-flex; gap:.3rem; align-items:center; padding:.25rem .6rem; border-radius:999px; border:1px solid var(--linia); font-size:.85rem; cursor:pointer; background:var(--paper); }
.marca input { margin:0; }
.marca.triada { font-weight:700; box-shadow:0 0 0 2px var(--blau); }
.marca-mini { display:inline-block; width:.7rem; height:.7rem; border-radius:3px; margin:0 .2rem 0 .1rem; vertical-align:-1px; }
.m-festiu { background:#fbe9e7 !important; border-color:#f1b0a8 !important; }
.m-local { background:#efe6fb !important; border-color:#c7b1ee !important; }
.m-pont { background:#e6f0f7 !important; border-color:#a9c8e0 !important; }
.m-tancat { background:#fff1e0 !important; border-color:#f3c48d !important; }
.m-especial { background:#fdf6d8 !important; border-color:#e6d27a !important; }
.cal-horari small.motiu { display:block; color:var(--tinta-2); font-size:.65rem; }
.periode { display:inline-block; padding:.05rem .45rem; border-radius:6px; border:1px solid var(--linia); text-decoration:none; margin:.1rem 0; }
.p-habitual { background:#f2f2ef; } .p-estiu { background:#fff6d6; } .p-nadal { background:#e3f2ea; } .p-setmana_santa { background:#efe6fb; } .p-especial { background:#e6f0f7; }
.cal-horari button.dins-estiu { box-shadow: inset 0 -4px #f2cf55; }
.cal-horari button.dins-nadal { box-shadow: inset 0 -4px #5bb48a; }
.cal-horari button.dins-setmana_santa { box-shadow: inset 0 -4px #a88ad9; }
.cal-horari button.dins-especial { box-shadow: inset 0 -4px #7aa7c9; }

/* Avui */
.llista-tasques { list-style:none; margin:0; padding:0; display:grid; gap:.3rem; }
.llista-tasques li { display:grid; grid-template-columns:auto minmax(0,1fr) auto; gap:.6rem; align-items:center; padding:.4rem .5rem; border:1px solid var(--linia); border-radius:8px; background:var(--paper); }
.llista-tasques li.feta .text { text-decoration:line-through; color:var(--tinta-2); }
.llista-tasques li.suggerit { border-style:dashed; background:var(--paper-2); }
.llista-tasques form { margin:0; }
.casella { width:1.5rem; height:1.5rem; padding:0; border-radius:6px; border:2px solid var(--tinta-2); background:var(--paper); line-height:1; }
li.feta .casella { background:var(--verd); border-color:var(--verd); color:#fff; }
button.treu { border:0; background:transparent; color:var(--tinta-2); font-size:1.1rem; padding:0 .3rem; }
.taula.terminis td { vertical-align:middle; }
.taula.terminis tr.t-vencut td:first-child { box-shadow: inset 4px 0 var(--vermell); color:var(--vermell); }
.taula.terminis tr.t-urgent td:first-child { box-shadow: inset 4px 0 var(--taronja); color:var(--taronja); }
.taula.terminis tr.t-proper td:first-child { box-shadow: inset 4px 0 #d9b300; }
.taula.terminis tr.t-fet { color:var(--tinta-2); }

.avui-cols { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:1rem; margin-top:.75rem; align-items:start; }
.llista-tasques .text { overflow-wrap:anywhere; }
@media (max-width: 760px) {
  .avui-cols { grid-template-columns:minmax(0,1fr); }
  .taula.terminis td { padding:.45rem .35rem; }
  .taula.terminis td.num { white-space:nowrap; }
}

/* Procediments */
.cap-pagina { display:flex; justify-content:space-between; align-items:center; gap:.75rem; flex-wrap:wrap; }
.cercador-proc { display:flex; gap:.5rem; flex-wrap:wrap; align-items:center; margin:.5rem 0 1rem; }
.cercador-proc input[type=search] { flex:1 1 260px; }
.grup-proc { margin:1.4rem 0 .5rem; font-family:var(--lletra); font-size:1rem; font-weight:700; color:var(--tinta); display:flex; align-items:center; gap:.4rem; }
.llista-proc { list-style:none; margin:0; padding:0; display:grid; gap:.35rem; }
.llista-proc li { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:.15rem .75rem; padding:.6rem .8rem; background:var(--paper); border:1px solid var(--linia); border-radius:8px; }
.llista-proc li.esborrany { border-style:dashed; }
.llista-proc .titol { font-weight:600; }
.llista-proc .resum { grid-column:1 / -1; font-size:.85rem; color:var(--tinta-2); }
.xips { display:flex; gap:.3rem; flex-wrap:wrap; align-items:center; }
.fitxa-proc { max-width:820px; padding:1.25rem 1.5rem; }
.fitxa-proc h2 { font-size:1rem; margin:1.2rem 0 .4rem; }
.fitxa-proc .quan { margin:.9rem 0; }
.fitxa-proc .passos { margin:1rem 0; padding:0; list-style:none; counter-reset:pas; display:grid; gap:.55rem; }
.fitxa-proc .passos > li { counter-increment:pas; position:relative; padding-left:2.6rem; min-height:1.9rem; font-size:1.05rem; line-height:1.45; }
.fitxa-proc .passos > li::before { content:counter(pas); position:absolute; left:0; top:0; width:1.9rem; height:1.9rem; border-radius:50%; background:var(--accent); color:#fff; font-weight:700; font-size:.95rem; display:flex; align-items:center; justify-content:center; }
.fitxa-proc .passos ul { margin:.25rem 0 0; padding-left:1.1rem; font-size:.95rem; color:var(--tinta-2); }
.fitxa-proc .avisar { padding:.6rem .8rem; border-radius:8px; background:var(--taronja-suau); }
.fitxa-proc .documents { margin:0; padding-left:1.1rem; display:grid; gap:.25rem; }
.fitxa-proc .documents code { overflow-wrap:anywhere; }
.fitxa-proc footer { margin-top:1.2rem; padding-top:.6rem; border-top:1px solid var(--linia); }
.form-proc { max-width:820px; }
.form-proc input[type=text], .form-proc select { width:100%; }
.form-proc input[type=number] { min-width:0; width:6rem; }
.form-proc input[type=checkbox] { min-width:0; width:auto; }
.form-proc .errorlist { color:var(--vermell); list-style:none; padding:0; margin:.2rem 0 0; font-size:.85rem; }
.nomes-imprimir { display:none; }
/* Incidències */
.taula.incidencies td { vertical-align:middle; }
.taula td.buit { color:var(--tinta-2); text-align:center; padding:1.2rem; }
.fitxa-inc h2 { font-size:1rem; margin:1.2rem 0 .4rem; }
.dades-inc { display:grid; grid-template-columns:auto minmax(0,1fr); gap:.3rem .9rem; margin:1rem 0 0; }
.dades-inc dt { color:var(--tinta-2); font-size:.85rem; }
.dades-inc dd { margin:0; }
.seguiment { list-style:none; margin:0; padding:0; display:grid; gap:.3rem; }
.seguiment li { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:.1rem .5rem; padding:.4rem .6rem; border-left:3px solid var(--linia); background:var(--paper-2); border-radius:0 6px 6px 0; }
.seguiment li > span:first-child { grid-column:1 / -1; }
.seguiment form { margin:0; }
.fitxa-inc .accions input[type=text] { flex:1; padding:.4rem; min-width:0; }
.fitxa-inc .accions input[type=date] { padding:.35rem; }
.fotos-inc { display:flex; gap:.6rem; flex-wrap:wrap; margin-bottom:.6rem; }
.fotos-inc figure { margin:0; position:relative; }
.fotos-inc img { display:block; width:150px; height:110px; object-fit:cover; border-radius:6px; border:1px solid var(--linia); }
.fotos-inc form { position:absolute; top:2px; right:2px; margin:0; }
.fotos-inc .treu { background:var(--paper); }
.formulari.estret input, .formulari.estret select, .formulari.estret textarea { min-width:0; width:100%; }
.camp-opcions > div { display:flex; gap:1.2rem; flex-wrap:wrap; }
.camp-opcions > div label { font-weight:400; display:flex; gap:.35rem; align-items:center; }
.camp-opcions input[type=radio] { min-width:0; width:auto; }
@media (max-width: 760px) { .no-mobil { display:none; } }

/* Ajustos dels blocs anteriors al nou sistema */
.cal-horari button { display: block; font-weight: 400; }
.dia-h input { min-height: 0; padding: .1rem; border: 0; }
.pantalla-cde td.valor input { min-height: 0; border-radius: 3px; }
.pantalla-cde h2 { font-family: var(--lletra); font-weight: 700; letter-spacing: 0; }
.subnav { display: flex; gap: .45rem; flex-wrap: wrap; margin-bottom: 1rem; }
.mesnav h1 { margin: 0; }
.casella { min-height: 0; width: 1.6rem; height: 1.6rem; border-radius: 6px; border: 2px solid var(--tinta-2); color: #fff; }
.casella:hover { border-color: var(--blau); background: var(--blau-suau); }
li.feta .casella { background: var(--verd); border-color: var(--verd); color: #fff; }
button.treu { min-height: 0; width: 1.75rem; height: 1.75rem; padding: 0; border: 0; background: transparent; color: var(--tinta-2); font-size: 1.15rem; font-weight: 400; border-radius: 50%; }
button.treu:hover { background: var(--vermell-suau); color: var(--vermell); }
button.petit, .boto.petit { font-size: .82rem; padding: .2rem .55rem; min-height: 1.75rem; }
.llista-tasques li { padding: .5rem .6rem; border-radius: var(--radi-petit); }
.llista-proc li { border-radius: var(--radi); padding: .7rem .9rem; }
.llista-proc li:hover { border-color: var(--linia-forta); }
.llista-proc .titol { font-weight: 700; }
.fitxa-proc h2, .fitxa-inc h2 { font-family: var(--lletra); font-weight: 700; letter-spacing: 0; display: flex; align-items: center; gap: .4rem; }
.cap-pagina { margin-bottom: .5rem; }
.cap-pagina h1 { margin: 0; }
.cercador-proc input[type=search] { min-height: 2.5rem; }
.comptador-grup { font-size: .78rem; font-weight: 400; background: var(--fons-2); border-radius: 999px; padding: 0 .5rem; color: var(--tinta); }
.titol-avui small { display: block; font-family: var(--lletra); font-size: .95rem; font-weight: 400; letter-spacing: 0; color: var(--tinta-2); margin-top: .15rem; }
.cap-bloc { display: flex; align-items: center; gap: .5rem; margin: 0 0 .75rem; }
.cap-bloc .ic { color: var(--accent); width: 1.35rem; height: 1.35rem; }
.cap-bloc h2 { margin: 0; }
.cap-bloc .fi { margin-left: auto; }
.ambit-ic { display: inline-flex; width: 2rem; height: 2rem; border-radius: 50%; align-items: center; justify-content: center; background: var(--accent-suau); color: var(--accent-fort); flex: none; }
.taula.terminis tr.t-vencut .ambit-ic { background: var(--vermell-suau); color: var(--vermell); }
.taula.terminis tr.t-urgent .ambit-ic { background: var(--taronja-suau); color: var(--taronja); }
.taula.terminis tr.t-proper td:first-child { box-shadow: inset 5px 0 #c9a400; }
.taula.terminis tr.t-vencut td:first-child, .taula.terminis tr.t-urgent td:first-child { box-shadow: none; }
.taula.terminis tr.t-vencut td:first-child { box-shadow: inset 5px 0 var(--vermell); }
.taula.terminis tr.t-urgent td:first-child { box-shadow: inset 5px 0 var(--taronja); }
.buit-illustrat { text-align: center; padding: 2rem 1rem; color: var(--tinta-2); }
.buit-illustrat .ic { width: 2.6rem; height: 2.6rem; stroke-width: 1.4; color: var(--accent-mig); display: block; margin: 0 auto .5rem; }

/* Models de correu: a l'esquerra el que cal completar, a la dreta el text per copiar */
.avis-suau { display: flex; gap: .5rem; align-items: flex-start; background: var(--blau-suau); color: var(--blau); border-radius: var(--radi-petit); padding: .6rem .8rem; max-width: 56rem; }
.avis-suau .ic { flex: none; margin-top: .15rem; }
.avis-suau a { color: inherit; font-weight: 600; }
.correu-model { display: grid; gap: 1rem; grid-template-columns: minmax(15rem, 22rem) minmax(0, 1fr); align-items: start; max-width: 70rem; }
.correu-model > section:only-of-type { grid-column: 1 / -1; max-width: 48rem; }
.correu-model h2 { font-family: var(--lletra); font-size: 1rem; font-weight: 700; letter-spacing: 0; display: flex; align-items: center; gap: .4rem; }
.correu-model p { margin: 0 0 .8rem; }
.correu-model label { display: block; font-weight: 700; margin-bottom: .2rem; }
.correu-model input[type=text], .correu-model textarea { width: 100%; }
.correu-model textarea { line-height: 1.5; }
.correu-model .completa { background: var(--segell); border-color: #e6d3a3; }
@media (max-width: 900px) { .correu-model { grid-template-columns: minmax(0, 1fr); } }

/* Préstec interbibliotecari: fitxes grans amb el topogràfic com a protagonista (pensades per al mòbil al prestatge) */
.seccio-pi { font-family: var(--lletra); font-size: .95rem; font-weight: 700; letter-spacing: 0; margin: 1.1rem 0 .4rem; display: flex; align-items: center; gap: .4rem; color: var(--tinta-2); }
.fitxa-pi { background: var(--paper); border: 1px solid var(--linia); border-left: 6px solid var(--linia-forta); border-radius: var(--radi); padding: .7rem .9rem; margin-bottom: .5rem; display: grid; gap: .35rem; scroll-margin-top: 5rem; }
.fitxa-pi.trobat { border-left-color: var(--verd); background: var(--verd-suau); }
.fitxa-pi.notrobat { border-left-color: var(--vermell); background: var(--vermell-suau); }
.fitxa-pi .topo { font-size: 1.45rem; font-weight: 700; line-height: 1.15; font-variant-numeric: lining-nums tabular-nums; letter-spacing: .01em; overflow-wrap: anywhere; }
.fitxa-pi .titol-pi { font-weight: 600; }
.fitxa-pi .autor-pi { color: var(--tinta-2); font-size: .92rem; }
.fitxa-pi code { font-size: .82rem; color: var(--tinta-2); }
.fitxa-pi .marques { display: grid; grid-template-columns: 1fr 1fr; gap: .5rem; margin: .2rem 0 0; }
.fitxa-pi .marques button { min-height: 2.75rem; font-size: 1rem; background: var(--paper); }
.fitxa-pi .b-trobat { border-color: var(--verd); color: var(--verd); }
.fitxa-pi .b-no { border-color: var(--vermell); color: var(--vermell); }
.fitxa-pi .b-trobat[aria-pressed=true] { background: var(--verd); color: #fff; }
.fitxa-pi .b-no[aria-pressed=true] { background: var(--vermell); color: #fff; }
.fitxa-pi .b-trobat[aria-pressed=true]::before, .fitxa-pi .b-no[aria-pressed=true]::before { content: "✓"; }
.comptes-pi { display: flex; gap: .4rem 1.2rem; flex-wrap: wrap; font-size: .95rem; }
.comptes-pi strong { font-size: 1.15rem; }
.barra-progres .progres { height: 100%; background: var(--accent); border-radius: 5px; }
.pi-escriptori .fitxa-pi { grid-template-columns: minmax(9rem, 13rem) minmax(0, 1fr) minmax(13rem, 15rem); align-items: center; gap: .3rem 1rem; }
.pi-escriptori .fitxa-pi .xips, .pi-escriptori .fitxa-pi > .petit { grid-column: 2; }
.pi-escriptori .fitxa-pi .marques { grid-column: 3; grid-row: 1 / span 3; margin: 0; }
.pi-escriptori .fitxa-pi .topo { font-size: 1.2rem; }
.pi-escriptori aside h2 { font-family: var(--lletra); font-size: 1rem; font-weight: 700; letter-spacing: 0; display: flex; align-items: center; gap: .4rem; }
.pi-escriptori aside label { display: block; font-weight: 700; font-size: .88rem; margin-bottom: .2rem; }
.pi-escriptori aside textarea { width: 100%; font-size: .85rem; }
.pi-escriptori aside ul { margin: 0 0 .6rem; padding-left: 1.1rem; }
.desti-pi { font-size: .92rem; margin: .5rem 0 .2rem; }
.qr-pi .qr { background: #fff; border: 1px solid var(--linia); border-radius: var(--radi-petit); padding: .25rem; max-width: 15rem; margin: 0 auto; }
.qr-pi .qr svg { display: block; width: 100%; height: auto; }
@media (max-width: 1250px) { .pi-escriptori .fitxa-pi { grid-template-columns: minmax(0, 1fr); } .pi-escriptori .fitxa-pi .xips, .pi-escriptori .fitxa-pi > .petit, .pi-escriptori .fitxa-pi .marques { grid-column: 1; grid-row: auto; } }
body.pi-mobil { display: block; background: var(--fons); }
.pi-mobil .cap-mobil { background: var(--lateral); color: #fff; padding: .8rem 1rem; }
.pi-mobil .cap-mobil p { color: #fdf0f2; }
.pi-mobil .cap-mobil h1 { margin: .1rem 0 0; font-size: 1.3rem; color: #fff; text-transform: none; }
.pi-mobil main { max-width: 40rem; margin: 0 auto; padding: .8rem .8rem 6.5rem; }
.pi-mobil .eines-pi { display: flex; justify-content: space-between; align-items: center; gap: .5rem; flex-wrap: wrap; }
.pi-mobil .eines-pi .xip { font-size: .9rem; padding: .3rem .8rem; }
.pi-mobil .eines-pi label { display: inline-flex; align-items: center; gap: .4rem; min-height: 2rem; }
.pi-mobil .fitxa-pi .topo { font-size: 1.7rem; }
.pi-mobil .fitxa-pi .marques button { min-height: 3.2rem; font-size: 1.05rem; }
.pi-mobil.amaga-fets .fitxa-pi.trobat, .pi-mobil.amaga-fets .fitxa-pi.notrobat { display: none; }
.pi-mobil .barra-pi { position: fixed; left: 0; right: 0; bottom: 0; background: var(--paper); border-top: 1px solid var(--linia-forta); padding: .5rem 1rem calc(.6rem + env(safe-area-inset-bottom)); box-shadow: 0 -.4rem 1rem rgba(0,0,0,.08); }
.pi-mobil .barra-pi .comptes-pi { justify-content: space-between; }

/* Reunions: convocatòria, acta i acords */
.dades-reunio { display: grid; grid-template-columns: 7rem minmax(0, 1fr); gap: .25rem .9rem; margin: 0 0 1rem; }
.dades-reunio dt { font-weight: 700; color: var(--tinta-2); } .dades-reunio dd { margin: 0; }
.reunio h3, .acta h3, .proposta-acta h3 { font-size: .95rem; margin: 1.1rem 0 .4rem; }
.ordre-dia { list-style: none; counter-reset: punt; margin: 0; padding: 0; border-top: 1px solid var(--linia); }
.ordre-dia li { counter-increment: punt; display: grid; grid-template-columns: 3.2rem minmax(0, 1fr); gap: .6rem; padding: .5rem 0; border-bottom: 1px solid var(--linia); }
.ordre-dia li > span:last-child { grid-column: 2; }
.ordre-dia li > span:last-child strong::before { content: counter(punt) ". "; }
.ordre-dia .hora-punt { font-variant-numeric: tabular-nums; color: var(--tinta-2); grid-column: 1; }
.acords, .acords-anteriors { list-style: none; margin: 0; padding: 0; display: grid; gap: .35rem; }
.acords li { display: flex; justify-content: space-between; align-items: center; gap: .75rem; padding: .5rem .7rem; border: 1px solid var(--linia); border-left: 5px solid var(--accent); border-radius: var(--radi-petit); background: var(--paper); }
.acords li.fet { border-left-color: var(--verd); background: var(--paper-2); }
.acords li.vencut { border-left-color: var(--vermell); }
.acords li form { margin: 0; flex: none; }
.acords-anteriors li { padding: .35rem .7rem; border-left: 4px solid var(--blau-mig); background: var(--paper-2); border-radius: 0 var(--radi-petit) var(--radi-petit) 0; }
.accions-reunio, .accions-reunio form { display: grid; gap: .45rem; }
.accions-reunio .boto, .accions-reunio button { justify-content: flex-start; width: 100%; }
.copia-reunio summary { cursor: pointer; display: flex; align-items: center; gap: .4rem; }
.copia-reunio summary strong { display: inline-flex; align-items: center; gap: .4rem; }
.copia-reunio label { display: block; font-weight: 700; font-size: .88rem; margin: .6rem 0 .2rem; }
.copia-reunio input, .copia-reunio textarea { width: 100%; font-size: .9rem; }
.copia-reunio p { margin: 0; }
.acord-nou { display: grid; grid-template-columns: minmax(0, 1.2fr) minmax(0, 1fr) minmax(0, 1.4fr); gap: .5rem .75rem; align-items: start; margin-top: .9rem; padding-top: .9rem; border-top: 1px solid var(--linia); }
.acord-nou p { margin: 0; } .acord-nou p:first-of-type { grid-column: 1 / -1; }
.acord-nou button { grid-column: 1 / -1; justify-self: start; }
.acord-nou input, .acord-nou select { min-width: 0; width: 100%; }
@media (max-width: 760px) { .acord-nou { grid-template-columns: minmax(0, 1fr); } }
.proposta-acta { background: var(--segell); border-color: #e6d3a3; margin-bottom: 1rem; }
.item-proposta { margin: 0 0 .7rem; }
.item-proposta label { display: inline-flex; align-items: center; gap: .45rem; margin-bottom: .25rem; min-height: 1.6rem; }
.item-proposta textarea { width: 100%; }
.acord-proposat { display: grid; grid-template-columns: auto minmax(0, 3fr) minmax(0, 1.2fr) auto auto; gap: .45rem; align-items: center; }
.acord-proposat label { margin: 0; }
@media (max-width: 900px) { .acord-proposat { grid-template-columns: auto minmax(0, 1fr); } .acord-proposat input[type=text], .acord-proposat input[type=date] { grid-column: 2; } }
.acta textarea { width: 100%; }

/* Seguiment del Pla d'acció */
.seguiment-pla .com-va { min-width: 15rem; max-width: 24rem; }
.seguiment-pla .barra-progres { height: 6px; margin: .35rem 0 .25rem; }
.barra-progres .progres.verd { background: var(--verd); }
.barra-progres .progres.taronja { background: var(--taronja); }
.barra-progres .progres.vermell { background: var(--vermell); }
.seguiment-fet { padding: .5rem 0; border-bottom: 1px solid var(--linia); }
.seguiment-fet:last-child { border-bottom: 0; }

/* Tasques de l'equip */
.columna-avui { display: grid; gap: 1rem; align-content: start; min-width: 0; }
.llista-tasques-equip { list-style: none; margin: 0; padding: 0; display: grid; gap: .4rem; }
.tasca { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; gap: .2rem .75rem; align-items: start; padding: .6rem .8rem; background: var(--paper); border: 1px solid var(--linia); border-radius: var(--radi); }
.tasca.endarrerida { box-shadow: inset 5px 0 var(--vermell); }
.tasca.en-curs { box-shadow: inset 5px 0 var(--blau-mig); }
.tasca.feta { background: var(--paper-2); color: var(--tinta-2); }
.tasca.feta .titol-tasca { text-decoration: line-through; }
.tasca form { margin: 0; }
.tasca .casella { width: 1.6rem; height: 1.6rem; min-height: 0; padding: 0; border-radius: 6px; border: 2px solid var(--linia-forta); background: var(--paper); color: var(--verd); font-weight: 700; }
.tasca .casella:hover { border-color: var(--verd); background: var(--verd-suau); }
.tasca .cos-tasca { display: grid; gap: .2rem; }
.tasca .titol-tasca { font-weight: 700; }
.tasca .detall-tasca { font-size: .9rem; color: var(--tinta-2); }
.tasca .accions-tasca { justify-content: flex-end; }
.tauler { display: grid; gap: .9rem; grid-template-columns: repeat(auto-fill, minmax(19rem, 1fr)); align-items: start; }
.columna-tauler { padding: .8rem; background: var(--paper-2); }
.columna-tauler .cap-bloc h2 { font-family: var(--lletra); font-size: 1rem; font-weight: 700; letter-spacing: 0; }
.columna-tauler .tasca { grid-template-columns: auto minmax(0, 1fr); }
.columna-tauler .tasca .accions-tasca { grid-column: 2; justify-content: flex-start; }
@media (max-width: 700px) { .tasca { grid-template-columns: auto minmax(0, 1fr); } .tasca .accions-tasca { grid-column: 2; justify-content: flex-start; } }

/* Ajuda: botó a la barra superior, finestra de la pantalla i pàgina amb tots els temes */
.boto-ajuda { border-radius: 999px; padding: .42rem .9rem .42rem .7rem; white-space: nowrap; }
.boto-ajuda .ic { color: var(--accent); }
dialog.ajuda { width: min(41rem, calc(100vw - 1.5rem)); max-height: min(90vh, 48rem); padding: 0; color: var(--tinta); background: var(--paper);
  border: 1px solid var(--linia-forta); border-radius: var(--radi); box-shadow: 0 1.5rem 4rem rgba(0, 0, 0, .32); overflow: hidden; }
dialog.ajuda[open] { display: flex; flex-direction: column; }
dialog.ajuda::backdrop { background: rgba(20, 24, 28, .55); }
.cap-ajuda { display: flex; justify-content: space-between; align-items: center; gap: 1rem; padding: .8rem .8rem .8rem 1.3rem;
  background: var(--accent-suau); border-bottom: 1px solid var(--accent-mig); box-shadow: inset 5px 0 var(--accent); }
.cap-ajuda h2 { margin: 0; font-size: 1.25rem; display: flex; align-items: center; gap: .55rem; color: var(--lateral); }
.cap-ajuda h2 .ic { width: 1.5rem; height: 1.5rem; flex: none; }
.cap-ajuda form, .peu-ajuda form { margin: 0; }
.cos-ajuda { padding: 1.1rem 1.3rem .4rem; overflow-y: auto; }
.peu-ajuda { display: flex; justify-content: space-between; align-items: center; gap: 1rem; padding: .7rem 1.3rem; border-top: 1px solid var(--linia); background: var(--paper-2); }
.peu-ajuda a { display: inline-flex; align-items: center; gap: .4rem; }
.per-a-que { font-size: 1.06rem; margin: 0 0 1rem; max-width: 46rem; }
.sub-ajuda { font-family: var(--lletra); font-size: .95rem; font-weight: 700; letter-spacing: 0; margin: 0 0 .55rem; display: flex; align-items: center; gap: .4rem; }
.passos-ajuda { list-style: none; counter-reset: pas; margin: 0 0 1.1rem; padding: 0; max-width: 46rem; }
.passos-ajuda li { counter-increment: pas; position: relative; padding: .12rem 0 .55rem 2.5rem; min-height: 2.1rem; }
.passos-ajuda li::before { content: counter(pas); position: absolute; left: 0; top: 0; width: 1.75rem; height: 1.75rem; border-radius: 50%;
  background: var(--accent); color: #fff; font-weight: 700; font-size: .9rem; display: grid; place-items: center; }
.saber-ajuda { background: var(--blau-suau); color: var(--blau); border-radius: var(--radi-petit); padding: .75rem 1rem; margin: 0 0 1rem; max-width: 46rem; }
.saber-ajuda ul { margin: 0; padding-left: 1.2rem; }
.saber-ajuda li + li { margin-top: .25rem; }
.idees-ajuda { background: var(--segell); border-color: #e6d3a3; margin: .5rem 0 1.25rem; }
.idees-ajuda h2 { display: flex; align-items: center; gap: .5rem; font-size: 1.1rem; }
.idees-ajuda ul { margin: 0; padding-left: 1.2rem; max-width: 52rem; }
.idees-ajuda li + li { margin-top: .35rem; }
.index-ajuda { display: grid; grid-template-columns: repeat(auto-fit, minmax(14rem, 1fr)); gap: .75rem 1.5rem; margin-bottom: .5rem; }
.index-ajuda h2 { font-family: var(--lletra); font-size: .85rem; font-weight: 700; letter-spacing: .02em; color: var(--tinta-2); margin: 0 0 .3rem; }
.index-ajuda ul { list-style: none; margin: 0; padding: 0; }
.index-ajuda a { display: flex; align-items: center; gap: .5rem; padding: .28rem .4rem; border-radius: var(--radi-petit); text-decoration: none; color: var(--tinta); }
.index-ajuda a:hover { background: var(--fons-2); }
.index-ajuda a .ic { color: var(--accent); flex: none; }
.area-ajuda { font-family: var(--lletra-titol); font-size: 1.3rem; font-weight: 600; margin-top: 2rem; padding-bottom: .3rem; border-bottom: 2px solid var(--accent); }
.tema-ajuda { margin-bottom: .9rem; scroll-margin-top: 4.5rem; }
.tema-ajuda:target { border-color: var(--accent); box-shadow: inset 5px 0 var(--accent); }
.tema-ajuda .cap-tema { display: flex; justify-content: space-between; align-items: center; gap: .75rem; flex-wrap: wrap; margin-bottom: .6rem; }
.tema-ajuda .cap-tema h3 { margin: 0; font-family: var(--lletra-titol); font-size: 1.15rem; font-weight: 600; display: flex; align-items: center; gap: .5rem; }
.tema-ajuda .cap-tema h3 .ic { color: var(--accent); width: 1.35rem; height: 1.35rem; }
.tema-ajuda > :last-child { margin-bottom: 0; }

.nomes-imprimir { display: none; }
@media print {
  dialog.ajuda { display: none !important; }
  .fitxa-pi { break-inside: avoid; background: #fff !important; border-color: #000; }
  .fitxa-pi .marques { display: none; }
  .pi-escriptori { display: block; }
  .tema-ajuda { break-inside: avoid; border: 0; border-top: 1px solid #999; border-radius: 0; padding: .6rem 0; }
  .passos-ajuda li::before { background: #fff; color: #000; border: 1.5px solid #000; }
  .saber-ajuda, .idees-ajuda { background: #fff; color: #000; border: 1px solid #000; }
  .area-ajuda { break-after: avoid; border-color: #000; }
  .lateral, .superior, .vel, .salta, .missatges, .no-imprimir { display: none !important; }
  .nomes-imprimir { display: inline; }
  body, body.amb-menu { display: block; background: #fff; font-size: 11pt; }
  main { padding: 0; max-width: none; }
  .targeta { border-color: #999; }
  .fitxa-proc { border: 0; padding: 0; max-width: none; }
  .fitxa-proc .passos > li { break-inside: avoid; }
  .fitxa-proc .passos > li::before { background: #fff; color: #000; border: 1.5px solid #000; }
  .fitxa-proc .avisar { background: #fff; border: 1px solid #000; }
  a { color: inherit; text-decoration: none; }
}
@media (max-width: 760px) {
  h1 { font-size: 1.45rem; }
  .taula th, .taula td { padding: .5rem .5rem; }
  .kpis > div { flex: 1 1 8rem; }
  .formulari input, .formulari select { min-width: 0; width: 100%; }
}
.taula :where(input:not([type=checkbox]):not([type=radio]):not([type=file]), select) { min-height: 1.9rem; padding: .2rem .4rem; }
.pestanyes a { white-space: nowrap; }
@media (max-width: 760px) {
  /* Terminis al mòbil: la data a dalt i el títol a tota l'amplada */
  .taula.terminis tr { display: grid; grid-template-columns: minmax(0, 1fr) auto; padding: .15rem 0; border-bottom: 1px solid var(--linia); }
  .taula.terminis tr:last-child { border-bottom: 0; }
  .taula.terminis td { border: 0; padding: .3rem .7rem; }
  .taula.terminis td.num { grid-column: 1; text-align: left; display: flex; gap: .5rem; align-items: baseline; }
  .taula.terminis td:nth-child(2) { grid-column: 1 / -1; grid-row: 2; }
  .taula.terminis td:nth-child(3) { grid-column: 2; grid-row: 1; }
}

/* Comunicació */
.desplegable-dreta { position: relative; }
.desplegable-dreta > form { position: absolute; right: 0; z-index: 10; width: min(26rem, 88vw); box-shadow: 0 .5rem 1.5rem rgba(20, 24, 28, .18); }
.llista-pub { list-style: none; margin: 0; padding: 0; display: grid; gap: .45rem; }
.llista-pub > li { background: var(--paper); border: 1px solid var(--linia); border-radius: var(--radi); }
.llista-pub > li.endarrerida { box-shadow: inset 5px 0 var(--vermell); }
.llista-pub summary { display: grid; grid-template-columns: 11.5rem minmax(0, 1fr) auto; gap: .3rem .9rem; align-items: center; padding: .65rem .9rem; cursor: pointer; list-style: none; border-radius: var(--radi); }
.llista-pub summary::-webkit-details-marker { display: none; }
.llista-pub summary:hover { background: var(--paper-2); }
.llista-pub .canal-pub { display: inline-flex; align-items: center; gap: .4rem; font-weight: 700; color: var(--blau); }
.llista-pub .titol-pub { display: grid; }
.llista-pub .cos-pub { padding: 0 .9rem .9rem; margin: 0; }
.llista-pub textarea { width: 100%; font: inherit; font-size: .95rem; line-height: 1.45; }
.llista-pub textarea[readonly] { background: var(--paper-2); }
@media (max-width: 760px) {
  .llista-pub summary { grid-template-columns: minmax(0, 1fr) auto; }
  .llista-pub .titol-pub { grid-column: 1 / -1; grid-row: 2; }
}
.llista-pub .cita { margin: 0 0 .5rem; padding: .5rem .8rem; border-left: 4px solid var(--blau-mig); background: var(--paper-2); border-radius: 0 var(--radi-petit) var(--radi-petit) 0; }
.llista-pub .estrelles { color: #8a5a00; letter-spacing: .05em; font-weight: 400; }
.pestanyes a .ic { margin-right: .15rem; }

/* ---------- Quadrant: cobertura dels taulells ---------- */
.desborda { overflow-x: auto; }
.llista-neta { list-style: none; padding: 0; margin: 0; display: grid; gap: .3rem; }
.llista-neta form { display: inline; }
.hora { font-variant-numeric: lining-nums tabular-nums; font-weight: 700; white-space: nowrap; }
.xip.q-correcta { background: var(--verd-suau); color: var(--verd); }
.xip.q-ajustada { background: var(--groc-suau); color: var(--groc); }
.xip.q-reorganitzada { background: var(--taronja-suau); color: var(--taronja); }
.xip.q-reforc { background: var(--blau-suau); color: var(--blau); }
.xip.q-minims { background: var(--vermell-suau); color: var(--vermell); }
.xip.gran { font-size: 1rem; padding: .2rem .8rem; font-weight: 700; margin-top: .25rem; }
.nav-setmana { display: flex; align-items: center; gap: .6rem; flex-wrap: wrap; margin: .2rem 0 .9rem; }
.nav-setmana .fi { margin-left: auto; }
.dies-setmana { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); gap: .5rem; }
.dia-setmana { display: grid; gap: .25rem; align-content: start; justify-items: start; padding: .7rem .75rem; text-decoration: none; color: inherit; border-top: 4px solid transparent; }
.dia-setmana:hover { border-color: var(--accent); }
.dia-setmana.es-avui { border-top-color: var(--accent); }
.dia-setmana.tancat { background: var(--paper-2); }
.dia-setmana .nom-dia { font-weight: 700; }
.calent { color: var(--taronja); font-weight: 600; }
@media (max-width: 1150px) { .dies-setmana { grid-template-columns: repeat(auto-fill, minmax(9.5rem, 1fr)); } }
.setmana-persones tr.jo th { box-shadow: inset 5px 0 var(--accent); }
.setmana-persones .absent { color: var(--vermell); font-weight: 600; }
.taula.cobertura td.tancat { background: repeating-linear-gradient(45deg, var(--paper), var(--paper) 6px, var(--paper-2) 6px, var(--paper-2) 12px); }
.taula.cobertura td.descobert { background: var(--vermell-suau); }
.taula.cobertura .falta { color: var(--vermell); font-weight: 700; display: flex; gap: .3rem; align-items: center; }
.taula.cobertura tr.q-minims th.hora { box-shadow: inset 5px 0 var(--vermell); }
.taula.cobertura tr.q-reforc th.hora { box-shadow: inset 5px 0 var(--blau); }
.taula.cobertura tr.q-reorganitzada th.hora { box-shadow: inset 5px 0 var(--taronja); }
.taula.cobertura tr.q-ajustada th.hora { box-shadow: inset 5px 0 #c9a400; }
.taula.cobertura .obs div + div { margin-top: .2rem; }
.marca-canvi { font-size: .7rem; font-weight: 800; letter-spacing: .05em; border: 1px solid currentColor; border-radius: 3px; padding: 0 .3rem; color: var(--taronja); white-space: nowrap; }
.alertes-quadrant { list-style: none; padding: 0; margin: 0; display: grid; gap: .6rem; }
.alertes-quadrant > li { border-left: 5px solid #c9a400; }
.alertes-quadrant > li.q-minims { border-left-color: var(--vermell); }
.alertes-quadrant > li.q-reforc { border-left-color: var(--blau); }
.alertes-quadrant li p { margin: .4rem 0 0; }
.alertes-quadrant ol { margin: 0 0 .5rem; padding-left: 1.2rem; }
.cap-alerta { display: flex; gap: .5rem; align-items: center; flex-wrap: wrap; }
.llista-canvis { list-style: none; padding-left: 0; margin: 0 0 .7rem; display: grid; gap: .25rem; }
.llista-canvis.targeta { padding: .8rem 1rem; }
.publicacio { margin-bottom: 1rem; border-left: 5px solid var(--verd); }
.publicacio.pub-sense, .publicacio.pub-canvis { border-left-color: var(--taronja); }
.resum-quadrant .de { font-size: 1.1rem; color: var(--tinta-2); }
.eines-dia { margin-top: 1.4rem; }
.eines-dia .cap-bloc h2 { font-family: var(--lletra); font-size: 1rem; font-weight: 700; letter-spacing: 0; }
.form-fixa { display: grid; gap: .3rem; margin-bottom: .7rem; }
.form-fixa select { width: 100%; }
.form-fixa label { font-weight: 700; font-size: .86rem; }
.form-fixa .hores { display: flex; gap: .4rem; align-items: center; flex-wrap: wrap; }
.form-fixa .hores input { min-width: 0; width: 7.4rem; }
.form-fixa button { justify-self: start; }
.horari-setmana { max-width: 46rem; }
.horari-setmana td { white-space: nowrap; }
.horari-setmana input[type=time], .form-quadrant input[type=time] { min-width: 0; width: 7.4rem; }
.form-quadrant input[type=date] { min-width: 0; width: 11rem; }
.form-quadrant fieldset.caselles { border: 0; padding: 0; margin: 0 0 1rem; min-width: 0; }
.form-quadrant fieldset.caselles legend { font-weight: 700; padding: 0; margin-bottom: .25rem; }
.form-quadrant fieldset.caselles > div { display: flex; flex-wrap: wrap; gap: .25rem 1.1rem; }
.form-quadrant fieldset.caselles label { display: inline-flex; gap: .35rem; align-items: center; font-weight: 400; margin: 0; white-space: nowrap; }
.form-quadrant .casella-sola label { display: inline; }
.form-quadrant h2 { margin-top: 1.4rem; }
.form-quadrant .errorlist { color: var(--vermell); list-style: none; padding: 0; margin: .2rem 0 .6rem; font-size: .9rem; }
.dues-dates { display: flex; gap: 1rem; flex-wrap: wrap; }
.passos-inici { list-style: none; padding: 0; display: grid; gap: .55rem; }
.passos-inici li { display: flex; gap: .6rem; align-items: center; }
.passos-inici .num { display: inline-grid; place-items: center; width: 1.5rem; height: 1.5rem; border-radius: 50%; background: var(--accent); color: #fff; font-weight: 700; font-size: .85rem; flex: none; }
.passos-inici li.fet .ic { color: var(--verd); width: 1.5rem; height: 1.5rem; flex: none; }
.dues-columnes-quadrant { display: grid; grid-template-columns: minmax(18rem, 24rem) minmax(0, 1fr); gap: 1rem; align-items: start; }
@media (max-width: 1000px) { .dues-columnes-quadrant { grid-template-columns: minmax(0, 1fr); } }
.impacte { border-left: 6px solid var(--verd); }
.impacte.i-reorganitzacio, .llegenda-impacte .i-reorganitzacio { border-left-color: #c9a400; }
.impacte.i-reforc, .llegenda-impacte .i-reforc { border-left-color: var(--taronja); }
.impacte.i-minims, .llegenda-impacte .i-minims { border-left-color: var(--vermell); }
.llegenda-impacte { margin: 0; display: grid; gap: .7rem; }
.llegenda-impacte div { border-left: 5px solid var(--verd); padding-left: .7rem; }
.llegenda-impacte dt { font-weight: 700; }
.llegenda-impacte dd { margin: 0; color: var(--tinta-2); }
.avis-suau.avis-dades { background: var(--taronja-suau); color: var(--taronja); margin-bottom: .6rem; }
.torn-avui { display: flex; gap: .6rem; align-items: baseline; flex-wrap: wrap; margin: 0 0 1rem; padding: .6rem .9rem; }
.torn-avui .trams { display: flex; gap: .3rem .9rem; flex-wrap: wrap; }

/* ---------- Quadrant: calendari anual, jornada, mes ---------- */
.llista-importacio { list-style: none; padding: 0; margin: 0; display: grid; gap: .8rem; }
.cap-importacio { display: flex; gap: 1rem; justify-content: space-between; flex-wrap: wrap; align-items: flex-start; }
.cap-importacio h2 { margin: 0; font-size: 1.15rem; }
.cap-importacio p { margin: .1rem 0 0; }
.cap-importacio .tria label { display: block; font-weight: 700; font-size: .86rem; }
.cap-importacio .tria select { min-width: 16rem; max-width: 100%; }
.cap-importacio .helptext { display: block; font-size: .82rem; color: var(--tinta-2); max-width: 22rem; }
.dades-importacio { display: flex; flex-wrap: wrap; gap: .4rem 1.6rem; margin: .7rem 0 .4rem; }
.dades-importacio dt { font-size: .8rem; color: var(--tinta-2); font-weight: 700; }
.dades-importacio dd { margin: 0; }
.avisos-importacio { margin: 0; padding-left: 1.1rem; color: var(--taronja); }
.taula.calendari-any { font-size: .78rem; }
.taula.calendari-any th, .taula.calendari-any td { padding: .15rem .3rem; white-space: nowrap; vertical-align: middle; }
.taula.calendari-any td a { display: block; text-decoration: none; color: inherit; border-radius: 3px; padding: .05rem .15rem; }
.taula.calendari-any td a:hover { background: var(--accent-suau); }
.taula.calendari-any .ds { color: var(--tinta-2); display: inline-block; width: 1.5rem; }
.taula.calendari-any td.festa { background: var(--paper-2); }
.taula.calendari-any td.manual a { box-shadow: inset 0 0 0 2px var(--taronja); }
.taula.calendari-any td.no-existeix { background: var(--fons-2); }
.taula.calendari-any tfoot td, .taula.calendari-any tfoot th { font-weight: 700; border-top: 2px solid var(--linia-forta); }
.etiqueta-tram { display: block; font-weight: 700; margin-bottom: .25rem; }
.taula.jornada td { vertical-align: top; }
.taula.mes-quadrant { table-layout: fixed; min-width: 46rem; }
.taula.mes-quadrant td { height: 6.2rem; vertical-align: top; padding: .35rem .45rem; }
.taula.mes-quadrant td.fora-mes { background: var(--paper-2); color: var(--tinta-2); }
.taula.mes-quadrant td.tancat { background: var(--paper-2); }
.taula.mes-quadrant td.es-avui { box-shadow: inset 0 4px var(--accent); }
.taula.mes-quadrant .num-dia { display: block; font-weight: 700; text-decoration: none; color: inherit; margin-bottom: .15rem; }
.taula.mes-quadrant .num-dia:hover { color: var(--accent); text-decoration: underline; }
.taula.mes-quadrant .xip { white-space: normal; }
.taula td .boto.petit { white-space: nowrap; }
.taula.jornada th[scope=row] .petit { font-weight: 400; }
.taula.jornada .sense-tall { white-space: nowrap; }

/* ---------- Recomanador i enllaços ---------- */
.dues-columnes-recomanador { display: grid; grid-template-columns: minmax(18rem, 26rem) minmax(0, 1fr); gap: 1rem; align-items: start; }
@media (max-width: 1000px) { .dues-columnes-recomanador { grid-template-columns: minmax(0, 1fr); } }
.form-recomanador input[type=text], .form-recomanador select { width: 100%; min-width: 0; }
.form-recomanador label.casella-sola { display: flex; gap: .5rem; align-items: flex-start; font-weight: 400; min-height: 1.6rem; }
.form-recomanador label.casella-sola input { flex: none; width: 1.1rem; min-width: 0; margin-top: .2rem; }
.llista-recomanacions, .llista-propostes, .llista-carpetes { list-style: none; padding: 0; margin: 0; display: grid; gap: .6rem; }
.llista-recomanacions li { padding: .7rem .9rem; }
.perfil-llegit h2 { margin-top: 0; font-size: 1.05rem; }
.perfil-llegit dl { display: flex; flex-wrap: wrap; gap: .4rem 1.6rem; margin: .5rem 0; }
.perfil-llegit dt { font-size: .8rem; color: var(--tinta-2); font-weight: 700; }
.perfil-llegit dd { margin: 0; }
.proposta { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: .5rem 1.2rem; align-items: start; border-left: 5px solid var(--linia); }
.proposta.triada { border-left-color: var(--verd); }
.proposta.descartada { border-left-color: var(--linia-forta); background: var(--paper-2); }
.proposta.descartada h3 { color: var(--tinta-2); text-decoration: line-through; }
.proposta h3 { margin: 0; font-size: 1.1rem; }
.proposta .autor { margin: 0 0 .3rem; color: var(--tinta-2); }
.proposta p { margin: 0 0 .4rem; }
.tria-proposta { border: 0; padding: 0; margin: 0; display: grid; gap: .25rem; min-width: 9rem; }
.tria-proposta label { display: flex; gap: .35rem; align-items: center; white-space: nowrap; }
@media (max-width: 700px) { .proposta { grid-template-columns: minmax(0, 1fr); } .tria-proposta { display: flex; flex-wrap: wrap; gap: .3rem 1rem; } }
.carpetes-enllacos { display: grid; gap: 1rem; grid-template-columns: repeat(auto-fill, minmax(20rem, 1fr)); align-items: start; }
.carpetes-enllacos .cap-bloc h2 { font-family: var(--lletra); font-size: 1rem; font-weight: 700; letter-spacing: 0; }
.llista-enllacos { list-style: none; padding: 0; margin: 0; display: grid; gap: .45rem; }
.llista-enllacos li { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 0 .6rem; }
.llista-enllacos .enllac { font-weight: 600; overflow-wrap: anywhere; }
.llista-enllacos li > span { grid-column: 1; overflow-wrap: anywhere; }
.llista-enllacos .edita { grid-column: 2; grid-row: 1; }
.cap-carpeta { display: flex; justify-content: space-between; gap: .6rem 1.2rem; flex-wrap: wrap; align-items: center; }
.cap-carpeta .tota { display: flex; gap: .45rem; align-items: baseline; flex-wrap: wrap; }
.cap-carpeta .nom-carpeta input { min-width: 12rem; }
.llista-carpetes summary { min-height: 1.75rem; padding: .25rem 0; cursor: pointer; }
.enllacos-carpeta { list-style: none; padding: .4rem 0 0 1.4rem; margin: 0; display: grid; gap: .25rem; }
.enllacos-carpeta label { min-height: 1.6rem; display: flex; gap: .4rem; align-items: baseline; flex-wrap: wrap; overflow-wrap: anywhere; }

/* ---------- Cartells ---------- */
.formulari label.casella-sola { display: flex; gap: .5rem; align-items: flex-start; font-weight: 400; min-height: 1.6rem; }
.formulari label.casella-sola input { flex: none; width: 1.1rem; min-width: 0; margin-top: .2rem; }
.editor-cartell { display: grid; grid-template-columns: minmax(18rem, 27rem) minmax(0, 1fr); gap: 1.2rem; align-items: start; }
.editor-cartell .formulari h2 { font-size: 1.05rem; margin: 1.2rem 0 .5rem; }
.editor-cartell .formulari input[type=text], .editor-cartell .formulari textarea, .editor-cartell .formulari select { width: 100%; min-width: 0; }
.editor-cartell .formulari input[type=file] { max-width: 100%; min-width: 0; }
.vista-cartell { position: sticky; top: 4.6rem; justify-self: center; width: min(100%, calc((100vh - 8.5rem) / 1.4142)); min-width: 16rem; }
.vista-cartell .cartell-marc { box-shadow: 0 1px 8px rgba(0,0,0,.18); border: 1px solid var(--linia); }
@media (max-width: 900px) {
  .editor-cartell { grid-template-columns: minmax(0, 1fr); }
  .vista-cartell { position: static; width: min(100%, 26rem); order: -1; }
}
.tria-model, .graella-cartells { list-style: none; padding: 0; margin: 0; display: grid; gap: .8rem; }
.tria-model { grid-template-columns: repeat(auto-fill, minmax(26rem, 1fr)); }
.tria-model > li { display: grid; grid-template-columns: 11rem minmax(0, 1fr); gap: 1rem; align-items: start; }
.tria-model h2 { margin: 0 0 .3rem; font-size: 1.15rem; display: flex; flex-wrap: wrap; gap: .4rem; align-items: center; }
.tria-model p { margin: 0 0 .5rem; }
.graella-cartells { grid-template-columns: repeat(auto-fill, minmax(19rem, 1fr)); }
.graella-cartells > li { display: grid; grid-template-columns: 7rem minmax(0, 1fr); gap: .8rem; align-items: start; padding: .7rem; }
.graella-cartells .que { display: grid; gap: .3rem; justify-items: start; overflow-wrap: anywhere; }
.cartell-marc.mini { border: 1px solid var(--linia); box-shadow: 0 1px 3px rgba(0,0,0,.1); }
@media (max-width: 520px) {
  .tria-model { grid-template-columns: minmax(0, 1fr); }
  .tria-model > li { grid-template-columns: 7rem minmax(0, 1fr); }
}

/* ---------- Pressupost ---------- */
.taula-pressupost th[scope=row] { font-weight: 400; text-align: left; min-width: 14rem; }
.taula-pressupost th[scope=row] > a { font-weight: 700; }
.taula-pressupost tfoot th, .taula-pressupost tfoot td { border-top: 2px solid var(--linia-forta); font-weight: 700; }
.taula-pressupost tr.apagada { color: var(--tinta-2); }
.taula-pressupost tr.apagada td.num { text-decoration: line-through; }
.taula-pressupost td form, .taula-pressupost td .accions { margin: 0; }
.barra-pressupost { display: flex; height: 10px; background: var(--fons-2); border-radius: 5px; overflow: hidden; margin: .4rem 0 .3rem; max-width: 34rem; border: 1px solid var(--linia); }
.barra-pressupost .facturat { background: var(--accent); }
.barra-pressupost .per-facturar { background: var(--accent-mig); }
.barra-pressupost.excedit .facturat { background: var(--vermell); }
.barra-pressupost.excedit .per-facturar { background: #e6a39b; }
.en-vermell { color: var(--vermell); }
.kpis > div.alerta { border-color: #d9a39d; background: var(--vermell-suau); }
.llegenda-pressupost .mostra { display: inline-block; width: .9rem; height: .6rem; border-radius: 2px; border: 1px solid var(--linia-forta); margin: 0 .2rem 0 .7rem; vertical-align: baseline; }
.llegenda-pressupost .mostra:first-child { margin-left: 0; }
.llegenda-pressupost .mostra.facturat { background: var(--accent); }
.llegenda-pressupost .mostra.per-facturar { background: var(--accent-mig); }
.llegenda-pressupost .mostra.lliure { background: var(--fons-2); }
.formulari fieldset.grup-camps { border: 1px solid var(--linia); border-radius: var(--radi); padding: .8rem 1rem .2rem; margin: 0 0 1rem; min-width: 0; }
.formulari fieldset.grup-camps legend { font-weight: 700; padding: 0 .4rem; }
.taula-pressupost tbody th[scope=row], .taula-pressupost tfoot th[scope=row] { background: transparent; }
.kpis-diners .xifra { white-space: nowrap; font-size: clamp(1.2rem, 5.2vw, 1.9rem); }
.form-diners input[type=number] { width: 11rem; min-width: 0; }
@media (max-width: 600px) {
  /* Al mòbil, del resum queda el que es mira: quant s'ha compromès i quant queda. La resta és dins de cada partida. */
  .taula-pressupost.resum tr > :nth-child(2), .taula-pressupost.resum tr > :nth-child(4) { display: none; }
  .taula-pressupost th[scope=row] { min-width: 9rem; }
}

/* ---------- Espais ---------- */
.pestanyes-espais { margin: 0 0 .8rem; }
.setmana-espais { display: grid; gap: .5rem; }
.setmana-espais .cap-sales, .setmana-espais .dia-espais { display: grid; grid-template-columns: 8.5rem repeat(var(--sales), minmax(0, 1fr)); gap: .6rem; align-items: start; }
.setmana-espais .cap-sales { font-weight: 700; padding: 0 .6rem; }
.dia-espais { background: var(--paper); border: 1px solid var(--linia); border-radius: var(--radi); padding: .6rem; }
.dia-espais.avui { border-color: var(--accent); box-shadow: inset 4px 0 0 var(--accent); }
.dia-espais h2 { font-size: 1rem; margin: 0; line-height: 1.5; }
.casella-sala { position: relative; min-width: 0; padding-right: 2rem; min-height: 1.9rem; }
.casella-sala h3 { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); margin: 0; }
.casella-sala ul { list-style: none; padding: 0; margin: 0; display: grid; gap: .3rem; }
.casella-sala .lliure { color: var(--tinta-2); font-size: .88rem; }
.casella-sala .afegeix { position: absolute; top: 0; right: 0; padding: .15rem .3rem; min-height: 1.6rem; }
.ocupacio { border-left: 4px solid var(--accent); background: var(--fons-2); padding: .3rem .5rem; border-radius: 0 6px 6px 0; font-size: .92rem; overflow-wrap: anywhere; }
.ocupacio .hores { font-weight: 700; font-variant-numeric: tabular-nums; margin-right: .25rem; white-space: nowrap; }
.ocupacio.cessio { border-left-color: #555c66; }
.ocupacio.intern { border-left-color: #9e9e9e; }
.ocupacio.reserva { border-left-color: var(--blau); }
.ocupacio.exposicio { border-left-color: #8a1538; }
.ocupacio.pendent { border-left: 4px dashed var(--groc); background: var(--groc-suau); }
.ocupacio.xoca { outline: 2px solid var(--vermell); outline-offset: -1px; }
.ocupacio .xip { white-space: normal; }
.llegenda-espais .mostra { display: inline-block; width: .5rem; height: .9rem; margin: 0 .25rem 0 .7rem; vertical-align: text-bottom; background: var(--accent); }
.llegenda-espais .mostra:first-child { margin-left: 0; }
.llegenda-espais .mostra.cessio { background: #555c66; } .llegenda-espais .mostra.reserva { background: var(--blau); }
.llegenda-espais .mostra.pendent { background: var(--groc); } .llegenda-espais .mostra.intern { background: #9e9e9e; }
@media (max-width: 860px) {
  .setmana-espais .cap-sales { display: none; }
  .setmana-espais .dia-espais { grid-template-columns: minmax(0, 1fr); }
  .casella-sala h3 { position: static; width: auto; height: auto; clip-path: none; font-size: .88rem; color: var(--tinta-2); margin: 0 0 .2rem; }
  .casella-sala.buida:not(:has(.afegeix)) { display: none; }
  .dia-espais.sense-res .casella-sala.buida { display: none; }
  .dia-espais.sense-res::after { content: "Res a cap sala"; color: var(--tinta-2); font-size: .88rem; }
}
.llista-solicituds { list-style: none; padding: 0; margin: 0; display: grid; gap: .5rem; }
.llista-solicituds > li { display: flex; justify-content: space-between; gap: .6rem 1rem; align-items: center; flex-wrap: wrap; padding: .7rem .9rem; }
.llista-solicituds > li.apagada { opacity: .75; }
.fitxa-solicitud { display: grid; grid-template-columns: repeat(auto-fit, minmax(15rem, 1fr)); gap: .7rem 1.4rem; margin: 0; }
.fitxa-solicitud dt { font-size: .8rem; color: var(--tinta-2); font-weight: 700; }
.fitxa-solicitud dd { margin: 0; overflow-wrap: anywhere; }
.dies-solicitud { margin: .2rem 0 0; padding-left: 1.1rem; }
.form-espais input[type=time], .form-espais input[type=date] { min-width: 0; width: 11rem; }
.form-espais input[type=number] { min-width: 0; width: 7rem; }

/* Perfil de consulta: els formularis que no pot enviar es veuen desactivats (core.middleware.PerfilEquipMiddleware) */
fieldset.nomes-mirar { display: contents; border: 0; margin: 0; padding: 0; min-width: 0; }
fieldset.nomes-mirar button, fieldset.nomes-mirar .boto, fieldset.nomes-mirar input[type=submit] { opacity: .45; cursor: not-allowed; }

/* «Avui a la biblioteca» (avui/serveis/dia.py) */
.a-la-biblioteca { margin-bottom: 1rem; }
.a-la-biblioteca .dues-parts { display: grid; grid-template-columns: repeat(auto-fit, minmax(16rem, 1fr)); gap: .5rem 1.5rem; }
.a-la-biblioteca h3 { margin: .2rem 0 .4rem; color: var(--tinta-2); font-weight: 700; }
.llista-dia { list-style: none; margin: 0; padding: 0; }
.llista-dia li { padding: .25rem 0; border-bottom: 1px solid var(--linia); }
.llista-dia li:last-child { border-bottom: 0; }
.llista-dia .hora { display: inline-block; min-width: 6.5rem; font-variant-numeric: tabular-nums; font-weight: 600; }
