/* A quieter parchment companion, with the same destinations on every device. */
.sidebar { padding-top:26px; }
.brand { margin-bottom:26px; }
.brand-mark { width:52px; height:46px; margin-bottom:10px; }
.sidebar .nav-label { letter-spacing:.1em; }
.nav-secondary { border-top:1px solid #8c956640; margin:18px 0 0; padding-top:10px; }
.nav-secondary > summary { min-height:44px; padding:10px 12px; font-size:13px; color:#d2c49c; }
.sidebar-bottom .account-name { font:13px var(--sans); color:#c1c9b8; text-align:left; margin:20px 12px 4px; }
.view-switch { display:flex; gap:3px; border:1px solid var(--line); padding:3px; border-radius:6px; flex:none; }
.view-switch a { display:flex; align-items:center; justify-content:center; padding:7px 12px; min-height:38px; font-weight:650; font-size:12px; border-radius:3px; }
.view-switch a[aria-current=page] { background:var(--green); color:var(--paper); }
.topbar:has(.view-switch) .topbar-label { display:none; }
.campaign-status { padding:9px 14px; font-size:12px; margin-bottom:20px; background:transparent; border-color:var(--line); }
.manage-nav { display:flex; flex-wrap:wrap; gap:8px; margin:0 0 26px; padding-bottom:16px; border-bottom:1px solid var(--line); }
.manage-nav > a,.manage-nav summary { display:flex; align-items:center; min-height:44px; padding:10px 14px; border-radius:4px; font-weight:600; font-size:13px; border:1px solid var(--line); background:var(--paper); cursor:pointer; }
.manage-nav summary { list-style:none; gap:12px; }
.manage-nav summary:after { content:'⌄'; }
.manage-nav details[open] summary:after { content:'⌃'; }
.manage-nav details > div { display:flex; flex-wrap:wrap; gap:4px; padding:8px 0; }
.manage-nav details { max-width:100%; }
.manage-nav details[open] { flex:1 1 100%; }
.manage-nav details > div a { padding:8px 12px; min-height:44px; display:flex; align-items:center; font-size:13px; border-radius:4px; }
.manage-nav [aria-current=page],.manage-nav .is-active { background:#e1e5d5; color:var(--green); border-color:#a3b095; }
.manage-nav a:hover,.library-nav a:hover,.character-nav a:hover { background:#e1e5d5; }
.dashboard-search { padding:28px 30px; border:1px solid var(--line); border-radius:6px; background:var(--paper); }
.dashboard-search h1 { font-size:clamp(30px,3vw,42px); margin-bottom:24px; }
.dashboard-search .search-primary { margin-bottom:10px; }
.dashboard-search label { font-size:14px; margin-bottom:10px; }
.dashboard-search input { min-height:52px; font-size:17px; }
.dashboard-search .helper { margin:10px 0 14px; }
.quick-types { display:flex; flex-wrap:wrap; gap:8px; }
.quick-types a { display:flex; align-items:center; min-height:44px; padding:8px 14px; border:1px solid var(--line); border-radius:4px; font-size:13px; }
.quick-types a:hover { background:#e1e5d5; }
.dashboard-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:22px; margin-bottom:22px; }
.dashboard-grid > .panel { margin:0; }
.dashboard-grid .section-heading { margin:26px 0 14px; align-items:center; }
.dashboard-grid .section-heading h2 { font-size:25px; }
.dashboard-grid section > .panel { margin-bottom:0; }
.summary-heading { display:flex; align-items:flex-start; justify-content:space-between; gap:16px; margin-bottom:16px; }
.summary-heading h2 { margin:0; font-size:26px; }
.summary-heading p { margin:8px 0 0; color:var(--muted); }
.status-pill { display:inline-flex; font-size:12px; font-weight:600; padding:5px 9px; border-radius:4px; background:#e5e8d8; color:#40553c; flex:none; }
.character-summary .summary-heading { flex-wrap:wrap; }
.character-summary .eyebrow { letter-spacing:.06em; }
.character-selector { margin-bottom:16px; }
.character-selector select { flex:1; width:auto; }
.character-summary .button-row { gap:12px; }
.compact-links { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; margin-bottom:18px; }
.compact-links > a { min-width:0; display:flex; flex-direction:column; justify-content:center; min-height:64px; padding:12px 14px; background:var(--paper); border:1px solid var(--line); border-radius:4px; font-weight:600; overflow-wrap:anywhere; }
.compact-links a:hover { background:#e5e8d8; }
.compact-links small,.task-row small { display:block; font-weight:400; color:var(--muted); font-size:12px; margin-top:3px; }
.library-summary > .compact-links > a { background:#f2eddf; }
.task-row { display:flex; align-items:center; justify-content:space-between; min-height:52px; gap:16px; padding:12px 0; border-bottom:1px solid var(--line); overflow-wrap:anywhere; }
.task-row:hover { color:var(--green); text-decoration:underline; text-underline-offset:3px; }
.task-row span:first-child { min-width:0; }
.task-row:last-child { border-bottom:0; }
progress { width:100%; height:8px; accent-color:var(--green); margin:0 0 14px; }
.campaign-welcome { display:flex; align-items:center; justify-content:space-between; gap:20px; margin:18px 0 0; padding:16px 18px; border-left:3px solid #b69b61; background:#eae5d5; border-radius:3px; }
.campaign-welcome p { margin:4px 0 0; font-size:13px; color:var(--muted); }
.party-rows { border:1px solid var(--line); border-radius:4px; background:var(--paper); overflow:hidden; }
.party-row { display:flex; justify-content:space-between; align-items:center; gap:20px; padding:20px; border-bottom:1px solid var(--line); }
.party-row:last-child { border-bottom:0; }
.party-row > div { min-width:0; }
.party-row h3 { margin:0 0 6px; overflow-wrap:anywhere; }
.party-row p { font-size:13px; color:var(--muted); margin:0; }
.dashboard-metrics { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:12px; margin-bottom:22px; }
.dashboard-metrics a { padding:18px; background:var(--paper); border:1px solid var(--line); border-radius:4px; font-size:13px; }
.dashboard-metrics a:hover { border-color:var(--green); }
.dashboard-metrics strong { display:block; font:32px var(--serif); margin-bottom:6px; }
.manage-directory { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:20px; }
.manage-directory .panel { margin:0; }
.directory-link { display:flex; align-items:center; justify-content:space-between; gap:10px; min-height:44px; border-bottom:1px solid var(--line); font-size:13px; }
.directory-link:last-child { border:0; }
.directory-link:hover { color:var(--green); text-decoration:underline; }
.character-nav,.library-nav { display:flex; flex-wrap:wrap; align-items:center; gap:6px; padding-bottom:12px; border-bottom:1px solid var(--line); margin-bottom:24px; }
.character-nav a,.library-nav a { display:flex; align-items:center; min-height:44px; padding:8px 12px; font-size:13px; border:1px solid transparent; border-radius:4px; }
.character-nav a[aria-current=page],.library-nav a[aria-current=page] { background:#e1e5d5; border-color:#a3b095; font-weight:600; }
[id^=review-],#preparation-checklist,#offline-copy { scroll-margin-top:18px; }
.mobile-nav { display:none; }
@media(max-width:1050px) {
  .dashboard-grid { grid-template-columns:1fr; gap:18px; }
  .manage-directory { grid-template-columns:1fr; }
  .party-row { align-items:flex-start; flex-direction:column; gap:14px; }
  .dashboard-metrics { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media(max-width:760px) {
  body { padding-bottom:calc(72px + env(safe-area-inset-bottom)); }
  .sidebar { padding:12px 20px; }
  .brand { margin:0; font-size:21px; }
  .brand-mark { width:36px; height:34px; margin:0; }
  .nav-links { display:block; }
  .navigation-ready .nav-links:not(.is-open) { display:none; }
  .nav-secondary { margin-top:12px; }
  .sidebar nav { grid-template-columns:1fr 1fr; }
  .sidebar-bottom .account-name { display:block; }
  .topbar { gap:12px; }
  .topbar:has(.view-switch) { height:auto; min-height:72px; flex-wrap:wrap; padding-top:10px; padding-bottom:10px; }
  .topbar:has(.view-switch) .quick-search { flex:1; min-width:120px; }
  .view-switch a { padding-inline:10px; min-height:40px; }
  .topbar:has(.view-switch) .search-suggestions { left:auto; right:-22px; min-width:calc(100vw - 40px); width:calc(100vw - 40px); }
  main { padding-top:22px; }
  .dashboard-search { padding:22px 18px; }
  .dashboard-search h1 { font-size:32px; margin-bottom:22px; }
  .dashboard-search .eyebrow { letter-spacing:.1em; }
  .dashboard-search .search-primary-controls > button { padding-inline:12px; }
  .quick-types { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:6px; }
  .quick-types a { justify-content:center; padding-inline:4px; font-size:12px; }
  .dashboard-search .search-suggestions { min-width:0; width:calc(100% + 82px); }
  .dashboard-grid .section-heading { flex-wrap:wrap; gap:8px; }
  .dashboard-grid .section-heading .text-link { font-size:13px; }
  .summary-heading { flex-wrap:wrap; gap:12px; }
  .campaign-welcome { align-items:flex-start; flex-direction:column; gap:10px; }
  .campaign-welcome .text-link { min-height:34px; display:flex; align-items:center; }
  .compact-links { grid-template-columns:1fr; }
  .manage-nav { gap:6px; }
  .manage-nav > a,.manage-nav summary { padding:10px 12px; }
  .manage-nav details[open] { flex:1 1 100%; }
  .manage-nav details > div { display:grid; grid-template-columns:1fr 1fr; }
  .manage-nav details > div a { padding-inline:8px; }
  .character-nav,.library-nav { gap:4px; }
  .character-nav a,.library-nav a { padding:8px 10px; }
  .mobile-nav { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); position:fixed; bottom:0; left:0; right:0; background:var(--paper); border-top:1px solid #b5ab90; padding:4px 8px calc(4px + env(safe-area-inset-bottom)); z-index:30; box-shadow:0 -3px 14px #172c2b10; }
  .mobile-nav a { display:flex; flex-direction:column; justify-content:center; align-items:center; min-height:60px; font-size:11px; border-radius:4px; gap:1px; text-align:center; }
  .mobile-nav a > span:first-child { font:23px var(--serif); }
  .mobile-nav a[aria-current=page] { background:#e1e5d5; color:var(--green); font-weight:700; }
  .mobile-nav a:hover { background:#eae5d5; }
  .keyboard-open .mobile-nav { display:none; }
  .compare-tray { bottom:calc(84px + env(safe-area-inset-bottom)); }
  .keyboard-open .compare-tray { position:static; margin:12px; }
  body:has(.compare-tray:not([hidden])) .page-footer { padding-bottom:210px; }
}
@media(max-width:360px) {
  .quick-types { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .dashboard-search h1 { font-size:28px; }
  .dashboard-search .search-primary-controls { flex-wrap:wrap; }
  .dashboard-search .search-primary-controls .search-input-wrap { flex-basis:100%; }
  .dashboard-search .search-suggestions { width:100%; }
  .dashboard-search .search-primary-controls button { width:100%; }
  .manage-nav details > div { grid-template-columns:1fr; }
  .status-pill { flex-shrink:1; }
}
@media print { body { padding:0; } .mobile-nav,.view-switch,.manage-nav,.character-nav,.library-nav { display:none!important; } }
