.tc-console { min-height: 100vh; background: var(--tc-bg); color: var(--tc-text); font: 14px/1.5 var(--tc-font-family); }
.tc-console *, .tc-console *::before, .tc-console *::after { box-sizing: border-box; }
.tc-console h1, .tc-console h2, .tc-console h3, .tc-console h4 { color: var(--tc-text); }
.tc-console button, .tc-console input, .tc-console select, .tc-console textarea { font: inherit; }
.tc-console button { color: inherit; }

.tc-console .topbar { position: static; z-index: 20; width: 100%; height: var(--tc-shell-header-height); border-bottom: 1px solid var(--tc-border); background: #fff; box-shadow: none; }
.tc-console .topbar-inner { display: flex; width: 100%; height: 100%; max-width: none; align-items: center; justify-content: space-between; gap: 16px; margin: 0; padding: 0 var(--tc-shell-inset); }
.tc-console .brand { display: flex; min-width: 0; align-items: center; justify-content: flex-start; gap: var(--tc-shell-context-gap); padding: 0; border: 0; border-radius: 0; appearance: none; background: transparent; color: inherit; box-shadow: none; text-align: left; cursor: pointer; }
.tc-console .brand:focus-visible { outline: 2px solid var(--tc-blue); outline-offset: 4px; }
.tc-console .brand .tc-workspace-context { min-width: 0; }
.tc-console .brand h1 { margin: 0; color: var(--tc-text); font-size: 13px; font-weight: 700; line-height: 16px; }
.tc-console .brand .sub { margin-top: 2px; color: var(--tc-muted); font-size: 11px; line-height: 13px; }
.tc-console .logo.tc-brand-logo { display: block; width: 160px; height: auto; flex: 0 0 160px; border: 0; border-radius: 0; background: transparent; box-shadow: none; object-fit: contain; }
.tc-console #consoleStatusSlot { display: flex; min-width: 0; align-items: center; }
.tc-console .toolbar { display: flex; flex-wrap: wrap; align-items: center; justify-content: flex-start; gap: 8px; }
.tc-console .executionToolbarSlot { min-width: 0; margin: 0 0 16px; }
.tc-console .page { width: 100%; min-width: 0; max-width: none; margin: 0; padding: var(--tc-shell-content-inset, 32px); }
.tc-console .console-page { min-width: 0; }
.tc-console .console-page[hidden] { display: none !important; }
.tc-console .console-page > h1, .tc-console .console-page-head h1 { margin: 0 0 20px; font-size: 24px; font-weight: 700; line-height: 1.3; }
.tc-console .console-page-head { display: flex; min-width: 0; align-items: center; justify-content: space-between; gap: 16px; margin: 0 0 20px; }
.tc-console .console-page-head h1 { margin: 0; }
.tc-console .console-page-head p { margin: 4px 0 0; color: var(--tc-muted-on-canvas); font-size: 13px; }

.tc-console-shell { display: grid; min-height: calc(100vh - var(--tc-shell-header-height)); grid-template-columns: var(--tc-shell-sidebar-width) minmax(0, 1fr); }
.tc-console-sidebar { min-width: 0; padding: 16px; border-right: 1px solid var(--tc-border); background: #fff; }
.tc-console-sidebar nav { display: grid; gap: 8px; }
.tc-console-sidebar button { display: flex; min-width: 0; height: var(--tc-shell-sidebar-item-height); align-items: center; gap: 10px; padding: 10px 12px; border: 0; border-radius: 6px; background: transparent; color: #495057; font-size: 13px; font-weight: 500; line-height: 16px; text-align: left; cursor: pointer; }
.tc-console-sidebar button i { flex: 0 0 var(--tc-shell-icon-size); font-size: var(--tc-shell-icon-size); text-align: center; }

.tc-console-sidebar button:not(:disabled):hover, .tc-console-sidebar button[aria-current="location"] { background: var(--tc-selected-bg); color: var(--tc-selected-text); }
.tc-console-sidebar button[aria-current="location"] { font-weight: 700; }
.tc-console-sidebar .bi-speedometer2::before { content: ""; display: block; width: 16px; height: 16px; background: currentColor; -webkit-mask: url("data:image/svg+xml;base64,PHN2ZyBwcmVzZXJ2ZUFzcGVjdFJhdGlvPSJub25lIiBvdmVyZmxvdz0idmlzaWJsZSIgc3R5bGU9ImRpc3BsYXk6IGJsb2NrOyIgd2lkdGg9IjE2IiBoZWlnaHQ9IjE2IiB2aWV3Qm94PSIwIDAgMTYgMTYiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CjxnIGlkPSJpY29uIj4KPHBhdGggaWQ9IlZlY3RvciIgZD0iTTYuMjAwMDEgNi4yMDE4MUM2LjE5OTY4IDYuMDk1MzMgNi4yMjc3IDUuOTkwNjggNi4yODExOSA1Ljg5ODYxQzYuMzM0NjggNS44MDY1NCA2LjQxMTcgNS43MzAzNiA2LjUwNDM2IDUuNjc3ODlDNi41OTcwMiA1LjYyNTQzIDYuNzAxOTcgNS41OTg1NiA2LjgwODQ0IDUuNjAwMDZDNi45MTQ5MSA1LjYwMTU2IDcuMDE5MDYgNS42MzEzNiA3LjExMDIgNS42ODY0MUwxMC4xMDg0IDcuNDg0NjFDMTAuMTk3NyA3LjUzNzgxIDEwLjI3MTYgNy42MTMyOCAxMC4zMjI5IDcuNzAzNjNDMTAuMzc0MiA3Ljc5Mzk3IDEwLjQwMTIgNy44OTYxIDEwLjQwMTIgOC4wMDAwMUMxMC40MDEyIDguMTAzOTIgMTAuMzc0MiA4LjIwNjA1IDEwLjMyMjkgOC4yOTY0QzEwLjI3MTYgOC4zODY3NCAxMC4xOTc3IDguNDYyMjEgMTAuMTA4NCA4LjUxNTQxTDcuMTEwMiAxMC4zMTM2QzcuMDE5MDIgMTAuMzY4NyA2LjkxNDgxIDEwLjM5ODUgNi44MDgyOSAxMC40QzYuNzAxNzYgMTAuNDAxNCA2LjU5Njc3IDEwLjM3NDUgNi41MDQxIDEwLjMyMkM2LjQxMTQyIDEwLjI2OTQgNi4zMzQ0MSAxMC4xOTMyIDYuMjgwOTYgMTAuMTAxQzYuMjI3NTIgMTAuMDA4OSA2LjE5OTU4IDkuOTA0MTQgNi4yMDAwMSA5Ljc5NzYxVjYuMjAxODFaTTE0IDhDMTQgMTEuMzEzNyAxMS4zMTM3IDE0IDggMTRDNC42ODYyOSAxNCAyIDExLjMxMzcgMiA4QzIgNC42ODYyOSA0LjY4NjI5IDIgOCAyQzExLjMxMzcgMiAxNCA0LjY4NjI5IDE0IDhaIiBzdHJva2Utd2lkdGg9IjIiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlPSIjMEQ2RUZEIi8+CjwvZz4KPC9zdmc+Cg==") center / contain no-repeat; mask: url("data:image/svg+xml;base64,PHN2ZyBwcmVzZXJ2ZUFzcGVjdFJhdGlvPSJub25lIiBvdmVyZmxvdz0idmlzaWJsZSIgc3R5bGU9ImRpc3BsYXk6IGJsb2NrOyIgd2lkdGg9IjE2IiBoZWlnaHQ9IjE2IiB2aWV3Qm94PSIwIDAgMTYgMTYiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CjxnIGlkPSJpY29uIj4KPHBhdGggaWQ9IlZlY3RvciIgZD0iTTYuMjAwMDEgNi4yMDE4MUM2LjE5OTY4IDYuMDk1MzMgNi4yMjc3IDUuOTkwNjggNi4yODExOSA1Ljg5ODYxQzYuMzM0NjggNS44MDY1NCA2LjQxMTcgNS43MzAzNiA2LjUwNDM2IDUuNjc3ODlDNi41OTcwMiA1LjYyNTQzIDYuNzAxOTcgNS41OTg1NiA2LjgwODQ0IDUuNjAwMDZDNi45MTQ5MSA1LjYwMTU2IDcuMDE5MDYgNS42MzEzNiA3LjExMDIgNS42ODY0MUwxMC4xMDg0IDcuNDg0NjFDMTAuMTk3NyA3LjUzNzgxIDEwLjI3MTYgNy42MTMyOCAxMC4zMjI5IDcuNzAzNjNDMTAuMzc0MiA3Ljc5Mzk3IDEwLjQwMTIgNy44OTYxIDEwLjQwMTIgOC4wMDAwMUMxMC40MDEyIDguMTAzOTIgMTAuMzc0MiA4LjIwNjA1IDEwLjMyMjkgOC4yOTY0QzEwLjI3MTYgOC4zODY3NCAxMC4xOTc3IDguNDYyMjEgMTAuMTA4NCA4LjUxNTQxTDcuMTEwMiAxMC4zMTM2QzcuMDE5MDIgMTAuMzY4NyA2LjkxNDgxIDEwLjM5ODUgNi44MDgyOSAxMC40QzYuNzAxNzYgMTAuNDAxNCA2LjU5Njc3IDEwLjM3NDUgNi41MDQxIDEwLjMyMkM2LjQxMTQyIDEwLjI2OTQgNi4zMzQ0MSAxMC4xOTMyIDYuMjgwOTYgMTAuMTAxQzYuMjI3NTIgMTAuMDA4OSA2LjE5OTU4IDkuOTA0MTQgNi4yMDAwMSA5Ljc5NzYxVjYuMjAxODFaTTE0IDhDMTQgMTEuMzEzNyAxMS4zMTM3IDE0IDggMTRDNC42ODYyOSAxNCAyIDExLjMxMzcgMiA4QzIgNC42ODYyOSA0LjY4NjI5IDIgOCAyQzExLjMxMzcgMiAxNCA0LjY4NjI5IDE0IDhaIiBzdHJva2Utd2lkdGg9IjIiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlPSIjMEQ2RUZEIi8+CjwvZz4KPC9zdmc+Cg==") center / contain no-repeat; }
.tc-console-sidebar .bi-folder::before { content: ""; display: block; width: 16px; height: 16px; background: currentColor; -webkit-mask: url("data:image/svg+xml;base64,PHN2ZyBwcmVzZXJ2ZUFzcGVjdFJhdGlvPSJub25lIiBvdmVyZmxvdz0idmlzaWJsZSIgc3R5bGU9ImRpc3BsYXk6IGJsb2NrOyIgd2lkdGg9IjE0IiBoZWlnaHQ9IjE0IiB2aWV3Qm94PSIwIDAgMTQgMTQiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CjxwYXRoIGlkPSJWZWN0b3IiIGQ9Ik0xMS44IDEzQzEyLjExODMgMTMgMTIuNDIzNSAxMi44NTEzIDEyLjY0ODUgMTIuNTg2NUMxMi44NzM2IDEyLjMyMTcgMTMgMTEuOTYyNyAxMyAxMS41ODgyVjQuNTI5NDFDMTMgNC4xNTQ5OSAxMi44NzM2IDMuNzk1OSAxMi42NDg1IDMuNTMxMTRDMTIuNDIzNSAzLjI2NjM5IDEyLjExODMgMy4xMTc2NSAxMS44IDMuMTE3NjVINy4wNkM2Ljg1OTMxIDMuMTE5OTYgNi42NjEzMyAzLjA2MzAyIDYuNDg0MTggMi45NTIwM0M2LjMwNzAzIDIuODQxMDUgNi4xNTYzOCAyLjY3OTU2IDYuMDQ2IDIuNDgyMzVMNS41NiAxLjYzNTI5QzUuNDUwNzMgMS40NDAxIDUuMzAxOTggMS4yNzk4NyA1LjEyNzEgMS4xNjg5OUM0Ljk1MjIxIDEuMDU4MSA0Ljc1NjY2IDEuMDAwMDQgNC41NTggMUgyLjJDMS44ODE3NCAxIDEuNTc2NTIgMS4xNDg3NCAxLjM1MTQ3IDEuNDEzNUMxLjEyNjQzIDEuNjc4MjUgMSAyLjAzNzM0IDEgMi40MTE3NlYxMS41ODgyQzEgMTEuOTYyNyAxLjEyNjQzIDEyLjMyMTcgMS4zNTE0NyAxMi41ODY1QzEuNTc2NTIgMTIuODUxMyAxLjg4MTc0IDEzIDIuMiAxM0gxMS44WiIgc3Ryb2tlLXdpZHRoPSIyIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZT0iIzZDNzU3RCIvPgo8L3N2Zz4K") center / contain no-repeat; mask: url("data:image/svg+xml;base64,PHN2ZyBwcmVzZXJ2ZUFzcGVjdFJhdGlvPSJub25lIiBvdmVyZmxvdz0idmlzaWJsZSIgc3R5bGU9ImRpc3BsYXk6IGJsb2NrOyIgd2lkdGg9IjE0IiBoZWlnaHQ9IjE0IiB2aWV3Qm94PSIwIDAgMTQgMTQiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CjxwYXRoIGlkPSJWZWN0b3IiIGQ9Ik0xMS44IDEzQzEyLjExODMgMTMgMTIuNDIzNSAxMi44NTEzIDEyLjY0ODUgMTIuNTg2NUMxMi44NzM2IDEyLjMyMTcgMTMgMTEuOTYyNyAxMyAxMS41ODgyVjQuNTI5NDFDMTMgNC4xNTQ5OSAxMi44NzM2IDMuNzk1OSAxMi42NDg1IDMuNTMxMTRDMTIuNDIzNSAzLjI2NjM5IDEyLjExODMgMy4xMTc2NSAxMS44IDMuMTE3NjVINy4wNkM2Ljg1OTMxIDMuMTE5OTYgNi42NjEzMyAzLjA2MzAyIDYuNDg0MTggMi45NTIwM0M2LjMwNzAzIDIuODQxMDUgNi4xNTYzOCAyLjY3OTU2IDYuMDQ2IDIuNDgyMzVMNS41NiAxLjYzNTI5QzUuNDUwNzMgMS40NDAxIDUuMzAxOTggMS4yNzk4NyA1LjEyNzEgMS4xNjg5OUM0Ljk1MjIxIDEuMDU4MSA0Ljc1NjY2IDEuMDAwMDQgNC41NTggMUgyLjJDMS44ODE3NCAxIDEuNTc2NTIgMS4xNDg3NCAxLjM1MTQ3IDEuNDEzNUMxLjEyNjQzIDEuNjc4MjUgMSAyLjAzNzM0IDEgMi40MTE3NlYxMS41ODgyQzEgMTEuOTYyNyAxLjEyNjQzIDEyLjMyMTcgMS4zNTE0NyAxMi41ODY1QzEuNTc2NTIgMTIuODUxMyAxLjg4MTc0IDEzIDIuMiAxM0gxMS44WiIgc3Ryb2tlLXdpZHRoPSIyIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZT0iIzZDNzU3RCIvPgo8L3N2Zz4K") center / contain no-repeat; }
.tc-console-sidebar .bi-play::before { content: ""; display: block; width: 16px; height: 16px; background: currentColor; -webkit-mask: url("data:image/svg+xml;base64,PHN2ZyBwcmVzZXJ2ZUFzcGVjdFJhdGlvPSJub25lIiBvdmVyZmxvdz0idmlzaWJsZSIgc3R5bGU9ImRpc3BsYXk6IGJsb2NrOyIgd2lkdGg9IjE2IiBoZWlnaHQ9IjE2IiB2aWV3Qm94PSIwIDAgMTYgMTYiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CjxnIGlkPSJpY29uIj4KPHBhdGggaWQ9IlZlY3RvciIgZD0iTTIgMy4zMzM2NEMxLjk5OTkyIDMuMDk5MDUgMi4wNjk0OCAyLjg2ODYgMi4yMDE2NSAyLjY2NTU0QzIuMzMzODIgMi40NjI0OSAyLjUyMzkyIDIuMjk0MDQgMi43NTI3NiAyLjE3NzE4QzIuOTgxNTkgMi4wNjAzMyAzLjI0MTA3IDEuOTk5MjEgMy41MDQ5OCAyLjAwMDAxQzMuNzY4ODggMi4wMDA4IDQuMDI3ODkgMi4wNjM0OCA0LjI1NTgzIDIuMTgxNzJMMTMuMjUyOSA2Ljg0Njc0QzEzLjQ3OTkgNi45NjM4NSAxMy42Njg0IDcuMTMxODkgMTMuNzk5NSA3LjMzNDA1QzEzLjkzMDcgNy41MzYyMSAxMy45OTk4IDcuNzY1NDEgMTQgNy45OTg3NkMxNC4wMDAyIDguMjMyMSAxMy45MzE2IDguNDYxNDIgMTMuODAwOCA4LjY2Mzc4QzEzLjY3MDEgOC44NjYxNCAxMy40ODIgOS4wMzQ0NiAxMy4yNTUxIDkuMTUxOTJMNC4yNTU4MyAxMy44MTgzQzQuMDI3ODkgMTMuOTM2NSAzLjc2ODg4IDEzLjk5OTIgMy41MDQ5OCAxNEMzLjI0MTA3IDE0LjAwMDggMi45ODE1OSAxMy45Mzk3IDIuNzUyNzYgMTMuODIyOEMyLjUyMzkyIDEzLjcwNiAyLjMzMzgyIDEzLjUzNzUgMi4yMDE2NSAxMy4zMzQ1QzIuMDY5NDggMTMuMTMxNCAxLjk5OTkyIDEyLjkwMDkgMiAxMi42NjY0VjMuMzMzNjRaIiBzdHJva2Utd2lkdGg9IjIiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlPSIjNkM3NTdEIi8+CjwvZz4KPC9zdmc+Cg==") center / contain no-repeat; mask: url("data:image/svg+xml;base64,PHN2ZyBwcmVzZXJ2ZUFzcGVjdFJhdGlvPSJub25lIiBvdmVyZmxvdz0idmlzaWJsZSIgc3R5bGU9ImRpc3BsYXk6IGJsb2NrOyIgd2lkdGg9IjE2IiBoZWlnaHQ9IjE2IiB2aWV3Qm94PSIwIDAgMTYgMTYiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CjxnIGlkPSJpY29uIj4KPHBhdGggaWQ9IlZlY3RvciIgZD0iTTIgMy4zMzM2NEMxLjk5OTkyIDMuMDk5MDUgMi4wNjk0OCAyLjg2ODYgMi4yMDE2NSAyLjY2NTU0QzIuMzMzODIgMi40NjI0OSAyLjUyMzkyIDIuMjk0MDQgMi43NTI3NiAyLjE3NzE4QzIuOTgxNTkgMi4wNjAzMyAzLjI0MTA3IDEuOTk5MjEgMy41MDQ5OCAyLjAwMDAxQzMuNzY4ODggMi4wMDA4IDQuMDI3ODkgMi4wNjM0OCA0LjI1NTgzIDIuMTgxNzJMMTMuMjUyOSA2Ljg0Njc0QzEzLjQ3OTkgNi45NjM4NSAxMy42Njg0IDcuMTMxODkgMTMuNzk5NSA3LjMzNDA1QzEzLjkzMDcgNy41MzYyMSAxMy45OTk4IDcuNzY1NDEgMTQgNy45OTg3NkMxNC4wMDAyIDguMjMyMSAxMy45MzE2IDguNDYxNDIgMTMuODAwOCA4LjY2Mzc4QzEzLjY3MDEgOC44NjYxNCAxMy40ODIgOS4wMzQ0NiAxMy4yNTUxIDkuMTUxOTJMNC4yNTU4MyAxMy44MTgzQzQuMDI3ODkgMTMuOTM2NSAzLjc2ODg4IDEzLjk5OTIgMy41MDQ5OCAxNEMzLjI0MTA3IDE0LjAwMDggMi45ODE1OSAxMy45Mzk3IDIuNzUyNzYgMTMuODIyOEMyLjUyMzkyIDEzLjcwNiAyLjMzMzgyIDEzLjUzNzUgMi4yMDE2NSAxMy4zMzQ1QzIuMDY5NDggMTMuMTMxNCAxLjk5OTkyIDEyLjkwMDkgMiAxMi42NjY0VjMuMzMzNjRaIiBzdHJva2Utd2lkdGg9IjIiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlPSIjNkM3NTdEIi8+CjwvZz4KPC9zdmc+Cg==") center / contain no-repeat; }
.tc-console-sidebar .bi-play-circle::before { content: ""; display: block; width: 16px; height: 16px; background: currentColor; -webkit-mask: url("data:image/svg+xml;base64,PHN2ZyBwcmVzZXJ2ZUFzcGVjdFJhdGlvPSJub25lIiBvdmVyZmxvdz0idmlzaWJsZSIgc3R5bGU9ImRpc3BsYXk6IGJsb2NrOyIgd2lkdGg9IjE0IiBoZWlnaHQ9IjE0IiB2aWV3Qm94PSIwIDAgMTQgMTQiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CjxwYXRoIGlkPSJWZWN0b3IiIGQ9Ik01LjIwMDAxIDUuMjAxODFDNS4xOTk2OCA1LjA5NTMzIDUuMjI3NyA0Ljk5MDY4IDUuMjgxMTkgNC44OTg2MUM1LjMzNDY4IDQuODA2NTQgNS40MTE3IDQuNzMwMzYgNS41MDQzNiA0LjY3Nzg5QzUuNTk3MDIgNC42MjU0MyA1LjcwMTk3IDQuNTk4NTYgNS44MDg0NCA0LjYwMDA2QzUuOTE0OTEgNC42MDE1NiA2LjAxOTA2IDQuNjMxMzYgNi4xMTAyIDQuNjg2NDFMOS4xMDg0IDYuNDg0NjFDOS4xOTc2NiA2LjUzNzgxIDkuMjcxNTggNi42MTMyOCA5LjMyMjkgNi43MDM2M0M5LjM3NDIzIDYuNzkzOTcgOS40MDEyMiA2Ljg5NjEgOS40MDEyMiA3LjAwMDAxQzkuNDAxMjIgNy4xMDM5MiA5LjM3NDIzIDcuMjA2MDUgOS4zMjI5IDcuMjk2NEM5LjI3MTU4IDcuMzg2NzQgOS4xOTc2NiA3LjQ2MjIxIDkuMTA4NCA3LjUxNTQxTDYuMTEwMiA5LjMxMzYxQzYuMDE5MDIgOS4zNjg2OSA1LjkxNDgxIDkuMzk4NDkgNS44MDgyOSA5LjM5OTk2QzUuNzAxNzYgOS40MDE0NCA1LjU5Njc3IDkuMzc0NTIgNS41MDQxIDkuMzIxOThDNS40MTE0MiA5LjI2OTQ0IDUuMzM0NDEgOS4xOTMxOCA1LjI4MDk2IDkuMTAxMDJDNS4yMjc1MiA5LjAwODg2IDUuMTk5NTggOC45MDQxNCA1LjIwMDAxIDguNzk3NjFWNS4yMDE4MVpNMTMgN0MxMyAxMC4zMTM3IDEwLjMxMzcgMTMgNyAxM0MzLjY4NjI5IDEzIDEgMTAuMzEzNyAxIDdDMSAzLjY4NjI5IDMuNjg2MjkgMSA3IDFDMTAuMzEzNyAxIDEzIDMuNjg2MjkgMTMgN1oiIHN0cm9rZS13aWR0aD0iMiIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2U9IiM2Qzc1N0QiLz4KPC9zdmc+Cg==") center / contain no-repeat; mask: url("data:image/svg+xml;base64,PHN2ZyBwcmVzZXJ2ZUFzcGVjdFJhdGlvPSJub25lIiBvdmVyZmxvdz0idmlzaWJsZSIgc3R5bGU9ImRpc3BsYXk6IGJsb2NrOyIgd2lkdGg9IjE0IiBoZWlnaHQ9IjE0IiB2aWV3Qm94PSIwIDAgMTQgMTQiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CjxwYXRoIGlkPSJWZWN0b3IiIGQ9Ik01LjIwMDAxIDUuMjAxODFDNS4xOTk2OCA1LjA5NTMzIDUuMjI3NyA0Ljk5MDY4IDUuMjgxMTkgNC44OTg2MUM1LjMzNDY4IDQuODA2NTQgNS40MTE3IDQuNzMwMzYgNS41MDQzNiA0LjY3Nzg5QzUuNTk3MDIgNC42MjU0MyA1LjcwMTk3IDQuNTk4NTYgNS44MDg0NCA0LjYwMDA2QzUuOTE0OTEgNC42MDE1NiA2LjAxOTA2IDQuNjMxMzYgNi4xMTAyIDQuNjg2NDFMOS4xMDg0IDYuNDg0NjFDOS4xOTc2NiA2LjUzNzgxIDkuMjcxNTggNi42MTMyOCA5LjMyMjkgNi43MDM2M0M5LjM3NDIzIDYuNzkzOTcgOS40MDEyMiA2Ljg5NjEgOS40MDEyMiA3LjAwMDAxQzkuNDAxMjIgNy4xMDM5MiA5LjM3NDIzIDcuMjA2MDUgOS4zMjI5IDcuMjk2NEM5LjI3MTU4IDcuMzg2NzQgOS4xOTc2NiA3LjQ2MjIxIDkuMTA4NCA3LjUxNTQxTDYuMTEwMiA5LjMxMzYxQzYuMDE5MDIgOS4zNjg2OSA1LjkxNDgxIDkuMzk4NDkgNS44MDgyOSA5LjM5OTk2QzUuNzAxNzYgOS40MDE0NCA1LjU5Njc3IDkuMzc0NTIgNS41MDQxIDkuMzIxOThDNS40MTE0MiA5LjI2OTQ0IDUuMzM0NDEgOS4xOTMxOCA1LjI4MDk2IDkuMTAxMDJDNS4yMjc1MiA5LjAwODg2IDUuMTk5NTggOC45MDQxNCA1LjIwMDAxIDguNzk3NjFWNS4yMDE4MVpNMTMgN0MxMyAxMC4zMTM3IDEwLjMxMzcgMTMgNyAxM0MzLjY4NjI5IDEzIDEgMTAuMzEzNyAxIDdDMSAzLjY4NjI5IDMuNjg2MjkgMSA3IDFDMTAuMzEzNyAxIDEzIDMuNjg2MjkgMTMgN1oiIHN0cm9rZS13aWR0aD0iMiIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2U9IiM2Qzc1N0QiLz4KPC9zdmc+Cg==") center / contain no-repeat; }
.tc-console-sidebar .bi-check2-circle::before { content: ""; display: block; width: 16px; height: 16px; background: currentColor; -webkit-mask: url("data:image/svg+xml;base64,PHN2ZyBwcmVzZXJ2ZUFzcGVjdFJhdGlvPSJub25lIiBvdmVyZmxvdz0idmlzaWJsZSIgc3R5bGU9ImRpc3BsYXk6IGJsb2NrOyIgd2lkdGg9IjE0IiBoZWlnaHQ9IjE0IiB2aWV3Qm94PSIwIDAgMTQgMTQiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CjxwYXRoIGlkPSJWZWN0b3IiIGQ9Ik0xMi44NzkyIDUuODAyMDRDMTMuMTUzMiA3LjE0NjgyIDEyLjk1NzkgOC41NDQ4OSAxMi4zMjU5IDkuNzYzMTFDMTEuNjkzOSAxMC45ODEzIDEwLjY2MzMgMTEuOTQ2MSA5LjQwNjA5IDEyLjQ5NjRDOC4xNDg4NyAxMy4wNDY4IDYuNzQwOTcgMTMuMTQ5NSA1LjQxNzE3IDEyLjc4NzVDNC4wOTMzOCAxMi40MjU0IDIuOTMzNzEgMTEuNjIwNSAyLjEzMTU2IDEwLjUwNjlDMS4zMjk0MSA5LjM5MzMgMC45MzMyNjkgOC4wMzgzOCAxLjAwOTE5IDYuNjY4MDdDMS4wODUxMiA1LjI5Nzc2IDEuNjI4NTIgMy45OTQ5IDIuNTQ4NzggMi45NzY3NUMzLjQ2OTA1IDEuOTU4NiA0LjcxMDU0IDEuMjg2NyA2LjA2NjIzIDEuMDczMTJDNy40MjE5MiAwLjg1OTUzMiA4LjgwOTg2IDEuMTE3MTYgOS45OTg1OSAxLjgwMzA1TTUuMTk4ODIgNi40MDE3NUw2Ljk5ODgyIDguMjAxNzVMMTIuOTk4OCAyLjIwMTc2IiBzdHJva2Utd2lkdGg9IjIiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlPSIjNkM3NTdEIi8+Cjwvc3ZnPgo=") center / contain no-repeat; mask: url("data:image/svg+xml;base64,PHN2ZyBwcmVzZXJ2ZUFzcGVjdFJhdGlvPSJub25lIiBvdmVyZmxvdz0idmlzaWJsZSIgc3R5bGU9ImRpc3BsYXk6IGJsb2NrOyIgd2lkdGg9IjE0IiBoZWlnaHQ9IjE0IiB2aWV3Qm94PSIwIDAgMTQgMTQiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CjxwYXRoIGlkPSJWZWN0b3IiIGQ9Ik0xMi44NzkyIDUuODAyMDRDMTMuMTUzMiA3LjE0NjgyIDEyLjk1NzkgOC41NDQ4OSAxMi4zMjU5IDkuNzYzMTFDMTEuNjkzOSAxMC45ODEzIDEwLjY2MzMgMTEuOTQ2MSA5LjQwNjA5IDEyLjQ5NjRDOC4xNDg4NyAxMy4wNDY4IDYuNzQwOTcgMTMuMTQ5NSA1LjQxNzE3IDEyLjc4NzVDNC4wOTMzOCAxMi40MjU0IDIuOTMzNzEgMTEuNjIwNSAyLjEzMTU2IDEwLjUwNjlDMS4zMjk0MSA5LjM5MzMgMC45MzMyNjkgOC4wMzgzOCAxLjAwOTE5IDYuNjY4MDdDMS4wODUxMiA1LjI5Nzc2IDEuNjI4NTIgMy45OTQ5IDIuNTQ4NzggMi45NzY3NUMzLjQ2OTA1IDEuOTU4NiA0LjcxMDU0IDEuMjg2NyA2LjA2NjIzIDEuMDczMTJDNy40MjE5MiAwLjg1OTUzMiA4LjgwOTg2IDEuMTE3MTYgOS45OTg1OSAxLjgwMzA1TTUuMTk4ODIgNi40MDE3NUw2Ljk5ODgyIDguMjAxNzVMMTIuOTk4OCAyLjIwMTc2IiBzdHJva2Utd2lkdGg9IjIiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlPSIjNkM3NTdEIi8+Cjwvc3ZnPgo=") center / contain no-repeat; }
.tc-console-sidebar .bi-folder::before, .tc-console-sidebar .bi-play-circle::before, .tc-console-sidebar .bi-check2-circle::before { -webkit-mask-size: 14px 14px; mask-size: 14px 14px; }
.tc-console-sidebar button:disabled { color: var(--tc-muted); cursor: not-allowed; }
.tc-console-sidebar button:focus-visible { outline: 2px solid var(--tc-blue); outline-offset: 2px; }

.tc-console .connection-banner { display: flex; min-width: 0; min-height: 34px; align-items: center; justify-content: space-between; gap: 10px; margin: 0 0 16px; padding: 6px 10px; border: 1px solid var(--tc-border); border-radius: 6px; background: #fff; color: var(--tc-muted-on-canvas); font-size: 12px; box-shadow: none; }
.tc-console .topbar .connection-banner { min-height: 32px; margin: 0; padding: 4px 8px; }
.tc-console .connection-banner #connectionMessage { min-width: 0; overflow-wrap: anywhere; }
.tc-console .connection-banner.connected { border-color: #b7dfc3; background: #f1f8f3; color: #146c43; }
.tc-console .connection-banner.disconnected { border-color: #f1b0b7; background: #fdf4f4; color: #b02a37; }
.tc-console .connection-retry { flex: 0 0 auto; padding: 3px 8px; border: 1px solid currentColor; border-radius: 5px; background: #fff; color: inherit; font-size: 12px; }

.tc-console .summary { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 16px; margin: 0 0 20px; }
.tc-console .summary .stat { min-width: 0; padding: 20px; border: 1px solid var(--tc-border); border-radius: 8px; background: #fff; box-shadow: none; }
.tc-console .summary .stat-label { color: #495057; font-size: 13px; font-weight: 500; text-transform: none; }
.tc-console .summary .stat-value { margin-top: 8px; color: var(--tc-text); font-size: 28px; font-weight: 700; line-height: 1.2; }
.tc-console .summary .stat.pass .stat-value { color: var(--tc-green); }
.tc-console .summary .stat.fail .stat-value { color: var(--tc-red); }
.tc-console .summary .stat.rate .stat-value { color: var(--tc-blue); }
.tc-console .meta-strip { margin: 0 2px 18px; color: var(--tc-muted-on-canvas); font-size: 12px; }

.tc-console .btn { min-height: 36px; padding: 7px 12px; border: 1px solid var(--tc-border); border-radius: 6px; background: #fff; color: #343a40; font-weight: 600; box-shadow: none; }
.tc-console .btn:hover { background: #f1f3f5; }
.tc-console .btn-primary, .tc-console .add-tc-btn, .tc-console .run-tc-btn, .tc-console .issue-run-btn { border: 1px solid var(--tc-blue); border-radius: 6px; background: var(--tc-blue); color: #fff; box-shadow: none; }
.tc-console .btn-primary:hover, .tc-console .add-tc-btn:hover, .tc-console .run-tc-btn:hover, .tc-console .issue-run-btn:hover { background: #0b5ed7; }
.tc-console .cancel-run-btn, .tc-console .issue-delete-btn { border-color: var(--tc-red); border-radius: 6px; color: var(--tc-red); }
.tc-console .status { font-weight: 700; }
.tc-console .status.pass { border-color: #b7dfc3; background: #dff3e4; color: #146c43; }
.tc-console .status.fail, .tc-console .status.error { border-color: #f1b0b7; background: #fbeaec; color: #b02a37; }
.tc-console .status.cancelled, .tc-console .status.skip { border-color: #ffda9e; background: #fff1e1; color: #8a4b08; }
.tc-console .status.not-run { border-color: #dee2e6; background: #e9ecef; color: #495057; }
.tc-console .switch input { position: absolute; z-index: 2; inset: 0; display: block; width: 100%; height: 100%; margin: 0; opacity: 0; cursor: pointer; }
.tc-console .switch .slider { pointer-events: none; }
.tc-console .switch input:checked + .slider { background: var(--tc-blue); }
.tc-console .switch input:focus-visible + .slider { outline: 2px solid var(--tc-blue); outline-offset: 3px; }
.tc-console :focus-visible { outline-color: var(--tc-blue); }

@media (max-width: 767.98px) {
  .tc-console-shell { grid-template-columns: minmax(0, 1fr); grid-template-rows: auto minmax(0, 1fr); }
  .tc-console-sidebar { padding: 8px; border-right: 0; border-bottom: 1px solid var(--tc-border); }
  .tc-console-sidebar nav { grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 2px; }
  .tc-console-sidebar button { min-height: 52px; flex-direction: column; justify-content: center; gap: 3px; padding: 5px 2px; font-size: 10px; line-height: 1.2; text-align: center; white-space: normal; }
  .tc-console-sidebar button i { flex-basis: auto; font-size: 13px; }
  .tc-console .topbar { height: auto; min-height: var(--tc-shell-header-height); }
  .tc-console .topbar-inner { min-height: var(--tc-shell-header-height); height: auto; flex-wrap: wrap; gap: 8px; padding: 8px 16px; }
  .tc-console #consoleStatusSlot { flex: 1 0 100%; }
  .tc-console .topbar .connection-banner { width: 100%; }
  .tc-console .brand { gap: 24px; }
  .tc-console .brand .sub { font-size: 10px; }
  .tc-console .page { padding: 16px; }
  .tc-console .console-page > h1, .tc-console .console-page-head h1 { font-size: 21px; }
  .tc-console .summary { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; margin-bottom: 16px; }
  .tc-console .summary .stat { padding: 14px; }
  .tc-console .summary .stat-value { font-size: 24px; }
  .tc-console .console-page-head { align-items: flex-start; gap: 10px; }
  .tc-console .connection-banner { align-items: flex-start; }
}

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

.tc-console .topbar [hidden],
.tc-console #connectionBanner[hidden],
.tc-console .footer-note[hidden] { display: none !important; }
