/* ═══════════════════════════════════════════
   MAIN SHELL
═══════════════════════════════════════════ */
.main {
  flex: 1; display: flex; flex-direction: column;
  min-width: 0; height: 100vh; overflow: hidden;
}

.topbar {
  display: flex; align-items: center; gap: 14px;
  padding: 13px 28px;
  background: var(--surface);
  border-bottom: 1px solid var(--border);
  flex-shrink: 0;
}
.topbar-heading {
  font-family: var(--font-display);
  font-size: 20px; font-weight: 600; color: var(--text-1);
  white-space: nowrap;
}
.topbar-date {
  font-family: var(--font-mono);
  font-size: 11px; color: var(--text-3); white-space: nowrap;
}

.search-wrap {
  flex: 1; max-width: 360px; margin-left: auto; position: relative;
}
.search-wrap svg,
.search-wrap > i {
  position: absolute; left: 10px; top: 50%; transform: translateY(-50%);
  font-size: 14px; color: var(--text-3); pointer-events: none;
}
.search-input {
  width: 100%;
  background: var(--bg);
  border: 1px solid var(--border);
  border-radius: var(--r-sm);
  padding: 8px 12px 8px 34px;
  color: var(--text-1); font-size: 13px; outline: none;
  transition: border-color 0.15s;
}
.search-input::placeholder { color: var(--text-3); }
.search-input:focus { border-color: var(--brass); background: var(--surface); }

.topbar-btns { display: flex; align-items: center; gap: 8px; }

.view-scroll {
  flex: 1; overflow-y: auto; padding: 26px 28px;
}

/* ═══════════════════════════════════════════
   BUTTONS
═══════════════════════════════════════════ */
.btn-primary {
  display: inline-flex; align-items: center; gap: 6px;
  padding: 8px 18px;
  background: var(--text-1); color: #fff;
  border: none; border-radius: var(--r-sm);
  font-size: 13px; font-weight: 600; cursor: pointer;
  transition: background 0.12s; white-space: nowrap;
  text-decoration: none;
}
.btn-primary:hover { background: #2a4060; color: #fff; }
.btn-primary svg { width: 13px; height: 13px; }

.btn-ghost-sm {
  display: inline-flex; align-items: center; gap: 5px;
  padding: 7px 12px; border-radius: var(--r-sm);
  border: 1px solid var(--border); background: var(--surface);
  color: var(--text-2); font-size: 12.5px; cursor: pointer;
  transition: all 0.12s; text-decoration: none; white-space: nowrap;
}
.btn-ghost-sm:hover { background: var(--surface-hi); color: var(--text-1); }
.btn-ghost-sm svg { width: 13px; height: 13px; }

.btn-danger {
  display: inline-flex; align-items: center; gap: 6px;
  padding: 7px 12px; border-radius: var(--r-sm);
  background: #fef2f2; color: #b91c1c; border: 1px solid #fca5a5;
  font-size: 12.5px; font-weight: 500; cursor: pointer; transition: all 0.12s;
}
.btn-danger:hover { background: #fee2e2; }

.btn { display: inline-flex; align-items: center; gap: 6px; padding: 8px 16px; border-radius: var(--r-sm); font-size: 13px; font-weight: 500; cursor: pointer; border: none; transition: all 0.12s; text-decoration: none; }
.btn-secondary { background: var(--surface); border: 1px solid var(--border); color: var(--text-2); }
.btn-secondary:hover { background: var(--surface-hi); color: var(--text-1); }
.btn-sm { padding: 5px 10px; font-size: 12px; }
.btn-ghost { display: inline-flex; align-items: center; gap: 6px; padding: 7px 12px; border-radius: var(--r-sm); border: 1px solid var(--border); background: transparent; color: var(--text-2); font-size: 13px; cursor: pointer; transition: all 0.12s; }

/* ═══════════════════════════════════════════
   FLASH MESSAGES
═══════════════════════════════════════════ */
.flash {
  padding: 10px 16px; border-radius: var(--r-sm);
  margin-bottom: 18px; font-size: 13px;
}
.flash-notice { background: #f0fdf4; color: #15803d; border: 1px solid #bbf7d0; }
.flash-alert  { background: #fef2f2; color: #b91c1c; border: 1px solid #fca5a5; }

/* ═══════════════════════════════════════════
   BACK LINK
═══════════════════════════════════════════ */
.back-link { font-size: 12px; color: var(--brass); display: inline-flex; align-items: center; gap: 4px; margin-bottom: 14px; }
.back-link:hover { color: var(--brass-lo); }
