:root { color-scheme:light; --ink:#1b352d; --green:#1d5544; --text:#243e34; --dim:#536a60; --cream:#f8f7f2; --paper:#fffefa; --rule:#d5ded3; --wash:#e8efdf; --amber:#81521d; --red:#943d36; --sans:"PingFang SC","Helvetica Neue","Microsoft YaHei",sans-serif; --display:"Songti SC","STSong",Georgia,serif }
* { box-sizing:border-box }
body { margin:0; color:var(--text); background:var(--cream); font:15px/1.55 var(--sans) }
button,input,select,textarea { font:inherit; color:inherit }
button,a,input,select,textarea,summary { -webkit-tap-highlight-color:transparent }
button { cursor:pointer; background:transparent; border:0 }
input,select,textarea { width:100%; min-width:0; border:1px solid #b9c7b9; border-radius:6px; background:var(--paper); padding:8px 10px }
input:focus,textarea:focus,select:focus { outline:2px solid #6a907a; outline-offset:1px }
button:focus-visible,a:focus-visible,summary:focus-visible { outline:3px solid #739480; outline-offset:2px }
a { color:var(--green) }
button:disabled { opacity:.53; cursor:default }
[hidden] { display:none !important }
h1,h2,h3,p { margin:0 }
h1 { font:700 clamp(24px,3.6vw,40px)/1.27 var(--display); letter-spacing:-.035em }
h2 { font:700 22px/1.36 var(--display) }
h3 { font-size:16px }
.masthead { background:#f4f3ec; border-bottom:1px solid var(--rule) }
.header-body { max-width:1450px; min-height:76px; padding:12px clamp(16px,4vw,64px); margin:0 auto; display:flex; align-items:center; justify-content:space-between; gap:16px; flex-wrap:wrap }
.brand,.masthead nav,.controls,.actions,.path,.pager,.title-meta,.box-head { display:flex; align-items:center; gap:10px; flex-wrap:wrap }
.brand strong { font:750 25px var(--display); letter-spacing:-1px }
.brand span { color:var(--dim); border-left:1px solid #bccabf; padding-left:10px }
.brand i { width:27px; height:27px; display:grid; place-items:center; background:#214c3e; border-radius:7px }
.brand i::before { content:""; width:12px; height:12px; border:2px solid #f3dbb7; box-shadow:inset -3px -3px 0 #ae7958;border-radius:2px }
.masthead nav { gap:4px }
.masthead nav button,.masthead nav a { padding:8px 12px; text-decoration:none; color:var(--dim);border-radius:7px }
.masthead nav button[aria-current="page"] { color:var(--green); background:#e1eadb; font-weight:650 }
.workspace { max-width:1380px; padding:28px clamp(16px,4vw,64px) 60px; margin:auto }
.box-head { justify-content:space-between }
.count,.muted,.help,.path { font-size:13px;color:var(--dim) }
.table-button:hover { background:#ecf0e7 }
.path { gap:5px; margin-bottom:9px }
.text-button { color:var(--green);padding:5px 0; font-weight:600;text-align:left }
.title-meta { margin:10px 0 18px;color:var(--dim);font-size:14px }
.panel { border:1px solid var(--rule);border-radius:12px;padding:clamp(14px,2.2vw,25px);background:var(--paper);margin:16px 0 }
.panel h2 { font-size:21px }
.box-head { gap:8px; margin-bottom:12px }
.controls { gap:6px; margin:13px 0 }
.chip,.badge { display:inline-flex;align-items:center;border-radius:999px;white-space:nowrap }
.chip { border:1px solid var(--rule);padding:5px 11px;background:var(--paper);font-size:13px }
.chip[aria-pressed="true"] { background:var(--green); color:#fff; border-color:var(--green) }
.badge { font-size:12px;font-weight:600;padding:2px 8px;color:#50635b;background:#eef0e9 }
.badge.review,.badge.queued,.badge.running { color:#79501e;background:#f9edcf }
.badge.published { color:#29563e;background:#deeedf }
.badge.failed,.badge.returned { color:#90463b;background:#fbeae3 }
.table { width:100%;border-collapse:collapse;text-align:left }
.table thead { font-size:12px;color:var(--dim); background:#f0f3eb }
.table th,.table td { padding:10px 8px;border-bottom:1px solid var(--rule);font-weight:normal;text-align:left }
.table th { font-weight:650 }
.ep-no { white-space:nowrap;font-weight:640 }
.table-button { color:var(--green);padding:3px 7px;border-radius:5px;font-weight:600;white-space:nowrap }
.thin { width:1%;white-space:nowrap }
.pager { justify-content:flex-end; margin-top:12px }
.empty { color:var(--dim);padding:20px 2px }
.primary,.secondary,.danger { padding:7px 12px; border:1px solid var(--rule);border-radius:7px;background:var(--paper);font-weight:620;line-height:1.5 }
.primary { background:var(--green);color:white;border-color:var(--green) }
.danger { color:var(--red) }
.actions { margin-top:14px }
.help { margin:5px 0 }
.field { display:grid;gap:4px;align-content:start;margin:10px 0;min-width:0; font-size:14px;font-weight:600 }
.field input,.field textarea { font-weight:400 }
textarea { resize:vertical;line-height:1.5; min-height:56px }
.twocol { display:grid;grid-template-columns:1fr 1fr;gap:0 15px }
details { margin:12px 0; border-top:1px solid var(--rule);padding-top:10px }
details summary { cursor:pointer;color:var(--green);font-weight:630 }
pre,.json { white-space:pre-wrap;overflow-wrap:anywhere; font:13px/1.55 "SFMono-Regular",Consolas,monospace }
pre { background:#f1f2eb;border-radius:7px;padding:12px;max-height:350px;overflow:auto }
.read-fields { display:grid; grid-template-columns:minmax(75px,auto) 1fr; gap:9px 14px; margin:10px 0 }
.read-fields dt { color:var(--dim);font-size:13px }
.read-fields dd { margin:0;white-space:pre-wrap;overflow-wrap:anywhere }
.status-note { border-left:3px solid #7b9b79;padding:8px 12px;background:#edf3e7;margin:12px 0 }
#feedback { position:fixed;bottom:14px;left:50%;transform:translateX(-50%);padding:10px 18px;background:#203e31;color:white;border-radius:8px;font-size:14px;max-width:calc(100vw - 24px);box-shadow:0 4px 16px #1a37232b;z-index:5 }
#feedback.error { background:#7b302a }
.rating { border:1px solid var(--rule);border-radius:7px; padding:10px 12px;margin-top:10px }
.rating-parts { display:grid;grid-template-columns:repeat(3,1fr);gap:10px }
.rating-parts label { font-size:12px }
.add-scale { width:auto;max-width:100% }
.task-title { display:block;font-weight:610 }
@media(max-width:760px) {
 .header-body { gap:6px;min-height:0 }.masthead nav button,.masthead nav a { font-size:13px;padding:7px }
 .workspace { padding-top:16px }
 .panel { margin:12px 0 }.table th,.table td { padding:8px 4px;font-size:13px }.title-meta { margin-bottom:10px }
}
@media(max-width:440px) {
 .workspace { padding-inline:12px }.header-body { padding-inline:12px }.twocol {grid-template-columns:1fr}
 .rating-parts { gap:4px }.table .excerpt-col { display:none }.brand span { font-size:13px }.panel { padding:12px }
}
.events { margin:8px 0; padding-left:22px }
.events li { padding:5px 0 }
.events small { color:var(--dim) }
.events a,.events p { font-size:13px }
.confirm-revision { display:flex;align-items:center;gap:8px }
.confirm-revision input { width:auto }
main,.library-body { min-width:0 }
.library-heading { display:flex; justify-content:space-between; align-items:center; gap:1em; padding:7px 0 23px; border-bottom:1px solid var(--rule);margin-bottom:24px }
.library-heading>div { display:flex; align-items:baseline;gap:15px }
.library-heading h1 { font-size:clamp(29px,3.4vw,43px) }
.library-layout { display:grid;grid-template-columns: minmax(162px,200px) minmax(0,1fr);gap:clamp(20px,3vw,46px);align-items:start }
.library-tree { border-right:1px solid var(--rule); padding-right:18px;min-width:0 }
.library-tree h2 { font:650 13px/1.4 var(--sans);color:var(--dim);padding:3px 11px 10px }
#library-groups { display:grid;gap:2px }
#library-groups button { display:flex;align-items:center;justify-content:space-between;gap:8px;padding:8px 11px;text-align:left;border-radius:6px;font-size:14px }
#library-groups button:hover { background:#eef0e6 }
#library-groups button[aria-pressed=true] { background:#e3ecdc;color:#174e39;font-weight:680 }
#library-groups button small { color:#66796b;font-size:12px;font-variant-numeric:tabular-nums }
.library-search { display:flex;align-items:center;gap:13px;padding:2px 14px;border:1px solid #a6b9ab;border-radius:9px;background:var(--paper) }
.library-search>span { width:15px;height:15px;border:1.8px solid var(--green);border-radius:100%;position:relative;flex-shrink:0 }
.library-search>span:after { content:"";width:7px;height:2px;background:var(--green);position:absolute;right:-5px;bottom:-2px;transform:rotate(45deg) }
.library-search input { padding:9px 0;border:0;background:transparent;min-height:39px }
.library-search:focus-within { outline:2px solid #739480;outline-offset:1px }
.library-search input:focus { outline:0 }
.library-filters { display:grid; grid-template-columns:repeat(4,minmax(0,1fr));gap:8px 14px;margin:14px 0 6px }
.library-filters label,.tag-picker-head { font-size:13px;color:var(--dim) }
.library-filters select { display:block;font-size:14px;min-height:39px;margin-top:4px;padding:6px 8px }
.tag-picker-head { display:flex;align-items:center;justify-content:space-between;gap:4px }
.tag-picker-head button { color:#315e48;text-decoration:underline;font-size:12px;padding:0 2px }
.tag-picker>input { margin:4px 0;font-size:13px }
.mobile-group { display:none }
.selected-filters { display:flex;gap:6px;flex-wrap:wrap;margin-top:10px }
.selected-filters button { background:#e3ecdc;color:var(--green);font-size:13px;padding:4px 9px;border-radius:5px }
.library-results-heading { display:flex;align-items:center;justify-content:space-between;gap:10px;margin:23px 0 10px }
.library-results-heading h2 { font:650 16px var(--sans) }
.library-results-heading .text-button { font-size:13px }
.works-table { width:100%;border-collapse:collapse;text-align:left }
.works-table th { background:#eaf0e6;font-size:12px;color:var(--dim);font-weight:600;padding:8px 9px }
.works-table td { padding:11px 9px;border-bottom:1px solid var(--rule);overflow-wrap:anywhere;vertical-align:middle }
.lib-title { width:36% }.lib-title button { font-weight:650;color:var(--green);margin:0;padding:0;text-align:left;line-height:1.5 }
.lib-title button:hover { text-decoration:underline }
.lib-title small,.lib-progress small { display:block;color:var(--dim);font-size:12px;line-height:1.55;margin-top:3px }
.lib-shape { font-size:13px;width:10%;white-space:nowrap }.lib-progress { width:15%;min-width:70px;font-size:13px }
.lib-topics span { display:inline-block;line-height:1.5;border:1px solid #dce4d8;background:#f2f4eb;font-size:12px;padding:1px 6px;border-radius:4px;margin:2px 4px 2px 0 }
.workspace .pager input { width:65px;min-height:34px;padding:4px 6px }
.edition-classification { display:flex;flex-wrap:wrap;gap:6px 22px;align-items:center;font-size:14px;overflow-wrap:anywhere }
#main { max-width:1110px;margin-inline:auto }
@media(max-width:900px) {
  .library-layout { grid-template-columns:minmax(138px,160px) minmax(0,1fr);gap:18px }
  .library-filters { grid-template-columns:repeat(2,minmax(0,1fr)) }
}
@media(max-width:760px) {
  .library-layout { display:block }.library-tree { display:none }.mobile-group { display:block }
  .library-heading { padding:4px 0 13px;margin-bottom:14px }
  .library-heading>div { display:block }.library-heading .count { display:block;margin-top:3px }
  .library-search input { min-height:40px }
  .lib-title { width:32% }.lib-progress { width:16% }
}
@media(max-width:560px) {
  .works-table,.works-table tbody,.works-table tr,.works-table td { display:block }
  .works-table thead { display:none }
  .works-table tbody tr { padding:13px 0;border-bottom:1px solid var(--rule);display:grid;grid-template-columns:minmax(0,1fr) auto;gap:4px 8px }
  .works-table tbody tr:first-child { border-top:1px solid var(--rule) }
  .works-table td { width:auto;padding:0;border:0 }
  .works-table .lib-title { grid-column:1 }.works-table .lib-shape { grid-column:2;color:var(--dim) }
  .works-table .lib-topics { grid-column:1/-1 }
  .works-table .lib-progress { grid-column:1/-1;display:flex;align-items:center;gap:7px;color:var(--dim) }
  .lib-progress small { margin:0 }
}

.classification-review { border-block:1px solid var(--rule);padding:12px 0;margin:16px 0 }
.classification-review > details { margin:8px 0;border:0 }
.suggestion-label { display:flex;align-items:center;gap:10px;font-size:13px;color:var(--dim);min-width:0 }
.suggestion-label select { width:auto;max-width:100%;font-weight:650;color:var(--ink) }
.suggestion-groups,.topic-sources small,.read-classification small { color:var(--dim);font-size:13px;font-weight:400 }
.suggestion-groups { display:block;margin-top:7px }
.reviewed-topics { margin-top:12px }
.topic-sources summary small { margin-inline-start:1em }
.read-classification { margin:14px 0 }
.source-episodes ul,.read-classification ul { list-style:none;padding:0;margin:6px 0 }
.source-episodes li { display:flex;gap:12px;align-items:baseline;border-bottom:1px solid var(--rule);padding:6px 0;overflow-wrap:anywhere }
.source-episodes button.text-button { flex-shrink:0 }
.read-classification li { margin:7px 0 }
.read-classification p { color:var(--dim);white-space:pre-wrap;overflow-wrap:anywhere }
.queue-on-register { display:flex;align-items:center;gap:8px;margin:14px 0;font-weight:600 }
.queue-on-register input { width:auto }

.published-reader { width:min(960px,100%); margin:0 auto; padding:32px clamp(16px,4vw,52px) 48px }
.published-search { display:flex; align-items:end; flex-wrap:wrap; gap:12px; margin:20px 0 14px }
.published-search label { display:grid; gap:5px; min-width:0; flex:1 1 220px; color:var(--dim) }
.published-reader article { margin:14px 0; overflow-wrap:anywhere }
.published-reader article h2 { margin:4px 0 14px }
.published-reader footer { margin-top:28px; font-size:13px }
