/* Shared daily and research reading layout. */
.research-page{--research-rule:color-mix(in srgb,var(--ink) 13%,var(--paper));--copy:color-mix(in srgb,var(--ink) 78%,var(--paper));--research-picker-row-height:44px}
.research-page [hidden]{display:none!important}
.research-page :is(input,select){font:inherit;color:inherit;min-width:0}
.research-wrap{width:calc(100% - 112px);max-width:940px;margin:0 auto;overflow-anchor:none;scroll-margin-top:4px}
.research-page .primary-nav{min-width:0}
.research-wrap a:hover{text-decoration:underline;text-underline-offset:5px}
.masthead{display:flex;align-items:baseline;justify-content:space-between;gap:24px;padding:30px 0 0}
.masthead h1{font:400 32px/1.25 var(--serif);letter-spacing:.025em;margin:0}
.edition-date{--research-date-size:16px;position:relative;display:grid;text-align:right;padding:0;flex:none}
.edition-date-row{display:flex;align-items:center;justify-content:flex-end;gap:20px}
.edition-date time{font:400 var(--research-date-size)/1.5 "Chilebot Numerals","SFMono-Regular",Consolas,monospace;letter-spacing:0}
.archive-toggle{display:inline-flex;align-items:center;justify-content:flex-end;gap:10px;min-height:44px;min-width:48px;padding:4px 0;border:0;border-radius:0;background:transparent;color:var(--ink);font:16px/1.5 var(--sans)}
.archive-toggle svg{width:14px;height:14px;flex:none;transition:transform .16s ease}
.archive-toggle:disabled{cursor:default}
.archive-toggle[aria-expanded=true] svg{transform:rotate(180deg)}
.edition-nav{display:flex;align-items:center;justify-content:space-between;flex-wrap:nowrap;gap:8px 24px;padding:10px 0 0;border:0;font:12px/1.8 var(--sans)}
.edition-position{min-width:0;color:var(--muted)}
#edition-position{white-space:nowrap}
.edition-nav-links{display:flex;align-items:center;gap:24px;margin-left:auto;flex:none}
.edition-nav-links:not(:has(:is(a,button):not([hidden]))){display:none}
/* Showing the return link must not increase the latest edition's line height. */
.edition-nav-links .text-control{min-height:0;padding:0}
/* Match the management select popover; show the date and summary on one line. */
.archive-panel{position:absolute;z-index:20;top:calc(100% + 6px);right:0;box-sizing:border-box;width:320px;max-width:calc(100vw - 36px);padding:4px;background:var(--paper);border:0;border-radius:0;box-shadow:none;text-align:left;animation:archive-appear .16s ease-out}
@keyframes archive-appear{from{opacity:0;transform:translateY(-3px)}to{opacity:1;transform:none}}
.archive-list{max-height:calc(var(--research-picker-rows,7) * var(--research-picker-row-height));overflow-y:auto;overflow-x:hidden;overscroll-behavior:contain;scrollbar-width:thin;margin:0;padding:0;list-style:none}
.archive-list li{border:0;min-width:0}
.archive-list a{display:flex;align-items:center;gap:12px;box-sizing:border-box;height:var(--research-picker-row-height);padding:8px 10px;border:0;border-radius:0;background:transparent;color:var(--muted)}
.research-page .archive-list a:is(:hover,:focus-visible){text-decoration:none}
.archive-summary{display:block;flex:1;min-width:0;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;font:400 13px/20px var(--sans)}
.archive-date{flex:none;font:400 13px/20px "Chilebot Numerals","SFMono-Regular",Consolas,monospace;white-space:nowrap}
.research-page .archive-list a:focus-visible{outline:1px solid var(--ink);outline-offset:-2px;text-decoration:none}
.research-page .edition-nav-links :is(a,button):is(:hover,:focus-visible){color:var(--ink);text-decoration:none}
.research-page .edition-nav-links :is(a,button):focus-visible{outline:1px solid var(--ink);outline-offset:2px}
/* A native modal contains this same list on phones; desktop keeps its dropdown. */
.archive-dialog{box-sizing:border-box;position:fixed;inset:auto 0 0;width:100%;max-width:none;max-height:calc(100vh - 24px);max-height:calc(100dvh - 24px);margin:0;padding:8px 18px calc(18px + env(safe-area-inset-bottom,0px));border:0;border-radius:16px 16px 0 0;background:var(--paper);color:var(--ink);overflow:hidden;overscroll-behavior:contain}
.archive-dialog::backdrop{background:rgb(0 0 0 / 28%)}
.archive-sheet-heading{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:4px}
.archive-sheet-heading h2{margin:0;font:500 16px/1.5 var(--sans)}
.archive-close{display:grid;place-items:center;flex:none;width:44px;height:44px;padding:0;border:0;background:transparent;color:var(--muted)}
.archive-close svg{width:20px;height:20px}
.archive-dialog .archive-panel{position:static;width:100%;max-width:none;padding:0;border:0;border-radius:0;box-shadow:none;background:transparent;animation:none}
.archive-dialog .archive-list{max-height:min(calc(5 * var(--research-picker-row-height)),calc(100vh - 112px - env(safe-area-inset-bottom,0px)));max-height:min(calc(5 * var(--research-picker-row-height)),calc(100dvh - 112px - env(safe-area-inset-bottom,0px)));scrollbar-width:none;-webkit-overflow-scrolling:touch;touch-action:pan-y}
.archive-dialog .archive-list::-webkit-scrollbar{display:none;width:0;height:0}
.archive-dialog .archive-list a{padding:8px 10px}
.archive-dialog .archive-empty{padding:12px 2px;font-size:14px}
.archive-field-label{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}
.page-status{font-size:12px;color:var(--muted);padding:24px 0}
.archive-empty{margin:0;padding:8px 4px;font:12px/1.5 var(--sans);color:var(--muted)}
.edition-note::before{content:" · "}
.text-control{border:0;padding:4px 0;background:transparent;color:var(--muted);font:12px/1.8 var(--sans);white-space:nowrap;min-height:36px}
.text-control:hover{color:var(--ink)}
.filter-controls{--topic-gap:24px;display:flex;flex-wrap:wrap;align-items:center;gap:4px var(--topic-gap);margin:12px 0 0;padding:0 0 8px;border-bottom:1px solid var(--research-rule)}
.topic-filters{display:contents;font:14px/1.8 var(--sans)}
.topic-filters button{border:0;background:transparent;color:var(--muted);padding:4px 0;min-height:36px;text-decoration:none;white-space:nowrap}
.topic-filters button[aria-pressed=true]{color:var(--ink);font-weight:600}
.topic-filters button:hover{color:var(--ink)}
.topic-filters button:is(:hover,:focus,:focus-visible){text-decoration:none}
.paper-search{display:grid;grid-template-columns:14px minmax(0,1fr) 30px 32px;align-items:center;gap:3px;flex:0 0 200px;min-width:0;min-height:44px;max-width:100%;color:var(--muted)}
.paper-search>svg{grid-column:1;width:14px;height:14px}
.paper-search input{grid-column:2;width:100%;min-width:0;height:44px;padding:4px 0;border:0;border-radius:0;background:transparent;color:var(--ink);font:14px/1.8 var(--sans);outline:none;box-shadow:none;-webkit-appearance:none;appearance:none}
/* Keep the short empty hint beside the icon; reserve action slots only while typing. */
.paper-search input:placeholder-shown{grid-column:2 / -1;text-align:left}
.paper-search input::placeholder{color:var(--muted);opacity:1}
.paper-result-count:empty{display:none}
.paper-search input::-webkit-search-cancel-button{-webkit-appearance:none}
.paper-search:focus-within{color:var(--ink)}
.paper-result-count{grid-column:3;justify-self:end;white-space:nowrap;color:var(--muted);font:11px/1.8 var(--sans)}
.paper-search button{display:grid;grid-column:4;place-items:center;width:32px;height:44px;padding:0;border:0;background:transparent;color:var(--muted)}
.paper-search button svg{width:14px;height:14px}
.paper-search button:is(:hover,:focus-visible){color:var(--ink);text-decoration:none}
.paper-section{display:block;padding:24px 0;border-bottom:1px solid var(--research-rule)}
.section-heading{display:flex;align-items:baseline;gap:12px;margin:0 0 16px}
.section-heading h2{font:500 16px/1.65 var(--sans);letter-spacing:.02em;overflow-wrap:anywhere}
.section-count{font:12px/1.8 var(--sans);color:var(--muted)}
.section-papers{display:grid;gap:24px;min-width:0}
.paper{min-width:0;overflow-wrap:anywhere;scroll-margin-top:4px}
.paper-heading{display:flex;align-items:baseline;gap:14px}
.paper h3{font:400 24px/1.45 var(--serif);margin:0;max-width:100%;overflow-wrap:anywhere}
.paper-number{flex:none;width:19px;font:12px/1.8 var(--sans);color:var(--muted);padding-top:4px}
.paper-body{min-width:0;flex:1}
.paper-source{display:block;font:12px/1.9 var(--sans);margin:4px 0 0;color:var(--muted);overflow-wrap:anywhere}
.paper-source a{display:block;width:100%;color:var(--muted);-webkit-text-fill-color:currentColor}
.research-wrap .paper-source a,.research-wrap .paper-source a:is(:hover,:focus,:focus-visible){text-decoration:none}
.paper-source a:is(:hover,:focus-visible){color:var(--ink)}
.paper-source a:focus-visible{outline:1px solid var(--muted);outline-offset:3px}
.paper-summary{font:16px/1.9 var(--sans);color:var(--copy);margin:8px 0 0;overflow-wrap:anywhere;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:3;line-clamp:3;max-height:5.7em;overflow:hidden}
/* Keep a single continuous three-line excerpt; restore paragraphs when expanded. */
.paper-summary p{display:inline;margin:0}
.paper-summary p+p::before{content:" "}
.paper.is-open .paper-summary{display:block;max-height:none;overflow:visible;-webkit-line-clamp:unset;line-clamp:unset}
.paper.is-open .paper-summary p{display:block}
.paper.is-open .paper-summary p+p{margin-top:.8em}
.paper.is-open .paper-summary p+p::before{content:none}
.paper-toggle{position:relative;display:flex;align-items:center;gap:6px;width:max-content;margin:2px 0 0;padding:0;min-height:24px;border:0;background:transparent;color:var(--muted);font:13px/1.8 var(--sans);white-space:nowrap}
.paper-toggle::before{content:"";position:absolute;top:0;left:0;right:0;height:44px}
.paper-toggle:is(:hover,:focus-visible){color:var(--ink)}
.paper-toggle:focus-visible{outline:1px solid var(--muted);outline-offset:3px}
.detail-marker{position:relative;display:block;flex:none;width:13px;height:13px;transition:transform .16s ease}
.detail-marker::before{content:"";position:absolute;top:50%;left:50%;width:8px;height:5px;background:currentColor;clip-path:polygon(0 0,50% 72%,100% 0,100% 28%,50% 100%,0 28%);transform:translate(-50%,-50%)}
.paper-toggle[aria-expanded=true] .detail-marker{transform:scaleY(-1)}
.detail-body{padding:12px 0 0;color:var(--muted)}
.detail-body p{margin:0;overflow-wrap:anywhere}
.detail-info{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:baseline;gap:3px 12px;font:12px/1.8 var(--sans);color:var(--muted);padding-top:8px;border-top:1px solid var(--research-rule)}
.paper-authors{min-width:0}
.paper-arxiv{grid-column:2;justify-self:end;white-space:nowrap}
.filter-empty{padding:30px 0;color:var(--muted);font-size:13px}
.filter-empty button{margin-left:15px}
.research-footer{padding:24px 0 40px;color:var(--muted);font:11px/1.8 var(--sans);text-align:center}
.research-page :is(button,input,select):focus-visible{outline:1px solid var(--muted);outline-offset:4px}
.research-page input:focus-visible{outline:none}
.research-page .archive-toggle:is(:hover,:focus,[aria-expanded=true]){background:transparent;box-shadow:none;text-decoration:none}
.research-page .archive-toggle:focus-visible{outline:1px solid var(--ink);outline-offset:3px}
.research-page.archive-pointer-input :is(.archive-toggle,.archive-list a,.archive-close):focus{outline:none;text-decoration:none}
@media(max-width:1150px){.research-wrap{width:calc(100% - 64px)}}
@media(max-width:850px){.research-wrap{width:calc(100% - 48px)}.research-page .primary-nav{max-width:500px}}
@media(max-width:700px){.paper h3{font-size:20px;line-height:1.5}.paper-summary{font-size:15px}.paper-number{width:18px;font-size:11px}.paper-heading{gap:9px}}
@media(max-width:620px){
  .masthead{align-items:center;gap:12px;padding-top:24px}.masthead h1{font-size:28px;white-space:nowrap;letter-spacing:0}
  .edition-date{--research-date-size:13px;max-width:100%;text-align:right}
  .edition-date-row{gap:0}.archive-toggle{gap:6px;font-size:13px;min-width:44px}
  .archive-toggle svg{width:14px;height:14px}
  .edition-nav{padding-top:2px;font-size:12px;gap:8px 16px}.edition-nav-links{gap:16px}

  .filter-controls{--topic-gap:18px;row-gap:2px;margin-top:12px;padding-bottom:8px}.topic-filters{font-size:13px}.topic-filters button{min-height:44px}
  .paper-search{flex-basis:176px;grid-template-columns:13px minmax(0,1fr) 30px 32px}
  .paper-search>svg,.paper-search button svg{width:13px;height:13px}
  /* Render at the same 13px as the filters while retaining iOS's 16px input size and a 44px hit area. */
  .paper-search input{font-size:16px;width:calc(100% / .8125);height:calc(44px / .8125);margin-block:calc((44px - 44px / .8125) / 2);transform:scale(.8125);transform-origin:left center}
  .paper-source{font-size:11px}.research-footer{padding-bottom:32px}
}
@media(max-width:480px){.research-wrap{width:calc(100% - 36px)}.filter-controls{--topic-gap:16px;row-gap:2px}}
@media(max-width:359px){.research-page .primary-nav{gap:6px}.research-page .primary-nav a{font-size:16px}.masthead{gap:8px}.masthead h1{font-size:24px}.edition-date{--research-date-size:12px}.archive-toggle{font-size:12px}.filter-controls{--topic-gap:12px}.paper h3{font-size:19px}}
@media print{body{padding-top:0}.site-header,.edition-nav,.archive-panel,.archive-dialog,.page-status,.filter-controls,.paper-toggle{display:none!important}.research-wrap{width:100%;max-width:none}.masthead{padding-top:0}.paper-summary{display:block;max-height:none;-webkit-line-clamp:unset;line-clamp:unset;overflow:visible}.paper-summary p{display:block}.paper-summary p+p{margin-top:.8em}.paper-summary p+p::before{content:none}.detail-body[hidden]{display:block!important}.paper{break-inside:avoid}.research-footer{padding-bottom:0}}
@media(prefers-reduced-motion:reduce){.archive-panel{animation:none}}
