fix: move component CSS files to source/components so they are tracked and built

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
Rokojori 2026-07-12 15:29:15 +02:00
parent f8723c87ff
commit 3a9b9580a1
13 changed files with 1254 additions and 0 deletions

View File

@ -0,0 +1,70 @@
app-nav {
display: block;
}
app-nav nav {
display: flex;
align-items: center;
gap: 1rem;
padding: 0.75rem 1.5rem;
background: #222;
color: #fff;
}
app-nav .nav-brand {
font-weight: bold;
font-size: 1.1rem;
margin-right: auto;
}
app-nav .nav-links {
display: flex;
gap: 1rem;
}
app-nav .nav-links a {
color: #ccc;
text-decoration: none;
font-size: 0.9rem;
}
app-nav .nav-links a:hover {
color: #fff;
}
app-nav .nav-user {
display: flex;
align-items: center;
gap: 0.75rem;
margin-left: 1rem;
font-size: 0.85rem;
}
app-nav .nav-user span {
color: #aaa;
}
app-nav button {
padding: 0.3rem 0.75rem;
border: 1px solid #555;
background: transparent;
color: #ccc;
border-radius: 4px;
cursor: pointer;
font-size: 0.8rem;
}
app-nav button:hover {
background: #333;
color: #fff;
}
app-nav .btn-delete {
border-color: #733;
color: #f99;
}
app-nav .btn-delete:hover {
background: #500;
color: #fcc;
}

View File

@ -0,0 +1,77 @@
code-panel {
display: flex;
flex-direction: column;
height: 100%;
background: #0f1117;
}
.cp-toolbar {
display: flex;
align-items: center;
gap: 4px;
padding: 6px 8px;
background: #13151f;
border-bottom: 1px solid #2a2d3a;
flex-shrink: 0;
}
.cp-toolbar button {
padding: 2px 8px;
background: transparent;
border: 1px solid #2a2d3a;
border-radius: 3px;
color: #666;
cursor: pointer;
font-size: 0.75rem;
font-family: inherit;
}
.cp-toolbar button:hover:not(:disabled) { color: #aaa; background: #1a1d27; border-color: #444; }
.cp-toolbar button:disabled { opacity: 0.35; cursor: default; }
.cp-toolbar button.pinned { color: #7c8cff; border-color: #7c8cff; }
.cp-empty {
padding: 20px;
color: #555;
font-style: italic;
font-size: 0.85rem;
}
.cp-editor {
flex: 1;
overflow: hidden;
position: relative;
}
.cp-editor .CodeMirror {
height: 100%;
font-family: "Cascadia Code", "Fira Code", "Consolas", monospace;
font-size: 0.875rem;
line-height: 1.55;
}
/* cp-dark theme */
.cm-s-cp-dark.CodeMirror { background: #0f1117; color: #c8cbde; }
.cm-s-cp-dark .CodeMirror-gutters { background: #13151f; border-right: 1px solid #2a2d3a; }
.cm-s-cp-dark .CodeMirror-linenumber { color: #3d4166; }
.cm-s-cp-dark .CodeMirror-cursor { border-left: 2px solid #7c8cff; }
.cm-s-cp-dark .CodeMirror-selected { background: #1e2235; }
.cm-s-cp-dark .CodeMirror-focused .CodeMirror-selected { background: #252a47; }
.cm-s-cp-dark .CodeMirror-activeline-background { background: #14161f; }
.cm-s-cp-dark .cm-keyword { color: #c792ea; }
.cm-s-cp-dark .cm-def { color: #82aaff; }
.cm-s-cp-dark .cm-variable { color: #c8cbde; }
.cm-s-cp-dark .cm-variable-2{ color: #c8cbde; }
.cm-s-cp-dark .cm-property { color: #80cbc4; }
.cm-s-cp-dark .cm-operator { color: #89ddff; }
.cm-s-cp-dark .cm-string { color: #c3e88d; }
.cm-s-cp-dark .cm-string-2 { color: #c3e88d; }
.cm-s-cp-dark .cm-number { color: #f78c6c; }
.cm-s-cp-dark .cm-atom { color: #f78c6c; }
.cm-s-cp-dark .cm-comment { color: #546e7a; font-style: italic; }
.cm-s-cp-dark .cm-tag { color: #f07178; }
.cm-s-cp-dark .cm-attribute { color: #ffcb6b; }
.cm-s-cp-dark .cm-builtin { color: #82aaff; }
.cm-s-cp-dark .cm-bracket { color: #89ddff; }
.cm-s-cp-dark .cm-error { color: #f07178; }

View File

@ -0,0 +1,120 @@
confirm-dialog {
display: flex;
position: fixed;
inset: 0;
align-items: center;
justify-content: center;
z-index: 1000;
}
.cd-backdrop {
position: absolute;
inset: 0;
background: rgba(0, 0, 0, 0.55);
}
.cd-box {
position: relative;
background: #1a1d27;
border: 1px solid #2a2d3a;
border-radius: 8px;
width: min(420px, 90vw);
box-shadow: 0 12px 40px rgba(0, 0, 0, 0.6);
overflow: hidden;
}
.cd-titlebar {
display: flex;
align-items: center;
gap: 8px;
padding: 12px 16px;
background: #13151f;
border-bottom: 1px solid #2a2d3a;
}
.cd-icon {
font-size: 1rem;
flex-shrink: 0;
}
.cd-title {
flex: 1;
font-size: 0.95rem;
font-weight: 600;
color: #e2e4ed;
}
.cd-close {
background: none;
border: none;
color: #555;
cursor: pointer;
font-size: 0.85rem;
padding: 3px 7px;
border-radius: 4px;
line-height: 1;
}
.cd-close:hover {
color: #e2e4ed;
background: #2a2d3a;
}
.cd-body {
padding: 20px 20px 16px;
}
.cd-message {
color: #c8cbde;
font-size: 0.9rem;
line-height: 1.6;
}
.cd-footer {
display: flex;
justify-content: flex-end;
gap: 8px;
padding: 12px 16px;
border-top: 1px solid #2a2d3a;
}
.cd-btn {
padding: 6px 18px;
border-radius: 4px;
font-size: 0.85rem;
cursor: pointer;
border: 1px solid transparent;
font-family: inherit;
}
.cd-btn-cancel {
background: transparent;
border-color: #2a2d3a;
color: #9ba4c7;
}
.cd-btn-cancel:hover {
background: #2a2d3a;
color: #e2e4ed;
}
.cd-btn-confirm {
background: #7c8cff;
border-color: #7c8cff;
color: #fff;
}
.cd-btn-confirm:hover {
background: #6070ee;
border-color: #6070ee;
}
.cd-btn-confirm.cd-btn-danger {
background: #c0392b;
border-color: #c0392b;
}
.cd-btn-confirm.cd-btn-danger:hover {
background: #e74c3c;
border-color: #e74c3c;
}

View File

@ -0,0 +1,57 @@
.ctx-menu {
display: block;
position: fixed;
background: #1e1e1e;
border: 1px solid #3a3a3a;
border-radius: 4px;
padding: 4px 0;
min-width: 160px;
box-shadow: 0 4px 16px rgba(0,0,0,0.5);
z-index: 9999;
font-size: 13px;
font-family: inherit;
color: #d4d4d4;
user-select: none;
}
.ctx-entry {
display: flex;
align-items: center;
padding: 5px 12px;
cursor: pointer;
gap: 8px;
white-space: nowrap;
}
.ctx-entry:hover {
background: #2a4a7f;
}
.ctx-entry-dir {
justify-content: space-between;
}
.ctx-label {
flex: 1;
}
.ctx-arrow {
font-size: 9px;
opacity: 0.6;
}
.ctx-readonly {
display: block;
padding: 5px 12px;
color: #888;
font-style: italic;
white-space: nowrap;
cursor: default;
}
.ctx-separator {
display: block;
height: 1px;
background: #3a3a3a;
margin: 4px 0;
}

View File

@ -0,0 +1,145 @@
editor-shell {
display: flex;
flex-direction: column;
height: 100vh;
overflow: hidden;
background: #0f1117;
color: #e2e4ed;
font-family: ui-sans-serif, system-ui, -apple-system, "Segoe UI", sans-serif;
}
.es-header {
display: flex;
align-items: center;
gap: 12px;
padding: 0 16px;
height: 40px;
background: #13151f;
border-bottom: 1px solid #2a2d3a;
flex-shrink: 0;
}
.es-back {
color: #7b7f96;
text-decoration: none;
font-size: 0.8rem;
}
.es-back:hover { color: #e2e4ed; }
.es-title {
flex: 1;
font-size: 0.9rem;
font-weight: 600;
color: #c8cbde;
}
.es-portrait-btns {
display: none;
gap: 2px;
}
editor-shell.portrait .es-portrait-btns {
display: flex;
}
.es-pb-btn {
padding: 4px 10px;
background: transparent;
border: 1px solid #2a2d3a;
border-radius: 4px;
color: #7b7f96;
cursor: pointer;
font-size: 0.9rem;
font-family: inherit;
}
.es-pb-btn:hover { background: #1a1d27; color: #c8cbde; }
.es-pb-btn.active { color: #7c8cff; border-color: #7c8cff; }
/* Workspace */
.es-workspace {
display: flex;
flex: 1;
min-height: 0;
overflow: hidden;
}
/* Panels */
.es-panel {
display: flex;
flex-direction: column;
flex: 1;
min-width: 0;
overflow: hidden;
}
.es-panel[data-panel="left"] { flex: 0 0 240px; }
.es-panel[data-panel="center"] { flex: 1; }
.es-panel[data-panel="right"] { flex: 0 0 280px; }
.es-panel-empty {
flex: 1;
display: flex;
align-items: center;
justify-content: center;
color: #333;
font-size: 0.85rem;
border: 2px dashed #222;
margin: 8px;
border-radius: 6px;
}
.es-panel.es-panel-drop .es-panel-empty {
border-color: #7c8cff;
color: #7c8cff;
}
/* Sections within a panel — arranged horizontally */
.es-sections {
display: flex;
flex-direction: row;
flex: 1;
min-height: 0;
overflow: hidden;
}
.es-section {
display: flex;
flex-direction: column;
flex: 1;
min-width: 0;
min-height: 0;
overflow: hidden;
}
/* Resize handles */
.es-v-handle {
width: 4px;
background: #2a2d3a;
cursor: col-resize;
flex-shrink: 0;
transition: background 0.15s;
}
.es-v-handle:hover { background: #7c8cff; }
.es-h-handle {
height: 4px;
background: #2a2d3a;
cursor: row-resize;
flex-shrink: 0;
transition: background 0.15s;
}
.es-h-handle:hover { background: #7c8cff; }
/* Portrait overrides */
editor-shell.portrait .es-workspace {
flex-direction: column;
}
editor-shell.portrait .es-panel {
flex: 1 !important;
width: 100% !important;
}
editor-shell.portrait .es-v-handle {
display: none;
}

View File

@ -0,0 +1,130 @@
file-tree-panel {
display: flex;
flex-direction: column;
height: 100%;
background: #0f1117;
color: #c8cbde;
font-size: 0.85rem;
}
.ftp-header {
display: flex;
align-items: center;
gap: 4px;
padding: 4px 8px;
border-bottom: 1px solid #2a2d3a;
flex-shrink: 0;
}
.ftp-btn {
padding: 2px 6px;
background: transparent;
border: 1px solid #2a2d3a;
border-radius: 3px;
color: #666;
cursor: pointer;
font-size: 0.7rem;
font-family: inherit;
}
.ftp-btn:hover { color: #aaa; background: #1a1d27; border-color: #444; }
.ftp-inline-create {
display: flex;
flex-direction: column;
gap: 4px;
padding: 8px;
background: #13151f;
border-bottom: 1px solid #2a2d3a;
}
.ftp-inline-label {
font-size: 0.75rem;
color: #666;
font-style: italic;
}
.ftp-rename-input {
width: 100%;
padding: 4px 6px;
background: #0f1117;
border: 1px solid #7c8cff;
border-radius: 3px;
color: #e2e4ed;
font-size: 0.85rem;
font-family: inherit;
outline: none;
}
.ftp-inline-create .ftp-btn {
align-self: flex-start;
display: inline-block;
margin-right: 4px;
}
.ftp-tree {
flex: 1;
overflow-y: auto;
padding: 4px 0;
}
.ftp-list {
list-style: none;
padding: 0;
margin: 0;
}
.ftp-list .ftp-list {
display: none;
}
.ftp-dir.open > .ftp-list {
display: block;
}
.ftp-dir-label {
display: block;
padding: 3px 8px 3px calc(8px + var(--depth, 0) * 12px);
cursor: pointer;
color: #7b7f96;
}
.ftp-dir-label:hover { color: #c8cbde; }
.ftp-dir.open > .ftp-dir-label { color: #c8cbde; }
.ftp-file {
padding: 3px 8px 3px calc(20px + var(--depth, 0) * 12px);
cursor: pointer;
color: #9ba4c7;
}
.ftp-file:hover { background: #1a1d27; color: #e2e4ed; }
.ftp-file.active { background: #1e2235; color: #7c8cff; }
.ftp-dir-label.active { background: #1e2235; color: #c8cbde; }
.ftp-type-error {
padding: 6px 10px;
color: #e07070;
font-size: 0.8rem;
background: #1e1520;
border-bottom: 1px solid #3a2a2a;
}
.ftp-empty {
display: block;
padding: 12px;
color: #555;
font-style: italic;
}
.ftp-up {
padding: 4px 8px;
cursor: pointer;
color: #666;
font-size: 0.8rem;
font-style: italic;
border-bottom: 1px solid #1e2030;
}
.ftp-up:hover { color: #c8cbde; background: #1a1d27; }

View File

@ -0,0 +1,109 @@
group-editor {
display: block;
max-width: 700px;
margin: 2rem auto;
padding: 0 1rem;
}
group-editor h2 {
margin-bottom: 1rem;
}
group-editor .create-form {
display: flex;
gap: 0.5rem;
margin-bottom: 1.5rem;
}
group-editor .create-form input {
flex: 1;
padding: 0.5rem;
border: 1px solid #ccc;
border-radius: 4px;
font-size: 1rem;
}
group-editor .group-list {
list-style: none;
padding: 0;
margin: 0;
display: flex;
flex-direction: column;
gap: 0.75rem;
}
group-editor .group-list li {
border: 1px solid #ddd;
border-radius: 6px;
overflow: hidden;
}
group-editor .group-header {
display: flex;
align-items: center;
gap: 0.5rem;
padding: 0.75rem 1rem;
background: #f8f8f8;
}
group-editor .group-header strong {
flex: 1;
}
group-editor .members-panel {
padding: 1rem;
border-top: 1px solid #eee;
}
group-editor .member-list {
list-style: none;
padding: 0;
margin: 0 0 1rem;
}
group-editor .member-list li {
display: flex;
align-items: center;
gap: 0.5rem;
padding: 0.4rem 0;
border-bottom: 1px solid #f0f0f0;
}
group-editor .empty {
color: #999;
font-size: 0.9rem;
}
group-editor .add-member-form {
display: flex;
gap: 0.5rem;
}
group-editor .add-member-form input {
width: 80px;
padding: 0.4rem;
border: 1px solid #ccc;
border-radius: 4px;
}
group-editor button {
padding: 0.4rem 0.8rem;
border: 1px solid #999;
background: #fff;
border-radius: 4px;
cursor: pointer;
font-size: 0.85rem;
}
group-editor button:hover {
background: #f0f0f0;
}
group-editor .btn-delete {
border-color: #c00;
color: #c00;
}
group-editor .btn-delete:hover {
background: #fee;
}

View File

@ -0,0 +1,52 @@
html-editor-panel {
display: flex;
flex-direction: column;
height: 100%;
background: #0f1117;
}
.hep-toolbar {
display: flex;
align-items: center;
gap: 4px;
padding: 4px 8px;
background: #13151f;
border-bottom: 1px solid #2a2d3a;
flex-shrink: 0;
}
.hep-toolbar button {
padding: 3px 10px;
background: transparent;
border: 1px solid #2a2d3a;
border-radius: 4px;
color: #9ba4c7;
cursor: pointer;
font-size: 0.8rem;
font-family: inherit;
}
.hep-toolbar button:hover:not(:disabled) { background: #1a1d27; color: #e2e4ed; }
.hep-toolbar button:disabled { opacity: 0.3; cursor: default; }
.hep-save:not(:disabled) { border-color: #7c8cff; color: #7c8cff; }
.hep-save:not(:disabled):hover { background: #1e2235; }
.hep-pin.pinned { border-color: #f0a050; color: #f0a050; }
.hep-pin.pinned:hover { background: #1e1a10; }
.hep-empty {
flex: 1;
display: flex;
align-items: center;
justify-content: center;
color: #555;
font-size: 0.9rem;
}
.hep-frame {
flex: 1;
border: none;
background: #fff;
width: 100%;
}

View File

@ -0,0 +1,58 @@
login-form {
display: block;
max-width: 360px;
margin: 80px auto;
padding: 2rem;
border: 1px solid #ddd;
border-radius: 6px;
}
login-form form {
display: flex;
flex-direction: column;
gap: 1rem;
}
login-form h2 {
margin: 0;
}
login-form label {
display: flex;
flex-direction: column;
gap: 4px;
font-size: 0.9rem;
}
login-form input {
padding: 0.5rem;
border: 1px solid #ccc;
border-radius: 4px;
font-size: 1rem;
}
login-form button {
padding: 0.6rem;
background: #222;
color: #fff;
border: none;
border-radius: 4px;
cursor: pointer;
font-size: 1rem;
}
login-form button:hover {
background: #444;
}
login-form .error {
color: #c00;
font-size: 0.85rem;
min-height: 1em;
}
login-form a {
text-align: center;
font-size: 0.9rem;
color: #555;
}

View File

@ -0,0 +1,130 @@
project-editor {
display: block;
max-width: 700px;
margin: 2rem auto;
padding: 0 1rem;
}
project-editor h2 {
margin-bottom: 1rem;
}
project-editor .create-form {
display: flex;
gap: 0.5rem;
margin-bottom: 1.5rem;
}
project-editor .create-form input {
flex: 1;
padding: 0.5rem;
border: 1px solid #ccc;
border-radius: 4px;
font-size: 1rem;
}
project-editor .project-list {
list-style: none;
padding: 0;
margin: 0;
display: flex;
flex-direction: column;
gap: 0.75rem;
}
project-editor .project-list li {
border: 1px solid #ddd;
border-radius: 6px;
overflow: hidden;
}
project-editor .project-header {
display: flex;
align-items: center;
gap: 0.5rem;
padding: 0.75rem 1rem;
background: #f8f8f8;
}
project-editor .project-header strong {
flex: 1;
}
project-editor .members-panel {
padding: 1rem;
border-top: 1px solid #eee;
}
project-editor .member-list {
list-style: none;
padding: 0;
margin: 0 0 1rem;
}
project-editor .member-list li {
display: flex;
align-items: center;
gap: 0.5rem;
padding: 0.4rem 0;
border-bottom: 1px solid #f0f0f0;
}
project-editor .empty {
color: #999;
font-size: 0.9rem;
}
project-editor .add-member-form {
display: flex;
gap: 0.5rem;
flex-wrap: wrap;
}
project-editor .add-member-form input {
width: 80px;
padding: 0.4rem;
border: 1px solid #ccc;
border-radius: 4px;
}
project-editor select {
padding: 0.4rem;
border: 1px solid #ccc;
border-radius: 4px;
font-size: 0.85rem;
}
project-editor button {
padding: 0.4rem 0.8rem;
border: 1px solid #999;
background: #fff;
border-radius: 4px;
cursor: pointer;
font-size: 0.85rem;
}
project-editor button:hover {
background: #f0f0f0;
}
project-editor .btn-edit {
padding: 0.4rem 0.8rem;
border: 1px solid #7c8cff;
border-radius: 4px;
font-size: 0.85rem;
color: #7c8cff;
text-decoration: none;
display: inline-flex;
align-items: center;
}
project-editor .btn-edit:hover { background: #f0f0ff; }
project-editor .btn-delete {
border-color: #c00;
color: #c00;
}
project-editor .btn-delete:hover {
background: #fee;
}

View File

@ -0,0 +1,58 @@
register-form {
display: block;
max-width: 360px;
margin: 80px auto;
padding: 2rem;
border: 1px solid #ddd;
border-radius: 6px;
}
register-form form {
display: flex;
flex-direction: column;
gap: 1rem;
}
register-form h2 {
margin: 0;
}
register-form label {
display: flex;
flex-direction: column;
gap: 4px;
font-size: 0.9rem;
}
register-form input {
padding: 0.5rem;
border: 1px solid #ccc;
border-radius: 4px;
font-size: 1rem;
}
register-form button {
padding: 0.6rem;
background: #222;
color: #fff;
border: none;
border-radius: 4px;
cursor: pointer;
font-size: 1rem;
}
register-form button:hover {
background: #444;
}
register-form .error {
color: #c00;
font-size: 0.85rem;
min-height: 1em;
}
register-form a {
text-align: center;
font-size: 0.9rem;
color: #555;
}

View File

@ -0,0 +1,170 @@
rojo-chat-panel {
display: flex;
flex-direction: column;
height: 100%;
background: #0f1117;
}
/* ── Toolbar ─────────────────────────────────────────────── */
.rcp-toolbar {
display: flex;
align-items: center;
gap: 8px;
padding: 6px 8px;
background: #13151f;
border-bottom: 1px solid #2a2d3a;
flex-shrink: 0;
}
.rcp-toolbar-icon {
width: 32px;
height: 32px;
background: #1a5fd4;
border-radius: 6px;
display: flex;
align-items: center;
justify-content: center;
font-size: 1.1rem;
flex-shrink: 0;
}
.rcp-toolbar-name {
flex: 1;
color: #e2e4ed;
font-size: 0.95rem;
}
.rcp-toolbar-btn {
width: 32px;
height: 32px;
background: #1a5fd4;
border: none;
border-radius: 6px;
color: #fff;
cursor: pointer;
font-size: 1rem;
display: flex;
align-items: center;
justify-content: center;
flex-shrink: 0;
}
.rcp-toolbar-btn:hover { background: #1450b0; }
/* ── Chat history ────────────────────────────────────────── */
.rcp-history {
flex: 1;
overflow-y: auto;
padding: 14px 12px;
display: flex;
flex-direction: column;
gap: 14px;
background: #08090e;
}
.rcp-user-bubble {
align-self: flex-end;
background: #1e2235;
color: #dde0f0;
padding: 10px 14px;
border-radius: 10px;
max-width: 80%;
white-space: pre-wrap;
word-break: break-word;
font-size: 0.9rem;
line-height: 1.5;
}
.rcp-assistant-bubble {
align-self: flex-start;
background: #13151f;
color: #c8ccde;
padding: 10px 14px;
border-radius: 10px;
max-width: 85%;
font-size: 0.9rem;
line-height: 1.6;
word-break: break-word;
}
.rcp-assistant-bubble p { margin: 0 0 0.5em; }
.rcp-assistant-bubble p:last-child { margin-bottom: 0; }
.rcp-assistant-bubble ul,
.rcp-assistant-bubble ol { padding-left: 1.4em; margin: 0 0 0.5em; }
.rcp-assistant-bubble li { margin: 0.15em 0; }
.rcp-assistant-bubble strong { color: #e2e4ed; }
.rcp-assistant-bubble code {
background: #1a1d27;
padding: 0.1em 0.35em;
border-radius: 3px;
font-size: 0.85em;
font-family: ui-monospace, "Cascadia Code", monospace;
}
.rcp-assistant-bubble pre {
background: #1a1d27;
padding: 10px 12px;
border-radius: 6px;
overflow-x: auto;
margin: 0.5em 0;
}
.rcp-assistant-bubble pre code { background: none; padding: 0; }
/* ── Input area ──────────────────────────────────────────── */
.rcp-input-area {
display: flex;
gap: 8px;
align-items: flex-end;
padding: 10px;
background: #3a1010;
border-top: 1px solid #2a2d3a;
flex-shrink: 0;
}
.rcp-input-text {
flex: 1;
min-height: 4.5em;
max-height: 4.5em;
overflow-y: auto;
background: #1a1520;
color: #dde0f0;
padding: 8px 10px;
border-radius: 8px;
font-size: 0.9rem;
font-family: inherit;
line-height: 1.5;
outline: none;
word-break: break-word;
}
.rcp-input-text:empty::before {
content: 'Type message…';
color: #555;
pointer-events: none;
}
.rcp-input-buttons {
display: flex;
flex-direction: column;
gap: 6px;
}
.rcp-input-btn {
width: 36px;
height: 36px;
background: #555;
border: none;
border-radius: 50%;
color: #fff;
cursor: pointer;
font-size: 1rem;
display: flex;
align-items: center;
justify-content: center;
flex-shrink: 0;
}
.rcp-input-btn:hover:not(:disabled) { background: #6a6a6a; }
.rcp-input-btn:disabled { opacity: 0.35; cursor: default; }

View File

@ -0,0 +1,78 @@
tab-container {
display: flex;
flex-direction: column;
flex: 1;
min-height: 0;
overflow: hidden;
background: #0f1117;
}
tab-container.tc-drop-target {
outline: 2px solid #7c8cff;
outline-offset: -2px;
}
.tc-bar {
display: flex;
align-items: stretch;
background: #13151f;
border-bottom: 1px solid #2a2d3a;
flex-shrink: 0;
min-height: 32px;
}
.tc-tabs {
display: flex;
align-items: stretch;
flex: 1;
overflow-x: auto;
scrollbar-width: none;
}
.tc-tabs::-webkit-scrollbar { display: none; }
.tc-tab {
display: flex;
align-items: center;
gap: 4px;
padding: 0 12px;
font-size: 0.8rem;
color: #7b7f96;
cursor: pointer;
white-space: nowrap;
border-right: 1px solid #2a2d3a;
user-select: none;
}
.tc-tab:hover { color: #c8cbde; background: #1a1d27; }
.tc-tab.active { color: #e2e4ed; background: #0f1117; border-bottom: 2px solid #7c8cff; }
.tc-tab[draggable="true"] { cursor: grab; }
.tc-tab[draggable="true"]:active { cursor: grabbing; }
.dirty-dot { color: #f59e0b; font-size: 0.6rem; }
.tc-menu {
padding: 0 10px;
background: transparent;
border: none;
border-left: 1px solid #2a2d3a;
color: #555;
cursor: pointer;
font-size: 1rem;
letter-spacing: 0;
}
.tc-menu:hover { color: #aaa; background: #1a1d27; }
.tc-content {
flex: 1;
min-height: 0;
overflow: hidden;
position: relative;
}
.tc-content > * {
position: absolute;
inset: 0;
overflow: auto;
}