:root { color-scheme: light; --color-text: #18201f; --color-page: #eef1ee; --color-sidebar-text: #f4f7f5; --color-sidebar-bg: #12201d; --color-muted: #6f7f7a; --color-sidebar-muted: #9baca6; --color-primary-text: #09201a; --color-primary: #60d394; --color-secondary-text: #25322f; --color-secondary-bg: #dfe7e2; --color-danger-text: #fff8f8; --color-danger: #a64545; --color-nav-text: #dfe9e4; --color-nav-hover: #223b36; --color-status-border: #cbd5d0; --color-status-text: #33413d; --color-surface: #fbfdfb; --color-warning: #d4b25f; --color-warning-bg: #fff7de; --color-label: #52605c; --color-input-border: #bec9c4; --color-input-bg: #ffffff; --color-sidebar-input-text: #10201c; --color-active-text: #f8fbf9; --color-active: #226957; --color-panel-border: #d5ddd8; --color-border-subtle: #d8e0dc; --color-panel-subtle: #f4f7f5; --color-active-surface: #e3f3ec; --color-metric: #1f5c4c; --color-small-text: #66736f; color: var(--color-text); background: var(--color-page); accent-color: var(--color-primary); font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; font-size: 16px; font-synthesis: none; line-height: 1.5; text-rendering: optimizeLegibility; -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; } @media (prefers-color-scheme: dark) { :root { color-scheme: dark; --color-text: #e4ece8; --color-page: #0f1514; --color-sidebar-text: #f3faf6; --color-sidebar-bg: #0b1715; --color-muted: #9fb2ab; --color-sidebar-muted: #9eb2ab; --color-primary-text: #06130f; --color-primary: #69e6a2; --color-secondary-text: #dce7e2; --color-secondary-bg: #22302d; --color-danger-text: #fff8f8; --color-danger: #d05a5a; --color-nav-text: #d8e7e1; --color-nav-hover: #1b332f; --color-status-border: #37504a; --color-status-text: #d8e7e1; --color-surface: #161f1d; --color-warning: #e1bd66; --color-warning-bg: #3a2f14; --color-label: #b3c2bd; --color-input-border: #435750; --color-input-bg: #101917; --color-sidebar-input-text: #e6f0ec; --color-active-text: #f8fbf9; --color-active: #2f967c; --color-panel-border: #2a3a36; --color-border-subtle: #344942; --color-panel-subtle: #1b2925; --color-active-surface: #17392f; --color-metric: #7ce3b4; --color-small-text: #9badb0; } } * { box-sizing: border-box; } body { margin: 0; min-width: 320px; min-height: 100vh; } button, input, textarea, select { font: inherit; } button { border: 0; } .app-shell { display: grid; grid-template-columns: 280px 1fr; min-height: 100vh; } .sidebar { display: flex; flex-direction: column; gap: 18px; padding: 24px; color: var(--color-sidebar-text); background: var(--color-sidebar-bg); } .brand { display: grid; grid-template-columns: 38px 1fr; gap: 12px; align-items: center; } .brand img { width: 38px; height: 38px; } .brand h1, .brand p, .topbar h2, .topbar p, .panel h3, .empty-state h3, .metric { margin: 0; } .brand h1 { font-size: 1rem; line-height: 1.2; } .brand p, .eyebrow, .subtle { color: var(--color-muted); font-size: 0.82rem; } .sidebar .brand p { color: var(--color-sidebar-muted); } .primary-action, .secondary-action, nav button, .segments button { min-height: 40px; border-radius: 6px; cursor: pointer; } .primary-action { color: var(--color-primary-text); background: var(--color-primary); font-weight: 700; } .secondary-action { padding: 0 14px; color: var(--color-secondary-text); background: var(--color-secondary-bg); font-weight: 600; } .secondary-action.danger { color: var(--color-danger-text); background: var(--color-danger); } .primary-action:disabled, .secondary-action:disabled, nav button:disabled, select:disabled { cursor: not-allowed; opacity: 0.55; } nav { display: grid; gap: 6px; margin-top: 8px; } nav button { color: var(--color-nav-text); background: transparent; text-align: left; padding: 0 12px; } nav button:hover, nav button.active { background: var(--color-nav-hover); } .workspace { position: relative; min-width: 0; padding: 28px; overflow-x: hidden; } .topbar { display: flex; justify-content: space-between; gap: 24px; align-items: flex-start; margin-bottom: 24px; } .topbar > div { min-width: 0; } .topbar h2 { font-size: 1.8rem; line-height: 1.15; } .toast-region { position: fixed; top: 20px; right: 24px; z-index: 20; display: grid; width: min(420px, calc(100vw - 48px)); gap: 10px; pointer-events: none; } .toast { display: grid; grid-template-columns: minmax(0, 1fr) 28px; gap: 12px; align-items: start; border: 1px solid var(--color-status-border); border-radius: 6px; padding: 10px 12px; color: var(--color-status-text); background: var(--color-surface); box-shadow: 0 12px 32px rgb(0 0 0 / 18%); overflow-wrap: anywhere; pointer-events: auto; } .toast.busy { border-color: var(--color-warning); background: var(--color-warning-bg); } .toast button { display: inline-grid; place-items: center; width: 28px; height: 28px; border-radius: 6px; color: inherit; background: transparent; cursor: pointer; } .toast button:hover { background: var(--color-secondary-bg); } .field { display: grid; gap: 6px; } .field.inline { grid-template-columns: minmax(120px, 1fr) 180px; align-items: center; } .field span, .profile-row > span { color: var(--color-label); font-size: 0.85rem; font-weight: 700; } input, textarea, select { width: 100%; min-height: 38px; border: 1px solid var(--color-input-border); border-radius: 6px; padding: 0 10px; color: var(--color-text); background: var(--color-input-bg); } .app-select-field { min-width: 0; } .app-select { position: relative; width: 100%; } .app-select-click-away { position: fixed; inset: 0; z-index: 29; border-radius: 0; padding: 0; background: transparent; cursor: default; } .app-select-trigger { display: grid; grid-template-columns: minmax(0, 1fr) 18px; gap: 10px; align-items: center; width: 100%; min-height: 38px; border: 1px solid var(--color-input-border); border-radius: 6px; padding: 0 10px; color: var(--color-text); background: var(--color-input-bg); cursor: pointer; text-align: left; } .app-select.open .app-select-trigger { position: relative; z-index: 31; } .sidebar .app-select-trigger { color: var(--color-sidebar-input-text); } .app-select-trigger:disabled { cursor: not-allowed; opacity: 0.55; } .app-select-trigger span { min-width: 0; overflow: hidden; color: inherit; font-size: 0.9rem; font-weight: 600; text-overflow: ellipsis; white-space: nowrap; } .app-select-trigger .app-select-arrow { color: var(--color-label); font-size: 0.75rem; text-align: right; } .app-select-menu { position: absolute; z-index: 30; top: calc(100% + 4px); right: 0; left: 0; display: grid; max-height: 260px; overflow: auto; border: 1px solid var(--color-input-border); border-radius: 6px; padding: 4px; background: var(--color-input-bg); box-shadow: 0 16px 32px rgb(0 0 0 / 24%); } .app-select-menu button { min-height: 36px; border-radius: 4px; padding: 8px 10px; color: var(--color-text); background: transparent; cursor: pointer; overflow-wrap: anywhere; text-align: left; } .app-select-menu button:hover, .app-select-menu button.active { color: var(--color-active-text); background: var(--color-active); } select, option, optgroup { color-scheme: light dark; } option, optgroup { color: var(--color-text); background: var(--color-input-bg); } textarea { min-height: 220px; padding: 10px; resize: vertical; } .sidebar select { color: var(--color-sidebar-input-text); } @media (prefers-color-scheme: dark) { select, option, optgroup { color-scheme: dark; } } .profile-row { display: flex; gap: 14px; align-items: center; margin-bottom: 20px; } .segments { display: flex; flex-wrap: wrap; gap: 6px; } .segments button { padding: 0 14px; color: var(--color-secondary-text); background: var(--color-secondary-bg); } .segments button.active { color: var(--color-active-text); background: var(--color-active); } .panel-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; } .panel, .empty-state { border: 1px solid var(--color-panel-border); border-radius: 8px; padding: 20px; background: var(--color-surface); } .panel.wide, .empty-state { grid-column: 1 / -1; } .panel h3, .empty-state h3 { margin-bottom: 16px; font-size: 1.08rem; } .check-row { display: flex; gap: 10px; align-items: center; margin-top: 14px; } .check-row input { width: 18px; min-height: 18px;