:root{--bg:#f6f7f4;--panel:#ffffff;--ink:#1d2320;--muted:#6b746e;--line:#dfe3dd;--accent:#0f6e56;--accent-ink:#ffffff;--accent-soft:#e3f1ec;--warn:#9a5b00;--warn-soft:#fff3df;--danger:#b3261e;--danger-soft:#fde8e6;--kl:#1f5fbf;--kg:#7a4bd6;--common:#b0501e;--radius:8px;--shadow:0 1px 2px rgba(20,30,25,.06),0 4px 14px rgba(20,30,25,.05);}
*{box-sizing:border-box}
[hidden]{display:none!important}
html,body{margin:0;height:100%}
body{font:14px/1.5 -apple-system,BlinkMacSystemFont,"Segoe UI","PingFang SC","Hiragino Sans GB","Microsoft YaHei",Roboto,sans-serif;color:var(--ink);background:var(--bg)}
h1,h2,h3{margin:0 0 .4em;line-height:1.25;text-wrap:balance}
h2{font-size:18px}h3{font-size:15px}
small{color:var(--muted);font-weight:400;font-size:12px}
code{background:var(--accent-soft);padding:0 4px;border-radius:4px}
a{color:var(--accent)}
button,.button{font:inherit;border:1px solid var(--line);background:var(--panel);color:var(--ink);padding:6px 12px;border-radius:var(--radius);cursor:pointer;text-decoration:none;display:inline-block;line-height:1.3}
button:hover,.button:hover{border-color:var(--accent)}
button:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible{outline:2px solid var(--accent);outline-offset:1px}
button.primary,.button.primary{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}
button.primary:disabled{opacity:.5;cursor:default}
button.ghost{background:transparent}
button.danger{color:var(--danger)}
button.link{border:0;background:none;color:var(--accent);padding:2px 6px}
button.small{padding:2px 8px;font-size:12px}
input,textarea,select{font:inherit;color:var(--ink);background:var(--panel);border:1px solid var(--line);border-radius:6px;padding:6px 8px;width:100%}
textarea{resize:vertical;min-height:2.4em}
label{display:block;margin:0 0 10px}
label>small{display:block;margin:0 0 3px}
label.check{display:flex;align-items:center;gap:8px}
label.check input{width:auto}
.top{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:10px 20px;background:var(--panel);border-bottom:1px solid var(--line);position:sticky;top:0;z-index:5}
.brand{font-weight:700;font-size:16px;letter-spacing:.2px}
.status{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.pill{font-size:12px;padding:2px 9px;border-radius:999px;background:var(--accent-soft);color:var(--accent)}
.pill.off{background:#eee;color:var(--muted)}
.pill.warn{background:var(--warn-soft);color:var(--warn)}
.pill.editor{cursor:pointer;border:1px dashed var(--accent)}
.tabs{display:flex;gap:2px;padding:6px 20px 0;background:var(--panel);border-bottom:1px solid var(--line);overflow-x:auto}
.tabs button{border:0;border-bottom:2px solid transparent;border-radius:0;background:none;padding:8px 12px;color:var(--muted)}
.tabs button.active{color:var(--accent);border-bottom-color:var(--accent);font-weight:600}
main{padding:16px 20px 40px;max-width:1400px;margin:0 auto}
.view{display:none}.view.active{display:block}
#view-kb.active{display:grid;grid-template-columns:minmax(280px,380px) 1fr;gap:16px;align-items:start}
.list-pane{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);position:sticky;top:96px;max-height:calc(100vh - 112px);display:flex;flex-direction:column}
.chips{display:flex;gap:4px;padding:10px 10px 0;flex-wrap:wrap}
.chips button{padding:3px 10px;font-size:12px;border-radius:999px}
.chips button.active{background:var(--ink);color:#fff;border-color:var(--ink)}
.search-row{display:flex;gap:6px;padding:10px}
.list-meta{padding:0 12px 6px;color:var(--muted);font-size:12px}
.entry-list{list-style:none;margin:0;padding:0 0 8px;overflow:auto;flex:1}
.entry-list li{padding:8px 12px;border-top:1px solid var(--line);cursor:pointer;display:flex;flex-direction:column;gap:2px}
.entry-list li:hover{background:var(--bg)}
.entry-list li.active{background:var(--accent-soft)}
.entry-list li.disabled .t{color:var(--muted);text-decoration:line-through}
.entry-list .t{font-weight:500}
.entry-list .m{font-size:12px;color:var(--muted);display:flex;gap:6px;flex-wrap:wrap}
.tag{font-size:11px;padding:0 6px;border-radius:4px;color:#fff;background:var(--muted)}
.tag.KL{background:var(--kl)}.tag.KG{background:var(--kg)}.tag.COMMON{background:var(--common)}
.tag.soft{background:var(--accent-soft);color:var(--accent)}
.tag.warn{background:var(--warn-soft);color:var(--warn)}
.form-pane{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);padding:16px 20px;min-height:300px}
.empty{color:var(--muted);padding:60px 0;text-align:center}
.form-head{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:10px}
.form-actions{display:flex;gap:6px;flex-wrap:wrap}
.grid{display:grid;grid-template-columns:1fr 1fr;gap:0 16px}
.grid .span2{grid-column:1/-1}
.subgrid{display:grid;grid-template-columns:1fr 1fr;gap:0 16px;background:var(--bg);padding:10px 12px 0;border-radius:6px;margin-bottom:10px}
.subgrid .check{grid-column:1/-1}
fieldset{border:0;padding:0;margin:0 0 10px}
legend{font-weight:600;margin-bottom:4px}
.radios{display:flex;gap:14px;flex-wrap:wrap}
.radios label{display:flex;gap:6px;align-items:center;margin:0}
.radios input{width:auto}
.replies-head{display:flex;justify-content:space-between;align-items:center;font-weight:600;margin-bottom:6px}
.reply{border:1px solid var(--line);border-radius:6px;padding:10px 12px 0;margin-bottom:10px;background:var(--bg)}
.reply .row{display:flex;gap:8px;align-items:center}
.reply .row label{flex:1}
.reply button{margin-bottom:10px}
.notice{padding:8px 12px;border-radius:6px;background:var(--warn-soft);color:var(--warn);margin:0 0 10px}
.notice.error{background:var(--danger-soft);color:var(--danger)}
.notice.ok{background:var(--accent-soft);color:var(--accent)}
.error{color:var(--danger)}
.form-foot{color:var(--muted);font-size:12px;margin-top:6px}
details{margin-bottom:10px}summary{cursor:pointer;color:var(--muted)}
.row{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin:8px 0}
.row label{display:flex;align-items:center;gap:6px;margin:0}
.row label input,.row label select{width:auto;min-width:160px}
.row.between{justify-content:space-between}
.hint,.muted{color:var(--muted)}
.try,.tests,.history,.io,.help,.quick,.policy{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);padding:16px 20px;max-width:980px}
.result{border:1px solid var(--line);border-radius:6px;padding:12px;margin-top:10px}
.result .head{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-bottom:6px}
.result.urgent{border-color:var(--danger);background:var(--danger-soft)}
.match{padding:8px 10px;border-top:1px solid var(--line)}
.match .why{font-size:12px;color:var(--muted)}
.cand{margin:6px 0 0 0;padding:8px 10px;background:var(--bg);border-radius:6px;white-space:pre-wrap}
.cand .zh{color:var(--muted);font-size:12px;margin-top:4px;white-space:normal}
.teach{margin-top:14px;padding-top:10px;border-top:1px dashed var(--line)}
.table{width:100%;border-collapse:collapse;margin-top:8px}
.table th,.table td{text-align:left;padding:6px 8px;border-top:1px solid var(--line);vertical-align:top}
.table th{font-weight:600;color:var(--muted);font-size:12px;border-top:0}
.table td.ok{color:var(--accent)}.table td.bad{color:var(--danger)}
.summary{padding:10px 12px;border-radius:6px;background:var(--accent-soft);margin:6px 0}
.summary.bad{background:var(--warn-soft)}
#toast{position:fixed;left:50%;bottom:24px;transform:translateX(-50%);background:var(--ink);color:#fff;padding:8px 16px;border-radius:999px;box-shadow:var(--shadow);z-index:20;max-width:90vw}
#toast.error{background:var(--danger)}
#gate[hidden]{display:none}
#gate{position:fixed;inset:0;background:var(--bg);z-index:50;display:flex;align-items:center;justify-content:center;padding:16px}
.gate{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:28px 28px 20px;width:min(420px,100%);box-shadow:var(--shadow)}
.gate h1{font-size:20px}
.gate p{color:var(--muted);margin:0 0 14px}
.gate button{width:100%;margin-top:6px;background:var(--accent);color:#fff;border-color:var(--accent)}
@media (max-width:900px){#view-kb.active{grid-template-columns:1fr}.list-pane{position:static;max-height:50vh}.grid,.subgrid{grid-template-columns:1fr}main{padding:12px}}
.lang-switch{display:inline-flex;border:1px solid var(--line);border-radius:999px;overflow:hidden}
.lang-switch .lang,.gate-lang .lang{border:0;border-radius:0;background:transparent;padding:2px 10px;font-size:12px;color:var(--muted)}
.lang-switch .lang.active,.gate-lang .lang.active{background:var(--ink);color:#fff}
.gate-lang{display:flex;justify-content:flex-end;gap:2px;margin:-8px 0 8px}
.gate-lang .lang{border:1px solid var(--line);border-radius:999px}
html[lang=vi] .help-zh,html[lang=zh] .help-vi{display:none}
html[lang=vi] .zh-only{display:none}

body[data-mode=simple] .advanced{display:none!important}
body[data-mode=advanced] .simple-only{display:none!important}
.mode-switch{display:inline-flex;align-items:center;gap:6px;margin:0 6px 0 0;font-size:13px;color:var(--muted)}
.mode-switch input{width:auto}
.radios.cards{gap:8px}
.radios.cards label{border:1px solid var(--line);border-radius:8px;padding:8px 12px;cursor:pointer}
.radios.cards label:has(input:checked){border-color:var(--accent);background:var(--accent-soft)}
.assist{border:1px solid var(--accent);border-radius:8px;padding:12px 14px;margin:8px 0 12px;background:#fff}
.assist h4{margin:0 0 8px;font-size:14px}
.assist .group{margin:6px 0 10px}
.assist .group b{display:block;font-size:12px;color:var(--muted);margin-bottom:4px}
.assist label.opt{display:inline-flex;align-items:center;gap:6px;margin:2px 10px 2px 0;font-size:13px}
.assist label.opt input{width:auto}
.assist .opt.line{display:flex}
.assist .ans{background:var(--bg);padding:8px 10px;border-radius:6px;white-space:pre-wrap;margin:4px 0}
.chips-row{display:flex;flex-wrap:wrap;gap:6px;align-items:center;font-size:12px;color:var(--muted);margin:0 0 10px}
.chips-row .chip{background:var(--accent-soft);color:var(--accent);padding:1px 8px;border-radius:999px}
#dupHint{margin:0 0 10px}
#dupHint button{margin-left:6px}
.chips-row .chip.auto{background:#eef2ff;color:#3b4cca}

.quick-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(380px,1fr));gap:14px;margin-top:12px}
.quick{max-width:1400px}
.quick-card{border:1px solid var(--line);border-radius:var(--radius);background:var(--bg);padding:12px;display:flex;flex-direction:column;gap:10px}
.quick-card.off{opacity:.72}
.quick-card.drop{outline:2px dashed var(--accent);outline-offset:-3px}
.quick-card label{margin:0}
.quick-card .two{display:grid;grid-template-columns:1fr 1fr;gap:8px 12px;align-items:end}.quick-card .two .check{grid-column:1/-1;margin:0}
.quick-card .meta{font-size:12px;color:var(--muted);display:flex;justify-content:space-between;gap:8px;flex-wrap:wrap}
.quick-card .pics{display:grid;grid-template-columns:repeat(auto-fill,minmax(104px,1fr));gap:8px}
.quick-card .pic{position:relative;border:1px solid var(--line);border-radius:6px;background:var(--panel);aspect-ratio:1;overflow:hidden;padding:0}
.quick-card .pic a{display:flex;align-items:center;justify-content:center;width:100%;height:100%}
.quick-card .pic img{max-width:100%;max-height:100%;display:block}
.quick-card .pic .num{position:absolute;top:4px;left:4px;min-width:20px;height:20px;padding:0 5px;border-radius:999px;background:var(--ink);color:#fff;font-size:12px;line-height:20px;text-align:center;font-variant-numeric:tabular-nums}
.quick-card .pic .tools{position:absolute;left:0;right:0;bottom:0;display:flex;gap:2px;justify-content:center;padding:3px;background:rgba(255,255,255,.92);border-top:1px solid var(--line)}
.quick-card .pic .tools button{padding:0 8px;font-size:13px;line-height:20px;border-radius:5px}
.quick-card .pic .tools button:disabled{opacity:.35;cursor:default}
.quick-card .pic.add{border-style:dashed;color:var(--accent);font-size:13px;cursor:pointer;display:flex;align-items:center;justify-content:center;text-align:center;background:transparent}
.quick-card .acts{display:flex;gap:6px;flex-wrap:wrap;align-items:center}
.quick-card .acts .grow{flex:1}
.quick-card .q-move{padding:4px 9px}

.tag.h-auto{background:#0f6e56}.tag.h-would{background:#e3f1ec;color:#0f6e56}.tag.h-ai{background:#3b4cca}.tag.h-human{background:var(--warn-soft);color:var(--warn)}.tag.h-review{background:#eee;color:var(--muted)}.tag.h-none{background:#eee;color:var(--muted)}
.radios.cards.handling{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr))}
.radios.cards.handling label{align-items:flex-start}
.radios.cards.handling label>span{display:flex;flex-direction:column;gap:2px}
.radios.cards.handling label small{display:block}
.radios.cards label.disabled{opacity:.45;cursor:not-allowed}
.policy{max-width:1100px}
.policy h3{margin-top:22px}
.policy-box{border:1px solid var(--line);border-radius:var(--radius);background:var(--bg);padding:12px 14px 4px;margin:10px 0}
.policy-box .check{font-weight:600;margin-bottom:4px}
.policy-box .hint{margin:0 0 8px}
.policy-box input[type=number]{min-width:90px;width:90px}
.policy .row .grow{flex:1}
.policy #policySearch{max-width:320px}
.policy .row select{width:auto}
.policy .meta{font-size:12px;color:var(--muted);margin-bottom:8px}
#policyTable select{width:auto;min-width:170px}
#policyTable tr.changed td{background:var(--accent-soft)}
#policyLog td:nth-child(2){max-width:360px;overflow-wrap:anywhere}
.decision{padding:6px 10px;margin:0 0 6px;background:var(--bg);border-radius:6px}
