*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}
:root{--bg-primary:#faf8f5;--bg-secondary:#f2efe9;--bg-card:#fff;--bg-card-hover:#fdfcfa;--bg-accent:#e8e4dc;--text-primary:#2c2417;--text-secondary:#5c5446;--text-muted:#8a8278;--text-accent:#6b4c2a;--border-light:#e0dbd3;--border-medium:#ccc5b9;--accent-primary:#7c5b3a;--accent-secondary:#a67c52;--accent-light:#d4b896;--success:#4a7c59;--warning:#b8860b;--info:#4a6b8a;--font-body:"Georgia","Times New Roman","Palatino Linotype",serif;--font-ui:-apple-system,BlinkMacSystemFont,"Segoe UI",system-ui,sans-serif;--text-xs:.75rem;--text-sm:.875rem;--text-base:1rem;--text-lg:1.125rem;--text-xl:1.25rem;--text-2xl:1.5rem;--text-3xl:2rem;--space-xs:.25rem;--space-sm:.5rem;--space-md:1rem;--space-lg:1.5rem;--space-xl:2rem;--space-2xl:3rem;--radius-sm:4px;--radius-md:6px;--radius-lg:8px;--shadow-sm:0 1px 2px rgba(44,36,23,.06);--shadow-md:0 2px 8px rgba(44,36,23,.08);--shadow-lg:0 4px 16px rgba(44,36,23,.1);--max-width:1400px;--gutter:clamp(.75rem,3vw,2rem)}
html{font-size:16px;-webkit-font-smoothing:antialiased}
body{font-family:var(--font-body);color:var(--text-primary);background:var(--bg-primary);line-height:1.6;min-height:100vh;display:flex;flex-direction:column}
a{color:var(--accent-primary);text-decoration:none}a:hover{color:var(--accent-secondary);text-decoration:underline}

/* header / footer — fluid: full window width, content capped only at very wide screens */
.app-header{background:var(--text-primary);color:var(--bg-primary);border-bottom:3px solid var(--accent-secondary);position:sticky;top:0;z-index:100}
.header-inner{max-width:var(--max-width);margin:0 auto;padding:var(--space-md) var(--gutter);display:flex;align-items:center;gap:var(--space-xl);flex-wrap:wrap}
.header-title{color:var(--bg-primary);text-decoration:none}.header-title:hover{color:var(--accent-light);text-decoration:none}
.header-title h1{font-size:var(--text-xl);font-weight:600;font-family:var(--font-ui);letter-spacing:-.02em}
.header-subtitle{font-size:var(--text-xs);color:var(--accent-light);font-family:var(--font-ui);text-transform:uppercase;letter-spacing:.08em}
.header-nav{display:flex;gap:var(--space-sm);font-family:var(--font-ui);flex-wrap:wrap}
.header-nav a{color:#faf8f5b3;font-size:var(--text-sm);padding:var(--space-xs) var(--space-md);border-radius:var(--radius-sm);transition:all .15s;text-decoration:none}
.header-nav a:hover,.header-nav a.active{color:var(--bg-primary);background:#faf8f51f}.header-nav a.active{background:#faf8f52e}
.header-stats{margin-left:auto;font-size:var(--text-xs);color:#faf8f580;font-family:var(--font-ui)}
.app-main{flex:1;max-width:var(--max-width);margin:0 auto;padding:var(--space-xl) var(--gutter);width:100%}
.app-footer{text-align:center;padding:var(--space-xl);font-size:var(--text-sm);color:var(--text-muted);border-top:1px solid var(--border-light);background:var(--bg-secondary);font-family:var(--font-ui)}

.page h2{font-size:var(--text-2xl);font-weight:600;margin-bottom:var(--space-sm);font-family:var(--font-ui);color:var(--text-primary)}
.page-description{color:var(--text-secondary);margin-bottom:var(--space-xl)}
.breadcrumb{font-size:var(--text-sm);font-family:var(--font-ui);color:var(--text-muted);margin-bottom:var(--space-lg)}.breadcrumb a{color:var(--text-muted)}.breadcrumb span{margin:0 var(--space-xs)}
.hero{margin-bottom:var(--space-xl)}.hero h2{font-size:var(--text-3xl)}.hero p{color:var(--text-secondary);max-width:680px;margin-top:var(--space-sm)}
.stats-bar{display:flex;gap:var(--space-sm);flex-wrap:wrap;margin-bottom:var(--space-lg)}
.stat-chip{font-family:var(--font-ui);font-size:var(--text-xs);padding:var(--space-xs) var(--space-md);border:1px solid var(--border-medium);border-radius:20px;background:var(--bg-card);cursor:pointer;transition:all .15s;color:var(--text-secondary)}
.stat-chip:hover{border-color:var(--accent-primary);color:var(--accent-primary)}.stat-chip.active{background:var(--accent-primary);color:#fff;border-color:var(--accent-primary)}
.controls-bar{display:flex;gap:var(--space-md);align-items:center;margin-bottom:var(--space-lg);flex-wrap:wrap}
.search-input{font-family:var(--font-ui);font-size:var(--text-sm);padding:var(--space-sm) var(--space-md);border:1px solid var(--border-medium);border-radius:var(--radius-md);background:var(--bg-card);flex:1;min-width:200px;outline:none;transition:border-color .15s}
.search-input:focus{border-color:var(--accent-primary)}.search-input.large{font-size:var(--text-base);padding:var(--space-md)}
.sort-select,.text-select{font-family:var(--font-ui);font-size:var(--text-sm);padding:var(--space-sm) var(--space-md);border:1px solid var(--border-medium);border-radius:var(--radius-md);background:var(--bg-card);cursor:pointer;max-width:100%}
.result-count{font-family:var(--font-ui);font-size:var(--text-sm);color:var(--text-muted)}

.manuscript-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:var(--space-md)}
.manuscript-card{display:block;background:var(--bg-card);border:1px solid var(--border-light);border-radius:var(--radius-lg);padding:var(--space-lg);transition:all .15s;text-decoration:none;color:var(--text-primary)}
.manuscript-card:hover{border-color:var(--accent-primary);box-shadow:var(--shadow-md);transform:translateY(-1px);text-decoration:none;color:var(--text-primary)}
.card-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:var(--space-sm);gap:var(--space-sm)}
.card-header h3{font-family:var(--font-ui);font-size:var(--text-lg);font-weight:600}
.data-badge{font-family:var(--font-ui);font-size:var(--text-xs);background:var(--accent-light);color:var(--text-primary);padding:2px 8px;border-radius:10px;white-space:nowrap}
.card-title{font-size:var(--text-sm);color:var(--text-secondary);margin-bottom:var(--space-sm)}
.card-meta{display:flex;gap:var(--space-xs);flex-wrap:wrap;margin-bottom:var(--space-sm)}
.card-text{font-size:var(--text-sm);color:var(--text-muted);font-style:italic}

.tag{font-family:var(--font-ui);font-size:var(--text-xs);padding:2px 8px;border-radius:3px;display:inline-block}.tag.small{font-size:.7rem;padding:1px 6px}
.category-tag{background:#e8e0d4;color:#5c4a2e}.material-tag{background:#dce6dc;color:#3a5c3a}.period-tag{background:#dce0e8;color:#3a4a5c}.site-tag{background:#e8dce0;color:#5c3a4a}.special-tag{background:#e8e4dc;color:#6b4c2a}
.opisthograph-tag{background:#f0e0d0;color:#8b5e3c;border:1px solid #d4a574;font-weight:600}.deluxe-tag{background:#fdf3d0;color:#7a6520;border:1px solid #d4b854;font-weight:600}.textchar-tag{background:#d8eadc;color:#2a5c3a}.qsp-tag{background:#dce0f0;color:#2a3a6b}.data-tag{background:var(--accent-light);color:var(--text-primary)}
.tags-row{display:flex;gap:var(--space-sm);flex-wrap:wrap;margin-bottom:var(--space-xl)}
.metadata-source{font-size:.8em;color:#888;font-style:italic}

.special-filters{display:flex;flex-wrap:wrap;gap:.5rem;margin-bottom:.75rem}
.special-filter-btn{font-family:var(--font-ui);font-size:.8rem;padding:.35rem .9rem;border:1.5px solid #d4a574;border-radius:20px;background:#faf6f0;color:#8b5e3c;cursor:pointer;transition:all .15s;font-weight:500;display:inline-flex;align-items:center;gap:.4rem}
.special-filter-btn:hover{background:#f0e0d0;border-color:#b8885a}.special-filter-btn.active{background:#8b5e3c;color:#fff;border-color:#8b5e3c}.special-filter-btn.active .special-count{background:#ffffff40;color:#fff}
.special-count{font-size:.7rem;background:#e8d8c4;color:#6b4a2a;padding:.1rem .45rem;border-radius:10px;font-weight:600}

.manuscript-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:var(--space-md);gap:var(--space-lg);flex-wrap:wrap}
.manuscript-header h2{font-size:var(--text-3xl);margin-bottom:var(--space-xs)}.manuscript-title{font-size:var(--text-lg);color:var(--text-secondary);font-style:italic}
.completeness-ring{text-align:center;background:var(--bg-secondary);border-radius:var(--radius-lg);padding:var(--space-md) var(--space-lg)}
.completeness-value{display:block;font-family:var(--font-ui);font-size:var(--text-2xl);font-weight:700;color:var(--accent-primary)}
.completeness-label{font-family:var(--font-ui);font-size:var(--text-xs);color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em}
.section{margin-bottom:var(--space-2xl)}
.section h3{font-family:var(--font-ui);font-size:var(--text-xl);font-weight:600;margin-bottom:var(--space-md);padding-bottom:var(--space-sm);border-bottom:2px solid var(--border-light)}
.section-note{font-size:var(--text-sm);color:var(--text-muted);font-family:var(--font-ui);margin-bottom:var(--space-lg)}
.metadata-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:var(--space-md)}
.metadata-item{padding:var(--space-md);border-radius:var(--radius-md);background:var(--bg-card);border:1px solid var(--border-light)}
.metadata-item dt{font-family:var(--font-ui);font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted);margin-bottom:var(--space-xs)}
.metadata-item dd{font-size:var(--text-sm);word-break:break-word}.metadata-item.no-data{opacity:.5}
.empty{color:var(--text-muted);font-style:italic}
.scroll-group-info{margin-top:var(--space-lg);padding:var(--space-md);background:#faf6f0;border:1px solid #d4a574;border-radius:var(--radius-md)}
.scroll-group-info dt{font-family:var(--font-ui);font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.05em;color:#8b5e3c;font-weight:600;margin-bottom:.25rem}
.scroll-group-info dd{margin:0;color:var(--text-primary);line-height:1.5}.scroll-group-link{font-weight:600}.scroll-group-title{color:var(--text-muted);font-size:var(--text-sm)}.scroll-group-note{margin-top:.5rem;font-size:var(--text-sm);color:var(--text-muted);font-style:italic}
.pam-link{color:var(--accent-primary)}.pam-img-link{font-family:var(--font-ui);font-size:var(--text-xs);color:var(--info);margin-left:2px}

.dating-subsection{margin-bottom:var(--space-lg)}
.dating-subsection h4,.measurement-category h4{font-family:var(--font-ui);font-size:var(--text-sm);text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted);margin-bottom:var(--space-md)}
.c14-card{max-width:420px}.c14-uncal{font-size:var(--text-sm);color:var(--text-muted);margin-top:.15rem}
.measurement-category{margin-bottom:var(--space-xl)}
.measurements-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:var(--space-md)}
.measurement-card{background:var(--bg-card);border:1px solid var(--border-light);border-radius:var(--radius-md);padding:var(--space-md);transition:all .15s}
.measurement-card.has-value{border-left:3px solid var(--success)}.measurement-card.empty{opacity:.5;border-left:3px solid var(--border-light)}
.measurement-label{font-family:var(--font-ui);font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.04em;color:var(--text-muted);margin-bottom:var(--space-xs)}
.measurement-value{margin-bottom:var(--space-sm)}
.measurement-value .value{font-family:var(--font-ui);font-size:var(--text-xl);font-weight:600;color:var(--text-primary)}
.measurement-value .unit{font-family:var(--font-ui);font-size:var(--text-sm);color:var(--text-muted);margin-left:var(--space-xs)}
.measurement-value .empty-value{font-size:var(--text-xl);color:var(--border-medium)}
.measurement-source{display:flex;align-items:center;gap:var(--space-sm);flex-wrap:wrap}
.source-badge{font-family:var(--font-ui);font-size:var(--text-xs);padding:2px 6px;border-radius:3px;transition:all .15s}
.source-badge.has-source{background:#e0eadc;color:#3a5c3a}.source-badge.no-source{background:var(--bg-accent);color:var(--text-muted);font-style:italic}
.alt-values{margin-top:var(--space-sm);font-family:var(--font-ui);font-size:var(--text-xs);color:var(--text-muted)}.alt-values div{margin-top:2px}
.measurement-note{font-family:var(--font-ui);font-size:var(--text-xs);color:var(--text-muted);margin-top:var(--space-xs)}
.external-link{display:inline-block;margin-top:var(--space-md);margin-right:var(--space-sm);font-family:var(--font-ui);font-size:var(--text-sm);padding:var(--space-sm) var(--space-md);border:1px solid var(--accent-primary);border-radius:var(--radius-md);transition:all .15s}
.external-link:hover{background:var(--accent-primary);color:#fff;text-decoration:none}

/* bibliography */
.bibliography-list{list-style:none;padding:0}
.bibliography-list li{padding:.6rem .75rem;border-left:3px solid var(--accent-light);margin-bottom:.5rem;background:var(--bg-card);border-radius:0 var(--radius-sm) var(--radius-sm) 0;font-size:.9rem;line-height:1.5}
.bib-citation{display:block}
.bib-tag{display:inline-block;font-family:var(--font-ui);font-size:.75rem;padding:.15rem .5rem;border-radius:var(--radius-sm);margin-top:.3rem;margin-right:.35rem}
.bib-tag-editio{background:#e8e0d4;color:#5c4a2e;font-weight:600}.bib-tag-data{background:#f5f0e8;color:var(--text-muted);font-style:italic}

/* compare */
.compare-controls{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-xl);margin-bottom:var(--space-xl)}
.picker{background:var(--bg-card);border:1px solid var(--border-light);border-radius:var(--radius-lg);padding:var(--space-lg)}
.picker>label{display:block;font-family:var(--font-ui);font-size:var(--text-sm);font-weight:600;margin-bottom:var(--space-md);color:var(--text-primary)}
.picker-selected{display:flex;flex-wrap:wrap;gap:var(--space-xs);margin-bottom:var(--space-md);min-height:32px}
.picker-chip{font-family:var(--font-ui);font-size:var(--text-xs);background:var(--accent-light);color:var(--text-primary);padding:4px 8px;border-radius:4px;display:flex;align-items:center;gap:4px}
.picker-chip button{background:none;border:none;cursor:pointer;font-size:var(--text-sm);color:var(--text-secondary);padding:0;line-height:1}
.clear-btn,.text-btn{font-family:var(--font-ui);font-size:var(--text-xs);color:var(--text-muted);background:none;border:none;cursor:pointer;text-decoration:underline}.text-btn{color:var(--accent-primary)}
.picker-search-wrapper{position:relative}
.picker-search-wrapper input{width:100%;font-family:var(--font-ui);font-size:var(--text-sm);padding:var(--space-sm) var(--space-md);border:1px solid var(--border-medium);border-radius:var(--radius-md);outline:none}
.picker-search-wrapper input:focus{border-color:var(--accent-primary)}
.picker-dropdown{position:absolute;top:100%;left:0;right:0;background:var(--bg-card);border:1px solid var(--border-medium);border-radius:var(--radius-md);box-shadow:var(--shadow-lg);max-height:240px;overflow-y:auto;z-index:50}
.picker-option{display:block;width:100%;text-align:left;padding:var(--space-sm) var(--space-md);border:none;background:none;cursor:pointer;font-family:var(--font-ui);font-size:var(--text-sm)}
.picker-option:hover{background:var(--bg-secondary)}.option-badge{float:right;font-size:var(--text-xs);color:var(--text-muted)}
.field-actions{display:flex;gap:var(--space-md);margin-bottom:var(--space-md)}
.field-grid{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-xs)}
.field-checkbox{display:flex;align-items:center;gap:var(--space-sm);font-family:var(--font-ui);font-size:var(--text-sm);padding:var(--space-xs) var(--space-sm);border-radius:var(--radius-sm);cursor:pointer}
.field-checkbox:hover{background:var(--bg-secondary)}.field-checkbox.checked{background:#edf4e8}.field-unit{font-size:var(--text-xs);color:var(--text-muted)}
.results-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--space-md);flex-wrap:wrap;gap:var(--space-sm)}
.results-header h3{font-family:var(--font-ui);font-size:var(--text-base)}
.export-btn{font-family:var(--font-ui);font-size:var(--text-sm);padding:var(--space-sm) var(--space-md);background:var(--accent-primary);color:#fff;border:none;border-radius:var(--radius-md);cursor:pointer}.export-btn:hover{background:var(--accent-secondary)}
.table-wrapper{overflow-x:auto;border:1px solid var(--border-light);border-radius:var(--radius-lg);background:var(--bg-card)}
.comparison-table{width:100%;border-collapse:collapse;font-family:var(--font-ui);font-size:var(--text-sm)}
.comparison-table th,.comparison-table td{padding:var(--space-sm) var(--space-md);border-bottom:1px solid var(--border-light);text-align:left;white-space:nowrap}
.comparison-table th{background:var(--bg-secondary);font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.04em;color:var(--text-secondary);position:sticky;top:0}
.th-unit{font-weight:400;color:var(--text-muted);margin-left:2px}
.comparison-table .sticky-col{position:sticky;left:0;background:var(--bg-card);z-index:1;border-right:2px solid var(--border-light)}.comparison-table th.sticky-col{background:var(--bg-secondary);z-index:2}
.siglum-cell a{font-weight:600}.comparison-table .title-col{color:var(--text-secondary)}.comparison-table td.no-value{color:var(--border-medium);font-style:italic}
.compare-empty{text-align:center;padding:var(--space-2xl);color:var(--text-muted);font-family:var(--font-ui)}

/* search results list / PAM list */
.search-results{display:flex;flex-direction:column;gap:var(--space-sm)}
.search-result{display:block;padding:var(--space-md) var(--space-lg);background:var(--bg-card);border:1px solid var(--border-light);border-radius:var(--radius-md);text-decoration:none;color:var(--text-primary);transition:all .15s}
.search-result:hover{border-color:var(--accent-primary);box-shadow:var(--shadow-sm);text-decoration:none;color:var(--text-primary)}
.result-main{margin-bottom:var(--space-xs);display:flex;justify-content:space-between;gap:var(--space-md);flex-wrap:wrap}.result-title{color:var(--text-secondary)}
.result-meta{display:flex;gap:var(--space-xs);flex-wrap:wrap;margin-bottom:var(--space-xs)}.result-text{font-size:var(--text-sm);color:var(--text-muted);font-style:italic}
.results-note{text-align:center;color:var(--text-muted);font-family:var(--font-ui);font-size:var(--text-sm);padding:var(--space-lg)}
.not-found{text-align:center;padding:var(--space-2xl)}
.pam-images{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:var(--space-md)}

@media (max-width:768px){.header-stats{display:none}.app-main{padding:var(--space-md) var(--gutter)}.manuscript-header{flex-direction:column}.measurements-grid{grid-template-columns:repeat(auto-fill,minmax(160px,1fr))}.compare-controls,.field-grid{grid-template-columns:1fr}}
@media (max-width:480px){.metadata-grid,.manuscript-grid{grid-template-columns:1fr}.hero h2{font-size:var(--text-2xl)}}
