main { display:grid; place-items:center; padding: 40px 16px; }
.upload-card { width: min(760px, 92vw); border-radius:20px; padding:28px; }
.hero { text-align:center; margin-top:.25rem; }
.hero .icon { font-size:42px; }
.hero h1 { margin:.4rem 0 .2rem; font-size:28px; }
.hero .sub { color:var(--muted); margin:0 0 18px; }

/* Dropzone */
.dropzone { display:block; border:2px dashed var(--line); border-radius:16px; padding:26px; text-align:center; background:#fff; cursor:pointer; transition: .2s border-color, .2s box-shadow, .2s transform; }
.dropzone:hover { border-color:#c4d4de; box-shadow:0 12px 30px rgba(0,0,0,.06); transform: translateY(-1px); }
.dropzone input[type=file] { display:none; }
.dz-body { display:grid; gap:6px; justify-items:center; }
.dz-title { font-weight:700; }
.dz-sub { color:var(--muted); }
.dz-sub .link { color:var(--teal); text-decoration: underline; }

.file-meta { font-size:.95rem; color:var(--muted); margin:.6rem 0 0; text-align:center; }

.row { display:flex; justify-content:center; margin-top:16px; }
button { padding:.8rem 1.2rem; border-radius:12px; border:0; background:var(--teal); color:#fff; font-weight:700; cursor:pointer; transition:.2s transform,.2s filter,.2s box-shadow; box-shadow:0 6px 16px rgba(22,58,74,.25); }
button:hover { filter:brightness(1.05); transform: translateY(-1px); }
button:disabled { opacity:.6; cursor:not-allowed; box-shadow:none; }

.flash { color:#b00020; margin: 0 0 10px; text-align:center; }

/* Mobile */
@media (max-width: 520px) {
  .upload-card { padding: 22px; }
  .hero h1 { font-size:24px; }
}
/* Modal mínimo */
.modal{position:fixed;inset:0;background:rgba(0,0,0,.5);display:none;align-items:center;justify-content:center;}
.modal .modal-content{background:#fff;padding:16px;border-radius:12px;max-width:420px;width:90%;box-shadow:0 10px 30px rgba(0,0,0,.2);} 
.modal h3{margin:0 0 8px 0;} 
.modal button{margin-top:12px;}


/* Container para colocar dropzone e calendário lado a lado */
.upload-container {
  display: flex;
  gap: 20px;
  align-items: stretch;
}

/* Dropzone ocupa mais espaço */
.dropzone {
  flex: 2;
}