.affiliate-dashboard { min-height: 70vh; }
.affiliate-dashboard .affiliate-toolbar { align-items: center; display: flex; gap: 24px; justify-content: space-between; margin: 0 0 24px; }
.affiliate-dashboard .affiliate-heading { color: #07132f; font-size: 28px; font-weight: 700; margin: 0; }
.affiliate-dashboard .affiliate-panel { background: #fff; border: 1px solid #e1e4e8; border-radius: 24px; box-shadow: 0 2px 4px rgba(7, 19, 47, .04); padding: 32px; }
.affiliate-dashboard .affiliate-table-wrap { overflow-x: auto; width: 100%; }
.affiliate-dashboard .affiliate-table { border-collapse: collapse; color: #07132f; font-size: 15px; width: 100%; }
.affiliate-dashboard .affiliate-table th, .affiliate-dashboard .affiliate-table td { border-bottom: 1px solid #e8eaee; padding: 18px 16px; text-align: left; vertical-align: middle; }
.affiliate-dashboard .affiliate-table th { color: #687083; font-size: 13px; font-weight: 600; text-transform: uppercase; }
.affiliate-dashboard .affiliate-table tbody tr:last-child td { border-bottom: 0; }
.affiliate-dashboard .affiliate-campaign-table { min-width: 980px; }
.affiliate-dashboard .affiliate-name-link { color: #07132f; font-weight: 600; text-decoration: underline; text-decoration-color: #35b37e; text-underline-offset: 4px; }
.affiliate-dashboard .affiliate-link-field { display: grid; gap: 8px; grid-template-columns: 140px minmax(260px, 1fr) auto; min-width: 520px; }
.affiliate-dashboard .affiliate-link-field .form-control-2 { height: 48px; min-width: 0; }
.affiliate-dashboard .affiliate-copy, .affiliate-dashboard .affiliate-delete { align-items: center; background: transparent; border: 0; color: #07132f; cursor: pointer; display: inline-flex; font: inherit; font-weight: 600; justify-content: center; padding: 0 12px; }
.affiliate-dashboard .affiliate-copy { border: 1px solid #cbd0d9; border-radius: 8px; flex: 0 0 auto; height: 48px; margin: 0; min-width: 76px; padding: 0 16px; width: auto; }
.affiliate-dashboard .affiliate-delete { color: #ba2e3d; height: 40px; }
.affiliate-dashboard .affiliate-actions { align-items: center; display: flex; gap: 6px; justify-content: flex-end; }
.affiliate-dashboard .affiliate-actions form { margin: 0; }
.affiliate-dashboard .affiliate-date { white-space: nowrap; }
.affiliate-dashboard .affiliate-filters { align-items: end; display: grid; gap: 16px; grid-template-columns: minmax(240px, 2fr) minmax(150px, 1fr) minmax(120px, .8fr) auto; margin-bottom: 32px; }
.affiliate-dashboard .affiliate-filters .form-group { margin: 0; }
.affiliate-dashboard .affiliate-filters label { color: #687083; display: block; font-size: 14px; font-weight: 500; margin-bottom: 8px; }
.affiliate-dashboard .affiliate-filters .form-control-2 { height: 56px; width: 100%; }
.affiliate-dashboard .affiliate-filter-actions { display: flex; flex-wrap: wrap; gap: 8px; }
.affiliate-dashboard .affiliate-stats-wrap { border-top: 1px solid #e8eaee; padding-top: 12px; }
.affiliate-dashboard .affiliate-stats-table { font-size: 14px; min-width: 1080px; table-layout: fixed; }
.affiliate-dashboard .affiliate-stats-table th, .affiliate-dashboard .affiliate-stats-table td { padding: 12px 6px; text-align: center; }
.affiliate-dashboard .affiliate-stats-table th:first-child { color: #07132f; text-align: left; text-transform: none; width: 116px; }
.affiliate-dashboard .affiliate-stats-table th.affiliate-total, .affiliate-dashboard .affiliate-stats-table td.affiliate-total { width: 104px; }
.affiliate-dashboard .affiliate-stats-second { margin-top: 24px; }
.affiliate-dashboard .affiliate-stats-table .zero { color: #aeb4c0; }
.affiliate-dashboard .affiliate-stats-table .affiliate-total { color: #07132f; font-weight: 700; }
.affiliate-dashboard .affiliate-empty { color: #687083; padding: 40px 0; text-align: center; }
.affiliate-dashboard .affiliate-home-action { margin-top: 28px; }
.affiliate-dashboard .affiliate-back { color: #687083; display: inline-block; font-size: 14px; margin-bottom: 10px; }
.affiliate-dashboard .affiliate-back:hover { color: #35a679; }
.affiliate-dashboard .affiliate-form-panel { max-width: 720px; }
.affiliate-dashboard .affiliate-campaign-form .form-group { margin: 0; }
.affiliate-dashboard .affiliate-campaign-form label { color: #07132f; display: block; font-size: 15px; font-weight: 600; margin-bottom: 10px; }
.affiliate-dashboard .affiliate-campaign-form .form-control-2 { font-size: 16px; height: 56px; }
.affiliate-dashboard .affiliate-campaign-form .invalid-feedback { color: #ba2e3d; display: block; font-size: 13px; margin-top: 8px; }
.affiliate-dashboard .affiliate-form-error { background: #fff1f2; border: 1px solid #f3c6cb; border-radius: 8px; color: #9e2532; margin-bottom: 20px; padding: 14px 16px; }
.affiliate-dashboard .affiliate-form-actions { display: flex; gap: 12px; justify-content: flex-end; margin-top: 32px; }
.affiliate-dashboard .affiliate-eyebrow, .affiliate-dashboard .affiliate-field-label { color: #687083; font-size: 14px; font-weight: 500; }
.affiliate-dashboard .affiliate-eyebrow { margin-bottom: 6px; }
.affiliate-dashboard .affiliate-field-label { margin-bottom: 10px; }
.affiliate-dashboard .affiliate-detail-link { width: 100%; }
.affiliate-dashboard .affiliate-banner-section { border-top: 1px solid #e8eaee; margin-top: 32px; padding-top: 32px; }
.affiliate-dashboard .affiliate-banner-select { height: 56px; max-width: 420px; }
.affiliate-dashboard .affiliate-banner-preview { margin-top: 28px; }
.affiliate-dashboard .affiliate-banner-image { background: #f6f7f8; border: 1px solid #e1e4e8; border-radius: 12px; margin-bottom: 24px; overflow-x: auto; padding: 20px; text-align: center; }
.affiliate-dashboard .affiliate-banner-code { align-items: flex-end; display: flex; gap: 12px; }
.affiliate-dashboard .affiliate-banner-code textarea.form-control-2 { min-height: 140px; resize: vertical; }
.affiliate-dashboard .affiliate-banner-code .copy-text { flex: 0 0 auto; height: 48px; margin: 0; padding: 0 20px; width: auto; }

.affiliate-public { min-height: calc(100vh - 120px); padding: 96px 0; }
.affiliate-public .affiliate-public-grid { align-items: center; display: grid; gap: 72px; grid-template-columns: minmax(0, 1fr) minmax(360px, .8fr); }
.affiliate-public .affiliate-public-content { max-width: 700px; }
.affiliate-public-eyebrow { color: #35a679; font-size: 14px; font-weight: 700; letter-spacing: .08em; margin-bottom: 18px; text-transform: uppercase; }
.affiliate-public .n-h1 { color: #07132f; margin-bottom: 24px; }
.affiliate-public .affiliate-public-content p { color: #687083; font-size: 20px; line-height: 1.6; margin: 0; max-width: 600px; }
.affiliate-public .affiliate-public-actions { display: flex; margin-top: 36px; }
.affiliate-public .affiliate-public-visual { align-items: center; background: #fff; border: 1px solid #e1e4e8; border-radius: 32px; box-shadow: 0 14px 40px rgba(7, 19, 47, .08); display: flex; justify-content: center; min-height: 420px; padding: 40px; }
.affiliate-public .affiliate-public-visual img { display: block; height: auto; max-width: 100%; }

.affiliate-auth { align-items: center; display: flex; min-height: calc(100vh - 120px); padding: 80px 0; }
.affiliate-auth .affiliate-auth-card { background: #fff; border: 1px solid #e1e4e8; border-radius: 24px; box-shadow: 0 14px 40px rgba(7, 19, 47, .08); margin: 0 auto; max-width: 560px; padding: 48px; }
.affiliate-auth .affiliate-back { color: #687083; display: inline-block; font-size: 14px; margin-bottom: 30px; }
.affiliate-auth .affiliate-back:hover { color: #35a679; }
.affiliate-auth .affiliate-auth-title { color: #07132f; font-size: 40px; line-height: 1.15; margin: 0 0 32px; }
.affiliate-auth .affiliate-login-form .form-group { margin-bottom: 20px; }
.affiliate-auth .affiliate-login-form label { color: #07132f; display: block; font-size: 15px; font-weight: 600; margin-bottom: 10px; }
.affiliate-auth .affiliate-login-form .form-control-2 { font-size: 16px; height: 56px; }
.affiliate-auth .affiliate-login-form .invalid-feedback { color: #ba2e3d; display: block; font-size: 13px; margin-top: 8px; }
.affiliate-auth .affiliate-form-error { background: #fff1f2; border: 1px solid #f3c6cb; border-radius: 8px; color: #9e2532; margin-bottom: 20px; padding: 14px 16px; }
.affiliate-auth .affiliate-login-form .n-btn { margin-top: 12px; }

@media (max-width: 991px) {
    .affiliate-dashboard .affiliate-filters { grid-template-columns: 1fr 1fr; }
    .affiliate-dashboard .affiliate-filter-campaign, .affiliate-dashboard .affiliate-filter-actions { grid-column: 1 / -1; }
    .affiliate-public .affiliate-public-grid { gap: 48px; grid-template-columns: 1fr; }
    .affiliate-public .affiliate-public-visual { min-height: 320px; }
}

@media (max-width: 575px) {
    .affiliate-dashboard .affiliate-toolbar { align-items: stretch; flex-direction: column; }
    .affiliate-dashboard .affiliate-panel { border-radius: 16px; padding: 20px 16px; }
    .affiliate-dashboard .affiliate-filters { grid-template-columns: 1fr; }
    .affiliate-dashboard .affiliate-filter-campaign, .affiliate-dashboard .affiliate-filter-actions { grid-column: auto; }
    .affiliate-dashboard .affiliate-filter-actions .n-btn { flex: 1; }
    .affiliate-dashboard .affiliate-form-actions { flex-direction: column-reverse; }
    .affiliate-dashboard .affiliate-form-actions .n-btn { width: 100%; }
    .affiliate-dashboard .affiliate-detail-link { gap: 10px; grid-template-columns: 1fr; min-width: 0; }
    .affiliate-dashboard .affiliate-banner-code { align-items: stretch; flex-direction: column; }
    .affiliate-dashboard .affiliate-banner-code .copy-text { width: 100%; }
    .affiliate-public { padding: 64px 0; }
    .affiliate-public .affiliate-public-content p { font-size: 17px; }
    .affiliate-public .affiliate-public-visual { border-radius: 20px; min-height: 240px; padding: 24px; }
    .affiliate-auth { padding: 48px 0; }
    .affiliate-auth .affiliate-auth-card { border-radius: 16px; padding: 32px 20px; }
    .affiliate-auth .affiliate-auth-title { font-size: 32px; }
}
