/* Campaign Planner: structural defaults for any theme. Every rule is wrapped in
   :where() (zero specificity), so a theme's own classes always win; the
   Ztudium theme styles all of this itself. */
:where(.zcp){display:block}
:where(.zcp .wrap){width:min(100% - 40px,1200px);margin-inline:auto}
:where(.zcp .planner__top){padding-block:32px}
:where(.zcp .progress){display:grid;grid-template-columns:repeat(4,1fr);gap:6px;list-style:none;padding:0;margin:0 0 32px}
:where(.zcp .progress li){border-top:3px solid #ccc;padding-top:8px;font-size:.85rem}
:where(.zcp .progress li.is-current, .zcp .progress li.is-done){border-color:#a1000e}
:where(.js .zcp [data-zcp-form] .pstep){display:none}
:where(.js .zcp [data-zcp-form] .pstep.is-current){display:block}
:where(.zcp .q){border:0;padding:0;margin:32px 0 0}
:where(.zcp .choices){display:flex;flex-wrap:wrap;gap:8px}
:where(.zcp .choice){position:relative;display:inline-flex}
:where(.zcp .choice input){position:absolute;opacity:0;inset:0}
:where(.zcp .choice span){display:inline-flex;align-items:center;min-height:44px;padding:0 16px;border:1px solid #999;border-radius:999px}
:where(.zcp .choice input:checked + span){background:#131313;color:#fff;border-color:#131313}
:where(.zcp .choice input:focus-visible + span){outline:2px solid #a1000e;outline-offset:3px}
:where(.zcp .field){display:grid;gap:6px;margin-top:16px}
:where(.zcp input:not([type=radio]):not([type=checkbox]), .zcp select, .zcp textarea){min-height:44px;padding:10px 12px;border:1px solid #999;border-radius:6px;font:inherit;width:100%;box-sizing:border-box}
:where(.zcp .pstep__nav){display:flex;justify-content:space-between;gap:12px;margin-top:32px}
:where(.zcp .plans){display:grid;gap:24px;margin-top:32px;grid-template-columns:repeat(auto-fit,minmax(min(100%,320px),1fr))}
:where(.zcp .plan){border:1px solid #ccc;border-radius:10px;padding:24px;display:grid;gap:16px;align-content:start}
:where(.zcp .plan.is-picked){border-color:#a1000e}
:where(.zcp .plan__items){list-style:none;padding:0;margin:0;display:grid;gap:6px}
:where(.zcp .plan__item){display:grid;grid-template-columns:1fr auto auto;gap:10px;align-items:center}
:where(.zcp .plan__item small){display:block;opacity:.7}
:where(.zcp .addable){display:flex;flex-wrap:wrap;gap:6px}
:where(.zcp .addable form){display:inline}
:where(.zcp .plan__sum-row){display:flex;justify-content:space-between}
:where(.zcp .zcp-buy){display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:24px;margin-top:40px;padding:24px;border:1px solid #ccc;border-radius:10px}
:where(.zcp .zcp-summary){margin:48px 0}
:where(.zcp .zcp-summary pre){white-space:pre-wrap;font:inherit;font-size:.9rem}
:where(.zcp .zcp-link){flex:1;min-width:0}
:where(.zcp .sr-only){position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}
@media print{:where(.zcp .no-print){display:none!important}}

.zcp-trap{position:absolute!important;left:-9999px;width:1px;height:1px;overflow:hidden}
:where(.zcp .pstep > .field, .zcp .pstep > .form__row, .zcp .pstep > .q){margin-top:32px}
