:root{--paper:#f8f7f3;--surface:#fff;--ink:#202a32;--muted:#53626b;--line:#d5dcd9;--accent:#153f67;--warning:#82531d;--error:#9b2e2e;--focus:#a04e00}
*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font-family:"Noto Sans TC","Microsoft JhengHei",system-ui,sans-serif;font-size:16px;line-height:1.7}a{color:var(--accent);text-underline-offset:4px}a:hover{text-decoration-thickness:2px}a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,summary:focus-visible{outline:3px solid var(--focus);outline-offset:3px}h1,h2,h3,p{margin-top:0}h1{font-size:2rem;line-height:1.4;font-weight:650}h2{font-size:1.2rem}h3{font-size:1.1rem}button,input,select,textarea{font:inherit}button{background:var(--accent);color:#fff;border:1px solid var(--accent);border-radius:3px;padding:10px 22px;cursor:pointer;white-space:nowrap}button:hover{background:#0c2c49}button:disabled{opacity:.5;cursor:not-allowed}input,select,textarea{border:1px solid #9caaaF;border-radius:3px;padding:10px 12px;background:var(--surface);color:var(--ink);max-width:100%}select{min-height:49px}label{display:block;font-size:.9rem;margin-bottom:6px;font-weight:600}.skip-link{position:absolute;left:16px;top:-100px;background:white;padding:10px;z-index:5}.skip-link:focus{top:10px}.masthead{background:var(--surface);border-top:5px solid var(--accent);border-bottom:1px solid var(--line)}.masthead-inner{max-width:1184px;padding:24px 32px;margin:auto;display:flex;align-items:center;justify-content:space-between;gap:24px}.brand{display:flex;align-items:center;gap:18px;text-decoration:none;color:var(--ink);font-weight:700;font-size:1.1rem;line-height:1.45}.brand-mark{color:var(--accent);font-family:Georgia,serif;font-size:2rem;border-right:1px solid var(--line);padding-right:18px}.brand-subtitle{display:block;color:var(--muted);font-size:.85rem;font-weight:400}.masthead nav{display:flex;flex-wrap:wrap;gap:24px}.masthead nav a{color:var(--ink);text-decoration:none}.page{max-width:1184px;margin:auto;padding:48px 32px 72px;min-height:65vh}.catalogue-heading{margin-bottom:28px}.catalogue-heading p{color:var(--muted);margin-bottom:0}.search-form{display:flex;align-items:end;gap:16px;background:var(--surface);border-top:2px solid var(--accent);border-bottom:1px solid var(--line);padding:24px;margin-bottom:40px}.search-field{flex:1;min-width:180px}.search-field input{width:100%}.search-form select{max-width:250px}.results-heading{display:flex;justify-content:space-between;align-items:baseline;border-bottom:1px solid var(--ink);padding-bottom:12px;gap:16px}.results-heading h2{margin:0}.results-heading span{color:var(--muted);font-size:.9rem}.article-row{display:grid;grid-template-columns:110px 1fr 24px;gap:22px;padding:24px 0;border-bottom:1px solid var(--line)}.article-date{font-variant-numeric:tabular-nums;color:var(--muted);font-size:.9rem;padding-top:2px}.article-info h3{font-size:1.2rem;font-weight:600;margin-bottom:8px;line-height:1.6}.article-info h3 a{text-decoration:none;color:var(--ink)}.article-info h3 a:hover{color:var(--accent);text-decoration:underline}.article-info p{margin-bottom:8px;color:var(--muted);font-size:.95rem}.metadata{font-size:.8rem;color:var(--muted)}.row-arrow{color:var(--accent);font-size:1.25rem}.pagination{display:flex;justify-content:center;gap:24px;align-items:center;margin-top:32px}.pagination span{color:var(--muted);font-size:.9rem}.empty-state{padding:48px 0}.empty-state p{color:var(--muted)}.footer{max-width:1120px;margin:auto;border-top:1px solid var(--line);padding:28px 0 40px;display:flex;justify-content:space-between;gap:24px;font-size:.85rem;color:var(--muted)}.footer p{margin:8px 0 0}.footer nav{display:flex;gap:20px;align-items:start}.reading-layout{display:grid;grid-template-columns:minmax(0,800px) 220px;gap:64px}.reading-content h1{font-family:"Noto Serif TC","PMingLiU",serif;font-weight:700;font-size:2.1rem;line-height:1.55}.back-link{display:inline-block;margin-bottom:32px;font-size:.9rem}.document-kind{color:var(--muted);font-size:.85rem;margin-bottom:12px}.provenance{border-block:1px solid var(--line);padding:16px 0;margin:24px 0 32px;font-size:.85rem}.provenance div{display:flex;gap:16px;margin:4px 0}.provenance dt{color:var(--muted);min-width:128px}.provenance dd{margin:0}.article-body{overflow-wrap:anywhere;line-height:1.95;font-size:1.05rem;overflow-x:auto}.article-body img{max-width:100%;height:auto;display:inline-block}.article-body table{max-width:100%;border-collapse:collapse}.article-body td,.article-body th{border:1px solid var(--line);padding:8px}.article-body pre{white-space:pre-wrap}.article-body p{margin-bottom:1.3em}.article-body blockquote{margin-left:0;border-left:3px solid var(--line);padding-left:24px}.reading-aside{padding-top:68px;font-size:.85rem;color:var(--muted)}.reading-aside h2{font-size:1rem;color:var(--ink);border-bottom:1px solid var(--line);padding-bottom:12px}.reading-aside ul{padding-left:20px;margin-bottom:24px}.reading-aside p{margin-top:24px}.document-summary{border-left:3px solid var(--accent);padding:12px 20px;background:var(--surface)}.related{border-top:1px solid var(--line);margin-top:40px;padding-top:24px}.notice{padding:14px 20px;border-left:4px solid var(--accent);background:#edf2f5}.notice.warning{border-color:var(--warning);background:#fff5e6}.notice.error,.errorlist{color:var(--error)}.editor-page{max-width:800px}.editor-page h1{margin-top:24px}.editor-form{margin:32px 0}.editor-form p{margin-bottom:24px}.help,.helptext{font-size:.9rem;color:var(--muted)}.helptext{display:block;margin-top:8px}.table-scroll{overflow-x:auto;margin-top:32px}table{width:100%;border-collapse:collapse;text-align:left}th,td{padding:12px;border-bottom:1px solid var(--line);vertical-align:top}th{background:#eef0ed;white-space:nowrap}td:first-child{white-space:nowrap}.version{border-top:1px solid var(--line);padding:24px 0}.version details{margin:16px 0}.version summary{cursor:pointer}.secondary{background:transparent;color:var(--accent)}.secondary:hover{background:#edf2f5}
.import-help{margin-top:32px;border-top:1px solid var(--line);padding-top:24px;overflow-wrap:anywhere}.import-help details{margin:20px 0}.import-help summary{cursor:pointer;font-weight:600}.import-help dt{margin-top:16px;font-weight:600}.import-help dd{margin:4px 0 0}.import-help pre{overflow-x:auto;padding:16px;background:var(--surface);border:1px solid var(--line);font-size:.85rem}.import-help li{margin-bottom:12px}
.topic-directory{margin-bottom:48px}.topic-directory ul{list-style:none;padding:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,360px),1fr));column-gap:40px}.topic-directory li{border-top:1px solid var(--line);padding:16px 0}.topic-directory li div{display:flex;justify-content:space-between;gap:16px}.topic-directory li a{font-weight:600}.topic-directory li span{white-space:nowrap;color:var(--muted);font-size:.9rem}.topic-directory li p{margin:8px 0 0;color:var(--muted);font-size:.9rem}
@media(max-width:900px){.search-form{flex-wrap:wrap}.search-field{flex-basis:100%}.reading-layout{grid-template-columns:minmax(0,1fr);gap:24px}.reading-aside{padding-top:0}.footer{margin-inline:32px;flex-wrap:wrap}}
@media(max-width:560px){.masthead-inner{padding:18px 20px;align-items:start;flex-direction:column;gap:16px}.masthead nav{gap:22px;font-size:.9rem}.page{padding:30px 20px 48px}h1{font-size:1.55rem}.catalogue-heading p{font-size:.95rem}.search-form{padding:20px 16px;gap:12px;margin-bottom:28px}.search-form>div:not(.search-field){flex:1;min-width:0}.search-form select{width:100%;max-width:100%}.search-form button{width:100%}.article-row{grid-template-columns:1fr 20px;gap:8px;padding:20px 0}.article-date{grid-column:1}.article-info{grid-row:2;grid-column:1}.row-arrow{grid-column:2;grid-row:2}.article-info h3{font-size:1.07rem}.article-info p{font-size:.9rem}.reading-content h1{font-size:1.7rem}.provenance div{flex-wrap:wrap;gap:0 12px}.provenance dt{min-width:120px}.footer{margin-inline:20px}.footer nav{flex-wrap:wrap}.pagination{gap:16px;font-size:.9rem}.results-heading{align-items:start}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important}}@media(forced-colors:active){button{border:1px solid ButtonText}}

/* Keep the expanded archive filters usable at every viewport. */
.search-form{flex-wrap:wrap}.search-field{flex-basis:100%}.search-form>div:not(.search-field){min-width:0}.metadata{overflow-wrap:anywhere}
@media(max-width:560px){.search-form>div:not(.search-field){flex:1 1 100%}}
