:root{--paper:#f5f4ed;--ink:#263e31;--muted:#68756b;--line:#d8ded3;--accent:#28593e;--white:#fffef9;--danger:#9f382e;--radius:8px}
*{box-sizing:border-box}body{margin:0;color:var(--ink);background:radial-gradient(ellipse at 0 0,#e6eddf,transparent 55%),var(--paper);font:16px/1.6 "Noto Sans SC","Microsoft YaHei",sans-serif}a{color:var(--accent);text-underline-offset:4px}button,input,select,textarea{font:inherit}button{cursor:pointer;border:1px solid var(--accent);border-radius:5px;background:var(--accent);color:white;padding:10px 20px;min-height:44px}button:disabled{opacity:.45;cursor:default}input,select,textarea{width:100%;border:1px solid #b9c7b8;border-radius:4px;background:#fffefb;color:var(--ink);padding:10px 12px;min-height:44px}textarea{resize:vertical}label{display:flex;flex-direction:column;gap:6px;font-size:13px;margin-bottom:16px}label>span{font-weight:600}input:focus,select:focus,textarea:focus,button:focus-visible,a:focus-visible{outline:3px solid #bd8d39;outline-offset:3px}h1,h2,h3,p{margin-top:0}h1,h2{font-family:"Noto Serif SC","Songti SC",Georgia,serif;line-height:1.3}h1{font-size:clamp(30px,4vw,48px);margin-bottom:12px}h2{font-size:26px}h3{font-size:17px;margin-bottom:10px}[hidden]{display:none!important}.masthead{display:flex;align-items:center;gap:28px;padding:22px 4vw;border-bottom:1px solid var(--line);flex-wrap:wrap}.brand{font:700 21px Georgia,serif;letter-spacing:1px;text-decoration:none}.brand span{display:block;font:11px "Noto Sans SC",sans-serif;letter-spacing:5px}.masthead nav{display:flex;gap:24px;margin-right:auto}.masthead nav a{font-size:14px;text-decoration:none}.masthead nav a[aria-current]{font-weight:bold;border-bottom:2px solid var(--accent)}#identity{display:flex;align-items:center;gap:14px;font-size:13px}main{max-width:1500px;margin:auto;padding:40px 4vw 80px}.eyebrow{font-size:11px;letter-spacing:2px;color:var(--muted);font-weight:700}.small{font-size:13px;color:var(--muted)}.card{background:var(--white);border:1px solid var(--line);border-radius:var(--radius);padding:28px}.login-layout{max-width:1080px;margin:8vh auto;display:grid;grid-template-columns:1.3fr 1fr;gap:10%;align-items:center;animation:arrive .5s ease}.intro h1{font-size:clamp(42px,5vw,66px);max-width:600px}.intro p{max-width:500px}.rule{height:1px;background:var(--line);width:100px;margin:32px 0}.login-card{border-top:4px solid var(--accent);box-shadow:0 18px 50px #263e3108}.login-card button{width:100%}.error{color:var(--danger);font-size:14px;margin:16px 0 0;overflow-wrap:anywhere}.quiet,.secondary{background:transparent;color:var(--accent)}.quiet{border-color:transparent;padding:7px 12px}.danger{background:transparent;color:var(--danger);border-color:#dbbdb4}.page-heading,.section-heading,.sheet-heading{display:flex;align-items:center;justify-content:space-between;gap:16px}.page-heading{margin-bottom:30px}.section-heading{margin:14px 0}.section-heading h2,.section-heading h3,.sheet-heading h2{margin:0}.filters{display:flex;gap:14px;align-items:end;padding:20px;background:#e9eee4;border:1px solid var(--line);border-radius:8px;margin-bottom:24px}.filters label{margin:0;min-width:130px}.filters .grow{flex:1}.editor-layout{display:grid;grid-template-columns:300px minmax(0,1fr);gap:24px;align-items:start}.entry-browser{border:1px solid var(--line);border-radius:8px;overflow:hidden;background:var(--white)}.list-heading{display:flex;justify-content:space-between;padding:18px;border-bottom:1px solid var(--line);font-size:13px}.entry{display:block;width:100%;background:transparent;color:var(--ink);text-align:left;border:0;border-bottom:1px solid var(--line);border-radius:0;padding:16px 18px}.entry strong{display:block;font-size:14px;overflow-wrap:anywhere}.entry small{color:var(--muted);display:block;margin-top:5px}.entry.active{background:#e6eee0;box-shadow:inset 3px 0 var(--accent)}.entry:hover{background:#eef2e9}.pagination{display:flex;align-items:center;justify-content:space-between;font-size:12px;padding:10px;gap:8px}.pagination button{padding:6px 8px;font-size:12px}.editor-sheet{border:1px solid var(--line);background:var(--white);padding:28px;border-radius:8px}.empty{padding:100px 20px;text-align:center}.fields{display:grid;gap:0 18px}.two{grid-template-columns:repeat(2,minmax(0,1fr))}.sheet-heading{margin-bottom:12px}.sheet-heading a{font-size:12px}.source-row{display:grid;grid-template-columns:100px 1fr 1.3fr auto;gap:8px;padding:12px 0;border-top:1px solid var(--line)}.source-row input{font-size:13px}.source-row label{margin:0}.source-row button{align-self:end;padding:8px}#body,#advanced{font-family:Consolas,monospace;font-size:14px;line-height:1.8}details{margin:24px 0}summary{cursor:pointer;font-size:14px}details p{margin-top:12px}.save-bar{display:flex;gap:14px;align-items:center;flex-wrap:wrap;padding-top:20px;border-top:1px solid var(--line)}.preview{margin-top:16px;padding:24px;background:#f4f6ef;border:1px solid var(--line);overflow-wrap:anywhere}.preview pre{white-space:pre-wrap}.metrics{display:grid;grid-template-columns:repeat(4,1fr);gap:18px;margin-bottom:24px}.metric{border-top:3px solid var(--accent);background:var(--white);padding:24px;border-radius:4px}.metric strong{display:block;font:40px Georgia,serif}.metric span{font-size:13px;color:var(--muted)}.admin-grid{display:grid;grid-template-columns:1fr 1.5fr;gap:24px;margin-bottom:24px}dl{display:grid;grid-template-columns:1fr 1fr;font-size:14px;gap:16px;margin:24px 0}dd{margin:0;overflow-wrap:anywhere}dt{color:var(--muted)}.table-scroll{overflow:auto}table{width:100%;border-collapse:collapse;font-size:14px}th{text-align:left;color:var(--muted);font-weight:500}td,th{padding:16px 12px;border-bottom:1px solid var(--line)}td select{min-width:120px}td small{display:block;color:var(--muted)}#notice{position:sticky;top:0;z-index:20;background:var(--ink);color:white;padding:14px 4vw;overflow-wrap:anywhere}#notice.error{background:var(--danger);margin:0}footer{border-top:1px solid var(--line);padding:24px 4vw;font-size:11px;letter-spacing:2px;color:var(--muted);display:flex;justify-content:space-between}@keyframes arrive{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}
@media(max-width:1000px){.editor-layout{grid-template-columns:240px minmax(0,1fr)}.source-row{grid-template-columns:1fr 1fr}.admin-grid{grid-template-columns:1fr}.masthead{gap:16px}.masthead nav{gap:16px}}
@media(max-width:700px){main{padding:26px 18px 50px}.masthead{padding:18px}.masthead nav{order:3;flex-basis:100%;justify-content:space-between}.login-layout{display:block;margin:20px auto}.intro{margin-bottom:28px}.intro h1{font-size:38px}.login-card{padding:24px}.editor-layout{grid-template-columns:1fr}.entry-browser{max-height:350px;overflow:auto}.two{grid-template-columns:1fr}.filters{flex-wrap:wrap;padding:14px}.filters .grow{flex-basis:100%}.filters label{flex:1}.editor-sheet{padding:18px}.metrics{grid-template-columns:repeat(2,1fr);gap:12px}.metric{padding:18px}.card{padding:20px}.page-heading{align-items:start}.page-heading h1{font-size:30px}.sheet-heading{align-items:start}.source-row{grid-template-columns:1fr 1fr}.empty{padding:45px 10px}.save-bar button{flex:1}.section-heading{flex-wrap:wrap}.users-card{padding:12px}.users-card .section-heading{padding:8px}footer span{display:none}}
@media(prefers-reduced-motion:reduce){*{animation:none!important}}
.language-toolbar{display:flex;align-items:center;gap:20px;background:#eef2e9;border:1px solid var(--line);border-radius:6px;padding:16px 18px;margin-bottom:22px}.language-toolbar label{margin:0;min-width:210px}.language-toolbar p{margin:0;max-width:580px}.taxonomy-field{min-width:0;margin:0 0 20px}.taxonomy-field h3{font:600 13px "Noto Sans SC","Microsoft YaHei",sans-serif}.taxonomy-field .section-heading{margin:0 0 8px}.taxonomy-options{display:flex;align-content:start;flex-wrap:wrap;gap:8px;max-height:200px;min-height:105px;overflow:auto;padding:12px;border:1px solid #b9c7b8;border-radius:5px;background:#fffefb}.taxonomy-options label{display:flex;flex-direction:row;align-items:center;gap:7px;padding:6px 9px;margin:0;border:1px solid var(--line);border-radius:4px;cursor:pointer}.taxonomy-options label:has(input:checked){background:#e6eee0;border-color:var(--accent)}.taxonomy-options input{width:17px;height:17px;min-height:0;margin:0;accent-color:var(--accent);flex-shrink:0}.taxonomy-options span{font-weight:400}.taxonomy-options input:focus-visible{outline-offset:2px}.term-controls{display:flex;align-items:center;gap:8px;margin:0 0 8px}.term-controls input{flex:1;min-width:0}.term-controls span{font-size:13px;color:var(--muted);font-variant-numeric:tabular-nums}dialog{width:min(520px,calc(100% - 32px));max-height:90vh;overflow:auto;background:var(--white);color:var(--ink);border:1px solid var(--line);border-top:4px solid var(--accent);border-radius:8px;padding:24px;box-shadow:0 22px 80px #152a3160}dialog::backdrop{background:#152a3166}dialog .section-heading{margin-top:0;margin-bottom:24px}dialog h2{font-size:25px}#term-error{margin-bottom:16px}@media(max-width:700px){.language-toolbar{flex-direction:column;align-items:stretch;gap:10px}.language-toolbar label{min-width:0}.taxonomy-options{max-height:180px}}
/* Template controls share the workspace's form scale and responsive grid. */
.template-workspace { margin-top: 2rem; }
.template-workspace > summary { font-size: 1.3rem; font-weight: 700; cursor: pointer; }
.template-workspace form { margin-top: 2rem; }
.template-field-row { display: grid; grid-template-columns: minmax(10rem, 1fr) minmax(9rem, 2fr) repeat(5, auto); align-items: center; gap: .8rem; padding: 1rem 0; border-bottom: 1px solid #d8d4c9; }
.template-field-row code { overflow-wrap: anywhere; }
.template-field-row input[type=checkbox] { width: auto; }
.template-input { min-width: 0; padding: 1rem; border: 1px solid #d8d4c9; border-radius: .4rem; }
.template-input legend { padding: 0 .4rem; font-weight: 600; }
.template-input > label { margin-bottom: .6rem; }
@media (max-width: 800px) { .template-field-row { grid-template-columns: 1fr 1fr; } .template-field-row code { grid-column: 1 / -1; } }
.perspective-edit { margin: 1.5rem 0; }
.perspective-edit .full-width { grid-column: 1 / -1; }
.perspective-edit > button { margin: .5rem .5rem .5rem 0; }
