@layer ficha {

@scope (.cos-ficha) {
:scope { --realce: var(--il-cel); }
.pg { height: 100%; display: grid; gap: 4mm; min-height: 0; }
.pg-cami { grid-template-rows: minmax(0, 1fr) minmax(0, 1fr); }
.pg-direccio { grid-template-rows: minmax(0, 1.1fr) minmax(0, 1.5fr) minmax(0, .5fr); }
.pg .ex { height: 100%; }
.pg .ex-cos { display: grid; grid-template-rows: minmax(0, 1fr); min-height: 0; }
.pg .ex-cos > * { min-height: 0; }
.dib { display: grid; grid-template-rows: minmax(0, 1fr); justify-items: center; min-height: 0; }
.cami-svg { height: 100%; width: 100%; }

.camins-u { display: grid; grid-template-rows: repeat(3, minmax(0, 1fr)); gap: 3mm; }
.ca-f { display: grid; grid-template-columns: 90mm 8mm minmax(0, 1fr) 8mm 40mm; align-items: center; }
.ca-c { grid-column: 1; height: 100%; min-height: 0; display: grid; grid-template-rows: minmax(0, 1fr); padding: 1.5mm 3mm; border: var(--gruix) solid var(--linia); border-radius: var(--radi); background: color-mix(in srgb, var(--realce) 30%, var(--paper)); }
.ca-f .punt:nth-of-type(1) { grid-column: 2; justify-self: center; }
.ca-f .punt:nth-of-type(2) { grid-column: 4; justify-self: center; }
.nom-c { grid-column: 5; text-align: center; font-weight: 800; font-size: var(--t-l); padding: 3mm 2mm; border: var(--gruix) solid var(--linia); border-radius: var(--radi); background: var(--paper); }

.cursa { display: grid; grid-template-rows: minmax(0, 1fr) auto auto; gap: 2.5mm; }
.pista-c { display: grid; grid-template-rows: repeat(2, minmax(0, 1fr)); gap: 3mm; padding: 2mm 3mm; border: var(--gruix) solid var(--linia); border-radius: var(--radi); background: var(--paper); }
.carril { display: grid; grid-template-columns: 9mm minmax(0, 1fr) 19mm; align-items: center; gap: 3mm; }
.carril b { font-size: var(--t-l); }
.linia-c { position: relative; height: 60%; border-bottom: 3px solid var(--linia); background: repeating-linear-gradient(to right, var(--il-gris) 0 1px, transparent 1px 10%); }
.linia-c i { position: absolute; bottom: 3px; transform: translateX(-50%); display: grid; place-items: center; width: 9mm; height: 9mm; font-style: normal; font-weight: 800; border: var(--gruix) solid var(--linia); border-radius: 50%; background: color-mix(in srgb, var(--realce) 70%, var(--paper)); }
.meta-c { white-space: nowrap; font-weight: 800; font-size: var(--t-s); text-align: center; padding: .1em .3em; border: var(--gruix) dashed var(--acento); border-radius: var(--radi); }
.qc { display: flex; align-items: center; justify-content: space-between; gap: 4mm; padding: 1.5mm 4mm; border: var(--gruix) solid var(--linia); border-radius: var(--radi); background: var(--paper); font-weight: 700; }
.qc span { display: flex; gap: 8mm; }

.quadricula-d { display: grid; grid-template-columns: minmax(0, 1fr) 46mm; grid-template-rows: minmax(0, 1fr); gap: 5mm; }
.quad { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); grid-template-rows: repeat(5, minmax(0, 1fr)); gap: 1.5mm; }
.cas { padding: 0; border-radius: 6px; background: var(--paper); border: var(--gruix) solid var(--linia); }
.cas.on { background: var(--acento); }
.estrella { display: grid; place-items: center; font-size: var(--t-l); line-height: 1; overflow: hidden; border: var(--gruix) solid var(--linia); border-radius: 6px; background: color-mix(in srgb, var(--il-groc) 60%, var(--paper)); }
.llegenda-d { display: grid; align-content: start; gap: 3mm; padding: 3mm; border: var(--gruix) solid var(--linia); border-radius: var(--radi); background: color-mix(in srgb, var(--realce) 30%, var(--paper)); }
.llegenda-d b { padding: 2mm; text-align: center; border: var(--gruix) solid var(--linia); border-radius: 999px; background: var(--paper); }
.llegenda-d p { font-weight: 700; font-size: var(--t-s); line-height: 1.25; }

.direccions { display: grid; grid-template-rows: auto minmax(0, 1fr); gap: 3mm; }
.direccions .banc { justify-content: space-around; min-height: 0; padding: .4rem .6rem; }
.quatre-dir { display: grid; grid-template-columns: minmax(0, 1fr); grid-template-rows: repeat(4, minmax(0, 1fr)); gap: 2.5mm; }
.dr { display: grid; grid-template-columns: 26mm minmax(0, 1fr) 36mm; align-items: center; gap: 3mm; padding: 1.5mm 3mm 1.5mm 1.5mm; border: var(--gruix) solid var(--linia); border-radius: var(--radi); background: var(--paper); }
.dr .im { height: 100%; }
.dr p { font-weight: 700; font-size: var(--t-m); line-height: 1.2; }
.dr .zona { width: 100%; height: 10mm; min-height: 0; padding: 0; }
.dr .zona .arrossega { min-height: 0; height: 100%; font-size: var(--t-s); padding: 0 .4rem; }

}
}
