/* Semantic Scrap — VoltAgent tokens only */

* { box-sizing: border-box; }

html, body {
  margin: 0;
  padding: 0;
  background: var(--canvas);
  color: var(--ink);
  font-family: var(--font-text);
  font-size: var(--fs-body);
  line-height: var(--lh-body);
  min-height: 100vh;
}

body {
  word-break: keep-all;
}

a.idx-link {
  position: fixed;
  top: var(--space-md);
  left: var(--space-md);
  width: 24px;
  height: 24px;
  border: 1px solid var(--hairline);
  border-radius: var(--radius-xs);
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--ink-subtle);
  text-decoration: none;
  font-size: var(--fs-caption);
  opacity: 0.4;
  z-index: 10;
}
a.idx-link:hover { opacity: 1; color: var(--ink); }

.shell {
  max-width: 1200px;
  margin: 0 auto;
  padding: var(--space-xxl) var(--space-lg) var(--space-xxl);
}

@media (min-width: 768px) {
  .shell { padding: var(--space-section) var(--space-xl) var(--space-xxl); }
}

/* Header */
.head { margin-bottom: var(--space-xl); }
.eyebrow {
  font-family: var(--font-text);
  font-size: var(--fs-eyebrow);
  font-weight: 600;
  line-height: 1.3;
  letter-spacing: var(--tr-eyebrow);
  text-transform: uppercase;
  color: var(--ink-subtle);
  margin: 0 0 var(--space-sm);
}
.title {
  font-family: var(--font-display);
  font-size: var(--fs-display-md);
  font-weight: 600;
  line-height: var(--lh-display-md);
  letter-spacing: var(--tr-display-md);
  margin: 0 0 var(--space-md);
}
@media (min-width: 768px) {
  .title { font-size: var(--fs-display-lg); line-height: var(--lh-display-lg); letter-spacing: var(--tr-display-lg); }
}
.lede {
  font-size: var(--fs-body-lg);
  color: var(--ink-muted);
  max-width: 640px;
  margin: 0 0 var(--space-lg);
  line-height: var(--lh-body-relaxed);
}

/* Status bar */
.status {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-md);
  align-items: center;
  padding: var(--space-sm) var(--space-md);
  background: var(--surface-1);
  border: 1px solid var(--hairline);
  border-radius: var(--radius-md);
  font-size: var(--fs-caption);
  color: var(--ink-muted);
  margin-bottom: var(--space-xl);
}
.status .dot {
  display: inline-block;
  width: 8px; height: 8px;
  border-radius: var(--radius-pill);
  background: var(--hairline-strong);
}
.status.ready .dot { background: var(--primary); box-shadow: var(--glow-primary); }
.status.error .dot { background: var(--brand-secure); }
.status .progress-bar {
  flex: 1 1 200px;
  min-width: 120px;
  height: 4px;
  background: var(--surface-2);
  border-radius: var(--radius-pill);
  overflow: hidden;
  position: relative;
}
.status .progress-bar::after {
  content: '';
  position: absolute;
  inset: 0 auto 0 0;
  width: var(--p, 0%);
  background: var(--primary);
  transition: width 0.2s linear;
}
.status code {
  font-family: var(--font-mono);
  font-size: var(--fs-mono);
  color: var(--ink-subtle);
}

/* Layout */
.grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--space-lg);
}
@media (min-width: 900px) {
  .grid { grid-template-columns: 1.5fr 1fr; gap: var(--space-xl); }
}

/* Search & composer */
.search-box {
  display: flex;
  flex-direction: column;
  gap: var(--space-sm);
  margin-bottom: var(--space-md);
}
.search-input-wrap {
  position: relative;
}
.search-input {
  width: 100%;
  padding: var(--space-sm) var(--space-md);
  padding-left: 36px;
  background: var(--surface-1);
  border: 1px solid var(--hairline);
  border-radius: var(--radius-md);
  color: var(--ink);
  font-family: var(--font-text);
  font-size: var(--fs-body);
  outline: none;
}
.search-input:focus {
  border-color: var(--primary-focus);
  box-shadow: var(--glow-primary);
}
.search-input::placeholder { color: var(--ink-tertiary); }
.search-icon {
  position: absolute;
  left: var(--space-sm);
  top: 50%;
  transform: translateY(-50%);
  color: var(--ink-subtle);
  pointer-events: none;
}
.search-meta {
  display: flex;
  justify-content: space-between;
  align-items: center;
  font-size: var(--fs-caption);
  color: var(--ink-subtle);
  font-family: var(--font-mono);
}

/* Composer */
.composer-toggle {
  display: inline-flex;
  align-items: center;
  gap: var(--space-xs);
  padding: 12px 16px;
  background: var(--surface-1);
  border: 1px solid var(--hairline);
  border-radius: var(--radius-md);
  color: var(--primary-hover);
  cursor: pointer;
  font-family: var(--font-text);
  font-size: var(--fs-button);
  font-weight: 500;
}
.composer-toggle:hover { background: var(--surface-2); color: var(--primary); }

.composer {
  display: none;
  flex-direction: column;
  gap: var(--space-sm);
  padding: var(--space-md);
  background: var(--surface-1);
  border: 1px solid var(--hairline-strong);
  border-radius: var(--radius-md);
}
.composer.open { display: flex; }
.composer textarea {
  width: 100%;
  min-height: 80px;
  padding: var(--space-sm);
  background: var(--surface-2);
  border: 1px solid var(--hairline);
  border-radius: var(--radius-sm);
  color: var(--ink);
  font-family: var(--font-text);
  font-size: var(--fs-body);
  resize: vertical;
  outline: none;
}
.composer textarea:focus { border-color: var(--primary-focus); }
.composer-actions {
  display: flex;
  gap: var(--space-xs);
  justify-content: flex-end;
}
.composer input[type="text"] {
  padding: 8px 12px;
  background: var(--surface-2);
  border: 1px solid var(--hairline);
  border-radius: var(--radius-sm);
  color: var(--ink);
  font-size: var(--fs-body-sm);
  font-family: var(--font-text);
  outline: none;
  flex: 1;
}
.btn {
  padding: 8px 14px;
  border: 1px solid var(--hairline);
  background: var(--surface-1);
  color: var(--ink);
  border-radius: var(--radius-md);
  cursor: pointer;
  font-family: var(--font-text);
  font-size: var(--fs-button);
  font-weight: 500;
}
.btn:hover { background: var(--surface-2); border-color: var(--hairline-strong); }
.btn.primary { color: var(--primary-hover); }
.btn.primary:hover { color: var(--primary); }
.btn.danger { color: var(--ink-subtle); }
.btn.danger:hover { color: var(--ink); border-color: var(--brand-secure); }

/* Memo list */
.memos {
  display: flex;
  flex-direction: column;
  gap: var(--space-sm);
}
.memo {
  position: relative;
  padding: var(--space-md);
  background: var(--surface-1);
  border: 1px solid var(--hairline);
  border-radius: var(--radius-md);
  transition: border-color 0.15s, background 0.15s;
  cursor: pointer;
}
.memo:hover, .memo.selected {
  background: var(--surface-2);
  border-color: var(--hairline-strong);
}
.memo.selected {
  border-color: var(--primary-focus);
}
.memo-head {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: var(--space-sm);
  margin-bottom: var(--space-xs);
  font-size: var(--fs-caption);
  color: var(--ink-subtle);
  font-family: var(--font-mono);
}
.memo-tags {
  display: flex;
  gap: var(--space-xxs);
  flex-wrap: wrap;
}
.tag {
  padding: 2px 8px;
  background: var(--surface-2);
  border-radius: var(--radius-pill);
  font-size: var(--fs-caption);
  color: var(--ink-muted);
}
.memo-body {
  color: var(--ink);
  line-height: var(--lh-body-relaxed);
  word-break: keep-all;
}
.memo-actions {
  display: flex;
  gap: var(--space-xs);
  margin-top: var(--space-sm);
  justify-content: flex-end;
  opacity: 0.6;
  transition: opacity 0.15s;
}
.memo:hover .memo-actions, .memo.selected .memo-actions { opacity: 1; }
.memo-action {
  background: transparent;
  border: 1px solid var(--hairline);
  color: var(--ink-subtle);
  padding: 4px 10px;
  border-radius: var(--radius-sm);
  font-size: var(--fs-caption);
  cursor: pointer;
  font-family: var(--font-text);
}
.memo-action:hover { color: var(--ink); border-color: var(--hairline-strong); }
.memo-action.del:hover { color: var(--brand-secure); }

.score-badge {
  position: absolute;
  top: -8px;
  right: var(--space-md);
  padding: 2px 8px;
  background: var(--surface-2);
  border: 1px solid var(--hairline-strong);
  border-radius: var(--radius-pill);
  font-size: var(--fs-caption);
  font-family: var(--font-mono);
  color: var(--primary);
}

/* Sidebar */
.side {
  display: flex;
  flex-direction: column;
  gap: var(--space-md);
}
.side-tabs {
  display: flex;
  gap: var(--space-xxs);
  background: var(--canvas);
  padding: 4px;
  border: 1px solid var(--hairline);
  border-radius: var(--radius-pill);
  width: fit-content;
}
.side-tab {
  padding: 6px 14px;
  background: transparent;
  border: none;
  border-radius: var(--radius-pill);
  color: var(--ink-subtle);
  font-family: var(--font-text);
  font-size: var(--fs-button);
  font-weight: 500;
  cursor: pointer;
}
.side-tab.active { background: var(--surface-1); color: var(--primary); }
.side-panel {
  padding: var(--space-md);
  background: var(--surface-1);
  border: 1px solid var(--hairline);
  border-radius: var(--radius-lg);
  min-height: 300px;
}
.side-panel h3 {
  margin: 0 0 var(--space-sm);
  font-family: var(--font-text);
  font-size: var(--fs-card-title);
  font-weight: 600;
  line-height: var(--lh-card-title);
  letter-spacing: var(--tr-card-title);
}
.side-panel p {
  color: var(--ink-muted);
  font-size: var(--fs-body-sm);
  line-height: var(--lh-body-relaxed);
  margin: 0 0 var(--space-sm);
}
.side-panel code {
  font-family: var(--font-mono);
  font-size: var(--fs-mono);
  color: var(--primary-hover);
  padding: 2px 6px;
  background: var(--surface-2);
  border-radius: var(--radius-sm);
}
.diagram {
  display: flex;
  flex-direction: column;
  gap: var(--space-xs);
  padding: var(--space-md);
  background: var(--canvas);
  border: 1px solid var(--hairline);
  border-radius: var(--radius-md);
  margin: var(--space-md) 0;
}
.diagram-row {
  display: flex;
  align-items: center;
  gap: var(--space-sm);
  font-family: var(--font-mono);
  font-size: var(--fs-caption);
  color: var(--ink-muted);
}
.diagram-row .arrow { color: var(--primary); }
.diagram-row .pill {
  padding: 2px 8px;
  border: 1px solid var(--hairline-strong);
  border-radius: var(--radius-pill);
  color: var(--ink);
  white-space: nowrap;
}

/* Similar list */
.similar-list { display: flex; flex-direction: column; gap: var(--space-sm); margin-top: var(--space-sm); }
.similar-item {
  padding: var(--space-sm);
  background: var(--canvas);
  border: 1px solid var(--hairline);
  border-radius: var(--radius-sm);
  font-size: var(--fs-body-sm);
  color: var(--ink-muted);
  cursor: pointer;
  transition: border-color 0.15s;
}
.similar-item:hover { border-color: var(--hairline-strong); color: var(--ink); }
.similar-score {
  font-family: var(--font-mono);
  font-size: var(--fs-caption);
  color: var(--primary);
  margin-right: var(--space-xs);
}

/* Clusters */
.cluster {
  margin-top: var(--space-md);
  padding: var(--space-sm);
  background: var(--canvas);
  border: 1px solid var(--hairline);
  border-radius: var(--radius-sm);
}
.cluster-head {
  font-family: var(--font-mono);
  font-size: var(--fs-caption);
  color: var(--primary);
  margin-bottom: var(--space-xs);
}
.cluster-item {
  font-size: var(--fs-body-sm);
  color: var(--ink-muted);
  padding: 4px 0;
  line-height: var(--lh-body-relaxed);
  border-bottom: 1px solid var(--hairline);
}
.cluster-item:last-child { border-bottom: none; }

/* Stats */
.stat-row {
  display: flex;
  justify-content: space-between;
  padding: 6px 0;
  border-bottom: 1px solid var(--hairline);
  font-size: var(--fs-body-sm);
}
.stat-row:last-child { border: none; }
.stat-label { color: var(--ink-subtle); }
.stat-val { font-family: var(--font-mono); color: var(--ink); }

/* Footer / utility actions */
.foot {
  margin-top: var(--space-xxl);
  padding-top: var(--space-lg);
  border-top: 1px solid var(--hairline);
  display: flex;
  justify-content: space-between;
  align-items: center;
  flex-wrap: wrap;
  gap: var(--space-sm);
  font-size: var(--fs-caption);
  color: var(--ink-tertiary);
}

/* Empty / loading states */
.empty {
  text-align: center;
  padding: var(--space-xl);
  color: var(--ink-subtle);
  font-size: var(--fs-body-sm);
}
