/* Library mirrors the app's hierarchy; desktop uses the available width. */
main, main > section, .you-col, .card-body { min-width: 0; }
.library-intro { display:grid; grid-template-columns:1fr 1fr; align-items:center; gap:32px; margin:8px 0 28px; }
.library-intro h1, .account-title { font-family:var(--font-head); font-size:clamp(28px,3vw,40px); letter-spacing:-.04em; margin:0 0 6px; }
.library-intro p { margin:0 0 18px; color:var(--meta); }
.library-search { width:100%; min-height:48px; text-align:left; border:1px solid var(--hairline); border-radius:18px; padding:12px 16px; background:var(--surface); color:var(--meta); }
.library-insight { display:flex; align-items:center; gap:12px; background:#E1F2E9; border:1px solid #B8DECB; border-radius:24px; padding:22px; min-width:0; }
.library-insight b { display:block; font-family:var(--font-head); font-size:22px; line-height:1.15; margin-bottom:10px; }
.library-insight p { font-size:14px; margin:0; color:#386A53; }
.library-insight img { width:96px; height:96px; border-radius:24px; flex-shrink:0; }
#home-sections .quests { display:flex; overflow-x:auto; gap:14px; padding:2px 2px 18px; scroll-snap-type:x proximity; }
#home-sections .quest-card { flex:0 0 200px; display:flex; flex-direction:column; gap:0; padding:0; border-radius:24px; overflow:hidden; scroll-snap-align:start; align-items:stretch; }
#home-sections .quest-art { width:100%; height:150px; object-fit:cover; border-radius:0; }
#home-sections .quest-card > span { display:block; flex:1; background:var(--quest-tint,var(--tint)); padding:16px; min-height:90px; }
#home-sections .quest-t { font-size:18px; line-height:1.2; display:block; }
#home-sections .quest-m { margin-top:7px; }
#home-sections .quest-new { flex:0 0 180px; min-height:160px; border-radius:24px; white-space:normal; }
.library-tools { display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:10px; margin:4px 0 18px; }
.feed-actions { display:flex; gap:10px; align-items:center; }
.density { display:flex; background:var(--control); padding:4px; border-radius:999px; }
.density button { border:0; background:none; border-radius:999px; padding:8px 12px; min-height:40px; font-weight:600; color:var(--ink-2); }
.density button[aria-pressed=true] { background:var(--surface); color:var(--ink); box-shadow:0 1px 3px #19151012; }
#platform-chips, #topic-refinements .chips { position:static; margin:0; padding:0 0 14px; }
#topic-refinements { margin:16px 0; }
.grid.list-mode { display:flex; flex-direction:column; }
.card.feed-row { display:flex; align-items:center; gap:14px; padding:14px; min-width:0; }
.feed-thumb { width:64px; height:64px; border-radius:16px; flex:0 0 64px; overflow:hidden; display:grid; place-items:center; background:var(--control); }
.feed-thumb img { width:100%; height:100%; object-fit:cover; }
.feed-row .card-body { flex:1; padding:0; }
.feed-row .card-title { font-size:17px; }
.feed-row .card-meta { margin-top:7px; }
.selecting .feed-row { padding-right:50px; }
#view-you { max-width:1060px; margin:0 auto; }
.account-title { margin:8px 0 22px; }
#view-you .you-grid { max-width:none; grid-template-columns:1fr 1fr; gap:22px; }
#view-you .you-col { display:contents; }
#view-you .you-card { padding:26px; border-radius:24px; }
#view-you .account-identity { grid-column:1/-1; display:grid; grid-template-columns:1fr 1fr; align-items:center; gap:28px; background:#EEEDE2; box-shadow:none; }
.account-identity .stats { border:0; margin:0; padding:0; }
.account-art { width:100px; height:100px; border-radius:24px; float:right; margin:0 0 12px 18px; }
.account-status { color:var(--ink-2); line-height:1.6; }
#view-you .account-links { grid-column:1/-1; display:flex; flex-wrap:wrap; gap:10px 24px; border-top:1px solid var(--hairline); padding-top:20px; margin:0; }
#view-you .account-links a { min-height:44px; display:inline-flex; align-items:center; }
#view-you summary { cursor:pointer; padding:12px 0; color:var(--meta); }
.has-select-bar main { padding-bottom:180px; }
.quest-guide { display:grid; grid-template-columns:minmax(200px, .8fr) 1.2fr; gap:40px; background:#EEEDE2; border:1px solid var(--hairline); padding:32px; border-radius:28px; max-width:1060px; margin:20px 0 40px; align-items:center; }
.quest-guide > img { width:100%; border-radius:24px; }
.quest-guide h1 { font-family:var(--font-head); font-size:32px; letter-spacing:-.03em; margin:0 0 14px; }
.quest-guide p, .quest-guide-more p { color:var(--meta); margin:6px 0 20px; }
.quest-guide ol, .quest-guide-more ol { padding-left:22px; }
.quest-guide li { padding-left:6px; }
.quest-guide-more { padding:22px 0; }
.quest-guide-more summary { cursor:pointer; font-weight:600; min-height:44px; }
.quest-board { display:grid; grid-template-columns:repeat(auto-fit,minmax(min(100%,290px),1fr)); gap:16px; }
.quest-board .quest-card { width:100%; padding:20px; }
.quest-board .quest-art { width:90px; height:90px; border-radius:18px; }
.quest-board .quest-t { font-size:20px; }
#quests-list > .h-row { flex-wrap:wrap; gap:10px; margin-bottom:20px; }
#quest-suggest { max-height:320px; overflow:auto; overscroll-behavior:contain; margin-top:12px; }
#quest-suggest .qb-row > div { min-width:0; flex:1; }
#quest-dialog .qb-add { flex-shrink:0; min-height:44px; }
#quest-dialog .account-art { float:none; width:100%; height:150px; object-fit:cover; margin:0 0 18px; }
.quest-brief { background:var(--paper); padding:16px; border-radius:18px; margin:18px 0; }
.quest-brief h3 { margin:0 0 8px; font-family:var(--font-head); }
.quest-brief p { line-height:1.5; }
.quest-brief .linkish { display:block; text-align:left; white-space:normal; }
.brief-step { display:block; border:1px solid var(--hairline); background:var(--surface); color:var(--ink); text-align:left; padding:12px; border-radius:12px; margin:8px 0; width:100%; min-height:44px; }
#select-bar { white-space:normal; width:max-content; }
#select-count { max-width:150px; }
@media(max-width:760px) {
  .nav-in { gap:10px; }
  .quest-guide { grid-template-columns:1fr; padding:22px; gap:20px; }
  .quest-guide > img { width:130px; height:130px; }
  .quest-guide h1 { font-size:28px; }
  .library-intro { grid-template-columns:1fr; gap:18px; margin:4px 0 24px; }
  .library-intro h1 { font-size:32px; }
  .library-insight { padding:18px; border-radius:22px; }
  .library-insight b { font-size:21px; }
  .library-insight img { width:72px; height:72px; border-radius:20px; }
  #home-sections .quest-card { flex-basis:160px; }
  #home-sections .quest-art { height:120px; }
  #home-sections .quest-card > span { min-height:90px; padding:13px; }
  #home-sections .quest-t { font-size:17px; }
  #home-sections .quest-new { flex-basis:140px; }
  .library-tools .h-title { font-size:17px; }
  .density button { min-width:44px; padding:8px 10px; }
  .card-body { padding:12px; }
  .card-title { font-size:14px; }
  .filing-path { font-size:11px; }
  .tabbar { left:12px; right:12px; bottom:calc(12px + env(safe-area-inset-bottom)); height:70px; padding:0 5px; border:1px solid var(--hairline); border-radius:30px; background:color-mix(in srgb,var(--control) 94%,transparent); box-shadow:0 12px 32px #19151026; grid-template-columns:1fr 1fr 64px 1fr 1fr; }
  .tabbar .fab-mobile { width:56px; height:56px; justify-self:center; transform:translateY(-15px); border:3px solid var(--paper); }
  .tab { font-size:11px; min-height:48px; }
  main { padding-bottom:calc(120px + env(safe-area-inset-bottom)); }
  .has-select-bar main { padding-bottom:calc(210px + env(safe-area-inset-bottom)); }
  #select-bar { bottom:calc(98px + env(safe-area-inset-bottom)); border-radius:22px; padding:8px 12px; gap:8px; }
  #select-bar .btn-sm, #select-bar .bar-x { min-height:44px; }
  #select-count { font-size:12px; max-width:100px; }
  .has-select-bar #toast { bottom:calc(174px + env(safe-area-inset-bottom)); }
  #view-you .you-grid { grid-template-columns:1fr; gap:16px; }
  #view-you .account-identity { grid-template-columns:1fr; gap:22px; }
  #view-you .you-card { padding:20px; }
  input.field, textarea.field, select.field { font-size:16px; }
}
/* The download link stays in the footer; keep the brand and account reachable
   without horizontal page drift on the narrowest phones. */
@media(max-width:360px) {
  .nav-in > .btn-sm { display:none; }
}
