.public-wrap { max-width: 1100px; margin: 0 auto; padding: 18px; }

.public-hero {
  background: linear-gradient(90deg, #0b5ea8, #0aa3b5);
  color: #fff;
}

.public-brand { display: flex; flex-direction: column; gap: 6px; }
.logo-badge {
  display: inline-block; padding: 10px 14px; border-radius: 12px;
  background: rgba(255,255,255,.12); font-weight: 800; letter-spacing: 1px;
  width: fit-content;
}
.tagline { opacity: .9; }

.public-nav { margin-top: 14px; display: flex; gap: 12px; flex-wrap: wrap; }
.public-nav a {
  color: #fff; text-decoration: none; padding: 8px 10px; border-radius: 10px;
  background: rgba(255,255,255,.12);
}
.public-nav a.active { background: rgba(255,255,255,.22); }

.public-main { background: #f5f7fb; min-height: calc(100vh - 170px); }
.public-grid { display: grid; grid-template-columns: 1.3fr .9fr; gap: 18px; }
@media (max-width: 900px) { .public-grid { grid-template-columns: 1fr; } }

.public-card {
  background: #fff; border-radius: 16px; padding: 18px;
  box-shadow: 0 12px 24px rgba(0,0,0,.08);
  border: 1px solid #e6edf7;
}
.public-actions { display: flex; gap: 10px; margin-top: 14px; flex-wrap: wrap; }

.btn-public {
  display: inline-block; padding: 10px 14px; border-radius: 12px;
  background: #0b5ea8; color: #fff; text-decoration: none; border: none;
  cursor: pointer;
}
.btn-public.outline { background: transparent; border: 1px solid #0b5ea8; color: #0b5ea8; }

.public-list { margin: 0; padding-left: 18px; }
.public-fine { margin-top: 14px; opacity: .75; font-size: .95em; }

.public-form label { display:block; margin-top: 10px; }
.public-form input, .public-form textarea {
  width: 100%; padding: 10px; border-radius: 10px;
  border: 1px solid #cfe0f6; margin-top: 6px;
}

.public-success { margin-top: 12px; color: #0b7a28; font-weight: 600; }

.public-footer { background: #0e1a2b; color: rgba(255,255,255,.75); }
