/* Plataforma Linkeia - panel (palette of linkeia.com) */
:root {
    --ink:#0c1c2b; --navy:#17364d; --navy-2:#1b4a6e; --cyan:#4bccfe; --coral:#ff554a;
    --page:#f3f5f7; --card:#fff; --text:#13212e; --muted:#5a6b7b; --line:#e3e8ee; --link:#1b4a6e; --chip:#e9f7ff; --hover:#eef3f7;
    --ok:#1d6fa8; --ok-bg:#e9f7ff; --warn:#8a5a00; --warn-bg:#fff4dc; --bad:#b4361f; --bad-bg:#fff0ee;
    --good:#1a7f37; --good-bg:#e8f6ec; --good-line:#9fd8b0;
    --title:'Bai Jamjuree','Segoe UI',system-ui,sans-serif; --body:'Open Sans','Segoe UI',system-ui,sans-serif;
}
/* dark: follows the system unless the user picked a theme (data-theme on <html>) */
@media (prefers-color-scheme: dark) {
    :root:not([data-theme="light"]) { --page:#0c1c2b; --card:#12283a; --text:#e6edf3; --muted:#9fb1c1; --line:#21405a; --link:#4bccfe; --chip:#17364d; --hover:#17364d;
        --ok:#4bccfe; --ok-bg:#17364d; --warn:#f2c46b; --warn-bg:#3a2e12; --bad:#ff8a7f; --bad-bg:#3b1b18; --good:#6fdc95; --good-bg:#12321f; --good-line:#2c6b42; color-scheme:dark; }
}
:root[data-theme="dark"] { --page:#0c1c2b; --card:#12283a; --text:#e6edf3; --muted:#9fb1c1; --line:#21405a; --link:#4bccfe; --chip:#17364d; --hover:#17364d;
    --ok:#4bccfe; --ok-bg:#17364d; --warn:#f2c46b; --warn-bg:#3a2e12; --bad:#ff8a7f; --bad-bg:#3b1b18; --good:#6fdc95; --good-bg:#12321f; --good-line:#2c6b42; color-scheme:dark; }
:root[data-theme="light"] { color-scheme:light; }
* { box-sizing:border-box; }
html, body { margin:0; }
body { background:var(--page); color:var(--text); font:15px/1.55 var(--body); }
a { color:var(--link); }
svg { width:18px; height:18px; flex:none; }

.top { background:radial-gradient(130% 160% at 50% 0%, var(--navy-2) 0%, var(--navy) 50%, var(--ink) 100%); color:#c7d6e3; position:sticky; top:0; z-index:10; }
.top-in { display:flex; align-items:center; gap:16px; padding:10px 20px; }
.brand img { display:block; width:104px; height:auto; }
.switch { display:inline-flex; background:rgba(255,255,255,.08); border-radius:999px; padding:4px; margin-left:12px; }
.switch a { display:inline-flex; align-items:center; gap:6px; padding:7px 14px; border-radius:999px; color:#c7d6e3; text-decoration:none; font-weight:600; font-size:14px; }
.switch a.on { background:#fff; color:var(--navy); }
.user { margin-left:auto; display:flex; align-items:center; gap:12px; }
.tools { display:flex; align-items:center; gap:8px; }
.tool { display:inline-flex; align-items:center; gap:6px; background:transparent; border:1px solid rgba(255,255,255,.25); color:#fff; border-radius:4px; padding:6px 10px; font:600 13px var(--body); cursor:pointer; }
.flag { width:21px; height:14px; border-radius:3px; box-shadow:0 0 0 1px rgba(0,0,0,.18); flex:none; display:block; }
.lang { position:relative; }
.lang summary { list-style:none; }
.lang summary::-webkit-details-marker { display:none; }
.lang .chev { width:14px; height:14px; opacity:.8; transition:transform .15s ease; }
.lang[open] .chev { transform:rotate(180deg); }
.lang-menu { position:absolute; right:0; top:calc(100% + 6px); min-width:190px; margin:0; padding:6px; list-style:none; z-index:30;
    background:var(--card); border:1px solid var(--line); border-radius:4px; box-shadow:0 14px 32px -12px rgba(8,18,30,.45); }
.lang-menu a { display:flex; align-items:center; gap:10px; padding:8px 10px; border-radius:4px; color:var(--text); text-decoration:none; font-size:14px; font-weight:600; }
.lang-menu a:hover, .lang-menu a:focus-visible { background:var(--hover); outline:none; }
.lang-menu a.on { color:var(--link); }
.lang-menu .ok-mark { margin-left:auto; width:16px; height:16px; color:var(--link); }
.tool:focus-within, .tool:focus-visible { outline:2px solid var(--cyan); outline-offset:2px; }
.theme-btn .t-light, .theme-btn .t-dark { display:none; }
[data-theme-choice="light"] .theme-btn .t-light, [data-theme-choice="dark"] .theme-btn .t-dark { display:inline-flex; }
.user-name { font-size:14px; display:flex; flex-direction:column; align-items:flex-end; line-height:1.25; }
.who-domain { display:inline-flex; align-items:center; gap:4px; font-size:12px; color:var(--cyan); font-weight:600; }
.who-domain svg { width:13px; height:13px; }
.acc strong { color:var(--text); font-size:13px; }
.user button { display:inline-flex; align-items:center; gap:6px; background:transparent; border:1px solid rgba(255,255,255,.25); color:#fff; border-radius:4px; padding:6px 10px; font:600 13px var(--body); cursor:pointer; }

.shell { display:grid; grid-template-columns:240px 1fr; min-height:calc(100vh - 58px); }
.side { background:var(--card); border-right:1px solid var(--line); padding:16px 12px; display:flex; flex-direction:column; }
.side nav { display:flex; flex-direction:column; gap:2px; }
.side a { display:flex; align-items:center; gap:10px; padding:8px 12px; color:var(--text); text-decoration:none; font-weight:600; font-size:14px; }
.side a svg { color:var(--muted); }
.side a:hover { background:var(--hover); }
.side a.on { background:#e0f2ff; color:#000; }
:root[data-theme="dark"] .side a.on { background:var(--chip); color:#fff; }
@media (prefers-color-scheme: dark) { :root:not([data-theme="light"]) .side a.on { background:var(--chip); color:#fff; } }
.side a.on svg { color:var(--cyan); }
.side hr { border:0; border-top:1px solid var(--line); margin:10px 4px; }
.acc { margin-top:auto; color:var(--muted); font-size:12px; padding:12px; }

.content { padding:24px 28px 48px; min-width:0; }
.head { display:flex; align-items:center; justify-content:space-between; gap:12px; margin-bottom:18px; flex-wrap:wrap; }
h1 { font:700 24px/1.2 var(--title); margin:0; }
h2 { font:700 17px/1.3 var(--title); margin:0 0 12px; }
.flash { background:var(--good-bg); color:var(--good); border:1px solid var(--good-line); border-radius:6px; padding:10px 14px; font-weight:600; }
/* success messages carry a check (errors are .flash.bad) */
.flash:not(.bad):not([hidden]) { display:flex; gap:8px; align-items:flex-start; }
.flash:not(.bad)::before { content:""; flex:none; width:18px; height:18px; margin-top:1px; background:currentColor;
    -webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='10'/%3E%3Cpath d='m8 12 3 3 5-6'/%3E%3C/svg%3E") center/contain no-repeat;
    mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='10'/%3E%3Cpath d='m8 12 3 3 5-6'/%3E%3C/svg%3E") center/contain no-repeat; }

.card { background:var(--card); border:1px solid var(--line); border-radius:4px; padding:20px; margin-bottom:16px; }
.grid { display:grid; grid-template-columns:repeat(auto-fit, minmax(190px, 1fr)); gap:14px; margin-bottom:16px; }
.stat { background:var(--card); border:1px solid var(--line); border-radius:4px; padding:16px 18px; }
.stat .k { color:var(--muted); font-size:13px; display:flex; align-items:center; gap:6px; }
.stat .v { font:700 26px/1.2 var(--title); margin-top:6px; font-variant-numeric:tabular-nums; }
.stat .s { color:var(--muted); font-size:13px; }
.bar { height:8px; background:var(--hover); border-radius:999px; overflow:hidden; margin-top:10px; }
.bar i { display:block; height:100%; background:var(--cyan); }

table { width:100%; border-collapse:collapse; }
th, td { text-align:left; padding:10px 12px; border-bottom:1px solid var(--line); vertical-align:middle; }
th { color:var(--muted); font-size:12px; font-weight:600; text-transform:uppercase; letter-spacing:.03em; }
td.num, th.num { text-align:right; font-variant-numeric:tabular-nums; }
tr:last-child td { border-bottom:0; }
.table { position:relative; background:var(--card); border:1px solid var(--line); border-radius:4px; overflow:auto; margin-bottom:16px; }
.x-scroll { overflow-x:auto; }
.muted { color:var(--muted); }
.small { font-size:13px; }
code { font-family:ui-monospace,Consolas,monospace; font-size:.9em; background:var(--chip); padding:1px 6px; border-radius:4px; word-break:break-all; }

.pill { display:inline-flex; align-items:center; gap:4px; border-radius:999px; padding:2px 10px; font-size:12px; font-weight:600; white-space:nowrap; }
.pill.ok { background:#16a34a; color:#fff; }
.pill.warn { background:var(--warn-bg); color:var(--warn); }
.pill.bad { background:var(--bad-bg); color:var(--bad); }
.pill.off { background:var(--hover); color:var(--muted); }

.btn { display:inline-flex; align-items:center; gap:8px; background:var(--navy); color:#fff; text-decoration:none; font:600 14px var(--body); padding:9px 16px; border-radius:4px; border:0; cursor:pointer; }
.btn:hover { background:var(--navy-2); }
.btn.ghost { background:transparent; color:var(--link); border:1px solid var(--line); }
.btn[disabled], .btn.disabled { opacity:.55; cursor:not-allowed; }

.empty { text-align:center; padding:40px 20px; color:var(--muted); }
.empty svg { width:36px; height:36px; color:var(--cyan); margin-bottom:8px; }
.empty h2 { color:var(--text); }

.filters { display:flex; flex-wrap:wrap; gap:8px; margin-bottom:12px; align-items:center; }
.filters input, .filters select { font:inherit; padding:8px 12px; border-radius:4px; border:1px solid var(--line); background:var(--card); color:var(--text); }
.filters input { min-width:240px; }
.pager { display:flex; gap:8px; justify-content:flex-end; align-items:center; color:var(--muted); font-size:13px; }

.thumbs { display:grid; grid-template-columns:repeat(auto-fill, minmax(150px, 1fr)); gap:12px; }
.thumbs figure { margin:0; background:var(--card); border:1px solid var(--line); border-radius:4px; overflow:hidden; }
.thumbs img { display:block; width:100%; height:110px; object-fit:cover; background:var(--hover); }
.thumbs figcaption { padding:8px 10px; font-size:12px; color:var(--muted); overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }

a.doc-link { text-decoration:none; color:var(--text); }
a.doc-link:hover { border-color:var(--cyan); }
.member-head { display:flex; justify-content:space-between; align-items:flex-start; gap:12px; }
.member-form { display:grid; grid-template-columns:repeat(auto-fit, minmax(240px, 1fr)); gap:16px; margin-top:14px; }
.member-form fieldset { border:1px solid var(--line); border-radius:4px; padding:12px 14px; margin:0; min-width:0; }
.member-form legend { font-weight:700; font-size:13px; padding:0 6px; }
.opt, .chk { display:flex; gap:8px; align-items:flex-start; padding:4px 0; font-size:14px; cursor:pointer; }
.opt input, .chk input { margin-top:3px; accent-color:var(--navy-2); }
.member-actions { grid-column:1 / -1; display:flex; gap:8px; flex-wrap:wrap; }
.note {background:var(--warn-bg); color:var(--warn); border-radius:4px; padding:10px 14px; font-size:14px; margin-bottom:16px; display:flex; gap:8px; align-items:flex-start; }
pre { background:var(--ink); color:#d6e6f2; border-radius:4px; padding:16px; overflow:auto; font-size:13px; }

.side-toggle, .side-sep { display:none; }
.side-toggle .when-min { display:none; }
@media (min-width: 861px) {
    .side { position:relative; z-index:9; }
    .side-sep { display:block; }
    .side-toggle { display:flex; align-items:center; gap:10px; width:100%; padding:8px 12px; font:inherit; font-weight:600; font-size:14px; text-align:left; color:var(--text); background:transparent; border:0; cursor:pointer; }
    .side-toggle svg { color:var(--muted); }
    .side-toggle:hover { background:var(--hover); }
    :root[data-side="min"] .shell { grid-template-columns:64px 1fr; }
    :root[data-side="min"] .side { padding-left:10px; padding-right:10px; }
    :root[data-side="min"] .side-toggle .when-open { display:none; }
    :root[data-side="min"] .side-toggle .when-min { display:block; }
    :root[data-side="min"] .side a, :root[data-side="min"] .side-toggle { position:relative; justify-content:center; padding:10px 0; }
    :root[data-side="min"] .acc { display:none; }
    /* the label stays readable by screen readers: it only appears on hover or keyboard focus */
    :root[data-side="min"] .side .lbl { position:absolute; left:calc(100% + 8px); top:50%; transform:translateY(-50%); padding:6px 10px; font-size:13px; line-height:1.2; white-space:nowrap; color:#fff; background:var(--navy-2); border-radius:4px; box-shadow:0 2px 8px rgba(0,0,0,.18); opacity:0; pointer-events:none; }
    :root[data-side="min"] .side a:hover .lbl, :root[data-side="min"] .side a:focus-visible .lbl, :root[data-side="min"] .side-toggle:hover .lbl, :root[data-side="min"] .side-toggle:focus-visible .lbl { opacity:1; }
}
@media (max-width: 860px) {
    .shell { grid-template-columns:minmax(0, 1fr); grid-template-rows:auto 1fr; }
    .side { border-right:0; border-bottom:1px solid var(--line); padding:8px; }
    .side nav { flex-direction:row; overflow-x:auto; }
    .side a { white-space:nowrap; }
    .side hr, .acc { display:none; }
    .switch span, .who-name, .user button span, .lang-name { display:none; }
    .top-in { padding:10px 16px; }
    .content { padding:18px 16px 40px; }
}
@media (max-width: 560px) {
    .top-in { flex-wrap:wrap; row-gap:8px; }
    .user { width:100%; justify-content:flex-end; gap:8px; }
    .switch { margin-left:auto; }
    .shell { min-height:calc(100vh - 100px); }
}

/* Linkeia Email Designer page */
.dz-bar { display:flex; align-items:center; gap:8px; flex-wrap:wrap; margin-bottom:12px; }
.dz-name { font:700 18px var(--title); color:var(--text); background:var(--card); border:1px solid var(--line); border-radius:4px; padding:7px 12px; min-width:220px; flex:0 1 360px; }
.dz-spacer { flex:1; }
.dz-dev { display:inline-flex; gap:2px; background:var(--card); border:1px solid var(--line); border-radius:4px; padding:2px; }
.tool-btn { display:inline-grid; place-items:center; width:36px; height:34px; border:0; border-radius:4px; background:transparent; color:var(--muted); cursor:pointer; }
.tool-btn:hover { background:var(--hover); color:var(--text); }
.tool-btn.on { background:var(--navy); color:#fff; }
.dz-editor { height:calc(100vh - 230px); min-height:520px; border:1px solid var(--line); border-radius:4px; overflow:hidden; background:var(--card); }
.dz-foot { display:flex; gap:8px; align-items:flex-start; margin-top:10px; }
.dz-dialog { border:0; border-radius:4px; padding:0; width:min(760px, 96vw); background:var(--card); color:var(--text); box-shadow:0 30px 60px -20px rgba(0,0,0,.5); }
.dz-dialog::backdrop { background:rgba(12,28,43,.55); }
.dz-intro { width:min(680px, 96vw); padding:28px 28px 22px; }
.dz-intro h2 { margin:0 0 6px; font-size:22px; }
.dz-intro > p { margin:0 0 20px; }
.dz-intro ul { list-style:none; margin:0 0 22px; padding:0; display:grid; grid-template-columns:1fr 1fr; gap:16px 22px; }
.dz-intro li { display:flex; gap:12px; align-items:flex-start; }
.dz-intro li svg { width:20px; height:20px; margin-top:1px; color:var(--coral); }
.dz-intro li strong { display:block; font-size:14px; }
.dz-intro li span { display:block; margin-top:2px; font-size:13px; line-height:1.4; color:var(--muted); }
.dz-intro-foot { display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:12px; padding-top:16px; border-top:1px solid var(--line); }
@media (max-width:600px) { .dz-intro { padding:22px 18px 18px; } .dz-intro ul { grid-template-columns:1fr; } }
.dz-dialog-bar { display:flex; align-items:center; gap:10px; padding:10px 12px; border-bottom:1px solid var(--line); }
.dz-dialog-bar strong { flex:1; }
.dz-dialog iframe { display:block; width:680px; max-width:100%; height:72vh; border:0; margin:0 auto; background:#fff; }
.tpl-grid { display:grid; grid-template-columns:repeat(auto-fill, minmax(190px, 1fr)); gap:12px; margin-bottom:20px; }
.tpl { background:var(--card); border:1px solid var(--line); border-radius:4px; padding:14px; display:flex; flex-direction:column; gap:8px; text-decoration:none; color:var(--text); }
.tpl:hover { border-color:var(--cyan); }
.tpl .tpl-ico { width:40px; height:40px; border-radius:4px; display:grid; place-items:center; background:var(--chip); color:var(--link); }
.row-actions { display:flex; gap:6px; flex-wrap:wrap; justify-content:flex-end; }
.row-actions form { margin:0; }
.btn.sm { padding:6px 10px; font-size:13px; }

/* campaign report */
.rp { --rp-a:#1d7fc0; --rp-b:#ff554a; }
:root[data-theme="dark"] .rp { --rp-a:#2f9fd8; --rp-b:#f25a50; }
@media (prefers-color-scheme: dark) { :root:not([data-theme="light"]) .rp { --rp-a:#2f9fd8; --rp-b:#f25a50; } }
.rp h2 { margin:0 0 14px; font-size:17px; }
.rp h2 small { font-size:13px; font-weight:400; font-family:var(--body); }
.rp-print-head { display:none; }
.rp-head { display:flex; flex-wrap:wrap; justify-content:space-between; gap:16px 32px; }
.rp-head p { margin:0; }
.rp-subject { font-weight:600; font-size:16px; margin:2px 0 6px !important; }
.rp-times { display:flex; gap:28px; margin:0; }
.rp-times dt { font-size:13px; color:var(--muted); }
.rp-times dd { margin:2px 0 0; font-size:14px; font-weight:600; }
.rp-sum p { margin:0 0 8px; line-height:1.6; }
.rp-sum p:last-child { margin-bottom:0; }
.rp-two { display:grid; grid-template-columns:repeat(2, minmax(0, 1fr)); gap:16px; }
.rp .rp-kpis { grid-template-columns:repeat(3, minmax(0, 1fr)); }
.rp-bar { display:grid; grid-template-columns:118px minmax(0, 1fr) 118px; align-items:center; gap:10px; padding:7px 0; font-size:14px; }
.rp-bar-c { padding:4px 0; }
.rp-bar-l { overflow-wrap:anywhere; }
.rp-bar-t { height:10px; border-radius:0 4px 4px 0; background:var(--hover); overflow:hidden; }
.rp-bar-t i { display:block; height:100%; border-radius:0 4px 4px 0; background:var(--rp-a); }
.rp-bar-n { text-align:right; font-variant-numeric:tabular-nums; font-weight:600; }
.rp-bar-n em { font-style:normal; font-weight:400; color:var(--muted); font-size:13px; margin-left:4px; }
.rp-legend { display:flex; gap:18px; list-style:none; margin:-6px 0 10px; padding:0; font-size:13px; color:var(--muted); }
.rp-legend li { display:flex; align-items:center; gap:6px; }
.rp-legend i { width:14px; height:3px; border-radius:2px; background:var(--rp-a); }
.rp-legend i.b { background:var(--rp-b); }
.rp-scroll { overflow-x:auto; }
.rp svg { display:block; width:100%; min-width:560px; height:auto; }
.rp-plot { position:relative; height:230px; min-width:520px; }
.rp-area { position:absolute; inset:26px 8px 24px 44px; }
.rp-area svg { display:block; width:100%; height:100%; overflow:visible; }
.rp-grid { stroke:var(--line); stroke-width:1; vector-effect:non-scaling-stroke; }
.rp-tick { position:absolute; color:var(--muted); font-size:11px; line-height:1; pointer-events:none; white-space:nowrap; }
.rp-y { left:-8px; transform:translate(-100%, -50%); }
.rp-x { top:100%; transform:translate(-50%, 8px); }
.rp-direct { position:absolute; transform:translate(8px, -125%); color:var(--text); font-size:12px; font-weight:600; pointer-events:none; }
.rp-direct.end { transform:translate(calc(-100% - 8px), -125%); }
.rp-line { fill:none; stroke-width:2; stroke-linejoin:round; stroke-linecap:round; stroke:var(--rp-a); vector-effect:non-scaling-stroke; }
.rp-line.b { stroke:var(--rp-b); }
.rp-hit { fill:transparent; }
.rp-hit:hover { fill:var(--hover); fill-opacity:.5; }
.rp-hours { display:grid; grid-template-columns:repeat(24, minmax(0, 1fr)); gap:2px; height:160px; }
.rp-hour { display:flex; flex-direction:column; min-width:0; text-align:center; }
.rp-hour-c { position:relative; flex:1; padding-top:18px; display:flex; flex-direction:column; justify-content:flex-end; align-items:center; }
.rp-hour-c i { display:block; width:min(100%, 18px); border-radius:4px 4px 0 0; background:var(--rp-a); }
.rp-hour.best i { background:var(--rp-b); }
.rp-hour-c b { position:absolute; top:0; font-size:12px; white-space:nowrap; z-index:1; }
.rp-hour:hover i { opacity:.8; }
.rp-hour small { height:18px; line-height:20px; color:var(--muted); font-size:11px; }
.rp-tops .card { padding-bottom:6px; container-type:inline-size; }
.rp-tops .table { border:0; margin-bottom:0; }
.rp-tops td { overflow-wrap:anywhere; }
.rp-tops th.rp-num { white-space:nowrap; }
.rp-cc { display:none; }
/* a narrow card: the country goes under the address, so the count stays in view */
@container (max-width:440px) {
    .rp-col-c { display:none; }
    .rp-cc { display:block; }
    .rp-tops th, .rp-tops td { padding-left:6px; padding-right:6px; }
}
.rp-num { text-align:right !important; font-variant-numeric:tabular-nums; font-weight:600; }
.rp-tip { position:fixed; z-index:50; padding:6px 10px; font-size:13px; line-height:1.3; color:#fff; background:var(--ink); border-radius:4px; box-shadow:0 2px 8px rgba(0,0,0,.25); pointer-events:none; white-space:nowrap; }
@media (max-width:900px) { .rp-two { grid-template-columns:minmax(0, 1fr); } }
@media (max-width:560px) { .rp .rp-kpis { grid-template-columns:repeat(2, minmax(0, 1fr)); } .rp-bar { grid-template-columns:92px minmax(0, 1fr) 100px; } }
@page { margin:14mm 12mm; }
@media print {
    :root:root:root { --page:#fff; --card:#fff; --text:#13212e; --muted:#5a6b7b; --line:#d9e0e6; --hover:#eef3f7; --warn:#8a5a00; --warn-bg:#fff4dc; color-scheme:light; }
    :root:root:root .rp { --rp-a:#1d7fc0; --rp-b:#ff554a; }
    html, body { background:#fff; }
    * { -webkit-print-color-adjust:exact; print-color-adjust:exact; }
    .top, .side, .head .filters, .rp-tops, .rp-tip, .flash, [data-crmpro-form], [data-empw-capa] { display:none !important; }
    .shell { display:block; min-height:0; }
    .content { padding:0; }
    .head { margin-bottom:6px; }
    .rp-print-head { display:block; }
    .rp-print-brand { margin:0 0 2px; font-size:12px; color:var(--muted); }
    .rp .card, .rp .stat { box-shadow:none; break-inside:avoid; padding:12px 14px; margin-bottom:10px; }
    .rp .grid { grid-template-columns:repeat(3, 1fr); gap:8px; margin-bottom:10px; }
    .rp .stat .v { font-size:20px; }
    .rp-two { grid-template-columns:repeat(2, minmax(0, 1fr)); gap:10px; }
    .rp svg { min-width:0; }
    .rp-scroll { overflow:visible; }
    .rp-hours { height:130px; }
    .rp-plot { height:190px; min-width:0; }
    .rp-bar { grid-template-columns:78px minmax(0, 1fr) 96px; font-size:12px; padding:3px 0; }
    .rp-bar-n em { font-size:11px; }
    .rp-demo { break-inside:avoid; }
}

/* contacts: sortable headers, edit dialog */
.th-sort { color:inherit; text-decoration:none; white-space:nowrap; }
.th-sort span { opacity:.45; font-size:10px; }
.th-sort.on span, .th-sort:hover span { opacity:1; }
.linkish { background:none; border:0; padding:0; font:inherit; color:var(--link); cursor:pointer; text-align:left; }
.linkish:hover { text-decoration:underline; }
.flash.bad { background:var(--bad-bg); color:var(--bad); border-color:transparent; }
.ct-dialog { width:min(560px, 96vw); }
.ct-dialog form { margin:0; }
.ct-body { padding:14px 16px; display:grid; gap:12px; max-height:70vh; overflow:auto; }
.fld { display:grid; gap:6px; font-size:13px; font-weight:600; border:0; padding:0; margin:0; min-width:0; }
fieldset.fld { border:1px solid var(--line); border-radius:4px; padding:10px 12px; }
fieldset.fld legend { padding:0 6px; }
.fld input, .fld select { font:400 14px var(--body); padding:9px 12px; border-radius:4px; border:1px solid var(--line); background:var(--card); color:var(--text); width:100%; box-sizing:border-box; }
.fld-row { display:grid; grid-template-columns:1fr 1fr; gap:12px; }
@media (max-width:520px) { .fld-row { grid-template-columns:1fr; } }
.ct-dl { display:grid; grid-template-columns:auto 1fr; gap:4px 12px; margin:0; font-size:13px; }
.ct-dl dt { color:var(--muted); } .ct-dl dd { margin:0; }
.ct-foot { display:flex; gap:8px; align-items:center; padding:12px 16px; border-top:1px solid var(--line); flex-wrap:wrap; }
.ct-foot .grow { flex:1; }
.btn.danger { color:var(--bad); }
.row-form { display:flex; gap:6px; align-items:center; }
.row-form input { font:inherit; padding:6px 10px; border-radius:4px; border:1px solid var(--line); background:var(--card); color:var(--text); min-width:180px; }
/* senders and sending domains */
.sr-only { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }
.sd-terms ul { margin:8px 0 14px; padding-left:20px; display:grid; gap:4px; }
.sd-terms-form { display:flex; gap:12px; align-items:center; flex-wrap:wrap; }
.sd-acts { white-space:nowrap; text-align:right; }
.sd-acts .btn { margin-left:4px; }
.sd-email { display:flex; align-items:center; gap:6px; flex-wrap:wrap; }
.sd-email input, .sd-email select { font:400 14px var(--body); padding:9px 12px; border-radius:4px; border:1px solid var(--line); background:var(--card); color:var(--text); min-width:0; }
.sd-email input { flex:1 1 160px; }
.sd-code { font:700 22px ui-monospace,Consolas,monospace !important; letter-spacing:6px; text-align:center; max-width:220px; }
.sd-domain-head { display:flex; align-items:center; gap:10px; flex-wrap:wrap; }
.sd-domain-head h2 { margin:0; }
.sd-domain-head .grow { flex:1; }
.sd-h3 { font-size:15px; margin:18px 0 6px; display:flex; align-items:center; gap:8px; }
.sd-dns td { vertical-align:middle; }
.sd-dns code { font-size:12px; }
.btn.copied { color:var(--ok); }
.btn.busy { opacity:.6; cursor:progress; }
/* campaigns: draft page */
.cp-h { display:flex; align-items:center; gap:10px; margin:0 0 14px; font-size:17px; flex-wrap:wrap; }
.cp-h .grow { flex:1; }
.cp-n { display:inline-grid; place-items:center; width:26px; height:26px; border-radius:50%; background:var(--chip); color:var(--link); font-size:13px; font-weight:700; }
.cp-grid { display:grid; grid-template-columns:1fr 1fr; gap:14px; }
.cp-wide { grid-column:1 / -1; }
.cp-frame { display:block; width:100%; max-width:680px; height:520px; border:1px solid var(--line); border-radius:4px; background:var(--card); margin:0 auto 8px; }
.cp-missing { margin:4px 0 12px; padding-left:20px; color:var(--warn); }
.cp-at { font:400 14px var(--body); padding:6px 10px; border-radius:4px; border:1px solid var(--line); background:var(--card); color:var(--text); margin-left:6px; }
#cp-send .btn { margin-top:6px; }
#cp-test input { flex:1; min-width:220px; }
.cp-list-rows { display:grid; gap:2px; max-height:230px; overflow-y:auto; margin:2px 0 8px; }
.cp-list-rows .chk { align-items:center; padding:6px 8px; border-radius:4px; }
.cp-list-rows .chk:hover { background:var(--hover); }
.cp-list-rows .chk input { margin-top:0; }
.cp-list-rows .chk span { flex:1; min-width:0; overflow-wrap:anywhere; }
.cp-list-rows .chk em { flex:none; font-style:normal; font-size:13px; color:var(--muted); }
.cp-total { margin:0 0 6px; padding:8px; font-size:15px; border-top:1px solid var(--line); }
.cp-total strong { font-size:18px; }
@media (max-width:720px) { .cp-grid { grid-template-columns:1fr; } .cp-frame { height:420px; } }
.lead { color:var(--muted); font-size:15px; line-height:1.55; max-width:860px; margin:0 0 18px; }
details.sd-domain > summary { cursor:pointer; list-style:none; }
details.sd-domain > summary::-webkit-details-marker { display:none; }
details.sd-domain .sd-chev { width:18px; height:18px; color:var(--muted); transition:transform .15s ease; flex:none; }
details.sd-domain[open] .sd-chev { transform:rotate(90deg); }
details.sd-domain[open] > summary { margin-bottom:10px; }
details.sd-domain[open] .sd-toggle { display:none; }
@media (prefers-reduced-motion: reduce) { details.sd-domain .sd-chev { transition:none; } }
a.stat.link { display:block; color:inherit; text-decoration:none; transition:border-color .15s ease, box-shadow .15s ease; }
a.stat.link:hover { border-color:var(--link); box-shadow:0 6px 18px -10px rgba(8,18,30,.35); }
a.stat.link:focus-visible { outline:2px solid var(--link); outline-offset:2px; }
@media (prefers-reduced-motion: reduce) { a.stat.link { transition:none; } }
/* the hidden attribute always wins (buttons and flex boxes set their own display) */
[hidden] { display:none !important; }
/* checkboxes and radios inside a form field keep their own size */
.fld .chk input, .fld .opt input, .chk input[type="checkbox"], .opt input[type="radio"] { width:auto; padding:0; border:0; flex:none; }
.fld fieldset, fieldset.fld { border:1px solid var(--line); border-radius:4px; padding:8px 12px 10px; }
fieldset.fld legend { padding:0 4px; }
fieldset.fld .chk { font-weight:400; justify-content:flex-start; text-align:left; }
/* custom contact fields */
.fld textarea { font:400 14px var(--body); padding:9px 12px; border-radius:4px; border:1px solid var(--line); background:var(--card); color:var(--text); width:100%; box-sizing:border-box; resize:vertical; }
.fd-form { display:grid; gap:14px; }
.fd-form h2 { margin:0; }
.fd-edit { display:grid; gap:10px; margin-top:8px; max-width:420px; }
.ct-custom { grid-template-columns:1fr 1fr; }
@media (max-width:560px) { .ct-custom, .fd-form .fld-row { grid-template-columns:1fr; } }
.ct-cf { display:inline-flex; gap:6px; flex-wrap:wrap; align-items:center; }
.ct-cf [data-cv] { display:contents; }
.ct-cf input, .ct-cf select { font:inherit; padding:8px 12px; border-radius:4px; border:1px solid var(--line); background:var(--card); color:var(--text); }
/* segments */
.sg-match { display:flex; gap:8px; align-items:center; flex-wrap:wrap; font-size:14px; }
.sg-match select, .sg-rule select, .sg-rule input { font:400 14px var(--body); padding:8px 10px; border-radius:4px; border:1px solid var(--line); background:var(--card); color:var(--text); }
.sg-rules { display:grid; gap:8px; }
.sg-rule { display:flex; gap:6px; align-items:center; flex-wrap:wrap; }
.sg-rule > span { display:contents; }
.sg-chip { display:inline-block; background:var(--chip); border-radius:4px; padding:2px 8px; margin:2px 0; }

/* E-Transactional */
.tx-test { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr) auto; gap:16px; align-items:end; }
.ig2 { display:flex; align-items:stretch; border:1px solid var(--line); border-radius:4px; overflow:hidden; background:var(--card); transition:border-color .15s, box-shadow .15s; }
.ig2:focus-within { border-color:var(--link); box-shadow:0 0 0 3px color-mix(in srgb, var(--link) 18%, transparent); }
.fld .ig2 > input { border:0; border-radius:0; flex:1 1 auto; min-width:60px; width:auto; outline:none; }
.ig2-dom { display:flex; align-items:center; gap:2px; flex:none; max-width:60%; padding:0 12px; background:var(--hover); border-left:1px solid var(--line); color:var(--muted); font-weight:400; font-size:14px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.fld .ig2-dom select { border:0; background:transparent; padding:9px 2px; width:auto; color:var(--text); cursor:pointer; outline:none; }
.tx-test > .btn { height:40px; }
.tx-hint { margin:8px 0 0; }
@media (max-width:860px) { .tx-test { grid-template-columns:1fr; } .tx-test > .btn { justify-self:start; } }
.tk-new-key { border-color:#16a34a; }
.tk-new-key h2 { display:flex; align-items:center; gap:8px; }
.tk-copy { display:flex; gap:8px; align-items:center; flex-wrap:wrap; margin-top:8px; }
.tk-copy code { background:var(--chip); border-radius:4px; padding:8px 10px; font-size:14px; word-break:break-all; user-select:all; }
.tx-dl { display:grid; grid-template-columns:max-content 1fr; gap:6px 16px; margin:0; font-size:14px; }
.tx-dl dt { color:var(--muted); }
.tx-dl dd { margin:0; word-break:break-word; }
@media (max-width:600px) { .tx-dl { grid-template-columns:1fr; } .tx-dl dd { margin-bottom:6px; } }
/* who answers for the data: welcome window and edit page */
.rs-modal { position:fixed; inset:0; z-index:9; overflow:auto; padding:88px 16px 32px; background:rgba(12,28,43,.55); }
.gate .flash { color:var(--good); }
.gate .flash.bad { color:var(--bad); }
.gate .rs-modal .card { margin:0 auto; box-shadow:0 30px 60px -20px rgba(0,0,0,.5); }
.rs-grid { display:grid; grid-template-columns:repeat(2, minmax(0, 1fr)); gap:12px; margin:0 0 12px; }
.rs-grid .wide { grid-column:1 / -1; }
.rs-note { color:var(--muted); font-size:13px; margin:0 0 12px; }
.rs-foot { display:flex; gap:8px; align-items:center; flex-wrap:wrap; margin-top:12px; }
.rs-foot .grow { flex:1; }
.rs-page { max-width:640px; }
@media (max-width:600px) {
    .rs-modal { padding:112px 16px 24px; }
    .gate .rs-modal .card { padding:20px; }
    .rs-grid { grid-template-columns:minmax(0, 1fr); }
}
.rs-public { margin-bottom:16px; }
.rs-public h2 { margin:0 0 4px; }
.rs-link { margin:8px 0 0; overflow-wrap:anywhere; }
/* pickers with search of the data form: flags need a list of our own */
.rs-pick { position:relative; min-width:0; }
.rs-pick-btn { display:flex; align-items:center; gap:8px; width:100%; min-height:40px; box-sizing:border-box; padding:7px 10px 7px 12px; border:1px solid var(--line); border-radius:4px; background:var(--card); color:var(--text); font:400 14px var(--body); text-align:left; cursor:pointer; }
.rs-pick-btn:disabled { opacity:.6; cursor:not-allowed; }
.rs-pick-btn:focus-visible { outline:2px solid var(--link); outline-offset:1px; }
.rs-pick-btn > svg { flex:none; color:var(--muted); }
.rs-pick-val { flex:1; min-width:0; display:flex; align-items:center; gap:8px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.rs-pick-val.rs-ph { color:var(--muted); }
.rs-flag { flex:none; width:21px; height:14px; border-radius:2px; box-shadow:0 0 0 1px rgba(0,0,0,.08); }
.rs-pick-pop { position:absolute; z-index:20; top:calc(100% + 4px); left:0; right:0; padding:8px; background:var(--card); border:1px solid var(--line); border-radius:4px; box-shadow:0 12px 28px -12px rgba(8,18,30,.45); }
.rs-pick-pop ul { list-style:none; margin:8px 0 0; padding:0; max-height:240px; overflow:auto; }
.rs-pick-pop li { display:flex; align-items:center; gap:8px; padding:7px 8px; border-radius:4px; font:400 14px var(--body); cursor:pointer; }
.rs-pick-pop li.on { background:var(--hover); }
.rs-pick-pop li[aria-selected="true"] { font-weight:600; }
.rs-pick-pop li .n { flex:1; min-width:0; overflow-wrap:anywhere; }
.rs-pick-pop li .s { flex:none; color:var(--muted); }
.rs-pick-pop li.rs-pick-none { color:var(--muted); cursor:default; }
.rs-tel { position:relative; display:flex; gap:6px; min-width:0; }
.rs-tel .rs-pick { position:static; flex:none; width:112px; }
.rs-tel > input { flex:1; min-width:0; }
.rs-tel .rs-pick-pop { min-width:280px; }
.fld input[readonly] { background:var(--hover); color:var(--muted); }
@media (max-width:600px) { .rs-tel .rs-pick-pop { min-width:0; } }

/* pills that explain themselves (Labels::tipPill) */
.has-tip { cursor:help; }
.has-tip svg { flex:none; opacity:.8; }
.tip-box { position:fixed; z-index:1000; max-width:320px; padding:9px 11px; border-radius:6px; background:var(--text); color:var(--card); font:400 13px/1.45 var(--body); box-shadow:0 8px 24px rgba(0,0,0,.28); pointer-events:none; }

/* steps before the first campaign (partials.getting-started) */
.gs h2 { margin-bottom:4px; }
.gs-steps { list-style:none; margin:12px 0 0; padding:0; display:grid; gap:6px; }
.gs-step { display:flex; gap:12px; align-items:center; padding:10px 12px; border:1px solid var(--line); border-radius:6px; }
.gs-step.next { border-color:var(--navy-2); box-shadow:inset 3px 0 0 var(--navy-2); }
.gs-step.done .gs-text { opacity:.75; }
.gs-mark { flex:none; width:28px; height:28px; border-radius:50%; display:grid; place-items:center; font-weight:700; font-size:13px; background:var(--hover); color:var(--muted); }
.gs-mark svg { width:16px; height:16px; }
.gs-step.done .gs-mark { background:#1e9e5a; color:#fff; }
.gs-step.done .gs-mark svg { stroke-width:3; }
.gs-step.wait .gs-mark { background:var(--warn-bg); color:var(--warn); }
.gs-step.next .gs-mark { background:var(--navy-2); color:#fff; }
.gs-text { flex:1; min-width:0; display:grid; gap:2px; }
.gs-step .btn { flex:none; }
.sd-wait { display:inline-block; margin-left:8px; color:var(--warn); font-weight:600; }
@media (max-width:560px) { .gs-step { flex-wrap:wrap; } .gs-step .btn { margin-left:40px; } }

/* designer image picker (GrapesJS asset manager): a real-looking upload button, the hint and an empty state */
.gjs-am-file-uploader #gjs-am-title[data-lk] { display:flex; flex-direction:column; align-items:center; justify-content:center; gap:8px; top:0; bottom:0; left:0; pointer-events:none; font-family:var(--body); }
.lk-am-btn { display:inline-flex; align-items:center; gap:8px; background:var(--navy); color:#fff; border-radius:4px; padding:10px 20px; font-weight:600; font-size:15px; }
.lk-am-btn::before { content:""; width:18px; height:18px; background:currentColor;
    -webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4'/%3E%3Cpath d='m17 8-5-5-5 5'/%3E%3Cpath d='M12 3v12'/%3E%3C/svg%3E") center/contain no-repeat;
    mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4'/%3E%3Cpath d='m17 8-5-5-5 5'/%3E%3Cpath d='M12 3v12'/%3E%3C/svg%3E") center/contain no-repeat; }
.gjs-am-file-uploader:hover .lk-am-btn { background:var(--navy-2); }
.lk-am-drop { font-size:14px; }
.lk-am-hint { font-size:12px; opacity:.7; }
.gjs-am-file-uploader > form { cursor:pointer; }
.gjs-am-file-uploader #gjs-am-uploadFile { cursor:pointer; min-height:300px; }
.gjs-am-assets:not(:has(.gjs-am-asset))::before { content:attr(data-empty); display:block; padding:24px; text-align:center; font-size:13px; opacity:.7; font-family:var(--body); }
