body:not(.campaign-ready) .app-shell{display:none}#campaign-portal{max-width:1120px;margin:0 auto;padding:48px 28px 100px}.portal-brand{display:flex;align-items:center;gap:12px;font-weight:800;letter-spacing:.16em;color:var(--text,var(--text));margin-bottom:64px}.portal-brand .rune{font-size:41.5px;color:var(--text)}.portal-header{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:32px}.portal-header h1{font:600 clamp(34.5px,5vw,48px) var(--font-display);margin:8px 0}.portal-subtitle{color:var(--text-soft);line-height:1.8;max-width:610px}.portal-auth{max-width:460px;margin:0 auto}.portal-form{display:grid;gap:20px}.portal-form label{display:grid;gap:8px;font-size:15px;color:var(--text)}.portal-form input,.portal-form select{width:100%;box-sizing:border-box;background:var(--sheet);color:var(--text);border:1px solid var(--rule);border-radius:var(--radius);padding:12px;font:inherit}.portal-form input:focus,.portal-form select:focus{outline:2px solid var(--rule-strong);outline-offset:2px}.portal-form .modal-actions{margin-top:10px}.portal-error{color:var(--wound);line-height:1.6}.portal-error:empty{display:none}.campaign-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:20px}.campaign-card{padding:26px;display:flex;flex-direction:column;align-items:flex-start;gap:18px}.campaign-card h2{font:600 30px var(--font-display);margin:0}.campaign-card p{color:var(--text-soft);line-height:1.7}.campaign-card .primary-btn{margin-top:auto}.campaign-role{border:1px solid var(--rule);border-radius:var(--radius-tag);padding:5px 10px;font-size:12.5px;font-variant-caps:all-small-caps;letter-spacing:.1em;color:var(--text)}.portal-actions{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.portal-footnote{margin-top:28px;color:var(--text-soft);font-size:14px;line-height:1.8}.mail-preview{border:1px solid var(--rule);border-radius:var(--radius);padding:20px;background:var(--leaf);margin:20px 0}.mail-preview a{color:var(--vermilion)}.campaign-back{margin:0 0 16px}.campaign-invitations{margin-top:32px}.invite-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:14px}
.invite-row{padding:14px 16px;border:1px solid var(--rule);border-radius:var(--radius);background:var(--leaf);display:flex;flex-direction:column;align-items:flex-start;gap:10px;min-width:0}
.invite-row b{overflow-wrap:anywhere}.invite-row p{margin:4px 0;color:var(--text-soft)}.invite-state{font-size:14px;color:var(--text)}.ability-fields{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.onboarding-card{max-width:640px;margin:0 auto}.campaign-save-error{position:fixed;bottom:18px;left:50%;transform:translateX(-50%);z-index:10000;background:var(--wound-wash);border:1px solid var(--rule-strong);padding:15px 20px;border-radius:var(--radius);color:var(--wound);max-width:90vw}.campaign-save-error button{margin-left:12px}.portal-tabs{display:flex;gap:12px;margin:24px 0}.portal-tabs button[aria-selected=true]{border-color:var(--rule-strong);color:var(--vermilion)}.campaign-heading{display:flex;align-items:center;gap:18px}.campaign-account-name{color:var(--text);font-size:15px}.campaign-membership{font-size:14px;color:var(--text-soft)}.campaign-status{color:var(--text-soft);font-size:14px}.portal-form h3{margin:4px 0;font-family:var(--font-display)}@media(max-width:650px){#campaign-portal{padding:28px 18px}.portal-brand{margin-bottom:36px}.portal-header{align-items:flex-start;flex-direction:column}.ability-fields{grid-template-columns:repeat(2,1fr)}}

#campaign-portal a:not(.primary-btn){color:var(--vermilion);text-underline-offset:3px}#campaign-portal a.primary-btn{text-decoration:none}.portal-auth h1,.onboarding-card h1{font-family:var(--font-display);font-size:41.5px}

/* Campaign landing: account navigation, page action, then tables. */
.portal-topbar{display:flex;align-items:center;justify-content:space-between;gap:24px;padding-bottom:24px;border-bottom:1px solid var(--rule);margin-bottom:54px}
.portal-topbar .portal-brand{margin-bottom:0}
.portal-topbar .portal-actions{gap:18px}
.portal-topbar #sign-out{font-size:14px;color:var(--text-soft)}
.campaign-home-header{align-items:center;margin-bottom:30px}
.campaign-home-header .eyebrow{margin-top:0}
.campaign-home-header .portal-subtitle{margin-bottom:0}
.campaign-home-header>.primary-btn{flex-shrink:0}
.campaign-grid{grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:24px}
a.campaign-card{color:var(--text,var(--text));text-decoration:none;min-height:260px;box-sizing:border-box;position:relative;cursor:pointer;border:1px solid var(--rule);background:linear-gradient(135deg,var(--foxed),var(--leaf));transition:border-color .18s ease,background .18s ease,box-shadow .18s ease,transform .18s ease}
.campaign-card h2{line-height:1.25;margin-top:4px}
.campaign-card p{margin:0;max-width:28ch}
.campaign-enter{display:flex;justify-content:space-between;align-items:center;gap:24px;width:100%;padding-top:20px;margin-top:auto;border-top:1px solid var(--rule);font-size:15px;font-weight:600;color:var(--vermilion)}
.campaign-enter>span{font-size:24px;transition:transform .18s ease}
a.campaign-card:hover{border-color:var(--vermilion);background:linear-gradient(135deg,var(--foxed),var(--leaf));box-shadow:0 10px 30px color-mix(in srgb,var(--shadow) 20%,transparent);transform:translateY(-3px)}
a.campaign-card:hover .campaign-enter>span{transform:translate(2px,-2px)}
a.campaign-card:focus-visible{outline:3px solid var(--vermilion);outline-offset:5px;border-color:var(--vermilion)}
@media(max-width:650px){.campaign-enter>span{display:none}.portal-topbar{align-items:flex-start;gap:16px;margin-bottom:34px;padding-bottom:20px}.portal-topbar .portal-actions{align-items:flex-end;flex-direction:column;gap:8px}.portal-topbar .portal-brand{font-size:14px;gap:8px}.portal-topbar .portal-brand .rune{font-size:32px}.campaign-home-header{gap:24px}.campaign-grid{grid-template-columns:1fr}a.campaign-card{min-height:250px}.campaign-account-name{font-size:14px}}
@media(prefers-reduced-motion:reduce){a.campaign-card,.campaign-enter>span{transition:none}a.campaign-card:hover{transform:none}}
.settings-section .small-label:empty{display:none}
.rail-account{display:flex;align-items:center;gap:10px;background:none;border:0;padding:0;color:inherit;font:inherit;text-align:left;cursor:pointer}
#campaign-portal a.quiet-btn{color:var(--text-soft);font-size:14px;text-decoration:none}
#campaign-portal a.outline-btn{color:var(--text);text-decoration:none;flex-shrink:0}
.settings-theme.theme-switch>span{display:none}
.settings-section{display:grid;grid-template-columns:minmax(200px,1fr) minmax(0,2fr);gap:20px 56px;padding:36px 0;border-top:1px solid var(--rule)}
.settings-intro h2{margin:0 0 10px}
.settings-intro p{margin:0;color:var(--text-soft);line-height:1.7;max-width:34ch}
.settings-body{max-width:640px}
.settings-pair{display:grid;grid-template-columns:1fr 1fr;gap:20px}
@media(max-width:760px){.settings-section{grid-template-columns:1fr;padding:28px 0}.settings-pair{grid-template-columns:1fr}}
.settings-note{margin:0;font-size:15px;color:var(--text-soft)}
@media(max-width:610px){.rail .campaign-back{margin-right:52px!important}.rail-bottom{display:flex;position:absolute;top:10px;right:8px;margin:0;padding:0;border:0}.rail-bottom .small-label{display:none}}
