.size-hero { padding-top: 120px; padding-bottom: 32px; }
.size-hero h1 { max-width: 840px; margin: 18px 0; font-family: var(--font-display); font-size: clamp(2.1rem, 5vw, 4rem); line-height: 1.06; letter-spacing: -.045em; }
.size-hero > p { max-width: 720px; color: #a1a1aa; }
.size-tool { padding-bottom: 64px; }
.size-shell { grid-template-columns: minmax(0, 1fr) minmax(0, .9fr); }
.size-main-input input { font-family: var(--font-mono); font-size: 1.7rem; letter-spacing: -.04em; min-height: 68px; }
.size-examples { display: flex; flex-wrap: wrap; gap: 7px; margin: 16px 0; }
.size-examples button { padding: 6px 9px; border: 1px solid var(--color-border); border-radius: 5px; color: #a1a1aa; background: transparent; font: .7rem var(--font-mono); cursor: pointer; }
.size-examples button:hover { color: var(--color-accent); border-color: var(--color-accent); }
.size-sidewall { padding: 12px 0 20px; text-align: center; color: #777780; }
.size-sidewall svg { display: block; width: 100%; max-width: 290px; height: 70px; margin: auto; color: #45454e; }
.size-sidewall svg text { font: 18px var(--font-mono); fill: #c1c1c8; }
.size-sidewall p { font-size: .7rem; }
.size-diameter-choice { margin: 18px 0; }
.size-page [hidden] { display: none !important; }
.size-result { padding: 34px; position: sticky; top: 24px; }
.size-result-code { font: 700 clamp(2.6rem, 5vw, 4rem)/1.15 var(--font-mono); letter-spacing: -.075em; margin: 24px 0 14px; overflow-wrap: anywhere; }
.size-status { min-height: 55px; margin-bottom: 22px; font-size: .78rem; color: #a1a1aa; }
.size-measures { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; border-block: 1px solid var(--color-border); padding: 19px 0; }
.size-measures strong, .size-measures span { display: block; }
.size-measures strong { font-family: var(--font-mono); font-size: 1.25rem; }
.size-measures span { color: #a1a1aa; font-size: .67rem; margin-top: 7px; }
.size-wheel-family { margin: 22px 0; }
.size-wheel-family span { display: block; font-size: .72rem; color: #a1a1aa; margin-bottom: 7px; }
.size-wheel-family strong { font-family: var(--font-mono); font-size: .92rem; }
.size-result .result-actions { display: grid; grid-template-columns: 1fr; margin-top: 22px; }
.size-result .result-action:disabled { opacity: .4; cursor: not-allowed; }
.size-page .control-hint { color: #92929b; }
.size-check { color: #a1a1aa; margin: 12px 0; font-size: .78rem; line-height: 1.6; }
.size-check:empty { display: none; }
.size-page [data-state="good"] { color: #a3c8ae; }
.size-page [data-state="bad"], .size-page [data-state="attention"] { color: #ffb277; }
.size-text-button { margin-top: 10px; padding: 0; border: 0; background: none; color: var(--color-accent); font: .74rem var(--font-sans); text-align: left; cursor: pointer; }
.size-pressure-link { display: inline-block; margin-top: 25px; color: var(--color-accent); font-size: .76rem; }
.size-knowledge { padding-bottom: 70px; }
.size-knowledge-heading { max-width: 650px; margin-bottom: 28px; }
.size-knowledge-heading h2 { margin: 16px 0 12px; font-family: var(--font-display); font-size: clamp(1.8rem, 4vw, 2.8rem); letter-spacing: -.035em; }
.size-knowledge-heading p { color: #a1a1aa; }
.size-guide { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px 36px; }
.size-guide > section { padding-top: 20px; border-top: 1px solid var(--color-border); }
.size-guide-kicker { display: block; font: .64rem var(--font-mono); letter-spacing: .08em; color: var(--color-accent); margin-bottom: 9px; }
.size-guide h3 { font-family: var(--font-display); font-size: 1.15rem; margin-bottom: 9px; }
.size-guide p { color: #a1a1aa; font-size: .83rem; }
.size-reference-table { grid-column: 1 / -1; }
.size-reference-table table { width: 100%; border-collapse: collapse; text-align: left; font-size: .8rem; }
.size-reference-table th, .size-reference-table td { padding: 7px 0; border-bottom: 1px solid var(--color-border); }
.size-reference-table th { color: #a1a1aa; font-size: .7rem; font-weight: 500; }
.size-reference-table td:first-child { width: 35%; font-family: var(--font-mono); }
.size-table-note { margin-top: 10px; }
.size-sources { display: flex; gap: 14px; flex-wrap: wrap; margin-top: 40px; color: #92929b; font-size: .7rem; }
.size-sources a:hover { color: var(--color-accent); }
.size-print-sheet { display: none; }
@media (max-width: 800px) {
  .size-shell { grid-template-columns: 1fr; }
  .size-result { position: static; border-left: 0; border-top: 1px solid var(--color-border); }
}
@media (max-width: 560px) {
  .size-hero { padding-top: 100px; }
  .size-result, .size-page .calculator-controls { padding: 24px; }
  .size-guide { grid-template-columns: 1fr; }
}
@page { size: A4 portrait; margin: 12mm; }
@media print {
  .size-page > main, .size-page > .subpage-brand, .size-page > .lang-switch, .size-page > .subpage-coffee-note, .size-page > footer { display: none !important; }
  .size-print-sheet { display: block !important; font-size: 9pt; line-height: 1.45; color: #111; }
  .size-print-header { display: flex; flex-direction: column; gap: 2mm; border-bottom: 1pt solid #111; padding-bottom: 4mm; margin-bottom: 6mm; }
  .size-print-header .print-brand { font: 700 25pt/1.1 var(--font-display); color: #000; letter-spacing: -.02em; }
  .size-print-header > span { font: 8pt var(--font-mono); letter-spacing: .05em; text-transform: uppercase; }
  .size-print-guide { display: grid; grid-template-columns: 1fr 1fr; gap: 5mm 8mm; }
  .size-print-guide section { break-inside: avoid; }
  .size-print-sheet h3 { font-family: var(--font-display); font-size: 12pt; margin-bottom: 2mm; line-height: 1.2; }
  .size-print-sheet .size-guide-kicker { font-size: 6.5pt; margin-bottom: 1.5mm; color: #555; }
  .size-print-guide .size-reference-table { grid-column: 1 / -1; }
  .size-print-sheet table { font-size: 8pt; }
  .size-print-sheet th, .size-print-sheet td { padding: 1.1mm 0; border-color: #ddd; }
  .size-print-sheet th { color: #333; font-size: 7pt; }
  .size-print-sheet .size-table-note { font-size: 7pt; color: #444; margin-top: 2mm; }
  .size-print-footer { margin-top: 6mm; padding-top: 3mm; border-top: .5pt solid #bbb; font-size: 6.5pt; color: #444; }
  .size-print-footer span { display: block; margin-top: 1.5mm; font-family: var(--font-mono); }
  .size-print-bike { margin-bottom: 6mm; }
  .size-print-bike h2 { font: 700 20pt/1.15 var(--font-display); overflow-wrap: anywhere; }
  .size-print-bike p { color: #555; font-size: 8pt; margin-top: 2mm; }
  .size-print-pair { display: grid; grid-template-columns: 1fr 1fr; gap: 6mm; }
  .size-print-card { padding: 4mm; border: .5pt solid #aaa; border-radius: 2mm; break-inside: avoid; overflow-wrap: anywhere; }
  .size-print-card h3 { font: 700 23pt/1.15 var(--font-mono); margin-bottom: 3mm; }
  .size-print-sheet dl { margin-top: 3mm; }
  .size-print-sheet dl > div { margin-top: 3mm; }
  .size-print-sheet dt { font: 6.5pt var(--font-mono); text-transform: uppercase; color: #555; margin-bottom: 1mm; }
  .size-print-sheet dd { font-size: 8.5pt; }
  .size-print-extra { display: grid; grid-template-columns: 1fr 1fr; gap: 1mm 8mm; margin-bottom: 5mm; }
  .size-print-checks { font-size: 8pt; }
  .size-print-checks p + p { margin-top: 2mm; }
  .size-print-notes { margin-top: 5mm; padding-top: 4mm; border-top: .5pt solid #ddd; break-inside: avoid; }
  .size-print-notes p { white-space: pre-wrap; overflow-wrap: anywhere; }
  .size-print-reminder { margin-top: 5mm; font-size: 7.5pt; color: #444; }
}
