:root{--bg: #f7f7f4;--surface: #ffffff;--ink: #1a1d1f;--ink-muted: #6a6f73;--border: #e3e3de;--accent: #17706a;--accent-ink: #ffffff;--secondary: #304a78;--secondary-hover: #3e5d91;--secondary-ink: #ffffff;--danger: #b3261e;--control-height: 36px;--control-radius: 6px;--tint-image: #5d7385;--font-sans: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;--font-mono: ui-monospace, SFMono-Regular, Menlo, Consolas, "Liberation Mono", monospace;color-scheme:light}[data-theme=dark]{--bg: #141719;--surface: #1d2124;--ink: #e7e5e0;--ink-muted: #9ba0a3;--border: #2b3033;--accent: #58c2b8;--accent-ink: #0d1414;--secondary: #3d5d91;--secondary-hover: #4b70ab;--secondary-ink: #ffffff;--danger: #e5766b;--control-height: 36px;--control-radius: 6px;--tint-image: #8ba7bc;color-scheme:dark}*{box-sizing:border-box}html,body{margin:0;padding:0}body{background:var(--bg);color:var(--ink);font-family:var(--font-sans);font-size:15px;line-height:1.45}#root{min-height:100vh}a{color:inherit}button,input{font-family:inherit;font-size:inherit;color:inherit}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.mono{font-family:var(--font-mono)}.page{max-width:880px;margin:0 auto;padding:24px 20px 64px}.page--pdf{max-width:none;width:100%;padding-left:clamp(12px,2.5vw,40px);padding-right:clamp(12px,2.5vw,40px)}.top-bar{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:12px;padding:8px 0 20px}.top-bar-actions{display:flex;align-items:center;gap:8px;justify-self:end;white-space:nowrap}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.browse-search{position:relative;display:flex;align-items:center;margin-bottom:4px}.browse-search-input{width:100%;height:40px;padding:0 68px 0 12px;background:var(--surface);border:1px solid var(--border);border-radius:var(--control-radius);color:var(--ink)}.browse-search-input::placeholder{color:var(--ink-muted)}.browse-search-input:hover,.browse-search-input:focus{border-color:var(--accent)}.browse-search-clear{position:absolute;right:7px;height:28px;padding:0 6px;background:transparent;border:0;color:var(--ink-muted);cursor:pointer;font-size:13px}.browse-search-clear:hover{color:var(--accent)}.search-status{display:flex;align-items:center;gap:7px;min-height:28px;padding:3px 4px 5px;color:var(--ink-muted);font-size:13px}.search-spinner{flex:0 0 auto;width:12px;height:12px;border:2px solid var(--border);border-top-color:var(--accent);border-radius:50%;animation:search-spinner-rotate .7s linear infinite}@keyframes search-spinner-rotate{to{transform:rotate(360deg)}}@media(prefers-reduced-motion:reduce){.search-spinner{animation:none;border-color:var(--accent);border-right-color:transparent}}.search-error{margin:0 4px 10px}@media(max-width:560px){.top-bar{align-items:start}.browse-search-input{height:44px}}.btn{display:inline-flex;align-items:center;gap:6px;background:var(--surface);color:var(--ink);border:1px solid var(--border);border-radius:var(--control-radius);height:var(--control-height);padding:0 14px;cursor:pointer;line-height:1.2}.btn:hover{border-color:var(--accent);color:var(--accent)}.btn-quiet{background:transparent;border-color:transparent;color:var(--ink-muted);padding:6px 8px}.btn-quiet:hover{color:var(--accent);border-color:var(--border)}.btn-logout{background:var(--secondary);border-color:var(--secondary);color:var(--secondary-ink)}.btn-logout:hover{background:var(--secondary-hover);border-color:var(--secondary-hover);color:var(--secondary-ink)}.btn-primary{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}.btn-primary:hover{opacity:.9;color:var(--accent-ink);border-color:var(--accent)}.btn:disabled{opacity:.5;cursor:default}.breadcrumbs{font-family:var(--font-mono);font-size:14px;color:var(--ink-muted);overflow-wrap:anywhere}.breadcrumbs a{text-decoration:none;color:var(--ink-muted)}.breadcrumbs a:hover{color:var(--accent);text-decoration:underline}.breadcrumbs .current{color:var(--ink)}.breadcrumbs .sep{margin:0 6px}.theme-toggle{display:inline-flex;align-items:center;gap:6px;background:transparent;border:1px solid var(--border);border-radius:var(--control-radius);height:var(--control-height);padding:0 10px;color:var(--ink-muted);cursor:pointer;font-family:var(--font-mono);font-size:12px;text-transform:uppercase;letter-spacing:.04em}.theme-toggle:hover{color:var(--accent);border-color:var(--accent)}.listing{border-top:1px solid var(--border)}.row{display:flex;align-items:center;gap:12px;min-height:44px;padding:8px 4px;border-bottom:1px solid var(--border);text-decoration:none;color:var(--ink)}.row:hover{background:var(--surface)}.row-icon{flex:none;display:flex;align-items:center}.row-name{display:block;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.row-primary{flex:1 1 auto;min-width:0}.row-detail{display:block;margin-top:2px;overflow:hidden;color:var(--ink-muted);font-size:12px;text-overflow:ellipsis;white-space:nowrap}.search-listing .row{min-height:54px}.row-name.mono{font-size:14px}.row-size{flex:none;width:84px;text-align:right;color:var(--ink-muted);font-size:13px}.row-date{flex:none;width:100px;text-align:right;color:var(--ink-muted);font-size:13px}@media(max-width:560px){.row-date{display:none}}.empty-state,.loading-state{padding:32px 4px;color:var(--ink-muted)}.load-more{margin-top:16px;display:flex;justify-content:center}.error-line{color:var(--danger);font-size:14px;min-height:20px}.login-wrap{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:20px}.login-card{width:100%;max-width:340px;background:var(--surface);border:1px solid var(--border);border-radius:10px;padding:32px 28px}.login-wordmark{font-family:var(--font-mono);font-size:15px;text-align:center;color:var(--ink-muted);margin:0 0 24px;letter-spacing:.01em}.field{margin-bottom:18px}.field label{display:block;font-size:13px;color:var(--ink-muted);margin-bottom:6px}.field input[type=text]{width:100%;padding:9px 10px;border:1px solid var(--border);border-radius:6px;background:var(--bg);color:var(--ink)}.pin-row{display:flex;gap:10px;justify-content:center;margin-bottom:18px}.pin-box{width:44px;height:52px;text-align:center;font-family:var(--font-mono);font-size:22px;border:1px solid var(--border);border-radius:6px;background:var(--bg);color:var(--ink)}.login-submit{width:100%;justify-content:center}.login-upload-link{display:block;margin-top:20px;color:var(--ink-muted);font-size:13px;text-align:center;text-decoration:none}.login-upload-link:hover{color:var(--accent);text-decoration:underline}.upload-page{max-width:760px}.upload-header{display:flex;align-items:center;justify-content:space-between;padding:8px 0 32px}.upload-wordmark{color:var(--ink-muted);text-decoration:none}.upload-page h1{margin:0 0 10px;font-size:clamp(26px,5vw,36px);line-height:1.15}.upload-lede{margin:0 0 36px;color:var(--ink-muted);font-size:17px}.upload-page section{margin:0 0 34px}.upload-page h2{margin:0 0 10px;font-size:19px}.upload-page p{margin:0 0 14px}.upload-page p code{font-family:var(--font-mono);overflow-wrap:anywhere}.upload-example{margin:16px 0;border:1px solid var(--border);border-radius:8px;background:var(--surface);overflow:hidden}.upload-example-head{display:flex;align-items:center;justify-content:space-between;min-height:44px;padding:4px 6px 4px 14px;border-bottom:1px solid var(--border);color:var(--ink-muted);font-size:13px}.upload-copy{height:32px}.upload-example pre{margin:0;padding:16px;overflow-x:auto;font-family:var(--font-mono);font-size:13px;line-height:1.55}.upload-resources{display:flex;flex-wrap:wrap;gap:8px 20px;padding-top:22px;border-top:1px solid var(--border)}.upload-resources a{color:var(--accent)}.viewer-frame{border:1px solid var(--border);width:100%;height:calc(100vh - 140px);background:var(--surface)}.viewer-image-wrap{display:flex;justify-content:center;padding:12px 0}.viewer-image-wrap img{max-width:100%;height:auto;border:1px solid var(--border)}.viewer-pre{font-family:var(--font-mono);white-space:pre-wrap;word-break:break-word;background:var(--surface);border:1px solid var(--border);border-radius:6px;padding:16px;overflow-x:auto}.viewer-noop{border:1px solid var(--border);border-radius:8px;background:var(--surface);padding:48px 24px;display:flex;flex-direction:column;align-items:center;gap:12px;text-align:center;color:var(--ink-muted)}.viewer-filename{font-family:var(--font-mono);color:var(--ink);word-break:break-all}.prose{font-family:var(--font-sans);line-height:1.65;font-size:16px}.prose h1,.prose h2,.prose h3,.prose h4{line-height:1.3}.prose pre{font-family:var(--font-mono);background:var(--surface);border:1px solid var(--border);border-radius:6px;padding:14px;overflow-x:auto}.prose code{font-family:var(--font-mono);background:var(--surface);border-radius:3px;padding:1px 4px}.prose pre code{background:none;padding:0}.prose img{max-width:100%}.prose blockquote{border-left:3px solid var(--border);margin:0;padding-left:16px;color:var(--ink-muted)}.prose table{border-collapse:collapse;width:100%}.mermaid-diagram{max-width:100%;margin:20px 0;overflow-x:auto;text-align:center;cursor:zoom-in;border-radius:6px}.mermaid-diagram svg{display:inline-block;max-width:100%;height:auto}.mermaid-diagram:hover{outline:1px solid var(--border);outline-offset:4px}.mermaid-lightbox-backdrop{position:fixed;z-index:1000;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;padding:clamp(12px,3vw,32px);background:#000000b8}.mermaid-lightbox{display:flex;flex-direction:column;width:100%;max-width:1600px;height:100%;max-height:92vh;overflow:hidden;border:1px solid var(--border);border-radius:8px;background:var(--surface);box-shadow:0 16px 48px #00000059}.mermaid-lightbox-header{display:flex;flex:none;align-items:center;justify-content:space-between;gap:16px;padding:12px 16px;border-bottom:1px solid var(--border)}.mermaid-lightbox-header h2{margin:0;font-size:16px}.mermaid-lightbox-diagram{flex:1 1 auto;min-height:0;padding:24px;overflow:auto;text-align:center}.mermaid-lightbox-diagram svg{display:block;width:max(100%,1200px)!important;max-width:none!important;height:auto;margin:0 auto}.mermaid-fallback{margin:20px 0;color:var(--danger)}.mermaid-fallback p{margin-bottom:8px;font-weight:600}.mermaid-fallback pre{color:var(--ink);margin-top:0}.prose th,.prose td{border:1px solid var(--border);padding:6px 10px;text-align:left}.viewer-header{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:flex-start;gap:12px;padding:8px 0 20px}.viewer-header-main{min-width:0}
