.affiliate-modal[hidden] { display:none; }
.affiliate-modal { position:fixed; z-index:10020; inset:0; display:grid; place-items:center; padding:20px; background:rgba(10,15,28,.72); backdrop-filter:blur(8px); }
.affiliate-panel { width:min(620px,100%); max-height:calc(100vh - 40px); max-height:calc(100dvh - 40px); overflow:auto; padding:22px; border:1px solid var(--line); border-radius:20px; background:var(--panel); color:var(--ink); box-shadow:0 28px 80px rgba(5,10,24,.34); }
.affiliate-head { display:flex; align-items:flex-start; justify-content:space-between; gap:16px; }
.affiliate-head h2 { margin:3px 0 0; font-size:1.3rem; }
.affiliate-head button { width:36px; height:36px; padding:0; border:1px solid var(--line); border-radius:10px; background:transparent; color:var(--muted); font-size:22px; cursor:pointer; }
.affiliate-copy,.affiliate-disclosure { color:var(--muted); font-size:13px; line-height:1.65; }
.affiliate-links { display:grid; gap:9px; margin:16px 0; }
.affiliate-links a { display:flex; align-items:center; justify-content:space-between; gap:12px; padding:12px 14px; border:1px solid rgba(238,77,45,.28); border-radius:12px; background:rgba(238,77,45,.08); color:#d84a2d; font-weight:700; text-decoration:none; }
.affiliate-links a::after { content:'↗'; flex:0 0 auto; }
.affiliate-disclosure { margin:12px 0 18px; font-size:11px; }
.affiliate-actions { display:flex; justify-content:flex-end; gap:10px; }
.affiliate-actions button { min-height:40px; padding:9px 15px; border:0; border-radius:10px; background:var(--accent); color:#fff; font:600 13px inherit; cursor:pointer; }
.affiliate-actions .affiliate-cancel { border:1px solid var(--line); background:transparent; color:var(--muted); }
html[data-theme="dark"] .affiliate-links a { border-color:rgba(255,129,102,.3); background:rgba(238,77,45,.12); color:#ff9b84; }
@media(max-width:520px){.affiliate-modal{padding:10px}.affiliate-panel{max-height:calc(100dvh - 20px);padding:17px}.affiliate-actions{align-items:stretch;flex-direction:column-reverse}.affiliate-actions button{width:100%}}
