/* BidRoute Affiliate Portal — shared styles */
*{box-sizing:border-box;margin:0;padding:0}
:root{
  --navy:#1B2A3E;--navy-deep:#111D2B;--navy-mid:#243448;
  --gold:#C49A5A;--frost:#C8D8EC;--mist:#8BA4BF;--dim:#4A5C72;
  --border:rgba(27,42,62,0.12);--white:#fff;--off:#F8F8F8;
  --green:#2A8A6E;--green-bg:#EAF3EE;--green-text:#1A6B52;
  --amber:#B8840A;--amber-bg:#FEF3DC;--red:#C0392B;--red-bg:#FDECEA;
}
body{font-family:'Plus Jakarta Sans',sans-serif;color:var(--navy)}

/* Nav */
.aff-nav{display:flex;justify-content:space-between;align-items:center;padding:14px 32px;background:var(--navy);position:sticky;top:0;z-index:100;border-bottom:2px solid rgba(196,154,90,0.3)}
.aff-logo{font-family:'Instrument Serif',serif;font-size:22px;color:var(--frost);text-decoration:none}
.aff-logo span{color:var(--gold)}
.aff-nav-links{display:flex;gap:6px;align-items:center}
.aff-nav-link{font-size:11px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:rgba(200,216,236,.6);text-decoration:none;padding:8px 14px;border:1px solid transparent}
.aff-nav-link.active{color:var(--gold);border-color:rgba(196,154,90,0.4)}
.aff-nav-link.cta{background:var(--gold);color:var(--navy-deep);border-color:var(--gold);font-weight:700}
.aff-nav-back{font-size:11px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:rgba(200,216,236,.5);text-decoration:none;display:flex;align-items:center;gap:6px}

/* Hero */
.aff-hero{background:var(--navy);padding:80px 32px 72px;text-align:center;position:relative;overflow:hidden}
.aff-hero::before,.aff-final::before,.aff-left::before,.aff-banner::before{content:'';position:absolute;inset:0;background-image:linear-gradient(rgba(255,255,255,.02) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.02) 1px,transparent 1px);background-size:32px 32px;pointer-events:none}
.aff-eyebrow{font-size:10px;font-weight:700;letter-spacing:4px;text-transform:uppercase;color:var(--gold);margin-bottom:20px;display:flex;align-items:center;justify-content:center;gap:12px}
.aff-eyebrow::before,.aff-eyebrow::after{content:'';width:24px;height:1px;background:var(--gold)}
.aff-eyebrow-plain{font-size:10px;font-weight:700;letter-spacing:4px;text-transform:uppercase;color:var(--gold);margin-bottom:20px}
.aff-h1{font-family:'Instrument Serif',serif;font-size:clamp(40px,6vw,64px);font-weight:400;color:var(--white);line-height:1.05;letter-spacing:-1.5px;margin-bottom:20px;max-width:680px;margin-left:auto;margin-right:auto}
.aff-hero-sub{font-size:16px;font-weight:300;color:var(--mist);line-height:1.75;max-width:480px;margin:0 auto 36px}
.aff-cta-btn{display:inline-block;background:var(--gold);color:var(--navy-deep);font-size:12px;font-weight:700;letter-spacing:2px;text-transform:uppercase;padding:16px 36px;text-decoration:none;border:none;cursor:pointer;font-family:'Plus Jakarta Sans',sans-serif}
.aff-hero-fine{font-size:11px;color:var(--dim);margin-top:14px}

/* Reward strip */
.aff-reward-strip{background:rgba(196,154,90,.08);border-top:1px solid rgba(196,154,90,.2);border-bottom:1px solid rgba(196,154,90,.2);padding:28px 32px;display:flex;align-items:center;justify-content:center;gap:48px;flex-wrap:wrap}
.aff-reward-num{font-family:'Instrument Serif',serif;font-size:42px;color:var(--gold);line-height:1;text-align:center}
.aff-reward-label{font-size:11px;font-weight:500;color:var(--dim);margin-top:4px;text-align:center}

/* Section */
.aff-section{padding:72px 32px;max-width:860px;margin:0 auto}
.aff-section-eyebrow{font-size:10px;font-weight:700;letter-spacing:4px;text-transform:uppercase;color:var(--dim);margin-bottom:16px;display:flex;align-items:center;gap:12px}
.aff-section-eyebrow::after{content:'';flex:1;height:1px;background:var(--border)}
.aff-h2{font-family:'Instrument Serif',serif;font-size:clamp(28px,4vw,42px);font-weight:400;color:var(--navy);line-height:1.08;letter-spacing:-.5px;margin-bottom:40px}

/* Steps */
.aff-steps{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:24px}
.aff-step{padding:24px;border:1px solid var(--border);border-top:3px solid var(--gold)}
.aff-step-num{font-family:'Instrument Serif',serif;font-size:36px;color:var(--gold);line-height:1;margin-bottom:12px}
.aff-step-title{font-size:14px;font-weight:700;color:var(--navy);margin-bottom:8px}
.aff-step-body{font-size:13px;color:var(--dim);line-height:1.7}

/* Terms */
.aff-terms-section{background:var(--off);padding:72px 32px;border-top:1px solid var(--border)}
.aff-terms-inner{max-width:860px;margin:0 auto}
.aff-terms-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-top:40px}
.aff-terms-card{background:var(--white);border:1px solid var(--border);padding:24px}
.aff-terms-card h3{font-size:14px;font-weight:700;color:var(--navy);margin-bottom:16px;padding-bottom:10px;border-bottom:1px solid var(--border)}
.aff-terms-row{display:flex;justify-content:space-between;align-items:flex-start;padding:8px 0;border-bottom:1px solid var(--border);gap:16px}
.aff-terms-row:last-child{border-bottom:none}
.aff-terms-key{font-size:12px;color:var(--dim);line-height:1.5}
.aff-terms-val{font-size:12px;font-weight:600;color:var(--navy);text-align:right;flex-shrink:0}
.aff-terms-val.gold{color:var(--gold)}

/* Who */
.aff-who-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px;margin-top:32px}
.aff-who-card{padding:20px;border:1px solid var(--border);text-align:center}
.aff-who-icon{font-size:28px;margin-bottom:10px}
.aff-who-title{font-size:13px;font-weight:700;color:var(--navy);margin-bottom:4px}
.aff-who-body{font-size:12px;color:var(--dim);line-height:1.6}

/* Final CTA */
.aff-final{background:var(--navy);padding:80px 32px;text-align:center;position:relative;overflow:hidden}
.aff-final h2{font-family:'Instrument Serif',serif;font-size:clamp(32px,5vw,52px);font-weight:400;color:var(--white);line-height:1.05;letter-spacing:-1px;margin-bottom:16px;max-width:560px;margin-left:auto;margin-right:auto}
.aff-final p{font-size:15px;font-weight:300;color:var(--mist);max-width:400px;margin:0 auto 32px;line-height:1.7}

/* Footer */
.aff-footer{background:var(--navy-deep);padding:20px 32px;display:flex;justify-content:space-between;align-items:center;border-top:2px solid var(--gold)}
.aff-footer-logo{font-family:'Instrument Serif',serif;font-size:18px;color:var(--frost)}
.aff-footer-logo span{color:var(--gold)}
.aff-footer p{font-size:11px;color:var(--dim)}

/* Auth pages (signup / login) */
.aff-page{display:grid;grid-template-columns:1fr 1fr;min-height:calc(100vh - 50px)}
.aff-left{background:var(--navy);padding:56px 48px;display:flex;flex-direction:column;justify-content:center;position:relative;overflow:hidden}
.aff-left-inner{position:relative;z-index:1}
.aff-left h2{font-family:'Instrument Serif',serif;font-size:42px;font-weight:400;color:var(--white);line-height:1.05;letter-spacing:-1px;margin-bottom:24px}
.aff-left p{font-size:14px;font-weight:300;color:var(--mist);line-height:1.8;margin-bottom:36px}
.aff-perks{display:flex;flex-direction:column;gap:14px}
.aff-perk{display:flex;align-items:flex-start;gap:14px}
.aff-perk-dot{width:8px;height:8px;background:var(--gold);flex-shrink:0;margin-top:5px}
.aff-perk-text{font-size:13px;color:var(--frost);line-height:1.6}
.aff-perk-text strong{color:var(--gold);font-weight:600}
.aff-left-bottom{margin-top:48px;padding-top:24px;border-top:1px solid rgba(196,154,90,.2);font-size:12px;color:var(--dim);line-height:1.7}
.aff-left-divider{height:1px;background:rgba(196,154,90,.2);margin:28px 0}
.aff-left-stats{display:flex;flex-direction:column;gap:14px}
.aff-left-stat{display:flex;align-items:center;gap:14px}
.aff-left-stat-num{font-family:'Instrument Serif',serif;font-size:28px;color:var(--gold);width:60px;flex-shrink:0;line-height:1}
.aff-left-stat-label{font-size:13px;color:var(--mist);line-height:1.5}
.aff-right{padding:56px 48px;display:flex;flex-direction:column;justify-content:center;background:var(--white)}
.aff-form-title{font-family:'Instrument Serif',serif;font-size:30px;font-weight:400;color:var(--navy);margin-bottom:6px}
.aff-form-sub{font-size:13px;color:var(--dim);margin-bottom:28px}
.aff-form-sub a{color:var(--gold);text-decoration:none;font-weight:600}
.aff-field{margin-bottom:16px}
.aff-field label{display:block;font-size:11px;font-weight:600;letter-spacing:1px;text-transform:uppercase;color:var(--dim);margin-bottom:6px}
.aff-field input,.aff-field select{width:100%;padding:12px 14px;border:1px solid var(--border);font-size:14px;font-family:'Plus Jakarta Sans',sans-serif;color:var(--navy);background:var(--off)}
.aff-field input:focus,.aff-field select:focus{outline:none;border-color:var(--gold);background:var(--white)}
.aff-field input.error{border-color:var(--red);background:var(--red-bg)}
.aff-field-hint{display:flex;justify-content:flex-end;margin-top:5px}
.aff-field-hint a{font-size:11px;color:var(--gold);text-decoration:none;font-weight:600}
.aff-field-error{font-size:11px;color:var(--red);margin-top:5px;display:none}
.aff-field-error.show{display:block}

/* Strength bar */
.aff-strength-bar{display:flex;gap:3px;margin-top:8px}
.aff-strength-seg{height:3px;flex:1;background:var(--border);transition:background .2s}
.aff-strength-label{font-size:10px;color:var(--dim);margin-top:4px}

/* Type selector */
.aff-type-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:6px}
.aff-type-option{padding:10px 14px;border:1px solid var(--border);cursor:pointer;font-size:12px;font-weight:500;color:var(--dim);user-select:none}
.aff-type-option.selected{border-color:var(--gold);background:rgba(196,154,90,.06);color:var(--navy);font-weight:600}

/* Terms checkbox */
.aff-terms-check{display:flex;align-items:flex-start;gap:10px;margin-top:14px;margin-bottom:4px}
.aff-terms-check input{margin-top:3px;accent-color:var(--gold);flex-shrink:0}
.aff-terms-check label{font-size:12px;color:var(--dim);line-height:1.6;cursor:pointer}
.aff-terms-check a{color:var(--gold);text-decoration:none;font-weight:600}

/* Submit button */
.aff-submit-btn{width:100%;padding:14px;background:var(--navy);color:var(--white);border:none;font-size:13px;font-weight:700;letter-spacing:1px;text-transform:uppercase;cursor:pointer;font-family:'Plus Jakarta Sans',sans-serif;margin-top:8px}
.aff-submit-btn:disabled{background:var(--dim);cursor:not-allowed}

/* Error/success banners */
.aff-error-banner{background:var(--red-bg);border:1px solid var(--red);border-left:3px solid var(--red);padding:12px 16px;margin-bottom:16px;font-size:13px;color:var(--red);display:none}
.aff-error-banner.show{display:block}
.aff-duplicate-banner{background:#FEF3DC;border:1px solid #E67E22;border-left:3px solid #E67E22;padding:12px 16px;margin-bottom:16px;font-size:13px;color:#7D4E00;display:none}
.aff-duplicate-banner.show{display:block}
.aff-duplicate-banner a{color:#E67E22;font-weight:600;text-decoration:none}
.aff-success-box{background:var(--green-bg);border:1px solid rgba(42,138,110,.3);border-left:3px solid var(--green);padding:16px 18px;font-size:13px;color:#1A6B52;line-height:1.7;display:none}
.aff-success-box.show{display:block}
.aff-notice{padding:12px 16px;margin-bottom:16px;font-size:13px;border-left:3px solid}
.aff-notice.success{background:var(--green-bg);color:var(--green-text);border-color:var(--green)}
.aff-notice.error{background:var(--red-bg);color:var(--red);border-color:var(--red)}

/* Divider */
.aff-divider-row{display:flex;align-items:center;gap:12px;margin:20px 0}
.aff-divider-row hr{flex:1;border:none;border-top:1px solid var(--border)}
.aff-divider-row span{font-size:11px;color:var(--dim)}
.aff-signup-prompt{text-align:center;font-size:13px;color:var(--dim)}
.aff-signup-prompt a{color:var(--gold);text-decoration:none;font-weight:600}

/* Success view */
.aff-success{display:none;text-align:center;padding:20px 0}
.aff-success-icon{width:56px;height:56px;background:var(--green-bg);display:flex;align-items:center;justify-content:center;margin:0 auto 20px;font-size:24px}
.aff-success h3{font-family:'Instrument Serif',serif;font-size:28px;font-weight:400;color:var(--navy);margin-bottom:10px}
.aff-success p{font-size:14px;color:var(--dim);line-height:1.75;max-width:320px;margin:0 auto 24px}
.aff-success-link{background:var(--off);border:1px solid var(--border);border-left:3px solid var(--gold);padding:14px 16px;text-align:left;margin-bottom:20px}
.aff-success-link-label{font-size:10px;font-weight:600;letter-spacing:2px;text-transform:uppercase;color:var(--dim);margin-bottom:6px}
.aff-success-link-url{font-size:14px;font-weight:600;color:var(--navy)}

/* Password reset */
.aff-back-link{font-size:12px;color:var(--gold);text-decoration:none;font-weight:600;cursor:pointer;display:inline-block;margin-bottom:20px}
.aff-reset-view{display:none}
.aff-reset-view.show{display:block}
.aff-form-view.hide{display:none}

/* Modal */
.aff-modal-overlay{position:fixed;inset:0;background:rgba(0,0,0,.5);z-index:200;display:none;align-items:flex-start;justify-content:center;padding:40px 16px;overflow-y:auto}
.aff-modal-overlay.open{display:flex}
.aff-modal-box{background:var(--white);width:100%;max-width:540px;border-top:3px solid var(--gold);margin:auto}
.aff-modal-head{padding:16px 20px;border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between;position:sticky;top:0;background:var(--white);z-index:1}
.aff-modal-title{font-size:15px;font-weight:600;color:var(--navy)}
.aff-modal-x{font-size:22px;cursor:pointer;color:var(--dim);background:none;border:none;line-height:1;font-family:inherit}
.aff-modal-body{padding:24px;max-height:60vh;overflow-y:auto}
.aff-modal-body h3{font-size:13px;font-weight:700;color:var(--navy);margin:16px 0 6px}
.aff-modal-body h3:first-child{margin-top:0}
.aff-modal-body p,.aff-modal-body ul{font-size:12px;color:var(--dim);line-height:1.8;margin-bottom:10px}
.aff-modal-body ul{padding-left:18px}
.aff-modal-foot{padding:14px 20px;border-top:1px solid var(--border);display:flex;justify-content:flex-end}
.aff-modal-accept{padding:10px 20px;background:var(--navy);color:var(--white);border:none;font-size:12px;font-weight:700;cursor:pointer;font-family:inherit;letter-spacing:.5px}

/* Dashboard */
.aff-banner{background:var(--navy-deep);padding:10px 24px;display:flex;align-items:center;justify-content:space-between;border-bottom:2px solid var(--gold);position:relative}
.aff-banner-logo{font-family:'Instrument Serif',serif;font-size:18px;color:var(--frost)}
.aff-banner-logo span{color:var(--gold)}
.aff-banner-right{display:flex;align-items:center;gap:10px}
.aff-banner-btn{font-size:11px;font-weight:600;padding:7px 14px;cursor:pointer;border:none;font-family:'Plus Jakarta Sans',sans-serif;text-decoration:none;display:inline-block}
.aff-btn-outline-gold{background:transparent;color:var(--gold);border:1px solid var(--gold)}
.aff-btn-navy{background:var(--navy);color:var(--frost);border:1px solid var(--navy-mid)}
.aff-banner-user{font-size:11px;color:var(--mist);margin-left:6px}
.aff-shell{display:grid;grid-template-columns:200px 1fr;min-height:calc(100vh - 42px)}
.aff-sidebar{background:var(--navy);padding:0}
.aff-sidebar-section{padding:16px 0 8px}
.aff-sidebar-label{font-size:9px;font-weight:600;letter-spacing:3px;text-transform:uppercase;color:var(--dim);padding:0 18px;margin-bottom:6px}
.aff-nav-item{display:flex;align-items:center;gap:9px;padding:9px 18px;font-size:12px;font-weight:500;color:rgba(200,216,236,.55);cursor:pointer;border-left:2px solid transparent;background:none;border-right:none;border-top:none;border-bottom:none;width:100%;text-align:left;font-family:'Plus Jakarta Sans',sans-serif}
.aff-nav-item:hover{color:var(--frost);background:rgba(255,255,255,.04)}
.aff-nav-item.active{color:var(--frost);border-left-color:var(--gold);background:rgba(255,255,255,.05)}
.aff-nav-dot{width:6px;height:6px;border-radius:50%;background:var(--gold);flex-shrink:0}
.aff-nav-dot.dim{background:var(--mist)}
.aff-nav-count{margin-left:auto;font-size:10px;background:rgba(203,168,74,.15);color:var(--gold);padding:1px 6px}
.aff-main{padding:28px 32px;overflow-y:auto}
.aff-page-title{font-family:'Instrument Serif',serif;font-size:28px;font-weight:400;color:var(--navy);margin-bottom:4px}
.aff-page-sub{font-size:12px;color:var(--dim);margin-bottom:24px}

/* Stats */
.aff-stat-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:24px}
.aff-stat-card{background:var(--white);border:1px solid var(--border);padding:16px 18px}
.aff-stat-label{font-size:10px;font-weight:600;letter-spacing:2px;text-transform:uppercase;color:var(--dim);margin-bottom:8px}
.aff-stat-num{font-family:'Instrument Serif',serif;font-size:32px;color:var(--navy);line-height:1}
.aff-stat-num.gold{color:var(--gold)}.aff-stat-num.green{color:var(--green)}.aff-stat-num.amber{color:var(--amber)}
.aff-stat-sub{font-size:10px;color:var(--dim);margin-top:4px}

/* Link box */
.aff-link-box{background:var(--white);border:1px solid var(--border);border-left:3px solid var(--gold);padding:18px 20px;margin-bottom:24px}
.aff-link-box-label{font-size:10px;font-weight:600;letter-spacing:2px;text-transform:uppercase;color:var(--dim);margin-bottom:10px}
.aff-link-row{display:flex;gap:8px;align-items:center}
.aff-link-url{flex:1;padding:9px 14px;background:var(--off);border:1px solid var(--border);font-size:13px;font-weight:500;color:var(--navy)}
.aff-link-btn{padding:9px 16px;font-size:11px;font-weight:700;cursor:pointer;border:none;font-family:'Plus Jakarta Sans',sans-serif}
.aff-btn-gold{background:var(--gold);color:var(--navy-deep)}
.aff-btn-secondary{background:var(--off);color:var(--navy);border:1px solid var(--border)}
.aff-link-hint{font-size:11px;color:var(--dim);margin-top:8px}

/* Panels */
.aff-panel{display:none}.aff-panel.active{display:block}

/* Table */
.aff-table-wrap{background:var(--white);border:1px solid var(--border)}
.aff-table-top{padding:14px 18px;border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between}
.aff-table-title{font-size:13px;font-weight:600;color:var(--navy)}
.aff-table-wrap table{width:100%;border-collapse:collapse;font-size:12px;overflow-x:auto}
.aff-table-wrap th{padding:8px 16px;text-align:left;font-size:10px;font-weight:600;color:var(--dim);letter-spacing:1.5px;text-transform:uppercase;border-bottom:1px solid var(--border);background:var(--off)}
.aff-table-wrap td{padding:10px 16px;border-bottom:1px solid var(--border);vertical-align:middle}
.aff-table-wrap tr:last-child td{border-bottom:none}
.aff-table-wrap tr:hover td{background:#FAFBFC}

/* Badges */
.aff-badge{display:inline-flex;font-size:10px;font-weight:600;padding:3px 8px}
.aff-b-green{background:var(--green-bg);color:var(--green-text)}
.aff-b-amber{background:var(--amber-bg);color:var(--amber)}
.aff-b-gray{background:var(--off);color:var(--dim);border:1px solid var(--border)}
.aff-earn{font-weight:600;color:var(--green)}
.aff-earn-pending{font-weight:500;color:var(--amber)}

/* Empty state */
.aff-empty-state{text-align:center;padding:48px 24px;background:var(--white);border:1px solid var(--border)}
.aff-empty-icon{font-size:36px;margin-bottom:14px}
.aff-empty-title{font-size:15px;font-weight:600;color:var(--navy);margin-bottom:8px}
.aff-empty-body{font-size:13px;color:var(--dim);line-height:1.7;max-width:320px;margin:0 auto 20px}
.aff-empty-cta{display:inline-block;background:var(--navy);color:var(--white);font-size:11px;font-weight:700;letter-spacing:1px;text-transform:uppercase;padding:11px 22px;cursor:pointer;border:none;font-family:'Plus Jakarta Sans',sans-serif;text-decoration:none}

/* Toast */
.aff-toast{position:fixed;bottom:24px;right:24px;background:var(--navy);color:var(--frost);padding:12px 20px;font-size:12px;font-weight:500;border-left:3px solid var(--gold);z-index:999;display:none;animation:aff-fadein .2s ease}
.aff-toast.show{display:block}
@keyframes aff-fadein{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}

/* Terms/contact panels */
.aff-terms-panel-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-bottom:20px}
.aff-terms-panel-card{background:var(--white);border:1px solid var(--border);padding:20px}
.aff-terms-panel-card h3{font-size:13px;font-weight:600;color:var(--navy);margin-bottom:12px;display:flex;align-items:center;gap:8px}
.aff-terms-panel-card h3::before{content:'';width:3px;height:16px;background:var(--gold);flex-shrink:0}
.aff-terms-panel-row{display:flex;justify-content:space-between;padding:8px 0;border-bottom:1px solid var(--border);font-size:12px}
.aff-terms-panel-row:last-child{border-bottom:none}
.aff-terms-panel-key{color:var(--dim)}.aff-terms-panel-val{font-weight:600;color:var(--navy)}.aff-terms-panel-val.gold{color:var(--gold)}
.aff-contact-box{background:var(--white);border:1px solid var(--border);padding:24px;max-width:480px}
.aff-contact-box label{display:block;font-size:11px;font-weight:600;color:var(--dim);letter-spacing:1px;text-transform:uppercase;margin-bottom:5px;margin-top:14px}
.aff-contact-box label:first-child{margin-top:0}
.aff-contact-box input,.aff-contact-box textarea,.aff-contact-box select{width:100%;padding:9px 12px;border:1px solid var(--border);font-size:12px;font-family:'Plus Jakarta Sans',sans-serif;color:var(--navy);background:var(--off)}
.aff-contact-box textarea{height:100px;resize:none}
.aff-contact-submit{margin-top:16px;padding:10px 20px;background:var(--navy);color:var(--white);border:none;font-size:12px;font-weight:700;cursor:pointer;font-family:'Plus Jakarta Sans',sans-serif}

/* QR placeholder */
.aff-qr-placeholder{width:120px;height:120px;background:var(--off);border:1px solid var(--border);display:flex;align-items:center;justify-content:center;font-size:11px;color:var(--dim)}

/* Mobile hamburger (dashboard) */
.aff-hamburger{display:none;flex-direction:column;gap:5px;cursor:pointer;padding:6px;background:none;border:none}
.aff-hamburger span{display:block;width:22px;height:2px;background:var(--frost)}
.aff-sidebar-overlay{display:none;position:fixed;inset:0;background:rgba(0,0,0,.4);z-index:150}

/* Responsive */
@media(max-width:700px){
  .aff-terms-grid{grid-template-columns:1fr}
  .aff-reward-strip{gap:24px}
  .aff-nav-links .aff-nav-link:not(.cta):not(.active){display:none}
  .aff-page{grid-template-columns:1fr}
  .aff-left{display:none}
  .aff-right{padding:36px 24px}
  .aff-stat-grid{grid-template-columns:1fr 1fr}
  .aff-shell{grid-template-columns:1fr}
  .aff-sidebar{display:none;position:fixed;top:0;left:0;width:240px;height:100vh;z-index:160;overflow-y:auto}
  .aff-sidebar.open{display:block}
  .aff-sidebar-overlay.open{display:block}
  .aff-hamburger{display:flex}
  .aff-main{padding:20px 16px}
  .aff-terms-panel-grid{grid-template-columns:1fr}
  .aff-modal-overlay{padding:0}
  .aff-modal-box{border-radius:0;margin:0;min-height:100vh;border-top:none;border-left:3px solid var(--gold)}
}
