* {
  box-sizing: border-box;
}

body {
  background: #f6f9ff;
  font-family: "Segoe UI", Arial, sans-serif;
  margin: 0;
}

.portal-container {
  max-width: 600px;
  margin: 80px auto;
  padding: 20px;
}

.portal-card {
  background: #fff;
  padding: 25px;
  border-radius: 8px;
  box-shadow: 0 0 15px rgba(0,0,0,0.08);
}

.portal-card h1 {
  text-align: center;
  margin-bottom: 10px;
  color: #081735;
}

.portal-card p {
  text-align: center;
  color: #666;
  margin-bottom: 20px;
}

.form-label {
  display: block;
  margin-bottom: 6px;
  font-weight: 600;
}

.form-control,
.form-select {
  width: 100%;
  padding: 10px;
  margin-bottom: 14px; /* increase spacing slightly */
  border-radius: 5px;
  border: 1px solid #ccc;
  display: block;
}

.btn-submit {
  width: 100%;
  padding: 12px;
  margin-top: 5px;
  background: #081735;
  color: white;
  border: none;
  border-radius: 5px;
  font-size: 16px;
  cursor: pointer;
}

.btn-submit:hover {
  background: #243653;
}

.portal-error {
  background: #fdecea;
  color: #842029;
  border: 1px solid #f5c2c7;
  padding: 10px;
  border-radius: 5px;
  margin-top: 15px;
  text-align: center;
  font-size: 0.95rem;
}

.portal-success {
  background: #e9f7ef;
  color: #146c43;
  border: 1px solid #badbcc;
  padding: 10px;
  border-radius: 5px;
  margin-top: 15px;
  text-align: center;
}

.portal-welcome {
  text-align: right;
  font-size: 0.9rem;
  color: #666;
  margin-bottom: 10px;
}

.mt-4 {
  margin-top: 24px;
}

.portal-section-title {
  margin-top: 0;
  margin-bottom: 15px;
  color: #081735;
  font-size: 1.3rem;
  text-align: center;
}

.portal-empty {
  text-align: center;
  color: #666;
  margin: 0;
}

.table-responsive {
  overflow-x: auto;
}

.table {
  width: 100%;
  border-collapse: collapse;
}

.table th,
.table td {
  padding: 10px;
  border-bottom: 1px solid #ddd;
  text-align: left;
}

.table th {
  color: #081735;
  font-weight: 600;
}