/* Signal / 信舟 — dark operations workspace. */
:root {
  color-scheme: dark;
  --green: #8cf0c4;
  --green-dark: #6fdbac;
  --mint: #142e27;
  --ink: #e8f0f4;
  --muted: #8a9ba8;
  --line: #25323d;
  --bg: #0a1016;
  --panel: #111b24;
  --panel-raised: #17232e;
  --orange: #eac080;
  --red: #ff919a;
  --blue: #87b7ff;
  --shadow: 0 16px 52px #00000025;
  font-family: -apple-system, BlinkMacSystemFont, "Inter", "PingFang SC", "Microsoft YaHei", sans-serif;
  background: var(--bg);
  color: var(--ink);
}
body { background: radial-gradient(ellipse at 80% -20%, #15382f33, transparent 50%), var(--bg); font-size: 13px; }
h1 { font-size: 30px; font-weight: 650; letter-spacing: -1px; line-height: 1.35; }
h2 { font-size: 16px; letter-spacing: -.2px; }
h3 { font-size: 14px; }
small, .muted, .summary-line { color: var(--muted); }
button, a, input, select, textarea { transition: border-color .16s, background .16s, color .16s, box-shadow .16s, transform .16s; }
button:focus-visible, a:focus-visible, input:focus-visible, select:focus-visible, textarea:focus-visible { outline: 2px solid var(--green); outline-offset: 3px; }
::selection { background: #8cf0c444; color: #fff; }
.mono, .metric-number, .capacity-number, .large-number { font-family: "SFMono-Regular", Consolas, "Liberation Mono", monospace; font-variant-numeric: tabular-nums; }
.btn { border: 1px solid #31414e; background: #14212c; color: #d9e6ed; border-radius: 8px; min-height: 37px; padding: 10px 15px; font-size: 12px; font-weight: 550; box-shadow: 0 1px 0 #ffffff04 inset; gap: 8px; }
.btn:hover { background: #1c2d3a; border-color: #4a6271; }
.btn:active { transform: translateY(1px); }
.btn.primary { background: var(--green); border-color: var(--green); color: #07251b; box-shadow: 0 0 20px #8cf0c412; }
.btn.primary:hover { background: #adffdb; border-color: #adffdb; box-shadow: 0 0 28px #8cf0c425; }
.btn.danger { background: #3a202a; border-color: #66404a; color: #ffb1b6; }
.btn.sm { min-height: 30px; padding: 7px 11px; font-size: 11px; }
.btn.subtle { background: transparent; color: var(--muted); }
.icon-btn { border-radius: 7px; color: #9cb1bf; }
.icon-btn:hover { color: var(--green); background: #1a2b33; }
.link { color: var(--green); }
.link:hover { color: #c9ffe7; }
button:disabled { opacity: .38; }
.pill { font-size: 10px; font-weight: 550; letter-spacing: .1px; border: 1px solid transparent; padding: 4px 7px; border-radius: 5px; }
.pill.green { color: #a5f2ce; background: #153629; border-color: #265340; }
.pill.blue { color: #a8cafa; background: #172c43; border-color: #2c465f; }
.pill.amber { color: #efc585; background: #352c1e; border-color: #57452a; }
.pill.red { color: #ffafb6; background: #38212b; border-color: #613440; }
.pill.gray { color: #a1b1bd; background: #1b2832; border-color: #2a3b48; }
.side { width: 232px; padding: 30px 20px 20px; background: #0b131b; border-right: 1px solid #23313c; box-shadow: none; }
.side { overflow-y: auto; scrollbar-width: thin; scrollbar-color: #243b4b transparent; }
.brand { gap: 12px; margin: 0 9px 30px; }
.brandmark { background: linear-gradient(145deg, #a0f8ce, #55bb97); border-radius: 11px; color: #0b3023; box-shadow: 0 0 24px #78e8b61a; height: 39px; width: 39px; }
.brandname { color: #f1f8fa; font-size: 22px; letter-spacing: 1px; }
.brand small { color: #728b9d; font-size: 8px; letter-spacing: 2.1px; margin-top: 5px; }
.workspace { background: #111e29; border: 1px solid #263a47; color: #aebfca; border-radius: 8px; margin-bottom: 24px; }
.work-icon { color: #8eacbd; }
.navlabel { font-size: 9px; color: #728898; letter-spacing: 1.4px; margin: 24px 12px 11px; }
.nav { gap: 5px; }
.nav a { min-height: 43px; border-radius: 7px; color: #92a6b5; padding: 12px 13px; font-size: 12px; border: 1px solid transparent; }
.nav a:hover { background: #14232f; color: #e3eef4; }
.nav a.active { background: linear-gradient(95deg, #16342b, #10231f); color: var(--green); border-color: #245340; box-shadow: none; }
.nav a.active svg { filter: drop-shadow(0 0 5px #8cf0c42a); }
.nav .tiny { color: #87bcab; background: #183d30; font-size: 9px; padding: 2px 5px; border-radius: 4px; }
.sidebar-create { width: 100%; justify-content: center; margin-bottom: 9px; }
.side-bottom { margin-top: auto; padding-top: 26px; }
.node-mini { background: #101c25; border: 1px solid #263744; border-radius: 9px; padding: 15px; }
.node-mini strong { color: #bdd0db; font-size: 11px; }
.node-mini p { color: #6f8a9b; font-size: 10px; line-height: 1.9; }
.side-foot { color: #708796; padding: 14px 9px 0; font-size: 9px; letter-spacing: 1.5px; }
.main { margin-left: 232px; }
.topbar { height: 75px; padding: 0 38px; background: #0c151ded; backdrop-filter: blur(18px); border-bottom: 1px solid #23313b; }
.crumb { color: #6f8796; font-size: 11px; gap: 14px; }
.crumb strong { color: #c2d1dc; font-weight: 500; }
.top-right { gap: 20px; }
.top-right .environment { color: #7898ac; background: #12222d; border: 1px solid #294151; font-size: 9px; letter-spacing: .7px; padding: 5px 9px; border-radius: 5px; }
.avatar { color: #a5dbbe; background: #203a30; border: 1px solid #335545; font-size: 11px; }
.userbox { color: #a6b7c4; font-size: 11px; }
.content { max-width: 1650px; margin: auto; padding: 34px 38px 20px; animation: screen-in .25s ease; }
.page-title { margin-bottom: 28px; gap: 18px; }
.page-title h1 { color: #edf4f6; }
.page-title p { color: #778f9f; line-height: 1.8; margin-top: 9px; font-size: 12px; }
.notice { background: #111f28; border: 1px solid #263e4b; color: #8ba9ba; border-radius: 7px; padding: 11px 14px; font-size: 10px; line-height: 1.8; margin-bottom: 22px; }
.notice strong { color: #b0c7d4; font-weight: 500; }
.notice a { color: #a6ccb9; }
.card { min-width: 0; border: 1px solid #263541; background: linear-gradient(140deg, #121e28, #101922); border-radius: 11px; box-shadow: var(--shadow); }
.card-head { border-color: #253641; padding: 20px 22px; }
.card-head h2 { color: #dce9ef; font-weight: 600; }
.card-head small { color: #6d889b; font-size: 10px; }
.card-body { padding: 23px; }
.metrics { gap: 15px; margin-bottom: 25px; }
.metric { border: 1px solid #263844; background: linear-gradient(125deg, #15212d, #111c24); border-radius: 10px; padding: 20px 22px; position: relative; overflow: hidden; box-shadow: 0 5px 22px #00000015; }
.metric:after { content: ''; position: absolute; top: 0; right: 12px; width: 52px; height: 1px; background: linear-gradient(90deg, transparent, #78ae99); opacity: .55; }
.metric-top { color: #92a8b8; font-size: 11px; }
.metric-icon { color: #82bda2; background: #1c342e; border: 1px solid #2c4940; border-radius: 7px; }
.metric-number { color: #eef8f7; font-size: 36px; font-weight: 500; line-height: 1.25; margin: 18px 0 12px; letter-spacing: -1.8px; }
.metric-bottom { color: #6d8999; font-size: 10px; line-height: 1.6; }
.metric-bottom .positive { color: var(--green); }
.progress { height: 5px; background: #223440; border-radius: 4px; overflow: hidden; }
.progress i { background: linear-gradient(90deg, #3ba184, #9decc7); border-radius: inherit; box-shadow: 0 0 8px #8cf0c420; }
.kv { border-color: #24343e; color: #7994a6; padding: 12px 0; font-size: 11px; }
.kv strong { color: #c9dce5; font-weight: 500; }
.table-wrap { max-width: 100%; scrollbar-width: thin; scrollbar-color: #344c5d transparent; }
table { color: #b5c7d3; font-size: 11px; }
th { background: #0e1821; color: #6b889b; font-size: 10px; font-weight: 500; padding: 15px 20px; letter-spacing: .2px; border-color: #22333f; }
td { padding: 18px 20px; border-color: #22333f; color: #b5c7d3; font-size: 12px; }
tbody tr:hover { background: #182b354d; }
.table-main { color: #d0e0e8; font-weight: 500; font-size: 12px; }
.table-main.clickable:hover { color: var(--green); }
.table-sub { color: #6b899b; font-size: 10px; line-height: 1.7; margin-top: 5px; }
.table-progress { color: #8facbd; }
.table-progress .progress { height: 3px; }
.toolbar, .pagination { border-color: #253641; }
.pagination { color: #6a889b; font-size: 10px; padding: 16px 20px; }
.search { color: #698899; background: #101d27; border-color: #304451; border-radius: 7px; min-height: 37px; }
.search input { color: #d5e4ec; }
.tabs { border-color: #263844; padding: 0 21px; }
.tab { color: #7c99ab; padding: 17px 0; font-size: 11px; }
.tab.active { color: var(--green); border-color: var(--green); }
.summary-line { font-size: 10px; line-height: 1.9; }
.empty { color: #6c8898; padding: 48px 24px; }
.empty .empty-icon { color: #6aaf97; background: #162e28; border: 1px solid #2b493c; }
.empty h3 { color: #a4bccb; font-weight: 500; }
.empty p { color: #6b8899; }
.item-card { padding: 23px; transition: border-color .18s, transform .18s; }
.item-card:hover { transform: translateY(-2px); border-color: #496355; }
.item-icon { background: #1a342b; color: #94dfb9; border: 1px solid #2d4d40; border-radius: 9px; }
.item-card h3 { color: #d1e3eb; font-size: 15px; }
.item-card p { color: #7691a2; }
.item-card .large-number { color: #e5f1f3; font-size: 34px; font-weight: 450; }
.item-card .item-bottom { border-color: #263b46; }
.template-text { color: #b3c9d5; background: #0d1922; border: 1px solid #253c49; font-size: 12px; line-height: 1.95; }
.page-footer { border-color: #22313a; color: #6f8796; font-size: 9px; letter-spacing: .4px; margin-top: 32px; }
.activities { padding: 17px 22px; }
.activity-icon { background: #19332b; color: #84bda2; border: 1px solid #2b493e; }
.activity:not(:last-child):before { background: #2a404b; }
.activity-title { color: #aec6d3; font-size: 11px; }
.activity-time { color: #6a8899; font-size: 9px; }
.node-diagram { background: #0c171f; }
.diagram-box { border-color: #2b404f; background: #14232e; color: #7598ac; border-radius: 10px; }
.diagram-box.active { background: #153229; color: #8ce1b5; border-color: #315c45; }
.diagram-box strong { color: #bdd4df; }
.node-stats { background: #0d1821; border-color: #293d4a; }
.node-stats div+div { border-color: #293d4a; }
.node-stats b { color: #c4dedc; font-weight: 500; }
.reading-list li { border-color: #253b47; color: #9bb5c5; }
.reading-list .num { color: #75b99d; background: #18332a; }
.ownership-filters { border-color: #263844; background: #101c25; }
.ownership-forms form { background: #0f1c25; border-color: #293d49; }
.ownership-filters .field { min-width: 185px; }
input, select, textarea { color: #d5e7ed; accent-color: var(--green); }
.field input, .field select, .field textarea, #detail-group, [data-owner-for], #capacity-form input, .inline-additions input { background: #0c1720 !important; border-color: #2b4252 !important; color: #c9e0e9; border-radius: 7px; min-height: 41px; font-size: 12px; }
.field input:focus, .field select:focus, .field textarea:focus, .inline-additions input:focus { border-color: #66b497 !important; box-shadow: 0 0 0 3px #75dcb31a; outline: none; }
.field input::placeholder, .field textarea::placeholder { color: #6e8898; }
.field label { color: #b6cbd7; font-size: 11px; font-weight: 500; margin-bottom: 9px; }
.field small { color: #67889d; font-size: 10px; line-height: 1.8; }
.field { margin-bottom: 21px; }
.field textarea { line-height: 1.9; padding: 13px 15px; }
.section-label { color: #c4dbe4; font-size: 13px; font-weight: 600; }
.section-label i { color: #9bf2c6; background: #1c3b2f; font-family: ui-monospace, monospace; font-style: normal; }
.divider { border-color: #253b47; margin: 23px 0; }
.checkrow { color: #9fb8c7; font-size: 11px; line-height: 1.8; }
.checkrow input { width: 15px; height: 15px; }
.dropzone { border: 1px dashed #3b655b; border-radius: 9px; background: linear-gradient(130deg, #142922, #0e1c23); color: #7ac3a2; min-height: 146px; padding: 25px 15px; }
.dropzone strong { color: #a4dac0; font-size: 12px; font-weight: 500; }
.dropzone small { color: #5f9087; font-size: 10px; }
.dropzone:hover, .dropzone.drag { border-color: #93e5bd; background: #193d2c; box-shadow: 0 0 0 3px #8cf0c40b; }
.alert { background: #132631; border-color: #2b4655; color: #8db1c5; font-size: 11px; line-height: 1.85; border-radius: 7px; }
.alert.amber { background: #2b281f; border-color: #504532; color: #cbaf7b; }
.account-picker { background: #0d1921; border-color: #2c404c; border-radius: 7px; }
.account-picker .checkrow { border-color: #233641; }
.account-picker .checkrow:hover { background: #162d32; }
.detail-grid { border-color: #29404e; }
.detail-grid p { color: #bdd3df; }
.message-preview { background: #0d1720; border-color: #263d47; }
.bubble { background: #214636; color: #c7f1da; border-radius: 13px 13px 3px 13px; box-shadow: 0 5px 20px #00000014; font-size: 12px; line-height: 1.9; }
.bubble-foot { color: #698998; font-size: 10px; }
.campaign-preview { background: #0d1a23; border-color: #29464d; color: #b0ccdb; border-radius: 9px; }
.variant-preview { border-color: #27404b; }
.variant-preview summary { color: #8caebb; font-size: 11px; }
.variant-preview summary b { color: #83dcac; font-family: ui-monospace, monospace; font-weight: 500; }
.variant-preview>div { color: #c9e4d7; background: #1d3b2e; font-size: 12px; }
.import-counts>div { background: #11272b; border-color: #29464b; }
.import-counts span { color: #75a39f; font-size: 10px; }
.import-counts strong { color: #c5eee0; font-size: 24px; font-weight: 500; }
.import-issues summary, .inline-additions summary { color: #96d9b8; }
.test-option { background: #142a2a; border-color: #2e474b; }
.test-chips span { background: #1b3836; color: #92b9af; }
.test-results { border-color: #31544a; }
.test-stats { border-color: #2b443f; color: #82ab9c; }
.test-stats b { color: #bde3d1; }
.subnav { color: #67889c; font-size: 10px; margin-bottom: 18px; }
.subnav a { color: #90c3a5; }
.overlay { background: #02070dc9; backdrop-filter: blur(9px); padding: 24px; }
.modal { border-radius: 12px; border: 1px solid #3a505e; background: #101c26; color: var(--ink); box-shadow: 0 30px 120px #00000099; }
.modal-head { background: #111f29; border-color: #2b4050; padding: 22px 25px; }
.modal-head h2 { color: #d9e9ee; font-size: 16px; font-weight: 550; }
.modal-body { padding: 25px; }
.modal-foot { background: #101c25; border-color: #294050; padding: 17px 25px; }
.form-error.show { background: #3a232a; color: #ffb2b6; border-color: #684049; border-radius: 7px; }
.toast { background: #1d3d30; border: 1px solid #3f7656; color: #b5edce; box-shadow: 0 10px 35px #00000050; border-radius: 8px; }
.toast.error { background: #442630; color: #ffd0d0; border-color: #74434f; }
.login-page { background: #0b131b; }
.login-visual { background: radial-gradient(ellipse at 40% 60%, #1a4b393f, transparent 55%), #0b171d; border-right: 1px solid #233f40; }
.login-copy h1 { color: #ecf8f3; font-size: clamp(32px, 3.8vw, 56px); font-weight: 550; letter-spacing: -1.6px; line-height: 1.3; }
.login-copy p { color: #789d9d; line-height: 2; }
.login-visual .orb { background: radial-gradient(circle at 35% 30%, #8cf0c422, #23493811 60%, transparent 65%); border: 1px solid #6ac6a822; box-shadow: 0 0 100px #56b49112; }
.orb:before,.orb:after { border-color: #78c7ac18; }
.login-foot { color: #658a8c; }
.login-form-area { background: #0e1821; }
.login-form h2 { font-size: 26px; color: #dcecf1; }
.login-form>p { color: #7996a7; }
.login-form .footnote { color: #6b8899; }
.skeleton,.boot { color: #739b9b; }
.spinner { border-color: #2a424d; border-top-color: var(--green); }
/* Main operations view */
.command-heading { display:flex; align-items:flex-end; justify-content:space-between; gap:24px; margin-bottom:27px; }
.command-heading .eyebrow { color:#77ba9d; font-size:9px; letter-spacing:2.5px; margin-bottom:12px; }
.command-heading h1 { font-size:32px; letter-spacing:-.8px; font-weight:550; }
.command-heading p { font-size:11px; color:#6c8c9d; margin-top:10px; }
.command-actions { display:flex; align-items:center; gap:9px; }
.source-switch { display:flex; border:1px solid #2c4250; border-radius:7px; padding:3px; background:#0b1720; gap:3px; }
.source-switch button { background:transparent; border:0; color:#6c8b9f; border-radius:4px; padding:8px 12px; font-size:10px; }
.source-switch button.active { background:#244335; color:#aeedc9; }
.workspace-pulse { display:flex; align-items:center; gap:7px; color:#5f8c85; font-size:9px; letter-spacing:.5px; margin-bottom:22px; }
.workspace-pulse .dot { width:5px; height:5px; color:#84d8b0; box-shadow:0 0 8px #8cf0c425; }
.command-middle { display:grid; grid-template-columns:minmax(0,1.7fr) minmax(280px,1fr); gap:20px; margin-bottom:24px; }
.section-kicker { color: #668a9c; font-family:ui-monospace,monospace; font-size:9px; letter-spacing:1.5px; margin-left:10px; }
.telemetry { display:grid; grid-template-columns:200px minmax(0,1fr); gap:32px; padding:31px; align-items:center; min-height:246px; }
.delivery-dial { width:175px; height:175px; border-radius:50%; background:conic-gradient(#84e4b6 0deg, #84e4b6 var(--delivered), #e8bd78 var(--delivered), #e8bd78 var(--unknown), #fb8791 var(--unknown), #fb8791 var(--failed), #477aa8 var(--failed), #477aa8 360deg); position:relative; padding:9px; margin:auto; }
.delivery-dial:before { content:''; position:absolute; inset:9px; border-radius:50%; background:#121f28; box-shadow:inset 0 0 35px #00000020; }
.delivery-dial:after { content:''; position:absolute; inset:20px; border:1px dashed #2e454b; border-radius:50%; }
.dial-value { position:absolute; inset:0; display:flex; align-items:center; justify-content:center; flex-direction:column; z-index:1; }
.dial-value strong { font-family:ui-monospace,monospace; font-size:35px; font-weight:500; color:#daf5e8; letter-spacing:-2px; }
.dial-value small { font-size:9px; letter-spacing:1px; margin-top:10px; color:#638d86; }
.delivery-dial.empty-dial { background:#22343e; }
.telemetry-bars { display:flex; flex-direction:column; gap:20px; }
.telemetry-row .row { justify-content:space-between; color:#8ca7b7; font-size:10px; margin-bottom:9px; }
.telemetry-row strong { color:#bfd8e3; font-family:ui-monospace,monospace; font-weight:400; }
.telemetry-row .progress { height:4px; background:#263a45; }
.telemetry-row[data-tone=amber] .progress i { background:#dbb57b; }
.telemetry-row[data-tone=red] .progress i { background:#e2838c; }
.telemetry-row[data-tone=blue] .progress i { background:#70a8dc; }
.resource-hero { display:flex; align-items:flex-end; gap:9px; margin-bottom:23px; }
.resource-hero strong { font-family:ui-monospace,monospace; color:#d6ebe7; font-size:46px; line-height:1; font-weight:400; letter-spacing:-2px; }
.resource-hero span { font-size:11px; color: #658a9a; padding-bottom:5px; }
.resource-card .card-body { padding-top:26px; }
.resource-card .kv:last-child { border:0; }
.resource-caption { font-size:10px; color: #688899; line-height:1.85; margin-top:16px; }
.command-bottom { display:grid; grid-template-columns:minmax(0,1.85fr) minmax(260px,1fr); gap:20px; }
.attention-list { padding:7px 20px; }
.attention-row { padding:18px 0; border-bottom:1px solid #253b47; display:flex; align-items:center; gap:12px; }
.attention-row:last-child { border-bottom:0; }
.attention-row p { color:#9fbac8; font-size:11px; line-height:1.6; }
.attention-row small { display:block; color: #6b889a; font-size:9px; margin-top:5px; }
.attention-row .alert-mark { width:29px; height:29px; border:1px solid #564830; background:#30271e; color:#d5ae72; border-radius:7px; display:flex; align-items:center; justify-content:center; }
/* Campaign wizard: steps on the left, live content on the right. */
.modal.campaign-wizard { width:min(1120px,96vw); max-width:1120px; height:min(860px,92vh); display:flex; flex-direction:column; overflow:hidden; }
.campaign-wizard>form { display:flex; flex-direction:column; min-height:0; flex:1; }
.wizard-nav { display:grid; grid-template-columns:repeat(3,1fr); border-bottom:1px solid #2b4050; padding:15px 25px; gap:12px; background:#101b24; }
.wizard-nav button { border:0; background:transparent; color: #6e8798; display:flex; align-items:center; gap:9px; padding:5px 0; font-size:11px; text-align:left; }
.wizard-nav button b { width:25px; height:25px; display:flex; align-items:center; justify-content:center; border:1px solid #304958; border-radius:6px; font-size:10px; font-weight:400; font-family:ui-monospace,monospace; }
.wizard-nav button.active { color:#b4d9c7; }
.wizard-nav button.active b { background:#264b38; border-color:#518368; color:#adf4c9; box-shadow:0 0 16px #8cf0c40b; }
.wizard-nav button.done { color:#80b99c; }
.wizard-shell.modal-body { display:grid; grid-template-columns:minmax(0,1fr) 320px; gap:0; overflow:hidden; flex:1; min-height:0; padding:0; }
.wizard-fields { overflow:auto; padding:24px 27px; scrollbar-width:thin; scrollbar-color:#345368 transparent; }
.wizard-step .section-label { margin-bottom:22px; }
.wizard-step .grid2 { gap:15px; }
.wizard-step .divider { display:none; }
#campaign-form textarea[name=body] { min-height:200px; max-height:none; }
.wizard-preview { background:linear-gradient(165deg,#0c1a23,#102320); padding:26px 20px; border-left:1px solid #29424c; overflow:auto; scrollbar-width:thin; scrollbar-color:#345368 transparent; }
.wizard-preview .eyebrow { font-size:9px; letter-spacing:1.4px; margin-bottom:18px; color:#7ab297; }
.wizard-preview .campaign-preview { border:0; padding:0; background:transparent; margin:0; box-shadow:none; }
.wizard-preview .campaign-preview>.row { flex-wrap:wrap; gap:9px; font-size:11px; margin-bottom:8px; }
.wizard-preview .summary-line { font-size:9px; line-height:1.9; }
.wizard-preview .variant-preview { padding:16px 0; }
.wizard-preview .variant-preview summary { font-size:10px; }
.wizard-preview .variant-preview summary b { float:none; display:block; margin:4px 0 0 12px; }
.wizard-preview .variant-preview>div { padding:14px; border-radius:11px 11px 2px 11px; font-size:11px; background:#214b36; }
.wizard-meta { border-top:1px solid #274239; margin-top:20px; padding-top:18px; font-size:10px; color:#6e9587; line-height:1.9; }
.wizard-review { display:grid; grid-template-columns:1fr 1fr; gap:12px; }
.wizard-review>div { border:1px solid #2b434e; background:#10212a; border-radius:8px; padding:16px; }
.wizard-review small { display:block; font-size:10px; color:#6d93a6; }
.wizard-review strong { display:block; font-size:13px; color:#c1dce5; margin-top:9px; font-weight:500; overflow-wrap:anywhere; }
.wizard-foot-hint { margin-right:auto; font-size:10px; color: #67899b; }
.topbar kbd { border:1px solid #2c4350; border-radius:4px; padding:2px 4px; font-size:9px; margin-left:4px; color: #678a9a; }
.command-links { display:grid; gap:7px; }
.command-links a { display:flex; align-items:center; gap:12px; padding:14px; background:#14252f; border:1px solid #29404b; border-radius:7px; color:#a7c4d2; }
.command-links a span { flex:1; }
.command-links a:hover { background:#1e3c32; border-color:#497a62; color:#baf0d3; }
.campaign-wizard .modal-foot { display:flex; align-items:center; gap:10px; flex-shrink:0; }
.campaign-wizard .modal-foot .row { gap:8px; }
.wizard-step[hidden], [hidden] { display:none !important; }
@keyframes screen-in { from { opacity:.35; transform:translateY(4px); } to { opacity:1; transform:none; } }
@media(min-width:1700px) { .content { padding-top:42px; } .command-heading h1 { font-size:36px; } }
@media(max-width:1250px) { .side { width:208px; padding:28px 15px 18px; } .main { margin-left:208px; } .content { padding:28px; } .topbar { padding:0 28px; } .telemetry { grid-template-columns:160px 1fr; gap:20px; padding:25px; } .delivery-dial { width:145px; height:145px; } .command-bottom { grid-template-columns:minmax(0,1.6fr) minmax(230px,1fr); } }
@media(max-width:1024px) { .command-heading { align-items:flex-start; } .command-heading h1 { font-size:28px; } .command-actions { flex-wrap:wrap; justify-content:flex-end; } .command-middle,.command-bottom { grid-template-columns:minmax(0,1fr); } .resource-card .card-body { display:grid; grid-template-columns:1fr 1fr; gap:0 28px; } .resource-card .resource-hero { grid-row:span 2; align-items:center; } .resource-caption { grid-column:1/-1; margin-top:5px; } .wizard-shell.modal-body { grid-template-columns:minmax(0,1fr) 270px; } .wizard-fields { padding:22px; } }
@media(max-width:760px) { .side { width:205px; } .main { margin-left:205px; } .topbar { padding:0 20px; } .content { padding:23px 20px; } .command-heading { flex-direction:column; gap:18px; } .command-actions { width:100%; justify-content:flex-start; } .wizard-shell.modal-body { display:block; overflow:auto; } .wizard-fields { overflow:visible; padding:21px; } .wizard-preview { border-left:0; border-top:1px solid #29424c; overflow:visible; padding:21px; } .wizard-preview .variant-preview:not([open]) { padding:9px 0; } .modal.campaign-wizard { height:95vh; max-height:95vh; } .wizard-nav { gap:6px; padding:12px 18px; } .wizard-nav button { font-size:10px; gap:6px; } .wizard-nav button b { width:21px; height:21px; } .wizard-foot-hint { display:none; } .campaign-wizard .modal-foot { justify-content:flex-end; padding:14px 18px; } }
@media(max-width:650px) { .side { width:230px; } .main { margin-left:0; } .topbar { height:61px; } .content { padding:24px 16px; } .page-title { flex-direction:column; align-items:stretch; gap:15px; } .page-title>.row { flex-wrap:wrap; } .page-title h1 { font-size:25px; } .metrics { gap:10px; } .metric { padding:17px; } .metric-number { font-size:30px; margin:14px 0 9px; } .command-heading h1 { font-size:28px; } .command-heading .eyebrow { font-size:8px; } .telemetry { grid-template-columns:125px 1fr; gap:18px; padding:21px 17px; } .delivery-dial { width:118px; height:118px; padding:7px; } .delivery-dial:before { inset:7px; } .delivery-dial:after { inset:15px; } .dial-value strong { font-size:26px; } .dial-value small { font-size:8px; } .telemetry-bars { gap:16px; } .telemetry-row .row { font-size:9px; } .overlay { padding:8px; } .modal-head { padding:18px; } .modal-body { padding:20px; } .modal-foot { padding:15px 18px; } .wizard-nav button span { font-size:9px; } .wizard-review { grid-template-columns:1fr 1fr; gap:8px; } .wizard-review>div { padding:13px; } .source-switch button { font-size:9px; padding:8px 10px; } .login-copy h1 { font-size:29px; } .login-visual { border-right:0; border-bottom:1px solid #2a4048; } }
@media(prefers-reduced-motion:reduce) { *,*:before,*:after { animation:none!important; transition:none!important; scroll-behavior:auto!important; } }

/* v0.8: a small, task-first navigation and readable operational data. */
.brand small { font-size: 10px; letter-spacing: 1px; }
.nav a { font-size: 13px; min-height: 46px; }
.navlabel { font-size: 11px; letter-spacing: .5px; }
.node-mini strong { font-size: 12px; }
.node-mini p { font-size: 11px; }
.workspace-summary { display:flex; align-items:center; gap:24px; color:#9db1bf; font-size:12px; margin:-7px 0 25px; flex-wrap:wrap; }
.workspace-summary strong { color:#deedf0; font-family:ui-monospace,monospace; font-weight:500; margin-left:5px; }
.workspace-summary .updated-at { margin-left:auto; font-size:11px; color:#91a6b5; }
.simple-metrics .metric { padding:23px; }
.simple-metrics .metric-top { font-size:13px; }
.simple-metrics .metric-number { font-size:42px; margin-top:22px; }
.simple-metrics .metric-bottom { font-size:11px; color:#8ca2b3; }
.plain-note { display:flex; gap:9px; align-items:center; font-size:12px; color:#9eb3bf; line-height:1.8; margin:-5px 0 30px; }
.section-heading { display:flex; align-items:center; justify-content:space-between; gap:14px; margin-bottom:17px; }
.section-heading h2 { font-size:18px; }
.section-heading span { font-size:12px; color:#91a7b8; }
.getting-started { margin-bottom:30px; }
.onboarding-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:16px; }
.onboarding-card { padding:24px; border:1px solid #2a404c; background:linear-gradient(135deg,#13242b,#111c25); border-radius:11px; position:relative; }
.step-number { width:32px; height:32px; border:1px solid #3a5b5a; color:#9ee0c1; background:#19372e; border-radius:8px; display:grid; place-items:center; font-family:ui-monospace,monospace; margin-bottom:20px; }
.onboarding-card h3 { font-size:16px; color:#e0ecee; margin-bottom:10px; }
.onboarding-card p { font-size:12px; color:#9bb1be; line-height:1.8; margin-bottom:24px; }
.onboarding-card.done { border-color:#417258; }
.delivery-number { color:#a4ebc6; }
.campaign-metrics { grid-template-columns:repeat(4,minmax(0,1fr)); }
.campaign-performance { margin-bottom: 25px; padding: 27px 29px 20px; border: 1px solid #324940; border-radius: 14px; background: radial-gradient(ellipse at 100% 0, #24433542, transparent 55%), #111e25; box-shadow: 0 12px 32px #0000001a; }
.performance-heading { display: flex; justify-content: space-between; align-items: flex-start; gap: 20px; margin-bottom: 25px; }
.performance-label { font-size: 11px; letter-spacing: 2px; color: #a4d8bd; }
.performance-heading h2 { margin: 9px 0 5px; color: #edf7f2; font-size: 24px; font-weight: 600; overflow-wrap: anywhere; }
.performance-heading p { color: #8ca79b; font-size: 12px; }
.performance-stamp { display: flex; flex-direction: column; align-items: flex-end; gap: 11px; flex-shrink: 0; }
.performance-stamp small { color: #91a69d; font-size: 11px; }
.performance-counts { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); padding: 19px 0; margin-bottom: 20px; border-top: 1px solid #2b3e39; border-bottom: 1px solid #2b3e39; }
.performance-counts>div { padding: 0 22px; border-right: 1px solid #2b3e39; }
.performance-counts>div:first-child { padding-left: 0; }
.performance-counts>div:last-child { border-right: 0; }
.performance-counts span { display: block; margin-bottom: 9px; color: #97afa4; font-size: 12px; }
.performance-counts strong { color: #e5f1ea; font-size: 29px; font-family: "SFMono-Regular", Consolas, monospace; font-weight: 500; }
.performance-rates { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 17px; }
.performance-rate { --rate-accent: #9be6b9; display: grid; grid-template-columns: 1fr auto; align-items: center; gap: 15px 20px; padding: 23px; background: linear-gradient(120deg,#18362a99,#12221c77); border: 1px solid #3b5a49; border-radius: 11px; }
.performance-rate.reading { --rate-accent: #8bd4e5; background: linear-gradient(120deg,#18313caa,#14212b66); border-color: #365361; }
.performance-rate h3 { color: #c7ded0; font-size: 14px; font-weight: 500; }
.performance-rate.reading h3 { color: #bdd9e0; }
.rate-value { margin: 13px 0 8px; color: var(--rate-accent); font-family: "SFMono-Regular", Consolas, monospace; font-size: clamp(30px,4vw,48px); line-height: 1.15; letter-spacing: -1.5px; }
.performance-rate p { color: #d1e0d6; font-family: "SFMono-Regular", Consolas, monospace; font-size: 12px; }
.performance-rate p span { margin-left: 7px; font-family: inherit; color: #8da99b; }
.performance-rate>small { grid-column: 1 / -1; border-top: 1px solid #37534580; padding-top: 13px; color: #98b2a5; font-size: 11px; }
.performance-rate.reading>small { border-color: #3f5b6580; color: #8caeb8; }
.rate-ring { width: 83px; height: 83px; display: grid; place-items: center; position: relative; border-radius: 50%; background: conic-gradient(var(--rate-accent) var(--rate),#65827633 0); }
.rate-ring:before { content: ''; position: absolute; inset: 7px; border-radius: 50%; background: #14261e; }
.performance-rate.reading .rate-ring:before { background: #172832; }
.rate-ring span { position: relative; display: grid; place-items: center; color: var(--rate-accent); }
.performance-foot { display: flex; justify-content: space-between; flex-wrap: wrap; gap: 7px; margin-top: 17px; color: #8ba196; font-size: 11px; line-height: 1.7; }
.modal.client-report-modal { width: 1160px; max-width: 100%; border-color: #34494e; }
.client-report-modal .modal-head { padding: 15px 24px; background: #101a22; flex-shrink: 0; }
.client-report-modal .modal-head h2 { color: #a7bbb9; font-size: 13px; }
.client-report-modal .modal-foot { padding: 14px 24px; flex-shrink: 0; }
.client-report-body { padding: 0; background: #0d191e; }
.client-report { padding: 32px 38px 22px; background: radial-gradient(ellipse at 100% 0,#1d3f334a,transparent 48%),#0e1a20; border-top: 2px solid #8bd9b1; }
.report-header { display: flex; justify-content: space-between; align-items: flex-start; gap: 25px; }
.report-brand { display: flex; align-items: center; gap: 9px; color: #9dbbb1; font-size: 11px; letter-spacing: 1.5px; }
.report-brand svg { color: #a3e3c1; }
.report-brand b { margin: 0 5px; font-weight: 400; color: #57756b; }
.report-header h2 { margin: 15px 0 7px; color: #eef5f2; font-size: 29px; line-height: 1.25; letter-spacing: -.6px; overflow-wrap: anywhere; }
.report-client { color: #a0b6b0; font-size: 13px; overflow-wrap: anywhere; }
.report-meta { display: flex; align-items: flex-end; flex-direction: column; gap: 13px; padding-top: 3px; color: #8ea79f; font-size: 11px; flex-shrink: 0; }
.report-meta time { display: block; margin-top: 6px; color: #c5d5ce; font-family: "SFMono-Regular",Consolas,monospace; font-size: 12px; }
.report-metrics { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); margin: 25px 0 26px; padding: 18px 0; border-top: 1px solid #2b403d; border-bottom: 1px solid #2b403d; }
.report-metrics>div { padding: 0 25px; border-right: 1px solid #2b403d; }
.report-metrics>div:first-child { padding-left: 0; }
.report-metrics>div:last-child { border-right: 0; }
.report-metrics span { display: block; margin-bottom: 9px; color: #9fb4af; font-size: 11px; }
.report-metrics strong { color: #e6f0eb; font-family: "SFMono-Regular",Consolas,monospace; font-size: 29px; font-weight: 500; line-height: 1; }
.report-metrics small { color: #718c83; margin-left: 8px; font-size: 10px; }
.report-layout { display: grid; grid-template-columns: minmax(0,1.1fr) minmax(0,1fr); gap: 26px; align-items: stretch; }
.report-content { display: flex; flex-direction: column; }
.report-section-title { display: flex; justify-content: space-between; align-items: center; gap: 12px; margin-bottom: 13px; }
.report-section-title h3 { display: flex; align-items: center; gap: 8px; color: #d6e4de; font-size: 13px; font-weight: 550; }
.report-section-title h3 svg { color: #8bb7a4; }
.report-section-title>span { color: #859e95; font-size: 10px; }
.report-versions { display: grid; gap: 13px; flex: 1; }
.report-message { padding: 23px; border: 1px solid #30493f; border-radius: 12px; background: linear-gradient(125deg,#193129,#13241f); }
.report-message:only-child { min-height: 278px; }
.report-message>header { display: flex; align-items: center; gap: 10px; margin-bottom: 17px; }
.report-version-number { color: #9ac9ae; font-size: 10px; font-family: "SFMono-Regular",Consolas,monospace; border: 1px solid #426650; border-radius: 5px; padding: 5px 6px; }
.report-message h4 { color: #cce0d3; font-size: 12px; font-weight: 550; overflow-wrap: anywhere; }
.report-message-text { color: #e0ebe4; white-space: pre-wrap; overflow-wrap: anywhere; font-size: 14px; line-height: 1.95; }
.report-message>footer { display: flex; flex-wrap: wrap; gap: 9px 20px; margin-top: 21px; padding-top: 14px; border-top: 1px solid #345143; color: #91b49f; font-size: 10px; }
.report-message>footer b { color: #d9e9df; font-weight: 500; margin-left: 5px; }
.report-results .performance-rates { grid-template-columns: minmax(0,1fr); gap: 13px; }
.report-results .performance-rate { padding: 17px 21px 12px; gap: 11px 15px; background: #13271f; border-color: #355044; border-radius: 12px; }
.report-results .performance-rate.reading { background: #14252d; border-color: #334953; }
.report-results .performance-rate h3 { font-size: 12px; }
.report-results .rate-value { margin: 7px 0; font-size: 34px; letter-spacing: -1.2px; }
.report-results .rate-ring { width: 66px; height: 66px; }
.report-results .rate-ring:before { inset: 6px; }
.report-results .performance-rate>small { padding-top: 10px; font-size: 10px; }
.report-results .performance-rate p { font-size: 11px; }
.report-footer { display: flex; justify-content: space-between; flex-wrap: wrap; gap: 8px 20px; margin-top: 22px; padding-top: 15px; border-top: 1px solid #273d36; color: #819a8f; font-size: 10px; line-height: 1.8; }
.report-footer strong { color: #c2d7ca; font-weight: 500; }
.receipt-timing { display: grid; gap: 9px; font-size: 11px; white-space: nowrap; color: #9badb8; font-variant-numeric: tabular-nums; }
.receipt-elapsed { display: flex; align-items: center; gap: 6px; color: #84a79b; }
.receipt-elapsed strong { color: #b8d6c8; font-size: 11px; font-weight: 500; }
.receipt-elapsed.is-pending,.receipt-elapsed.is-pending strong { color: #b8a578; }
@media(max-width:800px) {
  .client-report { padding: 25px 22px 20px; }
  .report-layout { grid-template-columns: minmax(0,1fr); gap: 23px; }
  .report-results .performance-rates { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .report-results .performance-rate { padding: 17px 15px 12px; gap: 10px; }
  .report-results .rate-value { font-size: 29px; }
  .report-results .rate-ring { width: 48px; height: 48px; }
  .report-message:only-child { min-height: 160px; }
}
@media(max-width:500px) {
  .client-report { padding: 22px 17px 18px; }
  .report-header { flex-direction: column; gap: 16px; }
  .report-header h2 { font-size: 25px; }
  .report-meta { align-items: flex-start; flex-direction: row; align-items: center; width: 100%; justify-content: space-between; }
  .report-meta time { font-size: 10px; }
  .report-metrics { margin: 21px 0; }
  .report-metrics>div { padding: 0 11px; }
  .report-metrics strong { font-size: 23px; }
  .report-metrics small { display: none; }
  .report-results .performance-rates { grid-template-columns: minmax(0,1fr); }
  .report-results .rate-value { font-size: 34px; }
  .report-results .rate-ring { width: 66px; height: 66px; }
  .report-message { padding: 20px 17px; }
}
@media(max-width:650px) {
  .campaign-performance { padding: 20px 17px 16px; }
  .performance-heading { gap: 12px; }
  .performance-heading h2 { font-size: 21px; }
  .performance-stamp small { max-width: 105px; text-align: right; line-height: 1.7; }
  .performance-counts>div { padding: 0 11px; }
  .performance-counts strong { font-size: 22px; }
  .performance-rates { grid-template-columns: 1fr; }
  .performance-rate { padding: 20px; }
}
@media(max-width:1024px) { .campaign-metrics { grid-template-columns:repeat(2,minmax(0,1fr)); } }
.task-status-filter { display:flex; flex-wrap:wrap; gap:6px; }
.tabs { overflow-x:auto; flex-wrap:nowrap; }
.tab { flex-shrink:0; }
.task-status-filter .btn { background:transparent; border-color:transparent; }
.task-status-filter .selected-filter { background:#214435; border-color:#42634f; color:#b2edce; }
.filter-menu { position:relative; font-size:12px; color:#afc4d1; }
.filter-menu>summary { cursor:pointer; padding:8px 0; }
.filter-popover { position:absolute; right:0; top:35px; width:245px; padding:20px; border:1px solid #3a5465; border-radius:9px; background:#152530; z-index:40; box-shadow:0 20px 40px #0009; }
/* Settings groups use compact rows with a shared footer for each form. */
.settings-page { max-width:1280px; margin:0 auto; }
.settings-defaults-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:20px; }
.settings-page .settings-panel { display:flex; flex-direction:column; overflow:hidden; }
.settings-panel-head { display:flex; align-items:center; gap:12px; padding:22px 24px; border-bottom:1px solid #7185b426; }
.settings-panel-head>span { display:grid; place-items:center; width:36px; height:36px; border-radius:10px; background:#82baff12; color:#99bff0; }
.settings-panel-head h2 { margin:0; color:#dce8fa; font-size:16px; font-weight:650; }
.settings-panel-head p { margin:5px 0 0; color:#8fa2bf; font-size:12px; line-height:1.6; }
.settings-panel-form { display:flex; flex-direction:column; flex:1; min-width:0; }
.settings-panel-body { flex:1; padding:0 24px; }
.settings-row { display:grid; grid-template-columns:minmax(0,1fr) auto; align-items:center; gap:22px; min-height:112px; padding:22px 0; border-bottom:1px solid #7185b41f; }
.settings-row:last-child { border-bottom:0; }
.settings-row-copy { min-width:0; }
.settings-row-copy strong { display:block; color:#d2e0f3; font-size:14px; font-weight:600; line-height:1.6; }
.settings-row-copy small { display:block; margin-top:6px; color:#8fa2bf; font-size:12px; line-height:1.8; }
.settings-toggle-row { cursor:pointer; }
.settings-toggle-row input { appearance:none; position:relative; width:40px; height:24px; flex-shrink:0; margin:0; padding:0; border:1px solid #526783; border-radius:99px; background:#26364c; cursor:pointer; }
.settings-toggle-row input::after { content:""; position:absolute; width:16px; height:16px; top:3px; left:3px; border-radius:50%; background:#a5b8d0; transition:transform .18s,background .18s; }
.settings-toggle-row input:checked { background:#5089d3; border-color:#7caff5; }
.settings-toggle-row input:checked::after { transform:translateX(16px); background:#f2f7ff; }
.settings-toggle-row input:focus-visible { outline:2px solid #a4c9ff; outline-offset:4px; }
.settings-number-field { width:136px; }
.settings-number-control { display:flex; align-items:center; height:42px; border:1px solid #405675; border-radius:8px; background:#0d182b; overflow:hidden; }
.settings-number-control:focus-within { border-color:#8fbaff; box-shadow:0 0 0 3px #82baff15; }
.settings-number-control input { width:100%; min-width:0; height:100%; margin:0; padding:9px 10px 9px 13px; border:0; border-radius:0; outline:0; background:transparent; box-shadow:none; color:#e1ecfc; font-size:14px; font-variant-numeric:tabular-nums; }
.settings-number-control span { flex-shrink:0; padding-right:12px; color:#8fa2bf; font-size:12px; }
.settings-number-field>small { display:block; margin-top:7px; color:#7f94b2; text-align:right; font-size:11px; }
.settings-panel-note { margin:0; padding:0 24px 18px; color:#8297b6; font-size:11px; line-height:1.8; }
.settings-panel-footer { display:flex; justify-content:flex-end; margin-top:auto; padding:16px 24px; border-top:1px solid #7185b426; background:#0c14201c; }
.settings-panel .form-error.show { margin:16px 24px 0; }
.settings-link-section { margin-top:30px; }
.settings-section-heading { margin-bottom:14px; }
.settings-section-heading h2 { margin:0; color:#d8e5f8; font-size:16px; font-weight:650; }
.settings-section-heading p { margin:6px 0 0; color:#8499b6; font-size:12px; line-height:1.6; }
.settings-shortcuts-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:16px; }
.settings-system-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
.settings-page .settings-shortcut { display:grid; grid-template-columns:40px minmax(0,1fr) 16px; align-items:center; gap:14px; min-height:108px; margin:0; padding:20px; text-align:left; font:inherit; text-decoration:none; cursor:pointer; }
.settings-page .settings-shortcut:hover { border-color:#789aca77; background:#19263b; }
.settings-shortcut-icon { display:grid; place-items:center; width:40px; height:40px; border:1px solid #8aaff72b; border-radius:11px; color:#9cc2f0; background:#26456e48; }
.settings-shortcut-copy strong { display:block; color:#dce8fa; font-size:14px; font-weight:600; }
.settings-shortcut-copy small { display:block; margin-top:7px; color:#8fa2bf; font-size:12px; line-height:1.6; }
.settings-shortcut>svg { color:#7e95b6; }
@media(max-width:1050px) {
  .settings-defaults-grid { grid-template-columns:1fr; }
  .settings-shortcuts-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media(max-width:600px) {
  .settings-defaults-grid,.settings-shortcuts-grid { grid-template-columns:1fr; gap:14px; }
  .settings-panel-head { padding:18px; }
  .settings-panel-body { padding:0 18px; }
  .settings-row { gap:14px; min-height:100px; padding:20px 0; }
  .settings-row-copy strong { font-size:13px; }
  .settings-row-copy small { font-size:11px; }
  .settings-number-field { width:112px; }
  .settings-panel-note { padding:0 18px 16px; }
  .settings-panel-footer { padding:14px 18px; }
  .settings-panel-footer .btn { width:100%; }
  .settings-page .settings-shortcut { min-height:92px; padding:18px; }
}
.system-facts { display:grid; grid-template-columns:repeat(3,1fr); padding:26px; gap:25px; }
.system-facts small { font-size:12px; }
.system-facts strong { display:block; font-family:ui-monospace,monospace; font-weight:500; font-size:32px; color:#e0f0ed; margin-top:16px; }
.advanced-settings { border-top:1px solid #2b4250; padding-top:15px; margin:18px 0; color:#9bb5c5; font-size:12px; }
.advanced-settings>summary { cursor:pointer; margin-bottom:16px; }
.advanced-settings .field { margin-top:18px; }
.account-actions { justify-content:space-between; margin-top:13px; gap:12px; flex-wrap:wrap; }
.account-actions .link { font-size:11px; }
.final-confirm { margin-top:20px; padding:15px; border-radius:8px; border:1px solid #3d5d4a; background:#183125; font-size:12px; }
.preview-empty { padding:36px 5px; color:#91b0b8; text-align:center; line-height:1.9; }
.preview-empty>svg { color:#91d5b2; margin-bottom:15px; }
.preview-empty p { font-size:12px; margin-bottom:18px; }
.recipient-entry { margin:20px 0; }
.customer-row>.field { grid-column:1 / -1; }
.import-counts { grid-template-columns:repeat(3,minmax(0,1fr)); }
@media(max-width:650px) { .import-counts { grid-template-columns:repeat(3,minmax(0,1fr)); } .import-counts>div { padding:10px 8px; } .import-counts strong { font-size:20px; } }
.recipient-input-tabs { display:flex; gap:6px; margin-bottom:14px; padding:4px; border:1px solid #2b4350; border-radius:8px; background:#0b1821; }
.recipient-input-tabs button { display:flex; align-items:center; justify-content:center; gap:8px; flex:1; padding:11px; border:1px solid transparent; border-radius:5px; color:#9cb4c2; background:transparent; font-size:12px; }
.recipient-input-tabs button.active { background:#214736; color:#b6f1d1; border-color:#39634b; }
.recipient-entry .dropzone { margin-bottom:0; }
#recipient-paste-panel { background:#0d1c26; border:1px solid #2b4350; border-radius:9px; padding:18px; }
#recipient-paste-panel textarea { min-height:180px; font-family:ui-monospace,monospace; }
.wizard-nav button { font-size:12px; }
.wizard-preview .eyebrow { font-size:12px; letter-spacing:.5px; }
.wizard-fields .field label { font-size:12px; }
.wizard-fields .field small { font-size:11px; }
.inline-additions { gap:12px; }
.inline-additions input { max-width:210px; }
.inline-additions details[open] { padding:12px; background:#0e2028; border:1px solid #29434b; border-radius:7px; }
.inline-additions .row { flex-wrap:wrap; }
@media(max-width:1100px) { .onboarding-grid { grid-template-columns:repeat(3,minmax(0,1fr)); gap:11px; } .onboarding-card { padding:20px; } }
@media(max-width:760px) { .onboarding-grid { grid-template-columns:1fr; } .onboarding-card p { margin-bottom:16px; } .workspace-summary { gap:13px; } .workspace-summary .updated-at { display:none; } .section-heading { align-items:flex-start; flex-direction:column; gap:7px; } }
@media(max-width:650px) { .simple-metrics .metric { padding:18px; } .simple-metrics .metric-number { font-size:34px; } .simple-metrics .metric-top { font-size:12px; } .plain-note { font-size:11px; align-items:flex-start; } .wizard-nav button { align-items:flex-start; } .wizard-nav button span { line-height:1.5; } .system-facts { gap:12px; padding:20px; } .system-facts small { font-size:10px; } .system-facts strong { font-size:25px; } .filter-menu { align-self:flex-start; } .filter-popover { left:0; right:auto; } }

/* Direct navigation to a campaign report. */
.task-title-link { color: #adebca; text-decoration: underline; text-decoration-color: #527764; text-underline-offset: 5px; }
.task-title-link:hover { text-decoration-color: currentColor; }
.task-detail-cell { text-align: right; }
.task-detail-link { min-height: 38px; padding: 9px 14px; gap: 8px; white-space: nowrap; }

.login-error { max-width: 28rem; white-space: normal; overflow-wrap: anywhere; line-height: 1.6; margin-top: 7px; }

/* Shared session identities are presented as one credential. */
.credential-summary { flex-wrap: wrap; }
.credential-merged { display: flex; align-items: center; gap: 4px; color: var(--green, #a5ebce); }
.credential-addresses { margin: 12px 0; padding: 0 16px; border: 1px solid var(--line); border-radius: 8px; }
.credential-addresses strong { overflow-wrap: anywhere; text-align: right; }
.credential-addresses .pill { margin-left: 6px; }

.ownership-workspace { display: grid; grid-template-columns: minmax(300px, 340px) minmax(0, 1fr); gap: 20px; align-items: stretch; }
.ownership-workspace > .card { display: flex; flex-direction: column; min-height: 380px; overflow: hidden; }
.ownership-workspace .card-head { min-height: 96px; padding: 20px 22px; gap: 14px; align-items: center; flex-wrap: nowrap; }
.ownership-workspace .card-head h2 { display: flex; align-items: center; gap: 10px; font-size: 16px; }
.ownership-workspace .card-head .btn { flex-shrink: 0; white-space: nowrap; min-height: 38px; }
.ownership-total { display: inline-flex; align-items: center; justify-content: center; min-width: 26px; padding: 3px 7px; border: 1px solid var(--line); border-radius: 7px; font-size: 11px; line-height: 1.2; font-weight: 500; color: var(--muted); }
.ownership-people-list { display: grid; align-content: start; gap: 6px; padding: 14px; max-height: 520px; overflow-y: auto; flex: 1; }
.ownership-people-list:has(.ownership-list-empty) { display: flex; align-items: center; justify-content: center; }
.ownership-person { width: 100%; display: flex; align-items: center; gap: 10px; padding: 12px 10px; border: 1px solid transparent; border-radius: 8px; background: transparent; color: var(--muted); text-align: left; cursor: pointer; }
.ownership-person:hover { background: #17272c; color: var(--text); }
.ownership-person.selected { background: #17352b; border-color: #38644f; color: #c1f1da; }
.ownership-person:focus-visible { outline: 2px solid #8cdbb8; outline-offset: 2px; }
.ownership-person-avatar { width: 32px; height: 32px; border-radius: 9px; display: grid; place-items: center; background: #21392f; color: #a5e2c5; flex-shrink: 0; }
.ownership-person-name { flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 13px; }
.ownership-count { min-width: 24px; padding: 3px 6px; text-align: center; border-radius: 6px; background: #22332f; font-size: 11px; }
.ownership-person.unassigned { margin-top: 8px; border-top-color: var(--line); border-radius: 0 0 8px 8px; }
.ownership-list-empty { display: flex; flex-direction: column; align-items: center; gap: 12px; padding: 32px 12px; text-align: center; color: var(--muted); font-size: 12px; line-height: 1.7; }
.ownership-list-empty strong { color: var(--text); font-size: 14px; font-weight: 500; }
.ownership-list-empty p { margin: 0; max-width: 220px; }
.ownership-empty-avatar { display: grid; place-items: center; width: 44px; height: 44px; border: 1px solid var(--line); border-radius: 12px; }
.ownership-subtitle { margin-top: 8px; color: var(--muted); font-size: 12px; line-height: 1.5; overflow-wrap: anywhere; }
#ownership-client-list { display: flex; flex-direction: column; flex: 1; min-width: 0; }
.ownership-clients .empty { flex: 1; display: flex; flex-direction: column; align-items: center; justify-content: center; padding: 40px 24px; }
.ownership-clients .empty p { max-width: 330px; line-height: 1.8; }
.ownership-client-table th:last-child, .ownership-client-table td:last-child { text-align: right; }
.ownership-row-actions { display: flex; justify-content: flex-end; flex-wrap: wrap; gap: 8px; }
.ownership-context { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 14px 16px; background: #152b26; border: 1px solid #315145; border-radius: 8px; margin-bottom: 18px; font-size: 13px; }
.ownership-context span { color: var(--muted); }
.ownership-context strong { overflow-wrap: anywhere; text-align: right; }
.ownership-entry-form .modal-body { padding: 26px; }
.ownership-entry-form .field { margin-bottom: 0; }
.ownership-entry-form .summary-line { margin: 12px 0 0; line-height: 1.7; }
.ownership-entry-form .ownership-context { align-items: flex-start; justify-content: flex-start; gap: 18px; }
.ownership-entry-form .ownership-context span { flex-shrink: 0; }
.ownership-entry-form .ownership-context strong { min-width: 0; text-align: left; line-height: 1.5; }
.plan-owner-actions { display: flex; flex-wrap: wrap; gap: 10px; }
.plan-addition-panel { margin: 4px 0 20px; padding: 16px; background: #142923; border: 1px solid #34594a; border-radius: 8px; }
.plan-addition-panel label { font-size: 12px; font-weight: 600; }
.plan-addition-panel p { margin: 7px 0 12px; color: #9bbcae; font-size: 11px; }
.plan-addition-panel input { min-width: 0; flex: 1; padding: 10px 12px; background: #0c1720; border: 1px solid #34594a; border-radius: 7px; color: var(--text); }

.sending-status .card-head { gap: 16px; flex-wrap: wrap; }
.sending-status { scroll-margin-top: 95px; }
.credential-scope { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 14px; padding: 17px 22px; background: #1a342a; border-bottom: 1px solid #315141; }
.credential-scope strong { display: block; color: #baf0d1; font-size: 13px; }
.credential-scope span { display: block; color: #a7c5b7; font-size: 12px; margin-top: 6px; overflow-wrap: anywhere; }
.credential-sender-link { color: #acf0cf; text-align: left; text-underline-offset: 4px; }
.credential-sender-link:hover { text-decoration: underline; }
.credential-detail-action { text-align: right; white-space: nowrap; }
.credential-selected { background: #1a342a80; }
.credential-selected td:first-child { box-shadow: inset 3px 0 #90dbb5; }
.progress-card { display: flex; flex-direction: column; justify-content: center; min-height: 190px; }
.progress-card-values { display: flex; align-items: baseline; justify-content: space-between; gap: 18px; margin: 27px 0 19px; }
.progress-card-values>div { display: flex; align-items: baseline; gap: 12px; }
.progress-card-values strong { font-family: "SFMono-Regular", Consolas, monospace; font-size: 36px; font-weight: 500; color: #e2f3e9; }
.progress-card-values span { font-size: 12px; color: #91a99d; }
.progress-card-values b { font-family: "SFMono-Regular", Consolas, monospace; font-size: 20px; color: #abe9c7; font-weight: 500; }
.progress-card .progress { height: 7px; }
.reading-filter-bar { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 12px; padding: 14px 22px; border-bottom: 1px solid var(--line); background: #101d24; }
.reading-filter-bar>div { display: flex; flex-wrap: wrap; gap: 8px; }
.reading-filter-bar>small { color: #92a8b1; font-size: 11px; }
.reading-filter { display: inline-flex; align-items: center; gap: 8px; padding: 8px 12px; border: 1px solid transparent; border-radius: 7px; background: transparent; color: #9bb0bb; font: inherit; font-size: 12px; cursor: pointer; }
.reading-filter span { font-family: var(--font-mono, monospace); }
.reading-filter:hover, .reading-filter.active { border-color: #46606c; background: #23333c; color: #dce8ee; }
.reading-filter.confirmed.active { border-color: #4a8068; background: #1b3b2f; color: #b4f1d0; }
.reading-filter:focus-visible { outline: 2px solid #a6ebc6; outline-offset: 3px; }
.message-status-table th { white-space: nowrap; }
.message-status-table .reading-cell { min-width: 174px; }
.reading-status { display: inline-flex; align-items: center; gap: 10px; min-width: 130px; min-height: 56px; padding: 10px 12px; border-radius: 9px; border: 1px solid #34444e; background: linear-gradient(125deg,#1a2730,#17222a); }
.reading-status-mark { width: 29px; height: 29px; display: grid; place-items: center; flex-shrink: 0; border-radius: 8px; background: #283841; color: #adbec5; font: 22px/1 system-ui,sans-serif; }
.reading-status strong { display: block; font-size: 12px; font-weight: 600; color: #b1c1c9; }
.reading-status small { display: block; margin-top: 4px; font-size: 10px; color: #91a6b1; }
.reading-status.is-read { background: linear-gradient(125deg,#1c3d30,#172e25); border-color: #3d6e55; }
.reading-status.is-read .reading-status-mark { background: #2d5743; color: #b6f5d1; }
.reading-status.is-read strong { color: #b9f5d4; }
.reading-status.is-read small { color: #9bc6b0; }
.send-status-filters { display: flex; gap: 8px; flex-wrap: wrap; padding: 16px 22px; border-bottom: 1px solid var(--line); }
.send-status-filter { display: inline-flex; align-items: center; gap: 9px; padding: 9px 13px; border: 1px solid #2c3d49; border-radius: 7px; background: #111e27; color: #a9bdc9; font: inherit; font-size: 12px; cursor: pointer; }
.send-status-filter span { min-width: 21px; font-family: var(--font-mono, monospace); text-align: center; color: #dce9ef; }
.send-status-filter:hover { border-color: #668978; color: #dce9ef; }
.send-status-filter.active { background: #234637; border-color: #618d74; color: #bcf4d9; }
.send-status-filter.active span { color: #bcf4d9; }
.send-status-filter:focus-visible { outline: 2px solid #a6ebc6; outline-offset: 3px; }
.send-status-reason { max-width: 250px; overflow-wrap: anywhere; }

@media (max-width: 760px) {
  .ownership-workspace { grid-template-columns: minmax(0, 1fr); }
  .ownership-workspace > .card { min-height: 0; }
  .ownership-workspace .card-head { min-height: 86px; padding: 18px; gap: 10px; }
  .ownership-workspace .card-head .btn { padding: 8px 10px; }
  .ownership-people-list { max-height: 220px; }
  .ownership-clients .empty { min-height: 230px; padding: 32px 20px; }
  .ownership-row-actions { gap: 5px; }
  .plan-addition-panel .row { flex-wrap: wrap; }
  .plan-addition-panel input { flex-basis: 100%; }
}

.plan-monitor-panel { margin-top: 24px; overflow: hidden; background: linear-gradient(130deg,#172630,#121e25); }
.plan-monitor-panel .card-head p { margin: 8px 0 0; color: #94aebc; font-size: 12px; }
.plan-monitor-status { padding: 18px 24px; border-bottom: 1px solid #30434e; background: #192c35; }
.plan-monitor-status strong { display: block; color: #c6e0ed; font-size: 13px; }
.plan-monitor-status span { display: block; margin-top: 8px; color: #9db4c0; line-height: 1.7; font-size: 11px; }
.plan-monitor-status.attention { background: #342e23; }
.plan-monitor-status.attention strong { color: #e7cd97; }
.monitor-facts { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 20px; padding: 22px 24px; }
.monitor-facts small { display: block; color: #8ea7b5; font-size: 10px; margin-bottom: 10px; }
.monitor-facts strong { color: #c9dce5; font-size: 13px; font-weight: 500; }
.monitor-settings,.monitor-events { padding: 18px 24px; border-top: 1px solid #2e414c; }
.monitor-settings summary,.monitor-events summary { color: #b9d7e5; cursor: pointer; font-size: 12px; }
.monitor-enable { display: flex; align-items: center; gap: 10px; margin: 22px 0; font-size: 13px; color: #d2e7ef; }
.monitor-enable input,.monitor-source input { accent-color: #99ddbb; }
.monitor-settings h3 { font-size: 13px; margin-bottom: 10px; }
.monitor-settings .muted { font-size: 11px; line-height: 1.8; }
.monitor-source-list { display: grid; gap: 10px; margin: 16px 0 22px; max-height: 320px; overflow: auto; }
.monitor-source { display: flex; align-items: center; gap: 12px; padding: 14px; border: 1px solid #354956; border-radius: 9px; background: #13232c; }
.monitor-source:has(input:checked) { border-color: #668f92; background: #1b323b; }
.monitor-source>span { flex: 1; min-width: 0; }
.monitor-source strong { display: block; font-size: 12px; overflow-wrap: anywhere; color: #c8dce7; }
.monitor-source small { display: block; font-size: 10px; color: #94afbc; margin-top: 7px; overflow-wrap: anywhere; }
.monitor-source a { flex-shrink: 0; font-size: 11px; }
.monitor-empty { margin: 0; color: #97b0bd; padding: 16px; border: 1px dashed #3b5260; font-size: 12px; line-height: 1.8; border-radius: 8px; }
.monitor-intervals { gap: 20px; }
.monitor-help { font-size: 11px; color: #8faab7; line-height: 1.9; margin: 10px 0 20px; }
.monitor-capture-note { display: flex; align-items: center; gap: 8px; padding: 14px 24px; color: #afd1df; background: #1c3541; font-size: 12px; }
.monitor-events>div { display: flex; gap: 22px; padding: 13px 0; border-bottom: 1px solid #2d414b; font-size: 11px; color: #abc0cc; line-height: 1.8; }
.monitor-events time { flex-shrink: 0; color: #829da9; }
@media (max-width: 800px) {
  .monitor-facts { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .monitor-source { align-items: flex-start; flex-wrap: wrap; }
  .monitor-events>div { flex-direction: column; gap: 4px; }
}

.receiver-panel { margin-top: 24px; overflow: hidden; background: linear-gradient(130deg, #16232c, #121d24 65%); }
.receiver-panel-head { padding: 25px 26px 20px; display: flex; align-items: center; justify-content: space-between; gap: 24px; }
.receiver-eyebrow { color: #8ba9ba; font-size: 10px; letter-spacing: .15em; margin-bottom: 9px; }
.receiver-panel-head h2 { margin: 0; font-size: 18px; letter-spacing: .03em; }
.receiver-panel-head p { margin: 9px 0 0; color: #98abb5; font-size: 12px; line-height: 1.8; }
.receiver-overview { display: flex; flex-wrap: wrap; gap: 24px; padding: 0 26px 22px; color: #9bb6c3; font-size: 12px; border-bottom: 1px solid var(--line); }
.receiver-overview>span { display: flex; align-items: center; gap: 7px; }
.receiver-overview b { color: #d4e4eb; font-weight: 500; }
.receiver-instructions { padding: 18px 26px 0; color: #869fae; font-size: 11px; line-height: 1.8; }
.receiver-sample-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; padding: 20px 26px 24px; }
.receiver-sample-card { border: 1px solid #30434e; border-radius: 12px; padding: 20px; background: linear-gradient(150deg, #172630, #131e26); min-width: 0; }
.receiver-card-head { display: flex; gap: 14px; align-items: flex-start; justify-content: space-between; margin-bottom: 20px; }
.receiver-card-head>div { min-width: 0; }
.receiver-card-head>div>span { display: block; color: #98afba; font-size: 11px; margin-bottom: 8px; }
.receiver-card-head strong { display: block; font-size: 16px; font-weight: 500; color: #e2edf2; overflow-wrap: anywhere; }
.receiver-card-head .pill { flex-shrink: 0; font-size: 10px; }
.receiver-status { display: flex; align-items: center; gap: 12px; padding: 14px; border: 1px solid #334550; border-radius: 9px; background: #192832; color: #a5bac6; }
.receiver-status-icon { display: grid; place-items: center; width: 33px; height: 33px; flex-shrink: 0; border-radius: 50%; background: #29404e; }
.receiver-status strong { display: block; font-size: 13px; font-weight: 500; }
.receiver-status small { display: block; font-size: 10px; margin-top: 6px; opacity: .8; }
.receiver-status.green { color: #b0e5c6; border-color: #3f654f; background: #1d352b; }
.receiver-status.green .receiver-status-icon { background: #315642; }
.receiver-status.blue { color: #b1d3e9; border-color: #3b586d; background: #1c2e3d; }
.receiver-status.blue .receiver-status-icon { background: #2f4a60; }
.receiver-status.red { color: #efbdb9; border-color: #704447; background: #3a262c; }
.receiver-status.red .receiver-status-icon { background: #603b42; }
.receiver-status.amber { color: #ead3a1; border-color: #66583c; background: #342e22; }
.receiver-status.amber .receiver-status-icon { background: #51472f; }
.receiver-card-meta { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; margin: 19px 0; }
.receiver-card-meta span { display: block; color: #829aa8; font-size: 10px; margin-bottom: 7px; }
.receiver-card-meta strong { display: block; color: #bed0da; font-size: 11px; font-weight: 400; overflow-wrap: anywhere; }
.receiver-card-actions { display: flex; flex-wrap: wrap; gap: 9px; border-top: 1px solid #2c3e4a; padding-top: 16px; }
.receiver-card-actions .btn { font-size: 11px; }
.receiver-scope { padding: 0 26px 22px; color: #8199a7; font-size: 10px; line-height: 1.7; }
.receiver-capture-notice { padding: 14px 26px; background: #1b303c; border-bottom: 1px solid #324b5c; color: #bad6e6; font-size: 12px; }
.receiver-capture-notice>span { display: flex; align-items: center; gap: 8px; }
.receiver-capture-notice>small { display: block; margin-top: 8px; color: #8ca6b5; }
.receiver-capture-notice.error { color: #e7b3b3; background: #35272d; border-color: #68444b; }
.receiver-progress { height: 3px; overflow: hidden; margin-top: 12px; background: #293e4b; border-radius: 3px; }
.receiver-progress i { display: block; height: 100%; background: #8dbfd7; transition: width .3s; }
.receiver-confirm-phone { color: #aac0cb; font-size: 13px; line-height: 1.8; }
.receiver-confirm-phone strong { display: block; color: #d6e6ef; }
.receiver-confirm-options { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; margin: 22px 0; }
.receiver-confirm-options label { display: flex; align-items: center; gap: 10px; padding: 16px; border: 1px solid #354955; border-radius: 9px; cursor: pointer; background: #15242d; font-size: 13px; }
.receiver-confirm-options label:has(input:checked) { border-color: #74acbd; background: #203845; color: #c8e4f1; }
.receiver-confirm-options input { margin: 0; accent-color: #9ed9d0; }
.receiver-confirm-hint { color: #91a7b1; font-size: 11px; }
.receiver-history article { padding: 16px 0; border-bottom: 1px solid #2e414c; }
.receiver-history article:last-child { border-bottom: 0; }
.receiver-history article>div { display: flex; align-items: center; justify-content: space-between; gap: 16px; }
.receiver-history time, .receiver-history p { color: #98b0bd; font-size: 11px; }
.receiver-history details { color: #91afbf; font-size: 11px; margin-top: 12px; }
.receiver-history summary { cursor: pointer; }
.receiver-history pre { max-height: 300px; overflow: auto; white-space: pre-wrap; overflow-wrap: anywhere; padding: 15px; background: #0e1921; border-radius: 8px; color: #9db9c8; }
@media (max-width: 800px) {
  .receiver-panel-head { align-items: flex-start; flex-direction: column; padding: 22px 18px 18px; }
  .receiver-overview { padding-left: 18px; padding-right: 18px; gap: 16px; }
  .receiver-sample-grid { grid-template-columns: minmax(0, 1fr); padding: 18px; }
  .receiver-instructions, .receiver-scope, .receiver-capture-notice { padding-left: 18px; padding-right: 18px; }
  .receiver-history article>div { align-items: flex-start; flex-direction: column; }
}

.test-send-workspace { display: grid; grid-template-columns: minmax(0, 1.25fr) minmax(280px, .75fr); gap: 22px; align-items: start; }
.test-send-form .sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; border: 0; }
.test-send-form { overflow: hidden; }
.test-send-form>.form-error.show { margin: 22px 24px 0; }
.test-send-section { padding: 24px; border-bottom: 1px solid var(--line); }
.test-send-heading { display: flex; align-items: flex-start; gap: 13px; margin-bottom: 20px; }
.test-send-heading>span { display: grid; place-items: center; flex-shrink: 0; width: 32px; height: 32px; border: 1px solid #37584c; border-radius: 10px; background: #1b352c; color: #b0e5cb; font-family: monospace; font-size: 12px; }
.test-send-heading h2 { margin: 1px 0 6px; font-size: 15px; }
.test-send-heading p { margin: 0; color: var(--muted); font-size: 12px; line-height: 1.6; }
.test-recipient-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
.test-recipient { display: flex; align-items: center; gap: 10px; min-width: 0; padding: 15px 13px; border: 1px solid #31414b; background: #101b23; border-radius: 10px; cursor: pointer; transition: border-color .15s, background .15s; }
.test-recipient.selected { border-color: #47735d; background: #1a3027; }
.test-recipient>input { width: 15px; height: 15px; margin: 0; accent-color: #a3ecc9; flex-shrink: 0; }
.test-recipient>span { display: flex; flex: 1; min-width: 0; flex-direction: column; gap: 7px; }
.test-recipient strong { font-size: 12px; color: #d7e7df; }
.test-recipient .mono { font-size: 12px; color: #acc5ba; overflow-wrap: anywhere; }
.test-recipient>svg { color: #a0dbbc; opacity: 0; flex-shrink: 0; }
.test-recipient.selected>svg { opacity: 1; }
.test-recipient:focus-within { outline: 2px solid #98d9ba; outline-offset: 3px; }
.test-send-form textarea { display: block; width: 100%; box-sizing: border-box; min-height: 190px; padding: 16px; border: 1px solid #344852; border-radius: 9px; background: #0d1820; color: var(--ink); font: inherit; line-height: 1.8; resize: vertical; }
.test-send-form textarea:focus, .test-send-form select:focus, .test-credential-search:focus-within { outline: 2px solid #6fbb98; outline-offset: 2px; }
.test-body-footer { display: flex; justify-content: space-between; gap: 12px; margin-top: 10px; color: var(--muted); font-size: 11px; }
.test-body-footer>span:last-child { white-space: nowrap; font-variant-numeric: tabular-nums; }
.test-credential-search { display: flex; gap: 9px; align-items: center; padding: 10px 12px; border: 1px solid #31424e; border-radius: 8px; margin-bottom: 10px; color: #8fa5b2; background: #0e1a23; }
.test-credential-search input { width: 100%; padding: 0; border: 0; outline: none; box-shadow: none; background: transparent; color: var(--ink); font: inherit; font-size: 12px; }
.test-send-form select { width: 100%; min-height: 46px; padding: 10px 12px; border: 1px solid #3a5147; border-radius: 8px; background: #13261f; color: #c9e4d7; font: inherit; font-size: 12px; }
.test-send-footer { display: flex; align-items: center; justify-content: space-between; gap: 20px; padding: 21px 24px; background: #14231f; }
.test-send-footer p { margin: 0; font-size: 12px; color: #a6c5b7; }
.test-send-footer .btn { min-width: 130px; }
.test-empty-inline { padding: 14px; border: 1px dashed #3c505b; border-radius: 9px; color: var(--muted); }
.test-empty-inline p { line-height: 1.8; }
.test-send-preview { position: sticky; top: 88px; overflow: hidden; background: linear-gradient(150deg,#152620,#111d25 75%); }
.test-preview-header { display: flex; align-items: center; justify-content: space-between; padding: 23px; border-bottom: 1px solid #2b4138; gap: 12px; }
.test-preview-header>span:first-child { display: flex; align-items: center; gap: 8px; color: #c9e2d5; font-weight: 600; }
.test-preview-tag { border-radius: 20px; padding: 4px 9px; border: 1px solid #395b4a; color: #9cc6b0; font-size: 10px; }
.test-preview-sender { padding: 22px 23px 0; }
.test-preview-sender>span { display: block; color: #8da99c; font-size: 11px; }
.test-preview-sender>strong { display: block; color: #d5eade; font-size: 13px; font-weight: 500; margin-top: 10px; overflow-wrap: anywhere; }
.test-preview-conversation { min-height: 180px; padding: 24px 23px 30px; }
.test-preview-bubble { margin-left: 16px; padding: 17px 19px; border-radius: 16px 16px 4px 16px; background: #2c4c3a; color: #e1f0e8; line-height: 1.9; font-size: 13px; white-space: pre-wrap; overflow-wrap: anywhere; max-height: 520px; overflow-y: auto; }
.test-preview-bubble.empty { background: #1b2c2b; color: #87a197; border: 1px dashed #385448; }
.test-preview-bottom { display: flex; justify-content: space-between; gap: 12px; padding: 17px 23px; border-top: 1px solid #2b4138; color: #94b5a6; font-size: 11px; }
.test-send-results, .test-send-history { margin-top: 24px; overflow: hidden; }
.test-send-results { scroll-margin-top: 88px; }
.test-send-results .card-head p { font-size: 11px; margin: 7px 0 0; color: var(--muted); }
.test-run-note { padding: 13px 24px; border-bottom: 1px solid #51462b; background: #302a1e; color: #d7c18c; font-size: 12px; line-height: 1.7; }
.test-result-metrics { display: grid; grid-template-columns: repeat(4, minmax(0,1fr)); padding: 24px 12px; border-bottom: 1px solid var(--line); background: #14211f; }
.test-result-metrics>div { padding: 0 20px; border-right: 1px solid #2c4036; }
.test-result-metrics>div:last-child { border-right: 0; }
.test-result-metrics span { display: block; color: #95afa2; font-size: 11px; margin-bottom: 12px; }
.test-result-metrics strong { color: #d2efdf; font-size: 29px; font-family: "SFMono-Regular",Consolas,monospace; font-weight: 500; }
.test-sent-content { padding: 15px 24px; border-bottom: 1px solid var(--line); font-size: 12px; }
.test-sent-content summary { cursor: pointer; color: #accab9; }
.test-sent-content p { margin-top: 15px; white-space: pre-wrap; overflow-wrap: anywhere; line-height: 1.8; }
.test-result-table { min-width: 930px; }
.test-result-table .test-result-sender { max-width: 240px; overflow-wrap: anywhere; font-size: 12px; color: #b6cbc0; }
.test-result-table th { white-space: nowrap; }
.test-result-table .reading-status { min-width: 110px; }
.test-result-table .table-main { font-size: 12px; }
.test-history-list { display: flex; flex-direction: column; }
.test-history-row { display: flex; align-items: center; gap: 16px; padding-right: 24px; border-bottom: 1px solid var(--line); }
.test-history-row:last-child { border-bottom: 0; }
.test-history-item { display: flex; flex: 1; min-width: 0; align-items: center; gap: 20px; width: 100%; padding: 19px 0 19px 24px; text-align: left; color: var(--ink); background: transparent; border: 0; cursor: pointer; font: inherit; }
.test-history-row.active { background: #1a3028; box-shadow: inset 3px 0 #8bd9af; }
.test-history-item:hover { background: #1b2c30; }
.test-history-item:focus-visible { outline: 2px solid #7fb9ff; outline-offset: -3px; }
.test-history-delete { flex-shrink: 0; }
.test-history-item>div:first-child { min-width: 0; flex: 1; }
.test-history-item strong { display: block; font-size: 12px; overflow-wrap: anywhere; }
.test-history-item>div:first-child>span { display: block; margin-top: 8px; font-size: 12px; color: #94a8af; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.test-history-meta { display: flex; flex-direction: column; gap: 8px; color: #97aaa3; text-align: right; font-size: 11px; white-space: nowrap; }
.test-history-item>svg { color: #83af96; flex-shrink: 0; }
@media (max-width: 1024px) {
  .test-send-workspace { grid-template-columns: minmax(0, 1fr); }
  .test-send-preview { position: static; }
  .test-preview-conversation { min-height: 110px; }
}
@media (max-width: 600px) {
  .test-recipient-grid { grid-template-columns: minmax(0, 1fr); }
  .test-send-section { padding: 20px 16px; }
  .test-send-footer { padding: 18px 16px; flex-wrap: wrap; }
  .test-send-footer .btn { width: 100%; }
  .test-body-footer>span:first-child { max-width: 65%; line-height: 1.6; }
  .test-result-metrics { padding: 19px 0; }
  .test-result-metrics>div { padding: 0 12px; }
  .test-result-metrics strong { font-size: 23px; }
  .test-history-row { gap: 10px; padding-right: 16px; }
  .test-history-item { padding: 17px 0 17px 16px; gap: 10px; flex-wrap: wrap; }
  .test-history-item>div:first-child { flex-basis: 100%; }
  .test-history-meta { text-align: left; }
  .test-history-meta { font-size: 10px; }
}
.message-image-picker { margin-top: 14px; padding: 16px; border: 1px solid #6d89a355; border-radius: 12px; transition: border-color .16s, background .16s; }
.message-image-picker.drag { border-color: #a5cfff; background: #203754; box-shadow: inset 0 0 0 1px #a5cfff55; }
.image-source-options { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 12px; }
.image-source-option { --source-accent: #81c5ff; display: flex; align-items: center; gap: 12px; min-height: 88px; padding: 16px; border: 2px solid #49627f; border-radius: 10px; background: #122338; color: #e7f1ff; text-align: left; cursor: pointer; font: inherit; }
.image-source-option.ai { --source-accent: #c4a6ff; border-color: #66547e; background: #241d35; }
.image-source-option:hover { border-color: var(--source-accent); }
.image-source-option:focus-visible { outline: 2px solid var(--source-accent); outline-offset: 3px; }
.image-source-option.active { border-color: var(--source-accent); box-shadow: 0 0 0 1px var(--source-accent); }
.image-source-icon { display: grid; place-items: center; flex: 0 0 40px; height: 40px; border-radius: 9px; color: var(--source-accent); background: #ffffff0b; }
.image-source-option strong { display: block; font-size: 16px; line-height: 1.5; }
.image-source-option > span:nth-child(2) { min-width: 0; }
.image-source-option small { display: block; margin-top: 3px; color: #acbdd3; font-size: 12px; line-height: 1.5; }
.image-source-check { display: grid; place-items: center; flex: 0 0 22px; height: 22px; margin-left: auto; border: 1px solid #8797ae; border-radius: 50%; color: transparent; }
.image-source-option.active .image-source-check { border-color: var(--source-accent); background: var(--source-accent); color: #102033; }
.image-upload-panel { display: flex; flex-direction: column; align-items: center; gap: 12px; margin-top: 18px; padding: 26px 16px; border: 1px dashed #81c5ff66; border-radius: 10px; background: #81c5ff05; font-size: 12px; }
.image-upload-panel .image-file-label { min-height: 46px; padding: 12px 26px; font-size: 15px; font-weight: 650; }
.image-drop-hint { display: flex; align-items: center; gap: 7px; margin: 0; color: var(--muted); font-size: 12px; }
.message-image-picker.drag .image-drop-hint { color: #c9e2ff; }
.image-selected { margin-top: 16px; padding-top: 14px; border-top: 1px solid #6d89a333; }
.image-picker-actions { display: flex; gap: 12px; align-items: center; flex-wrap: wrap; font-size: 12px; }
.image-picker-actions strong { margin-right: auto; font-size: 13px; }
.image-file-label { position: relative; cursor: pointer; overflow: hidden; }
.image-file-label input { position: absolute; inset: 0; opacity: 0; cursor: pointer; width: 100%; }
.image-file-label:focus-within { outline: 2px solid #91bfff; outline-offset: 3px; }
[data-image-status]:not(:empty) { padding-top: 10px; font-size: 12px; color: var(--muted); }
.message-image { margin: 12px 0; max-width: 100%; }
.message-image-open { display: block; max-width: 100%; padding: 0; border: 0; border-radius: 9px; background: transparent; cursor: zoom-in; }
.message-image-open:focus-visible { outline: 2px solid #91bfff; outline-offset: 4px; }
.message-image img { display: block; max-width: 100%; max-height: 340px; width: auto; height: auto; object-fit: contain; border-radius: 9px; }
.message-image-picker .message-image img { max-height: 160px; }
.test-preview-bubble .message-image { white-space: normal; }
.test-sent-content .message-image { padding: 0 24px; }
.image-lightbox { width: min(1200px,calc(100vw - 32px)); height: calc(100dvh - 32px); max-width: none; max-height: none; padding: 0; border: 1px solid #53617b; border-radius: 12px; background: #101927; color: #e7f1ff; box-shadow: 0 24px 100px #0009; overflow: hidden; }
.image-lightbox[open] { display: grid; grid-template-rows: auto minmax(0,1fr); }
.image-lightbox::backdrop { background: #030710db; }
.image-lightbox-header { display: flex; align-items: center; gap: 12px; padding: 14px 16px; border-bottom: 1px solid #53617b66; }
.image-lightbox-header strong { flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 14px; }
.image-lightbox-header button { flex-shrink: 0; }
.image-lightbox-viewport { display: grid; place-items: center; min-width: 0; min-height: 0; padding: 16px; overflow: auto; overscroll-behavior: contain; }
.image-lightbox-viewport img { display: block; max-width: 100%; max-height: calc(100dvh - 132px); width: auto; height: auto; object-fit: contain; }
.image-lightbox.original-size .image-lightbox-viewport { display: block; }
.image-lightbox.original-size .image-lightbox-viewport img { max-width: none; max-height: none; margin: 0 auto; }

.image-generation { margin-top: 18px; border: 1px solid #c4a6ff44; border-radius: 10px; padding: 16px; background: #c4a6ff05; }
.image-generation > .summary-line:first-child { margin-top: 0; }
.image-generation .field { margin-top: 14px; }
.image-generation textarea { min-height: 72px; }
.image-generation [data-generation-copy] { min-height: 130px; }
.image-size-help { margin: 16px 0; color: #c4b5de; font-size: 12px; line-height: 1.7; }
.image-size-help > summary { display: grid; place-items: center; width: 28px; height: 28px; border: 1px solid #c4a6ff66; border-radius: 50%; cursor: pointer; list-style: none; font-size: 16px; font-weight: 600; }
.image-size-help > summary::-webkit-details-marker { display: none; }
.image-size-help > summary:hover, .image-size-help[open] > summary { background: #c4a6ff1a; border-color: #c4a6ff; }
.image-size-help > summary:focus-visible { outline: 2px solid #c4a6ff; outline-offset: 3px; }
.image-size-help > p { margin: 10px 0 0; }
.image-generation .message-image img { max-height: 280px; }
.image-generation .image-generate-button { min-height: 46px; padding: 12px 22px; background: #c4a6ff; border-color: #c4a6ff; color: #201631; font-weight: 650; }
.image-generation > .row { flex-wrap: wrap; }
.image-generation-progress { margin: 18px 0; padding: 18px; border: 1px solid #9faff080; border-radius: 12px; background: linear-gradient(130deg, #293550, #302742); box-shadow: 0 8px 24px #0b102533; }
.generation-progress-heading { display: flex; align-items: center; gap: 14px; }
.generation-progress-heading > div { min-width: 0; }
.generation-progress-heading strong { display: block; color: #eef2ff; font-size: 16px; line-height: 1.5; }
.generation-progress-heading p { margin: 5px 0 0; color: #b5c6e5; font-size: 12px; line-height: 1.6; }
.generation-progress-icon { position: relative; display: grid; place-items: center; flex: 0 0 48px; height: 48px; border-radius: 12px; background: #89b7ff24; color: #c2dbff; }
.generation-progress-icon .spinner { position: absolute; right: -4px; bottom: -4px; width: 16px; height: 16px; border-color: #a7b3d54d; border-top-color: #e8dfff; background: #2a3049; }
.generation-progress-track { height: 5px; margin-top: 20px; overflow: hidden; border-radius: 5px; background: #aebbe820; }
.generation-progress-track span { display: block; width: 36%; height: 100%; border-radius: inherit; background: linear-gradient(90deg, #8abfff, #cfacff); animation: generation-scan 1.8s ease-in-out infinite; }
.generation-progress-timing { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 6px 14px; margin-top: 12px; color: #d2dcf0; font-size: 12px; font-variant-numeric: tabular-nums; }
.generation-progress-estimate { margin: 8px 0 0; color: #a4b5d3; font-size: 11px; line-height: 1.6; }
.generation-idle-estimate { margin: 10px 0 0; color: #a5b2cb; font-size: 12px; }
.image-generation.is-generating .image-generate-button { opacity: 1; background: #514671; border-color: #aa94d763; color: #e7dcff; cursor: wait; }
.image-generation.is-generating .image-generate-button .spinner { border-top-color: #e7dcff; }
.generation-result-card { margin-top: 18px; overflow: hidden; border: 1px solid #75c7a25e; border-radius: 12px; background: #172a2d; }
.generation-result-header { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 14px; padding: 16px; border-bottom: 1px solid #75c7a226; }
.generation-result-label { display: flex; align-items: center; gap: 9px; color: #bcebd6; font-size: 15px; font-weight: 600; }
.generation-result-label > span { display: grid; place-items: center; width: 27px; height: 27px; border-radius: 50%; background: #70d4a424; color: #9ce6bf; }
.generation-result-header .btn.primary { min-height: 40px; padding: 9px 16px; background: #a5e5c7; border-color: #bbeed7; color: #173d30; font-weight: 600; }
.image-generation .generation-result-card .message-image { display: grid; place-items: center; margin: 0; padding: 18px; background: #101b28; }
.image-generation .generation-result-card .message-image img { max-height: 400px; }
@keyframes generation-scan { from { transform: translateX(-100%); } to { transform: translateX(280%); } }
@media (prefers-reduced-motion: reduce) { .generation-progress-track span { animation: none; width: 100%; opacity: .55; } }
@media(max-width:650px) {
  .image-source-options { grid-template-columns: 1fr; }
  .image-source-option { min-height: 76px; padding: 12px; }
}
.qwen-settings { margin: 22px 0; }
.qwen-settings .settings-panel-body { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: 16px; }
@media(max-width:650px) { .qwen-settings .settings-panel-body { grid-template-columns: 1fr; } }
