:root{--brand-primary:#1a1a2e;--brand-button-text:#ffffff;--brand-background:#f5f6fa;--brand-site-font:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;--brand-header-font:var(--brand-site-font);--sidebar-width:240px}*{box-sizing:border-box}body,html{margin:0;padding:0}body{font-family:var(--brand-site-font);background:var(--brand-background);color:#1a1a2e;min-height:100vh}h1,h2,h3{font-family:var(--brand-header-font)}.app-shell{display:grid;grid-template-columns:var(--sidebar-width) 1fr;min-height:100vh}.sidebar{background:var(--brand-primary);color:var(--brand-button-text);padding:1.25rem 1rem;display:flex;flex-direction:column;gap:1.5rem}.sidebar .brand{display:flex;align-items:center;gap:.5rem;font-weight:700;font-size:1.05rem}.sidebar .brand img{max-height:32px;width:auto}.sidebar nav{display:flex;flex-direction:column;gap:.25rem}.sidebar nav a{color:inherit;text-decoration:none;padding:.5rem .75rem;border-radius:6px;font-size:.92rem;opacity:.85}.sidebar nav a:hover{background:rgba(255,255,255,.12);opacity:1}.sidebar .spacer{flex:1 1}.sidebar .logout{border:1px solid rgba(255,255,255,.3);background:transparent;color:inherit;padding:.5rem .75rem;border-radius:6px;cursor:pointer;font:inherit}.content{padding:2rem 2.5rem}.card-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));grid-gap:1rem;gap:1rem;margin-top:1.5rem}.card{background:#fff;border:1px solid #e3e5ec;border-radius:10px;padding:1.25rem}.card .muted{color:#6b7280;font-size:.85rem}.login-screen{display:grid;place-items:center;min-height:100vh}.login-card{background:#fff;border-radius:12px;padding:2.5rem;width:min(360px,90vw);text-align:center;box-shadow:0 10px 40px rgba(0,0,0,.08)}.btn-primary{display:inline-block;background:var(--brand-primary);color:var(--brand-button-text);padding:.7rem 1.4rem;border-radius:8px;text-decoration:none;font-weight:600;border:none;cursor:pointer;font:inherit}.error-banner{background:#fdecea;color:#b3261e}.error-banner,.success-banner{padding:.6rem .9rem;border-radius:8px;font-size:.9rem;margin-bottom:1rem}.success-banner{background:#e7f6ec;color:#1b7a3d}.stack{display:flex;flex-direction:column;gap:1.25rem;margin-top:1.5rem}.card h2{margin-top:0;font-size:1.05rem}.form-actions{display:flex;align-items:center;gap:.75rem}.field-list{display:grid;grid-gap:1rem;gap:1rem}.field{display:flex;flex-direction:column;gap:.35rem;font-size:.9rem}.field-label{font-weight:600;display:flex;align-items:center;gap:.5rem}.field-key{font-weight:400;font-size:.75rem;color:#6b7280;background:#f1f2f6;padding:.05rem .35rem;border-radius:4px}.field input[type=number],.field input[type=text],.field input[type=url]{padding:.5rem .6rem;border:1px solid #d4d7e0;border-radius:6px;font:inherit;max-width:420px}.field input[type=checkbox]{width:1.1rem;height:1.1rem}.colour-row{display:flex;align-items:center;gap:.5rem}.colour-row input[type=color]{width:38px;height:38px;border:1px solid #d4d7e0;border-radius:6px;background:none;cursor:pointer}.colour-row input[type=text]{max-width:140px}.inline-form{display:flex;gap:.5rem;flex-wrap:wrap}.inline-form input{padding:.5rem .6rem;border:1px solid #d4d7e0;border-radius:6px;font:inherit;min-width:280px}.btn-ghost{background:transparent;border:1px solid #d4d7e0;border-radius:8px}.btn-danger,.btn-ghost{padding:.7rem 1.4rem;font:inherit;cursor:pointer}.btn-danger{background:#b3261e;color:#fff;border:none;border-radius:8px;font-weight:600}.btn-danger:disabled,.btn-ghost:disabled,.btn-primary:disabled{opacity:.5;cursor:not-allowed}.btn-link-danger{background:none;border:none;color:#b3261e;cursor:pointer;font:inherit;text-decoration:underline}.data-table{width:100%;border-collapse:collapse;font-size:.88rem}.data-table td,.data-table th{text-align:left;padding:.6rem .5rem;border-bottom:1px solid #eceef3;vertical-align:top}.data-table th{color:#6b7280;font-weight:600;font-size:.78rem;text-transform:uppercase;letter-spacing:.03em}.badge-off,.badge-ok{font-size:.75rem;font-weight:600;padding:.1rem .5rem;border-radius:999px}.badge-ok{background:#e7f6ec;color:#1b7a3d}.badge-off{background:#f1f2f6;color:#6b7280}.event-chip,.event-option code{display:inline-block;background:#f1f2f6;border-radius:4px;padding:.05rem .4rem;margin:.1rem .2rem .1rem 0;font-size:.78rem}.events{border:1px solid #e3e5ec;border-radius:8px;padding:.75rem 1rem;margin:1rem 0}.events legend{font-weight:600;font-size:.85rem;padding:0 .4rem}.event-option{display:flex;align-items:center;gap:.5rem;padding:.2rem 0}.modal-backdrop{position:fixed;inset:0;background:rgba(20,20,35,.55);display:grid;place-items:center;z-index:50;padding:1rem}.modal{background:#fff;border-radius:12px;padding:1.75rem;width:min(520px,100%);box-shadow:0 20px 60px rgba(0,0,0,.25)}.modal h2{margin-top:0}.modal .warn{color:#8a5a00;background:#fff7e6;padding:.5rem .75rem;border-radius:8px;font-size:.88rem}.modal .secret{display:block;background:#14142a;color:#e6e6f0;padding:.75rem;border-radius:8px;font-size:.82rem;word-break:break-all;margin:1rem 0}.modal-actions{display:flex;gap:.75rem;flex-wrap:wrap}.branding-layout{display:grid;grid-template-columns:1fr minmax(280px,360px);grid-gap:1.5rem;gap:1.5rem;margin-top:1.5rem;align-items:start}@media (max-width:900px){.branding-layout{grid-template-columns:1fr}}.preview{position:-webkit-sticky;position:sticky;top:1rem}.preview-label{font-size:.78rem;text-transform:uppercase;letter-spacing:.03em;color:#6b7280;margin-bottom:.5rem}.preview-frame{border:1px solid #e3e5ec;border-radius:12px;overflow:hidden;background:var(--p-background);font-family:var(--p-site-font)}.preview-header{background:var(--p-primary);color:var(--p-button-text);display:flex;align-items:center;justify-content:space-between;padding:.75rem 1rem;font-family:var(--p-header-font)}.preview-header img{max-height:28px}.preview-wallet{display:flex;align-items:center;gap:.35rem;font-size:.85rem}.preview-wallet img{max-height:20px}.preview-body{padding:1.25rem 1rem 1.5rem}.preview-body h3{font-family:var(--p-header-font);margin:0 0 .25rem}.preview-cta{margin-top:.75rem;background:var(--p-primary);color:var(--p-button-text);border:none;border-radius:8px;padding:.6rem 1.2rem;font:inherit;font-weight:600;cursor:pointer}.dashboard-lists{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));grid-gap:1rem;gap:1rem;margin-top:1rem}.card .stat{font-size:1.6rem;font-weight:700;margin:.35rem 0 .15rem}.list{list-style:none;margin:.5rem 0 0;padding:0;gap:.6rem}.list,.list-row{display:flex;flex-direction:column}.list-row{gap:.15rem;padding-bottom:.6rem;border-bottom:1px solid #eceef3}.list-row:last-child{border-bottom:none;padding-bottom:0}.list-title{font-weight:600}.skeleton{background:linear-gradient(90deg,#eceef3 25%,#f5f6fa 50%,#eceef3 75%);background-size:200% 100%;animation:skeleton-shimmer 1.4s ease-in-out infinite;border-radius:6px}.skeleton-stat{height:1.8rem;width:60%;margin:.5rem 0}.skeleton-list{display:flex;flex-direction:column;gap:.5rem}.skeleton-row{height:1.4rem}@keyframes skeleton-shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.content-layout{display:grid;grid-template-columns:minmax(320px,440px) 1fr;grid-gap:1.5rem;gap:1.5rem;margin-top:1.5rem;align-items:start}@media (max-width:980px){.content-layout{grid-template-columns:1fr}}.content-layout textarea{padding:.5rem .6rem;border:1px solid #d4d7e0;border-radius:6px;font:inherit;resize:vertical}.field-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));grid-gap:.75rem;gap:.75rem}.content-output{display:flex;flex-direction:column;gap:1rem}.content-output .placeholder{padding:2rem 0;text-align:center}.card-head{display:flex;align-items:center;justify-content:space-between;gap:1rem}.card-head h2{margin:0}.btn-sm{padding:.35rem .8rem;font-size:.82rem}.subject-line{font-size:.9rem;margin:.5rem 0}.channel-body,.raw-output{white-space:pre-wrap;word-break:break-word;background:#f7f8fb;border:1px solid #eceef3;border-radius:8px;padding:.75rem;font-family:var(--brand-site-font);font-size:.88rem;margin:.5rem 0 0}.raw-output{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.8rem}.compliance-panel ul{margin:0;padding-left:0;list-style:none;display:flex;flex-direction:column;gap:.5rem}.flag{padding:.5rem .75rem;border-radius:8px;font-size:.88rem;border-left:4px solid}.flag-warning{background:#fff7e6;border-color:#d98a00;color:#8a5a00}.flag-info{background:#eef4ff;border-color:#3b6fd4;color:#234a8a}