:root { --sp-bg: #f6f8fb; --sp-card: #ffffff; --sp-border: #e6eaf0; }
body { background: var(--sp-bg); color: #172033; min-height: 100vh; display: flex; flex-direction: column; }
main { flex: 1; }
.navbar-brand { letter-spacing: .01em; }
.tool-card, .ad-box, .settings-panel, .content-section { background: var(--sp-card); border: 1px solid var(--sp-border); border-radius: 1.25rem; box-shadow: 0 12px 30px rgba(15, 23, 42, .06); }
.tool-card { padding: clamp(1.25rem, 3vw, 2rem); }
.settings-panel, .content-section { padding: 1.25rem; }
.result-panel { background: linear-gradient(135deg, #eef5ff, #ffffff); border: 1px solid #d8e7ff; border-radius: 1.25rem; padding: clamp(1rem, 3vw, 1.5rem); }
.result-panel-soft { background: #fff; border-color: var(--sp-border); }
.result-value { font-size: clamp(2.2rem, 8vw, 4.5rem); line-height: 1; font-weight: 800; letter-spacing: -.04em; overflow-wrap: anywhere; }
.result-host { font-size: clamp(1.1rem, 3vw, 1.7rem); font-weight: 700; overflow-wrap: anywhere; }
.password-output { font-size: clamp(1.6rem, 5vw, 3rem); font-weight: 800; letter-spacing: .02em; overflow-wrap: anywhere; font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace; }
.ad-box { padding: 1.25rem; }
.ad-card { position: relative; display: block; color: inherit; text-decoration: none; border: 1px solid var(--sp-border); border-radius: 1rem; padding: 1rem 2.3rem 1rem 1rem; margin-bottom: .75rem; background: #fff; transition: transform .15s ease, box-shadow .15s ease; }
.ad-card:hover { transform: translateY(-2px); box-shadow: 0 10px 25px rgba(15, 23, 42, .08); }
.ad-card small { display: block; color: #667085; margin-top: .25rem; }
.ad-card i { position: absolute; right: 1rem; top: 1.1rem; color: #667085; }
.affiliate-placeholder { min-height: 160px; border: 2px dashed #d4dae5; border-radius: 1.25rem; display: flex; align-items: center; justify-content: center; color: #8a94a6; background: rgba(255,255,255,.6); text-align: center; padding: 1rem; }
.form-check { user-select: none; }
.copy-done { pointer-events: none; }
