.document-layout {
  width: min(1120px, calc(100% - 40px));
  margin: 28px auto 90px;
}

.document-hero,
.document-panel {
  border: 1px solid var(--border);
  border-radius: 22px;
  box-shadow: var(--shadow);
}

.document-hero {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 30px;
  margin-bottom: 22px;
  padding: clamp(24px, 4vw, 42px);
  background:
    radial-gradient(circle at 88% 12%, rgba(64, 216, 255, .14), transparent 30%),
    linear-gradient(135deg, rgba(255, 49, 88, .12), transparent 42%),
    linear-gradient(145deg, rgba(24, 13, 68, .97), rgba(8, 5, 29, .97));
}

.document-hero h1 {
  max-width: 820px;
  margin: 4px 0 13px;
  font-size: clamp(2.15rem, 6vw, 4.6rem);
  font-weight: 1000;
  letter-spacing: -.055em;
  line-height: .95;
  text-transform: uppercase;
}

.document-hero p:last-child,
.document-section-heading > p:last-child {
  max-width: 760px;
  margin: 0;
  color: var(--muted);
  line-height: 1.55;
}

.document-private-badge {
  flex: 0 0 auto;
  max-width: 220px;
  padding: 10px 14px;
  border: 1px solid rgba(101, 239, 189, .38);
  border-radius: 999px;
  color: #8ff5cf;
  background: rgba(70, 221, 165, .09);
  font-size: .67rem;
  font-weight: 900;
  letter-spacing: .07em;
  line-height: 1.3;
  text-align: center;
  text-transform: uppercase;
}

.document-panel {
  margin-bottom: 24px;
  padding: clamp(21px, 4vw, 38px);
  background: rgba(10, 6, 35, .94);
}

.document-section-heading {
  margin-bottom: 22px;
}

.document-section-heading h2 {
  margin: 3px 0 8px;
  font-size: clamp(1.7rem, 4vw, 2.8rem);
  letter-spacing: -.035em;
}

.document-alert {
  margin-bottom: 18px;
  padding: 13px 15px;
  border: 1px solid rgba(64, 216, 255, .28);
  border-radius: 12px;
  color: #bfefff;
  background: rgba(64, 216, 255, .07);
  font-size: .82rem;
}

.document-alert.error {
  border-color: rgba(255, 49, 88, .48);
  color: #ff9ab0;
  background: rgba(255, 49, 88, .09);
}

.parent-document-auth,
.parent-document-session {
  margin-bottom: 18px;
  padding: 17px;
  border: 1px solid rgba(64, 216, 255, .28);
  border-radius: 15px;
  background: linear-gradient(145deg, rgba(25, 14, 72, .8), rgba(8, 5, 29, .92));
}

.parent-document-auth {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  gap: 15px;
}

.parent-document-auth[hidden],
.parent-document-session[hidden] { display: none; }

.parent-document-auth small,
.parent-document-session small {
  display: block;
  margin-bottom: 4px;
  color: var(--cyan);
  font-size: .62rem;
  font-weight: 900;
  letter-spacing: .06em;
}

.parent-document-auth h3 { margin: 0 0 6px; }
.parent-document-auth p { margin: 0; color: var(--muted); font-size: .74rem; line-height: 1.45; }
.parent-document-auth .form-message { grid-column: 1 / -1; margin: 0; }

.parent-document-session {
  display: grid;
  grid-template-columns: 46px minmax(0, 1fr) auto;
  align-items: center;
  gap: 12px;
  border-color: rgba(101, 239, 189, .38);
  background: rgba(70, 221, 165, .07);
}

.parent-document-session img {
  width: 46px;
  height: 46px;
  border: 2px solid rgba(101, 239, 189, .55);
  border-radius: 50%;
  object-fit: cover;
  background: #17103f;
}

.parent-document-session strong,
.parent-document-session span { display: block; overflow-wrap: anywhere; }
.parent-document-session strong { margin-bottom: 3px; }
.parent-document-session span { color: #8ff5cf; font-size: .75rem; }

.document-form {
  display: grid;
  gap: 18px;
}

.document-fieldset {
  min-width: 0;
  margin: 0;
  padding: clamp(17px, 3vw, 24px);
  border: 1px solid rgba(141, 77, 255, .34);
  border-radius: 16px;
  background: linear-gradient(145deg, rgba(25, 14, 72, .75), rgba(8, 5, 29, .9));
}

.document-fieldset legend {
  padding: 0 8px;
  color: #fff;
  font-size: .9rem;
  font-weight: 900;
}

.fieldset-help {
  margin: 0 0 15px;
  color: var(--muted);
  font-size: .76rem;
  line-height: 1.5;
}

.document-grid,
.document-lookup-grid,
.document-admin-selector {
  display: grid;
  gap: 12px;
}

.document-grid.two-columns { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.document-lookup-grid { grid-template-columns: minmax(220px, .7fr) minmax(230px, auto); align-items: end; }
.document-admin-selector { grid-template-columns: minmax(220px, .8fr) minmax(280px, 1.2fr); }

.document-form label,
.document-admin-selector label {
  display: grid;
  gap: 7px;
}

.document-form label > span:first-child,
.document-admin-selector label > span {
  color: #ebe9f7;
  font-size: .72rem;
  font-weight: 850;
}

.document-form input:not([type="file"]):not([type="checkbox"]),
.document-form select,
.document-admin-selector input,
.document-admin-selector select {
  width: 100%;
  min-height: 46px;
  padding: 0 13px;
  border: 1px solid rgba(141, 77, 255, .4);
  border-radius: 11px;
  outline: none;
  color: var(--text);
  background: #17103f;
}

.document-form input:focus,
.document-form select:focus,
.document-admin-selector input:focus,
.document-admin-selector select:focus {
  border-color: var(--cyan);
  box-shadow: 0 0 0 3px rgba(64, 216, 255, .11);
}

.minor-match {
  display: grid;
  grid-template-columns: minmax(220px, 1fr) 100px minmax(260px, 1.3fr);
  gap: 10px;
  margin-top: 14px;
}

.minor-match[hidden] { display: none; }

.minor-match > div {
  min-width: 0;
  padding: 12px;
  border: 1px solid rgba(101, 239, 189, .25);
  border-radius: 11px;
  background: rgba(70, 221, 165, .065);
}

.minor-match small,
.minor-match strong {
  display: block;
}

.minor-match small {
  margin-bottom: 5px;
  color: #8ff5cf;
  font-size: .62rem;
  font-weight: 900;
}

.minor-match strong {
  overflow-wrap: anywhere;
  font-size: .86rem;
}

#minor-tournaments {
  display: flex;
  flex-wrap: wrap;
  gap: 5px;
}

#minor-tournaments span {
  padding: 5px 7px;
  border-radius: 999px;
  color: #bfefff;
  background: rgba(64, 216, 255, .09);
  font-size: .65rem;
  font-weight: 800;
}

.document-file-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
}

.document-file-card {
  position: relative;
  min-width: 0;
  padding: 16px;
  border: 1px solid rgba(64, 216, 255, .25);
  border-radius: 14px;
  background: rgba(64, 216, 255, .045);
}

.document-file-card strong,
.document-file-card small {
  display: block;
}

.document-file-card small {
  color: var(--cyan);
  font-weight: 850;
}

.document-file-card input {
  max-width: 100%;
  margin-top: 11px;
  color: #d8d4e9;
  font-size: .72rem;
}

.document-file-card input::file-selector-button {
  margin-right: 9px;
  padding: 8px 10px;
  border: 1px solid rgba(141, 77, 255, .45);
  border-radius: 8px;
  color: #fff;
  background: #26165f;
  cursor: pointer;
}

.document-file-card.has-file {
  border-color: rgba(101, 239, 189, .55);
  background: rgba(70, 221, 165, .08);
}

.document-file-number {
  position: absolute;
  top: 12px;
  right: 12px;
  color: rgba(255, 255, 255, .35) !important;
  font-size: 1.1rem !important;
  font-weight: 1000 !important;
}

.document-consent {
  grid-template-columns: auto 1fr !important;
  align-items: flex-start;
  gap: 11px !important;
  padding: 16px;
  border: 1px solid rgba(255, 201, 40, .3);
  border-radius: 13px;
  color: #e7e1c8;
  background: rgba(255, 201, 40, .055);
  font-size: .76rem;
  line-height: 1.5;
}

.document-consent input { margin-top: 3px; }

.document-submit-row {
  display: flex;
  align-items: center;
  gap: 16px;
}

.document-submit-row .form-message { margin: 0; }

.admin-document-panel {
  border-color: rgba(255, 49, 88, .36);
  background:
    radial-gradient(circle at 90% 0, rgba(255, 49, 88, .08), transparent 32%),
    rgba(10, 6, 35, .95);
}

.document-admin-session {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
  margin-bottom: 18px;
  padding: 14px 0 17px;
  border-bottom: 1px solid rgba(255, 255, 255, .09);
}

.document-admin-session small,
.document-admin-session strong { display: block; }
.document-admin-session small { margin-bottom: 4px; color: var(--muted); }
.document-admin-session > div:last-child { display: flex; align-items: center; gap: 10px; }

.document-admin-detail { margin-top: 16px; }

.document-detail-card {
  padding: clamp(17px, 3vw, 24px);
  border: 1px solid rgba(141, 77, 255, .34);
  border-radius: 16px;
  background: linear-gradient(145deg, rgba(25, 14, 72, .8), rgba(8, 5, 29, .94));
}

.document-detail-header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 16px;
  margin-bottom: 15px;
}

.document-detail-header h3 { margin: 0 0 5px; font-size: 1.45rem; }
.document-detail-header p { margin: 0; color: var(--muted); }

.document-review-badge {
  padding: 7px 10px;
  border: 1px solid rgba(255, 201, 40, .4);
  border-radius: 999px;
  color: #ffe384;
  background: rgba(255, 201, 40, .09);
  font-size: .64rem;
  font-weight: 900;
  text-transform: uppercase;
}

.document-review-badge.aprobada { border-color: rgba(101,239,189,.5); color:#8ff5cf; background:rgba(70,221,165,.1); }
.document-review-badge.requiere_correccion { border-color:rgba(255,49,88,.5); color:#ff9ab0; background:rgba(255,49,88,.1); }

.document-data-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 9px;
  margin-bottom: 18px;
}

.document-data-grid > div {
  min-width: 0;
  padding: 11px;
  border-radius: 10px;
  background: rgba(255, 255, 255, .04);
}

.document-data-grid small,
.document-data-grid strong { display: block; }
.document-data-grid small { margin-bottom: 4px; color: var(--cyan); font-size: .62rem; font-weight: 850; text-transform: uppercase; }
.document-data-grid strong { overflow-wrap: anywhere; font-size: .79rem; }

.document-preview-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
}

.document-preview-card {
  min-width: 0;
  padding: 12px;
  border: 1px solid rgba(64, 216, 255, .22);
  border-radius: 13px;
  background: rgba(3, 2, 19, .55);
}

.document-preview-card h4 { margin: 0 0 9px; font-size: .78rem; }
.document-preview-card img { display: block; width: 100%; max-height: 430px; object-fit: contain; border-radius: 9px; background: #050316; }
.document-preview-card p { margin: 10px 0 0; color: var(--muted); font-size: .66rem; overflow-wrap: anywhere; }
.document-preview-loading { min-height: 180px; display:grid; place-items:center; color:var(--muted); font-size:.72rem; }

.document-tournament-chips { display:flex; flex-wrap:wrap; gap:6px; margin:0 0 17px; }
.document-tournament-chips span { padding:6px 9px; border:1px solid rgba(64,216,255,.25); border-radius:999px; color:#bfefff; background:rgba(64,216,255,.07); font-size:.67rem; font-weight:800; }

.document-upload-history { margin-top:18px; padding-top:15px; border-top:1px solid rgba(255,255,255,.08); }
.document-upload-history h4 { margin:0 0 9px; }
.document-upload-history ul { margin:0; padding-left:18px; color:var(--muted); font-size:.72rem; line-height:1.6; }

.document-review-actions{display:grid;grid-template-columns:1fr auto auto;gap:9px;margin:15px 0 20px;padding:13px;border:1px solid rgba(64,216,255,.22);border-radius:12px;background:rgba(1,5,28,.45)}
.document-review-comment{min-height:42px;resize:vertical;padding:10px;border:1px solid rgba(255,255,255,.18);border-radius:8px;background:#09051f;color:#fff;font:inherit}.document-review-actions .form-message{grid-column:1/-1;margin:0}
@media (max-width: 600px){.document-review-actions{grid-template-columns:1fr}.document-review-actions .button{width:100%}}

@media (max-width: 820px) {
  .document-hero { align-items: flex-start; flex-direction: column; }
  .document-grid.two-columns,
  .document-file-grid,
  .document-preview-grid { grid-template-columns: 1fr; }
  .minor-match { grid-template-columns: 1fr 100px; }
  .minor-match-tournaments { grid-column: 1 / -1; }
  .document-data-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 600px) {
  .document-layout { width: min(100% - 28px, 1120px); margin-top: 12px; }
  .document-lookup-grid,
  .document-admin-selector,
  .minor-match,
  .document-data-grid { grid-template-columns: 1fr; }
  .minor-match-tournaments { grid-column: auto; }
  .document-submit-row,
  .document-admin-session { align-items: stretch; flex-direction: column; }
  .document-admin-session > div:last-child { justify-content: space-between; }
  .parent-document-auth,
  .parent-document-session { grid-template-columns: 1fr; }
  .parent-document-session img { display: none; }
}
