@import url('https://fonts.googleapis.com/css2?family=Syne:wght@700;800&family=DM+Sans:wght@400;500;600&display=swap');

* { margin: 0; padding: 0; box-sizing: border-box; }

body {
font-family: 'DM Sans', sans-serif;
background: #ffffff;
color: #1a1a1a;
width: 210mm;
min-height: 297mm;
margin: 0 auto;
padding: 10mm 10mm 8mm;
font-size: 8.5pt;
}

/* HEADER */
.header {
display: flex;
align-items: center;
justify-content: space-between;
margin-bottom: 7mm;
border-bottom: 1.5px solid #c93d1e;
padding-bottom: 4mm;
}
.header-title {
font-family: 'Syne', sans-serif;
font-size: 18pt;
font-weight: 800;
letter-spacing: -0.5px;
line-height: 1;
color: #1a1a1a;
}
.header-title span { color: #c93d1e; }
.header-sub {
font-size: 7.5pt;
color: #888;
margin-top: 2px;
letter-spacing: 1px;
text-transform: uppercase;
}
.header-badge {
background: #c93d1e;
color: #fff;
font-family: 'Syne', sans-serif;
font-size: 7pt;
font-weight: 700;
padding: 5px 12px;
border-radius: 20px;
letter-spacing: 1px;
text-transform: uppercase;
text-align: center;
line-height: 1.5;
}
.header-badge-sub {
display: block;
font-size: 6pt;
font-weight: 400;
letter-spacing: 0.5px;
text-transform: none;
opacity: 0.88;
}

/* GRID */
.grid {
display: grid;
grid-template-columns: repeat(4, 1fr);
gap: 4mm;
}

/* CARD */
.card {
background: #f8f7f5;
border-radius: 8px;
padding: 5mm 4.5mm 4mm;
border: 1px solid #e0ddd7;
display: flex;
flex-direction: column;
gap: 3.5mm;
position: relative;
overflow: hidden;
}
.card::before {
content: '';
position: absolute;
top: 0; left: 0; right: 0;
height: 3px;
background: var(--accent, #c93d1e);
border-radius: 8px 8px 0 0;
}

.card-header {
display: flex;
align-items: center;
gap: 5px;
}

.card-icon {
font-size: 18pt;
line-height: 1;
flex-shrink: 0;
}

.card-acte {
font-family: 'Syne', sans-serif;
font-size: 6pt;
font-weight: 700;
letter-spacing: 1.5px;
text-transform: uppercase;
color: var(--accent, #c93d1e);
line-height: 1.3;
}

.card-title {
font-family: 'Syne', sans-serif;
font-size: 9pt;
font-weight: 700;
color: #1a1a1a;
line-height: 1.2;
}

.card-punch {
font-size: 7.5pt;
font-style: italic;
color: #4a4540;
line-height: 1.4;
border-left: 2px solid var(--accent, #c93d1e);
padding-left: 5px;
}

.section-label {
font-size: 6pt;
font-weight: 600;
text-transform: uppercase;
letter-spacing: 1px;
color: #999;
margin-top: 1mm;
}

.tag-list {
display: flex;
flex-wrap: wrap;
gap: 2px;
}
.tag {
font-size: 6.5pt;
border-radius: 3px;
padding: 1.5px 5px;
}
.tag.danger {
background: #fdecea;
color: #9b2214;
border: 1px solid #f5c0b8;
}
.tag.good {
background: #eaf5ee;
color: #1a6b38;
border: 1px solid #b2dfc0;
}

/* BOTTOM BAND */
.bottom-band {
margin-top: 6mm;
background: #f8f7f5;
border: 1px solid #e0ddd7;
border-radius: 8px;
padding: 4mm 5mm;
display: grid;
grid-template-columns: 1fr 1fr 1fr 1fr;
gap: 4mm;
align-items: start;
}
.bottom-band-title {
font-family: 'Syne', sans-serif;
font-size: 8pt;
font-weight: 700;
color: #1a1a1a;
margin-bottom: 2mm;
}
.bottom-band-title span { color: #c93d1e; }
.rule {
display: flex;
align-items: flex-start;
gap: 5px;
margin-bottom: 2px;
}
.rule-icon { font-size: 9pt; flex-shrink: 0; line-height: 1.4; color: #c93d1e; }
.rule-text { font-size: 7pt; color: #4a4540; line-height: 1.4; }

.footer {
margin-top: 4mm;
display: flex;
justify-content: space-between;
align-items: center;
font-size: 6pt;
color: #aaa;
letter-spacing: 0.5px;
}
.footer a { color: #c93d1e; text-decoration: none; }

@media print {
body { background: #ffffff !important; -webkit-print-color-adjust: exact; print-color-adjust: exact; }
}