Spaces:
Running
Running
| :root { | |
| color-scheme: dark; | |
| --bg: #11100e; | |
| --panel: #1a1815; | |
| --panel-strong: #25211c; | |
| --card: #201d19; | |
| --input: #12110f; | |
| --text: #f3eee7; | |
| --muted: #aaa197; | |
| --line: #373129; | |
| --line-strong: #4d4439; | |
| --accent: #2fb984; | |
| --accent-dark: #24946b; | |
| --warn: #f5b74f; | |
| --error: #ff746c; | |
| --ok: #59d994; | |
| --info: #7cc7ff; | |
| --shadow: 0 14px 34px rgba(0, 0, 0, 0.38); | |
| } | |
| * { | |
| box-sizing: border-box; | |
| } | |
| body { | |
| margin: 0; | |
| min-width: 320px; | |
| background: var(--bg); | |
| color: var(--text); | |
| font-family: | |
| Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", | |
| sans-serif; | |
| letter-spacing: 0; | |
| } | |
| button, | |
| input, | |
| select, | |
| textarea { | |
| font: inherit; | |
| } | |
| .app-shell { | |
| display: grid; | |
| grid-template-columns: 268px minmax(0, 1fr); | |
| min-height: 100vh; | |
| padding-bottom: 86px; | |
| } | |
| .sidebar { | |
| position: sticky; | |
| top: 0; | |
| height: 100vh; | |
| border-right: 1px solid var(--line); | |
| background: #171511; | |
| padding: 20px 16px; | |
| } | |
| .brand { | |
| display: flex; | |
| align-items: center; | |
| gap: 12px; | |
| margin-bottom: 28px; | |
| } | |
| .brand-mark { | |
| display: grid; | |
| width: 38px; | |
| height: 38px; | |
| place-items: center; | |
| border-radius: 8px; | |
| background: var(--accent); | |
| color: #ffffff; | |
| font-weight: 800; | |
| font-size: 14px; | |
| } | |
| .brand h1, | |
| .brand p, | |
| .topbar h2, | |
| .section-heading h3, | |
| .section-heading p, | |
| .strip-header h3 { | |
| margin: 0; | |
| } | |
| .brand h1 { | |
| font-size: 15px; | |
| line-height: 1.2; | |
| } | |
| .brand p, | |
| .section-heading p, | |
| .action-meta span { | |
| color: var(--muted); | |
| font-size: 12px; | |
| } | |
| .section-nav { | |
| display: grid; | |
| gap: 8px; | |
| } | |
| .nav-link { | |
| display: flex; | |
| justify-content: space-between; | |
| align-items: center; | |
| width: 100%; | |
| min-height: 42px; | |
| border: 1px solid transparent; | |
| border-radius: 8px; | |
| background: transparent; | |
| color: var(--text); | |
| padding: 10px 12px; | |
| text-align: left; | |
| cursor: pointer; | |
| font-weight: 700; | |
| } | |
| .nav-link:hover, | |
| .nav-link.active { | |
| background: var(--panel-strong); | |
| border-color: var(--line); | |
| } | |
| .nav-link.active { | |
| border-color: rgba(89, 217, 148, 0.34); | |
| color: #ffffff; | |
| } | |
| .main { | |
| min-width: 0; | |
| padding: 28px; | |
| } | |
| .topbar { | |
| margin-bottom: 20px; | |
| } | |
| .topbar h2 { | |
| font-size: 28px; | |
| line-height: 1.15; | |
| } | |
| .status-pill { | |
| display: inline-flex; | |
| align-items: center; | |
| min-height: 30px; | |
| border: 1px solid var(--line); | |
| border-radius: 999px; | |
| padding: 5px 10px; | |
| background: var(--panel-strong); | |
| color: var(--muted); | |
| font-size: 12px; | |
| font-weight: 700; | |
| white-space: nowrap; | |
| } | |
| .status-pill.ok { | |
| color: var(--ok); | |
| background: rgba(47, 185, 132, 0.13); | |
| border-color: rgba(89, 217, 148, 0.36); | |
| } | |
| .status-pill.warn { | |
| color: var(--warn); | |
| background: rgba(245, 183, 79, 0.13); | |
| border-color: rgba(245, 183, 79, 0.38); | |
| } | |
| .status-pill.error { | |
| color: var(--error); | |
| background: rgba(255, 116, 108, 0.12); | |
| border-color: rgba(255, 116, 108, 0.36); | |
| } | |
| .admin-views, | |
| .admin-view { | |
| display: grid; | |
| gap: 18px; | |
| } | |
| .admin-view[hidden] { | |
| display: none; | |
| } | |
| .provider-strip, | |
| .settings-section { | |
| border: 1px solid var(--line); | |
| border-radius: 8px; | |
| background: var(--panel); | |
| box-shadow: var(--shadow); | |
| } | |
| .provider-strip { | |
| padding: 16px; | |
| } | |
| .strip-header, | |
| .section-heading { | |
| display: flex; | |
| align-items: center; | |
| justify-content: space-between; | |
| gap: 12px; | |
| } | |
| .strip-header { | |
| margin-bottom: 12px; | |
| } | |
| .strip-header h3, | |
| .section-heading h3 { | |
| font-size: 16px; | |
| } | |
| .provider-grid { | |
| display: grid; | |
| grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); | |
| gap: 10px; | |
| } | |
| .provider-card { | |
| display: grid; | |
| gap: 8px; | |
| min-height: 108px; | |
| border: 1px solid var(--line); | |
| border-radius: 8px; | |
| padding: 12px; | |
| background: var(--card); | |
| } | |
| .provider-title { | |
| display: flex; | |
| align-items: center; | |
| justify-content: space-between; | |
| gap: 8px; | |
| } | |
| .provider-title strong { | |
| font-size: 14px; | |
| } | |
| .provider-meta { | |
| color: var(--muted); | |
| font-size: 12px; | |
| word-break: break-word; | |
| } | |
| .test-button, | |
| .ghost-button, | |
| .secondary-button, | |
| .primary-button { | |
| min-height: 34px; | |
| border-radius: 8px; | |
| border: 1px solid var(--line-strong); | |
| padding: 7px 12px; | |
| cursor: pointer; | |
| font-weight: 700; | |
| } | |
| .ghost-button, | |
| .secondary-button, | |
| .test-button { | |
| background: var(--panel-strong); | |
| color: var(--text); | |
| } | |
| .ghost-button:hover, | |
| .secondary-button:hover, | |
| .test-button:hover { | |
| border-color: var(--accent); | |
| } | |
| .primary-button { | |
| border-color: var(--accent); | |
| background: var(--accent); | |
| color: #06100b; | |
| } | |
| .primary-button:hover { | |
| background: var(--accent-dark); | |
| } | |
| .primary-button:disabled { | |
| cursor: not-allowed; | |
| border-color: var(--line); | |
| background: #34302a; | |
| color: #797067; | |
| } | |
| .form-sections { | |
| display: grid; | |
| gap: 18px; | |
| } | |
| .settings-section { | |
| padding: 18px; | |
| scroll-margin-top: 20px; | |
| } | |
| .section-heading { | |
| margin-bottom: 16px; | |
| } | |
| .field-grid { | |
| display: grid; | |
| grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); | |
| gap: 14px; | |
| } | |
| .field { | |
| display: grid; | |
| gap: 7px; | |
| align-content: start; | |
| } | |
| .field label { | |
| display: flex; | |
| align-items: center; | |
| justify-content: space-between; | |
| gap: 8px; | |
| font-size: 13px; | |
| font-weight: 700; | |
| } | |
| .field-source { | |
| color: var(--muted); | |
| font-size: 11px; | |
| font-weight: 600; | |
| } | |
| .field input, | |
| .field select, | |
| .field textarea { | |
| width: 100%; | |
| min-height: 38px; | |
| border: 1px solid var(--line-strong); | |
| border-radius: 8px; | |
| background: var(--input); | |
| color: var(--text); | |
| padding: 8px 10px; | |
| } | |
| .field textarea { | |
| min-height: 90px; | |
| resize: vertical; | |
| } | |
| .field input:disabled, | |
| .field select:disabled, | |
| .field textarea:disabled { | |
| background: #26231f; | |
| color: #82796f; | |
| } | |
| .field-description { | |
| color: var(--muted); | |
| font-size: 12px; | |
| line-height: 1.35; | |
| } | |
| .field.advanced-field { | |
| display: none; | |
| } | |
| .settings-section.show-advanced .advanced-field { | |
| display: grid; | |
| } | |
| .advanced-toggle { | |
| justify-self: start; | |
| margin-top: 14px; | |
| } | |
| .action-bar { | |
| position: fixed; | |
| right: 0; | |
| bottom: 0; | |
| left: 268px; | |
| z-index: 10; | |
| display: grid; | |
| grid-template-columns: minmax(0, 1fr) minmax(180px, auto) auto; | |
| gap: 14px; | |
| align-items: center; | |
| min-height: 72px; | |
| border-top: 1px solid var(--line); | |
| background: rgba(26, 24, 21, 0.94); | |
| padding: 12px 28px; | |
| backdrop-filter: blur(12px); | |
| } | |
| .action-meta { | |
| display: grid; | |
| gap: 3px; | |
| min-width: 0; | |
| } | |
| .action-meta strong, | |
| .action-meta span { | |
| overflow: hidden; | |
| text-overflow: ellipsis; | |
| white-space: nowrap; | |
| } | |
| .message-area { | |
| min-width: 0; | |
| color: var(--muted); | |
| font-size: 13px; | |
| } | |
| .message-area.error { | |
| color: var(--error); | |
| } | |
| .message-area.ok { | |
| color: var(--ok); | |
| } | |
| .action-buttons { | |
| display: flex; | |
| gap: 8px; | |
| } | |
| @media (max-width: 900px) { | |
| .app-shell { | |
| display: block; | |
| padding-bottom: 122px; | |
| } | |
| .sidebar { | |
| position: relative; | |
| height: auto; | |
| border-right: 0; | |
| border-bottom: 1px solid var(--line); | |
| } | |
| .section-nav { | |
| grid-template-columns: repeat(auto-fit, minmax(132px, 1fr)); | |
| } | |
| .main { | |
| padding: 18px; | |
| } | |
| .action-bar { | |
| left: 0; | |
| grid-template-columns: 1fr; | |
| align-items: stretch; | |
| padding: 12px 18px; | |
| } | |
| .action-buttons { | |
| justify-content: stretch; | |
| } | |
| .action-buttons button { | |
| flex: 1; | |
| } | |
| } | |