/* Author directory styling coordinated with the plaza's public color palette.
   This is our own layout and CSS; no original plaza stylesheet is bundled. */
:root {
  --ink:#1b1b23; --muted:#747480; --paper:#f7f7f9; --line:#e4e4ea;
  --accent:#4659e2; --green:#e3e9ff; --surface:#fff; --raised:#f0f0f4;
  --accent-soft:#f1f4ff; --accent-edge:#cbd5fe;
}
body {font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","PingFang SC","Microsoft YaHei",system-ui,sans-serif;line-height:1.6;-webkit-font-smoothing:antialiased}
.top {
  height:64px;max-width:none;padding:0 max(24px,calc((100vw - 1132px)/2));
  background:rgba(255,255,255,.88);border-bottom:1px solid var(--line);
  position:sticky;top:0;z-index:10;backdrop-filter:blur(16px);gap:24px;
}
.brand {font-size:16px;gap:10px;letter-spacing:.03em}
.brand small {font-size:8px;color:var(--muted);letter-spacing:.18em;font-weight:600}
.logo {width:36px;height:36px;border-radius:11px;color:white;font-size:20px;background:linear-gradient(145deg,#7b8ff8,#4659e2 65%,#323da0);box-shadow:0 4px 12px #4659e225}
.top nav {gap:24px;font-size:13px}
.top nav a {padding:8px 12px;border-radius:30px}
.top nav a:hover {background:var(--raised);color:var(--ink)}
.top nav a.active {background:var(--accent-soft);color:var(--accent)}
.top nav b {background:var(--raised);color:var(--muted)}
.quiet {background:var(--surface);border-color:var(--line);border-radius:30px;color:var(--muted)}
.quiet:hover {border-color:#bfc0cd;color:var(--ink)}
main {max-width:1180px;padding:0 24px}
.intro {grid-template-columns:1.65fr 1fr;gap:36px;padding:28px 0 26px;align-items:center}
.eyebrow {font-size:11px;letter-spacing:.04em;margin-bottom:12px;color:var(--muted)}
h1 {font-family:inherit;font-size:26px;font-weight:650;letter-spacing:0;line-height:1.65}
h1 em {color:var(--accent);display:block}
.sub {font-size:13px;line-height:1.8;margin:12px 0 18px}
.button {font-size:13px;padding:9px 16px;border-radius:30px;font-weight:600}
.primary {background:linear-gradient(180deg,#5a6ff0,#4659e2);color:white;box-shadow:0 4px 10px #4659e21a}
.primary:hover {filter:brightness(1.05)}
.line {background:var(--surface);border-color:var(--line)}
.spotlight {min-height:170px;background:var(--surface);padding:20px 24px;border:1px solid var(--line);border-radius:16px;box-shadow:0 2px 6px #1b1b2304}
.spotlight:after {color:var(--accent-soft);font-size:170px;right:-20px;top:15px}
.spotlight .eyebrow {font-size:10px;letter-spacing:.08em}
.spotlight h3 {font-size:21px;margin:10px 0 8px}
.spotlight p {font-size:12px;color:var(--muted);margin:6px 0;line-height:1.8}
.spotlight .view-link {display:inline-block;margin-top:12px}
.toolbar {gap:20px}
.tabs {gap:26px}
.tabs button {font-size:14px;padding:12px 0;border-bottom-width:2px;font-weight:500}
.tabs button.active {border-color:var(--accent);color:var(--ink);font-weight:600}
.search {background:var(--surface);border-color:var(--line);padding:7px 14px;min-width:280px}
.search input {font-size:13px}
.search span {color:var(--muted)}
.section-head {margin:24px 0 18px}
.section-head h2 {font-size:19px;font-weight:650}
.section-head p {font-size:12px}
.author-grid {gap:18px}
.author-card {border-radius:16px;background:var(--surface);padding:22px;min-height:225px;box-shadow:0 2px 6px #1b1b2304;transition:border-color .18s,box-shadow .18s}
.author-card:hover {border-color:var(--accent-edge);box-shadow:0 6px 20px #1b1b2308}
.avatar {background:#e3e9ff;color:#3a49c7;font-family:inherit;font-size:18px;font-weight:600}
.author-head h3 {font-size:16px}
.follow {border-color:var(--accent-edge);color:var(--accent);background:var(--accent-soft);font-size:12px;padding:6px 13px}
.follow:hover {background:var(--green)}
.follow.on {background:var(--raised);border-color:var(--line);color:var(--muted)}
.bio {font-size:13px;line-height:1.8}
.tag {background:var(--raised);color:#666674;font-size:11px;border-radius:30px;padding:3px 9px}
.view-link {color:var(--accent);font-weight:500}
.author-bottom {font-size:12px;padding-top:20px}
.profile {background:var(--surface);border:1px solid var(--line);border-radius:16px;padding:24px}
.profile h2 {font-size:24px}
.profile .avatar {width:54px;height:54px;font-size:22px}
.work {border-radius:16px;background:var(--surface);box-shadow:0 2px 6px #1b1b2306}
.work h3 {font-size:14px;font-weight:650}
.work p {font-size:12px;line-height:1.7}
.work .meta {font-size:11px}
.cover {background:var(--raised)}
.copy {background:var(--raised);color:#666674;border-radius:30px;padding:7px 12px}
.cover-fallback {background:var(--raised);color:var(--muted)}
.empty {background:var(--surface);border-color:var(--line)}
.event {background:var(--surface);border-radius:16px}
.event-label {background:var(--accent-soft);color:var(--accent);border-radius:30px;padding:4px 9px}
.text-button {color:var(--accent)}
dialog {background:var(--surface);border-radius:18px;box-shadow:0 20px 60px #1b1b2325}
dialog::backdrop {background:#1b1b2355}
dialog input,dialog textarea {background:var(--surface);border-color:var(--line)}
#toast {background:var(--ink)}
button:focus-visible,a:focus-visible,input:focus-visible {outline-color:#7b8ff8}
@media(max-width:1000px) {
  .top {padding:0 24px;gap:16px}
  .top nav {gap:6px}
  .intro {gap:24px}
}
@media(max-width:640px) {
  .top {height:auto;min-height:102px;padding:14px 16px;gap:10px}
  .top nav {width:100%;gap:0;justify-content:space-between}
  .top nav a {font-size:12px;padding:5px 10px}
  .brand {font-size:16px}
  main {padding:0 16px}
  .intro {padding:22px 0;display:block}
  h1 {font-size:23px;line-height:1.6}
  .sub {font-size:12px;margin:10px 0 16px}
  .button {font-size:12px;padding:9px 15px}
  .spotlight {min-height:0;margin-top:20px;padding:16px 20px}
  .spotlight h3 {font-size:19px}
  .spotlight:after {font-size:140px;top:0}
  .toolbar {padding-bottom:14px}
  .tabs {margin-bottom:12px}
  .tabs button {font-size:13px;padding:11px 0}
  .search {min-width:0}
  .section-head {margin-top:20px}
  .author-card {min-height:210px;padding:20px}
  .work h3 {font-size:12px}
  .work p {font-size:11px}
  .profile {padding:18px}
}
@media(prefers-color-scheme:dark) {
  :root {--ink:#f6f6f9;--muted:#a4a4b1;--paper:#16161a;--surface:#24242b;--line:#3d3d47;--raised:#2d2d34;--accent:#8495f7;--accent-soft:#212646;--accent-edge:#344074;--green:#283056}
  .top {background:rgba(36,36,43,.9)}
  .avatar {background:#283056;color:#a5b5fc}
  .tag,.copy {color:#b8b8c5}
  .primary {color:white}
  .spotlight:after {color:#2d3146}
  #toast {background:#e4e4ea;color:#1b1b23}
}
.claim-lookup{margin-top:16px;padding:14px;border:1px solid var(--line);border-radius:12px;background:var(--surface,#fff)}
.claim-lookup>label{margin:0 0 8px}
.claim-search-row{display:flex;gap:8px;align-items:center}
.claim-search-row input{min-width:0;flex:1;margin:0}
.claim-search-row button{flex-shrink:0;padding:10px 12px}
.claim-lookup select{width:100%;min-width:0;padding:10px;border:1px solid var(--line);border-radius:7px;background:var(--surface,#fff);color:var(--ink);font:inherit;font-size:12px}
#claim-use-card{margin-top:10px;width:100%}
#claim-search-status{margin:9px 0 0;overflow-wrap:anywhere}
#uploader-id-help{margin-top:-6px}
.claim-lookup button:disabled{opacity:.5;cursor:default}
.avatar{overflow:hidden}
.avatar img{width:100%;height:100%;object-fit:cover}
.avatar-upload-row{display:flex;align-items:center;gap:14px}
.avatar-upload-row>div:last-child{display:flex;align-items:center;gap:8px}
#owner-avatar-setup{margin:16px 0;padding:14px;border:1px solid var(--line);border-radius:12px}
#owner-avatar-setup>label{margin:0 0 12px}
.top nav{flex-wrap:wrap}
[hidden]{display:none!important}
#impression-inbox-nav{color:var(--accent);white-space:nowrap}
#impression-inbox-nav.has-pending{background:var(--accent-soft);border-color:var(--accent-edge);font-weight:600}
.impression-pagination{display:flex;align-items:center;justify-content:space-between;gap:8px;margin:16px 0;font-size:11px;color:var(--muted)}
.impression-pagination button:disabled{opacity:.4;cursor:default}
.impression-permission{display:flex;align-items:center;gap:8px}
.impression-permission input{width:auto;margin:0}
#impression-list{max-height:55vh;overflow:auto;overscroll-behavior:contain}
