:root{--bg:#f1f5f9;--bg2:#fff;--bg3:#e2e8f0;--ink:#0f172a;--muted:#475569;--rule:#cbd5e1;--accent:#2563eb;--accent2:#7c3aed;--font:'Segoe UI','PingFang SC','Microsoft YaHei',sans-serif}
body.dark{--bg:#070e1a;--bg2:#111827;--bg3:#1e293b;--ink:#f1f5f9;--muted:#94a3b8;--rule:#374151}
*{box-sizing:border-box;margin:0;padding:0}
html{font-size:15px;scroll-behavior:smooth}
body{font-family:var(--font);color:var(--ink);background:var(--bg);line-height:1.5;min-height:100vh;transition:background .3s,color .3s}
a{color:var(--accent);text-decoration:none}
.topbar{display:flex;align-items:center;justify-content:space-between;padding:.6rem 1.2rem;background:var(--bg2);border-bottom:1px solid var(--rule);position:sticky;top:0;z-index:10;flex-wrap:wrap;gap:.5rem}
.topbar h2{font-size:1.1rem;color:var(--accent);margin:0;white-space:nowrap}
.topbar-actions{display:flex;gap:.4rem;align-items:center;flex-wrap:wrap}
.btn{padding:.4rem .9rem;border-radius:8px;border:1px solid var(--rule);background:var(--bg2);color:var(--ink);font-size:.8rem;cursor:pointer;transition:all .15s;white-space:nowrap}
.btn:hover{border-color:var(--accent)}
.btn.primary{background:var(--accent);color:#fff;border-color:var(--accent)}
.btn.primary:hover{opacity:.85}
.btn.danger{color:#dc2626}
.btn.danger:hover{border-color:#dc2626;background:rgba(220,38,38,.05)}
.btn.small{padding:.2rem .5rem;font-size:.72rem}
.tabs{display:flex;gap:0;border-bottom:2px solid var(--rule);background:var(--bg2);padding:0 1.2rem;overflow-x:auto}
.tab{padding:.6rem 1.2rem;cursor:pointer;font-size:.85rem;color:var(--muted);border-bottom:2px solid transparent;margin-bottom:-2px;transition:all .15s;white-space:nowrap}
.tab:hover{color:var(--accent)}
.tab.active{color:var(--accent);border-bottom-color:var(--accent);font-weight:600}
.main{padding:1rem 1.2rem}
.panel{display:none}
.panel.active{display:flex;gap:1rem}
#tab-categories .panel.active,#tab-categories.panel.active{display:flex}
.cat-sidebar{width:200px;min-width:180px;flex-shrink:0;background:var(--bg2);border:1px solid var(--rule);border-radius:10px;overflow:hidden;max-height:calc(100vh - 160px);overflow-y:auto}
.cat-sidebar h4{padding:.6rem .8rem;font-size:.8rem;color:var(--muted);border-bottom:1px solid var(--rule);margin:0}
.cat-item{padding:.5rem .8rem;cursor:pointer;font-size:.82rem;border-bottom:1px solid var(--rule);transition:all .12s;display:flex;justify-content:space-between;align-items:center;gap:.3rem}
.cat-item:hover{background:rgba(37,99,235,.04)}
.cat-item.active{background:rgba(37,99,235,.08);color:var(--accent);font-weight:600}
.cat-item .badge{font-size:.7rem;color:var(--muted)}
.cat-item.custom{font-style:italic}
.cat-item .del-cat{font-size:.7rem;opacity:.4;cursor:pointer;padding:.15rem .3rem}
.cat-item .del-cat:hover{opacity:1;color:#dc2626}
.cat-content{flex:1;min-width:0;background:var(--bg2);border:1px solid var(--rule);border-radius:10px;padding:.8rem;max-height:calc(100vh - 160px);overflow-y:auto}
.cat-content h4{font-size:.9rem;margin-bottom:.6rem;display:flex;align-items:center;gap:.5rem}
.cat-content h4 .count{font-size:.75rem;color:var(--muted);font-weight:400}
.site-table{width:100%;border-collapse:collapse;font-size:.8rem}
.site-table td,.site-table th{padding:.35rem .4rem;text-align:left;border-bottom:1px solid var(--rule)}
.site-table th{font-size:.72rem;color:var(--muted);font-weight:500;position:sticky;top:0;background:var(--bg2);z-index:1}
.site-table input[type=text]{width:100%;padding:.25rem .4rem;border:1px solid var(--rule);border-radius:5px;background:var(--bg);color:var(--ink);font-size:.78rem;outline:0}
.site-table input[type=text]:focus{border-color:var(--accent)}
.site-table input[type=checkbox]{width:16px;height:16px;cursor:pointer;accent-color:var(--accent)}
.site-table select{padding:.2rem .3rem;border:1px solid var(--rule);border-radius:5px;background:var(--bg);color:var(--ink);font-size:.78rem;outline:0}
.col-show{width:42px;text-align:center}
.col-name{width:130px}
.col-url{min-width:160px}
.col-desc{min-width:120px}
.col-icon{width:50px;text-align:center}
.col-color{width:85px}
.col-actions{width:40px;text-align:center}
.site-row.removed{opacity:.35;text-decoration:line-through}
.site-row.added{background:rgba(16,185,129,.04)}
.site-row.added td:first-child{border-left:3px solid #10b981}
.add-site-btn{display:inline-flex;align-items:center;gap:.2rem;margin-top:.5rem}
.color-dot{display:inline-block;width:12px;height:12px;border-radius:3px;margin-right:.2rem;vertical-align:middle}
.card{background:var(--bg2);border:1px solid var(--rule);border-radius:10px;padding:1rem}
.engine-table{width:100%;border-collapse:collapse;font-size:.82rem}
.engine-table td,.engine-table th{padding:.4rem .5rem;text-align:left;border-bottom:1px solid var(--rule)}
.engine-table th{font-size:.72rem;color:var(--muted);font-weight:500}
.engine-table input[type=text]{width:100%;padding:.25rem .4rem;border:1px solid var(--rule);border-radius:5px;background:var(--bg);color:var(--ink);font-size:.78rem;outline:0}
.engine-table input[type=text]:focus{border-color:var(--accent)}
.engine-table input[type=checkbox]{width:16px;height:16px;cursor:pointer;accent-color:var(--accent)}
.settings-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:1rem}
.setting-card{background:var(--bg2);border:1px solid var(--rule);border-radius:10px;padding:.8rem 1rem}
.setting-card h4{font-size:.85rem;color:var(--accent2);margin-bottom:.5rem}
.setting-row{display:flex;gap:.5rem;align-items:center;flex-wrap:wrap}
.chip{padding:.3rem .7rem;border-radius:8px;border:1px solid var(--rule);font-size:.78rem;cursor:pointer;transition:all .15s;background:var(--bg);color:var(--ink)}
.chip:hover{border-color:var(--accent)}
.chip.on{background:rgba(59,130,246,.1);border-color:var(--accent);color:var(--accent);font-weight:600}
.settings-input{padding:.35rem .6rem;border:1px solid var(--rule);border-radius:8px;background:var(--bg);color:var(--ink);font-size:.78rem;outline:0;width:100%}
.settings-input:focus{border-color:var(--accent)}
.setting-label{font-size:.78rem;color:var(--muted);display:flex;align-items:center;gap:.3rem}
.msg{position:fixed;top:1rem;left:50%;transform:translateX(-50%);background:var(--accent);color:#fff;padding:.5rem 1.2rem;border-radius:8px;font-size:.85rem;z-index:100;opacity:0;pointer-events:none;transition:opacity .3s}
.msg.show{opacity:1}
.msg.error{background:#dc2626}
.add-form{margin-top:.8rem;padding:.7rem;border:1px dashed var(--rule);border-radius:8px;background:var(--bg)}
.add-form h5{font-size:.8rem;margin-bottom:.4rem;color:var(--muted)}
.add-form .row{display:flex;gap:.4rem;align-items:center;flex-wrap:wrap;margin-bottom:.3rem}
.add-form .row:last-child{margin-bottom:0}
.add-form input,.add-form select{padding:.25rem .4rem;border:1px solid var(--rule);border-radius:5px;font-size:.78rem;outline:0;background:var(--bg);color:var(--ink)}
.add-form input:focus,.add-form select:focus{border-color:var(--accent)}
.add-form input{flex:1;min-width:100px}
@media(max-width:700px){
#tab-categories .panel.active,#tab-categories.panel.active{flex-direction:column}
.cat-sidebar{width:100%;max-height:200px;display:flex;flex-wrap:wrap;gap:0;overflow-x:auto}
.cat-sidebar h4{display:none}
.cat-item{border-radius:6px;border:1px solid var(--rule);margin:.2rem;font-size:.75rem;padding:.3rem .5rem}
.cat-item .badge{display:none}
.site-table{font-size:.7rem}
.site-table input[type=text]{font-size:.7rem}
}
