.portal-body{background:var(--paper);}
.portal-title-tag{
  font-family:var(--font-mono); font-size:12px; color:rgba(255,255,255,.5);
  border:1px solid var(--line-dark); padding:4px 10px; border-radius:5px;
  margin-left:-4px;
}
.portal-admin-link{
  font-family:var(--font-mono); font-size:12px; color:rgba(255,255,255,.4);
  margin-left:10px;
  transition:color .15s ease;
}
.portal-admin-link:hover{color:#7fc4f2;}
.portal-main{padding:64px 24px 80px; min-height:70vh;}

.portal-card{
  background:var(--paper-card); border:1px solid var(--line-light);
  border-radius:14px; padding:32px; box-shadow:var(--shadow-sm);
}

.portal-login{max-width:440px; margin:40px auto;}
.portal-login h1{font-size:26px; margin:14px 0 8px;}
.portal-lead{color:var(--slate-600); font-size:15px;}
.portal-note{margin-top:14px; font-size:13.5px; color:var(--slate-600); min-height:18px;}
.portal-note.error{color:#d64545;}
.portal-note.ok{color:#1a9d5c;}

.portal-code-input{
  font-size:28px; letter-spacing:10px; text-align:center;
  font-family:var(--font-mono); font-weight:600;
}
.portal-link-btn{
  display:block; margin:18px auto 0; background:none; border:none;
  color:var(--blue-700); font-size:13.5px; font-weight:600; cursor:pointer;
  text-align:center; width:100%;
}
.portal-link-btn:hover{text-decoration:underline;}

.portal-welcome{margin-bottom:28px;}
.portal-welcome h1{font-size:clamp(24px,3vw,32px); margin:0 0 6px;}
.portal-client-logo{
  max-width:180px; max-height:64px; object-fit:contain;
  margin-bottom:16px; display:block;
}

.portal-tabs{
  display:flex; gap:8px; flex-wrap:wrap; margin-bottom:20px;
}
.portal-tabs button{
  font-family:var(--font-body); font-weight:600; font-size:13.5px;
  padding:9px 16px; border-radius:20px; border:1px solid var(--line-light);
  background:#fff; color:var(--slate-600); cursor:pointer;
  transition:background .15s ease, color .15s ease, border-color .15s ease;
}
.portal-tabs button:hover{border-color:var(--blue-500); color:var(--blue-700);}
.portal-tabs button.is-active{
  background:var(--blue-grad); color:#fff; border-color:transparent;
}

.portal-table{width:100%; border-collapse:collapse; font-size:14px;}
.portal-table th, .portal-table td{
  text-align:left; padding:10px 12px; border-bottom:1px solid var(--line-light);
}
.portal-table th{color:var(--slate-600); font-size:12px; text-transform:uppercase; letter-spacing:.03em; font-weight:600;}
.portal-table tr:last-child td{border-bottom:none;}

.portal-badge{
  display:inline-block; padding:3px 10px; border-radius:20px;
  font-size:12px; font-weight:600;
}
.portal-badge.pago{background:rgba(26,157,92,.12); color:#1a9d5c;}
.portal-badge.pendente{background:rgba(184,134,11,.12); color:#b8860b;}

.portal-download{
  display:inline-flex; align-items:center; gap:6px;
  color:var(--blue-700); font-weight:600; font-size:13.5px; cursor:pointer;
  background:none; border:none; padding:0; font-family:inherit;
}
.portal-download:hover{text-decoration:underline;}
.portal-file-actions{display:inline-flex; gap:14px; align-items:center;}

.portal-empty{color:var(--slate-600); font-size:14px; padding:20px 0; text-align:center;}
.portal-footer{margin-top:0;}

@media (max-width:600px){
  .portal-main{padding:40px 16px 60px;}
  .portal-card{padding:22px;}
  .portal-title-tag{display:none;}
  .portal-admin-link{display:none;}
  .portal-table{font-size:12.5px;}
  .portal-table th, .portal-table td{padding:8px 6px;}

  /* nesta página (sem menu hambúrguer) os botões de ação
     do header precisam continuar visíveis no mobile */
  .portal-body .header-actions{
    display:flex !important; gap:8px;
  }
  .portal-body .header-actions .btn{
    padding:8px 12px; font-size:12.5px;
  }
  .portal-body .header-inner{gap:10px;}
}
