@import url("./approved.css?v=3.0.1");

/* Adaptación productiva del diseño V3 aprobado. */
.portal-flag { color:#dcf7a6; }
.portal-flag strong { display:block; }
.topbar::before { background-image:url("./assets/logo-oficial-electrihogargs.jpg"); }
.brand .brand-copy { min-width:0; }
.brand .brand-copy strong,.brand .brand-copy small { white-space:nowrap; }
.logout-btn { white-space:nowrap; }
.auth-shell { min-height:100vh; display:grid; grid-template-columns:minmax(300px, .9fr) minmax(420px, 1.1fr); background:#f6f7f3; }
.auth-brand { padding:clamp(36px,7vw,92px); background:linear-gradient(145deg,#102d24,#0f6a4f); color:white; display:flex; flex-direction:column; justify-content:space-between; position:relative; overflow:hidden; }
.auth-brand::after { content:""; position:absolute; width:480px; height:480px; border-radius:50%; right:-210px; bottom:-220px; background:rgba(201,240,100,.13); }
.auth-logo { width:min(340px,85%); max-height:120px; object-fit:contain; object-position:left center; border-radius:14px; background:white; padding:10px; position:relative; z-index:1; }
.auth-brand-copy { position:relative; z-index:1; max-width:520px; }
.auth-brand-copy .eyebrow { color:#d7f69b; }
.auth-brand-copy h1 { margin:10px 0 12px; font-size:clamp(36px,6vw,72px); line-height:.95; letter-spacing:-.055em; }
.auth-brand-copy p { color:#c9ddd4; font-size:15px; line-height:1.6; }
.auth-panel { display:grid; place-items:center; padding:32px; }
.auth-card { width:min(500px,100%); padding:clamp(24px,5vw,42px); }
.auth-card h2 { margin:5px 0 8px; font-size:clamp(26px,4vw,38px); letter-spacing:-.045em; }
.auth-card > p { margin:0 0 24px; color:var(--muted); line-height:1.5; }
.auth-card form { display:grid; gap:14px; }
.auth-card .field { margin:0; }
.auth-card .primary-btn { min-height:48px; margin-top:4px; }
.auth-help { margin:18px 0 0!important; font-size:12px; }
.auth-secondary { width:100%; min-height:46px; margin-top:14px; }
.auth-check span { display:flex; align-items:flex-start; gap:9px; font-size:13px; line-height:1.4; }
.auth-check input { width:auto; margin-top:2px; }
.portal-form { display:grid; gap:12px; }
.portal-form .field { margin:0; }
.portal-form select { width:100%; border:1px solid var(--line); border-radius:10px; padding:11px; background:white; }
.portal-form button { justify-self:start; }
.resource-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px; }
.resource-create { padding:18px; }
.resource-create h3 { margin:0 0 14px; font-size:15px; }
.manager-lists { margin-top:16px; }
.manager-lists > .card,.request-card,.document-card,.request-form-card { padding:20px; }
.manager-lists h2,.request-card h3,.document-card h3 { margin-top:0; }
.request-card { display:grid; gap:10px; }
.request-card p { margin:0; }
.request-thread { display:grid; gap:8px; padding-top:12px; border-top:1px solid var(--line); }
.thread-line { padding:10px 12px; border-radius:10px; background:#f7f8f6; }
.thread-line strong { display:block; font-size:11px; }
.thread-line span { display:block; margin-top:3px; color:var(--muted); font-size:11px; }
.message-form { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:8px; }
.message-form input { width:100%; border:1px solid var(--line); border-radius:10px; padding:10px; }
.client-card p { color:var(--muted); font-size:12px; }
.client-card .detail-actions { margin-top:14px; }
.data-stack { display:grid; gap:0; }
.data-row { display:flex; justify-content:space-between; gap:16px; padding:12px 0; border-top:1px solid #edf0ed; }
.data-row:first-child { border-top:0; }
.data-row strong { display:block; font-size:12px; }
.data-row small,.data-row span { color:var(--muted); font-size:10px; }
.data-row > :last-child { text-align:right; }
.download-link { color:inherit; text-decoration:none; }
.download-link:hover { color:var(--green); }
.file-control { padding:8px!important; }
#notice { position:fixed; right:22px; bottom:22px; z-index:100; width:min(380px,calc(100vw - 32px)); padding:14px 16px; border-radius:14px; color:white; background:#142a22; box-shadow:0 20px 50px rgba(0,0,0,.24); opacity:0; pointer-events:none; transform:translateY(12px); transition:.2s ease; }
#notice.show { opacity:1; transform:none; }
.no-content { color:var(--muted); font-size:12px; padding:16px 0; }
.danger-text { color:var(--red); }
.photo-note { display:inline-flex; margin-top:8px; }
.link-btn { border:0; background:transparent; color:var(--green); padding:4px; text-decoration:underline; cursor:pointer; font:inherit; }
.auth-legal { display:block; width:100%; margin-top:18px; font-size:12px; }
.portal-footer { margin:28px 0 10px; text-align:center; font-size:11px; }
.legal-copy { max-height:52vh; overflow:auto; padding-right:8px; color:var(--muted); font-size:12px; line-height:1.55; }
.legal-copy h3 { color:var(--ink); margin:18px 0 5px; }
.legal-copy h3:first-child { margin-top:0; }
.legal-copy p { margin:0; }

@media (max-width: 900px) {
  .auth-shell { grid-template-columns:1fr; }
  .auth-brand { min-height:280px; padding:34px; }
  .auth-brand-copy h1 { font-size:44px; }
  .auth-panel { padding:24px; }
  .resource-grid { grid-template-columns:1fr; }
}
@media (max-width: 680px) {
  .auth-brand { min-height:230px; padding:24px; }
  .auth-logo { width:220px; max-height:72px; }
  .auth-brand-copy h1 { font-size:34px; }
  .auth-brand-copy p { font-size:12px; }
  .auth-panel { padding:18px 14px 34px; align-items:start; }
  .auth-card { padding:22px 18px; }
  .message-form { grid-template-columns:1fr; }
  .message-form button { width:100%; }
  .data-row { align-items:flex-start; }
  #notice { right:16px; bottom:82px; }
}
