.contribution-page{background:#fff}.back-link{font-size:14px;font-weight:700;padding:12px 0}.contribution-layout{display:grid;grid-template-columns:.8fr 1.25fr;gap:clamp(32px,6vw,90px);padding-top:65px;padding-bottom:80px;align-items:start}.contribution-intro{position:sticky;top:130px;max-width:470px}.contribution-intro h1{font:clamp(54px,5.6vw,88px)/1 var(--display);text-transform:uppercase;font-weight:400;letter-spacing:-.02em;margin:16px 0 30px}.contribution-intro>p{font-size:18px}.contribution-intro .small-print{font-size:14px;border-top:1px solid black;padding-top:25px;margin-top:30px}.contribution-surface{min-width:0}.contribution-surface h2{font:700 23px/1.25 var(--body);text-transform:none;letter-spacing:normal}.form-section{padding:30px 0;border-bottom:1px solid #ccc}.form-section:first-of-type{padding-top:0}.form-section h2{margin-bottom:22px}.field{margin-top:23px;min-width:0}.field label{display:block;font-weight:700;font-size:15px;margin-bottom:8px}.field label span{font-size:12px;font-weight:400}.field input,.field textarea,.review-note{width:100%;min-height:48px;padding:12px;border:1px solid #777;border-radius:0;background:#fff;color:#000;font-size:16px}.field textarea{resize:vertical;line-height:1.5;min-height:140px}.field input:focus,.field textarea:focus{border-color:#000}.field input[aria-invalid=true],.field textarea[aria-invalid=true]{border:2px solid #9b2100}.field-row{display:grid;grid-template-columns:1fr 1fr;gap:20px}.field-year{max-width:150px}.field-help{font-size:13px;line-height:1.5;margin-top:8px;color:#575757}.form-section>p.field-help{margin:0 0 16px}.field-error{color:#9b2100;font-size:14px;font-weight:700;margin-top:8px}.form-errors{padding:22px;border:2px solid #9b2100;margin-bottom:28px;background:#fff5f0}.form-errors h2{font-size:20px}.form-errors ul{margin:12px 0 0;padding-left:20px}.form-errors li{margin-top:8px;font-size:15px}.form-errors a{color:#9b2100}.form-message{padding:18px;border:1px solid #777;font-size:15px;margin-bottom:26px}.form-message button{margin-top:12px}.form-message:empty{display:none}fieldset{border:0;margin:0;padding:0;min-width:0}fieldset:disabled{opacity:.55}.file-zone{border:2px dashed #000;background:#fff5eb;padding:22px 18px;text-align:center;transition:background .15s}.file-zone.dragging{background:var(--orange);border-style:solid}.file-zone input{display:block;max-width:100%;font-size:14px;margin:12px auto;min-height:44px}.file-zone input::file-selector-button{border:1px solid #000;background:#000;color:#fff;padding:12px 16px;font:700 14px var(--body);cursor:pointer;margin-right:10px}.file-zone input:focus-visible{outline:3px solid #000;outline-offset:4px}.file-pick{font-size:18px;font-weight:700;display:block}.file-zone p{font-size:13px;color:#575757}.file-list{list-style:none;margin:20px 0 0;padding:0}.file-item{border:1px solid #aaa;padding:14px;display:grid;grid-template-columns:70px 1fr auto;gap:14px;align-items:start;margin-top:12px}.file-item img{width:70px;height:70px;object-fit:contain;background:#eee}.file-symbol{width:70px;min-height:60px;background:#eee;display:flex;justify-content:center;align-items:center;font-weight:700;font-size:13px}.file-info{min-width:0}.file-name{font-size:14px;font-weight:700;overflow-wrap:anywhere;line-height:1.4}.file-info p+p{margin-top:6px}.file-info p{font-size:12px;color:#575757}.file-item audio,.file-item video{width:100%;grid-column:1/-1;max-height:200px}.remove-file,.text-button{border:0;background:transparent;text-decoration:underline;font-size:13px;padding:8px;min-height:44px;color:#000}.remove-file:hover,.text-button:hover{background:#eee}.check-label{display:flex;gap:12px;align-items:flex-start;font-size:14px;line-height:1.55;padding:8px 0;cursor:pointer}.check-label input{width:20px;height:20px;min-width:20px;accent-color:#000;margin:3px 0 0}.check-label+.check-label{margin-top:16px}.submit-contribution{margin:28px 0 12px;width:100%}.upload-progress{border:2px solid #000;padding:24px;margin-top:24px}.upload-progress>p{font-weight:700}.upload-progress progress{width:100%;height:16px;margin:20px 0 8px;accent-color:#000}.upload-success{background:var(--orange);padding:clamp(25px,4vw,48px);border:2px solid #000}.upload-success h2{font:clamp(40px,4vw,60px)/1 var(--display);text-transform:uppercase;margin:14px 0 28px}.success-label{font-size:15px;font-weight:700}.receipt-label{font-size:13px;margin-top:32px}.receipt-code{font-size:clamp(14px,2vw,22px);font-weight:700;letter-spacing:.025em;overflow-wrap:anywhere;margin-top:6px!important}.upload-success .btn{margin:30px 0 24px}.upload-success .field-help{color:#000}.contribution-footer{display:flex;justify-content:space-between;gap:20px;padding-top:25px;padding-bottom:30px;border-top:1px solid #aaa;font-size:12px}.honeypot{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}.visually-hidden{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}.notice-page{max-width:880px;padding-top:60px;padding-bottom:80px}.notice-page h1{font:clamp(45px,6vw,65px)/1.05 var(--display);text-transform:uppercase;margin-bottom:32px}.notice-page h2{font:700 23px/1.3 var(--body);text-transform:none;margin:35px 0 15px}.notice-page p{font-size:17px}.notice-draft{padding:16px;border:1px solid #000;background:var(--orange);font-size:14px!important;margin-bottom:25px}.admin-layout{max-width:1400px;padding-top:45px;padding-bottom:70px}.admin-layout h1{font:clamp(40px,5vw,64px)/1 var(--display);text-transform:uppercase;font-weight:400;margin-bottom:20px}.admin-intro{font-size:16px;max-width:800px;margin-bottom:30px}.admin-login{max-width:480px;border:1px solid #000;padding:28px}.admin-login h2,.admin-detail h2{font:700 23px/1.3 var(--body);text-transform:none;letter-spacing:normal}.admin-login .btn{margin-top:20px;width:100%}.admin-top{display:flex;justify-content:space-between;gap:20px;align-items:center}.admin-top .text-button{white-space:nowrap}.admin-filters{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:26px}.admin-filters button{min-height:44px;background:white;border:1px solid black;font-size:14px;padding:10px 18px}.admin-filters button[aria-pressed=true]{background:black;color:white}.admin-workspace{display:grid;grid-template-columns:360px 1fr;gap:32px}.admin-list{display:flex;flex-direction:column;gap:12px}.submission-item{text-align:left;background:white;border:1px solid #aaa;padding:18px;color:#000}.submission-item:hover,.submission-item[aria-current=true]{border:2px solid #000;padding:17px;background:#fff5eb}.submission-item strong{display:block;font-size:18px;overflow-wrap:anywhere}.submission-item span{display:block;font-size:13px;margin-top:7px;overflow-wrap:anywhere}.admin-detail{border:1px solid black;padding:28px;min-width:0}.admin-detail dl{display:grid;grid-template-columns:120px 1fr;font-size:14px;gap:8px 12px}.admin-detail dd{margin:0;overflow-wrap:anywhere;white-space:pre-wrap}.admin-detail dt{font-weight:700}.admin-story{white-space:pre-wrap;font-size:16px;padding:20px 0;border-top:1px solid #ccc}.admin-files{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin-top:22px}.admin-files figure{min-width:0}.admin-files img{width:100%;height:180px;object-fit:contain;background:#eee}.admin-files video,.admin-files audio{width:100%;max-height:240px}.admin-files figcaption{font-size:13px;margin-top:10px;overflow-wrap:anywhere}.admin-files a{font-size:13px;display:inline-block;padding:12px 0}.review-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:18px}.review-actions .btn{font-size:13px;padding:12px 16px}.review-section{border-top:1px solid #ccc;padding-top:25px;margin-top:25px}.review-section label{font-weight:700;font-size:14px;display:block;margin-bottom:8px}.review-history{font-size:13px;margin-top:20px}.admin-empty{font-size:16px;padding:24px;border:1px solid #ccc}.pagination{display:flex;gap:12px;align-items:center;margin-top:22px}.pagination button{min-height:44px;padding:8px 12px;font-size:13px}.pagination span{font-size:13px}.admin-status{font-size:15px;padding:14px 0}.admin-status:empty{display:none}.status-pill{font-size:13px;display:inline-block;padding:5px 10px;background:var(--orange);font-weight:700;margin-bottom:15px}.admin-review-form button:disabled{opacity:.6}.review-history li{white-space:pre-wrap;margin-bottom:12px}.review-label{margin:12px 0;font-size:14px;font-weight:700}
@media(max-width:1000px){.contribution-layout{grid-template-columns:.65fr 1fr;gap:32px}.field-row{grid-template-columns:1fr}.field-year{max-width:160px}.admin-workspace{grid-template-columns:280px 1fr}.admin-files{grid-template-columns:1fr}}
@media(max-width:760px){.contribution-layout{grid-template-columns:1fr;padding-top:38px;padding-bottom:45px;gap:35px}.contribution-intro{position:static;max-width:600px}.contribution-intro h1{font-size:62px;margin:16px 0 23px}.contribution-intro>p{font-size:16px}.contribution-intro .small-print{font-size:13px;margin-top:20px;padding-top:18px}.contribution-surface h2{font-size:22px}.file-zone{padding:20px 10px}.file-zone input{font-size:12px}.file-item{grid-template-columns:50px 1fr;gap:12px}.file-item img,.file-symbol{width:50px;height:50px;min-height:50px}.remove-file{grid-column:2;justify-self:start;padding-left:0}.field-row{gap:0}.contribution-footer{display:block;font-size:12px}.contribution-footer a{display:inline-block;margin-top:15px;min-height:44px}.admin-workspace{grid-template-columns:1fr}.admin-top{align-items:start}.admin-detail{padding:20px}.admin-detail dl{grid-template-columns:1fr;gap:4px}.admin-detail dd{margin-bottom:12px}.admin-list{max-height:350px;overflow:auto}.admin-filters{gap:8px}.admin-filters button{padding:10px 12px}.admin-layout{padding-top:30px}.review-actions .btn{width:100%}.notice-page{padding-top:35px}.notice-page h1{font-size:44px}.form-section{padding-top:26px;padding-bottom:26px}.upload-success h2{font-size:44px}}

/* Registratore: riascolto locale prima di aggiungere l'allegato. */
.voice-recorder{border:2px solid #000;padding:24px;background:#fff5eb}.cassette{background:#161616;border:2px solid #000;padding:20px 24px 12px;color:white;max-width:400px;margin:auto;position:relative}.cassette-label{background:var(--orange);color:#000;padding:10px 14px;display:flex;flex-direction:column;gap:3px;font-size:12px;font-weight:700;letter-spacing:.04em}.cassette-label span:last-child{font-family:var(--display);font-weight:400;font-size:25px;letter-spacing:0}.cassette-window{display:flex;align-items:center;justify-content:center;gap:10px;background:#dcd8cf;border:7px solid #333;margin:16px 0 10px;padding:8px}.tape-reel{width:48px;height:48px;flex:0 0 48px;border-radius:50%;border:7px dashed #333;background:#fff;position:relative}.tape-reel:after{content:"";position:absolute;inset:10px;background:#333;border-radius:50%}.tape-line{height:2px;background:#555;flex:1;max-width:60px}.cassette-side{display:block;text-align:center;font-size:10px;letter-spacing:.12em}.recorder-readout{display:flex;align-items:center;gap:10px;margin-top:22px;font:700 26px/1.3 monospace}.record-light{width:12px;height:12px;background:#777;border:1px solid black;border-radius:50%}.record-limit{font-size:16px;font-weight:400;color:#575757}.record-status{font-size:14px;line-height:1.55;margin:14px 0!important;min-height:44px}.recorder-actions{display:flex;gap:12px;flex-wrap:wrap;align-items:center}.recorder-actions .btn{font-size:14px}.recorder-actions .text-button{font-size:14px}.record-review audio{width:100%;margin:4px 0 18px}.voice-recorder[data-state=recording] .record-light{background:#b42708}.voice-recorder[data-state=recording] .tape-reel{animation:tape-turn 3s linear infinite}.voice-recorder[data-state=recording] .cassette-label{background:white}.voice-recorder[data-state=requesting] .record-light{background:var(--orange)}.voice-recorder:focus{outline:3px solid #000;outline-offset:4px}
@keyframes tape-turn{to{transform:rotate(360deg)}}
@media(max-width:760px){.voice-recorder{padding:18px 14px}.cassette{padding:14px 14px 10px}.cassette-label{padding:8px 10px}.cassette-label span:last-child{font-size:22px}.tape-reel{width:40px;height:40px;flex-basis:40px}.tape-reel:after{inset:7px}.cassette-window{padding:7px;gap:6px}.recorder-actions .btn{width:100%;padding:12px}.recorder-actions{gap:8px}.record-status{font-size:14px}}

/* Shorter introduction and clear focus when correcting a contribution. */
@media (max-width: 760px) {
  .contribution-intro h1 { font-size: clamp(40px, 11.5vw, 62px); line-height: 1.02; }
}
.form-errors, .contribution-page input, .contribution-page textarea, .voice-recorder { scroll-margin-top: 100px; }
