@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;450;500;550;600;650;700&display=swap');

/* Orbit portable kit. Values from the local app; normalized sizing is documented in README.md. */
:root {
  --orbit-font: 'DM Sans', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
  --orbit-primary: #0c66e4;
  --orbit-primary-hover: #0055c7;
  --orbit-text: #172b4d;
  --orbit-heading: #243650;
  --orbit-text-secondary: #626f86;
  --orbit-text-muted: #6b778c;
  --orbit-border: #e7eaf0;
  --orbit-bg: #f7f8fa;
  --orbit-surface: #ffffff;
  --orbit-surface-muted: #f1f2f4;
  --orbit-selected: #e9f2ff;
  --orbit-focus: #579dff;
  --orbit-forest: #345c49;
  --orbit-error: #a84249;
  --orbit-space-1: 4px;
  --orbit-space-2: 8px;
  --orbit-space-3: 12px;
  --orbit-space-4: 16px;
  --orbit-space-6: 24px;
  --orbit-space-8: 32px;
  --orbit-space-12: 48px;
  --orbit-radius-tag: 4px;
  --orbit-radius-control: 6px;
  --orbit-radius-card: 7px;
  --orbit-radius-list: 11px;
  --orbit-radius-dialog: 12px;
  --orbit-shadow-card: 0 1px 2px #091e422b;
  --orbit-shadow-dialog: 0 20px 100px #172b4d3d;
  --orbit-text-meta: 11px;
  --orbit-text-label: 12px;
  --orbit-text-body: 14px;
  --orbit-text-title: 22px;
  --orbit-text-heading: 27px;
  --orbit-text-display: 48px;
  --orbit-sidebar-width: 232px;
  --orbit-header-height: 62px;
  --orbit-status-todo-bg: #e9eff9;
  --orbit-status-todo-marker: #7e98bd;
  --orbit-status-doing-bg: #fff3d9;
  --orbit-status-doing-marker: #b89548;
  --orbit-status-review-bg: #eee8f9;
  --orbit-status-review-marker: #a18abb;
  --orbit-status-done-bg: #e0f2e8;
  --orbit-status-done-marker: #72a98b;
  --orbit-status-blocked-bg: #fff0ea;
  --orbit-status-blocked-marker: #c77769;
  --orbit-tag-purple-bg: #eee7fc;
  --orbit-tag-blue-bg: #e2f0f4;
  --orbit-tag-orange-bg: #fff0d7;
  --orbit-tag-green-bg: #dcf3e8;
  --orbit-priority-urgent: #d36b68;
  --orbit-priority-high: #d49a58;
  --orbit-priority-medium: #7c90b0;
  --orbit-priority-low: #85a8a1;
}

.orbit-ui {
  font-family: var(--orbit-font);
  font-size: var(--orbit-text-body);
  line-height: 1.6;
  font-synthesis: none;
  color: var(--orbit-text);
  overflow-wrap: anywhere;
}
.orbit-ui *, .orbit-ui *::before, .orbit-ui *::after { box-sizing: border-box; }
.orbit-ui :where(button, input, textarea, select) { font: inherit; }
.orbit-ui :where(button, a, input, textarea, select) { -webkit-tap-highlight-color: transparent; }
.orbit-ui :where(button, a, input, textarea, select, [tabindex]):focus-visible {
  outline: 3px solid var(--orbit-focus);
  outline-offset: 3px;
}
.orbit-ui .orbit-body { margin: 0; font-size: var(--orbit-text-body); line-height: 1.7; }
.orbit-ui .orbit-title, .orbit-ui .orbit-heading, .orbit-ui .orbit-display {
  margin: 0;
  color: var(--orbit-heading);
  font-weight: 600;
  line-height: 1.3;
  letter-spacing: -.6px;
}
.orbit-ui .orbit-title { font-size: var(--orbit-text-title); }
.orbit-ui .orbit-heading { font-size: var(--orbit-text-heading); letter-spacing: -.9px; }
.orbit-ui .orbit-display { font-size: var(--orbit-text-display); font-weight: 500; line-height: 1.13; letter-spacing: -1.8px; }
.orbit-ui .orbit-meta { font-size: var(--orbit-text-meta); color: var(--orbit-text-muted); }
.orbit-ui .orbit-icon { width: 18px; height: 18px; flex-shrink: 0; vertical-align: middle; stroke-width: 1.7; }
.orbit-ui .orbit-icon--large { width: 24px; height: 24px; }
.orbit-ui .orbit-row { display: flex; align-items: center; flex-wrap: wrap; gap: var(--orbit-space-2); }
.orbit-ui .orbit-stack { display: flex; flex-direction: column; gap: var(--orbit-space-4); min-width: 0; }

.orbit-ui .orbit-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: var(--orbit-space-2);
  min-height: 38px;
  padding: 8px 14px;
  border: 1px solid transparent;
  border-radius: var(--orbit-radius-control);
  background: var(--orbit-surface-muted);
  color: var(--orbit-text);
  font-size: var(--orbit-text-label);
  font-weight: 550;
  line-height: 1.5;
  text-decoration: none;
  cursor: pointer;
}
.orbit-ui .orbit-button:hover { background: #e2e5e9; }
.orbit-ui .orbit-button--primary { background: var(--orbit-primary); color: #fff; border-color: var(--orbit-primary); }
.orbit-ui .orbit-button--primary:hover { background: var(--orbit-primary-hover); border-color: var(--orbit-primary-hover); }
.orbit-ui .orbit-button--secondary { background: var(--orbit-surface-muted); color: var(--orbit-text); }
.orbit-ui .orbit-button--ghost { background: transparent; color: var(--orbit-text-secondary); }
.orbit-ui .orbit-button--ghost:hover { background: #091e4210; }
.orbit-ui .orbit-button--icon { width: 38px; padding: 8px; flex-shrink: 0; }
.orbit-ui .orbit-button:disabled { opacity: .55; cursor: default; }
.orbit-ui .orbit-button:disabled:hover { background: var(--orbit-surface-muted); }
.orbit-ui .orbit-button--primary:disabled:hover { background: var(--orbit-primary); border-color: var(--orbit-primary); }
.orbit-ui .orbit-button--ghost:disabled:hover { background: transparent; }

.orbit-ui .orbit-field { display: flex; flex-direction: column; gap: var(--orbit-space-2); min-width: 0; }
.orbit-ui .orbit-label { font-size: var(--orbit-text-label); font-weight: 550; color: var(--orbit-heading); }
.orbit-ui .orbit-input, .orbit-ui .orbit-textarea, .orbit-ui .orbit-select {
  display: block;
  width: 100%;
  min-width: 0;
  min-height: 44px;
  padding: 10px 12px;
  border: 1px solid #dfe5ed;
  border-radius: var(--orbit-radius-control);
  background: var(--orbit-surface);
  color: var(--orbit-heading);
  font-size: var(--orbit-text-body);
  line-height: 1.6;
}
.orbit-ui .orbit-input::placeholder, .orbit-ui .orbit-textarea::placeholder { color: var(--orbit-text-muted); opacity: 1; }
.orbit-ui .orbit-input:hover, .orbit-ui .orbit-textarea:hover, .orbit-ui .orbit-select:hover { border-color: #aebed2; }
.orbit-ui .orbit-input:focus, .orbit-ui .orbit-textarea:focus, .orbit-ui .orbit-select:focus { border-color: var(--orbit-primary); }
.orbit-ui .orbit-textarea { min-height: 112px; resize: vertical; }
.orbit-ui .orbit-input:disabled, .orbit-ui .orbit-textarea:disabled, .orbit-ui .orbit-select:disabled { background: var(--orbit-bg); color: var(--orbit-text-muted); cursor: not-allowed; border-color: var(--orbit-border); }
.orbit-ui .orbit-input[aria-invalid="true"], .orbit-ui .orbit-textarea[aria-invalid="true"], .orbit-ui .orbit-select[aria-invalid="true"] { border-color: var(--orbit-error); }
.orbit-ui .orbit-help, .orbit-ui .orbit-error { margin: 0; font-size: var(--orbit-text-meta); line-height: 1.6; }
.orbit-ui .orbit-help { color: var(--orbit-text-secondary); }
.orbit-ui .orbit-error { color: var(--orbit-error); }
.orbit-ui .orbit-checkbox { display: inline-flex; align-items: flex-start; gap: var(--orbit-space-2); font-size: var(--orbit-text-label); cursor: pointer; }
.orbit-ui .orbit-checkbox input { width: 16px; height: 16px; margin: 2px 0 0; accent-color: var(--orbit-primary); flex-shrink: 0; }
.orbit-ui .orbit-checkbox:has(input:disabled) { color: var(--orbit-text-muted); cursor: not-allowed; }

/* Navigation links work without JavaScript. ARIA tabs require their own keyboard/panel behavior. */
.orbit-ui .orbit-tabs { display: flex; gap: var(--orbit-space-6); border-bottom: 1px solid var(--orbit-border); overflow-x: auto; padding: 3px 3px 0; }
.orbit-ui .orbit-tab { display: inline-flex; align-items: center; justify-content: center; flex-shrink: 0; min-height: 42px; padding: 8px 0 12px; border: 0; border-bottom: 2px solid transparent; background: transparent; color: var(--orbit-text-secondary); font-size: var(--orbit-text-label); font-weight: 500; text-decoration: none; cursor: pointer; }
.orbit-ui .orbit-tab:hover { color: var(--orbit-primary); }
.orbit-ui .orbit-tab:focus-visible { outline-offset: -3px; }
.orbit-ui .orbit-tab[aria-current="page"], .orbit-ui .orbit-tab[aria-current="location"], .orbit-ui .orbit-tab[aria-selected="true"] { border-bottom-color: var(--orbit-primary); color: var(--orbit-primary); }

.orbit-ui .orbit-card { padding: var(--orbit-space-3); background: var(--orbit-surface); border: 1px solid transparent; border-radius: var(--orbit-radius-card); box-shadow: var(--orbit-shadow-card); min-width: 0; }
.orbit-ui .orbit-card-title { margin: 0; color: var(--orbit-text); font-size: var(--orbit-text-label); line-height: 1.55; font-weight: 500; }
.orbit-ui .orbit-card-description { margin: var(--orbit-space-2) 0 0; color: var(--orbit-text-secondary); font-size: var(--orbit-text-meta); line-height: 1.6; }
.orbit-ui .orbit-card-meta { display: flex; align-items: center; flex-wrap: wrap; gap: var(--orbit-space-2); margin-top: var(--orbit-space-3); font-size: var(--orbit-text-meta); color: var(--orbit-text-secondary); }
.orbit-ui .orbit-card-meta > .orbit-avatar, .orbit-ui .orbit-card-meta > .orbit-avatar-stack { margin-left: auto; }
.orbit-ui .orbit-issue-key { font-size: var(--orbit-text-meta); font-weight: 550; color: var(--orbit-text-muted); font-variant-numeric: tabular-nums; }
.orbit-ui .orbit-tags { display: flex; gap: var(--orbit-space-1); flex-wrap: wrap; margin-top: var(--orbit-space-2); }
.orbit-ui .orbit-tag { display: inline-flex; align-items: center; padding: 2px 8px; border-radius: var(--orbit-radius-tag); background: var(--orbit-surface-muted); color: var(--orbit-text); font-size: var(--orbit-text-meta); font-weight: 450; line-height: 1.6; }
.orbit-ui .orbit-tag--purple { background: var(--orbit-tag-purple-bg); }
.orbit-ui .orbit-tag--blue { background: var(--orbit-tag-blue-bg); }
.orbit-ui .orbit-tag--orange { background: var(--orbit-tag-orange-bg); }
.orbit-ui .orbit-tag--green { background: var(--orbit-tag-green-bg); }
.orbit-ui .orbit-status { --orbit-status-bg: var(--orbit-surface-muted); --orbit-status-marker: var(--orbit-text-muted); display: inline-flex; align-items: center; gap: 6px; padding: 3px 8px; border-radius: var(--orbit-radius-tag); background: var(--orbit-status-bg); color: var(--orbit-text); font-size: var(--orbit-text-meta); line-height: 1.6; white-space: nowrap; }
.orbit-ui .orbit-status::before { content: ''; width: 6px; height: 6px; border-radius: 50%; background: var(--orbit-status-marker); flex-shrink: 0; }
.orbit-ui .orbit-status--todo { --orbit-status-bg: var(--orbit-status-todo-bg); --orbit-status-marker: var(--orbit-status-todo-marker); }
.orbit-ui .orbit-status--doing { --orbit-status-bg: var(--orbit-status-doing-bg); --orbit-status-marker: var(--orbit-status-doing-marker); }
.orbit-ui .orbit-status--review { --orbit-status-bg: var(--orbit-status-review-bg); --orbit-status-marker: var(--orbit-status-review-marker); }
.orbit-ui .orbit-status--done { --orbit-status-bg: var(--orbit-status-done-bg); --orbit-status-marker: var(--orbit-status-done-marker); }
.orbit-ui .orbit-status--blocked { --orbit-status-bg: var(--orbit-status-blocked-bg); --orbit-status-marker: var(--orbit-status-blocked-marker); }
.orbit-ui .orbit-priority { --orbit-priority-marker: var(--orbit-priority-medium); display: inline-flex; align-items: center; gap: 5px; color: var(--orbit-text); font-size: var(--orbit-text-meta); white-space: nowrap; }
.orbit-ui .orbit-priority::before { content: ''; width: 6px; height: 10px; border-radius: 2px; background: var(--orbit-priority-marker); flex-shrink: 0; }
.orbit-ui .orbit-priority--urgent { --orbit-priority-marker: var(--orbit-priority-urgent); }
.orbit-ui .orbit-priority--high { --orbit-priority-marker: var(--orbit-priority-high); }
.orbit-ui .orbit-priority--medium { --orbit-priority-marker: var(--orbit-priority-medium); }
.orbit-ui .orbit-priority--low { --orbit-priority-marker: var(--orbit-priority-low); }
.orbit-ui .orbit-avatar { display: inline-flex; align-items: center; justify-content: center; width: 28px; height: 28px; flex-shrink: 0; border-radius: 50%; background: #dbe8fa; color: #253858; font-size: 10px; font-weight: 700; letter-spacing: -.2px; }
.orbit-ui .orbit-avatar--blue { background: #dbe8fa; color: #253858; }
.orbit-ui .orbit-avatar--purple { background: #e9d9f6; color: #64458c; }
.orbit-ui .orbit-avatar--green { background: #dcf3e8; color: #345c49; }
.orbit-ui .orbit-avatar--large { width: 33px; height: 33px; font-size: var(--orbit-text-meta); }
.orbit-ui .orbit-avatar-stack { display: inline-flex; align-items: center; padding-left: 5px; }
.orbit-ui .orbit-avatar-stack .orbit-avatar { margin-left: -5px; border: 2px solid var(--orbit-surface); }
.orbit-ui .orbit-empty { padding: var(--orbit-space-8) var(--orbit-space-6); border: 1px dashed #d5dbe3; border-radius: var(--orbit-radius-control); background: var(--orbit-surface); text-align: center; color: var(--orbit-text-secondary); }
.orbit-ui .orbit-empty .orbit-icon { color: var(--orbit-text-muted); }
.orbit-ui .orbit-empty .orbit-card-title { margin-top: var(--orbit-space-3); }
.orbit-ui .orbit-empty .orbit-body { margin: var(--orbit-space-2) auto var(--orbit-space-4); max-width: 44ch; font-size: var(--orbit-text-label); }
.orbit-ui .orbit-list { padding: 0 var(--orbit-space-2) var(--orbit-space-2); border-radius: var(--orbit-radius-list); background: var(--orbit-surface-muted); min-width: 0; }
.orbit-ui .orbit-list-header { display: flex; align-items: center; justify-content: space-between; gap: var(--orbit-space-2); min-height: 48px; padding: 0 var(--orbit-space-2); }
.orbit-ui .orbit-list-header h2, .orbit-ui .orbit-list-header h3 { margin: 0; font-size: var(--orbit-text-label); font-weight: 650; }

.orbit-ui .orbit-dialog { width: 520px; max-width: calc(100vw - 32px); max-height: calc(100dvh - 48px); margin: auto; padding: 0; border: 0; border-radius: var(--orbit-radius-dialog); background: var(--orbit-surface); color: var(--orbit-text); box-shadow: var(--orbit-shadow-dialog); overflow: auto; }
.orbit-ui .orbit-dialog::backdrop { background: #0a1f3980; backdrop-filter: blur(3px); }
.orbit-ui .orbit-dialog-header { display: flex; align-items: flex-start; justify-content: space-between; gap: var(--orbit-space-4); padding: var(--orbit-space-6) var(--orbit-space-6) var(--orbit-space-4); }
.orbit-ui .orbit-dialog-title { margin: 0; font-size: var(--orbit-text-title); color: var(--orbit-heading); font-weight: 600; line-height: 1.3; letter-spacing: -.6px; }
.orbit-ui .orbit-dialog-body { padding: 0 var(--orbit-space-6) var(--orbit-space-6); }
.orbit-ui .orbit-dialog-footer { display: flex; align-items: center; justify-content: flex-end; flex-wrap: wrap; gap: var(--orbit-space-2); padding: var(--orbit-space-4) var(--orbit-space-6); border-top: 1px solid var(--orbit-border); background: var(--orbit-bg); }

/* Optional application shell. Components also work inside a simple .orbit-ui wrapper. */
.orbit-ui .orbit-shell { display: grid; grid-template-columns: var(--orbit-sidebar-width) minmax(0, 1fr); min-height: calc(100dvh - var(--orbit-header-height)); }
.orbit-ui .orbit-header { display: flex; align-items: center; justify-content: space-between; gap: var(--orbit-space-4); min-height: var(--orbit-header-height); padding: var(--orbit-space-2) var(--orbit-space-6); border-bottom: 1px solid var(--orbit-border); background: var(--orbit-surface); }
.orbit-ui .orbit-logo { display: inline-flex; align-items: center; gap: var(--orbit-space-2); color: #193453; font-size: 25px; font-weight: 700; letter-spacing: -1.1px; text-decoration: none; }
.orbit-ui .orbit-logo .orbit-icon { color: var(--orbit-primary); }
.orbit-ui .orbit-sidebar { padding: var(--orbit-space-6) var(--orbit-space-3); border-right: 1px solid var(--orbit-border); background: var(--orbit-surface); }
.orbit-ui .orbit-sidenav { display: flex; flex-direction: column; gap: var(--orbit-space-1); }
.orbit-ui .orbit-nav-item { display: flex; align-items: center; gap: var(--orbit-space-2); padding: 10px 12px; border-radius: var(--orbit-radius-control); color: var(--orbit-text-secondary); text-decoration: none; font-size: var(--orbit-text-label); font-weight: 500; }
.orbit-ui .orbit-nav-item:hover { background: var(--orbit-bg); }
.orbit-ui .orbit-nav-item:focus-visible { outline-offset: -3px; }
.orbit-ui .orbit-nav-item[aria-current="page"], .orbit-ui .orbit-nav-item[aria-current="location"] { background: var(--orbit-selected); color: var(--orbit-primary); }
.orbit-ui .orbit-main { min-width: 0; padding: var(--orbit-space-8); background: var(--orbit-bg); }

@media (max-width: 760px) {
  .orbit-ui .orbit-button { min-height: 44px; }
  .orbit-ui .orbit-button--icon { width: 44px; }
  .orbit-ui .orbit-input, .orbit-ui .orbit-textarea, .orbit-ui .orbit-select { font-size: 16px; }
  .orbit-ui .orbit-tab, .orbit-ui .orbit-nav-item, .orbit-ui .orbit-checkbox { min-height: 44px; }
  .orbit-ui .orbit-checkbox { align-items: center; }
  .orbit-ui .orbit-checkbox input { margin-top: 0; }
  .orbit-ui .orbit-shell { grid-template-columns: minmax(0, 1fr); }
  .orbit-ui .orbit-sidebar { border-right: 0; border-bottom: 1px solid var(--orbit-border); padding: var(--orbit-space-2) var(--orbit-space-4); }
  .orbit-ui .orbit-sidenav { flex-direction: row; overflow-x: auto; }
  .orbit-ui .orbit-nav-item { flex-shrink: 0; }
  .orbit-ui .orbit-main { padding: var(--orbit-space-6) var(--orbit-space-4); }
  .orbit-ui .orbit-header { padding-inline: var(--orbit-space-4); }
  .orbit-ui .orbit-display { font-size: 38px; }
}
@media (prefers-reduced-motion: reduce) {
  .orbit-ui *, .orbit-ui *::before, .orbit-ui *::after { scroll-behavior: auto !important; animation: none !important; transition: none !important; }
}
