.upload-options{margin-bottom:0}.upload-choice{position:relative;min-width:0}.upload-input{position:absolute;width:1px;height:1px;padding:0;border:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;clip-path:inset(50%)}.upload-action{display:flex;align-items:center;justify-content:center;gap:12px;width:100%;min-height:72px;padding:15px;border-radius:12px;font-size:16px;font-weight:700;cursor:pointer;text-align:center}.upload-action svg{flex:none}.upload-action-primary{color:white;background:#17669c;border:2px solid #17669c}.upload-action-primary:hover{background:#104b75}.upload-action-secondary{color:#15527d;background:#f3f8fc;border:2px solid #b8d4e9}.upload-action-secondary:hover{background:#e7f1fa}.upload-input:focus-visible+.upload-action{outline:3px solid #d3a947;outline-offset:3px}.upload-selection{display:block;color:#687b6e;font-size:13px}.pending-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:16px}.pending-card{border:1px solid #d9e6ef;padding:15px;border-radius:12px;display:flex;flex-direction:column;gap:12px;overflow-wrap:anywhere}.pending-card img{width:100%;height:150px;object-fit:contain;background:#f1f4f2}.pending-card small{color:#738394}.pending-card .button{font-size:13px;text-align:center}.file-placeholder{display:grid;place-items:center;height:150px;background:#ecf4f9;border-radius:8px}.receipt-warning{font-size:13px;color:#855b24;background:#fff5df;padding:12px;border-radius:8px;line-height:1.5}.receipt-preview{display:flex;gap:24px;align-items:start;margin-bottom:25px}.receipt-preview img{width:160px;height:210px;object-fit:contain;background:#f1f4f2}.receipt-link{display:block;font-size:12px;margin-top:10px}.duplicate-check{grid-column:1/-1;display:flex;align-items:center;color:#855b24}.duplicate-check input{width:auto;min-height:auto}progress{width:100%;height:18px}button:disabled{opacity:.6;cursor:wait}#receipt-viewer{border:0;border-radius:14px;max-width:94vw;max-height:94vh;padding:16px}#receipt-viewer::backdrop{background:#122e45bb}#receipt-viewer img{display:block;max-width:85vw;max-height:78vh;object-fit:contain;margin-top:12px}@media(max-width:700px){.receipt-preview{flex-direction:column}.pending-grid{grid-template-columns:1fr 1fr}.pending-card{padding:10px}.upload-action{min-height:68px}}

/* Mesmo comportamento visual do importador de despesas do Registo de Obras. */
.upload-choice .upload-action-primary{min-height:48px;border:1px solid #c3131e;border-radius:8px;background:#c3131e;color:#fff}
.upload-action-primary:hover{border-color:#a90f18;background:#a90f18}
.camera-status{color:#6c757d;font-size:13px;text-align:center}
.camera-status:empty{display:none}
.upload-options{grid-template-columns:repeat(3,minmax(0,1fr))}
.voice-action{display:flex;align-items:center;justify-content:center;gap:10px;width:100%;min-height:72px;padding:12px;color:#15527d;background:#edf5fb;border:2px solid #b8d4e9;border-radius:12px}
.voice-action:hover{background:#e7f1fa}
.voice-status{margin:0;color:#15527d;line-height:1.4}
.voice-status:empty{display:none}
.voice-review{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;padding:12px;border-radius:8px;background:#e7f1fa;color:#15527d}
.voice-review[hidden]{display:none}
#faturas [role=status]{margin:0;line-height:1.4}
#faturas [role=status]:empty{display:none}
.import-button{justify-self:center;min-width:156px;background:#c3131e;border-color:#c3131e}
.import-button:hover{background:#a90f18;border-color:#a90f18}
.import-button.import-ready{animation:import-ready-pulse 1.05s ease-in-out infinite;border-color:#8f0b13}
@keyframes import-ready-pulse{
  0%{background:#c3131e;box-shadow:0 0 0 0 rgba(195,19,30,.62),0 0 0 rgba(195,19,30,0);transform:scale(1)}
  50%{background:#ff2f3f;box-shadow:0 0 0 10px rgba(195,19,30,.12),0 0 18px rgba(195,19,30,.55);transform:scale(1.06)}
  100%{background:#c3131e;box-shadow:0 0 0 0 rgba(195,19,30,0),0 0 0 rgba(195,19,30,0);transform:scale(1)}
}
@media (prefers-reduced-motion:reduce){.import-button.import-ready{animation:none;box-shadow:0 0 0 3px #8f0b13}}
