.console-body {
	min-height: 100vh;
}

.console-shell .container {
	width: min(1560px, calc(100% - 2.5rem));
}

.console-main {
	position: relative;
	z-index: 1;
}

.auth-layout,
.console-section {
	padding-top: 4.5rem;
}

.auth-grid {
	display: grid;
	gap: 1.5rem;
	grid-template-columns: minmax(0, 1.35fr) minmax(320px, 0.85fr);
}

.auth-panel,
.auth-side,
.console-overview,
.console-column {
	background: var(--panel);
	border: 1px solid rgba(116, 145, 255, 0.16);
	border-radius: var(--radius-lg);
	box-shadow: var(--shadow);
	padding: 2rem;
}

.auth-panel h1,
.console-overview h1 {
	margin: 0.3rem 0 1rem;
	font-size: clamp(2.2rem, 4vw, 3.6rem);
	line-height: 1.02;
	letter-spacing: -0.05em;
}

.console-copy {
	color: var(--muted-strong);
	max-width: 58ch;
	line-height: 1.7;
}

.auth-actions {
	display: flex;
	flex-wrap: wrap;
	gap: 0.9rem;
	margin-top: 1.6rem;
}

.notice-banner {
	margin-top: 1.2rem;
	padding: 0.95rem 1rem;
	border-radius: 1rem;
	border: 1px solid rgba(255, 77, 109, 0.22);
	background: rgba(255, 77, 109, 0.08);
	color: #ffe3e9;
}

.notice-info {
	border-color: rgba(116, 145, 255, 0.22);
	background: rgba(61, 114, 255, 0.08);
	color: var(--muted-strong);
}

.auth-points,
.mini-stack {
	display: grid;
	gap: 0.9rem;
	margin-top: 1.5rem;
}

.auth-points {
	padding-left: 1.1rem;
	color: var(--muted-strong);
}

.auth-points li {
	line-height: 1.5;
}

.mini-stack div {
	padding: 1rem 1.1rem;
	border-radius: 1rem;
	background: rgba(11, 18, 34, 0.72);
	border: 1px solid rgba(116, 145, 255, 0.12);
}

.mini-stack p,
.auth-terminal p {
	margin: 0.4rem 0 0;
	color: var(--muted);
}

.auth-terminal {
	margin-top: 1.4rem;
}

.console-grid {
	display: grid;
	gap: 1.5rem;
	grid-template-columns: minmax(0, 1.08fr) minmax(0, 0.98fr) minmax(340px, 0.94fr);
	align-items: start;
}

.cli-runtime-grid {
	grid-template-columns: minmax(0, 0.9fr) minmax(0, 1.2fr) minmax(320px, 0.9fr);
}

.console-overview {
	grid-column: 1 / -1;
}

.overview-top,
.column-head,
.repo-card-top,
.console-header-actions,
.stats-row,
.file-meta,
.editor-toolbar,
.file-meta-actions {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 1rem;
}

.stats-row {
	margin-top: 1.6rem;
	flex-wrap: wrap;
}

.stat-card {
	min-width: 180px;
	padding: 1rem 1.1rem;
	border-radius: 1rem;
	background: rgba(10, 16, 30, 0.78);
	border: 1px solid rgba(116, 145, 255, 0.14);
}

.stat-card span,
.user-chip,
.workspace-card small,
.repo-card p,
.empty-state {
	color: var(--muted);
}

.stat-card strong {
	display: block;
	margin-top: 0.3rem;
	font-size: 1.6rem;
}

.user-chip {
	padding: 0.7rem 0.95rem;
	border-radius: 999px;
	background: rgba(11, 18, 34, 0.78);
	border: 1px solid rgba(116, 145, 255, 0.14);
	font-family: 'IBM Plex Mono', monospace;
}

.live-pill {
	background: rgba(255, 77, 109, 0.12);
	color: #ffb7c3;
}

.repo-search {
	min-width: 220px;
	border-radius: 999px;
	border: 1px solid rgba(116, 145, 255, 0.14);
	background: rgba(10, 16, 30, 0.78);
	color: var(--text);
	padding: 0.82rem 1rem;
	outline: none;
}

.repo-search:focus {
	border-color: rgba(116, 145, 255, 0.48);
	box-shadow: 0 0 0 4px rgba(61, 114, 255, 0.15);
}

.repo-list,
.workspace-list {
	display: grid;
	gap: 1rem;
	margin-top: 1.4rem;
}

.repo-card,
.workspace-card {
	padding: 1.15rem;
	border-radius: 1rem;
	background: rgba(10, 16, 30, 0.78);
	border: 1px solid rgba(116, 145, 255, 0.14);
}

.repo-card.is-selected {
	border-color: rgba(116, 145, 255, 0.48);
	background: rgba(18, 30, 58, 0.9);
	box-shadow: inset 0 0 0 1px rgba(116, 145, 255, 0.16);
}

.repo-card strong,
.workspace-card strong {
	display: block;
	font-size: 1rem;
}

.repo-card-meta,
.brief-meta-row,
.selected-repo-meta-row {
	display: flex;
	align-items: center;
	flex-wrap: wrap;
	gap: 0.55rem;
}

.repo-card-top a {
	font-family: 'IBM Plex Mono', monospace;
	font-size: 0.78rem;
	color: var(--blue-ice);
}

.repo-card button {
	margin-top: 1rem;
}

.repo-card-actions,
.workspace-card-actions {
	display: flex;
	flex-wrap: wrap;
	gap: 0.75rem;
	margin-top: 1rem;
}

.workspace-card p {
	margin: 0.45rem 0;
	color: var(--muted-strong);
}

.workspace-brief-preview {
	display: -webkit-box;
	overflow: hidden;
	-webkit-box-orient: vertical;
	-webkit-line-clamp: 3;
	line-height: 1.6;
}

.console-log {
	margin-top: 1.2rem;
	max-height: 340px;
	overflow: auto;
}

.console-log p {
	margin: 0.5rem 0;
}

.cli-runtime-log {
	margin-top: 1.3rem;
	min-height: 460px;
	max-height: 620px;
}

.cli-log-entry-warn .prompt,
.cli-log-entry-error .prompt {
	color: #ffb7c3;
}

.cli-output-block {
	margin: 0.65rem 0;
	padding: 0.85rem 0.95rem;
	border-radius: 0.9rem;
	background: rgba(6, 10, 20, 0.92);
	border: 1px solid rgba(116, 145, 255, 0.1);
	color: #dbe8ff;
	font-family: 'IBM Plex Mono', monospace;
	font-size: 0.84rem;
	line-height: 1.55;
	white-space: pre-wrap;
	word-break: break-word;
}

.cli-output-stderr {
	border-color: rgba(255, 77, 109, 0.22);
	color: #ffd7de;
}

.empty-state {
	margin: 0;
	padding: 1rem;
	border-radius: 1rem;
	background: rgba(10, 16, 30, 0.52);
}

.console-side-panel {
	display: flex;
	flex-direction: column;
}

.console-tall-panel {
	min-height: 760px;
}

.console-brief-panel,
.console-context-panel {
	display: flex;
	flex-direction: column;
}

.console-side-copy {
	margin: 0.9rem 0 0;
}

.selected-repo-card {
	margin-top: 1.2rem;
	padding: 1.1rem;
	border-radius: 1rem;
	border: 1px solid rgba(116, 145, 255, 0.14);
	background: rgba(10, 16, 30, 0.78);
}

.selected-repo-card strong {
	display: block;
	font-size: 1rem;
}

.selected-repo-card p {
	margin: 0.5rem 0 0;
	color: var(--muted-strong);
}

.selected-repo-link {
	display: inline-flex;
	margin-top: 0.95rem;
	font-family: 'IBM Plex Mono', monospace;
	font-size: 0.78rem;
	color: var(--blue-ice);
}

.brief-meta-row {
	margin-top: 0.95rem;
}

.meta-chip {
	display: inline-flex;
	align-items: center;
	padding: 0.4rem 0.7rem;
	border-radius: 999px;
	border: 1px solid rgba(116, 145, 255, 0.12);
	background: rgba(12, 18, 34, 0.78);
	color: var(--muted);
	font-family: 'IBM Plex Mono', monospace;
	font-size: 0.7rem;
	letter-spacing: 0.08em;
	text-transform: uppercase;
}

.brief-label {
	display: block;
	margin-top: 1.25rem;
}

.brief-input {
	width: 100%;
	margin-top: 0.7rem;
	min-height: 180px;
	border-radius: 1rem;
	border: 1px solid rgba(116, 145, 255, 0.14);
	background: rgba(6, 10, 20, 0.82);
	color: var(--text);
	padding: 0.95rem 1rem;
	outline: none;
	font: inherit;
	line-height: 1.65;
	resize: vertical;
}

.cli-command-form {
	margin-top: 1rem;
}

.cli-command-input {
	min-height: 140px;
}

.cli-session-list {
	margin-top: 1rem;
}

.cli-session-meta {
	margin-top: 1.2rem;
}

.workspace-card-compact {
	padding: 0.95rem 1rem;
}

.cli-file-sample-list {
	margin-top: 1rem;
}

.cli-file-open-row {
	display: flex;
	align-items: center;
	gap: 0.75rem;
	margin-top: 1rem;
}

.cli-file-path-input {
	flex: 1 1 auto;
	min-width: 0;
}

.cli-file-editor {
	min-height: 320px;
	font-family: 'IBM Plex Mono', monospace;
	font-size: 0.84rem;
	line-height: 1.6;
}

.cli-ai-summary {
	min-height: 92px;
}

.cli-agent-summary,
.cli-agent-results {
	margin-top: 1rem;
}

.cli-agent-results-head {
	margin-top: 0.2rem;
}

.cli-agent-lists {
	margin-top: 0.9rem;
}

.agent-list {
	margin: 0.6rem 0 0;
	padding-left: 1.2rem;
	color: var(--muted-strong);
	line-height: 1.65;
}

.agent-list li + li {
	margin-top: 0.45rem;
}

.cli-agent-command-list,
.cli-agent-search-list {
	margin-top: 0.9rem;
}

.cli-agent-search-matches {
	margin-top: 0.75rem;
}

.cli-agent-search-matches strong {
	font-size: 0.86rem;
}

.cli-diff-log {
	margin-top: 1rem;
	min-height: 220px;
	max-height: 340px;
}

.cli-diff-block {
	font-size: 0.8rem;
}

.brief-input:focus {
	border-color: rgba(116, 145, 255, 0.42);
	box-shadow: 0 0 0 4px rgba(61, 114, 255, 0.15);
}

.brief-input:disabled {
	opacity: 0.6;
	cursor: not-allowed;
}

.brief-actions {
	display: flex;
	flex-wrap: wrap;
	gap: 0.75rem;
	margin-top: 1rem;
}

.console-subsection-head {
	margin-top: 1.35rem;
	padding-top: 1.15rem;
	border-top: 1px solid rgba(116, 145, 255, 0.1);
}

.workspace-list-compact {
	max-height: 320px;
	overflow: auto;
	padding-right: 0.1rem;
}

.console-log-compact {
	margin-top: 0.85rem;
	max-height: 260px;
	padding: 1rem 1rem 1.1rem;
	border-radius: 1rem;
	background: rgba(8, 12, 24, 0.84);
	border: 1px solid rgba(116, 145, 255, 0.12);
}

.console-context-panel .workspace-list-compact {
	margin-top: 1.2rem;
	max-height: 380px;
}

.console-context-panel .console-log-compact {
	flex: 1 1 auto;
	max-height: none;
	min-height: 260px;
}

.is-disabled {
	opacity: 0.45;
	pointer-events: none;
}

.workspace-grid {
	display: grid;
	gap: 1.5rem;
	grid-template-columns: minmax(250px, 310px) minmax(0, 1.9fr) minmax(360px, 430px);
	align-items: stretch;
}

.workspace-overview {
	grid-column: 1 / -1;
	background: var(--panel);
	border: 1px solid rgba(116, 145, 255, 0.16);
	border-radius: var(--radius-lg);
	box-shadow: var(--shadow);
	padding: 1.55rem 1.75rem;
}

.workspace-overview h1 {
	margin: 0.2rem 0 0.8rem;
	font-size: clamp(1.9rem, 2.8vw, 3.1rem);
	line-height: 0.98;
	letter-spacing: -0.05em;
	max-width: 15ch;
}

.workspace-overview .console-copy {
	max-width: 72ch;
	font-size: 0.98rem;
	line-height: 1.65;
}

.workspace-overview .stats-row {
	margin-top: 1.25rem;
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 1rem;
}

.workspace-overview .stat-card {
	min-width: 0;
	padding: 0.95rem 1rem;
}

.workspace-overview .stat-card strong {
	font-size: 1.18rem;
	line-height: 1.2;
}

.workspace-sidebar,
.workspace-editor,
.workspace-activity {
	background: var(--panel);
	border: 1px solid rgba(116, 145, 255, 0.16);
	border-radius: var(--radius-lg);
	box-shadow: var(--shadow);
	padding: 1.5rem;
	min-height: 760px;
}

.workspace-sidebar {
	position: sticky;
	top: 6.25rem;
}

.workspace-activity {
	display: flex;
	flex-direction: column;
}

.workspace-sidebar h2,
.workspace-editor h2,
.workspace-activity h2 {
	margin: 0.18rem 0 0;
	font-size: 1.2rem;
	line-height: 1.08;
	letter-spacing: -0.04em;
}

.workspace-editor [data-file-title] {
	font-size: clamp(1.3rem, 1.5vw, 1.7rem);
}

.tree-root,
.tree-children {
	display: grid;
	gap: 0.25rem;
	margin-top: 1rem;
}

.tree-item-button {
	width: 100%;
	display: flex;
	align-items: center;
	gap: 0.7rem;
	padding: 0.72rem 0.8rem;
	padding-left: calc(0.8rem + (var(--tree-depth, 0) * 0.9rem));
	border: 1px solid rgba(116, 145, 255, 0.1);
	border-radius: 0.9rem;
	background: rgba(10, 16, 30, 0.72);
	color: var(--text);
	font: inherit;
	text-align: left;
	cursor: pointer;
	transition: border-color 120ms ease, transform 120ms ease, background 120ms ease;
}

.tree-item-button:hover {
	border-color: rgba(116, 145, 255, 0.28);
	transform: translateX(2px);
}

.tree-item-button.is-active {
	border-color: rgba(116, 145, 255, 0.46);
	background: rgba(27, 42, 86, 0.62);
}

.tree-item-icon {
	width: 1rem;
	color: var(--blue-ice);
	font-family: 'IBM Plex Mono', monospace;
}

.tree-item-dir .tree-item-icon {
	color: #a4bcff;
}

.tree-item-file .tree-item-icon {
	color: #ffb7c3;
}

.tree-children {
	margin-top: 0.35rem;
}

.file-viewer,
.workspace-log {
	margin-top: 1.2rem;
	min-height: 520px;
	max-height: 70vh;
	overflow: auto;
}

.file-viewer-empty {
	margin-top: 1.2rem;
	padding: 1rem;
	border-radius: 1rem;
	background: rgba(10, 16, 30, 0.52);
	color: var(--muted);
}

.file-meta {
	align-items: flex-start;
}

.file-meta-actions {
	flex-wrap: wrap;
	justify-content: flex-end;
}

.editor-toolbar {
	margin-top: 1.2rem;
	padding: 0.9rem 1rem;
	border-radius: 1rem;
	border: 1px solid rgba(116, 145, 255, 0.14);
	background: rgba(10, 16, 30, 0.72);
}

.editor-dirty-indicator {
	display: inline-flex;
	align-items: center;
	padding: 0.35rem 0.7rem;
	border-radius: 999px;
	background: rgba(116, 145, 255, 0.12);
	color: var(--muted-strong);
	font-family: 'IBM Plex Mono', monospace;
	font-size: 0.75rem;
	letter-spacing: 0.08em;
	text-transform: uppercase;
}

.editor-dirty-indicator.is-dirty {
	background: rgba(255, 77, 109, 0.16);
	color: #ffd0d8;
}

.commit-message-input {
	flex: 1 1 240px;
	border-radius: 999px;
	border: 1px solid rgba(116, 145, 255, 0.14);
	background: rgba(6, 10, 20, 0.8);
	color: var(--text);
	padding: 0.75rem 0.95rem;
	outline: none;
	font: inherit;
}

.commit-message-input:focus {
	border-color: rgba(116, 145, 255, 0.42);
	box-shadow: 0 0 0 4px rgba(61, 114, 255, 0.15);
}

.assistant-copy {
	margin: 0.8rem 0 0;
}

.assistant-actions,
.assistant-form-actions,
.assistant-status-row {
	display: flex;
	align-items: center;
	gap: 0.75rem;
}

.assistant-actions,
.assistant-status-row,
.assistant-thread,
.assistant-form,
.workspace-log-head {
	margin-top: 1.1rem;
}

.assistant-actions {
	flex-wrap: wrap;
}

.assistant-status-row {
	align-items: flex-start;
	flex-wrap: wrap;
}

.assistant-context,
.assistant-hint {
	color: var(--muted);
	font-size: 0.83rem;
	line-height: 1.5;
}

.assistant-thread {
	display: grid;
	gap: 0.9rem;
	min-height: 250px;
	max-height: 360px;
	overflow: auto;
	padding-right: 0.15rem;
}

.assistant-message {
	padding: 1rem;
	border-radius: 1rem;
	border: 1px solid rgba(116, 145, 255, 0.14);
	background: rgba(10, 16, 30, 0.7);
}

.assistant-message-user {
	border-color: rgba(116, 145, 255, 0.28);
	background: rgba(16, 27, 52, 0.85);
}

.assistant-message-assistant {
	border-color: rgba(255, 77, 109, 0.16);
	background: rgba(15, 12, 25, 0.86);
}

.assistant-message-head {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 1rem;
	margin-bottom: 0.75rem;
	color: var(--muted);
	font-size: 0.78rem;
	text-transform: uppercase;
	letter-spacing: 0.08em;
}

.assistant-message-role {
	color: var(--blue-ice);
}

.assistant-message-body {
	margin: 0;
	white-space: pre-wrap;
	word-break: break-word;
	font-family: 'IBM Plex Mono', monospace;
	font-size: 0.86rem;
	line-height: 1.68;
	color: #dbe7ff;
}

.assistant-form {
	padding: 1rem;
	border-radius: 1rem;
	border: 1px solid rgba(116, 145, 255, 0.14);
	background: rgba(10, 16, 30, 0.72);
}

.assistant-label {
	display: block;
	margin-bottom: 0.7rem;
}

.assistant-input {
	width: 100%;
	min-height: 110px;
	border-radius: 1rem;
	border: 1px solid rgba(116, 145, 255, 0.14);
	background: rgba(6, 10, 20, 0.8);
	color: var(--text);
	padding: 0.9rem 1rem;
	outline: none;
	font: inherit;
	resize: vertical;
}

.assistant-input:focus {
	border-color: rgba(116, 145, 255, 0.42);
	box-shadow: 0 0 0 4px rgba(61, 114, 255, 0.15);
}

.assistant-form-actions {
	justify-content: space-between;
	flex-wrap: wrap;
	margin-top: 0.8rem;
}

.workspace-log-head {
	padding-top: 0.2rem;
	border-top: 1px solid rgba(116, 145, 255, 0.1);
}

.workspace-log {
	flex: 1 1 auto;
	min-height: 240px;
	max-height: none;
	margin-top: 0.85rem;
	padding: 1rem 1rem 1.15rem;
	border-radius: 1rem;
	background: rgba(8, 12, 24, 0.84);
	border: 1px solid rgba(116, 145, 255, 0.12);
}

.file-editor {
	width: 100%;
	margin-top: 1rem;
	min-height: 520px;
	border: 1px solid rgba(116, 145, 255, 0.12);
	background: rgba(6, 10, 20, 0.94);
	border-radius: 1rem;
	overflow: hidden;
	outline: none;
}

.file-editor:focus-within {
	border-color: rgba(116, 145, 255, 0.38);
	box-shadow: inset 0 0 0 1px rgba(116, 145, 255, 0.18);
}

@media (max-width: 1100px) {
	.auth-grid,
	.console-grid,
	.cli-runtime-grid,
	.workspace-grid {
		grid-template-columns: 1fr;
	}

	.console-overview {
		grid-column: auto;
	}

	.workspace-overview {
		grid-column: auto;
	}

	.workspace-sidebar {
		position: static;
	}

	.workspace-overview .stats-row {
		grid-template-columns: 1fr;
	}

	.cli-file-open-row {
		flex-direction: column;
		align-items: stretch;
	}
}

@media (max-width: 720px) {
	.console-shell .container {
		width: min(1560px, calc(100% - 1.5rem));
	}

	.console-header-actions,
	.overview-top,
	.column-head,
	.repo-card-top,
	.repo-card-meta,
	.brief-meta-row,
	.selected-repo-meta-row,
	.file-meta,
	.editor-toolbar,
	.assistant-form-actions,
	.assistant-status-row {
		flex-direction: column;
		align-items: flex-start;
	}

	.repo-search {
		width: 100%;
		min-width: 0;
	}

	.repo-card-actions,
	.workspace-card-actions,
	.brief-actions,
	.file-meta-actions {
		width: 100%;
	}
}
