:root { --ink:#0f172a; --muted:#64748b; --line:#e2e8f0; --bg:#f6f8fb; }
* { box-sizing:border-box; }
body { margin:0; font-family:system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif; color:var(--ink); background:var(--bg); line-height:1.55; }
a { color:var(--primary); text-decoration:none; }
a:hover { text-decoration:underline; }
.nav { display:flex; align-items:center; justify-content:space-between; padding:14px 22px; background:var(--primary); color:#fff; }
.nav .brand { color:#fff; font-weight:800; letter-spacing:.3px; }
.nav nav { display:flex; align-items:center; gap:18px; }
.nav nav a { color:#dbeafe; }
.nav nav a:hover { color:#fff; }
.inline { display:inline; margin:0; }
.linkbtn { background:none; border:0; color:#dbeafe; cursor:pointer; font:inherit; padding:0; }
.linkbtn:hover { color:#fff; text-decoration:underline; }
.wrap { max-width:960px; margin:0 auto; padding:26px 18px 60px; }
.hero { background:linear-gradient(135deg,var(--primary),#12356f); color:#fff; border-radius:16px; padding:40px 30px; margin-bottom:22px; }
.hero .eyebrow { text-transform:uppercase; letter-spacing:1.5px; font-size:12px; color:#bcd0f5; margin:0 0 8px; }
.hero h1 { margin:0 0 10px; font-size:30px; line-height:1.15; }
.hero .theme { font-style:italic; font-size:18px; color:#e6eefc; margin:0 0 6px; }
.hero .dates { color:#c7d7f5; margin:0 0 18px; }
.cta { display:flex; gap:12px; flex-wrap:wrap; }
.btn { display:inline-block; background:var(--secondary); color:#fff; padding:11px 20px; border-radius:9px; border:0; font-weight:700; cursor:pointer; }
.btn:hover { filter:brightness(1.06); text-decoration:none; }
.btn.ghost { background:transparent; border:1.5px solid #fff; }
.btn.small { padding:7px 14px; font-size:14px; }
.card { background:#fff; border:1px solid var(--line); border-radius:14px; padding:24px; margin-bottom:20px; }
.card.narrow { max-width:460px; margin-inline:auto; }
.card h2 { margin-top:0; color:var(--primary); }
.muted { color:var(--muted); }
.subthemes { padding-left:20px; }
.subthemes li { margin:6px 0; }
.cats { list-style:none; padding:0; display:grid; grid-template-columns:repeat(auto-fill,minmax(200px,1fr)); gap:12px; }
.cats li { border:1px solid var(--line); border-radius:10px; padding:12px 14px; display:flex; flex-direction:column; }
.cats li span { font-weight:700; }
.cats li small { color:var(--muted); }
.form { display:flex; flex-direction:column; gap:14px; }
.form label { display:flex; flex-direction:column; gap:6px; font-weight:600; font-size:14px; }
.form input { padding:10px 12px; border:1px solid var(--line); border-radius:8px; font:inherit; }
.form input:focus { outline:2px solid var(--primary); border-color:var(--primary); }
.flash { max-width:960px; margin:16px auto 0; background:#fef3c7; border:1px solid #fcd34d; color:#92400e; padding:12px 16px; border-radius:10px; }
.status { text-transform:capitalize; }
.status.paid { color:#166534; }
.status.pending, .status.awaiting_verification { color:#92400e; }
.foot { text-align:center; color:var(--muted); padding:26px 16px 40px; font-size:14px; }

/* --- Stage A: registration, payment, receipt, admin ---------------------- */
.form select, .form textarea { padding:10px 12px; border:1px solid var(--line); border-radius:8px; font:inherit; background:#fff; }
.form select:focus, .form textarea:focus { outline:2px solid var(--primary); border-color:var(--primary); }
.form input[type=file] { padding:9px; border:1px dashed var(--line); border-radius:8px; background:#fff; font:inherit; }
fieldset.academic { border:1px solid var(--line); border-radius:12px; padding:16px 18px; display:flex; flex-direction:column; gap:14px; }
fieldset.academic legend { font-weight:700; color:var(--primary); padding:0 6px; font-size:14px; }
.price-box { background:#f0f7ff; border:1px solid #cfe2ff; border-radius:10px; padding:12px 16px; margin:0; }
.price-box strong { color:var(--primary); font-size:18px; }

.kv { width:100%; border-collapse:collapse; margin:8px 0 4px; }
.kv th { text-align:left; font-weight:600; color:var(--muted); padding:7px 14px 7px 0; vertical-align:top; white-space:nowrap; width:1%; font-size:14px; }
.kv td { padding:7px 0; border-bottom:1px solid var(--line); }
.kv tr:last-child td { border-bottom:0; }
.amount { font-weight:700; color:var(--primary); }

.pay-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(320px,1fr)); gap:20px; align-items:start; }

.table-wrap { overflow-x:auto; }
table.grid { width:100%; border-collapse:collapse; font-size:14px; }
table.grid th, table.grid td { padding:10px 12px; border-bottom:1px solid var(--line); text-align:left; vertical-align:top; }
table.grid th { background:#f8fafc; color:var(--muted); font-size:12px; text-transform:uppercase; letter-spacing:.4px; white-space:nowrap; }
table.grid td.r, table.grid th.r { text-align:right; }
table.grid code { font-size:13px; }

.filters { display:flex; flex-wrap:wrap; gap:8px; margin:0 0 18px; }
.chip { border:1px solid var(--line); border-radius:999px; padding:6px 14px; font-size:14px; color:var(--muted); background:#fff; }
.chip:hover { text-decoration:none; border-color:var(--primary); color:var(--primary); }
.chip.on { background:var(--primary); border-color:var(--primary); color:#fff; }
.chip .n { display:inline-block; margin-left:6px; opacity:.75; font-size:12px; }

.status.cancelled { color:#b91c1c; }
.verify-action { border-color:#bbf7d0; background:#f0fdf4; }

.receipt-head { display:flex; justify-content:space-between; gap:24px; flex-wrap:wrap; align-items:flex-start; border-bottom:2px solid var(--primary); padding-bottom:16px; margin-bottom:8px; }
.receipt-head h1 { margin:0 0 4px; font-size:22px; color:var(--primary); }
.receipt-qr { text-align:center; }
.receipt-qr svg { display:block; }
.receipt-qr small { display:block; margin-top:4px; }
.verify-line { font-size:13px; word-break:break-all; }

.verify-card { text-align:center; }
.verify-card .eyebrow { text-transform:uppercase; letter-spacing:1.2px; font-size:12px; color:var(--muted); margin:0 0 14px; }
.verify-card .kv { text-align:left; margin-top:18px; }
.verify-badge { display:inline-block; padding:10px 22px; border-radius:999px; font-weight:700; margin-bottom:6px; }
.verify-badge.ok { background:#dcfce7; color:#166534; }
.verify-badge.no { background:#fef3c7; color:#92400e; }

/* --- Stage B: abstract submission -------------------------------------- */
.upper { text-transform:uppercase; }
.small { font-size:13px; }
.nowrap { white-space:nowrap; }
.notice { background:#fef3c7; border:1px solid #fcd34d; color:#92400e; padding:12px 16px; border-radius:10px; }
.badge { display:inline-block; padding:2px 9px; border-radius:999px; font-size:12px; font-weight:700; }
.badge.ok { background:#dcfce7; color:#166534; }
.badge.warn { background:#fef3c7; color:#92400e; }
.linkbtn.danger { color:#b91c1c; }
.btn.ghost-dark { background:transparent; border:1.5px solid var(--line); color:var(--muted); }
.btn.ghost-dark:hover { border-color:var(--primary); color:var(--primary); }

fieldset.authors { border:1px solid var(--line); border-radius:12px; padding:16px 18px; }
fieldset.authors legend { font-weight:700; color:var(--primary); padding:0 6px; font-size:14px; }
.author-row { display:grid; grid-template-columns:1.2fr 1.4fr 1.2fr auto auto; gap:8px; align-items:center; margin-bottom:8px; }
.author-row input[type=text], .author-row input[type=email], .author-row input:not([type]) {
  padding:8px 10px; border:1px solid var(--line); border-radius:8px; font:inherit; width:100%; }
.author-row .corr { display:flex; align-items:center; gap:5px; font-size:13px; font-weight:600; white-space:nowrap; }
@media (max-width:720px) { .author-row { grid-template-columns:1fr; } }

.wordmeter { position:sticky; top:0; z-index:5; background:#f0f7ff; border:1px solid #cfe2ff;
  border-radius:10px; padding:10px 16px; font-size:14px; }
.wordmeter.over { background:#fee2e2; border-color:#fca5a5; color:#b91c1c; }
.wordmeter.over strong { color:#b91c1c; }

.filterbar { display:flex; flex-wrap:wrap; gap:8px; align-items:center; margin-bottom:18px; }
.filterbar select, .filterbar input { padding:8px 10px; border:1px solid var(--line); border-radius:8px; font:inherit; background:#fff; }

.abstract-title { color:var(--ink); font-size:17px; margin:4px 0 14px; }
.field-label { margin:16px 0 4px; font-size:13px; text-transform:uppercase; letter-spacing:.5px; color:var(--muted); }
.body-text { margin:0; white-space:pre-wrap; }

/* --- Stage C: settings area -------------------------------------------- */
.status-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(210px,1fr)); gap:10px; margin-top:16px; }
.status-tile { display:flex; align-items:center; gap:9px; border:1px solid var(--line); border-radius:10px;
  padding:11px 14px; background:#fff; color:var(--ink); }
.status-tile:hover { text-decoration:none; border-color:var(--primary); }
.status-tile .dot { width:10px; height:10px; border-radius:50%; flex:0 0 auto; }
.status-tile.ok .dot { background:#16a34a; }
.status-tile.no .dot { background:#dc2626; }
.status-tile .lbl { font-weight:600; font-size:14px; flex:1; }
.status-tile .val { font-size:12px; color:var(--muted); }
.settings-tabs { margin-bottom:22px; }

.masked { display:inline-block; font-family:ui-monospace,Consolas,monospace; background:#f1f5f9;
  border:1px solid var(--line); border-radius:7px; padding:5px 10px; font-size:13px; letter-spacing:1px; }
.mt { margin-top:14px; }
.form label.check { flex-direction:row; align-items:center; gap:9px; font-weight:500; }
.form label.check input { width:auto; }

.editrows { border:1px solid var(--line); border-radius:12px; overflow:hidden; margin-bottom:8px; }
.editrow { display:grid; grid-template-columns:1.5fr 1.8fr 70px 90px 70px 92px; gap:8px; align-items:center;
  padding:8px 12px; border-bottom:1px solid var(--line); margin:0; }
.editrow.u { grid-template-columns:1.8fr 1.5fr 70px 70px 92px; }
.editrow:last-child { border-bottom:0; }
.editrow.head { background:#f8fafc; font-size:12px; text-transform:uppercase; letter-spacing:.4px; color:var(--muted); }
.editrow.add { background:#f0f7ff; }
.editrow input, .editrow select { padding:7px 9px; border:1px solid var(--line); border-radius:7px; font:inherit; font-size:14px; width:100%; }
.editrow input[type=checkbox] { width:auto; justify-self:center; }
.editrow .tiny { text-align:right; }
@media (max-width:820px) { .editrow, .editrow.u { grid-template-columns:1fr 1fr; } }

table.matrix .cell { white-space:nowrap; }
table.matrix .cur { padding:5px; border:1px solid var(--line); border-radius:6px; font-size:12px; }
table.matrix .amt { width:92px; padding:6px 8px; border:1px solid var(--line); border-radius:6px; font:inherit; font-size:14px; text-align:right; }


.bookbar { display:flex; flex-wrap:wrap; gap:12px; align-items:center; justify-content:space-between;
  background:#f0f7ff; border:1px solid #cfe2ff; border-radius:10px; padding:12px 16px; margin-bottom:18px; }
.bookbtns { display:flex; gap:8px; flex-wrap:wrap; }


/* --- Stage E: review UI ------------------------------------------------- */
.reviewcard { border:1px solid var(--line); border-radius:12px; padding:14px 18px; margin-bottom:14px; }
.rc-head { display:flex; flex-wrap:wrap; gap:10px; align-items:center; margin-bottom:8px; }
.rc-scores { display:flex; flex-wrap:wrap; gap:14px; font-size:13px; background:#f8fafc;
  border-radius:8px; padding:8px 12px; margin-bottom:8px; }
.confidential { background:#fff7ed; border-left:3px solid #fb923c; padding:8px 12px; border-radius:6px; }
.scoregrid { display:grid; grid-template-columns:repeat(auto-fit,minmax(160px,1fr)); gap:12px; }
.btnrow { display:flex; gap:10px; flex-wrap:wrap; }
.revpick { display:grid; grid-template-columns:repeat(auto-fit,minmax(260px,1fr)); gap:8px; }
.revopt { display:flex; gap:9px; align-items:flex-start; border:1px solid var(--line);
  border-radius:9px; padding:9px 12px; font-weight:400; font-size:14px; }
.revopt.coi { background:#fef2f2; border-color:#fecaca; }
.revopt small { display:block; }
.critrow { display:grid; grid-template-columns:1fr 1.4fr 70px 70px; gap:8px; margin-bottom:6px; }
.critrow input { padding:7px 9px; border:1px solid var(--line); border-radius:7px; font:inherit; font-size:14px; }
.editrow.modrow { grid-template-columns:auto 1fr auto; align-items:center; font-weight:400; }
.status.under_review, .status.revise, .status.assigned, .status.in_progress { color:#92400e; }
.status.submitted { color:#1d4ed8; }
.status.accepted, .status.camera_ready { color:#166534; }
.status.rejected, .status.declined { color:#b91c1c; }


/* --- Stage F: Site & Content editors ----------------------------------- */
.mono { font-family: ui-monospace, Consolas, monospace; font-size: 13px; }
.personrow { display:grid; grid-template-columns:88px 1fr auto; gap:16px; align-items:start;
  border:1px solid var(--line); border-radius:12px; padding:14px; margin-bottom:14px; }
.pr-photo { width:88px; height:88px; border-radius:10px; overflow:hidden; background:var(--primary);
  display:grid; place-items:center; color:#fff; font-weight:700; font-size:22px; }
.pr-photo img { width:100%; height:100%; object-fit:cover; }
.pr-fields input, .pr-fields select { padding:7px 9px; border:1px solid var(--line); border-radius:7px;
  font:inherit; font-size:14px; width:100%; }
.menugroup { border:1px solid var(--line); border-radius:12px; margin-bottom:12px; overflow:hidden; }
.menugroup .editrow { border-bottom:1px solid var(--line); }
.menugroup .editrow:last-child { border-bottom:0; }
.menugroup .editrow.child { background:#f8fafc; padding-left:34px; }
.swatch { display:flex; flex-direction:column; gap:10px; border:1px solid var(--line);
  border-radius:12px; padding:14px; font-weight:400; }
.sw-head { display:flex; gap:10px; align-items:flex-start; }
.sw-chip { width:34px; height:34px; border-radius:8px; border:1px solid var(--line); flex:0 0 auto; }
.sw-inputs { display:flex; gap:8px; align-items:center; }
.sw-inputs input[type=color] { width:46px; height:34px; padding:2px; border:1px solid var(--line);
  border-radius:7px; background:#fff; }
.tiny-hex { width:96px; padding:7px 9px; border:1px solid var(--line); border-radius:7px; background:#f8fafc; }
.card-inset { border:1px solid var(--line); border-radius:12px; padding:14px; }
.imgprev { height:96px; border:1px dashed var(--line); border-radius:9px; margin:10px 0;
  display:grid; place-items:center; overflow:hidden; background:#f8fafc; }
.imgprev img { max-width:100%; max-height:96px; object-fit:contain; }
textarea.mono { font-family: ui-monospace, Consolas, monospace; font-size:13px; line-height:1.6; }

@media print {
  .nav, .foot, .flash, .no-print { display:none !important; }
  body { background:#fff; }
  .wrap { padding:0; max-width:none; }
  .card { border:0; margin:0; padding:0; }
}

/* ------------------------------------------------------- signup progress */
.stepbar { display: flex; gap: 0; margin: 0 0 26px; list-style: none; padding: 0; counter-reset: s; }
.stepbar li { flex: 1; position: relative; padding: 0 8px 0 0; counter-increment: s;
  font-size: .82rem; color: var(--muted, #64748b); }
.stepbar li .n { display: inline-grid; place-items: center; width: 26px; height: 26px; border-radius: 50%;
  border: 1.5px solid #E3E9F2; font-weight: 700; font-size: .78rem; margin-right: 8px; background: #fff; }
.stepbar li.done .n { background: #1B7A3E; border-color: #1B7A3E; color: #fff; }
.stepbar li.now .n { background: #0B2E63; border-color: #0B2E63; color: #fff; }
.stepbar li.now { color: #0B1F3A; font-weight: 600; }
.stepbar li::after { content: ""; position: absolute; left: 0; right: 8px; bottom: -10px; height: 2px;
  background: #E3E9F2; }
.stepbar li.done::after { background: #1B7A3E; }
.stepbar li.now::after { background: #0B2E63; }
@media (max-width: 620px) { .stepbar { flex-direction: column; gap: 8px; }
  .stepbar li::after { display: none; } }

.phonerow { display:grid; grid-template-columns:minmax(0,150px) 1fr; gap:8px; }
.phonerow select { padding:10px 8px; border:1px solid var(--line); border-radius:8px; font:inherit; background:#fff; }
@media (max-width:520px){ .phonerow { grid-template-columns:1fr; } }

.slotrow { display:grid; grid-template-columns:190px 1fr auto; gap:20px; align-items:start; }
.slot-prev { width:190px; aspect-ratio:16/10; border:1px dashed var(--line); border-radius:10px; background:#f8fafc; display:grid; place-items:center; overflow:hidden; }
.slot-prev img { width:100%; height:100%; object-fit:cover; }
.slot-empty { text-align:center; color:var(--muted); font-size:13px; }
.slot-fields label { display:block; margin-bottom:8px; font-size:14px; font-weight:600; }
.slot-fields input[type=text], .slot-fields input:not([type]), .slot-fields input[type=file] { width:100%; padding:8px 10px; border:1px solid var(--line); border-radius:7px; font:inherit; font-size:14px; font-weight:400; }
@media (max-width:760px){ .slotrow { grid-template-columns:1fr; } .slot-prev { width:100%; } }

/* --- Stage G: account hub fork + two-track status ----------------------- */
.forkgrid { display: grid; grid-template-columns: repeat(auto-fit, minmax(290px, 1fr));
  gap: 20px; margin-top: 22px; }
.forkcard { border: 1px solid var(--line); border-radius: 14px; padding: 24px; background: #fff;
  display: flex; flex-direction: column; transition: border-color .18s ease, box-shadow .18s ease; }
.forkcard:hover { border-color: var(--primary); box-shadow: 0 8px 24px rgba(11,31,58,.07); }
.forkcard h2 { margin: 6px 0 8px; font-size: 1.2rem; }
.forkcard p { color: var(--muted); margin: 0 0 12px; font-size: 14px; line-height: 1.6; }
.forkcard .fk-eyebrow { font-size: 11px; text-transform: uppercase; letter-spacing: .14em;
  font-weight: 700; color: var(--secondary); }
.forkcard .fk-state { font-size: 13px; font-weight: 600; color: var(--primary);
  background: #f1f5f9; border-radius: 8px; padding: 7px 12px; margin-bottom: 16px; }
.forkcard .btn { margin-top: auto; align-self: flex-start; }
@media (prefers-reduced-motion: reduce) { .forkcard, .forkcard:hover { transition: none; box-shadow: none; } }

.tracks { display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 12px;
  margin: 0 0 22px; }
.track { border: 1px solid var(--line); border-left: 3px solid var(--line); border-radius: 10px;
  padding: 10px 14px; background: #fff; }
.track .tk-label { display: block; font-size: 11px; text-transform: uppercase; letter-spacing: .12em;
  color: var(--muted); font-weight: 700; }
.track .tk-state { display: block; font-size: 14px; color: var(--ink); margin-top: 2px; }
.track.registered, .track.accepted { border-left-color: #16a34a; }
.track.started, .track.verifying, .track.under_review { border-left-color: #C9A227; }
.track.submitted { border-left-color: var(--primary); }

/* --- Stage H: email test result ---------------------------------------- */
.testresult { border-radius:10px; padding:12px 16px; margin:0 0 16px; font-size:14px; }
.testresult.ok { background:#dcfce7; border:1px solid #86efac; color:#14532d; }
.testresult.bad { background:#fee2e2; border:1px solid #fca5a5; color:#7f1d1d; }
.testresult p { margin:4px 0 0; }
.testlog { list-style:none; margin:6px 0 0; padding:0; font-size:13px; }
.testlog li { padding:5px 0; border-bottom:1px solid var(--line); display:flex; gap:10px; align-items:center; }
.testlog li:last-child { border-bottom:0; }
.tl-status { font-family:ui-monospace,Consolas,monospace; font-size:12px; padding:1px 7px; border-radius:5px; }
.tl-status.ok { background:#dcfce7; color:#14532d; }
.tl-status.bad { background:#fee2e2; color:#7f1d1d; }

/* --- Stage I: WYSIWYG editor shell ------------------------------------- */
.qwrap { border:1px solid var(--line); border-radius:10px; overflow:hidden; background:#fff; font-weight:400; }
.qbar { border-bottom:1px solid var(--line); padding:6px 8px; background:#f8fafc; display:flex; flex-wrap:wrap; align-items:center; }
.qbar.ql-toolbar { border:0; border-bottom:1px solid var(--line); }
.qhost { min-height:340px; }
.qhost .ql-editor { min-height:340px; font-size:15px; line-height:1.65; font-family:inherit; }
.qhost .ql-editor h2 { font-size:20px; margin:18px 0 8px; }
.qhost .ql-editor h3 { font-size:17px; margin:16px 0 6px; }
.qhost .ql-editor blockquote { border-left:3px solid var(--secondary); padding-left:14px; color:var(--muted); }
.qhost.ql-container.ql-snow { border:0; }
.qbtn { background:none; border:0; cursor:pointer; font:inherit; font-size:14px; color:#444; padding:3px 7px; border-radius:5px; line-height:1; }
.qbtn:hover { background:#e2e8f0; }
.qbtn.on { background:var(--primary); color:#fff; }
.qextra { margin-left:auto; display:flex; gap:2px; }
textarea.qsource { border:0; border-radius:0; width:100%; min-height:340px; }

/* --- Stage K: image picker / embed dialogs, tables in the editor -------- */
.qmodal-back { position:fixed; inset:0; background:rgba(11,31,58,.5); z-index:200;
  display:flex; align-items:flex-start; justify-content:center; padding:60px 16px; overflow:auto; }
.qmodal { background:#fff; border-radius:14px; width:100%; max-width:620px; padding:22px 24px;
  box-shadow:0 20px 60px rgba(11,31,58,.3); }
.qmodal h3 { margin:0 0 12px; font-size:19px; }
.qmodal label { display:block; margin:12px 0 6px; font-size:13.5px; font-weight:600; }
.qmodal input[type=text], .qmodal input[type=url] { width:100%; padding:9px 12px; border:1px solid var(--line);
  border-radius:8px; font:inherit; font-size:14px; }
.qmodal input[type=file] { display:block; margin:6px 0 4px; font-size:13.5px; }
.qmodal-foot { margin-top:18px; display:flex; justify-content:flex-end; }
.qnote { margin:12px 0 0; font-size:13.5px; color:var(--muted); }
.qnote.bad { color:#b91c1c; font-weight:600; }
.qtabs { display:flex; gap:6px; margin:14px 0 12px; border-bottom:1px solid var(--line); }
.qtab { background:none; border:0; border-bottom:2px solid transparent; cursor:pointer; font:inherit;
  font-size:13.5px; font-weight:600; color:var(--muted); padding:7px 12px; }
.qtab.on { color:var(--primary); border-bottom-color:var(--primary); }
.qgrid { display:grid; grid-template-columns:repeat(auto-fill,minmax(110px,1fr)); gap:10px; max-height:340px; overflow:auto; }
.qpick { border:1px solid var(--line); border-radius:9px; background:#fff; padding:0; cursor:pointer; overflow:hidden; }
.qpick:hover { border-color:var(--primary); }
.qpick img { display:block; width:100%; height:82px; object-fit:cover; }
/* --- Stage N: the consent opt-in ------------------------------------------
   Boxed and full-width so it reads as its own decision rather than fine print
   attached to the button above it. Regular weight: a checkbox label that shouts
   is a nudge, and consent that was nudged is worth less. */
.check.consent { display:flex; gap:10px; align-items:flex-start; margin:14px 0 4px;
  padding:12px 14px; border:1px solid var(--line); border-radius:10px; background:#fbfcfe; }
.check.consent input { margin-top:3px; flex:0 0 auto; }
.check.consent span { font-weight:400; font-size:14px; line-height:1.5; }

/* Tables are shown but not editable — Stage K ships no table authoring. The
   tint and the label are the only cue the admin gets that clicking will do
   nothing, so the content does not read as merely broken. */
.qhost .ql-editor table { border-collapse:collapse; width:100%; }
.qhost .ql-editor th,
.qhost .ql-editor td { border:1px solid var(--line); padding:6px 9px; min-width:50px; }
.qhost .ql-editor th { background:#f1f5f9; font-weight:700; text-align:left; }
.qhost .ql-editor table.sgs-ro-table { position:relative; background:#fafbfc; user-select:none; }
.qhost .ql-editor table.sgs-ro-table::after {
  content:'Table — edit on the public page markup, not here'; display:block;
  font-size:11.5px; color:var(--muted); padding:4px 2px 0; font-weight:600; }
.qhost .ql-editor img { max-width:100%; height:auto; }
.qhost .ql-editor iframe { max-width:100%; }
