.tir-wrap{--tir-border:#e3ded6;--tir-text:#2b2926;--tir-muted:#76716a;--tir-bg:#fffdf8;--tir-soft:#f8f4ed;color:var(--tir-text)}
.tir-upload-card{background:var(--tir-bg);border:1px solid var(--tir-border);border-radius:18px;padding:22px;margin:0 0 22px;box-shadow:0 10px 28px rgba(40,32,20,.04)}
.tir-area-head,.tir-upload-card-head,.tir-actions-split,.justify{display:flex;justify-content:space-between;align-items:center;gap:16px;flex-wrap:wrap}.tir-section-head p{color:var(--tir-muted)}
.tir-grid{display:grid;gap:18px}.tir-grid-2{grid-template-columns:repeat(2,minmax(0,1fr))}.tir-field label{display:block;font-weight:600;margin:0 0 8px}.tir-field input,.tir-field textarea,.tir-field select{width:100%;border:1px solid var(--tir-border);border-radius:12px;padding:12px;background:#fff;color:var(--tir-text)}
.tir-button{display:inline-flex;align-items:center;justify-content:center;border:1px solid #2f2b26;background:#2f2b26;color:#fff!important;border-radius:999px;padding:11px 18px;text-decoration:none;cursor:pointer;font-weight:600}.tir-button-secondary{background:transparent;color:#2f2b26!important;border-color:var(--tir-border)}
.tir-success,.tir-notice,.tir-upload-error{padding:14px 16px;border-radius:12px;margin:0 0 16px}.tir-success{background:#eef8f0;border:1px solid #cce8d0}.tir-notice,.tir-upload-error{background:#fff6e8;border:1px solid #efd2a7}.tir-upload-error{color:#9d2b22;margin-top:10px}
.tir-uploader{margin-top:14px}
.tir-uploader-body{display:flex;flex-direction:column;gap:14px}
.tir-dropzone{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;min-height:140px;border:1.5px dashed var(--tir-border);border-radius:16px;background:#fffdf8;cursor:pointer;padding:22px;transition:.2s}
.tir-dropzone:hover,.tir-dropzone.is-dragover{background:#fbf6ec;border-color:#bba98d}
.tir-dropzone-input{display:none}
.tir-dropzone-icon{width:44px;height:44px;border-radius:50%;background:var(--tir-soft);display:flex;align-items:center;justify-content:center;margin-bottom:8px;color:var(--tir-text)}
.tir-dropzone-title{font-weight:700}
.tir-dropzone-text,.tir-dropzone-maxsize{color:var(--tir-muted);font-size:13px;margin-top:2px}
.tir-uploader-progress{display:flex;flex-direction:column;gap:10px;margin-top:14px}
.tir-uploader-progress[hidden]{display:none}
.tir-progress-item{display:flex;align-items:flex-start;gap:12px;border:1px solid var(--tir-border);background:#fff;border-radius:14px;padding:12px}
.tir-progress-thumb{width:44px;height:44px;border-radius:50%;overflow:hidden;background:var(--tir-soft);flex:0 0 auto;display:flex;align-items:center;justify-content:center}
.tir-progress-thumb img{width:100%;height:100%;object-fit:cover}
.tir-progress-meta{flex:1 1 auto;min-width:0}
.tir-progress-toprow{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:8px;font-size:14px}
.tir-progress-toprow span{color:var(--tir-muted);font-size:12px}
.tir-progress-barrow{display:flex;align-items:center;gap:10px}
.tir-progress-bar{flex:1 1 auto;height:6px;border-radius:999px;background:#e8dfd3;overflow:hidden}
.tir-progress-bar>span{display:block;height:100%;width:0;background:#2f2b26;transition:width .15s linear}
.tir-progress-percent{font-size:12px;color:var(--tir-muted);min-width:34px;text-align:right}
.tir-progress-cancel{border:0;background:none;color:#7b2f2f;font-weight:700;cursor:pointer}
.tir-uploader-preview{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:16px;margin-top:14px}
.tir-uploader-preview:empty{display:none;margin-top:0}
.tir-preview-item{position:relative;border:1px solid var(--tir-border);background:#fff;border-radius:16px;overflow:hidden;aspect-ratio:1/1}
.tir-preview-open{display:block;width:100%;height:100%;border:0;padding:0;background:none;cursor:zoom-in}
.tir-preview-open img{width:100%;height:100%;object-fit:cover;display:block}
.tir-preview-icon{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-size:22px;color:var(--tir-muted)}
.tir-preview-name{position:absolute;left:0;right:0;bottom:0;padding:6px 8px;font-size:11px;background:rgba(255,255,255,.9);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.tir-preview-remove{position:absolute;top:6px;right:6px;width:22px;height:22px;border:0;border-radius:50%;background:#fff;color:#7b2f2f;cursor:pointer;box-shadow:0 2px 6px rgba(0,0,0,.2)}
.tir-media-hint,.tir-help{color:var(--tir-muted);font-size:14px}
.tir-tabs{display:flex;flex-wrap:wrap;gap:8px;margin:18px 0}.tir-tab{padding:10px 14px;border:1px solid var(--tir-border);border-radius:999px;text-decoration:none;color:var(--tir-text)}.tir-tab.is-active{background:#2f2b26;color:#fff}
@media(min-width:761px){.tir-grid-2{grid-template-columns:1fr}.tir-card,.tir-upload-card{padding:16px}.tir-uploader-preview{grid-template-columns:repeat(2,minmax(0,1fr))}.tir-area-head,.tir-upload-card-head,.tir-actions-split{align-items:stretch}.tir-button{width:100%}}
@media(max-width:760px){.tir-uploader-preview{grid-template-columns:1fr}}

/* Ricordi popup: stessa struttura standard (dropzone + preview), nessun caso speciale. */
.tir-public-ricordo-uploader .tir-dropzone{min-height:190px}
.tir-public-consents a{color:inherit;text-decoration:underline;text-underline-offset:3px}

/* Area Agenzia */
.tir-agency-wrap .tir-agency-card .tir-agency-profile{display:flex;gap:18px;align-items:center;flex-wrap:wrap}
.tir-agency-logo img{max-width:180px;max-height:90px;width:auto;height:auto;object-fit:contain;background:#fff;border:1px solid #eee;border-radius:12px;padding:10px}
.tir-agency-tabs{display:flex;gap:10px;flex-wrap:wrap;margin:0 0 18px}
.tir-agency-tabs a{display:inline-flex;align-items:center;padding:10px 14px;border:1px solid #e5e5e5;border-radius:999px;text-decoration:none;background:#fff}
.tir-agency-tabs a.active{font-weight:700;border-color:#222}
.tir-grid-2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.tir-table-wrap{overflow:auto}
.tir-table td,.tir-table th{vertical-align:middle}
@media(max-width:700px){.tir-grid-2{grid-template-columns:1fr}.tir-agency-wrap .tir-area-head{gap:12px}.tir-agency-tabs a{flex:1;justify-content:center}.tir-agency-logo img{max-width:140px}}

/* Agency QR scanner */
.tir-qr-input-row{display:flex;gap:12px;align-items:center;flex-wrap:wrap}
.tir-qr-input-row input{flex:1 1 260px}
.tir-qr-scanner{margin-top:14px;padding:14px;border:1px dashed rgba(69,86,98,.28);border-radius:18px;background:#fff}
.tir-qr-scanner video{display:block;margin-bottom:10px}
@media (max-width:640px){.tir-qr-input-row{display:block}.tir-qr-input-row .tir-button{width:100%;margin-top:10px}.tir-qr-scanner video{max-width:100%!important}}

.tir-qr-check-status.tir-success{color:#1d7f45;font-weight:600}
.tir-qr-check-status.tir-error{color:#b42318;font-weight:600}
.tir-qr-check-status[data-state="checking"]{opacity:.85}
