Files
cursor-byok/frontend/public/style.css
T
2026-06-30 10:38:52 +08:00

282 lines
4.2 KiB
CSS

:root {
--bg: #f4f5f7;
--card: #ffffff;
--text: #1f2937;
--muted: #6b7280;
--line: #e5e7eb;
--btn: #111827;
--btn-text: #ffffff;
}
* {
box-sizing: border-box;
}
html,
body {
width: 100%;
background: var(--bg);
height: 100%;
margin: 0;
padding: 0;
overflow: hidden;
}
body {
font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
background: var(--bg);
color: var(--text);
padding: 0;
}
.app-shell {
width: 100vw;
height: 100vh;
border-radius: 10px;
background: var(--card);
overflow: hidden;
display: flex;
flex-direction: column;
}
.window-header {
height: 30px;
min-height: 30px;
display: flex;
align-items: center;
justify-content: center;
padding: 0 8px;
border-bottom: 1px solid var(--line);
background: #f8f8f8;
color: #6b7280;
user-select: none;
}
body.os-windows .window-header {
justify-content: space-between;
}
.header-spacer {
display: none;
width: 48px;
height: 22px;
}
body.os-windows .header-spacer {
display: block;
}
.header-title {
font-size: 12px;
line-height: 1;
font-weight: 500;
}
.window-actions {
display: none;
align-items: center;
gap: 4px;
}
body.os-windows .window-actions {
display: flex;
}
.window-btn {
width: 22px;
height: 22px;
border: 0;
border-radius: 4px;
background: transparent;
cursor: pointer;
display: flex;
align-items: center;
justify-content: center;
padding: 0;
}
.window-btn img {
width: 14px;
height: 14px;
opacity: 0.7;
}
.window-btn:hover {
background: #e5e7eb;
}
.window-btn:hover img {
opacity: 1;
}
.window-btn.close-btn:hover {
background: #ef4444;
}
.window-btn.close-btn:hover img {
filter: brightness(0) invert(1);
}
.panel {
flex: 1;
padding: 16px;
display: flex;
flex-direction: column;
justify-content: space-between;
gap: 12px;
}
.panel-top,
.panel-bottom {
display: grid;
gap: 12px;
}
.row {
display: grid;
grid-template-columns: 74px 1fr;
align-items: center;
gap: 8px;
}
.windows-only {
display: none;
}
body.os-windows .windows-only {
display: grid;
}
.field {
display: grid;
grid-template-columns: 1fr 56px;
gap: 8px;
align-items: center;
}
.label {
color: var(--muted);
font-size: 13px;
}
input {
width: 100%;
height: 32px;
border: 1px solid var(--line);
border-radius: 8px;
padding: 0 10px;
font-size: 13px;
outline: none;
background: #fff;
}
input:focus {
border-color: #9ca3af;
}
input[readonly] {
background: #f9fafb;
}
.value {
font-size: 13px;
}
.toggle-btn {
width: 100%;
height: 38px;
border: none;
border-radius: 8px;
background: var(--btn);
color: var(--btn-text);
font-size: 13px;
cursor: pointer;
}
.toggle-btn.enabled {
background: #374151;
}
.toggle-btn.waiting-init {
background: #9ca3af;
}
.init-btn {
width: 100%;
height: 38px;
border: 1px solid #d1d5db;
border-radius: 8px;
background: #fff;
color: #374151;
font-size: 13px;
cursor: pointer;
}
.init-btn:hover:not(:disabled) {
border-color: #9ca3af;
background: #f9fafb;
}
.query-btn {
height: 30px;
border: 1px solid var(--line);
border-radius: 8px;
background: #fff;
padding-left: 0;
padding-right: 0;
font-size: 12px;
color: #374151;
cursor: pointer;
}
.query-btn:disabled,
.init-btn:disabled,
.toggle-btn:disabled,
.window-btn:disabled {
opacity: 0.65;
cursor: not-allowed;
}
.expire-inline {
margin: 0;
font-size: 12px;
color: var(--muted);
}
.init-status-line {
display: flex;
align-items: center;
justify-content: space-between;
gap: 8px;
}
.init-status {
font-size: 12px;
}
.init-status[data-state="idle"] {
color: #6b7280;
}
.init-status[data-state="checking"] {
color: #2563eb;
}
.init-status[data-state="ready"] {
color: #047857;
}
.init-status[data-state="pending"] {
color: #92400e;
}
.init-status[data-state="error"] {
color: #b91c1c;
}
.action-row {
display: grid;
grid-template-columns: 1fr 1fr;
gap: 8px;
}