:root { color-scheme: light; --ink: #20251f; --muted: #666a61; --paper: #f5f0e7; --paper-2: #e9e1d2; --paper-3: #fffaf0; --line: #d2c6b5; --line-soft: #e5dccd; --accent: #8d3f30; --accent-2: #b78342; --link: #245f72; --top: #141d18; } * { box-sizing: border-box; } body { margin: 0; min-height: 100vh; background: var(--paper); color: var(--ink); font-family: ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; } button, input, select { font: inherit; } .topbar { height: 56px; display: grid; grid-template-columns: auto minmax(180px, 250px) 1fr auto; align-items: center; gap: 18px; padding: 0 18px; background: var(--top); color: #f7eedf; border-bottom: 3px solid var(--accent); } .brand { font-family: Georgia, "Times New Roman", serif; font-size: 28px; line-height: 1; } .archive-switcher { width: 100%; min-width: 0; border: 1px solid rgba(247, 238, 223, 0.35); background: #202b25; color: #f7eedf; padding: 7px 9px; } .nav { display: flex; gap: 16px; justify-content: flex-end; min-width: 0; } .nav-link { border: 0; background: transparent; color: #d7cdbf; cursor: pointer; padding: 8px 0; } .nav-link.is-active { color: #fffaf0; border-bottom: 1px solid #fffaf0; } .capture-button { border: 0; background: #f7eedf; color: var(--top); padding: 9px 12px; cursor: pointer; } .app-shell { height: calc(100vh - 56px); display: grid; grid-template-columns: minmax(0, 1fr) 320px; } .workspace { min-width: 0; overflow: auto; } .search-row { min-height: 76px; display: grid; grid-template-columns: minmax(0, 1fr) max-content; gap: 18px; align-items: center; padding: 14px 16px; background: var(--paper-2); border-bottom: 1px solid var(--line); } .search-input { width: 100%; height: 46px; border: 2px solid var(--ink); background: var(--paper-3); color: var(--ink); padding: 0 14px; font-size: 16px; outline-offset: 3px; } .result-count { min-width: 76px; color: var(--muted); font-size: 13px; text-align: right; } .view { display: none; } .view.is-active { display: block; } .entry-table { width: 100%; font-size: 13px; overflow: auto; } .entry-header-row { display: flex; align-items: stretch; position: sticky; top: 0; z-index: 1; background: #ded5c7; border-bottom: 1px solid #cec4b5; color: #5d625e; font-size: 11px; text-transform: uppercase; } .entry-header-row > div { padding: 10px; flex-shrink: 0; } #entries-body > div { display: flex; align-items: baseline; cursor: default; border-bottom: 1px solid var(--line-soft); } #entries-body > div > div { padding: 10px; flex-shrink: 0; overflow: hidden; } #entries-body > div:nth-child(even) { background: #f2ede5; } #entries-body > div:nth-child(odd) { background: var(--paper-3); } #entries-body > div.is-selected { background: #eee2d2; outline: 2px solid var(--accent); outline-offset: -2px; } .col-added { width: 168px; } .col-title { flex: 1 1 0; min-width: 0; overflow: hidden; } .col-type { width: 120px; } .col-size { width: 100px; } .col-url { flex: 0 0 30%; min-width: 0; overflow: hidden; } /* Runs table (still a ) */ #runs-view .entry-table { border-collapse: collapse; table-layout: auto; } #runs-view .entry-table th { position: sticky; top: 0; z-index: 1; text-align: left; padding: 10px; background: #ded5c7; color: #5d625e; border-bottom: 1px solid #cec4b5; font-size: 11px; text-transform: uppercase; } #runs-view .entry-table td { padding: 10px; border-bottom: 1px solid var(--line-soft); vertical-align: top; } #runs-view .entry-table tr:nth-child(even) td { background: #f2ede5; } #runs-view .entry-table tr:nth-child(odd) td { background: var(--paper-3); } .entry-title { color: var(--link); font-weight: 750; } .source-icon { display: inline-flex; align-items: center; width: 1em; height: 1em; margin-right: 0.35em; vertical-align: middle; flex-shrink: 0; } .source-icon svg { width: 100%; height: 100%; } .url-cell { color: #555b55; word-break: break-all; } .type-pill { display: inline-block; padding: 2px 6px; background: #d8e3df; color: #275a5f; border: 1px solid #bfd0ca; } .context-rail { border-left: 1px solid var(--line); background: #efe7dc; padding: 18px; overflow: auto; } .rail-title { color: var(--accent); font-weight: 800; margin-bottom: 10px; text-transform: uppercase; font-size: 12px; letter-spacing: 0; } .rail-body { color: var(--muted); font-size: 14px; line-height: 1.6; } .rail-body strong { color: var(--ink); } .rail-item { padding: 10px 0; border-bottom: 1px solid var(--line); } .admin-view { padding: 22px; } .admin-view h1 { margin: 0 0 16px; font-size: 18px; } .admin-list { display: grid; gap: 10px; max-width: 780px; } .admin-archive { border: 1px solid var(--line); background: var(--paper-3); padding: 12px; } .muted { color: var(--muted); } @media (max-width: 900px) { .topbar { grid-template-columns: 1fr auto; height: auto; min-height: 56px; padding: 12px; } .archive-switcher, .nav { grid-column: 1 / -1; } .nav { justify-content: flex-start; overflow-x: auto; } .app-shell { height: auto; grid-template-columns: 1fr; } .search-row { grid-template-columns: 1fr; } .result-count { text-align: left; } .context-rail { border-left: 0; border-top: 1px solid var(--line); } .entry-table { min-width: 860px; } } .rail-entry-title { display: block; font-size: 15px; font-weight: 700; color: var(--ink); margin-bottom: 12px; line-height: 1.4; } .rail-section { margin-bottom: 18px; } .rail-section-heading { font-size: 11px; font-weight: 800; text-transform: uppercase; letter-spacing: 0.04em; color: var(--accent); margin-bottom: 6px; } .rail-label { font-weight: 600; color: var(--ink); } .rail-url-link { color: var(--accent); word-break: break-all; font-size: 13px; } .artifact-list { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 4px; } .artifact-link { display: block; padding: 6px 8px; background: var(--paper-3); border: 1px solid var(--line); color: var(--accent); text-decoration: none; font-size: 13px; border-radius: 3px; } .artifact-link:hover { background: var(--line); text-decoration: underline; } /* Search loading state */ .search-input[aria-busy="true"] { cursor: progress; } /* Tag tree */ .tag-tree { padding: 12px; } .tag-tree-list { list-style: none; margin: 0; padding: 0; } .tag-children { padding-left: 16px; } .tag-node-btn { border: 0; background: transparent; color: var(--link); cursor: pointer; padding: 3px 0; text-align: left; font-size: 13px; display: block; width: 100%; } .tag-node-btn:hover { text-decoration: underline; } .tag-node-btn.is-active { font-weight: 600; color: var(--ink); } /* Tag pills in context rail */ .entry-tags { display: flex; flex-wrap: wrap; gap: 6px; padding: 8px 0; } .tag-pill { display: inline-flex; align-items: center; gap: 4px; background: var(--paper-2); border: 1px solid var(--line); border-radius: 3px; font-size: 12px; padding: 2px 6px; color: var(--ink); } .remove-tag { border: 0; background: none; cursor: pointer; color: var(--muted); padding: 0; font-size: 14px; line-height: 1; } .remove-tag:hover { color: var(--accent); } /* Assign tag form */ .assign-tag-form { display: flex; gap: 6px; padding: 6px 0 8px; border-top: 1px solid var(--line-soft); margin-top: 4px; } .assign-tag-input { flex: 1; min-width: 0; border: 1px solid var(--line); background: var(--paper-3); color: var(--ink); padding: 4px 7px; font-size: 12px; } .assign-tag-btn { border: 1px solid var(--line); background: var(--paper-2); color: var(--ink); cursor: pointer; padding: 4px 10px; font-size: 12px; white-space: nowrap; } .assign-tag-btn:hover { background: var(--paper); } /* Tag filter badge in search row */ .tag-filter-badge { display: inline-flex; align-items: center; gap: 4px; background: var(--accent); color: #fff; border: 0; border-radius: 3px; font-size: 12px; padding: 2px 8px; cursor: pointer; margin-left: 8px; } .tag-filter-badge:hover { opacity: 0.85; } /* Capture dialog */ .capture-dialog { border: 2px solid var(--ink); background: var(--paper); padding: 0; min-width: 360px; max-width: 520px; box-shadow: 4px 4px 0 var(--ink); } .capture-dialog::backdrop { background: rgba(0, 0, 0, 0.45); } .capture-dialog-inner { padding: 28px; } .capture-dialog-title { margin: 0 0 16px; font-size: 18px; font-family: Georgia, "Times New Roman", serif; } .capture-label { display: block; font-size: 13px; font-weight: 600; margin-bottom: 6px; color: var(--muted); text-transform: uppercase; letter-spacing: 0.04em; } .capture-input { width: 100%; height: 42px; border: 2px solid var(--ink); background: var(--paper-3); color: var(--ink); padding: 0 12px; font-size: 15px; margin-bottom: 10px; outline-offset: 3px; } .capture-error { color: var(--accent); font-size: 13px; margin-bottom: 10px; min-height: 18px; } .capture-actions { display: flex; gap: 10px; justify-content: flex-end; margin-top: 16px; } .capture-cancel { border: 1px solid var(--line); background: none; color: var(--ink); padding: 8px 18px; cursor: pointer; } .capture-cancel:hover { background: var(--paper-2); } .capture-submit { border: 0; background: var(--ink); color: var(--paper); padding: 8px 20px; cursor: pointer; font-weight: 600; } .capture-submit:hover { opacity: 0.85; } .capture-submit:disabled { opacity: 0.45; cursor: default; }