:root{--blue:#082f63;--blue2:#041b3a;--red:#e5232a;--bg:#f4f8fb;--card:#fff;--text:#102033;--muted:#64748b;--line:rgba(8,47,99,.13);--soft:#f7fafd;--green:#027a48;--amber:#b54708;--radius:14px;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:var(--text);background:var(--bg)}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text)}a{color:var(--blue);text-decoration:none}a:hover{color:var(--red)}button,input,select,textarea{font:inherit}.app-shell{min-height:100vh;display:grid;grid-template-columns:250px minmax(0,1fr)}.sidebar{position:sticky;top:0;height:100vh;background:var(--blue2);padding:22px 14px;color:#fff}.brand{display:flex;gap:11px;align-items:center;color:#fff;padding:4px 8px 23px}.brand:hover{color:#fff}.brand-mark{display:inline-grid;place-items:center;width:38px;height:38px;border-radius:11px;background:var(--red);color:#fff;font-weight:900;font-size:21px;box-shadow:0 7px 18px rgba(229,35,42,.22)}.brand strong{display:block}.brand small{display:block;color:#a8bdd7;font-size:10px;margin-top:2px}.sidebar nav{display:grid;gap:4px}.sidebar nav a{display:flex;gap:11px;align-items:center;padding:10px 11px;border-radius:9px;color:#c8d5e6;font-size:13px;font-weight:750}.sidebar nav a span{width:18px;text-align:center}.sidebar nav a:hover,.sidebar nav a.active{background:rgba(255,255,255,.09);color:#fff}.sidebar nav a.active{box-shadow:inset 3px 0 0 var(--red)}.main-wrap{min-width:0}.topbar{height:64px;background:#fff;border-bottom:1px solid var(--line);display:flex;justify-content:space-between;align-items:center;padding:0 28px;position:sticky;top:0;z-index:20}.workspace-switcher select{border:1px solid var(--line);border-radius:8px;padding:8px 30px 8px 10px;background:#fff;color:var(--blue);font-weight:800}.top-actions{display:flex;align-items:center;gap:12px;font-size:12px;color:var(--muted)}.role-pill,.soft-pill{display:inline-flex;padding:5px 9px;border-radius:999px;background:#edf3fb;color:var(--blue);font-size:10px;font-weight:850;text-transform:uppercase;letter-spacing:.04em}.content{max-width:1540px;margin:0 auto;padding:32px}.page-head{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;margin-bottom:20px}.page-head h1{margin:2px 0 5px;font-size:29px;color:var(--blue2);letter-spacing:-.025em}.page-head p{margin:0;color:var(--muted);font-size:13px}.eyebrow{display:block;color:var(--red);font-size:10px;font-weight:900;text-transform:uppercase;letter-spacing:.11em}.back{display:inline-block;font-size:12px;font-weight:800;margin-bottom:8px}.actions,.form-actions{display:flex;gap:9px;align-items:center}.form-actions{margin-top:20px}.form-actions.between{justify-content:space-between}.card{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:22px;box-shadow:0 8px 24px rgba(8,47,99,.035);margin-bottom:18px;min-width:0}.card.narrow{max-width:800px}.card.centre,.centre{text-align:center}.card h2{margin:0 0 6px;color:var(--blue2);font-size:19px}.card h3{color:var(--blue);font-size:14px;margin:18px 0 8px}.card p{color:var(--muted);font-size:13px;line-height:1.55}.card-head{display:flex;justify-content:space-between;align-items:flex-start;gap:15px;margin-bottom:14px}.card-head p{margin:2px 0 0}.grid{display:grid;gap:17px}.grid.two{grid-template-columns:repeat(2,minmax(0,1fr))}.grid.three{grid-template-columns:repeat(3,minmax(0,1fr))}.grid.dashboard-grid{grid-template-columns:minmax(0,2fr) minmax(290px,.7fr)}.grid.preview-grid{grid-template-columns:minmax(0,1.8fr) minmax(280px,.55fr)}.span2{grid-column:1/-1}.stack{display:grid;gap:13px}.btn{appearance:none;border:1px solid transparent;border-radius:8px;padding:9px 14px;font-weight:850;font-size:12px;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:6px;transition:.15s;background:#fff;color:var(--blue)}.btn:hover{transform:translateY(-1px)}.btn.primary{background:var(--blue);border-color:var(--blue);color:#fff}.btn.primary:hover{background:var(--blue2);color:#fff}.btn.secondary{border-color:rgba(8,47,99,.28);background:#fff;color:var(--blue)}.btn.secondary:hover{background:#f0f5fb}.btn.ghost{background:transparent;border-color:transparent;color:var(--blue)}.btn.ghost.danger{color:var(--red)}.btn.small{padding:6px 10px;font-size:11px}.btn.full{width:100%}.btn:disabled{opacity:.5;cursor:not-allowed;transform:none}label{display:block;color:var(--text);font-size:12px;font-weight:800}label small{display:block;color:var(--muted);font-weight:500;margin-top:4px}input,select,textarea{width:100%;border:1px solid rgba(8,47,99,.18);border-radius:8px;background:#fff;color:var(--text);padding:10px 11px;margin-top:6px;min-height:41px;outline:none}textarea{line-height:1.55;resize:vertical}input:focus,select:focus,textarea:focus{border-color:var(--blue);box-shadow:0 0 0 3px rgba(8,47,99,.08)}label.check{display:flex;gap:9px;align-items:flex-start;padding:10px 12px;background:var(--soft);border:1px solid var(--line);border-radius:8px}label.check input{width:auto;min-height:auto;margin:3px 0 0;accent-color:var(--blue)}label.check span{font-size:12px}label.check small{margin-top:2px}.check-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}.inline-form{display:flex;gap:8px;align-items:end}.inline-form>*{margin-top:0}.inline-form input,.inline-form select{margin-top:0}.filter-grid{display:grid;grid-template-columns:2fr repeat(4,1fr) auto;gap:10px;align-items:end}.align-end{align-self:end}.stats-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-bottom:18px}.stats-grid.five{grid-template-columns:repeat(5,minmax(0,1fr))}.stat-card{background:#fff;border:1px solid var(--line);border-radius:12px;padding:17px}.stat-card span{display:block;color:var(--muted);font-size:10px;font-weight:850;text-transform:uppercase;letter-spacing:.06em}.stat-card strong{display:block;font-size:27px;color:var(--blue);margin:4px 0}.stat-card small{color:var(--muted)}.table-wrap{overflow:auto;border:1px solid var(--line);border-radius:10px}.table-wrap table{width:100%;border-collapse:collapse;min-width:760px}.table-wrap th,.table-wrap td{padding:11px 12px;border-bottom:1px solid rgba(8,47,99,.08);text-align:left;vertical-align:middle;font-size:12px}.table-wrap th{background:#f3f7fb;color:var(--blue);font-size:9px;text-transform:uppercase;letter-spacing:.06em;white-space:nowrap}.table-wrap tr:last-child td{border-bottom:0}.table-wrap td strong{display:block}.table-wrap td small{display:block;color:var(--muted);font-size:10px;margin-top:2px}.table-wrap td.actions{display:flex;gap:4px;white-space:nowrap}.table-wrap td.actions form{display:inline}.empty-cell,.empty{padding:24px!important;text-align:center!important;color:var(--muted)!important;background:var(--soft);border-radius:8px}.status{display:inline-flex;align-items:center;justify-content:center;padding:4px 8px;border-radius:999px;background:#eef2f6;color:#475467;font-size:9px;font-weight:900;text-transform:uppercase;letter-spacing:.035em}.status.active,.status.sent,.status.completed{background:#ecfdf3;color:var(--green)}.status.queued,.status.scheduled{background:#fff7e6;color:var(--amber)}.status.sending{background:#eef4ff;color:#3538cd}.status.failed,.status.suspended,.status.bounced{background:#fef3f2;color:#b42318}.status.unsubscribed,.status.suppressed,.status.inactive,.status.cancelled{background:#f2f4f7;color:#667085}.flash{padding:11px 13px;border-radius:9px;margin-bottom:14px;border:1px solid var(--line);background:#edf3fb;color:var(--blue);font-size:12px}.flash.success{background:#effaf5;color:var(--green);border-color:rgba(2,122,72,.18)}.flash.error{background:#fff4f4;color:#b42318;border-color:rgba(229,35,42,.18)}.flash.warning{background:#fff8eb;color:var(--amber)}.flash.info{background:#eef4ff;color:#3538cd}.bulkbar{display:flex;align-items:center;justify-content:space-between;gap:15px;margin-bottom:12px}.bulkbar>div{display:flex;gap:7px}.bulkbar select{margin:0;min-width:140px;padding:7px 9px;min-height:35px}.pagination{display:flex;gap:5px;margin-top:14px;flex-wrap:wrap}.pagination a{display:grid;place-items:center;min-width:30px;height:30px;border:1px solid var(--line);border-radius:7px;font-size:11px;font-weight:800}.pagination a.active{background:var(--blue);color:#fff}.simple-list{display:grid;margin-top:10px}.simple-list>div{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 0;border-top:1px solid var(--line)}.simple-list>div:first-child{border-top:0}.simple-list strong,.simple-list small{display:block}.simple-list small{color:var(--muted);font-size:10px;margin-top:2px}.icon-btn{border:0;background:transparent;color:var(--muted);font-size:18px;cursor:pointer}.tag-cloud{display:flex;gap:7px;flex-wrap:wrap;margin-top:12px}.tag{display:inline-flex;gap:5px;align-items:center;padding:6px 8px;border:1px solid var(--line);border-radius:999px;background:var(--soft);font-size:11px}.tag form{display:inline}.tag button{border:0;background:transparent;color:var(--muted);cursor:pointer}.token-help{margin:14px 0}.token-help>strong{display:block;font-size:11px;margin-bottom:6px}.token-help>div{display:flex;gap:6px;flex-wrap:wrap}.token{border:1px solid rgba(8,47,99,.16);background:#f4f8fc;color:var(--blue);border-radius:6px;padding:5px 8px;font:10px ui-monospace,SFMono-Regular,Menlo,monospace;cursor:pointer}.token:hover{background:var(--blue);color:#fff}.step-tabs{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-bottom:14px}.step-tabs button{border:1px solid var(--line);background:#fff;color:var(--muted);border-radius:9px;padding:11px;font-weight:850;cursor:pointer}.step-tabs button.active{background:#edf3fb;border-color:rgba(8,47,99,.25);color:var(--blue)}.step-panel{display:none}.step-panel.active{display:block}.audience-estimate{display:flex;align-items:center;justify-content:space-between;margin-top:16px;padding:14px;background:#edf3fb;border-radius:9px}.audience-estimate strong{font-size:24px;color:var(--blue);display:block}.audience-estimate span{font-size:10px;color:var(--muted);text-transform:uppercase;font-weight:850}.quota-inline{margin:14px 0;padding:11px;background:#f7fafd;border:1px solid var(--line);border-radius:8px;color:var(--muted);font-size:12px}.quota-inline strong{color:var(--blue)}.email-preview{border:1px solid var(--line);border-radius:10px;overflow:hidden;background:#fff}.preview-subject{padding:11px 13px;background:#f3f7fb;border-bottom:1px solid var(--line)}.preview-subject span{display:block;font-size:9px;color:var(--muted);text-transform:uppercase}.preview-body{padding:22px;min-height:340px;line-height:1.65;overflow-wrap:anywhere}.launch-panel{padding:17px;background:var(--soft);border:1px solid var(--line);border-radius:10px}.launch-panel .btn{margin-top:7px}.launch-panel hr,.card hr{border:0;border-top:1px solid var(--line);margin:16px 0}.mini-result{font-size:11px;color:var(--muted);margin-top:8px}.quota{display:flex;align-items:center;gap:20px}.quota.big{justify-content:center;padding:16px}.quota-ring{--pct:0;display:grid;place-items:center;width:108px;height:108px;border-radius:50%;background:conic-gradient(var(--blue) calc(var(--pct)*1%),#e8eef6 0);position:relative;flex:none}.quota-ring:before{content:"";position:absolute;inset:10px;background:#fff;border-radius:50%}.quota-ring span{position:relative;z-index:1;font-weight:900;color:var(--blue)}.plan-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px}.plan{border:1px solid var(--line);border-radius:10px;padding:14px}.plan.current{border-color:var(--blue);box-shadow:inset 0 0 0 1px var(--blue)}.plan>span{font-weight:900;color:var(--blue)}.plan>strong{display:block;font-size:22px;margin:6px 0}.plan>strong small{font-size:10px;color:var(--muted)}.plan p{font-size:11px}.bar-chart{display:flex;align-items:end;gap:5px;height:185px;overflow-x:auto;padding-top:10px}.bar-col{min-width:23px;display:flex;flex-direction:column;align-items:center;justify-content:end;height:175px}.bar{width:14px;background:var(--blue);border-radius:5px 5px 2px 2px}.bar-col small{font-size:8px;color:var(--muted);transform:rotate(-55deg);margin-top:7px}.rmm-public{background:radial-gradient(circle at top right,#153e71 0,#061a36 45%,#031128 100%);min-height:100vh}.public-shell{min-height:100vh;display:grid;place-items:center;padding:35px;position:relative}.public-brand{position:absolute;top:24px;left:28px;display:flex;align-items:center;gap:9px;color:#fff}.public-brand:hover{color:#fff}.auth-card{width:min(100%,430px);background:#fff;border-radius:18px;padding:30px;box-shadow:0 24px 80px rgba(0,0,0,.28)}.auth-card.wide{width:min(100%,720px)}.auth-card.install-card{width:min(100%,850px)}.auth-card h1{margin:5px 0 8px;color:var(--blue2)}.auth-card p{color:var(--muted);font-size:13px}.auth-card form:not(.grid){display:grid;gap:13px}.auth-links{display:flex;justify-content:space-between;margin-top:16px;font-size:11px;font-weight:800}.rich-editor{border:1px solid rgba(8,47,99,.18);border-radius:9px;overflow:hidden;background:#fff;margin-top:6px}.rich-toolbar{display:flex;gap:4px;flex-wrap:wrap;padding:7px;background:#f3f7fb;border-bottom:1px solid var(--line)}.rich-toolbar button{border:1px solid var(--line);background:#fff;border-radius:5px;min-width:29px;height:29px;cursor:pointer;font-weight:800;color:var(--blue)}.rich-editable{min-height:300px;padding:14px;outline:none;line-height:1.6}.rich-editable:focus{box-shadow:inset 0 0 0 2px rgba(8,47,99,.09)}code{background:#eef3f8;color:var(--blue);padding:2px 5px;border-radius:4px;font-size:10px}
@media(max-width:1100px){.app-shell{grid-template-columns:205px minmax(0,1fr)}.content{padding:24px}.filter-grid{grid-template-columns:repeat(2,1fr)}.stats-grid,.stats-grid.five{grid-template-columns:repeat(2,1fr)}.plan-grid{grid-template-columns:repeat(3,1fr)}.grid.dashboard-grid,.grid.preview-grid{grid-template-columns:1fr}.grid.three{grid-template-columns:repeat(2,1fr)}}
@media(max-width:760px){.app-shell{display:block}.sidebar{height:auto;position:relative;padding:12px}.sidebar .brand{padding-bottom:10px}.sidebar nav{display:flex;overflow-x:auto}.sidebar nav a{white-space:nowrap}.topbar{padding:0 14px}.top-actions .role-pill,.top-actions>span:not(.role-pill){display:none}.content{padding:14px}.page-head{align-items:stretch;flex-direction:column}.page-head .actions{flex-wrap:wrap}.grid.two,.grid.three,.stats-grid,.stats-grid.five,.plan-grid{grid-template-columns:1fr}.span2{grid-column:auto}.step-tabs{grid-template-columns:repeat(2,1fr)}.filter-grid{grid-template-columns:1fr}.bulkbar{align-items:stretch;flex-direction:column}.bulkbar>div{flex-wrap:wrap}.inline-form{align-items:stretch;flex-direction:column}.check-grid{grid-template-columns:1fr}.public-shell{padding:70px 12px 20px}.auth-card{padding:22px}}


/* Installer layout: unlike login screens, this page can be taller than the viewport. */
.rmm-public.install-page {
    min-height: 100vh;
    overflow-x: hidden;
    overflow-y: auto;
}

.install-page .public-shell {
    min-height: 100vh;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: flex-start;
    padding: 110px 35px 55px;
}

.install-page .public-brand {
    position: absolute;
    top: 24px;
    left: 28px;
}

.install-page .auth-card.install-card {
    width: min(100%, 850px);
    max-height: none;
    overflow: visible;
    flex: 0 0 auto;
}

@media (max-width: 760px) {
    .install-page .public-shell {
        padding: 82px 12px 28px;
    }

    .install-page .public-brand {
        top: 18px;
        left: 18px;
    }
}


/* RogueMail editor-form rhythm */
.rmm-editor-form .card{padding:26px 28px}
.rmm-editor-form .card>h2{margin-bottom:18px}
.rmm-editor-form .grid{row-gap:20px;column-gap:18px}
.rmm-editor-form .card>label+label{margin-top:20px}
.rmm-editor-form .token-help{margin:22px 0 18px}
.rmm-editor-form .token-help>strong{margin-bottom:8px}
.rmm-editor-form .token-help>div{gap:7px}
.rmm-editor-form .token-help+label{margin-top:4px}
.rmm-editor-form .rich-editor{margin-top:9px}
.rmm-editor-form .form-actions{margin-top:24px;padding-top:2px}
.rmm-template-form .card>label:first-of-type{margin-top:0}
.rmm-template-form .card>label+label{margin-top:20px}
.rmm-campaign-form .step-panel>p{margin-top:2px;margin-bottom:18px}
.rmm-campaign-form .audience-estimate,
.rmm-campaign-form .quota-inline{margin-top:22px}
@media(max-width:760px){
  .rmm-editor-form .card{padding:20px 18px}
  .rmm-editor-form .grid{row-gap:17px}
  .rmm-editor-form .token-help{margin:18px 0 16px}
  .rmm-editor-form .form-actions{margin-top:20px}
}

/* =========================================================
   TEMPLATE BLOCK BUILDER
   ========================================================= */
.template-meta-card{margin-bottom:12px}.template-mode-tabs{display:flex;gap:8px;margin:0 0 14px}.template-mode-tabs button{appearance:none;border:1px solid var(--line);background:#fff;color:var(--muted);border-radius:9px;padding:10px 14px;font-size:12px;font-weight:850;cursor:pointer}.template-mode-tabs button.active{background:#edf3fb;border-color:rgba(8,47,99,.28);color:var(--blue)}.template-builder-panel[hidden],#rmmRichPanel[hidden]{display:none!important}.builder-layout{display:grid;grid-template-columns:220px minmax(0,1fr) 300px;gap:14px;align-items:start}.builder-layout>.card{margin-bottom:0}.builder-palette,.builder-inspector{position:sticky;top:82px;max-height:calc(100vh - 105px);overflow:auto}.builder-pane-title{margin-bottom:12px}.builder-pane-title strong,.builder-pane-title small{display:block}.builder-pane-title strong{font-size:13px;color:var(--blue2)}.builder-pane-title small{font-size:10px;color:var(--muted);margin-top:2px}.builder-block-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}.builder-block-grid button{appearance:none;border:1px solid var(--line);background:#fff;color:var(--blue);border-radius:8px;padding:10px 7px;font-size:10px;font-weight:800;cursor:pointer;display:grid;gap:5px;place-items:center}.builder-block-grid button:hover{border-color:rgba(8,47,99,.35);background:#f4f8fc}.builder-block-grid button span{font-size:17px;line-height:1}.builder-email-settings{display:grid;gap:10px}.builder-email-settings label{font-size:10px}.builder-email-settings input{min-height:35px;padding:7px 8px}.builder-email-settings input[type=color]{padding:3px;height:35px}.builder-workspace{padding:0;overflow:hidden}.builder-workspace-head{display:flex;justify-content:space-between;gap:14px;align-items:center;padding:15px 17px;border-bottom:1px solid var(--line);background:#fff}.builder-workspace-head strong,.builder-workspace-head small{display:block}.builder-workspace-head strong{font-size:13px}.builder-workspace-head small{font-size:10px;color:var(--muted);margin-top:2px}.builder-device-toggle{display:flex;gap:4px;background:#f3f7fb;padding:3px;border-radius:7px}.builder-device-toggle button{border:0;background:transparent;color:var(--muted);font-size:10px;font-weight:850;padding:6px 9px;border-radius:5px;cursor:pointer}.builder-device-toggle button.active{background:#fff;color:var(--blue);box-shadow:0 1px 3px rgba(8,47,99,.1)}.builder-stage{background:#e8eef5;padding:26px;min-height:650px;overflow:auto;transition:.2s ease}.builder-email-paper{width:min(100%,680px);margin:0 auto;background:#fff;min-height:580px;box-shadow:0 10px 30px rgba(8,47,99,.10);border-radius:3px;padding:18px}.builder-stage.mobile .builder-email-paper{max-width:390px}.builder-canvas{display:grid;gap:8px}.builder-block{border:1px solid transparent;border-radius:7px;background:#fff;position:relative;transition:.12s ease}.builder-block:hover{border-color:rgba(8,47,99,.18)}.builder-block.selected{border-color:var(--blue);box-shadow:0 0 0 2px rgba(8,47,99,.08)}.builder-block.dragging{opacity:.45}.builder-block-tools{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:5px 7px;background:#f4f8fc;border-bottom:1px solid rgba(8,47,99,.08);opacity:0;transition:.12s ease}.builder-block:hover .builder-block-tools,.builder-block.selected .builder-block-tools{opacity:1}.builder-block-tools>span{font-size:9px;text-transform:uppercase;letter-spacing:.05em;color:var(--muted);font-weight:850}.builder-block-tools>div{display:flex;gap:2px}.builder-block-tools button{appearance:none;border:0;background:transparent;color:var(--blue);font-size:12px;width:25px;height:23px;border-radius:4px;cursor:pointer}.builder-block-tools button:hover{background:#fff}.builder-block-preview{padding:12px}.builder-placeholder{padding:20px;text-align:center;border:1px dashed var(--line);background:#f7fafd;color:var(--muted);font-size:11px;border-radius:6px}.builder-placeholder small{font-size:9px}.builder-empty{padding:80px 20px;text-align:center;color:var(--muted)}.builder-empty strong{display:block;color:var(--blue);font-size:14px}.builder-empty p{font-size:11px}.builder-workspace-actions{display:flex;justify-content:flex-end;padding:10px 14px;border-top:1px solid var(--line);background:#fff}.builder-inspector{padding:18px}.builder-inspector-head{display:flex;justify-content:space-between;align-items:center;gap:8px;margin-bottom:14px;padding-bottom:10px;border-bottom:1px solid var(--line)}.builder-inspector-head span{font-size:13px;font-weight:900;color:var(--blue2)}.builder-inspector-head small{font-size:9px;color:var(--muted)}.builder-inspector-empty{padding:12px 0 22px}.builder-inspector-empty strong{font-size:13px}.builder-inspector-empty p{font-size:11px;margin-bottom:0}.builder-settings{display:grid;gap:11px}.builder-settings label{font-size:10px}.builder-settings input,.builder-settings select,.builder-settings textarea{margin-top:4px;min-height:35px;padding:7px 8px;font-size:11px}.builder-settings textarea{min-height:88px}.builder-settings input[type=color]{padding:3px}.builder-preview-box{margin-top:18px;padding-top:14px;border-top:1px solid var(--line)}.builder-preview-box iframe{width:100%;height:300px;border:1px solid var(--line);border-radius:8px;background:#fff}.template-save-bar{justify-content:flex-end;position:sticky;bottom:0;background:rgba(244,248,251,.94);backdrop-filter:blur(8px);padding:12px 0 4px;z-index:10}.rmm-template-form>.token-help{margin-top:18px}
@media(max-width:1280px){.builder-layout{grid-template-columns:190px minmax(0,1fr) 260px}.builder-stage{padding:18px}.builder-palette,.builder-inspector{position:static;max-height:none}}
@media(max-width:980px){.builder-layout{grid-template-columns:1fr}.builder-palette,.builder-inspector{position:static}.builder-block-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.builder-email-settings{grid-template-columns:repeat(3,minmax(0,1fr))}.builder-preview-box iframe{height:420px}}
@media(max-width:640px){.builder-block-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.builder-email-settings{grid-template-columns:1fr}.builder-stage{padding:10px}.builder-email-paper{padding:8px}.builder-workspace-head{align-items:flex-start;flex-direction:column}.template-mode-tabs{flex-wrap:wrap}.template-mode-tabs button{flex:1}}

/* =========================================================
   ROGUEMASSMAILER 0.1.8 - LOCAL WYSIWYG + IMAGE WORKFLOW
   ========================================================= */
.rmm-wysiwyg{margin-top:7px;border-radius:9px;background:#fff}.rmm-wysiwyg .ql-toolbar.ql-snow{border:1px solid rgba(8,47,99,.18);border-radius:9px 9px 0 0;background:#f7fafd;padding:7px}.rmm-wysiwyg .ql-container.ql-snow{border:1px solid rgba(8,47,99,.18);border-top:0;border-radius:0 0 9px 9px;font-family:inherit;font-size:14px}.rmm-wysiwyg .ql-editor{min-height:180px;line-height:1.6;color:var(--text);padding:14px}.rmm-wysiwyg .ql-editor:focus{box-shadow:inset 0 0 0 2px rgba(8,47,99,.06)}.rmm-wysiwyg .ql-toolbar button,.rmm-wysiwyg .ql-toolbar .ql-picker{width:auto}.rmm-editor-form .rmm-wysiwyg{margin-top:9px}.builder-settings .rmm-wysiwyg{margin-top:4px}.builder-settings .rmm-wysiwyg .ql-toolbar.ql-snow{padding:4px}.builder-settings .rmm-wysiwyg .ql-toolbar .ql-formats{margin-right:5px}.builder-settings .rmm-wysiwyg .ql-editor{min-height:105px;padding:9px;font-size:11px}.builder-settings .rmm-wysiwyg .ql-picker-label{font-size:10px}.builder-settings .rmm-wysiwyg .ql-toolbar button{height:24px;padding:3px}.builder-settings textarea[data-wysiwyg="off"]{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;min-height:160px}

.builder-image-control{display:grid;gap:8px;padding:10px;border:1px solid var(--line);border-radius:9px;background:#fbfdff}.builder-image-label{font-size:10px;font-weight:900;color:var(--blue2)}.builder-image-preview{min-height:90px;display:grid;place-items:center;border:1px solid rgba(8,47,99,.12);border-radius:7px;background:#f3f7fb;overflow:hidden;color:var(--muted);font-size:10px}.builder-image-preview.has-image{background:#fff}.builder-image-preview img{display:block;width:100%;max-height:180px;object-fit:contain}.builder-image-drop{display:grid;place-items:center;text-align:center;min-height:74px;padding:10px;border:1.5px dashed rgba(8,47,99,.28);border-radius:8px;background:#f7fafd;color:var(--blue);cursor:pointer;transition:.15s ease}.builder-image-drop:hover,.builder-image-drop:focus,.builder-image-drop.dragging{outline:none;border-color:var(--blue);background:#edf3fb;box-shadow:0 0 0 3px rgba(8,47,99,.06)}.builder-image-drop strong,.builder-image-drop small{display:block}.builder-image-drop strong{font-size:10px}.builder-image-drop small{font-size:9px;color:var(--muted);margin-top:3px}.builder-image-actions{display:flex;gap:6px;flex-wrap:wrap}.builder-image-note{display:block;color:var(--muted);font-size:9px;line-height:1.4}.builder-image-control label{font-size:9px}.builder-image-control input{font-size:10px}

.rmm-modal-open{overflow:hidden}.rmm-image-modal[hidden]{display:none!important}.rmm-image-modal{position:fixed;inset:0;z-index:1000;display:grid;place-items:center;padding:22px}.rmm-image-modal-backdrop{position:absolute;inset:0;background:rgba(3,17,40,.78);backdrop-filter:blur(5px)}.rmm-image-modal-card{position:relative;z-index:1;width:min(960px,100%);max-height:calc(100vh - 44px);overflow:auto;background:#fff;border-radius:16px;box-shadow:0 30px 90px rgba(0,0,0,.35);padding:20px}.rmm-image-modal-head{display:flex;justify-content:space-between;align-items:flex-start;gap:20px;margin-bottom:14px}.rmm-image-modal-head h2{margin:3px 0 5px;color:var(--blue2);font-size:21px}.rmm-image-modal-head p{margin:0;color:var(--muted);font-size:11px}.rmm-crop-stage{height:min(58vh,560px);background:#09172a;border-radius:10px;overflow:hidden}.rmm-crop-stage img{display:block;max-width:100%}.rmm-crop-toolbar{display:flex;justify-content:space-between;align-items:center;gap:15px;padding-top:14px}.rmm-crop-ratios{display:flex;gap:5px;flex-wrap:wrap}.rmm-crop-ratios button{appearance:none;border:1px solid var(--line);background:#fff;color:var(--blue);border-radius:7px;padding:7px 10px;font-size:10px;font-weight:850;cursor:pointer}.rmm-crop-ratios button.active{background:var(--blue);border-color:var(--blue);color:#fff}.rmm-crop-status{min-height:18px;margin-top:8px;color:var(--muted);font-size:10px}.cropper-view-box,.cropper-face{border-radius:2px}

@media(max-width:700px){.rmm-crop-toolbar{align-items:stretch;flex-direction:column}.rmm-crop-toolbar .form-actions{margin-top:0;justify-content:flex-end}.rmm-image-modal{padding:8px}.rmm-image-modal-card{max-height:calc(100vh - 16px);padding:14px}.rmm-crop-stage{height:50vh}}

/* =========================================================
   ROGUEMASSMAILER 0.2.0 - BILLING & PAYMENTS
   ========================================================= */
.billing-summary .billing-facts{margin-top:4px}.billing-facts{display:grid;gap:0;border:1px solid var(--line);border-radius:10px;overflow:hidden;margin:14px 0}.billing-facts>div{display:flex;justify-content:space-between;gap:18px;align-items:center;padding:10px 12px;border-bottom:1px solid var(--line);background:#fff}.billing-facts>div:last-child{border-bottom:0}.billing-facts span{font-size:10px;color:var(--muted);font-weight:750}.billing-facts strong{font-size:11px;text-align:right;color:var(--blue2)}.billing-plans .plan form{margin-top:auto}.billing-plans .plan select{font-size:11px}.payment-methods{display:grid;gap:9px}.payment-method{display:flex;align-items:center;gap:12px;padding:12px;border:1px solid var(--line);border-radius:10px;background:#fbfdff}.payment-method strong,.payment-method small{display:block}.payment-method strong{font-size:12px;color:var(--blue2)}.payment-method small{font-size:10px;color:var(--muted);margin-top:2px}.payment-icon{display:grid;place-items:center;width:34px;height:34px;border-radius:9px;background:#edf3fb;color:var(--blue);font-weight:900}.pricing-public{width:min(1180px,calc(100vw - 32px))!important}.pricing-public>h1,.pricing-public>p{text-align:center}.pricing-public>.eyebrow{display:block;text-align:center}.pricing-public .plan-grid{margin:26px 0}.bank-card .flash{margin-top:14px}.invoice-sheet{max-width:900px;margin:0 auto}.invoice-top{display:flex;justify-content:space-between;gap:20px;align-items:flex-start;padding-bottom:20px;border-bottom:1px solid var(--line)}.invoice-top strong,.invoice-top small{display:block}.invoice-top strong{font-size:19px;color:var(--blue2)}.invoice-top small{font-size:10px;color:var(--muted);margin-top:3px}.plan-admin-row{display:grid;gap:14px}.grid.four{grid-template-columns:repeat(4,minmax(0,1fr))}.plan-admin-actions{display:flex;align-items:center;gap:18px;flex-wrap:wrap}.plan-admin-actions small{margin-left:auto;color:var(--muted);max-width:320px;overflow-wrap:anywhere}.status.awaiting_review{background:#fff7df;color:#8a5a00}.status.paid{background:#e8f7ef;color:#027a48}.status.rejected,.status.failed{background:#fff0f0;color:#b42318}.status.refunded,.status.void{background:#f1f3f6;color:#475467}.status.past_due{background:#fff0f0;color:#b42318}.status.cancelled{background:#f1f3f6;color:#475467}
@media(max-width:900px){.grid.four{grid-template-columns:repeat(2,minmax(0,1fr))}.pricing-public{width:min(720px,calc(100vw - 20px))!important}}
@media(max-width:600px){.grid.four{grid-template-columns:1fr}.billing-facts>div{align-items:flex-start;flex-direction:column;gap:3px}.billing-facts strong{text-align:left}.plan-admin-actions small{margin-left:0;width:100%}}


/* 0.2.4 annual pricing + currency presentation */
.pricing-toolbar{display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap;margin:20px 0 4px}.annual-only-pill{display:inline-flex;align-items:center;padding:7px 10px;border-radius:999px;background:#edf3fb;color:var(--blue);font-size:10px;font-weight:900;text-transform:uppercase;letter-spacing:.06em}.currency-switch{display:inline-flex;border:1px solid var(--line);border-radius:9px;background:#fff;padding:3px;gap:3px}.currency-switch a{min-width:48px;padding:7px 9px;border-radius:6px;text-align:center;font-size:10px;font-weight:900;color:var(--muted)}.currency-switch a.active{background:var(--blue);color:#fff}.annual-plan{display:flex;flex-direction:column;min-height:100%}.annual-plan .annual-price{font-size:23px;color:var(--blue2)}.annual-plan .annual-price small{display:block;margin-top:2px}.price-breakdown{display:grid;gap:2px;padding:10px 0 11px;margin-bottom:4px;border-bottom:1px solid var(--line)}.price-breakdown b{font-size:12px;color:var(--blue)}.price-breakdown small{font-size:9px;color:var(--muted)}.price-breakdown span{font-size:9px;color:var(--muted);margin-top:4px}.price-breakdown em{font-style:normal;color:var(--red);font-weight:900}.pricing-disclaimer{margin-top:18px;padding:12px 14px;border:1px solid var(--line);border-radius:10px;background:#f7fafd;color:var(--muted);font-size:11px;line-height:1.5}.pricing-disclaimer strong{color:var(--blue2)}.app-pricing-toolbar{margin-top:6px}.billing-plans .annual-plan form{margin-top:auto}

/* =========================================================
   ROGUEMAIL 0.2.7 - AUTHORITATIVE FORM RHYTHM
   Keep form spacing here so public/app/admin surface changes
   cannot silently collapse field spacing again.
   ========================================================= */
:root{
  --rmm-form-row-gap:20px;
  --rmm-form-column-gap:18px;
  --rmm-form-control-height:46px;
  --rmm-form-control-pad-y:11px;
  --rmm-form-control-pad-x:12px;
}

/* Real data-entry forms get breathing room. Compact/filter/table controls opt out. */
:where(.rmm-public,.rmm-app,.rmm-admin) form:not(.inline-form):not(.filter-grid):not(.compact) :where(input:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]),select,textarea){
  min-height:var(--rmm-form-control-height);
  padding:var(--rmm-form-control-pad-y) var(--rmm-form-control-pad-x);
}
:where(.rmm-public,.rmm-app,.rmm-admin) form:not(.inline-form):not(.filter-grid):not(.compact) textarea{min-height:120px}

/* Grid and stack forms. */
:where(.rmm-public,.rmm-app,.rmm-admin) form.grid:not(.filter-grid){row-gap:var(--rmm-form-row-gap);column-gap:var(--rmm-form-column-gap)}
:where(.rmm-public,.rmm-app,.rmm-admin) form.stack{gap:var(--rmm-form-row-gap)}

/* Plain vertical forms with direct fields. */
:where(.rmm-public,.rmm-app,.rmm-admin) form:not(.grid):not(.inline-form):not(.filter-grid):not(.compact)>label+label{margin-top:var(--rmm-form-row-gap)}
:where(.rmm-public,.rmm-app,.rmm-admin) form:not(.grid):not(.inline-form):not(.filter-grid):not(.compact)>label+.btn,
:where(.rmm-public,.rmm-app,.rmm-admin) form:not(.grid):not(.inline-form):not(.filter-grid):not(.compact)>label+button{margin-top:18px}

/* Fields nested inside cards/sections were the recurring regression. */
:where(.rmm-app .content,.rmm-admin .admin-content,.rmm-public .auth-card,.install-card)
form:not(.inline-form):not(.filter-grid):not(.compact) :where(.card,section.card) > label + label{margin-top:var(--rmm-form-row-gap)}
:where(.rmm-app .content,.rmm-admin .admin-content,.rmm-public .auth-card,.install-card)
form:not(.inline-form):not(.filter-grid):not(.compact) :where(.card,section.card) > label + .grid,
:where(.rmm-app .content,.rmm-admin .admin-content,.rmm-public .auth-card,.install-card)
form:not(.inline-form):not(.filter-grid):not(.compact) :where(.card,section.card) > .grid + label,
:where(.rmm-app .content,.rmm-admin .admin-content,.rmm-public .auth-card,.install-card)
form:not(.inline-form):not(.filter-grid):not(.compact) :where(.card,section.card) > .grid + .grid{margin-top:var(--rmm-form-row-gap)}

/* Headings inside forms should separate sections rather than cling to the previous field. */
:where(.rmm-public,.rmm-app,.rmm-admin) form:not(.inline-form):not(.filter-grid):not(.compact) h3:not(:first-child){margin-top:24px}

/* Check/radio rows keep their deliberate compact control sizing. */
:where(.rmm-public,.rmm-app,.rmm-admin) form label.check input[type="checkbox"],
:where(.rmm-public,.rmm-app,.rmm-admin) form label.check input[type="radio"]{
  min-height:18px!important;
  width:18px!important;
  height:18px!important;
  padding:0!important;
}

/* Deliberately dense UI stays dense. */
:where(.filter-grid,.inline-form,.bulkbar,.table-wrap,.workspace-switcher,.builder-settings) input,
:where(.filter-grid,.inline-form,.bulkbar,.table-wrap,.workspace-switcher,.builder-settings) select,
:where(.filter-grid,.inline-form,.bulkbar,.table-wrap,.workspace-switcher,.builder-settings) textarea{
  min-height:35px;
}


/* =========================================================
   ROGUEMAIL 0.2.8 - CAMPAIGN PREVIEW + AUDIENCE POLISH
   ========================================================= */
.audience-optin{align-self:end}.audience-optin .compact-check{min-height:46px;padding:8px 11px;align-items:center}.audience-optin .compact-check input{margin:0}.audience-optin .compact-check span{line-height:1.25}.audience-optin .compact-check small{font-size:9px;margin-top:2px}
.email-preview{overflow:visible;background:transparent;border:0}.preview-toolbar{display:flex;align-items:stretch;justify-content:space-between;gap:10px;margin-bottom:10px}.preview-toolbar .preview-subject{flex:1;border:1px solid var(--line);border-radius:9px;background:#f3f7fb}.preview-devices{display:flex;align-items:center;border:1px solid var(--line);border-radius:9px;padding:3px;background:#fff;align-self:stretch}.preview-devices button{border:0;background:transparent;color:var(--muted);font-size:10px;font-weight:850;padding:7px 9px;border-radius:6px;cursor:pointer}.preview-devices button.active{background:var(--blue);color:#fff}.preview-stage{position:relative;min-height:620px;max-height:760px;padding:20px;background:#e9eef5;border:1px solid var(--line);border-radius:12px;overflow-y:auto;overflow-x:hidden}.preview-frame-shell{margin:0 auto;max-width:100%;min-width:0;overflow:hidden;background:#fff;box-shadow:0 10px 28px rgba(4,27,58,.12);transition:width .18s ease}.preview-frame-shell.device-desktop{width:min(760px,100%)}.preview-frame-shell.device-mobile{width:min(390px,100%)}.preview-frame-shell iframe{display:block;width:100%;height:180px;border:0;background:#fff;overflow:hidden}.preview-empty{position:absolute;inset:0;display:grid;place-items:center;padding:30px;text-align:center;color:var(--muted);font-size:12px}.preview-empty[hidden]{display:none!important}
@media(max-width:700px){.preview-toolbar{flex-direction:column}.preview-devices{align-self:flex-start}.preview-stage{padding:8px;min-height:520px}.preview-frame-shell iframe{min-height:180px}}


/* =========================================================
   ROGUEMAIL 1.34 - RECIPIENT RESULTS LIMIT
   ========================================================= */
.rmm-campaign-form .step-panel>.grid{column-gap:24px;row-gap:22px;align-items:start}
.rmm-campaign-form .tracking-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;margin-top:2px}
.rmm-campaign-form .tracking-grid .check{min-height:62px;align-items:flex-start}
.rmm-campaign-form .preview-recipient-field{display:block;margin-bottom:14px}
.rmm-campaign-form .preview-recipient-field select{margin-bottom:0}
.rmm-campaign-form .launch-panel{display:flex;flex-direction:column;gap:8px}
.rmm-campaign-form .launch-panel h3,.rmm-campaign-form .launch-panel p{margin-bottom:0}
.rmm-campaign-form .launch-panel .btn{margin-top:0}
.rmm-campaign-form .launch-panel hr{width:100%;margin:10px 0}
.rmm-campaign-form .launch-panel .mini-result{min-height:16px;margin-top:0;padding-top:2px}
@media(max-width:760px){.rmm-campaign-form .tracking-grid{grid-template-columns:1fr}}

/* RogueMail editor toolbar spacing: keep heading selector readable and separate control groups. */
.rmm-wysiwyg .ql-toolbar.ql-snow{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  column-gap:4px;
  row-gap:5px;
}
.rmm-wysiwyg .ql-toolbar .ql-formats{
  display:inline-flex;
  align-items:center;
  gap:2px;
  margin-right:9px;
}
.rmm-wysiwyg .ql-toolbar .ql-formats:first-child{
  margin-right:13px;
}
.rmm-wysiwyg .ql-toolbar .ql-picker.ql-header{
  width:92px;
  min-width:92px;
}
.rmm-wysiwyg .ql-toolbar .ql-picker.ql-header .ql-picker-label{
  padding-left:8px;
  padding-right:24px;
}
.rmm-wysiwyg .ql-toolbar button{
  margin:0 1px;
}


/* 1.34 rich-text heading + colour controls.
   Quill pickers must be allowed to escape the editor shell or their H1/H2/H3
   and colour menus are visually clipped even though the control receives clicks. */
.rmm-wysiwyg{position:relative;overflow:visible}
.rmm-wysiwyg .ql-toolbar.ql-snow{position:relative;z-index:12;overflow:visible}
.rmm-wysiwyg .ql-toolbar .ql-picker{position:relative}
.rmm-wysiwyg .ql-toolbar .ql-picker.ql-expanded{z-index:40}
.rmm-wysiwyg .ql-toolbar .ql-picker.ql-expanded .ql-picker-options{z-index:50}
.rmm-wysiwyg .ql-toolbar .ql-picker.ql-color{width:32px;min-width:32px}
.rmm-wysiwyg .ql-toolbar .ql-picker.ql-color .ql-picker-label{padding:2px 4px}
.rmm-wysiwyg .ql-container.ql-snow{position:relative;z-index:1;overflow:hidden}


/* Native heading + colour controls: reliable inside labels/inspectors and
   preserve the Quill selection while formatting. */
.rmm-wysiwyg .rmm-native-format-group{display:inline-flex;align-items:center;gap:5px;margin-right:12px!important}
.rmm-wysiwyg .rmm-native-heading{width:92px;min-width:92px;height:28px;min-height:28px;margin:0;padding:2px 24px 2px 7px;border:0;border-radius:4px;background:#fff;color:var(--text);font-size:11px;line-height:1.2;box-shadow:none;cursor:pointer}
.rmm-wysiwyg .rmm-native-heading:focus{outline:2px solid rgba(8,47,99,.14);outline-offset:0;box-shadow:none}
.rmm-wysiwyg .rmm-native-color{appearance:auto;width:30px;min-width:30px;height:28px;min-height:28px;margin:0;padding:2px;border:0;border-radius:4px;background:transparent;box-shadow:none;cursor:pointer}
.rmm-wysiwyg .rmm-native-color:focus{outline:2px solid rgba(8,47,99,.14);outline-offset:0;box-shadow:none}
.rmm-wysiwyg .ql-editor h1{font-size:2em;line-height:1.2;margin:.4em 0}
.rmm-wysiwyg .ql-editor h2{font-size:1.5em;line-height:1.25;margin:.45em 0}
.rmm-wysiwyg .ql-editor h3{font-size:1.17em;line-height:1.3;margin:.5em 0}
