SNAPKITTYWEST's picture
push from SNAPKITTYWEST/grisp-shadow-fleet
b8a03fa verified
Raw
History Blame Contribute Delete
9.88 kB
@import "../node_modules/monaco-editor/min/vs/editor/editor.main.css";
:root {
color-scheme: dark;
--bg: #111318;
--panel: #171a20;
--panel-2: #1e232b;
--panel-3: #252a33;
--line: #343b46;
--text: #e7ebf0;
--muted: #9da8b7;
--teal: #42d6b5;
--amber: #f0b84b;
--magenta: #d66be8;
--red: #ff6b6b;
--green: #7ee787;
--font-ui: Inter, Segoe UI, system-ui, sans-serif;
--font-mono: Cascadia Code, Consolas, SFMono-Regular, monospace;
}
* {
box-sizing: border-box;
}
html,
body,
.app-shell {
width: 100%;
height: 100%;
margin: 0;
overflow: hidden;
}
body {
background: var(--bg);
color: var(--text);
font-family: var(--font-ui);
letter-spacing: 0;
}
button,
input,
textarea {
font: inherit;
}
button {
color: inherit;
}
.app-shell {
display: grid;
grid-template-rows: 42px minmax(0, 1fr);
}
.titlebar {
display: grid;
grid-template-columns: minmax(170px, 220px) minmax(0, 1fr) minmax(180px, 280px);
align-items: center;
gap: 12px;
padding: 0 12px;
border-bottom: 1px solid var(--line);
background: #0f1115;
user-select: none;
}
.brand {
display: inline-flex;
align-items: center;
gap: 10px;
min-width: 0;
}
.brand-mark {
display: inline-grid;
place-items: center;
width: 42px;
height: 24px;
border: 1px solid color-mix(in srgb, var(--teal), transparent 25%);
border-radius: 4px;
color: var(--teal);
font-family: var(--font-mono);
font-size: 12px;
font-weight: 800;
}
.brand-title,
.panel-heading span,
.file-chip span {
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
.brand-title {
font-size: 13px;
font-weight: 700;
}
.root-pill,
.status {
min-width: 0;
height: 28px;
display: inline-flex;
align-items: center;
gap: 8px;
padding: 0 10px;
border: 1px solid var(--line);
border-radius: 6px;
background: var(--panel);
color: var(--muted);
font-size: 12px;
}
.root-pill span,
.status {
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
.status {
justify-content: flex-end;
}
.status[data-kind="ok"] {
color: var(--green);
}
.status[data-kind="error"] {
color: var(--red);
}
.workbench {
min-height: 0;
display: grid;
grid-template-columns: 280px minmax(520px, 1fr) 360px;
background: var(--bg);
}
.sidebar,
.right-rail,
.editor-column {
min-height: 0;
min-width: 0;
}
.sidebar,
.right-rail {
display: grid;
background: var(--panel);
}
.sidebar {
grid-template-rows: 40px minmax(0, 1fr);
border-right: 1px solid var(--line);
}
.right-rail {
grid-template-rows: minmax(260px, 1fr) 230px 250px;
border-left: 1px solid var(--line);
}
.panel-heading,
.editor-toolbar,
.terminal-toolbar {
display: flex;
align-items: center;
gap: 8px;
min-width: 0;
height: 40px;
padding: 0 10px;
border-bottom: 1px solid var(--line);
background: var(--panel-2);
color: var(--muted);
font-size: 12px;
font-weight: 700;
text-transform: uppercase;
}
.panel-heading {
justify-content: space-between;
}
.editor-column {
display: grid;
grid-template-rows: 40px minmax(320px, 1fr) 230px;
}
.file-chip {
min-width: 0;
display: inline-flex;
align-items: center;
gap: 8px;
flex: 1;
}
.file-chip small {
flex: 0 0 auto;
color: var(--amber);
font-family: var(--font-mono);
font-size: 11px;
text-transform: none;
}
.editor-host {
min-width: 0;
min-height: 0;
border-bottom: 1px solid var(--line);
}
.file-tree,
.chat-log,
.trace-log {
min-height: 0;
overflow: auto;
}
.file-tree {
padding: 6px 0;
}
.tree-row {
width: 100%;
min-height: 28px;
display: grid;
grid-template-columns: 18px minmax(0, 1fr);
align-items: center;
gap: 7px;
padding: 4px 8px 4px calc(10px + (var(--depth) * 16px));
border: 0;
background: transparent;
color: var(--text);
text-align: left;
cursor: default;
}
.tree-row:hover {
background: var(--panel-3);
}
.tree-row.directory {
color: #cfd8e4;
font-weight: 650;
}
.tree-row span {
min-width: 0;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
.icon-button,
.tool-button {
flex: 0 0 auto;
border: 1px solid var(--line);
border-radius: 6px;
background: var(--panel-3);
color: var(--text);
cursor: default;
}
.icon-button {
width: 28px;
height: 28px;
display: inline-grid;
place-items: center;
padding: 0;
}
.tool-button {
min-width: 80px;
height: 30px;
display: inline-flex;
align-items: center;
justify-content: center;
gap: 7px;
padding: 0 10px;
font-size: 12px;
font-weight: 700;
}
.tool-button.compact {
min-width: 70px;
}
.icon-button:hover,
.tool-button:hover {
border-color: var(--teal);
color: var(--teal);
}
.icon-button:disabled,
.tool-button:disabled {
opacity: 0.55;
}
.terminal-panel {
min-height: 0;
display: grid;
grid-template-rows: 42px minmax(0, 1fr);
background: #0d0f13;
}
.terminal-toolbar {
height: 42px;
gap: 10px;
}
.quick-commands {
display: inline-flex;
gap: 6px;
flex: 0 1 auto;
min-width: 0;
}
.command-entry {
min-width: 180px;
display: inline-flex;
align-items: center;
gap: 8px;
flex: 1 1 240px;
height: 30px;
padding: 0 9px;
border: 1px solid var(--line);
border-radius: 6px;
background: #10151b;
}
.command-entry input {
min-width: 0;
width: 100%;
border: 0;
outline: 0;
background: transparent;
color: var(--text);
font-family: var(--font-mono);
font-size: 12px;
}
.terminal-output {
margin: 0;
padding: 10px 12px;
overflow: auto;
white-space: pre-wrap;
overflow-wrap: anywhere;
color: #dce4ee;
font-family: var(--font-mono);
font-size: 12px;
line-height: 1.45;
}
.terminal-output .stderr {
color: var(--red);
}
.terminal-output .system {
color: var(--amber);
}
.chat-panel,
.model-panel,
.trace-panel {
min-height: 0;
display: grid;
border-bottom: 1px solid var(--line);
}
.chat-panel {
grid-template-rows: 40px minmax(0, 1fr) 104px;
}
.model-panel {
grid-template-rows: 40px minmax(0, 1fr);
}
.trace-panel {
grid-template-rows: 40px 92px minmax(0, 1fr);
border-bottom: 0;
}
.chat-log {
padding: 10px;
}
.chat-message {
margin: 0 0 10px;
padding: 9px;
border: 1px solid var(--line);
border-radius: 6px;
background: #141820;
}
.chat-message.user {
border-color: color-mix(in srgb, var(--magenta), transparent 40%);
}
.chat-message.bob {
border-color: color-mix(in srgb, var(--teal), transparent 40%);
}
.chat-message.tool {
border-color: color-mix(in srgb, var(--amber), transparent 35%);
background: #161711;
}
.chat-message header,
.chat-message footer {
display: flex;
justify-content: space-between;
gap: 8px;
color: var(--muted);
font-family: var(--font-mono);
font-size: 10px;
}
.chat-message p {
margin: 7px 0;
color: var(--text);
font-size: 13px;
line-height: 1.45;
overflow-wrap: anywhere;
white-space: pre-wrap;
}
.chat-composer {
display: grid;
grid-template-columns: minmax(0, 1fr) 36px;
gap: 8px;
padding: 8px;
border-top: 1px solid var(--line);
background: var(--panel-2);
}
.chat-composer textarea {
width: 100%;
min-width: 0;
resize: none;
border: 1px solid var(--line);
border-radius: 6px;
outline: 0;
padding: 8px;
background: #10151b;
color: var(--text);
line-height: 1.35;
}
.tools-toggle {
display: inline-flex;
align-items: center;
gap: 6px;
color: var(--muted);
font-size: 11px;
text-transform: none;
}
.tools-toggle input {
width: 14px;
height: 14px;
margin: 0;
accent-color: var(--teal);
}
.model-form {
min-height: 0;
display: grid;
grid-template-columns: 1fr;
gap: 7px;
padding: 8px;
overflow: auto;
}
.model-form label {
display: grid;
gap: 4px;
min-width: 0;
}
.model-form label span {
color: var(--muted);
font-size: 10px;
font-weight: 700;
text-transform: uppercase;
}
.model-form input,
.model-form select {
min-width: 0;
width: 100%;
height: 28px;
border: 1px solid var(--line);
border-radius: 6px;
outline: 0;
padding: 0 8px;
background: #10151b;
color: var(--text);
font-family: var(--font-mono);
font-size: 12px;
}
.model-actions {
display: grid;
grid-template-columns: 72px 30px minmax(0, 1fr);
align-items: center;
gap: 8px;
}
.provider-state {
min-width: 0;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
color: var(--amber);
font-family: var(--font-mono);
font-size: 11px;
}
.icon-button.send {
width: 36px;
height: 36px;
align-self: end;
}
.tool-list {
padding: 8px;
overflow: auto;
border-bottom: 1px solid var(--line);
background: #12161d;
}
.tool-pill {
display: inline-flex;
max-width: 100%;
min-height: 22px;
align-items: center;
gap: 5px;
margin: 0 5px 5px 0;
padding: 3px 6px;
border: 1px solid var(--line);
border-radius: 5px;
color: var(--muted);
font-family: var(--font-mono);
font-size: 10px;
}
.tool-pill span {
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
.tool-pill small {
min-width: 0;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
.trace-log {
padding: 8px;
}
.trace-row {
display: grid;
grid-template-columns: 118px minmax(0, 1fr);
gap: 8px;
padding: 7px 0;
border-bottom: 1px solid color-mix(in srgb, var(--line), transparent 35%);
}
.trace-row span {
color: var(--amber);
font-family: var(--font-mono);
font-size: 10px;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
.trace-row p {
margin: 0;
color: var(--muted);
font-size: 12px;
line-height: 1.35;
}
svg {
width: 16px;
height: 16px;
stroke-width: 2;
flex: 0 0 auto;
}
@media (max-width: 1240px) {
.workbench {
grid-template-columns: 240px minmax(440px, 1fr) 310px;
}
.tool-button {
min-width: 34px;
}
.quick-commands .tool-button span {
display: none;
}
}