:root {
  color-scheme: light dark;
  --bg: #fafafa;
  --fg: #1a1a1a;
  --muted: #666;
  --card: #fff;
  --border: #e2e2e2;
  --accent: #2f6fed;
  --danger: #d9453f;
}
@media (prefers-color-scheme: dark) {
  :root {
    --bg: #131417;
    --fg: #f2f2f2;
    --muted: #a0a0a0;
    --card: #1c1e22;
    --border: #2c2f36;
    --accent: #6fa0ff;
    --danger: #ff6b66;
  }
}
* { box-sizing: border-box; }
body {
  margin: 0;
  font: 16px/1.55 system-ui, -apple-system, Segoe UI, Roboto, sans-serif;
  background: var(--bg);
  color: var(--fg);
}
.wrap { max-width: 680px; margin: 0 auto; padding: 2.5rem 1.25rem; }
header h1 { font-size: 2rem; margin: 0 0 .25rem; }
.tagline { color: var(--muted); margin: 0 0 1.75rem; }

.card {
  background: var(--card);
  border: 1px solid var(--border);
  border-radius: 12px;
  padding: 1.4rem;
}

/* Buttons + inputs */
button, input {
  font: inherit;
  border-radius: 8px;
  border: 1px solid var(--border);
  padding: .55rem .8rem;
  background: var(--card);
  color: var(--fg);
}
button { cursor: pointer; }
button:hover { border-color: var(--accent); }
.primary { background: var(--accent); color: #fff; border-color: var(--accent); }
.primary:hover { filter: brightness(1.05); }
.big { width: 100%; font-size: 1.05rem; padding: .8rem; }
.danger { color: #fff; background: var(--danger); border-color: var(--danger); }
.link { border: none; background: none; color: var(--accent); padding: .3rem; }
.or { text-align: center; color: var(--muted); margin: 1rem 0 .6rem; font-size: .9rem; }
.row { display: flex; gap: .5rem; }
.row input { flex: 1; }

/* Board */
.board-head { display: flex; justify-content: space-between; align-items: center; gap: 1rem; flex-wrap: wrap; margin-bottom: 1rem; }
.muted { color: var(--muted); font-size: .85rem; margin-right: .4rem; }
.code { font-size: 1.2rem; letter-spacing: .04em; }
.board-actions { display: flex; align-items: center; gap: .4rem; }

.composer-row { display: flex; gap: .5rem; align-items: center; }
.composer-row #composer { flex: 1; }
.file-btn { border: 1px solid var(--border); border-radius: 8px; padding: .55rem .7rem; cursor: pointer; }
.file-btn:hover { border-color: var(--accent); }
.hint { color: var(--muted); font-size: .82rem; margin: .5rem 0 1rem; }

.items { list-style: none; padding: 0; margin: 0; display: flex; flex-direction: column; gap: .5rem; }
.item {
  display: flex; align-items: center; gap: .6rem;
  border: 1px solid var(--border); border-radius: 10px; padding: .6rem .8rem;
  animation: pop .18s ease-out;
}
.item .ic { flex: none; }
.item .txt { flex: 1; word-break: break-word; }
.item a { color: var(--accent); word-break: break-all; }
.item .copy, .item .dl { flex: none; font-size: .82rem; }
@keyframes pop { from { opacity: 0; transform: translateY(-4px); } to { opacity: 1; transform: none; } }

a { color: var(--accent); }
footer { margin-top: 2rem; color: var(--muted); font-size: .85rem; }

/* Toast */
.toast {
  position: fixed; left: 50%; bottom: 1.5rem; transform: translateX(-50%);
  background: var(--fg); color: var(--bg);
  padding: .6rem 1rem; border-radius: 8px; font-size: .9rem; box-shadow: 0 4px 16px rgba(0,0,0,.25);
}
.toast.err { background: var(--danger); color: #fff; }

@media (prefers-reduced-motion: reduce) { .item { animation: none; } }
