/* styles.css · estils de l'app del pacient (DISSENY §5.1, §10). Propietari: app.
   - Fitxes de color COPIADES de la maqueta aprovada (bascula-bridge/docs/maqueta-webapp/index.html, l. 15-33):
     :root (clar, predeterminat) · [data-tema=fosc] · auto amb prefers-color-scheme · [data-tema=contrast].
     Les fitxes de la maqueta que només servien per al marc del telèfon (--pagina, --bisell) no hi són.
   - Fonts: increment 1 = pila del sistema (--f-disp, --f-cos, --f-mono de la maqueta, sense @font-face).
     Les woff2 allotjades (Barlow Condensed, IBM Plex Sans/Mono, OFL) arriben a l'increment 2.
   - Escala (§10.3): text de 18 px (1.125rem sobre la mida del navegador), «Gran» 22 px, «Molt gran» 25 px,
     com la maqueta (html al 122,22 % i al 138,89 %); així també es respecta la mida de lletra del sistema.
     Zones de toc ≥48 px, botó principal 56 px, xifres tabulars.
   - Nivells: .lv-n0 … .lv-neutre (forma + vora esquerra de 4 px + text; mai només color).
   - Cap regla depèn d'estils en línia (CSP style-src 'self'). */

*,*::before,*::after{box-sizing:border-box}

:root{color-scheme:light;
--tira:#f7f0d6;
--fons:#f6f4ec;--fons-2:#efeee4;--panell:#fff;--panell-2:#f9f8f3;--linia:#e2e0d4;--linia-fort:#7d8a83;
--text:#16201d;--text-2:#46554f;--text-3:#5a6862;
--marca:#0b7a6b;--marca-fort:#075c50;--marca-suau:#d7ece8;--sobre-marca:#fff;
--info:#2f6fb0;--info-suau:#e8eef6;--focus:#2f6fb0;
--n0:#2E7D4F;--n0-t:#24663f;--n0-s:#e6f2ea;--n1:#8A6A00;--n1-t:#735800;--n1-s:#f7f0d6;
--n2:#B45309;--n2-t:#963f06;--n2-s:#fbeadb;--n3:#B42318;--n3-t:#9a1c12;--n3-s:#fbe3e0;
--nb:#1f5f9e;--nb-t:#1f4f80;--nb-s:#e4eef7;
--urg-f:#B42318;--urg-t:#fff;--urg-v:#B42318;--perill:#B42318;
--om1:0 1px 2px rgba(22,32,29,.08),0 2px 8px rgba(22,32,29,.06);--om2:0 4px 16px rgba(22,32,29,.12);--om3:0 -8px 32px rgba(22,32,29,.18);--scrim:rgba(16,22,19,.5);
--f-disp:"Barlow Condensed","Bahnschrift","Roboto Condensed","sans-serif-condensed","Arial Narrow",sans-serif;
--f-cos:"IBM Plex Sans",system-ui,-apple-system,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;
--f-mono:"IBM Plex Mono",ui-monospace,"Cascadia Mono",Consolas,Menlo,monospace;
--r-s:10px;--r-m:14px;--r-l:22px;--d-1:120ms;--d-2:200ms}

:root[data-tema=fosc]{color-scheme:dark;--tira:#3b3e24;--fons:#101613;--fons-2:#0c110e;--panell:#18211C;--panell-2:#1E2A23;--linia:#2C3A31;--linia-fort:#6b7f72;--text:#E9EFE8;--text-2:#9DB0A3;--text-3:#87998d;--marca:#4cc2ae;--marca-fort:#6fd3c1;--marca-suau:#213e36;--sobre-marca:#0b1310;--info:#7fb0ea;--info-suau:#1d2a36;--focus:#35d0e8;--n0:#5FA97C;--n0-t:#a8d8b9;--n0-s:#25392d;--n1:#D9C34A;--n1-t:#e9da8a;--n1-s:#3b3e24;--n2:#E0862F;--n2-t:#f0b47a;--n2-s:#3c331f;--n3:#EE6A55;--n3-t:#f6a497;--n3-s:#3f2e26;--nb:#6FA8E6;--nb-t:#a9c9f0;--nb-s:#172a3d;--urg-f:#5c1a12;--urg-t:#fff;--urg-v:#EE6A55;--perill:#5c1a12;--om1:0 0 0 1px #2C3A31;--om2:0 0 0 1px #2C3A31,0 4px 16px rgba(0,0,0,.45);--om3:0 -8px 32px rgba(0,0,0,.6);--scrim:rgba(0,0,0,.6)}

@media (prefers-color-scheme:dark){:root[data-tema=auto]{color-scheme:dark;--tira:#3b3e24;--fons:#101613;--fons-2:#0c110e;--panell:#18211C;--panell-2:#1E2A23;--linia:#2C3A31;--linia-fort:#6b7f72;--text:#E9EFE8;--text-2:#9DB0A3;--text-3:#87998d;--marca:#4cc2ae;--marca-fort:#6fd3c1;--marca-suau:#213e36;--sobre-marca:#0b1310;--info:#7fb0ea;--info-suau:#1d2a36;--focus:#35d0e8;--n0:#5FA97C;--n0-t:#a8d8b9;--n0-s:#25392d;--n1:#D9C34A;--n1-t:#e9da8a;--n1-s:#3b3e24;--n2:#E0862F;--n2-t:#f0b47a;--n2-s:#3c331f;--n3:#EE6A55;--n3-t:#f6a497;--n3-s:#3f2e26;--nb:#6FA8E6;--nb-t:#a9c9f0;--nb-s:#172a3d;--urg-f:#5c1a12;--urg-t:#fff;--urg-v:#EE6A55;--perill:#5c1a12;--om1:0 0 0 1px #2C3A31;--om2:0 0 0 1px #2C3A31,0 4px 16px rgba(0,0,0,.45);--om3:0 -8px 32px rgba(0,0,0,.6);--scrim:rgba(0,0,0,.6)}}

:root[data-tema=contrast]{color-scheme:light;--tira:#fff;--fons:#fff;--fons-2:#fff;--panell:#fff;--panell-2:#fff;--linia:#000;--linia-fort:#000;--text:#000;--text-2:#000;--text-3:#1a1a1a;--marca:#00463d;--marca-fort:#00463d;--marca-suau:#fff;--sobre-marca:#fff;--info:#003a8c;--info-suau:#fff;--focus:#000;--n0:#1d5631;--n0-t:#1d5631;--n0-s:#fff;--n1:#5c4600;--n1-t:#5c4600;--n1-s:#fff;--n2:#7a3504;--n2-t:#7a3504;--n2-s:#fff;--n3:#8a1510;--n3-t:#8a1510;--n3-s:#fff;--nb:#003d7a;--nb-t:#003d7a;--nb-s:#fff;--urg-f:#8a1510;--urg-v:#000;--perill:#8a1510;--om1:none;--om2:none;--om3:none;--scrim:rgba(0,0,0,.7)}
[data-tema=contrast] .kpi,[data-tema=contrast] .zona,[data-tema=contrast] .valors,[data-tema=contrast] .full,[data-tema=contrast] .nota-n{border:2px solid #000}
[data-tema=contrast] .xip{border-width:2px}[data-tema=contrast] a{text-decoration:underline}
[data-tema=contrast] :focus-visible{outline:4px solid #000;box-shadow:0 0 0 7px #ffd400}
/* títols que reben el focus per programa en canviar de pantalla: sense anell (no són al recorregut del tabulador) */
[data-tema=contrast] [tabindex="-1"]:focus{outline:none;box-shadow:none}

/* ------------------------------------------------------------------ base */
html{-webkit-text-size-adjust:100%;text-size-adjust:100%;background:var(--fons);scroll-padding-top:6rem}
html[data-mida=gran]{font-size:122.22%}html[data-mida=molt-gran]{font-size:138.89%}
body{margin:0;min-height:100vh;min-height:100dvh;display:flex;flex-direction:column;background:var(--fons);color:var(--text);font:400 1.125rem/1.5 var(--f-cos);font-variant-numeric:tabular-nums;overflow-wrap:anywhere}
h1,h2,h3{font-family:var(--f-disp);font-stretch:condensed;font-weight:600;line-height:1.2;margin:0;color:var(--text);overflow-wrap:normal}
h1{font-size:2rem}h2{font-size:1.625rem}h3{font-size:1.375rem}
h1:focus,h2:focus{outline:none}
p{margin:0;max-width:66ch}a{color:var(--marca-fort)}
button,input,select{font:inherit;color:inherit}
:focus-visible{outline:3px solid var(--focus);outline-offset:2px}
code,.mono{font-family:var(--f-mono)}
[hidden]{display:none!important}
.sr{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.ic{width:24px;height:24px;flex:none;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
/* la forma creix amb el text («Gran», «Molt gran»): ▲ ▼ ◆ s'han de distingir sense color */
.gl{width:max(14px,.8em);height:max(14px,.8em);flex:none;fill:var(--c,currentColor)}
.gl .gl-buit{fill:none;stroke:var(--c,currentColor);stroke-width:2}
.logo{width:32px;height:32px;flex:none}
.logo .logo-rombe{fill:none;stroke:var(--marca);stroke-width:3.5;stroke-linejoin:round}
.logo .logo-creu{fill:var(--marca)}.logo .logo-far{fill:var(--focus)}
.logo-gran{width:64px;height:64px}

/* ------------------------------------------------------------------ carcassa */
.capcalera{position:sticky;top:0;z-index:20;display:flex;flex-wrap:wrap;align-items:center;gap:6px 8px;min-height:60px;padding:6px 12px;padding-top:max(6px,env(safe-area-inset-top));background:var(--panell);border-bottom:1px solid var(--linia)}
.capcalera .sp{flex:1}
.marca-cap{display:flex;align-items:center;gap:8px;flex:none}
.nom-app{font:600 1.375rem/1 var(--f-disp);font-stretch:condensed;white-space:nowrap}
.btn-pref{display:inline-flex;align-items:center;gap:6px;min-height:48px;padding:6px 12px;border:1px solid var(--linia-fort);border-radius:999px;background:var(--panell);color:var(--text);font:600 1rem/1.2 var(--f-cos);cursor:pointer;text-align:left}
.btn-pref .ic{width:20px;height:20px}
.salta{position:absolute;left:8px;top:8px;z-index:30;background:var(--panell);padding:10px 14px;border:2px solid var(--focus);border-radius:8px;font-weight:600}
.salta:not(:focus){width:1px;height:1px;padding:0;border:0;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
/* Capçalera d'una sola línia (no ha d'ocupar pantalla de més a qui fa servir lletra gran): quan no hi cap, el nom
   «Salut Diamant» s'amaga a la vista (el logotip es queda i el lector de pantalla el continua llegint). Amplades
   mesurades a 375 px: ca normal 373 px; es/en o «Gran» ≥378 px; «Molt gran» fins a 467 px. Sense el nom, només
   «Molt gran» en anglès a 320 px no hi cap: llavors la capçalera deixa de ser enganxosa. */
@media (max-width:373px){.nom-app{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}}
@media (max-width:479px){html:not([lang=ca]) .nom-app,html[data-mida=gran] .nom-app{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}}
@media (max-width:599px){html[data-mida=molt-gran] .nom-app{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}}
@media (max-width:359px){html[data-mida=molt-gran] .capcalera{position:static}}
.banners:empty{display:none}
.banners>.banner{border-radius:0;border-left:0;border-right:0}
main#app{flex:1;width:100%;max-width:800px;margin:0 auto}
main#app:focus{outline:none}
.peu{width:100%;max-width:800px;margin:0 auto;padding:14px 16px calc(20px + env(safe-area-inset-bottom));border-top:1px solid var(--linia);font-size:1rem;color:var(--text-2)}
/* enllaços tel: dins del text: zona de toc de 48×48 (§5.1) sense eixamplar la línia */
.peu a,.tel{display:inline-flex;align-items:center;justify-content:center;min-width:48px;min-height:48px;padding:0 6px;margin:-8px 0;vertical-align:middle;font-weight:600;color:var(--marca-fort)}
.peu p{line-height:2}

/* ------------------------------------------------------------------ disposició */
.pag{padding:16px 16px 32px}
.pila{display:flex;flex-direction:column;gap:16px}.pila-p{display:flex;flex-direction:column;gap:8px}
.sec{display:flex;flex-direction:column;gap:12px;margin-top:8px}
.entrada{font-size:1.25rem;line-height:1.45}
.petit{font-size:1rem;color:var(--text-2)}.data-linia{color:var(--text-2);font-size:1rem}
.lbl{font-weight:600}
.heroi{display:flex;flex-direction:column;gap:12px;padding-top:8px}
.confi{display:flex;gap:10px;align-items:flex-start;font-size:1rem;color:var(--text-2)}
.accions{display:flex;flex-direction:column;gap:10px;width:100%;max-width:420px}

/* ------------------------------------------------------------------ botons */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:48px;padding:10px 20px;border-radius:var(--r-m);border:2px solid transparent;font:600 1.25rem/1.2 var(--f-cos);text-align:center;text-decoration:none;cursor:pointer;background:none;color:var(--text)}
.btn-bloc{display:flex;width:100%}
.btn-p{background:var(--marca);color:var(--sobre-marca);min-height:56px}.btn-p:hover{background:var(--marca-fort)}
.btn-s{background:var(--panell);border-color:var(--marca);color:var(--marca-fort)}.btn-s:hover{background:var(--marca-suau)}
.btn-t{color:var(--marca-fort);text-decoration:underline;text-underline-offset:3px;padding:10px 8px}
.btn[disabled]{background:var(--fons-2);color:var(--text-2);border:2px dashed var(--linia-fort);cursor:not-allowed}
.btn-petit{min-height:48px;padding:6px 14px;font-size:1.0625rem}
.btn-amb-nota{display:flex;flex-direction:column;gap:6px}
.ajuda-b{font-size:1rem;color:var(--text-2);text-align:center;max-width:none}
.pill-aviat{display:inline-block;font:600 1rem var(--f-cos);background:var(--info-suau);color:var(--text);padding:1px 10px;border-radius:999px;border:1px solid var(--info)}
/* Increment 1: botons al final (no enganxats): amb «Desa» desactivat, una barra fixa taparia un terç de la pantalla. */
.barra-acc{margin-top:8px;padding-top:16px;border-top:1px solid var(--linia);display:flex;flex-direction:column;gap:12px}

/* ------------------------------------------------------------------ bàners */
.banner{display:flex;gap:10px;align-items:flex-start;padding:12px 16px;border:1px solid var(--linia);border-radius:var(--r-m);font-size:1.125rem}
.banner>.ic,.banner>.gl{margin-top:4px}
.banner .ban-t{flex:1;display:flex;flex-direction:column;gap:8px;align-items:flex-start;min-width:0}
.b-info{background:var(--info-suau)}
.b-avis{background:var(--n1-s);--c:var(--n1)}
.b-demo{background:var(--tira);border:2px solid var(--n1);--c:var(--n1);font-weight:600}
.b-offline{background:var(--panell-2);--c:var(--text-2)}
.b-urgent{background:var(--urg-f);color:var(--urg-t);border:2px solid var(--urg-v);--c:#fff;font-size:1.125rem}
.b-urgent .gl{width:22px;height:22px}
.b-urgent p,.b-urgent h2{color:var(--urg-t)}
.urg-tit{font:600 1.625rem/1.2 var(--f-disp);font-stretch:condensed}
.urg-val{font:600 2.5rem/1.05 var(--f-disp);font-stretch:condensed}
.urg-val small{font:400 1.125rem var(--f-cos)}
.urg-ictus{font-weight:700}
.urg-accions{display:flex;flex-wrap:wrap;gap:10px;width:100%}
.btn-urg{flex:1 1 12rem;min-height:56px;color:var(--urg-t);border-color:var(--urg-t);background:transparent}
.btn-urg:hover{background:rgba(255,255,255,.12)}
.b-urgent :focus-visible{outline-color:#fff}

/* ------------------------------------------------------------------ nivells, xips, rajoles i targetes */
.lv-n0{--c:var(--n0);--s:var(--n0-s)}.lv-n1{--c:var(--n1);--s:var(--n1-s)}.lv-n2{--c:var(--n2);--s:var(--n2-s)}
.lv-n3{--c:var(--n3);--s:var(--n3-s)}.lv-nb{--c:var(--nb);--s:var(--nb-s)}.lv-neutre{--c:var(--text-2);--s:var(--panell-2)}.lv-cap{--c:var(--linia)}
.xip{display:inline-flex;align-items:center;gap:6px;min-height:32px;padding:4px 12px;border-radius:999px;background:var(--s);border:1px solid var(--c);color:var(--text);font:600 1rem/1.2 var(--f-cos)}
.xips{display:flex;flex-wrap:wrap;gap:8px}
.kpis{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
@media (max-width:359px){.kpis{grid-template-columns:1fr}}
html[data-mida=molt-gran] .kpis{grid-template-columns:1fr}
@media (max-width:599px){.kpis>.kpi:last-child:nth-child(odd){grid-column:1/-1}}
@media (min-width:600px){html:not([data-mida=molt-gran]) .kpis{grid-template-columns:repeat(3,minmax(0,1fr))}}
.kpi{display:flex;flex-direction:column;align-items:flex-start;gap:6px;min-height:120px;padding:14px 12px;background:var(--panell);border-radius:var(--r-m);box-shadow:var(--om1);border-left:4px solid var(--c,var(--linia));color:var(--text)}
.kpi-et{font-weight:600;font-size:1rem;color:var(--text-2)}
.kpi-val{font:600 2.5rem/1.05 var(--f-disp);font-stretch:condensed}
.kpi-val small{font:400 1.125rem var(--f-cos);color:var(--text-2)}
.kpi-prov{font-size:1rem;color:var(--text-2)}
.zona{background:var(--panell);border-radius:var(--r-m);box-shadow:var(--om1);border-left:4px solid var(--c,var(--linia));padding:16px 16px 14px 14px;display:flex;flex-direction:column;gap:10px}
.z-cap{display:flex;flex-wrap:wrap;align-items:center;gap:8px 10px}
.z-cap h3{font:600 1.25rem/1.25 var(--f-cos);flex:1;min-width:9ch}
.z-val{font:600 1.625rem/1.1 var(--f-disp);font-stretch:condensed}
.deriv{display:flex;gap:10px;align-items:flex-start;background:var(--info-suau);border-radius:var(--r-s);padding:10px 12px;font-size:1.125rem;max-width:none}
.deriv>.ic{color:var(--info)}
/* la recomanació és el text clínic més important: mida de text normal (18 px, §5.1), mai més petita */
.recom{font-size:1.125rem}.recom>.ic{color:var(--info)}
.recom-cap{font:600 1.125rem/1.4 var(--f-cos);color:var(--text)}
.signat{display:flex;align-items:flex-start;gap:10px;font-size:1rem;font-weight:600}
.signat>.ic{color:var(--n0);margin-top:1px}
.pa-gran{font:600 2.5rem/1.05 var(--f-disp);font-stretch:condensed}
.pa-gran small{font:400 1.125rem var(--f-cos);color:var(--text-2)}
.pa-linia{font-size:1rem;color:var(--text-2)}
.prov-frase{font-weight:600}
.avisos-fixos{margin:0;padding-left:20px;font-size:1.125rem;color:var(--text)}
.nota-n{display:flex;gap:10px;align-items:flex-start;background:var(--panell-2);border:1px solid var(--linia);border-radius:var(--r-m);padding:12px 14px;font-size:1.125rem}
.nota-n>.ic{color:var(--info)}
.avis-l{display:flex;gap:8px;align-items:flex-start;font-weight:600;font-size:1.125rem}
.avis-l>.ic{width:20px;height:20px;margin-top:2px;color:var(--n1-t)}
.acc{border-top:1px solid var(--linia)}
.acc>summary{display:flex;align-items:center;justify-content:space-between;gap:8px;min-height:52px;padding:8px 0;cursor:pointer;font-weight:600;list-style:none}
.acc>summary::-webkit-details-marker{display:none}
.acc>summary::after{content:"";flex:none;width:10px;height:10px;border-right:2.5px solid currentColor;border-bottom:2.5px solid currentColor;transform:rotate(45deg);margin:0 6px 4px 0}
.acc[open]>summary::after{transform:rotate(-135deg);margin-bottom:-4px}
.acc-cos{padding:0 0 12px;display:flex;flex-direction:column;gap:10px}
.valors{margin:0;background:var(--panell);border-radius:var(--r-m);box-shadow:var(--om1)}
.vrow{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:6px 12px;padding:12px 14px;border-top:1px solid var(--linia)}
.vrow:first-child{border-top:0}.vrow dt{font-weight:600}
/* el valor sempre a la dreta, encara que baixi de línia */
.vrow dd{margin:0 0 0 auto;display:flex;flex-wrap:wrap;gap:6px;align-items:center;justify-content:flex-end}
.vv{font-weight:600}
.prov{display:inline-flex;align-items:center;gap:6px;min-height:32px;padding:2px 10px;border:1px solid var(--linia-fort);border-radius:999px;background:var(--panell-2);color:var(--text-2);font:500 1rem var(--f-cos)}

/* ------------------------------------------------------------------ S01 i S05 */
.progres{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:12px}
.progres li{display:flex;gap:12px;align-items:center;font-size:1.125rem;color:var(--text-2)}
.progres li::before{content:"";flex:none;display:grid;place-items:center;width:26px;height:26px;border-radius:50%;border:3px solid var(--linia-fort);font:700 14px var(--f-cos)}
.progres li.actiu{color:var(--text)}
.progres li.actiu::before{border-color:var(--marca)}
.progres li.fet{color:var(--text);font-weight:600}
.progres li.fet::before{content:"✓";color:#fff;background:var(--n0);border-color:var(--n0)}
.avis-lent{font-weight:600;color:var(--n1-t)}
.buit{display:flex;flex-direction:column;align-items:center;text-align:center;gap:12px;padding:24px 8px}
.buit-ic{display:grid;place-items:center;width:72px;height:72px;border-radius:50%;background:var(--s,var(--marca-suau))}
.buit-ic .gl{width:30px;height:30px}
.codi-sup{font:500 1rem var(--f-mono);color:var(--text-3)}

/* ------------------------------------------------------------------ full «Pantalla i idioma» */
dialog.full{width:100%;max-width:640px;max-height:92vh;margin:auto auto 0;padding:6px 16px calc(24px + env(safe-area-inset-bottom));border:0;border-radius:var(--r-l) var(--r-l) 0 0;background:var(--panell);color:var(--text);box-shadow:var(--om3);overflow:auto}
dialog.full::backdrop{background:rgba(16,22,19,.55)}
@media (min-width:700px){dialog.full{margin:auto;border-radius:var(--r-l)}}
.full-cap{display:flex;align-items:center;gap:8px;padding:10px 0 12px}
.full-cap h2{flex:1;font-size:1.625rem}
.full-cos{display:flex;flex-direction:column;gap:18px}
.camp-g{display:flex;flex-direction:column;gap:6px;min-width:0}
.seg{display:flex;flex-wrap:wrap;gap:2px;padding:2px;border:2px solid var(--linia-fort);border-radius:24px;background:var(--panell)}
.seg>button{flex:1 1 auto;min-height:48px;padding:6px 12px;border:0;border-radius:20px;background:none;color:var(--text);font:600 1rem var(--f-cos);cursor:pointer;text-align:center}
.seg>[aria-checked=true]{background:var(--marca);color:var(--sobre-marca)}

/* ------------------------------------------------------------------ moviment */
@media (prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}

/* ------------------------------------------------------------------ escriptori */
@media (min-width:960px){
  .capcalera{padding-left:max(16px,calc((100vw - 800px)/2));padding-right:max(16px,calc((100vw - 800px)/2))}
  .pag{padding:24px 24px 40px}
}

@media print{
  .capcalera,.barra-acc,.banners{display:none}
  body{background:#fff;color:#000}
}
