Files
ArcaSuite/themes/tielogic.css
T
Adriano 7955e0e517 refactor(themes): rinomina tielogic-devnotes.css → tielogic.css
Il nome "devnotes" era fuorviante: il theme è unico e copre sia i report
tecnici stile DEVNOTES (template "report-analisi") sia le offerte
economiche stile docx Tielogic (template "offerta"). Le classi sono
partizionate per uso ma vivono nello stesso file.

- themes/tielogic.css: header esteso con descrizione delle famiglie
  di classi (status-card+badge per report, table.financial per offerte,
  cover+acceptance comuni)
- templates_seed/{offerta,report-analisi}/template.md: aggiornato il
  riferimento `stylesheet:` nel frontmatter
- README: chiarito che themes/ contiene un theme unico

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-25 14:06:22 +02:00

333 lines
6.8 KiB
CSS

/* Tielogic — A4 portrait theme (unico)
*
* Copre due famiglie di documento con la stessa identità visiva:
* 1. Report tecnico stile DEVNOTES (template "report-analisi")
* classi: .status-card, .badge-{ok,parziale,drift,fail}, blockquote
* 2. Offerta economica stile docx Tielogic (template "offerta")
* classi: table.financial, tr.total-row, td.num
*
* Classi comuni: .cover (logo TIELOGIC + box FORNITORE/CLIENTE),
* .acceptance + .signature-grid (firme), badge generici impatto/verdetto.
*
* Riferito dal frontmatter dei template via `stylesheet:` (md-to-pdf).
*/
@page {
size: A4 portrait;
margin: 22mm 22mm 22mm 22mm;
}
html, body {
font-family: "Inter", "Segoe UI", -apple-system, BlinkMacSystemFont, sans-serif;
font-size: 10.5pt;
color: #1c2533;
line-height: 1.45;
margin: 0;
padding: 0;
-webkit-print-color-adjust: exact;
print-color-adjust: exact;
}
h1, h2, h3, h4 {
font-weight: 700;
color: #0d1b2a;
letter-spacing: 0.01em;
page-break-after: avoid;
}
h2 {
font-size: 14pt;
text-transform: uppercase;
border-left: 4px solid #1f4ed8;
padding-left: 10px;
margin-top: 22px;
margin-bottom: 14px;
}
h3 { font-size: 11.5pt; margin-top: 18px; margin-bottom: 8px; }
p { margin: 0 0 8px 0; }
code, pre {
font-family: "JetBrains Mono", "Fira Code", Consolas, monospace;
font-size: 9pt;
}
code { background: #f1f3f7; padding: 1px 5px; border-radius: 3px; }
pre {
background: #0d1b2a;
color: #e6e9ef;
padding: 12px 14px;
border-radius: 6px;
overflow-x: auto;
page-break-inside: avoid;
}
pre code { background: transparent; color: inherit; padding: 0; }
table {
width: 100%;
border-collapse: collapse;
margin: 10px 0 16px 0;
font-size: 9.5pt;
page-break-inside: avoid;
}
th {
background: #f4f6fa;
text-align: left;
font-weight: 600;
text-transform: uppercase;
font-size: 8.5pt;
letter-spacing: 0.04em;
border-bottom: 2px solid #c8d0dd;
padding: 8px 10px;
color: #0d1b2a;
}
td {
padding: 7px 10px;
border-bottom: 1px solid #e3e7ee;
vertical-align: top;
}
tr:nth-child(even) td { background: #fafbfd; }
blockquote {
background: #0d1b2a;
color: #e6e9ef;
border-left: 4px solid #1f4ed8;
padding: 14px 18px;
margin: 14px 0;
border-radius: 4px;
page-break-inside: avoid;
}
blockquote strong { color: #ffffff; }
hr {
border: 0;
border-top: 1px solid #c8d0dd;
margin: 18px 0;
}
/* ===== COVER stile Tielogic (bianca) ===== */
.cover {
margin: -22mm -22mm 0 -22mm;
padding: 35mm 22mm 22mm 22mm;
height: 297mm;
box-sizing: border-box;
page-break-after: always;
text-align: center;
background: #ffffff;
}
.cover .brand {
font-size: 40pt;
font-weight: 800;
color: #2767d8;
letter-spacing: 0.06em;
margin: 0;
line-height: 1;
}
.cover .brand-tagline {
font-size: 12pt;
color: #5a6478;
margin-top: 6px;
letter-spacing: 0.02em;
}
.cover .brand-divider {
width: 80mm;
height: 1.2px;
background: #c8d0dd;
margin: 22mm auto 22mm auto;
}
.cover .doc-title {
font-size: 26pt;
font-weight: 700;
color: #0d1b2a;
text-transform: uppercase;
letter-spacing: 0.01em;
margin: 0 0 8px 0;
line-height: 1.15;
}
.cover .doc-product {
font-size: 14pt;
color: #2c3a52;
margin: 0 0 4px 0;
}
.cover .doc-ref {
font-size: 10pt;
color: #6c7a92;
margin: 0 0 18mm 0;
}
.cover .info-box {
display: flex;
background: #eef3fb;
border-radius: 4px;
padding: 14px 18px;
margin: 0 auto;
max-width: 150mm;
text-align: left;
gap: 12mm;
}
.cover .info-box .info-col { flex: 1; font-size: 10pt; line-height: 1.55; }
.cover .info-box .info-label {
font-size: 8.5pt;
font-weight: 700;
color: #2767d8;
text-transform: uppercase;
letter-spacing: 0.08em;
margin-bottom: 4px;
}
.cover .info-box .info-name { font-weight: 700; color: #0d1b2a; margin-bottom: 2px; }
.cover .doc-validity {
margin-top: 16mm;
font-size: 10pt;
color: #5a6478;
font-style: italic;
}
/* ===== BADGES ===== */
.badge {
display: inline-block;
padding: 2px 8px;
border-radius: 3px;
font-size: 8.5pt;
font-weight: 700;
letter-spacing: 0.05em;
vertical-align: middle;
text-transform: uppercase;
}
.badge-ok { background: #d4f4dd; color: #0a6b32; }
.badge-parziale { background: #fef3c7; color: #8a5a00; }
.badge-drift { background: #fde4cc; color: #9a4a00; }
.badge-fail { background: #fcd3d3; color: #9a1a1a; }
.badge-alto { background: #fcd3d3; color: #9a1a1a; }
.badge-medio { background: #fef3c7; color: #8a5a00; }
.badge-basso { background: #d4f4dd; color: #0a6b32; }
.badge-fattibile { background: #d4f4dd; color: #0a6b32; }
.badge-non-fattibile { background: #fcd3d3; color: #9a1a1a; }
.badge-fattibile-riserva { background: #fef3c7; color: #8a5a00; }
/* ===== STATUS CARDS ===== */
.status-card {
border-left: 4px solid #c8d0dd;
background: #f7f9fc;
padding: 10px 14px;
margin: 8px 0;
border-radius: 0 4px 4px 0;
page-break-inside: avoid;
}
.status-card .name {
font-weight: 700;
font-size: 10pt;
letter-spacing: 0.04em;
text-transform: uppercase;
color: #0d1b2a;
margin-bottom: 4px;
}
.status-card.ok { border-left-color: #2aa86b; }
.status-card.parziale { border-left-color: #d99a1a; }
.status-card.drift { border-left-color: #c46b00; }
.status-card.fail { border-left-color: #c8242a; }
/* ===== TABELLE FINANZIARIE (offerte) ===== */
table.financial { font-size: 10pt; }
table.financial th { background: #2767d8; color: #ffffff; }
table.financial td.num,
table.financial th.num { text-align: right; font-variant-numeric: tabular-nums; white-space: nowrap; }
table.financial tr.total-row td {
background: #eef3fb;
font-weight: 700;
color: #0d1b2a;
border-top: 2px solid #2767d8;
}
/* H1 prodotto/servizio (apertura corpo offerta dopo cover) */
h1 {
font-size: 22pt;
color: #0d1b2a;
margin: 6mm 0 6mm 0;
font-weight: 700;
page-break-before: avoid;
}
/* ===== ACCETTAZIONE / FIRME (stile Tielogic) ===== */
.acceptance {
margin-top: 18mm;
page-break-inside: avoid;
}
.acceptance h2.acceptance-title {
font-size: 22pt;
color: #2767d8;
text-transform: uppercase;
border-left: none;
padding-left: 0;
margin-bottom: 12px;
letter-spacing: 0.01em;
}
.acceptance .acceptance-intro {
margin-bottom: 22mm;
font-size: 10.5pt;
}
.signature-grid {
display: flex;
gap: 14mm;
margin-bottom: 16mm;
}
.signature-grid .sig-col { flex: 1; font-size: 10pt; }
.signature-grid .sig-col .sig-party {
font-weight: 700;
color: #0d1b2a;
margin-bottom: 22mm;
}
.signature-grid .sig-col .sig-line {
border-top: 1px solid #1c2533;
padding-top: 4px;
font-size: 9pt;
color: #5a6478;
}
.acceptance .place-date {
margin-top: 8mm;
font-size: 10pt;
color: #1c2533;
}
.acceptance .place-date .pd-line {
display: inline-block;
border-bottom: 1px solid #1c2533;
width: 60mm;
margin: 0 8px;
}
/* ===== PAGE BREAK ===== */
.page-break { page-break-after: always; }