/* Page-specific additions to the shared Bootstrap and school-site components. */
.subnet-exercises-page { background: #f7f9fa; }
.subnet-exercises-page .class-hero h1 { font-size: clamp(1.7rem, 3.5vw, 2.5rem); }
.subnet-exercises-page #subnet-subtitle h2 { font-size: clamp(1.25rem, 2.5vw, 1.75rem); font-weight: 600; margin-bottom: .5rem; }
.subnet-exercises-page #subnet-subtitle p { margin-bottom: 0; }
.subnet-exercises-page fieldset { min-width: 0; }
.subnet-exercises-page [hidden] { display: none !important; }
.subnet-actions { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 1rem; }
.subnet-guidance { border: 1px solid var(--bs-border-color); border-radius: .75rem; background: var(--bs-body-bg); }
.subnet-guidance > summary { padding: 1rem 1.25rem; font-weight: 600; cursor: pointer; }
.subnet-guidance-content { padding: .25rem 1.25rem 1rem; line-height: 1.65; }
.subnet-guidance-content > :last-child { margin-bottom: 0; }
.subnet-part { margin-top: 2rem; }
.subnet-part-heading { border-bottom: 2px solid var(--class-accent-border); margin-bottom: 1.25rem; padding-bottom: .5rem; }
.subnet-part-heading h2 { color: var(--class-accent-dark); }
.subnet-part-heading p { color: var(--bs-secondary-color); margin-bottom: .25rem; }
.subnet-level { margin-bottom: 1.5rem; }
.subnet-level > h3 { margin-bottom: .75rem; font-weight: 700; }
.subnet-exercise-list { display: grid; gap: .65rem; }
.subnet-exercise { display: grid; grid-template-columns: 2rem minmax(0, 1fr); gap: .65rem; align-items: start; padding: .8rem 1rem; background: var(--bs-body-bg); border: 1px solid var(--bs-border-color); border-radius: .75rem; }
.subnet-pick { padding-top: .25rem; }
.subnet-pick .form-check-input { width: 1.5rem; height: 1.5rem; margin-top: 0; cursor: pointer; }
.subnet-exercise details { min-width: 0; }
.subnet-exercise summary { position: relative; list-style: none; padding: .15rem .25rem .15rem 1.15rem; cursor: pointer; border-radius: .25rem; }
.subnet-exercise summary::-webkit-details-marker { display: none; }
.subnet-exercise summary::before { content: ''; position: absolute; left: .1rem; top: .65rem; width: .45rem; height: .45rem; border-right: 2px solid currentColor; border-bottom: 2px solid currentColor; transform: rotate(-45deg); }
.subnet-exercise details[open] > summary::before { transform: rotate(45deg); }
.subnet-exercise summary:hover .subnet-exercise-title { text-decoration: underline; text-underline-offset: .2em; }
.subnet-exercises-page summary:focus-visible { outline: 3px solid #198754; outline-offset: 3px; }
.subnet-exercise-heading { display: flex; align-items: baseline; gap: .65rem; font-size: 1.05rem; font-weight: 600; }
.subnet-code { color: var(--class-accent-dark); font-weight: 750; font-variant-numeric: tabular-nums; flex-shrink: 0; }
.subnet-exercise-title { overflow-wrap: anywhere; }
.subnet-exercise-meta { display: flex; gap: 1rem; flex-wrap: wrap; align-items: baseline; margin-top: .25rem; color: var(--bs-secondary-color); font-size: .875rem; }
.subnet-exercise-meta code { color: var(--class-accent-dark); }
.subnet-toggle-open, details[open] > summary .subnet-toggle-closed { display: none; }
details[open] > summary .subnet-toggle-open { display: inline; }
.subnet-statement { margin-top: 1rem; padding: 1rem .25rem .1rem 1.15rem; border-top: 1px solid var(--bs-border-color); line-height: 1.65; }
.subnet-statement > :last-child { margin-bottom: 0; }
.subnet-statement code { white-space: nowrap; }
.subnet-statement th, .subnet-statement td { padding: .45rem .65rem; }
#subnet-print { display: none; }

body.a11y-dark-mode.subnet-exercises-page { background: #111827; }
body.a11y-dark-mode .subnet-part-heading h2,
body.a11y-dark-mode .subnet-code,
body.a11y-dark-mode .subnet-exercise-meta code { color: #86efac; }
body.a11y-dark-mode .subnet-exercise-meta,
body.a11y-dark-mode .subnet-part-heading p { color: #cbd5e1; }
body.a11y-dark-mode .subnet-guidance,
body.a11y-dark-mode .subnet-exercise { background: #1f2937; border-color: #64748b; }

@media (max-width: 575.98px) {
    .subnet-exercises-page .class-hero { padding: 1.25rem; }
    .subnet-exercise { grid-template-columns: 1.5rem minmax(0, 1fr); padding: .75rem; }
    .subnet-exercise-heading { flex-wrap: wrap; gap: .15rem .5rem; }
    .subnet-guidance-content { padding-inline: 1rem; }
    .subnet-actions > .d-flex { width: 100%; }
    .subnet-actions #print-selection { flex-grow: 1; }
    .subnet-statement { padding-left: 0; }
}

@media print {
    @page { size: A4 portrait; margin: 14mm; }
    body.subnet-exercises-page { padding: 0 !important; margin: 0 !important; background: #fff !important; }
    body.subnet-exercises-page > :not(#subnet-print) { display: none !important; }
    /* The shared print stylesheet hides body descendants except #contenuto.
       Our print document is its sibling, so restore visibility for its whole subtree. */
    body.subnet-exercises-page #subnet-print,
    body.subnet-exercises-page #subnet-print * { visibility: visible !important; }
    body.subnet-exercises-page #subnet-print { display: block !important; color: #000 !important; font: 10.5pt/1.4 Arial, sans-serif; }
    #subnet-print h1 { font-size: 19pt; margin: 0 0 5mm; }
    #subnet-print h2 { font-size: 13pt; margin: 5mm 0 2mm; break-after: avoid; }
    #subnet-print p, #subnet-print ul { margin-bottom: 3mm; }
    #subnet-print code { color: #000; white-space: nowrap; font-size: 1em; }
    #subnet-print header { border-bottom: 1px solid #777; padding-bottom: 2mm; margin-bottom: 4mm; }
    #subnet-print .subnet-print-meta { color: #333; font-size: 9.5pt; break-after: avoid; }
    #subnet-print .subnet-print-exercise { break-inside: avoid; border-top: 1px solid #aaa; padding-top: 1mm; margin-top: 5mm; }
    #subnet-print .table-responsive { overflow: visible; }
    #subnet-print table { width: 100%; border-collapse: collapse; font-size: 9.5pt; }
    #subnet-print th, #subnet-print td { border: 1px solid #777; padding: 1.3mm 1.6mm; color: #000; background: #fff; }
    #subnet-print thead { display: table-header-group; }
    #subnet-print tr { break-inside: avoid; }
    #subnet-print .subnet-print-criteria { margin-top: 5mm; }
    #subnet-print .subnet-print-criteria table { table-layout: fixed; font-size: 8pt; overflow-wrap: anywhere; }
}
