/* Scoped to zp- classes; no external CSS framework needed. */
.zp-banner,.zp-dialog{font-family:inherit;color:#16241d;line-height:1.5}
.zp-banner{position:fixed;inset:auto 16px 16px;z-index:2147483000;max-width:1100px;margin:auto;padding:16px 18px;border:1px solid #c9d7d0;border-radius:16px;background:#fff;box-shadow:0 10px 30px #12281b2b;display:flex;gap:18px;align-items:center;justify-content:space-between}
.zp-banner[hidden],.zp-toast[hidden],.zp-pill[hidden],.zp-dialog [hidden]{display:none!important}
.zp-banner-content p{margin:4px 0 0;font-size:14px;color:#52665a}.zp-banner-content strong{font-size:16px}
.zp-banner-actions,.zp-dialog-actions{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}
.zp-button{appearance:none;cursor:pointer;border:1px solid #cddbd3;border-radius:28px;padding:10px 16px;font:inherit;font-size:14px;font-weight:650;white-space:nowrap;background:#fff;color:#16241d;min-height:42px}
.zp-button:hover{border-color:#116447}.zp-button:focus-visible,.zp-close:focus-visible,.zp-dialog input:focus-visible{outline:3px solid #d7ad32;outline-offset:3px}
.zp-primary{background:#116447;color:#fff;border-color:#116447}.zp-primary:hover{background:#0b533b}
.zp-dialog{max-width:min(560px,calc(100% - 30px));width:100%;max-height:min(92vh,850px);overflow:auto;padding:0;border:1px solid #c5d7cb;border-radius:18px;background:#fff;box-shadow:0 15px 60px #13281e44}
.zp-dialog::backdrop{background:#081d16a6}.zp-dialog-inner{padding:26px}
.zp-dialog-head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px}
.zp-dialog h2{font-size:25px;line-height:1.2;margin:0 0 8px;color:#16241d}
.zp-dialog p{font-size:14px;color:#576b5f;margin:0 0 16px}
.zp-close{font:inherit;font-size:26px;line-height:1;border:0;background:transparent;cursor:pointer;color:#2c4035;width:38px;height:38px}
.zp-purpose{padding:14px 0 8px;border-top:1px solid #dbe5de}.zp-purpose-top{display:flex;flex-wrap:wrap;align-items:center;gap:10px;justify-content:space-between;margin-bottom:8px}
.zp-purpose strong{font-size:16px}.zp-pill{border-radius:99px;background:#e4f3eb;color:#116447;padding:5px 9px;font-size:12px;font-weight:700}.zp-pill.zp-inactive{background:#f0f2f0;color:#515e55}
.zp-toggle-label{display:flex;align-items:center;gap:9px;cursor:pointer;font-size:14px;font-weight:600}.zp-toggle-label input{width:20px;height:20px;accent-color:#116447;cursor:pointer}
.zp-dialog .zp-small{font-size:12px;margin-top:5px}.zp-dialog a{color:#116447;text-decoration:underline}
.zp-saved{font-size:12px;color:#596a60;margin:10px 0 0}
.zp-saved strong{color:#16241d}
.zp-dialog-actions{border-top:1px solid #dbe5de;padding-top:16px;margin-top:4px}
.zp-toast{position:fixed;right:16px;bottom:16px;max-width:min(350px,calc(100vw - 32px));z-index:2147483001;background:#0b3025;color:#fff;border-radius:12px;box-shadow:0 6px 25px #0003;padding:14px 18px;font-size:14px}
@media(max-width:660px){.zp-banner{flex-direction:column;align-items:stretch;inset:auto 10px 10px;padding:16px;gap:12px}.zp-banner-actions{display:grid;grid-template-columns:1fr 1fr}.zp-banner-actions button:last-child{grid-column:1/-1}.zp-dialog-inner{padding:18px}.zp-dialog-actions{justify-content:stretch}.zp-dialog-actions .zp-button{flex:1}.zp-dialog h2{font-size:22px}}
@media(prefers-reduced-motion:reduce){.zp-banner,.zp-dialog{scroll-behavior:auto}}
