/*
 * Seraphina Core Terminal styles. Institutional dark surface, editorial serif
 * display, tabular figures, restrained gold accent. Scoped under .sat- so it
 * never touches the public landing. UK English. No em or en dashes.
 */

.sat{
	--canvas:#0A0A0A;--panel:#101010;--panel2:#131313;--body:#FFFFFF;--muted:#C7C7CD;
	--divider:#2E2E2E;--accent:#C8A45C;--accent2:#E8D9B5;--pos:#5FB07A;--neg:#C0553C;--warn:#D6A24A;
	background:var(--canvas);color:var(--body);min-height:100vh;
	font-family:'Inter',system-ui,-apple-system,sans-serif;font-size:17px;line-height:1.55;-webkit-font-smoothing:antialiased;
}
body.seraphina-alpha-canvas{margin:0;background:#0A0A0A;}
.sat *{box-sizing:border-box}
.sat a{color:inherit;text-decoration:none}
.sat-serif{font-family:'Spectral',Georgia,serif;font-weight:400;letter-spacing:-0.01em}
.sat-mono{font-family:'IBM Plex Mono',ui-monospace,monospace}
.sat-num{font-variant-numeric:tabular-nums;font-feature-settings:'tnum'}
.sat-wrap{max-width:1160px;margin:0 auto;padding:0 28px}
.sat-eyebrow{font-family:'IBM Plex Mono',monospace;font-size:11.5px;letter-spacing:.22em;text-transform:uppercase;color:var(--accent)}
.sat-muted{color:var(--muted)}
.sat-btn{display:inline-flex;align-items:center;justify-content:center;gap:9px;font-weight:700;font-size:14px;letter-spacing:1.5px;text-transform:uppercase;text-decoration:none;padding:13px 24px;border-radius:2px;cursor:pointer;border:1px solid var(--accent);background:var(--accent);color:#0A0A0A;box-shadow:0 2px 16px rgba(200,164,92,.28);transition:background .15s,box-shadow .15s}
.sat-btn:hover{background:var(--accent2);color:#0A0A0A;box-shadow:0 3px 22px rgba(200,164,92,.40)}
a.sat-btn,a.sat-btn:hover,a.sat-btn:visited{text-decoration:none;color:#0A0A0A}
.sat-btn[disabled]{opacity:.5;cursor:default}
.sat-btn-ghost{background:transparent;color:var(--body);border:1px solid var(--divider)}
.sat-btn-ghost:hover{border-color:var(--accent);color:var(--accent)}
.sat-btn-sm{padding:8px 14px;font-size:13.5px}
.sat-hidden{display:none !important}

/* Top bar */
.sat-top{border-bottom:1px solid var(--divider);position:sticky;top:0;background:rgba(10,10,10,.92);backdrop-filter:blur(6px);z-index:20}
.sat-top-in{display:flex;align-items:center;justify-content:space-between;height:64px}
.sat-brand{font-family:'IBM Plex Mono',monospace;font-size:12.5px;letter-spacing:.2em;text-transform:uppercase}
.sat-brand b{color:var(--accent);font-weight:500}
.sat-top-right{display:flex;align-items:center;gap:18px;font-size:13.5px;color:var(--muted)}
.sat-top-right a:hover{color:var(--accent)}

/* Login */
.sat-login{display:flex;align-items:center;justify-content:center;min-height:100vh;padding:40px 20px}
.sat-login-card{width:100%;max-width:440px;border:1px solid var(--divider);background:var(--panel);padding:40px 36px}
.sat-login-card h1{font-family:'Spectral',serif;font-weight:400;font-size:28px;margin:14px 0 6px}
.sat-login-card p.sub{color:var(--muted);font-size:15px;margin:0 0 26px}
.sat-field{margin-bottom:16px}
.sat-field label{display:block;font-family:'IBM Plex Mono',monospace;font-size:11.5px;letter-spacing:.12em;text-transform:uppercase;color:var(--body);margin-bottom:7px}
.sat-field .sat-help{color:var(--muted);font-size:12.5px;margin:-2px 0 8px}
.sat-field input,.sat-field select{width:100%;background:#0C0C0C;border:1px solid #FFFFFF;color:var(--body);font-family:'Inter',sans-serif;font-size:16px;padding:12px 14px;border-radius:2px;outline:none}
.sat-field input:focus,.sat-field select:focus{border-color:var(--accent)}
.sat-field input.sat-invalid,.sat-field select.sat-invalid{border-color:var(--neg)}
.sat-field .sat-err-line{color:var(--neg);font-size:12.5px;margin-top:6px;min-height:0}
.sat-code{letter-spacing:.4em;text-align:center;font-family:'IBM Plex Mono',monospace !important;font-size:22px !important}
.sat-login-card .sat-btn{width:100%;margin-top:6px}
.sat-status{margin-top:14px;font-size:14px;text-align:center;min-height:18px}
.sat-status.err{color:var(--neg)}
.sat-status.ok{color:var(--pos)}

/* Page scaffolding */
.sat-main{padding:34px 0 80px}
.sat-h{font-family:'Spectral',serif;font-weight:400;font-size:30px;margin:0 0 4px}
.sat-sub{color:var(--muted);font-size:15px;margin:0 0 26px}
.sat-section-label{font-family:'IBM Plex Mono',monospace;font-size:11.5px;letter-spacing:.2em;text-transform:uppercase;color:var(--muted);margin:34px 0 14px;display:flex;align-items:center;gap:12px}
.sat-section-label:after{content:"";flex:1;height:1px;background:var(--divider)}

/* Metric strip */
.sat-strip{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1px;background:var(--divider);border:1px solid var(--divider)}
.sat-metric{background:var(--panel);padding:20px 20px;cursor:pointer;transition:background .12s;min-width:0;overflow:hidden}
.sat-metric:hover{background:var(--panel2)}
.sat-metric .e{font-family:'IBM Plex Mono',monospace;font-size:11px;letter-spacing:.08em;color:var(--muted);text-transform:uppercase;white-space:normal;overflow-wrap:anywhere;line-height:1.4;min-height:2.8em}
.sat-metric .v{font-family:'Spectral',serif;font-size:34px;line-height:1.1;margin-top:8px}
.sat-metric .d{font-size:12.5px;margin-top:6px;display:flex;align-items:center;gap:7px;flex-wrap:wrap}
.sat-vel{margin-left:auto;color:var(--muted);font-size:12px}
.sat-pill{font-family:'IBM Plex Mono',monospace;font-size:10.5px;letter-spacing:.06em;padding:2px 7px;border:1px solid var(--divider);text-transform:uppercase}
.sat-pill.spike{color:var(--warn);border-color:var(--warn)}
.sat-pill.threat{color:var(--neg);border-color:var(--neg)}
.sat-pill.calm{color:#3FB950;border-color:#3FB950}

/* Two column layout */
.sat-cols{display:grid;grid-template-columns:1.55fr 1fr;gap:24px;margin-top:14px}
.sat-card{border:1px solid var(--divider);background:var(--panel);padding:24px 24px}
.sat-card h3{font-family:'Spectral',serif;font-weight:500;font-size:19px;margin:0 0 4px}
.sat-card .hint{color:var(--muted);font-size:13px;margin:0 0 16px}

/* Sparkline / scores */
.sat-chart{width:100%;height:160px;display:block}
.sat-chart path.line{fill:none;stroke:var(--accent);stroke-width:2}
.sat-chart path.area{fill:rgba(200,164,92,.10);stroke:none}
.sat-chart line.base{stroke:var(--divider);stroke-width:1}
.sat-empty{color:var(--muted);font-size:14px;padding:26px 0;text-align:center;border:1px dashed var(--divider)}

/* Output workspace */
.sat-workspace .row{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:16px 0;border-top:1px solid var(--divider)}
.sat-workspace .row:first-child{border-top:0}
.sat-workspace .t{font-size:15px}
.sat-workspace .m{color:var(--muted);font-size:12.5px;margin-top:3px}

/* Vault */
.sat-vault .v-row{display:grid;grid-template-columns:1.1fr 1fr 1.4fr 1fr;align-items:center;padding:13px 0;border-top:1px solid var(--divider);font-size:14px}
.sat-vault .v-row:first-child{border-top:0}
.sat-vault .v-head span{font-family:'IBM Plex Mono',monospace;font-size:10.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}
.sat-vault .v-date{font-family:'IBM Plex Mono',monospace;color:var(--muted);font-size:12.5px}
.sat-vault .v-c4{text-align:right}

/* Team access */
.sat-roster .r-row{display:flex;align-items:center;justify-content:space-between;padding:12px 0;border-top:1px solid var(--divider)}
.sat-roster .r-row:first-child{border-top:0}
.sat-roster .r-email{font-size:14.5px}
.sat-roster .r-meta{font-family:'IBM Plex Mono',monospace;font-size:11px;color:var(--muted);letter-spacing:.06em;text-transform:uppercase;margin-top:3px}
.sat-roster .r-revoke{color:var(--neg);font-size:12.5px;cursor:pointer;background:none;border:0;padding:0}
.sat-add{display:flex;gap:10px;margin-top:16px}
.sat-add input{flex:1;background:#0C0C0C;border:1px solid var(--divider);color:var(--body);padding:10px 12px;font-size:14.5px;border-radius:2px;outline:none}
.sat-add input:focus{border-color:var(--accent)}

/* Suspension overlay */
.sat-overlay{position:fixed;inset:0;background:rgba(8,8,8,.93);backdrop-filter:blur(4px);z-index:60;display:flex;align-items:center;justify-content:center;padding:24px}
.sat-overlay-card{max-width:480px;border:1px solid var(--neg);background:var(--panel);padding:38px 36px;text-align:center}
.sat-overlay-card h2{font-family:'Spectral',serif;font-weight:400;font-size:26px;margin:0 0 10px;color:var(--neg)}
.sat-overlay-card p{color:var(--muted);font-size:15px;margin:0}

/* Onboarding wizard */
.sat-wiz{max-width:680px;margin:0 auto;padding:48px 0 80px}
.sat-prog{display:flex;gap:8px;margin-bottom:30px}
.sat-prog span{flex:1;height:3px;background:var(--divider)}
.sat-prog span.on{background:var(--accent)}
.sat-step h2{font-family:'Spectral',serif;font-weight:400;font-size:28px;margin:0 0 6px}
.sat-step .lead{color:var(--muted);font-size:15.5px;margin:0 0 26px}
.sat-chips{display:flex;flex-wrap:wrap;gap:8px;margin:12px 0 4px}
.sat-chip{display:inline-flex;align-items:center;gap:8px;background:var(--panel2);border:1px solid var(--divider);padding:7px 12px;font-size:14px}
.sat-chip button{background:none;border:0;color:var(--muted);cursor:pointer;font-size:15px;line-height:1;padding:0}
.sat-chip button:hover{color:var(--neg)}
.sat-cap{font-family:'IBM Plex Mono',monospace;font-size:11.5px;color:var(--muted);margin-top:8px;letter-spacing:.04em}
.sat-wiz-nav{display:flex;justify-content:space-between;margin-top:34px}
.sat-review{border:1px solid var(--divider);background:var(--panel);padding:20px 22px;margin-top:8px}
.sat-review .rr{display:flex;justify-content:space-between;gap:16px;padding:9px 0;border-top:1px solid var(--divider);font-size:14.5px}
.sat-review .rr:first-child{border-top:0}
.sat-review .rr .k{color:var(--muted)}

@media (max-width:880px){
	.sat-strip{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
	.sat-cols{grid-template-columns:1fr}
}

/* Onboarding screen 1 to 4 controls */
.sat-grid2{display:grid;grid-template-columns:1fr 1fr;gap:14px}
@media(max-width:640px){.sat-grid2{grid-template-columns:1fr}}
.sat-checks{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:6px}
@media(max-width:640px){.sat-checks{grid-template-columns:1fr}}
.sat-check{display:flex;align-items:center;gap:10px;padding:13px 15px;border:1px solid var(--divider);border-radius:8px;cursor:pointer;font-size:14.5px;color:var(--body)}
.sat-check:hover{border-color:var(--muted)}
.sat-check input{width:16px;height:16px;accent-color:var(--accent);cursor:pointer}
.sat-roster{display:flex;flex-direction:column;gap:10px;margin-top:4px}
.sat-rost-in{width:100%;padding:13px 15px;background:var(--panel);border:1px solid var(--divider);border-radius:8px;color:var(--ink);font-size:15px;font-family:inherit}
.sat-rost-in:focus{outline:none;border-color:var(--accent)}
.sat-rost-in[readonly]{color:var(--muted);background:transparent}

/* Direct onboarding email gate (step 0). Mirrors the wizard card framing. */
.sat-gate{max-width:680px;margin:0 auto;padding:48px 0 80px}
.sat-gate h2{font-family:'Spectral',serif;font-weight:400;font-size:28px;margin:0 0 6px}
.sat-gate .lead{color:var(--muted);font-size:15.5px;margin:0 0 26px}

/* ------------------------------------------------------------------ */
/* 1 July feedback: shared logo, text links, exit control, plan step, */
/* inline validation, and a proper mobile layout.                     */
/* ------------------------------------------------------------------ */

/* Brand logo in the top bar (replaces the wordmark) */
.sat-logo{height:26px;width:auto;display:block}
.sat-logo-link{display:inline-flex;align-items:center}

/* Text link style: bold, tracked caps, underlined (per spec) */
.sat-link{display:inline-flex;align-items:center;gap:7px;background:none;border:0;padding:0;cursor:pointer;
	font-weight:700;font-size:13px;letter-spacing:1.5px;text-transform:uppercase;color:var(--body);
	text-decoration:underline;text-underline-offset:3px;transition:color .15s}
.sat-link:hover{color:var(--accent)}
.sat-link.neg{color:var(--neg)}
.sat-link.neg:hover{color:var(--neg);opacity:.8}

/* Exit control in the dashboard header */
.sat-exit{display:inline-flex;align-items:center;gap:8px;background:transparent;border:1px solid var(--divider);
	color:var(--body);font-weight:700;font-size:12.5px;letter-spacing:1.5px;text-transform:uppercase;
	padding:9px 15px;border-radius:2px;cursor:pointer;transition:border-color .15s,color .15s}
.sat-exit:hover{border-color:var(--accent);color:var(--accent)}
.sat-exit svg{width:15px;height:15px;stroke:currentColor;fill:none;stroke-width:2}

/* Slightly larger, easier to read dashboard type */
.sat-metric .e{font-size:12px}
.sat-workspace .t{font-size:16px}
.sat-workspace .m{font-size:13.5px}
.sat-vault .v-row{font-size:15px}
.sat-card .hint{font-size:14px}
.sat-roster .r-email{font-size:15.5px}

/* Plan selection step (onboarding final screen) */
.sat-plans{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin:6px 0 4px}
.sat-plan{border:1px solid var(--divider);background:var(--panel);padding:22px 20px;cursor:pointer;
	transition:border-color .15s,background .15s;position:relative}
.sat-plan:hover{border-color:var(--accent)}
.sat-plan.sel{border-color:var(--accent);background:#15130E}
.sat-plan .pt{font-family:'IBM Plex Mono',monospace;font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--muted);padding-right:30px}
.sat-plan h3{font-family:'Spectral',serif;font-weight:500;font-size:19px;margin:8px 0 2px;padding-right:30px}
.sat-plan .pp{font-family:'Spectral',serif;font-size:24px;margin:8px 0 2px}
.sat-plan .pb{font-family:'IBM Plex Mono',monospace;font-size:11px;color:var(--muted);margin-bottom:12px}
.sat-plan ul{list-style:none;padding:0;margin:0}
.sat-plan li{font-size:13.5px;color:var(--body);padding:6px 0;border-top:1px solid var(--divider)}
.sat-plan .tick{position:absolute;top:16px;right:16px;width:18px;height:18px;border-radius:50%;
	border:1px solid var(--divider)}
.sat-plan.sel .tick{background:var(--accent);border-color:var(--accent)}

/* Mobile sign out (dashboard), hidden on desktop */
.sat-mobile-exit{display:none}

@media (max-width:820px){
	.sat-plans{grid-template-columns:1fr}
	/* Single centred logo in the nav on mobile */
	.sat-top-in{justify-content:center;position:relative}
	.sat-top-right{display:none}
	.sat-top-in .sat-logo-link{margin:0 auto}
	/* Stack the dashboard: metric strip, two column split, vault rows, roster */
	.sat-strip{grid-template-columns:1fr}
	.sat-cols{grid-template-columns:1fr;gap:16px}
	.sat-vault .v-row{grid-template-columns:1fr;gap:4px;padding:16px 0}
	.sat-vault .v-head{display:none}
	.sat-vault .v-c4{text-align:left}
	.sat-metric .v{font-size:30px}
	/* Mobile sign out button, sits below Team Access */
	.sat-mobile-exit{display:flex;justify-content:center;margin:26px 0 6px}
	.sat-mobile-exit .sat-exit{width:100%;justify-content:center;padding:14px}
}

.sat-rost-in.sat-rost-primary{opacity:.85;cursor:not-allowed}

/* Full width primary action (report download) */
.sat-btn-block{width:100%;margin-top:12px}
.sat-btn svg,.sat-ico{width:16px;height:16px;flex:0 0 auto}

/* Signal strip: per metric information disclosure */
.sat-info{margin-top:12px;border-top:1px solid var(--divider);padding-top:9px}
.sat-info-link{display:inline-flex;align-items:center;gap:6px;background:none;border:0;padding:0;color:var(--muted);font-family:'IBM Plex Mono',monospace;font-size:11px;letter-spacing:.06em;text-transform:uppercase;cursor:pointer;text-decoration:underline;text-underline-offset:3px}
.sat-info-link:hover{color:var(--accent)}
.sat-info-link svg{width:13px;height:13px}
.sat-info-panel{margin-top:8px}
.sat-info-txt{font-size:12.5px;color:var(--body);line-height:1.55;margin:0 0 8px}
.sat-info-hide{background:none;border:0;padding:0;color:var(--muted);font-family:'IBM Plex Mono',monospace;font-size:11px;letter-spacing:.06em;text-transform:uppercase;cursor:pointer;text-decoration:underline;text-underline-offset:3px}
.sat-info-hide:hover{color:var(--accent)}

/* Sentiment series timeline axis */
.sat-axis{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-top:8px;font-family:'IBM Plex Mono',monospace;font-size:10.5px;letter-spacing:.04em;color:var(--muted)}
.sat-axis .a-m{opacity:.75}
.sat-axis .a-r{text-align:right}

.sat-vault-pager{display:flex;align-items:center;justify-content:flex-end;gap:14px;margin-top:16px;padding-top:6px}
.sat-vault-pageinfo{font-family:'IBM Plex Mono',monospace;font-size:12px;letter-spacing:.03em;color:var(--muted)}

/* Alpha access pass banner */
.sat-pass-strip{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin:22px 0 22px;padding:12px 16px;border:1px solid var(--divider);background:var(--panel);font-size:13px;color:var(--muted);line-height:1.5}
.sat-pass-strip.is-expired{border-color:#7a5a30;background:#1a140d}
.sat-pass-strip.is-sample{align-items:center;justify-content:space-between;border-color:#1F7A52;background:linear-gradient(90deg,rgba(31,122,82,0.16),rgba(31,122,82,0.06));padding:16px 20px}
.sat-pass-strip.is-sample .sat-pass-txt{display:flex;flex-direction:column;gap:3px}
.sat-pass-strip.is-sample .sat-pass-head{font-family:'IBM Plex Mono',monospace;font-size:12px;letter-spacing:.1em;text-transform:uppercase;color:#3FB07A;font-weight:600}
.sat-pass-strip.is-sample .sat-pass-sub{font-size:14px;color:var(--body)}
.sat-pass-strip.is-sample .sat-pass-cta{flex:0 0 auto;background:#1F7A52;color:#fff;border:1px solid #1F7A52;padding:10px 20px;border-radius:2px;font-family:'IBM Plex Mono',monospace;font-size:12px;letter-spacing:.08em;text-transform:uppercase;text-decoration:none;white-space:nowrap}
.sat-pass-strip.is-sample .sat-pass-cta:hover{background:#248a5d;border-color:#248a5d}
.sat-pass-strip .sat-pass-tag{font-family:'IBM Plex Mono',monospace;font-size:11px;letter-spacing:.06em;text-transform:uppercase;color:var(--accent)}
.sat-pass-strip.is-expired .sat-pass-tag{color:#D9A441}
.sat-pass-strip .sat-pass-cta{color:var(--accent);text-decoration:underline;text-underline-offset:3px}

/* Locked vault rows (no active pass): the Unlock Report button is the indicator. */
.v-row.is-locked .v-c1,.v-row.is-locked .v-c2,.v-row.is-locked .v-c3{opacity:.72}
@media(max-width:600px){.v-c4 .sat-btn{width:100%}}
