/* Signal: shared identity for marketing, reading and operational surfaces. */
@font-face{font-family:Pliant;src:url('/assets/fonts/pliant.ttf') format('truetype');font-weight:100 900;font-display:swap}
:root{--signal-graphite:#171b22;--signal-lime:#d7f75b;--bg:#f6f7f3;--panel:#fff;--soft:#eceee8;--text:#20262e;--muted:#59616b;--border:#d5d9d2;--brand:#536515;--brand-tint:#edf4d4;--accent:#536515;--canvas-dot:#c9cfc6;--preview-bg:#171b22;--sidebar-width:216px;--green:#18633d;--green-bg:#e8f5ed;--red:#a82a3a;--red-bg:#fcecef;--amber:#795610;--amber-bg:#fff4d9;--focus:#738b20;color-scheme:light}
:root[data-appearance=dark]{--bg:#171b22;--panel:#20262e;--soft:#2b323c;--text:#f6f7f3;--muted:#b5bdc8;--border:#424b58;--brand:#d7f75b;--brand-tint:#303c22;--accent:#d7f75b;--canvas-dot:#414a57;--green:#86dda7;--green-bg:#233a2d;--red:#ff9cac;--red-bg:#402730;--amber:#f2cc7b;--amber-bg:#3d3423;--focus:#d7f75b;color-scheme:dark}
body{font-family:Pliant,sans-serif;font-size:15px;line-height:1.55;background:var(--bg);color:var(--text)}
*,*::before,*::after{box-sizing:border-box}
::selection{background:#d7f75b;color:#171b22}
*{scrollbar-color:var(--border) var(--bg);scrollbar-width:thin}
input,textarea{caret-color:var(--brand)}
a{text-underline-offset:.2em}
:is(a,button,input,select,textarea,summary):focus-visible{outline:2px solid var(--focus);outline-offset:3px}
h1,h2,h3{letter-spacing:-.025em;text-wrap:balance}
.eyebrow{display:none}
.workspace{max-width:1800px;margin-inline:auto}
.content{max-width:1160px;padding:26px 32px 40px}
.content:has(#studio-host),.content:has(.studio),.content:has(#instance-panel){max-width:1440px;margin-inline:auto;padding:26px 24px 40px}
.topbar,.workspace-main:not(:has(#studio-host)):not(:has(#instance-panel)) .topbar{max-width:1160px;margin:auto;padding-inline:32px;height:56px}
.workspace-main:has(#studio-host) .topbar,.workspace-main:has(#instance-panel) .topbar{max-width:1440px}
.sidebar{background:#171b22;color:#f6f7f3;border-color:#343d48;padding:26px 16px 18px}
.sidebar .brand{color:#f6f7f3;font-size:21px;padding-left:6px}
.brand-accent{color:inherit}
.brand-logo{background:none!important;padding:0!important;border-radius:0!important;width:32px;height:32px}
.sidebar .workspace-label,.sidebar .nav-heading,.sidebar .user-chip span:not(.avatar){color:#b5bdc8}
.sidebar .nav-item{color:#b5bdc8;border-radius:8px;font-size:14px;padding:11px 12px}
.sidebar .nav-item:hover{background:#2b323c;color:#fff}
.sidebar .nav-item.selected{background:color-mix(in srgb,var(--user-accent,#d7f75b) 16%,#171b22);color:#f6f7f3;box-shadow:none}
.sidebar .nav-item.selected svg{color:var(--user-accent,#d7f75b)}
.sidebar .user-chip{border-color:#424b58}.sidebar .user-chip strong{font-size:13px;color:#f6f7f3}
.sidebar .avatar{background:#303c22;color:#d7f75b}.sidebar .logout{color:#b5bdc8;font-size:13px}
.sidebar .logout:hover{color:#d7f75b}.sidebar .mobile-menu{background:#2b323c;color:#f6f7f3;border-color:#424b58}
.page-heading h1{font-size:32px;letter-spacing:-.025em}.page-heading p{font-size:15px;max-width:70ch}
.section-heading{font-size:19px;margin:30px 0 16px}
:is(.button,.primary,.small-button){border-radius:8px;font-size:14px;font-weight:650;padding:10px 15px;min-height:40px;line-height:1.35;transition:background-color .15s ease,color .15s ease}
.small-button{min-height:36px;padding:7px 11px;font-size:13px}
:is(.primary,.public-brand .primary){background:#d7f75b;color:#171b22;border:1px solid transparent;border-radius:8px}
:is(.primary:hover,.public-brand .primary:hover){background:#e2ff82;filter:none}
button:disabled{opacity:.5;cursor:not-allowed}
:is(input:not([type=color]):not([type=checkbox]):not([type=radio]),select,textarea){background:var(--panel);color:var(--text);border:1px solid var(--border);border-radius:8px;font-size:14px;padding:10px 12px;min-height:40px}
input::placeholder,textarea::placeholder{color:var(--muted);opacity:1}
label{font-size:14px}.field-note{font-size:13px;line-height:1.6}.muted{color:var(--muted)}
:is(.profile-panel,.table-panel,.feature-card,.configuration-card,.worker-card,.library-card,.help-article){border-radius:12px;box-shadow:none}
.badge,.status{font-size:12px}.stat{font-variant-numeric:tabular-nums}.stat span{font-size:13px}
.feature-card h3,.configuration-card h2{font-size:19px}.feature-card p,.configuration-card p{font-size:14px}
.toast{background:var(--text);color:var(--bg);border-radius:8px;max-width:min(440px,calc(100vw - 32px));padding:14px 18px;font-size:14px;box-shadow:0 8px 28px #0003}
/* Every modal uses the browser's top layer, with the same surface and focus rules. */
dialog{background:var(--panel);color:var(--text);border:1px solid var(--border);border-radius:12px;padding:24px;max-width:calc(100vw - 32px);max-height:calc(100dvh - 32px);overflow:auto;box-shadow:none}
dialog::backdrop{background:#0c101ab3}
.confirm-dialog{width:440px}.confirm-dialog h2{font-size:23px;margin:0 0 12px}.confirm-dialog p{font-size:15px;color:var(--muted);margin:0 0 24px;white-space:pre-line;overflow-wrap:anywhere}.dialog-actions{display:flex;justify-content:flex-end;gap:10px;flex-wrap:wrap}
.confirm-dialog .danger{background:var(--red);color:var(--panel);border-color:transparent}
.library-dialog{inset:auto;width:min(760px,calc(100vw - 32px));padding:0;z-index:auto}
.library-dialog:not([open]){display:none}.library-dialog[open]{display:block;background:var(--panel);inset:0;margin:auto;padding:0;z-index:auto;width:min(760px,calc(100vw - 32px));height:fit-content;max-height:calc(100dvh - 32px)}
.library-modal{width:100%;max-height:none;border:0;box-shadow:none;background:var(--panel);border-radius:0}
.worker-dialog{border-radius:12px}.worker-dialog h2{font-size:23px}
.worker-dialog::backdrop,.canvas-remove-dialog::backdrop{background:#0c101ab3}
.canvas-remove-dialog{border-radius:12px;box-shadow:none}.canvas-remove-dialog h2{font-size:23px}.canvas-remove-dialog p{font-size:15px}
/* The editor shares surfaces and typography; routing geometry stays authoritative. */
.studio-layout{border-color:var(--border);border-radius:12px}
:is(.node-library,.node-inspector,.canvas-area,.canvas-controls,.route-node,.node-preview,.connection-item,.connection-hint){background:var(--panel);color:var(--text);border-color:var(--border)}
.canvas-viewport{background-color:var(--bg);background-image:radial-gradient(var(--canvas-dot) .7px,transparent .7px)}
.node-preview{background:var(--soft);color:var(--muted)}
.node-library,.node-inspector{border-color:var(--border)}
.library-node{background:var(--soft);border-color:var(--border);color:var(--text);font-size:13px;border-radius:8px}
.studio select,.node-inspector select{background:var(--panel);border-color:var(--border);color:var(--text);font-size:13px}
:is(.studio-note,.library-group,.library-tip,.library-foot,.inspector-note,.node-connections p,.node-type-tag,.node-footer,.studio-help,.canvas-status,.canvas-empty p,.canvas-empty small,.validation-panel p,.inspector-legend){color:var(--muted);font-size:12px}
.node-header strong{font-size:14px}.node-inspector label,.node-inspector input,.node-inspector h3{font-size:13px}
.node-inspector h2{font-size:21px}.canvas-controls button{color:var(--text);font-size:13px}.canvas-controls button:hover{background:var(--soft)}
.route-node{box-shadow:none;border-radius:12px}.selected-node,.route-node:focus{box-shadow:none;border-color:var(--user-accent)}
.node-port{border-color:var(--panel)}.library-foot,.canvas-status,.validation-panel{border-color:var(--border)}
/* Public reading and authentication use the same Signal identity. */
body.public-brand{--bg:#171b22;--panel:#20262e;--border:#424b58;--text:#f6f7f3;--muted:#b5bdc8;--soft:#2b323c;--brand:#d7f75b;--accent:#d7f75b;--brand-tint:#303c22;--focus:#d7f75b;background:var(--bg);color:var(--text);font-family:Pliant,sans-serif}
.public-brand :is(.public-help-header,.auth-story){background:#171b22;border-color:#424b58}
.public-brand .public-help-header{max-width:1200px;padding:20px 32px}
.public-brand .brand{color:#f6f7f3}.public-brand .public-help{max-width:1200px;padding:36px 32px 64px}
.public-brand .public-help .page-heading p,.public-brand .help-navigation label,.public-brand .help-navigation .nav-heading,.public-brand .help-navigation button{color:#b5bdc8}
.public-brand .help-navigation input{background:#20262e;border-color:#64707f;color:#f6f7f3}
.public-brand .help-navigation input::placeholder{color:#b5bdc8}
.public-brand .help-navigation button:hover{background:#2b323c;color:#f6f7f3}
.public-brand .help-navigation button[aria-current=page]{background:#d7f75b;color:#171b22}
.public-brand .help-article,.public-brand .auth-form{--panel:#fff;--text:#20262e;--muted:#59616b;--border:#d5d9d2;--soft:#eceee8;--brand:#536515;--focus:#536515;background:#f6f7f3;color:#20262e;color-scheme:light}
.public-brand .help-article :is(h3,p,li){color:#20262e}.public-brand .help-article :is(.help-intro,.help-related){color:#59616b}
.public-brand .help-article a,.public-brand .help-related button{color:#536515}
.public-brand .help-account-limits{background:#eceee8}.public-brand .help-article section+section{border-color:#d5d9d2}
.public-brand .auth{max-width:1200px}.public-brand .auth-story{padding:36px 40px}
.public-brand .auth-story h1 span,.public-brand .auth-story .quiet a{color:#d7f75b}
.public-brand .auth-story :is(.intro,.quiet){color:#b5bdc8}
.public-brand .concept-node,.public-brand .concept-outputs span{background:#20262e;border-color:#424b58;color:#f6f7f3}.public-brand .concept-line{background:#d7f75b}
.public-brand .auth-brand-photo figcaption{background:#171b22e6;color:#f6f7f3}
.public-brand .auth-form :is(h2,label,input){color:#20262e}.public-brand .auth-form :is(.muted,.field-note,.auth-switch){color:#59616b}
.public-brand .auth-form input{background:white;border-color:#a3aba1}.public-brand .auth-form input::placeholder{color:#59616b}
.public-brand .auth-form :is(a,.admin-link){color:#536515}.public-brand .auth-form .primary{color:#171b22}
.public-brand .auth-form .brand-logo{background:#171b22!important;padding:4px!important;border-radius:6px!important}
.colour-preset[data-colour="#d7f75b"]::before{background:#d7f75b}
.overview-metrics>div{border-left-width:1px}.help-navigation button[aria-current=page]{border-left:0}
.help-article p,.help-article li{font-size:16px;line-height:1.7;max-width:72ch}.help-article h3{font-size:19px}.help-article .help-intro{font-size:18px}.help-related button{font-size:14px}.help-account-limits{font-size:15px;line-height:1.6}
:is(.overview-hero,.overview-session,.overview-carousel,.library-upload,.library-storage,.library-empty,.stats-row){border-radius:12px}
.profile-panel h2,.table-toolbar h2{font-size:19px}.profile-panel>p,.fleet-card p,.library-card-info p,.overview-description,.overview-carousel-description,.overview-configuration p,.overview-session p:not(.eyebrow),.overview-guide p{font-size:14px}
.overview-configuration strong,.overview-guide strong{font-size:15px}.overview-guide h2{font-size:17px}
.configuration-edit,.configuration-delete{font-size:14px;min-height:36px;display:inline-flex;align-items:center;padding:6px 8px;border-radius:8px}
.configuration-edit:hover{background:var(--soft)}.configuration-delete:hover{background:var(--red-bg)}
.editor-rehearsal{border-radius:12px;box-shadow:none}.rehearsal-toolbar h2{font-size:14px}.rehearsal-toolbar button{font-size:12px;min-height:32px;padding:7px 10px}
.editor-rehearsal .preview-disclaimer,.editor-rehearsal .preview-session-status{font-size:12px;line-height:1.5}
.editor-rehearsal:has(.rehearsal-body[hidden]) .rehearsal-toolbar{display:block}.editor-rehearsal:has(.rehearsal-body[hidden]) .rehearsal-toolbar>div:last-child{margin-top:8px}
.studio-heading h1{font-size:29px}.workspace-main:has(.studio)>.topbar{height:56px}
.public-brand .concept svg{color:#d7f75b}
@media(max-width:760px){.content,.content:has(#studio-host),.content:has(.studio),.content:has(#instance-panel){padding:24px 16px 32px}.topbar{padding-inline:16px!important}.page-heading{flex-wrap:wrap}.page-heading h1{font-size:28px}.sidebar{width:100%}.public-brand .public-help-header{padding:16px;flex-wrap:wrap;gap:16px}.public-brand .public-help{padding:28px 16px 40px}.public-brand .auth-story{padding:28px 24px}.public-brand .auth-form{padding:32px 24px}.public-brand .auth{grid-template-columns:1fr}.public-brand .auth-story h1{font-size:44px}.dialog-actions>*{flex:1}.studio-layout{min-width:0}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;transition:none!important;animation:none!important}}
@media(max-width:600px){.editor-rehearsal:has(.rehearsal-body[hidden]){top:12px;bottom:auto;width:calc(100% - 28px)}.canvas-controls button{font-size:12px}.canvas-viewport{min-height:520px}}

/* Approved connected LM monogram. */
.brand-logo,.public-brand .brand-logo{width:44px;height:32px;object-fit:contain}.sidebar .brand-logo{width:40px;height:30px}
