/* Papers and Library: the documents themselves lead. One bar for every control, no nested boxes. */
.content-page.docs-page{position:relative;padding:44px max(32px,calc((100% - 1080px)/2)) 72px}
.docs-head{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;margin-bottom:28px}
.docs-head h1{margin:0;font-size:30px;font-weight:600;letter-spacing:-.035em;line-height:1.1}
.docs-sub{margin:8px 0 0;font-size:14px;color:var(--text-3);font-variant-numeric:tabular-nums}
.docs-head .primary{display:inline-flex;align-items:center;gap:8px;height:36px;padding:0 14px;flex-shrink:0}
.docs-head .primary svg{width:16px;height:16px}

.docs-bar{position:sticky;top:-44px;z-index:3;display:flex;align-items:center;justify-content:space-between;gap:16px;margin:0 -12px 28px;padding:12px;background:linear-gradient(var(--bg) 70%,transparent)}
.docs-filter{position:relative;display:inline-flex;padding:3px;border-radius:var(--r-md);background:var(--surface);box-shadow:inset 0 0 0 1px var(--line);overflow-x:auto;scrollbar-width:none;flex-shrink:1;min-width:0}
.docs-filter button{position:relative;z-index:1;display:inline-flex;align-items:center;gap:7px;height:30px;padding:0 12px;border-radius:7px;font-size:13px;font-weight:500;color:var(--text-3);white-space:nowrap;transition:color var(--med)}
.docs-filter button:hover{color:var(--text-2)}
.docs-filter button[aria-checked=true]{color:var(--text)}
.docs-count{font-size:11.5px;font-variant-numeric:tabular-nums;color:var(--text-4)}
.docs-filter button[aria-checked=true] .docs-count{color:var(--text-3)}
.docs-filter-thumb{position:absolute;left:3px;top:3px;bottom:3px;border-radius:7px;background:var(--surface-3);box-shadow:var(--shadow-raise);transition:transform var(--slow) var(--ease-out),width var(--slow) var(--ease-out)}
.docs-tools{display:flex;align-items:center;gap:8px;flex-shrink:0}
.docs-search{display:flex;align-items:center;gap:8px;width:260px;height:36px;padding:0 8px 0 11px;border-radius:var(--r-md);background:var(--surface);box-shadow:inset 0 0 0 1px var(--line);color:var(--text-3);transition:box-shadow var(--fast),background var(--fast)}
.docs-search:focus-within{background:var(--surface-2);box-shadow:inset 0 0 0 1px var(--line-3)}
.docs-search svg{width:15px;height:15px;flex-shrink:0}
.docs-search input{flex:1;min-width:0;height:100%;border:0;background:none;font-size:13.5px;color:var(--text);outline:none}
.docs-search input::placeholder{color:var(--text-4)}
.docs-search input::-webkit-search-cancel-button{display:none}
.docs-search:focus-within kbd{opacity:0}
.docs-sort{position:relative;display:flex;align-items:center}
.docs-sort select{appearance:none;-webkit-appearance:none;height:36px;padding:0 30px 0 12px;border:0;border-radius:var(--r-md);background:var(--surface);box-shadow:inset 0 0 0 1px var(--line);font-size:13px;font-weight:500;color:var(--text-2);cursor:pointer}
.docs-sort select:hover{color:var(--text)}
.docs-sort svg{position:absolute;right:10px;width:13px;height:13px;color:var(--text-3);pointer-events:none}

/* ---------- Papers: a shelf of real covers ---------- */
.paper-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(188px,1fr));gap:40px 28px}
.paper-card{display:flex;flex-direction:column;min-width:0;animation:row-in var(--slow) var(--ease-out) both;animation-delay:calc(var(--i) * 30ms)}
.paper-sheet{position:relative;display:block;width:100%;aspect-ratio:1/1.414;padding:0;border-radius:4px;background:#fff;overflow:hidden;cursor:pointer;box-shadow:0 0 0 1px rgba(255,255,255,.06),0 1px 2px rgba(0,0,0,.4),0 14px 28px -14px rgba(0,0,0,.7);transition:transform var(--slow) var(--ease-out),box-shadow var(--slow) var(--ease-out)}
.paper-sheet::before{content:'';position:absolute;inset:0;z-index:1;background:linear-gradient(115deg,rgba(255,255,255,.18),transparent 32%);pointer-events:none}
.paper-sheet:hover,.paper-sheet:focus-visible{transform:translateY(-4px);box-shadow:0 0 0 1px rgba(255,255,255,.1),0 2px 4px rgba(0,0,0,.4),0 26px 44px -18px rgba(0,0,0,.85)}
.paper-sheet:focus-visible{outline:2px solid var(--accent);outline-offset:4px}
.paper-page{position:absolute;inset:0;display:flex;flex-direction:column;gap:9px;padding:18% 14% 0}
.paper-page i{display:block;height:6px;border-radius:2px;background:#ececea}
.paper-page i:first-child{width:38%;height:14px;margin-bottom:14px;background:#e2e2df}
.paper-page i:nth-child(3){width:82%}.paper-page i:nth-child(4){width:64%}.paper-page i:nth-child(5){width:74%}
.paper-page:not([data-ready]) i{animation:paper-shimmer 1.4s ease-in-out infinite alternate}
@keyframes paper-shimmer{to{opacity:.45}}
.paper-page[data-ready]{padding:0}
.paper-page img{display:block;width:100%;height:100%;object-fit:cover;object-position:top;animation:fade-in var(--slow) var(--ease-out)}
@keyframes fade-in{from{opacity:0}}
.paper-flag{position:absolute;z-index:2;left:8px;top:8px;padding:3px 7px;border-radius:5px;font-size:10.5px;font-weight:600;letter-spacing:.01em;color:#fff;background:rgba(17,17,16,.82)}
.paper-hover{position:absolute;z-index:2;left:0;right:0;bottom:0;display:flex;align-items:center;justify-content:center;gap:8px;padding:40px 12px 14px;font-size:13px;font-weight:550;color:#fff;background:linear-gradient(transparent,rgba(12,12,11,.86) 60%);opacity:0;transform:translateY(6px);transition:opacity var(--med),transform var(--med) var(--ease-out)}
.paper-hover svg{width:16px;height:16px}
.paper-sheet:hover .paper-hover,.paper-sheet:focus-visible .paper-hover{opacity:1;transform:none}
.paper-info{padding-top:14px;min-width:0}
.paper-info h3{margin:0;font-size:14px;font-weight:550;line-height:1.4;letter-spacing:-.01em;color:var(--text);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;min-height:2.8em}
.paper-meta{display:flex;justify-content:space-between;gap:12px;margin:6px 0 0;font-size:12.5px;color:var(--text-3);font-variant-numeric:tabular-nums}
.paper-meta span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.paper-meta time{flex-shrink:0;color:var(--text-4)}
.paper-actions{display:flex;gap:4px;margin:8px 0 0 -8px;opacity:0;transition:opacity var(--med)}
.paper-card:hover .paper-actions,.paper-card:focus-within .paper-actions{opacity:1}
.paper-act{display:inline-flex;align-items:center;gap:6px;height:28px;padding:0 8px;border-radius:7px;font-size:12.5px;color:var(--text-3);transition:color var(--fast),background var(--fast)}
.paper-act:hover{color:var(--text);background:var(--surface-2)}
.paper-act svg{width:14px;height:14px}
.docs-more{display:flex;margin:40px auto 0}

/* ---------- Library: a ledger ---------- */
.lib-table{width:100%;border-collapse:collapse;font-size:13.5px;table-layout:fixed}
.lib-table th{font-weight:500;text-align:left}
.lib-table thead th{height:34px;padding:0 12px;font-size:12px;color:var(--text-4);border-bottom:1px solid var(--line)}
.lib-table .c-name{width:auto}.lib-table .c-type{width:150px}.lib-table .c-num{width:96px;text-align:right;font-variant-numeric:tabular-nums}.lib-table .c-acts{width:120px}
.lib-group th{padding:22px 12px 8px;font-size:12px;font-weight:600;color:var(--text-3);letter-spacing:.01em}
.lib-row{cursor:pointer;transition:background var(--fast)}
.lib-row td{height:60px;padding:0 12px;border-bottom:1px solid var(--line);color:var(--text-3)}
.lib-row:hover td{background:var(--surface)}
.lib-row:hover td:first-child{border-radius:var(--r-md) 0 0 var(--r-md)}.lib-row:hover td:last-child{border-radius:0 var(--r-md) var(--r-md) 0}
.lib-name{display:flex;align-items:center;gap:14px;min-width:0}
.lib-name>div{min-width:0}
.lib-name strong{display:block;font-size:14px;font-weight:500;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.lib-name small{display:block;margin-top:2px;font-size:12.5px;color:var(--text-3);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-variant-numeric:tabular-nums}
.lib-thumb{position:relative;flex-shrink:0;width:30px;height:40px;border-radius:3px;background:#f2f2f0;overflow:hidden;box-shadow:0 0 0 1px rgba(255,255,255,.06),0 2px 6px rgba(0,0,0,.4)}
.lib-thumb:not([data-ready])::before{content:'';position:absolute;left:5px;right:9px;top:7px;height:3px;border-radius:1px;background:#d8d8d4;box-shadow:0 6px 0 #e4e4e0,0 11px 0 #e4e4e0,0 16px 0 #e4e4e0}
.lib-thumb img{display:block;width:100%;height:100%;object-fit:cover;object-position:top}
.lib-kind{display:inline-flex;align-items:center;gap:7px;font-size:13px;color:var(--text-2)}
.lib-kind::before{content:'';width:6px;height:6px;border-radius:50%;background:var(--text-4)}
.lib-kind.kind-paper::before{background:#ffa597}.lib-kind.kind-mark-scheme::before{background:#9ee3b1}.lib-kind.kind-working::before{background:#f6d48d}.lib-kind.kind-resource::before{background:#aab9ff}
.lib-acts{display:flex;justify-content:flex-end;gap:2px;opacity:0;transition:opacity var(--med)}
.lib-row:hover .lib-acts,.lib-row:focus-within .lib-acts{opacity:1}
.lib-act{display:grid;place-items:center;width:32px;height:32px;border-radius:8px;color:var(--text-3);transition:color var(--fast),background var(--fast)}
.lib-act:hover{color:var(--text);background:var(--surface-3)}
.lib-act svg{width:16px;height:16px}

/* ---------- shared: empty states and the page-wide drop ---------- */
.docs-empty{display:flex;flex-direction:column;align-items:center;text-align:center;grid-column:1/-1;padding:72px 16px}
.docs-empty-art{position:relative;width:120px;height:110px;margin-bottom:28px}
.docs-empty-art span{position:absolute;left:30px;top:6px;width:60px;height:84px;border-radius:3px;background:var(--surface-3);box-shadow:inset 0 0 0 1px var(--line-2)}
.docs-empty-art span:nth-child(1){transform:rotate(-12deg) translateX(-26px);background:var(--surface-2)}
.docs-empty-art span:nth-child(2){transform:rotate(9deg) translateX(26px);background:var(--surface-2)}
.docs-empty-art span:nth-child(3){background:#f2f2f0;box-shadow:0 12px 24px -10px rgba(0,0,0,.6)}
.docs-empty h2{margin:0;font-size:19px;font-weight:600;letter-spacing:-.02em}
.docs-empty p{max-width:40ch;margin:8px 0 24px;font-size:14px;line-height:1.6;color:var(--text-3)}
.docs-drop{position:fixed;inset:0;z-index:40;display:grid;place-items:center;padding:24px;background:rgba(10,10,9,.72);backdrop-filter:blur(6px);opacity:0;pointer-events:none;transition:opacity var(--med)}
.docs-drop>div{display:flex;flex-direction:column;align-items:center;gap:8px;width:min(420px,100%);padding:40px 24px;border-radius:var(--r-2xl);background:var(--surface);box-shadow:inset 0 0 0 1.5px var(--line-3),var(--shadow-pop);text-align:center;transform:scale(.97);transition:transform var(--slow) var(--ease-out)}
.docs-drop svg{width:28px;height:28px;margin-bottom:6px;color:var(--text)}
.docs-drop strong{font-size:16px;font-weight:600}
.docs-drop span{font-size:13px;color:var(--text-3)}
.docs-dragging .docs-drop{opacity:1}
.docs-dragging .docs-drop>div{transform:none}

@media (hover:none){.paper-actions,.lib-acts{opacity:1}.paper-hover{display:none}}
@media (max-width:860px){
 .lib-table .c-type{display:none}
 .lib-table .c-num:nth-of-type(3){display:none}
}
@media (max-width:700px){
 .content-page.docs-page{padding:24px 16px 48px}
 .docs-head{align-items:flex-start;margin-bottom:20px}
 .docs-head h1{font-size:26px}
 .docs-bar{flex-direction:column;align-items:stretch;gap:10px;top:-24px;margin-bottom:20px}
 .docs-tools .docs-search{flex:1;width:auto}
 .docs-search kbd{display:none}
 .paper-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:28px 16px}
 .paper-actions{margin-left:-8px}
 .paper-act span{display:none}
 .lib-table,.lib-table tbody{display:block}
 .lib-table thead,.lib-table .c-num{display:none}
 .lib-row{display:flex;align-items:center;border-bottom:1px solid var(--line)}
 .lib-row td{display:block;height:auto;padding:12px 4px;border:0}
 .lib-row td.c-name{flex:1;min-width:0}
 .lib-row td.c-acts{width:auto;flex-shrink:0}
 .lib-group,.lib-group th{display:block}
 .lib-group th{padding:18px 4px 6px}
}
body[data-motion=off] .paper-card,body[data-motion=off] .paper-page i,body[data-motion=off] .paper-page img{animation:none}
body[data-motion=off] .paper-sheet,body[data-motion=off] .paper-hover,body[data-motion=off] .docs-filter-thumb{transition:none}
@media (prefers-reduced-motion:reduce){body:not([data-motion=smooth]) .paper-card,body:not([data-motion=smooth]) .paper-page i{animation:none}body:not([data-motion=smooth]) .paper-sheet:hover{transform:none}}
