.aff-portal{background:var(--bg-primary);min-height:100vh;color:var(--text-primary);flex-direction:column;display:flex}.aff-portal .aff-shell{flex-direction:column;flex:1;justify-content:center;width:100%;max-width:540px;margin:0 auto;padding:4rem 1.5rem 6rem;display:flex}.aff-portal h1{letter-spacing:-.005em;color:var(--text-primary);text-wrap:balance;margin:0 0 .5rem;font-family:Martina Plantijn,Georgia,serif;font-size:1.875rem;font-weight:500;line-height:1.15}.aff-portal .sub{color:var(--text-secondary);text-wrap:pretty;margin:0 0 2rem;font-size:.875rem;line-height:1.55}.aff-portal p{color:var(--text-secondary);margin:.4rem 0;line-height:1.55}.aff-portal .card form{margin:0}.aff-portal .card label,.aff-portal .card .label{color:var(--text-secondary);margin:.85rem 0 .4rem;font-size:.8125rem;font-weight:500;display:block}.aff-portal .card label:first-child,.aff-portal .card form>label:first-child,.aff-portal .card form>.label:first-child{margin-top:0}.aff-portal input[type=text],.aff-portal input[type=email],.aff-portal input[type=password],.aff-portal input[type=number],.aff-portal select{background:var(--input-bg);border:1px solid var(--input-border);width:100%;height:2.75rem;color:var(--text-primary);border-radius:6px;padding:10px 14px;font-family:inherit;font-size:.875rem;line-height:1.5;transition:border-color .15s;display:flex}.aff-portal input::placeholder{color:var(--text-faint)}.aff-portal input:focus,.aff-portal select:focus{border-color:var(--text-secondary);outline:none}.aff-portal select{appearance:none;cursor:pointer;background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23959B8E' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><polyline points='6 9 12 15 18 9'/></svg>");background-position:right 12px center;background-repeat:no-repeat;background-size:14px 14px;padding-right:40px}.aff-portal button[type=submit],.aff-portal .btn-block{width:100%;height:2.75rem;color:var(--text-primary);cursor:pointer;text-align:center;background:#24543d;border:none;border-radius:6px;justify-content:center;align-items:center;margin-top:1.25rem;font-family:inherit;font-size:.875rem;font-weight:500;text-decoration:none;transition:background .15s;display:inline-flex}.aff-portal button[type=submit]:hover,.aff-portal .btn-block:hover{background:#2d6a4d}.aff-portal button[type=submit]:active,.aff-portal .btn-block:active{transform:scale(.98)}.aff-portal .btn-block.secondary,.aff-portal button.secondary{color:var(--text-secondary);border:1px solid var(--border-interactive);background:0 0}.aff-portal .btn-block.secondary:hover,.aff-portal button.secondary:hover{background:var(--bg-elevated);color:var(--text-primary)}.aff-portal .btn-block+.btn-block{margin-top:.5rem}.aff-portal .copy-btn{width:auto;height:auto;color:var(--text-secondary);border:1px solid var(--border-interactive);cursor:pointer;background:0 0;border-radius:6px;margin-top:.85rem;padding:.55rem 1rem;font-size:.8125rem;transition:background .15s}.aff-portal .copy-btn:hover{background:var(--bg-elevated);color:var(--text-primary)}.aff-portal .error{color:#fca5a5;background:#fca5a514;border:1px solid #fca5a540;border-radius:6px;margin-bottom:1rem;padding:.6rem .85rem;font-size:.85rem}.aff-portal .small{color:var(--text-tertiary);text-align:left;margin-top:1.25rem;font-size:.8125rem;line-height:1.55}.aff-portal .small a{color:var(--text-primary);text-underline-offset:2px;text-decoration:underline}.aff-portal .small a:hover{color:var(--green-tertiary)}.aff-portal strong{color:var(--text-primary);font-weight:600}.aff-portal .code-box{background:var(--bg-elevated);border:1px solid var(--input-border);color:var(--text-primary);word-break:break-all;letter-spacing:0;border-radius:6px;padding:.7rem .9rem;font-family:JetBrains Mono,ui-monospace,monospace;font-size:.8125rem;line-height:1.45}.aff-portal .stats-grid{grid-template-columns:repeat(4,1fr);gap:.5rem;margin:1rem 0;display:grid}.aff-portal .stat{background:var(--bg-surface);border:1px solid var(--input-border);border-radius:8px;padding:1rem 1.1rem}.aff-portal .stat-label{text-transform:uppercase;letter-spacing:.15em;color:#3d9e6e;font-size:.65rem;font-weight:600}.aff-portal .stat-value{color:var(--text-primary);letter-spacing:-.005em;margin-top:.35rem;font-family:Martina Plantijn,Georgia,serif;font-size:1.5rem;font-weight:500;line-height:1.1}.aff-portal .connect-ready{background:var(--green-tint-faint);border-color:var(--green-tint-border-strong)}.aff-portal .connect-pending{background:#facc150f;border-color:#facc1540}.aff-portal .btn-link{color:var(--green-tertiary);text-underline-offset:2px;margin-top:.6rem;font-size:.8125rem;text-decoration:underline;display:inline-block}.aff-portal .btn-link:hover{text-decoration:none}.aff-portal .card{margin-bottom:1rem;padding:1.5rem 1.75rem}@media (min-width:640px){.aff-portal .card{padding:1.75rem 2rem}}@media (max-width:540px){.aff-portal .aff-shell{padding:2.5rem 1.25rem 4rem}.aff-portal .stats-grid{grid-template-columns:repeat(2,1fr)}.aff-portal h1{font-size:1.625rem}}.aff-admin{background:var(--bg-primary);min-height:100vh;color:var(--text-primary);padding:3rem 1.5rem 5rem}.aff-admin .admin-shell{max-width:1100px;margin:0 auto}.aff-admin h1{color:var(--text-primary);letter-spacing:-.005em;margin:0 0 .4rem;font-family:Martina Plantijn,Georgia,serif;font-size:1.625rem;font-weight:500}.aff-admin .admin-sub{color:var(--text-secondary);margin-bottom:2rem;font-size:.875rem;line-height:1.55}.aff-admin .aff-stats{color:var(--text-secondary);align-items:center;gap:.75rem;margin-bottom:1.25rem;font-size:.8125rem;display:flex}.aff-admin .aff-stats strong{color:var(--text-primary);font-weight:600}.aff-admin .aff-stats-sep{color:var(--text-faint)}.aff-admin .aff-toolbar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;margin-bottom:1.5rem;display:flex}.aff-admin .add-aff summary{cursor:pointer;background:var(--bg-elevated);border:1px solid var(--input-border);color:var(--text-primary);border-radius:6px;padding:.55rem .95rem;font-size:.85rem;list-style:none}.aff-admin .add-aff summary::-webkit-details-marker{display:none}.aff-admin .add-aff[open] summary{border-color:var(--text-secondary)}.aff-admin .add-form{flex-wrap:wrap;gap:.6rem;margin-top:.85rem;display:flex}.aff-admin .add-form input{background:var(--input-bg);border:1px solid var(--input-border);min-width:180px;height:2.4rem;color:var(--text-primary);border-radius:6px;flex:1;padding:0 .85rem;font-family:inherit;font-size:.875rem}.aff-admin .add-form button{color:var(--text-primary);cursor:pointer;background:#24543d;border:none;border-radius:6px;height:2.4rem;margin:0;padding:0 1.1rem;font-size:.875rem;font-weight:500}.aff-admin .add-form button:hover{background:#2d6a4d}.aff-admin .share-link{color:var(--text-tertiary);align-items:center;gap:.6rem;font-size:.8125rem;display:flex}.aff-admin .share-link code{background:var(--bg-elevated);border:1px solid var(--input-border);color:var(--text-primary);border-radius:4px;padding:.35rem .6rem;font-family:JetBrains Mono,ui-monospace,monospace;font-size:.78rem}.aff-admin .share-link button{color:var(--text-secondary);border:1px solid var(--border-interactive);cursor:pointer;background:0 0;border-radius:6px;padding:.4rem .85rem;font-size:.78rem}.aff-admin .share-link button:hover{background:var(--bg-elevated);color:var(--text-primary)}.aff-admin .aff-table-wrap{background:var(--bg-surface);border:1px solid var(--input-border);border-radius:8px;overflow:hidden}.aff-admin .aff-table{border-collapse:collapse;width:100%;font-size:.875rem}.aff-admin .aff-table th,.aff-admin .aff-table td{text-align:left;border-bottom:1px solid var(--input-border);padding:.85rem 1rem}.aff-admin .aff-table th{background:var(--bg-elevated);text-transform:uppercase;letter-spacing:.15em;color:#3d9e6e;font-size:.65rem;font-weight:600}.aff-admin .aff-table tr:last-child td{border-bottom:none}.aff-admin .aff-table .aff-name{color:var(--text-primary);font-weight:500}.aff-admin .aff-table .aff-email{color:var(--text-tertiary);margin-top:.15rem;font-size:.78rem}.aff-admin .aff-table .aff-code{color:var(--text-secondary);font-family:JetBrains Mono,ui-monospace,monospace;font-size:.78rem}.aff-admin .aff-table .conn{letter-spacing:.02em;border-radius:3px;padding:.2rem .5rem;font-size:.72rem;font-weight:500;display:inline-block}.aff-admin .aff-table .conn.ok{background:var(--green-tint);color:var(--green-tertiary)}.aff-admin .aff-table .conn.pending{color:#f1c40f;background:#facc1514}.aff-admin .aff-table .conn.off{background:var(--bg-elevated);color:var(--text-tertiary)}.aff-admin .aff-table .zero{color:var(--text-faint)}.aff-admin .aff-table .sub-num{color:var(--text-tertiary);margin-top:.15rem;font-size:.74rem}.aff-admin .aff-actions-cell{text-align:right;white-space:nowrap;width:1%}.aff-admin .aff-menu summary{cursor:pointer;color:var(--text-tertiary);border-radius:4px;padding:.2rem .55rem;font-size:1.1rem;list-style:none;display:inline-block}.aff-admin .aff-menu summary::-webkit-details-marker{display:none}.aff-admin .aff-menu[open] summary{background:var(--bg-elevated);color:var(--text-primary)}.aff-admin .aff-menu-body{background:var(--bg-elevated);border:1px solid var(--input-border);z-index:10;border-radius:6px;min-width:220px;margin-top:.4rem;padding:.85rem;position:absolute;box-shadow:0 8px 24px #00000059}.aff-admin .aff-menu-label{text-transform:uppercase;letter-spacing:.15em;color:#3d9e6e;margin-bottom:.45rem;font-size:.65rem;font-weight:600;display:block}.aff-admin .rate-form{align-items:center;gap:.4rem;display:flex}.aff-admin .rate-input{background:var(--input-bg);border:1px solid var(--input-border);width:70px;height:2.1rem;color:var(--text-primary);border-radius:4px;padding:0 .6rem;font-family:inherit;font-size:.85rem}.aff-admin .rate-pct{color:var(--text-tertiary);font-size:.85rem}.aff-admin .menu-form-row{gap:.5rem;margin-top:.7rem;display:flex}.aff-admin .menu-form-row button{color:var(--text-secondary);border:1px solid var(--border-interactive);cursor:pointer;background:0 0;border-radius:4px;flex:1;margin:0;padding:.5rem .7rem;font-size:.8rem}.aff-admin .menu-form-row button.danger{color:#fca5a5;border-color:#fca5a54d}.aff-admin .menu-form-row button:hover{background:var(--bg-surface);color:var(--text-primary)}.aff-admin .empty{text-align:center;color:var(--text-tertiary);padding:2.5rem}.aff-admin .admin-logout{text-align:right;margin-top:2rem}.aff-admin .admin-logout button{color:var(--text-tertiary);border:1px solid var(--border-interactive);cursor:pointer;background:0 0;border-radius:6px;padding:.5rem .95rem;font-size:.8125rem}.aff-admin .admin-logout button:hover{color:var(--text-primary);background:var(--bg-elevated)}@media (max-width:720px){.aff-admin .aff-table th:nth-child(3),.aff-admin .aff-table td:nth-child(3){display:none}.aff-admin{padding:2rem 1rem 4rem}}@media (prefers-color-scheme:light){.aff-portal .stat-label,.aff-admin .aff-table th,.aff-admin .aff-menu-label{color:#568f56}}
