:root{color-scheme:light;--ink:#17201c;--muted:#718078;--paper:#f4f7f4;--line:#34413c;--green:#63d6a2;--red:#fb6a5f;font-family:"Aptos","Segoe UI",sans-serif;font-synthesis:none}*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink)}button{font:inherit;cursor:pointer}.brand-mark{width:38px;height:38px;border:2px solid currentColor;display:grid;place-items:center;font:700 13px ui-monospace,monospace}.auth-page{min-height:100vh;background-image:linear-gradient(#d9dfdb 1px,transparent 1px),linear-gradient(90deg,#d9dfdb 1px,transparent 1px);background-size:32px 32px}.auth-brand{height:70px;padding:0 clamp(20px,5vw,64px);display:flex;align-items:center;gap:12px;background:#173f35;color:#f4fff9}.auth-brand span:last-child{margin-left:auto;color:#cce1d8;font-size:12px}.auth-panel{width:min(480px,calc(100% - 40px));margin:0 auto;padding-top:clamp(80px,14vh,160px)}.eyebrow,.path{font:600 11px ui-monospace,monospace;text-transform:uppercase;color:#218761}.auth-panel h1{font-size:clamp(36px,6vw,58px);line-height:1;margin:18px 0}.auth-panel>p:not(.eyebrow){color:#5d6963;line-height:1.65}.arcgis-button{width:100%;min-height:50px;margin:16px 0;border:0;border-radius:5px;background:#00619b;color:white;font-weight:700}.auth-panel small{color:#66716b}.auth-error{border-left:3px solid #bd3c31;padding-left:12px;color:#9e2e25!important}.control{min-height:100vh;background:#111816;color:#eaf2ee}.control-top{height:58px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line)}.control-brand{width:312px;height:100%;padding:0 18px;display:flex;align-items:center;gap:11px;border-right:1px solid var(--line);color:#91e1bd}.control-user{padding:0 20px;display:flex;align-items:center;gap:12px;color:#a8b6af;font:12px ui-monospace,monospace}.icon-button{width:34px;height:34px;border:1px solid #415049;border-radius:4px;background:#1c2723;color:#eaf2ee}.control-body{min-height:calc(100vh - 58px);display:grid;grid-template-columns:312px minmax(0,1fr)}.app-index{border-right:1px solid var(--line);background:#151d1a}.index-heading{height:56px;padding:0 18px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);color:#a8b6af}.index-heading h1{font-size:11px;text-transform:uppercase}.app-row{min-height:76px;padding:13px 18px;border-bottom:1px solid #2b3632;display:grid;grid-template-columns:1fr auto;align-items:start;color:inherit;text-decoration:none}.app-row:hover,.app-row.active{background:#202b27}.app-row.active{box-shadow:inset 3px 0 var(--green)}.app-row strong{font-size:13px}.app-row small{display:block;margin-top:7px;color:#84938c;font:11px ui-monospace,monospace}.signal{width:9px;height:9px;margin-top:4px;border-radius:50%;background:#84938c}.signal-succeeded{background:var(--green);box-shadow:0 0 0 4px rgb(99 214 162 / 12%)}.signal-failed{background:var(--red);box-shadow:0 0 0 4px rgb(251 106 95 / 12%)}.signal-pending{background:#64b5e8}.inspector{min-width:0;padding:28px clamp(20px,4vw,52px)}.path{color:#7f9289;margin:0 0 22px}.title-row{display:flex;align-items:start;justify-content:space-between;gap:20px;padding-bottom:26px;border-bottom:1px solid var(--line)}.title-row h2{margin:0 0 8px;font-size:clamp(30px,4vw,46px)}.title-row p{margin:0;color:#9eaea6}.open-app{padding:10px 14px;border:1px solid var(--green);border-radius:5px;color:#102019;background:var(--green);font-weight:700;text-decoration:none;white-space:nowrap}.stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));margin:0;border-bottom:1px solid var(--line)}.stats div{min-width:0;padding:20px 16px 20px 0}.stats div+div{padding-left:20px;border-left:1px solid var(--line)}.stats dt{margin-bottom:10px;color:#82938b;font-size:10px;text-transform:uppercase}.stats dd{margin:0;overflow-wrap:anywhere;font:500 14px ui-monospace,monospace}.history{padding-top:28px}.history h3{font-size:12px;text-transform:uppercase;color:#9eaea6}.history article{min-height:66px;display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:18px;align-items:center;border-bottom:1px solid var(--line)}.history strong,.history small{display:block;font-family:ui-monospace,monospace}.history small{margin-top:6px;color:#819188}.history a{color:#91e1bd}.deployment-status{font-size:12px}.status-succeeded{color:var(--green)}.status-failed{color:var(--red)}.status-pending{color:#64b5e8}.publisher-note{margin-top:28px;padding:18px;border:1px solid var(--line);color:#aebcb5;font-size:12px;line-height:1.6}.empty-state{min-height:60vh;display:grid;place-items:center;align-content:center;text-align:center;color:#aebcb5}.empty-symbol{width:70px;height:70px;display:grid;place-items:center;border:1px solid var(--line);font-size:34px}@media(max-width:720px){.control-top{height:58px}.control-brand{width:auto;border:0}.control-user span{display:none}.control-body{display:block}.app-index{border-right:0;border-bottom:1px solid var(--line)}.inspector{padding:22px 14px}.title-row{display:block}.open-app{display:inline-block;margin-top:18px}.stats{grid-template-columns:1fr 1fr}.stats div:nth-child(3){border-left:0}.history article{grid-template-columns:1fr auto}.history article a{grid-column:1/-1;padding-bottom:12px}}
.docs-link { color: #91e1bd; text-decoration: none; }
.docs-link:hover { text-decoration: underline; }
.registration { margin-bottom: 22px; border-bottom: 1px solid var(--line); padding-bottom: 18px; }
.registration summary { width: fit-content; cursor: pointer; color: #91e1bd; font-weight: 700; }
.registration form { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)) auto; gap: 10px; margin-top: 16px; }
.registration label { display: grid; gap: 6px; color: #9eaea6; font-size: 10px; text-transform: uppercase; }
.registration input, .registration select { min-width: 0; height: 38px; border: 1px solid #415049; border-radius: 4px; padding: 0 10px; background: #18211e; color: #eaf2ee; }
.registration button { align-self: end; height: 38px; border: 1px solid #63d6a2; border-radius: 4px; padding: 0 14px; background: #63d6a2; color: #102019; font-weight: 700; }
.deployment-log { padding-top: 24px; }
.deployment-log h3 { margin: 0 0 12px; color: #9eaea6; font-size: 12px; text-transform: uppercase; }
.deployment-log pre { max-height: 280px; margin: 0; overflow: auto; border: 1px solid var(--line); padding: 14px; background: #0b100e; color: #b6c8bf; font: 11px/1.7 ui-monospace, monospace; white-space: pre-wrap; overflow-wrap: anywhere; }
.deployment-log p { margin: 0; color: #819188; }
.operator-actions { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; padding: 24px 0; border-bottom: 1px solid var(--line); }
.operator-actions form { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 8px; }
.operator-actions label { grid-column: 1 / -1; color: #9eaea6; font-size: 11px; text-transform: uppercase; }
.operator-actions input, .operator-actions select { min-width: 0; height: 38px; border: 1px solid #415049; border-radius: 4px; padding: 0 10px; background: #18211e; color: #eaf2ee; }
.operator-actions button { height: 38px; border: 1px solid #63d6a2; border-radius: 4px; padding: 0 14px; background: #63d6a2; color: #102019; font-weight: 700; }
.operator-actions .delete-form button { border-color: #fb6a5f; background: #fb6a5f; }
.configuration { padding: 24px 0; border-bottom: 1px solid var(--line); }
.section-heading { display: flex; align-items: center; justify-content: space-between; }
.section-heading h3 { margin: 0; color: #9eaea6; font-size: 12px; text-transform: uppercase; }
.section-heading span { color: #819188; font: 11px ui-monospace, monospace; }
.configuration-row { min-height: 82px; display: grid; grid-template-columns: minmax(180px, .8fr) minmax(130px, .5fr) minmax(280px, 1fr); gap: 18px; align-items: center; border-bottom: 1px solid var(--line); }
.configuration-name strong, .configuration-name small, .configuration-state small { display: block; }
.configuration-name strong { font: 600 13px ui-monospace, monospace; }
.configuration-name small, .configuration-state small, .configuration-empty { margin-top: 6px; color: #819188; font-size: 11px; line-height: 1.45; }
.configuration-state { color: #b6c8bf; font-size: 12px; }
.configuration-row form { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 8px; }
.configuration-row label { grid-column: 1 / -1; color: #9eaea6; font-size: 10px; text-transform: uppercase; }
.configuration-row input { min-width: 0; height: 38px; border: 1px solid #415049; border-radius: 4px; padding: 0 10px; background: #18211e; color: #eaf2ee; }
.configuration-row button { height: 38px; border: 1px solid #63d6a2; border-radius: 4px; padding: 0 14px; background: #63d6a2; color: #102019; font-weight: 700; }
.value-control { min-width: 0; }
.value-current { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 8px; }
.value-current label { grid-column: 1 / -1; }
.value-field { position: relative; min-width: 0; }
.value-field input { width: 100%; padding-right: 42px; }
.value-field input[readonly] { border-color: #34413c; background: #131c19; color: #cbd8d1; font-family: ui-monospace, monospace; }
.configuration-row .value-toggle { position: absolute; top: 1px; right: 1px; width: 36px; padding: 0; border: 0; background: transparent; color: #9eaea6; display: grid; place-items: center; }
.value-toggle:hover { color: #eaf2ee; }
.value-toggle svg { width: 18px; height: 18px; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
.value-toggle svg[hidden] { display: none; }
.configuration-row .value-edit, .configuration-row .secondary-button { border-color: #526159; background: transparent; color: #cbd8d1; }
.configuration-row .value-edit:hover, .configuration-row .secondary-button:hover { border-color: #91e1bd; color: #eaf2ee; }
.configuration-row .value-form { grid-template-columns: minmax(0, 1fr) auto auto; }
.configuration-row .value-form-initial { grid-template-columns: minmax(0, 1fr) auto; }
.value-form[hidden], .value-current[hidden] { display: none; }
.configuration-unavailable { color: #819188; font-size: 11px; }
@media (max-width:720px) {
	.registration form { grid-template-columns: 1fr 1fr; }
	.registration button { grid-column: 1 / -1; }
	.index-heading { height: 46px; padding: 0 14px; }
	.app-row { min-height: 64px; padding: 11px 14px; }
	.app-row small { margin-top: 5px; }
	.inspector { padding: 26px 16px 36px; }
	.path { margin-bottom: 18px; }
	.title-row { padding-bottom: 22px; }
	.title-row h2 { margin-bottom: 6px; }
	.title-row p { line-height: 1.45; }
	.open-app { margin-top: 16px; }
	.stats div { min-height: 80px; padding: 18px 12px 16px 0; }
	.stats div + div { padding-left: 14px; }
	.stats div:nth-child(3), .stats div:nth-child(4) { border-top: 1px solid var(--line); }
	.stats dd { line-height: 1.35; }
	.history { padding-top: 24px; }
	.history h3 { margin: 0 0 14px; }
	.history > p { margin: 0; line-height: 1.5; }
	.operator-actions { grid-template-columns: 1fr; gap: 16px; }
	.configuration-row { grid-template-columns: 1fr; gap: 10px; padding: 16px 0; }
	.configuration-row .value-form, .configuration-row .value-form-initial { grid-template-columns: 1fr 1fr; }
	.value-form .value-field { grid-column: 1 / -1; }
}
html, body { min-height: 100%; }
body { font-family: "Aptos", "Gill Sans", "Trebuchet MS", sans-serif; }
button, input, select { font: inherit; letter-spacing: 0; }
button, a, input, select { -webkit-tap-highlight-color: transparent; }
button:focus-visible, a:focus-visible, input:focus-visible, select:focus-visible { outline: 3px solid #50aee6; outline-offset: 2px; }
[hidden] { display: none !important; }
.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0; }
.landing svg, .dashboard svg, .registration-dialog svg { width: 20px; height: 20px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }

/* Signed-out landing */
.landing {
	position: relative;
	min-height: 100svh;
	overflow: hidden;
	color: #f5fbf8;
	background: radial-gradient(circle at 74% 42%, #153f34 0%, #0a2521 34%, #061713 72%, #040e0d 100%);
	isolation: isolate;
}
.landing::before {
	content: "";
	position: absolute;
	z-index: 0;
	inset: 0;
	background: linear-gradient(90deg, rgb(4 14 14 / 95%) 0%, rgb(4 16 15 / 78%) 30%, rgb(4 16 15 / 22%) 48%, rgb(3 13 12 / 4%) 64%, rgb(3 13 12 / 0%) 78%), linear-gradient(0deg, rgb(3 12 11 / 52%) 0%, transparent 38%);
	pointer-events: none;
}
.landing::after {
	content: "";
	position: absolute;
	z-index: 1;
	inset: 0;
	background: radial-gradient(circle at 72% 44%, transparent 0%, transparent 33%, rgb(2 10 9 / 22%) 70%, rgb(2 8 8 / 60%) 100%), repeating-linear-gradient(104deg, rgb(216 255 239 / 0%) 0 8px, rgb(216 255 239 / 1.2%) 9px 10px);
	pointer-events: none;
}
.landing-scene { position: absolute; z-index: -1; inset: 0; width: 100%; height: 100%; opacity: 0; transition: opacity 1.4s cubic-bezier(.2, .7, .2, 1); }
.landing-scene[data-ready="true"] { opacity: 1; }
.landing-grid {
	position: absolute;
	z-index: -1;
	inset: 0;
	opacity: .08;
	background-image: linear-gradient(rgb(153 218 204 / 26%) 1px, transparent 1px), linear-gradient(90deg, rgb(153 218 204 / 26%) 1px, transparent 1px);
	background-size: 64px 64px;
	mask-image: linear-gradient(to right, black, transparent 52%);
}
.landing-header {
	position: relative;
	z-index: 3;
	height: 86px;
	padding: 0 clamp(24px, 5vw, 76px);
	display: flex;
	align-items: center;
	justify-content: space-between;
	border-bottom: 1px solid rgb(207 238 229 / 16%);
}
.landing-brand, .dashboard-brand { display: flex; align-items: center; gap: 12px; color: inherit; text-decoration: none; }
.landing .brand-mark {
	width: 40px;
	height: 40px;
	border: 1px solid rgb(220 250 240 / 70%);
	border-radius: 2px;
	background: rgb(11 40 43 / 60%);
	color: #bdf4df;
	font: 700 12px/1 "Cascadia Mono", "IBM Plex Mono", monospace;
}
.landing-brand strong { font-size: 15px; letter-spacing: 0; }
.landing-hero {
	position: relative;
	z-index: 2;
	min-height: calc(100svh - 86px);
	padding: 54px clamp(24px, 7vw, 104px) 176px;
	display: flex;
	align-items: center;
}
.landing-copy { width: min(610px, 49vw); animation: landing-in .9s .15s cubic-bezier(.2, .7, .2, 1) both; }
.landing-eyebrow, .section-label, .workspace-kicker, .rail-heading p {
	margin: 0;
	color: #3e8c72;
	font: 700 11px/1.2 "Cascadia Mono", "IBM Plex Mono", monospace;
	text-transform: uppercase;
}
.landing-eyebrow { display: flex; align-items: center; gap: 12px; color: #8de2c4; }
.landing-eyebrow::before { content: ""; width: 32px; height: 1px; background: #8de2c4; }
.landing-copy h1 {
	margin: 25px 0 24px;
	color: #f7fcfa;
	font-family: "Aptos Display", "Gill Sans", "Trebuchet MS", sans-serif;
	font-size: clamp(44px, 5vw, 76px);
	font-weight: 650;
	line-height: 1.02;
	letter-spacing: 0;
	text-shadow: 0 18px 52px rgb(0 8 7 / 48%);
}
.landing-lede { max-width: 580px; margin: 0; color: #bfd3ce; font-size: clamp(18px, 1.7vw, 25px); line-height: 1.46; }
.landing-auth { width: min(390px, 100%); margin-top: 38px; }
.landing .arcgis-button {
	width: 100%;
	min-height: 54px;
	margin: 0;
	padding: 0 18px 0 22px;
	display: flex;
	align-items: center;
	justify-content: space-between;
	border: 1px solid rgb(184 249 223 / 55%);
	border-radius: 6px;
	background: linear-gradient(180deg, #77e2b7 0%, #46c194 100%);
	color: #052019;
	font-weight: 700;
	letter-spacing: .2px;
	box-shadow: 0 14px 34px rgb(4 34 26 / 45%);
	transition: filter .2s, transform .2s, box-shadow .2s;
}
.landing .arcgis-button:hover:not(:disabled) { filter: brightness(1.06); transform: translateY(-2px); box-shadow: 0 18px 42px rgb(4 34 26 / 55%); }
.landing .arcgis-button:disabled { cursor: wait; opacity: .68; }
.landing-auth small { margin-top: 14px; display: flex; align-items: center; gap: 9px; color: #94aaa4; font-size: 12px; line-height: 1.4; }
.landing-auth small svg { width: 17px; height: 17px; color: #80cbb2; flex: none; }
.landing .auth-error { margin: 0 0 14px; padding: 11px 13px; border: 1px solid rgb(255 143 124 / 50%); border-left: 3px solid #ff8f7c; background: rgb(76 19 16 / 72%); color: #ffd8d1 !important; font-size: 13px; }
.landing-rail {
	position: absolute;
	z-index: 4;
	left: 0;
	right: 0;
	bottom: 0;
	min-height: 118px;
	padding: 0 clamp(24px, 7vw, 104px);
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	border-top: 1px solid rgb(207 238 229 / 18%);
	background: rgb(5 21 28 / 78%);
	backdrop-filter: blur(14px);
}
.landing-rail > div { min-width: 0; padding: 25px 28px 22px 0; display: grid; grid-template-columns: 30px 1fr; gap: 4px 12px; align-content: center; border-right: 1px solid rgb(207 238 229 / 13%); }
.landing-rail > div + div { padding-left: 28px; }
.landing-rail > div:last-child { border-right: 0; }
.landing-rail span { grid-row: 1 / 3; color: #6bd2af; font: 600 10px/1.5 "Cascadia Mono", "IBM Plex Mono", monospace; }
.rail-mark {
	align-self: center;
	justify-self: center;
	width: 9px;
	height: 9px;
	border: 1px solid #b8f9df;
	border-radius: 50%;
	box-shadow: 0 0 0 5px rgb(112 229 184 / 9%), 0 0 16px rgb(112 229 184 / 38%);
}
.landing-rail strong { color: #edf8f4; font-size: 14px; }
.landing-rail small { color: #88a49d; font-size: 11px; overflow-wrap: anywhere; }
.scene-unavailable .landing-scene { display: none; }
@keyframes landing-in { from { opacity: 0; transform: translateY(24px); } to { opacity: 1; transform: translateY(0); } }

/* Authenticated dashboard */
.dashboard {
	--dash-ink: #18241f;
	--dash-muted: #66736c;
	--dash-line: #d7dfda;
	--dash-paper: #f6f8f5;
	--dash-surface: #ffffff;
	--dash-green: #127458;
	--dash-green-soft: #e4f3ec;
	--dash-blue: #176a9a;
	--dash-blue-soft: #e7f2f8;
	--dash-orange: #d65f32;
	--dash-orange-soft: #fff0e8;
	--dash-red: #b33a32;
	--dash-red-soft: #fcebea;
	min-height: 100svh;
	color: var(--dash-ink);
	background: var(--dash-paper);
}
.dashboard-header {
	position: relative;
	z-index: 10;
	height: 72px;
	padding: 0 24px;
	display: flex;
	align-items: center;
	justify-content: space-between;
	border-bottom: 1px solid var(--dash-line);
	background: rgb(255 255 255 / 94%);
	backdrop-filter: blur(12px);
}
.dashboard-brand { color: var(--dash-ink); }
.dashboard .brand-mark {
	width: 38px;
	height: 38px;
	border: 1px solid #234b3d;
	border-radius: 3px;
	background: #173f35;
	color: #d8f6e9;
	font: 700 11px/1 "Cascadia Mono", "IBM Plex Mono", monospace;
}
.dashboard-brand > span:last-child { display: grid; gap: 2px; }
.dashboard-brand strong { font-size: 14px; }
.dashboard-brand small { color: var(--dash-muted); font-size: 10px; }
.dashboard-account { display: flex; align-items: center; gap: 12px; color: var(--dash-muted); font-size: 12px; }
.dashboard .docs-link { color: var(--dash-green); font-weight: 700; text-decoration: none; }
.dashboard .docs-link:hover { text-decoration: underline; }
.account-divider { width: 1px; height: 22px; background: var(--dash-line); }
.account-name { font-family: "Cascadia Mono", "IBM Plex Mono", monospace; }
.role-badge { padding: 5px 8px; border: 1px solid #c5ddd2; border-radius: 4px; background: var(--dash-green-soft); color: #205f49; font-size: 10px; font-weight: 750; text-transform: uppercase; }
.dashboard .icon-button { width: 36px; height: 36px; display: grid; place-items: center; border: 1px solid var(--dash-line); border-radius: 5px; background: #fff; color: var(--dash-muted); }
.dashboard .icon-button:hover { border-color: #9aaba2; color: var(--dash-ink); }
.dashboard .icon-button svg { width: 17px; height: 17px; }
.dashboard-layout { min-height: calc(100svh - 72px); display: grid; grid-template-columns: 286px minmax(0, 1fr); }
.app-rail { min-width: 0; padding: 27px 17px 32px; border-right: 1px solid var(--dash-line); background: #eef2ee; }
.rail-heading { padding: 0 5px; display: flex; align-items: end; justify-content: space-between; }
.rail-heading p { margin-bottom: 7px; color: #738078; font-size: 9px; }
.rail-heading h1 { margin: 0; font-size: 21px; line-height: 1; }
.app-count { min-width: 26px; height: 24px; padding: 0 7px; display: grid; place-items: center; border: 1px solid #cad4ce; border-radius: 4px; background: #fff; color: var(--dash-muted); font: 600 10px/1 "Cascadia Mono", "IBM Plex Mono", monospace; }
.new-app-button {
	width: 100%;
	min-height: 42px;
	margin: 23px 0 12px;
	padding: 0 13px;
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	border: 1px solid #173f35;
	border-radius: 5px;
	background: #173f35;
	color: #fff;
	font-size: 13px;
	font-weight: 750;
}
.new-app-button:hover { background: #225645; }
.new-app-button svg { width: 17px; height: 17px; }
.app-search { position: relative; display: block; margin: 12px 0 14px; }
.app-search svg { position: absolute; left: 11px; top: 11px; width: 16px; height: 16px; color: #85928b; pointer-events: none; }
.app-search input { width: 100%; height: 38px; padding: 0 11px 0 35px; border: 1px solid #cad4ce; border-radius: 5px; background: rgb(255 255 255 / 72%); color: var(--dash-ink); font-size: 12px; }
.app-search input::placeholder { color: #849189; }
.app-list { display: grid; gap: 6px; }
.dashboard .app-row {
	min-width: 0;
	min-height: 70px;
	padding: 11px 10px 10px 13px;
	display: grid;
	grid-template-columns: minmax(0, 1fr) auto;
	gap: 8px;
	align-items: center;
	border: 1px solid transparent;
	border-radius: 5px;
	color: var(--dash-ink);
	text-decoration: none;
}
.dashboard .app-row:hover { border-color: #d4ddd7; background: rgb(255 255 255 / 62%); }
.dashboard .app-row.active { border-color: #c7d3cc; background: #fff; box-shadow: inset 3px 0 var(--dash-green), 0 5px 16px rgb(23 54 43 / 5%); }
.app-row-main { min-width: 0; }
.dashboard .app-row strong { display: block; overflow: hidden; color: var(--dash-ink); font-size: 13px; text-overflow: ellipsis; white-space: nowrap; }
.dashboard .app-row small { display: block; margin-top: 6px; overflow: hidden; color: #748078; font: 500 9px/1.2 "Cascadia Mono", "IBM Plex Mono", monospace; text-overflow: ellipsis; white-space: nowrap; }
.app-status { display: inline-flex; align-items: center; gap: 5px; color: #758078; font-size: 9px; font-weight: 750; text-transform: capitalize; white-space: nowrap; }
.app-status i, .release-badge i { width: 7px; height: 7px; border-radius: 50%; background: #849189; }
.app-status-succeeded { color: #197052; }
.app-status-succeeded i, .release-badge-succeeded i { background: #1a946a; }
.app-status-failed { color: var(--dash-red); }
.app-status-failed i, .release-badge-failed i { background: #d04b42; }
.app-status-pending { color: var(--dash-blue); }
.app-status-pending i, .release-badge-pending i { background: #2a8cc2; }
.filter-empty { padding: 20px 8px; color: var(--dash-muted); font-size: 12px; text-align: center; }
.workspace { min-width: 0; padding: 39px clamp(26px, 4.5vw, 68px) 72px; }
.workspace-heading { max-width: 1160px; margin: 0 auto; display: flex; align-items: flex-start; justify-content: space-between; gap: 24px; }
.workspace-kicker { margin-bottom: 14px; color: #718078; font-size: 9px; }
.workspace-kicker span, .workspace-heading > div > p:last-child span { margin: 0 5px; color: #a4aea8; }
.workspace-heading h2 { margin: 0 0 8px; font-size: clamp(32px, 4vw, 48px); font-weight: 680; line-height: 1; letter-spacing: 0; }
.workspace-heading > div > p:last-child { margin: 0; color: var(--dash-muted); font-size: 12px; line-height: 1.55; overflow-wrap: anywhere; }
.open-app { min-height: 40px; padding: 0 13px 0 15px; display: inline-flex; align-items: center; gap: 9px; border: 1px solid #afbbb4; border-radius: 5px; background: #fff; color: var(--dash-ink); font-size: 12px; font-weight: 750; text-decoration: none; white-space: nowrap; }
.open-app:hover { border-color: var(--dash-green); color: var(--dash-green); }
.open-app svg { width: 16px; height: 16px; }
.workspace-tabs { max-width: 1160px; margin: 34px auto 0; display: flex; gap: 4px; border-bottom: 1px solid var(--dash-line); overflow-x: auto; scrollbar-width: thin; }
.workspace-tab { position: relative; min-height: 43px; padding: 0 13px; display: inline-flex; align-items: center; gap: 7px; border: 0; background: transparent; color: #66736c; font-size: 12px; font-weight: 720; white-space: nowrap; }
.workspace-tab:hover { color: var(--dash-ink); }
.workspace-tab.active { color: var(--dash-green); }
.workspace-tab.active::after { content: ""; position: absolute; left: 8px; right: 8px; bottom: -1px; height: 3px; background: var(--dash-green); }
.workspace-tab span, .panel-count { padding: 3px 6px; border-radius: 4px; background: #e9eeea; color: #66736c; font: 600 9px/1 "Cascadia Mono", "IBM Plex Mono", monospace; }
.workspace-panel { max-width: 1160px; margin: 0 auto; padding-top: 30px; }
.panel-intro { min-height: 65px; display: flex; align-items: flex-start; justify-content: space-between; gap: 24px; }
.panel-intro h3 { margin: 6px 0 0; font-size: 21px; }
.panel-intro p:not(.section-label) { margin: 8px 0 0; color: var(--dash-muted); font-size: 12px; line-height: 1.5; }
.section-label { color: #65736b; font-size: 9px; }
.release-badge { min-height: 30px; padding: 0 10px; display: inline-flex; align-items: center; gap: 7px; border: 1px solid #d3ddd7; border-radius: 4px; background: #fff; color: #65736b; font-size: 11px; font-weight: 750; text-transform: capitalize; white-space: nowrap; }
.release-badge-succeeded { border-color: #b9ddcd; background: var(--dash-green-soft); color: #17664b; }
.release-badge-failed { border-color: #edc2be; background: var(--dash-red-soft); color: var(--dash-red); }
.release-badge-pending { border-color: #c2dae8; background: var(--dash-blue-soft); color: var(--dash-blue); }
.dashboard .stats { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); margin: 18px 0 0; border: 1px solid var(--dash-line); border-right: 0; border-left: 0; background: rgb(255 255 255 / 64%); }
.dashboard .stats div { min-width: 0; min-height: 98px; padding: 20px 18px; border: 0; border-right: 1px solid var(--dash-line); }
.dashboard .stats div + div { padding-left: 18px; border-left: 0; }
.dashboard .stats div:last-child { border-right: 0; }
.dashboard .stats dt { margin: 0 0 13px; color: #77827c; font-size: 9px; font-weight: 750; text-transform: uppercase; }
.dashboard .stats dd { margin: 0; overflow-wrap: anywhere; color: var(--dash-ink); font: 600 12px/1.45 "Cascadia Mono", "IBM Plex Mono", monospace; text-transform: capitalize; }
.app-facts { margin-top: 25px; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); border-top: 1px solid var(--dash-line); }
.app-facts div { min-width: 0; padding: 18px 22px 18px 0; border-bottom: 1px solid var(--dash-line); }
.app-facts div + div { padding-left: 22px; border-left: 1px solid var(--dash-line); }
.app-facts span { display: block; margin-bottom: 8px; color: #78847d; font-size: 9px; font-weight: 750; text-transform: uppercase; }
.app-facts strong { display: block; overflow-wrap: anywhere; font: 550 11px/1.5 "Cascadia Mono", "IBM Plex Mono", monospace; }
.dashboard .publisher-note { margin-top: 24px; padding: 16px 18px; display: flex; gap: 12px; border: 1px solid #cbdcd4; border-radius: 5px; background: #edf6f1; color: #4f655b; font-size: 12px; line-height: 1.5; }
.publisher-note svg { width: 19px; height: 19px; flex: none; color: var(--dash-green); }
.publisher-note strong { display: block; margin-bottom: 2px; color: #245c48; }

/* Configuration */
.dashboard .configuration { margin-top: 15px; padding: 0; border: 0; border-top: 1px solid var(--dash-line); }
.dashboard .configuration > .section-heading { display: none; }
.dashboard .configuration-row { min-height: 104px; padding: 18px 0; display: grid; grid-template-columns: minmax(170px, .8fr) minmax(110px, .42fr) minmax(300px, 1.2fr); gap: 24px; align-items: center; border-bottom: 1px solid var(--dash-line); }
.dashboard .configuration-name strong { color: var(--dash-ink); font: 650 12px/1.35 "Cascadia Mono", "IBM Plex Mono", monospace; overflow-wrap: anywhere; }
.dashboard .configuration-name small, .dashboard .configuration-state small, .dashboard .configuration-empty { display: block; margin-top: 7px; color: #78847d; font-size: 11px; line-height: 1.45; }
.dashboard .configuration-state { color: #54625b; font-size: 11px; font-weight: 700; }
.dashboard .configuration-row form { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 8px; }
.dashboard .configuration-row label { grid-column: 1 / -1; color: #738078; font-size: 9px; font-weight: 750; text-transform: uppercase; }
.dashboard .configuration-row input, .operator-actions input, .operator-actions select, .registration-dialog input { min-width: 0; height: 40px; border: 1px solid #bcc8c1; border-radius: 4px; padding: 0 10px; background: #fff; color: var(--dash-ink); }
.dashboard .configuration-row button, .operator-actions button { height: 40px; border: 1px solid var(--dash-green); border-radius: 4px; padding: 0 13px; background: var(--dash-green); color: #fff; font-size: 11px; font-weight: 750; }
.dashboard .value-current { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 8px; }
.dashboard .value-current label { grid-column: 1 / -1; }
.dashboard .value-field { position: relative; min-width: 0; }
.dashboard .value-field input { width: 100%; padding-right: 41px; }
.dashboard .value-field input[readonly] { border-color: #cbd4cf; background: #f0f3f1; color: #526059; font-family: "Cascadia Mono", "IBM Plex Mono", monospace; }
.dashboard .configuration-row .value-toggle { position: absolute; top: 1px; right: 1px; width: 38px; height: 38px; padding: 0; display: grid; place-items: center; border: 0; background: transparent; color: #6d7972; }
.dashboard .value-toggle:hover { color: var(--dash-green); }
.dashboard .value-toggle svg { width: 17px; height: 17px; }
.dashboard .configuration-row .value-edit, .dashboard .configuration-row .secondary-button { border-color: #aebbb3; background: #fff; color: #405048; }
.dashboard .configuration-row .value-edit:hover, .dashboard .configuration-row .secondary-button:hover { border-color: var(--dash-green); color: var(--dash-green); }
.dashboard .configuration-row .value-form { grid-template-columns: minmax(0, 1fr) auto auto; }
.dashboard .configuration-row .value-form-initial { grid-template-columns: minmax(0, 1fr) auto; }
.dashboard .configuration-unavailable { color: #7d8982; font-size: 11px; }

/* Deployments and controls */
.dashboard .deployment-log { padding-top: 20px; }
.dashboard .deployment-log h3, .dashboard .history h3 { margin: 0 0 11px; color: #66736c; font-size: 10px; text-transform: uppercase; }
.dashboard .deployment-log pre { max-height: 330px; margin: 0; overflow: auto; border: 1px solid #263a33; border-radius: 5px; padding: 17px; background: #101a17; color: #c3d8cf; font: 11px/1.75 "Cascadia Mono", "IBM Plex Mono", monospace; white-space: pre-wrap; overflow-wrap: anywhere; }
.dashboard .deployment-log p { margin: 0; padding: 22px; border: 1px dashed #c6d0ca; color: var(--dash-muted); font-size: 12px; text-align: center; }
.dashboard .history { padding-top: 30px; }
.dashboard .history article { min-height: 70px; display: grid; grid-template-columns: minmax(0, 1fr) auto 94px; gap: 18px; align-items: center; border-bottom: 1px solid var(--dash-line); }
.dashboard .history strong, .dashboard .history small { display: block; font-family: "Cascadia Mono", "IBM Plex Mono", monospace; }
.dashboard .history strong { font-size: 12px; }
.dashboard .history small { margin-top: 7px; overflow-wrap: anywhere; color: #75827b; font-size: 10px; }
.dashboard .history a { color: var(--dash-blue); font-size: 11px; font-weight: 700; text-align: right; }
.dashboard .deployment-status { min-width: 74px; padding: 5px 8px; border-radius: 4px; background: #e9eeeb; font-size: 10px; font-weight: 750; text-align: center; text-transform: capitalize; }
.dashboard .status-succeeded { background: var(--dash-green-soft); color: #17664b; }
.dashboard .status-failed { background: var(--dash-red-soft); color: var(--dash-red); }
.dashboard .status-pending { background: var(--dash-blue-soft); color: var(--dash-blue); }
.dashboard .operator-actions { margin-top: 18px; padding: 0; display: grid; grid-template-columns: 1fr 1fr; gap: 16px; border: 0; }
.dashboard .operator-actions form { min-width: 0; padding: 20px; display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 9px; border: 1px solid var(--dash-line); border-radius: 6px; background: #fff; }
.dashboard .operator-actions label { grid-column: 1 / -1; color: #647168; font-size: 10px; font-weight: 750; text-transform: uppercase; }
.dashboard .operator-actions .delete-form { border-color: #edc7c3; background: #fffafa; }
.dashboard .operator-actions .delete-form label { color: var(--dash-red); }
.dashboard .operator-actions .delete-form button { border-color: var(--dash-red); background: var(--dash-red); }

/* Empty state and registration */
.dashboard .empty-state { min-height: calc(100svh - 150px); display: grid; place-items: center; align-content: center; color: var(--dash-muted); text-align: center; }
.dashboard .empty-symbol { width: 70px; height: 70px; margin-bottom: 22px; display: grid; place-items: center; border: 1px solid #bfd0c6; border-radius: 6px; background: #fff; color: var(--dash-green); transform: rotate(3deg); }
.dashboard .empty-symbol svg { width: 27px; height: 27px; }
.dashboard .empty-state h2 { margin: 9px 0 8px; color: var(--dash-ink); font-size: 28px; }
.dashboard .empty-state > p:not(.section-label) { max-width: 460px; margin: 0; line-height: 1.55; }
.dashboard .empty-state .new-app-button { width: auto; margin-top: 23px; padding: 0 20px; }
.registration-dialog { width: min(680px, calc(100vw - 28px)); max-height: calc(100svh - 28px); padding: 0; overflow: auto; border: 0; border-radius: 8px; background: #fff; color: #18241f; box-shadow: 0 28px 80px rgb(5 20 14 / 34%); }
.registration-dialog::backdrop { background: rgb(10 23 18 / 70%); backdrop-filter: blur(4px); }
.registration-dialog > form > header { min-height: 82px; padding: 19px 22px; display: flex; align-items: center; justify-content: space-between; border-bottom: 1px solid #d7dfda; }
.registration-dialog header h2 { margin: 6px 0 0; font-size: 22px; }
.dialog-close { width: 38px; height: 38px; display: grid; place-items: center; border: 1px solid #d1d9d4; border-radius: 5px; background: #fff; color: #5e6b64; }
.dialog-close:hover { border-color: #8d9b93; color: #18241f; }
.dialog-close svg { width: 18px; height: 18px; }
.dialog-body { padding: 23px 22px 25px; }
.dialog-lede { margin: 0 0 22px; color: #66736c; font-size: 13px; line-height: 1.5; }
.registration-fields { display: grid; grid-template-columns: 1fr 1fr; gap: 17px 14px; }
.registration-dialog label { display: grid; gap: 7px; color: #46544d; font-size: 11px; font-weight: 750; }
.registration-dialog input::placeholder { color: #98a29c; }
.type-field { margin: 22px 0 0; padding: 0; display: grid; grid-template-columns: 1fr 1fr; gap: 8px; border: 0; }
.type-field legend { margin-bottom: 8px; color: #46544d; font-size: 11px; font-weight: 750; }
.type-field label { position: relative; display: block; cursor: pointer; }
.type-field input { position: absolute; opacity: 0; pointer-events: none; }
.type-field label span { min-height: 67px; padding: 12px 13px; display: block; border: 1px solid #ccd5d0; border-radius: 5px; background: #fff; }
.type-field label:hover span { border-color: #93a39a; }
.type-field input:checked + span { border-color: #288064; background: #eaf5ef; box-shadow: inset 0 0 0 1px #288064; }
.type-field input:focus-visible + span { outline: 3px solid #50aee6; outline-offset: 2px; }
.type-field strong, .type-field small { display: block; }
.type-field strong { color: #26352e; font-size: 12px; }
.type-field small { margin-top: 5px; color: #6f7b74; font-size: 10px; font-weight: 500; line-height: 1.35; }
.slug-preview { margin-top: 18px; padding: 11px 13px; display: flex; align-items: center; justify-content: space-between; gap: 14px; border: 1px solid #d9dfdb; border-radius: 5px; background: #f5f7f5; }
.slug-preview span { color: #68756e; font-size: 9px; font-weight: 750; text-transform: uppercase; }
.slug-preview strong { overflow-wrap: anywhere; color: #25644e; font: 600 11px/1.4 "Cascadia Mono", "IBM Plex Mono", monospace; text-align: right; }
.registration-dialog footer { min-height: 72px; padding: 15px 22px; display: flex; align-items: center; justify-content: flex-end; gap: 9px; border-top: 1px solid #d7dfda; background: #f7f9f7; }
.registration-dialog footer button { min-height: 40px; padding: 0 15px; border-radius: 5px; font-size: 12px; font-weight: 750; }
.registration-dialog .secondary-button { border: 1px solid #bbc6bf; background: #fff; color: #394940; }
.registration-dialog .register-submit { display: inline-flex; align-items: center; gap: 8px; border: 1px solid #173f35; background: #173f35; color: #fff; }
.registration-dialog .register-submit:hover { background: #225645; }
.registration-dialog .register-submit svg { width: 16px; height: 16px; }

@media (max-width: 1000px) {
	.dashboard-layout { grid-template-columns: 248px minmax(0, 1fr); }
	.workspace { padding-inline: 28px; }
	.dashboard .configuration-row { grid-template-columns: minmax(145px, .7fr) minmax(90px, .35fr) minmax(250px, 1fr); gap: 16px; }
	.app-status { font-size: 0; }
	.app-status i { width: 8px; height: 8px; }
}

@media (max-width: 760px) {
	.landing-header { height: 70px; padding: 0 18px; }
	.landing-header .brand-mark { width: 36px; height: 36px; }
	.landing-hero { min-height: calc(100svh - 70px); padding: 60px 20px 176px; align-items: flex-start; }
	.landing-copy { width: 100%; }
	.landing-copy h1 { margin: 22px 0 19px; font-size: clamp(38px, 9vw, 56px); }
	.landing-lede { max-width: 520px; font-size: 18px; }
	.landing-auth { margin-top: 30px; }
	.landing::before { background: linear-gradient(180deg, rgb(4 15 14 / 95%) 0%, rgb(4 16 15 / 78%) 52%, rgb(4 16 15 / 18%) 100%); }
	.landing-grid { mask-image: linear-gradient(to bottom, black, transparent 85%); }
	.landing-rail { min-height: 110px; padding: 0 18px; }
	.landing-rail > div { padding: 21px 10px 18px 0; grid-template-columns: 22px 1fr; gap: 2px 5px; }
	.landing-rail > div + div { padding-left: 10px; }
	.landing-rail small { display: none; }
	.landing-rail strong { font-size: 12px; }

	.dashboard-header { height: 64px; padding: 0 14px; }
	.dashboard-brand small, .account-name, .account-divider { display: none; }
	.dashboard-account { gap: 9px; }
	.dashboard-layout { min-height: calc(100svh - 64px); display: block; }
	.app-rail { padding: 20px 15px 17px; border-right: 0; border-bottom: 1px solid var(--dash-line); }
	.rail-heading { align-items: center; }
	.rail-heading p { display: none; }
	.rail-heading h1 { font-size: 18px; }
	.new-app-button { margin: 15px 0 10px; }
	.app-search { margin: 10px 0; }
	.app-list { display: flex; gap: 7px; overflow-x: auto; scroll-snap-type: x mandatory; padding-bottom: 3px; }
	.dashboard .app-row { min-width: 215px; min-height: 64px; scroll-snap-align: start; }
	.app-status { font-size: 9px; }
	.workspace { padding: 27px 16px 48px; }
	.workspace-heading { display: block; }
	.workspace-heading h2 { font-size: 34px; }
	.open-app { margin-top: 18px; }
	.workspace-tabs { margin-top: 25px; display: grid; grid-template-columns: 1fr 1fr; gap: 0; overflow: visible; }
	.workspace-tab { justify-content: center; border-bottom: 1px solid #e3e8e5; }
	.workspace-panel { padding-top: 24px; }
	.panel-intro { min-height: 58px; }
	.dashboard .stats { grid-template-columns: 1fr 1fr; }
	.dashboard .stats div { min-height: 88px; }
	.dashboard .stats div:nth-child(2) { border-right: 0; }
	.dashboard .stats div:nth-child(-n+2) { border-bottom: 1px solid var(--dash-line); }
	.app-facts { grid-template-columns: 1fr; }
	.app-facts div + div { padding-left: 0; border-left: 0; }
	.dashboard .configuration-row { grid-template-columns: 1fr; gap: 11px; padding: 18px 0; }
	.dashboard .configuration-row .value-form, .dashboard .configuration-row .value-form-initial { grid-template-columns: 1fr 1fr; }
	.dashboard .value-form .value-field { grid-column: 1 / -1; }
	.dashboard .history article { grid-template-columns: minmax(0, 1fr) auto; padding: 13px 0; }
	.dashboard .history article a { grid-column: 1 / -1; text-align: left; }
	.dashboard .operator-actions { grid-template-columns: 1fr; }
	.registration-fields { grid-template-columns: 1fr; }
}

@media (max-width: 440px) {
	.landing-brand strong { display: none; }
	.landing-hero { padding-top: 46px; }
	.landing-eyebrow { font-size: 9px; }
	.landing-copy h1 { font-size: 36px; }
	.landing-lede { font-size: 16px; }
	.landing-auth small { font-size: 11px; }
	.landing-rail { padding-inline: 12px; }
	.landing-rail > div { grid-template-columns: 1fr; }
	.landing-rail span { grid-row: auto; }
	.rail-mark { justify-self: start; }
	.dashboard-brand > span:last-child { display: none; }
	.dashboard .docs-link { font-size: 11px; }
	.role-badge { font-size: 9px; }
	.panel-count { display: none; }
	.dashboard .operator-actions form { grid-template-columns: 1fr; }
	.dashboard .operator-actions label { grid-column: auto; }
	.type-field { grid-template-columns: 1fr; }
	.slug-preview { display: grid; }
	.slug-preview strong { text-align: left; }
}

@media (prefers-reduced-motion: reduce) {
	*, *::before, *::after { scroll-behavior: auto !important; animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; }
}