/* Layout and file-picker extension; intentionally no drag/drop behavior. */
.upload-page { width: min(1040px, calc(100% - 32px)); margin-inline: auto; padding-block: var(--space-5); }
.upload-hero, .upload-card { margin: 0; }
.hero-topo { display:flex; justify-content:space-between; align-items:flex-start; gap:var(--space-4); flex-wrap:wrap; }
.hero-topo h1 { margin:0 0 var(--space-2); font-size:var(--font-size-2xl); }
.hero-topo p { margin:0; color:var(--color-text-muted); max-width:45rem; }
.acoes-topo, .acoes-upload { display:flex; flex-wrap:wrap; gap:var(--space-2); }
.grid-upload { display:grid; grid-template-columns:minmax(0,1.35fr) minmax(260px,.65fr); gap:var(--space-4); align-items:start; }
.card-upload h2 { margin:0 0 var(--space-3); font-size:var(--font-size-lg); }
.upload-file-input { width:100%; max-width:100%; min-height:44px; padding:var(--space-3); border:1px dashed var(--color-primary); border-radius:var(--radius-md); background:var(--color-info-soft); color:var(--color-text); }
.upload-file-input:focus-visible { outline:var(--focus-ring); outline-offset:var(--focus-ring-offset); box-shadow:var(--focus-ring-halo); }
.ficheiro-escolhido { margin-top:var(--space-2); padding:var(--space-3); border:1px solid var(--color-border); border-radius:var(--radius-md); background:var(--color-surface); font-size:var(--font-size-sm); font-weight:600; overflow-wrap:anywhere; }
.nota-upload { margin-block:var(--space-3); color:var(--color-text-muted); font-size:var(--font-size-sm); line-height:1.5; }
.acoes-upload { margin-top:var(--space-3); }
.estado-upload { display:none; margin-top:var(--space-3); padding:var(--space-3); border:1px solid var(--color-border); border-radius:var(--radius-md); white-space:pre-wrap; }
.estado-upload.show { display:block; }
.estado-upload.ok { background:var(--color-success-soft); border-color:var(--color-success); color:var(--color-success-on-soft); }
.estado-upload.err { background:var(--color-danger-soft); border-color:var(--color-danger); color:var(--color-danger-on-soft); }
.estado-upload.info { background:var(--color-info-soft); border-color:var(--color-info-soft); color:var(--color-info-on-soft); }
.caixas-meta { display:grid; gap:var(--space-3); }
.caixa-meta { padding:var(--space-3); border:1px solid var(--color-border); border-radius:var(--radius-md); background:var(--color-surface); }
.caixa-meta .meta-k { margin-bottom:var(--space-1); color:var(--color-text-muted); font-size:var(--font-size-xs); }
.caixa-meta .meta-v { color:var(--color-text); font-size:var(--font-size-sm); font-weight:700; overflow-wrap:anywhere; }
.caixa-meta .meta-sub { margin-top:var(--space-1); color:var(--color-text-muted); font-size:var(--font-size-xs); }
.acoes-mini { margin-top:10px; }
.output-converter { margin-top:var(--space-4); }
.output-converter pre { max-height:360px; margin:0; overflow:auto; padding:var(--space-4); border:1px solid var(--color-border); border-radius:var(--radius-md); background:var(--color-text); color:var(--color-surface); font-size:var(--font-size-xs); white-space:pre-wrap; }
@media (max-width:860px) { .grid-upload { grid-template-columns:minmax(0,1fr); } }
@media (max-width:480px) { .hero-topo { flex-direction:column; } .acoes-topo, .acoes-upload { width:100%; } .acoes-topo .btn, .acoes-upload .btn { flex:1 1 auto; } }
