:root {
  --bg: #f6f7f5;
  --surface: #ffffff;
  --text: #171918;
  --muted: #6e746f;
  --line: #e5e8e4;
  --accent: #1f4d3f;
  --accent-soft: #e8f0ec;
  --danger: #a13f3f;
}
* { box-sizing: border-box; }
body {
  margin: 0;
  background: var(--bg);
  color: var(--text);
  font-family: Inter, ui-sans-serif, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  line-height: 1.45;
}
a { color: inherit; }
.shell { width: min(920px, calc(100% - 32px)); margin: 0 auto; padding: 56px 0 80px; }
.shell.narrow { width: min(760px, calc(100% - 32px)); }
.topbar { display:flex; align-items:flex-end; justify-content:space-between; gap:24px; margin-bottom:28px; }
.eyebrow { margin:0 0 4px; color:var(--muted); font-size:12px; letter-spacing:.08em; text-transform:uppercase; }
h1 { margin:0; font-size:40px; letter-spacing:-.04em; font-weight:700; }
.actions { display:flex; gap:10px; align-items:center; }
.button {
  appearance:none; border:0; border-radius:999px; padding:10px 15px;
  background:var(--accent); color:#fff; text-decoration:none; font:inherit; font-size:14px; cursor:pointer;
}
.button.ghost { background:var(--surface); color:var(--text); border:1px solid var(--line); }
.filters { display:flex; gap:8px; flex-wrap:wrap; padding-bottom:24px; border-bottom:1px solid var(--line); }
.chip { text-decoration:none; font-size:14px; padding:7px 11px; border-radius:999px; color:var(--muted); }
.chip:hover { background:var(--surface); color:var(--text); }
.chip.active { background:var(--accent-soft); color:var(--accent); font-weight:600; }
.feed { background:var(--surface); border-radius:18px; overflow:hidden; margin-top:18px; border:1px solid var(--line); }
.item { padding:18px 22px 20px; border-bottom:1px solid var(--line); }
.item:last-child { border-bottom:0; }
.item:hover { background:#fbfcfb; }
.item .meta { display:flex; gap:7px; flex-wrap:wrap; color:var(--muted); font-size:13px; margin-bottom:7px; }
.item h2 { margin:0; font-size:19px; line-height:1.35; letter-spacing:-.015em; font-weight:600; }
.item h2 a { text-decoration:none; }
.item h2 a:hover { text-decoration:underline; text-decoration-thickness:1px; text-underline-offset:3px; }
.empty { padding:48px 22px; text-align:center; }
.empty h2 { margin:0 0 8px; font-size:20px; }
.empty p, .muted, .hint { color:var(--muted); }
.panel { background:var(--surface); border:1px solid var(--line); border-radius:18px; padding:22px; margin-top:18px; }
.panel h2 { margin:0 0 18px; font-size:20px; }
.form-grid { display:grid; grid-template-columns:1fr 1fr; gap:16px; }
.form-grid .full { grid-column:1 / -1; }
label { display:grid; gap:7px; font-size:14px; font-weight:600; }
input[type=text], input[type=url], select {
  width:100%; padding:11px 12px; border:1px solid var(--line); border-radius:10px; background:#fff; color:var(--text); font:inherit;
}
input:focus, select:focus { outline:2px solid #c7d9d0; border-color:#9fb8ad; }
.check { display:flex; align-items:center; gap:8px; font-weight:500; }
.hint { margin:14px 0 0; font-size:13px; }
.notice { margin:18px 0; padding:12px 14px; border-radius:12px; font-size:14px; }
.notice.success { background:#e9f4ee; color:#245d45; }
.notice.error { background:#f9eaea; color:#8a3434; }
.source-list { display:grid; }
.source-row { display:flex; justify-content:space-between; align-items:center; gap:16px; padding:14px 0; border-top:1px solid var(--line); }
.source-row:first-child { border-top:0; padding-top:0; }
.source-meta { color:var(--muted); font-size:13px; margin-top:3px; }
.link-danger { background:none; border:0; color:var(--danger); font:inherit; font-size:13px; cursor:pointer; padding:0; }
@media (max-width: 640px) {
  .shell { padding-top:28px; }
  .topbar { align-items:flex-start; flex-direction:column; }
  h1 { font-size:34px; }
  .form-grid { grid-template-columns:1fr; }
  .form-grid .full { grid-column:auto; }
  .item { padding:16px 17px 18px; }
}
