:root{--primary:#4f46e5;--primary-light:#eef2ff;--bg:#fff;--bg-hover:#f4f5f7;--bg-active:#f0f2ff;--border:#e8eaed;--border-light:#f0f1f3;--text:#1f2328;--text2:#667085;--text3:#98a2b3;--danger:#d92d20;--imp:#16a34a;--imp-bg:#ecfdf5;--gold:#f5a623;--radius:6px}*{box-sizing:border-box;margin:0;padding:0}body{background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,PingFang SC,Hiragino Sans GB,Microsoft YaHei,sans-serif;font-size:14px;line-height:1.5;overflow:hidden}#app{flex-direction:column;height:100vh;display:flex}.topbar{border-bottom:1px solid var(--border);flex-shrink:0;align-items:center;gap:10px;height:46px;padding:0 14px;display:flex}.logo{white-space:nowrap;align-items:center;gap:6px;font-size:16px;font-weight:700;display:flex}.logo .emoji{font-size:18px}.sb-toggle{cursor:pointer;background:0 0;border:none;margin-top:-3px;font-size:28px}.search-wrap{flex:1;max-width:380px;position:relative}.search-wrap input{border-radius:var(--radius);background:var(--bg-hover);width:100%;height:32px;color:var(--text);border:1px solid #0000;outline:none;padding:0 28px;font-size:13px;transition:all .15s}.search-wrap input:focus{border-color:var(--primary);background:#fff;box-shadow:0 0 0 3px #4f46e51a}.search-wrap .si{color:var(--text3);pointer-events:none;font-size:13px;position:absolute;top:50%;left:9px;transform:translateY(-50%)}.search-wrap .search-clear{width:22px;height:22px;color:var(--text3);cursor:pointer;background:0 0;border:none;border-radius:4px;justify-content:center;align-items:center;font-size:12px;line-height:1;transition:all .15s;display:flex;position:absolute;top:50%;right:4px;transform:translateY(-50%)}.search-wrap .search-clear:hover{color:var(--text2);background:#0000000f}.actions{gap:15px;margin-left:auto;display:flex}.edit-ic{display:inline-block;transform:scaleX(-1)}.layout{flex:1;display:flex;overflow:hidden}.sidebar{border-right:1px solid var(--border);background:#fbfbfc;flex-direction:column;flex-shrink:0;width:252px;transition:width .2s;display:flex}.sidebar.hide{border-right:none;width:0;overflow:hidden}.sb-head{color:var(--text3);letter-spacing:.3px;-webkit-user-select:none;user-select:none;justify-content:space-between;align-items:center;margin-top:8px;padding:10px 12px 4px;font-size:12px;font-weight:700;display:flex}.sb-head:first-child{margin-top:0}.sb-head .clear-tag{color:var(--primary);cursor:pointer;background:0 0;border:none;padding:0;font-size:10.5px}.sb-list{padding:0 6px 2px;overflow-y:visible}.sb-scroll{flex-direction:column;flex:1;min-height:0;display:flex;overflow-y:auto}.sb-tags-section{flex-direction:column;flex:1;min-height:300px;display:flex}.sb-list.sb-tags{flex:1;min-height:0;overflow-y:auto}.sb-add-group{color:#a1a1aa;text-align:center;cursor:pointer;background:0 0;border:1px dashed #d4d4d8;border-radius:6px;width:calc(100% - 20px);margin:4px 10px 12px;padding:7px 10px;font-size:12px;transition:color .15s,border-color .15s,background .15s;display:block}.sb-add-group:hover{color:var(--primary);background:#4f46e50a;border-color:#4f46e573}.sb-item{cursor:pointer;-webkit-user-select:none;user-select:none;border-radius:5px;align-items:center;gap:6px;height:auto;min-height:30px;margin-bottom:1px;padding:4px 8px;transition:all .1s;display:flex}.sb-item:hover{background:var(--bg-hover)}.sb-item.active{background:var(--bg-active);color:var(--primary);font-weight:600}.sb-item.active.imp{background:var(--imp-bg);color:#15803d}.sb-item .ic{flex-shrink:0;font-size:15px}.sb-item .nm{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;font-size:13px;line-height:1.35;overflow:hidden}.sb-item .ct{color:var(--text3);background:var(--bg-hover);border-radius:8px;flex-shrink:0;padding:0 5px;font-size:11px}.sb-item.active .ct{color:var(--primary);background:#4f46e51f}.sb-item.active.imp .ct{color:#15803d;background:#16a34a26}.sb-item .op{opacity:.3;gap:0;display:flex}.sb-item:hover .op{opacity:1}.sb-item.dragging{opacity:.4}.sb-item.dragOver{border-top:2px solid var(--primary)}.sb-foot{border-top:1px solid var(--border);padding:8px 10px}.sb-stats{color:var(--text3);justify-content:space-between;gap:10px;padding:0 2px;font-size:11px;display:flex}.sb-logout{border-top:1px solid var(--border);margin-top:auto;padding:8px 10px 10px}.main{flex:1;width:100%;max-width:1280px;margin:0 auto;padding:0 16px 40px;overflow-y:auto}.tab-bar{z-index:6;background:#fff;justify-content:space-between;align-items:center;gap:8px;margin-bottom:6px;padding:8px 2px;display:flex;position:sticky;top:0}.tb-left{align-items:center;gap:4px;min-width:0;display:flex}.tab{height:28px;color:var(--text2);cursor:pointer;white-space:nowrap;background:0 0;border:1px solid #0000;border-radius:6px;flex-shrink:0;padding:0 10px;font-family:inherit;font-size:12px;transition:all .12s}.tab:hover{background:var(--bg-hover);color:var(--text)}.tab.active{background:var(--primary-light);color:var(--primary);border-color:var(--primary);font-weight:600}.tab-sep{background:var(--border);flex-shrink:0;width:1px;height:16px;margin:0 4px}.tab-scroll{scrollbar-width:none;flex-shrink:1;gap:4px;padding-bottom:4px;display:flex;overflow-x:auto}.tag-chip{color:var(--primary);background:var(--primary-light);cursor:pointer;-webkit-user-select:none;user-select:none;border:1px solid #dbe1fc;border-radius:12px;align-items:center;gap:4px;padding:2px 9px;font-size:12px;font-weight:600;display:inline-flex}.tag-chip.search-scope{cursor:default}.search-hint{color:var(--text2);margin-top:6px;font-size:12px}.sort-chip{color:var(--text2);border:1px solid var(--border);cursor:pointer;-webkit-user-select:none;user-select:none;background:0 0;border-radius:12px;align-items:center;gap:4px;padding:3px 9px;font-size:12px;font-weight:500;transition:all .15s;display:inline-flex}.sort-chip.active{color:var(--primary);background:var(--primary-light);border-color:var(--primary);font-weight:600}.right{flex-shrink:0;align-items:center;gap:6px;display:flex}.g-block{border-radius:8px;margin-bottom:6px}.g-head{cursor:pointer;-webkit-user-select:none;user-select:none;background:var(--bg-hover);border-radius:5px;align-items:center;gap:6px;height:30px;padding:0 6px;transition:background .15s;display:flex}.g-head:hover{background:#e8eaed}.g-head .fold{color:var(--text3);text-align:center;width:12px;font-size:10px}.g-head .ic{font-size:14px}.g-head .nm{font-size:13px;font-weight:600}.g-head .ct{color:var(--text3);background:var(--bg-hover);border-radius:8px;padding:0 6px;font-size:11px}.g-head .op{opacity:.3;gap:0;margin-left:auto;display:flex}.g-head:hover .op{opacity:1}.rows{border-bottom:1px solid var(--border-light);padding:2px 0}.row{cursor:default;border-radius:6px;align-items:center;gap:8px;min-height:40px;margin-bottom:2px;padding:0 8px;transition:background .15s;display:flex}.row:hover{background:#f0fdf4}.row.r-imp{box-shadow:inset 4px 0 0 var(--imp)}.row .fav{flex-shrink:0;justify-content:center;align-items:center;width:15px;height:15px;font-size:12px;display:flex}.row .fav img{width:14px;height:14px}.row .t{color:var(--text);white-space:nowrap;text-overflow:ellipsis;cursor:pointer;flex-shrink:0;max-width:32%;font-size:14px;overflow:hidden}.row .t:hover{color:var(--primary)}.row .tags{flex-shrink:0;gap:3px;max-width:240px;display:flex;overflow:hidden}.row .tag{color:var(--primary);background:var(--primary-light);cursor:pointer;-webkit-user-select:none;user-select:none;border-radius:8px;flex-shrink:0;padding:1px 6px;font-size:11px;line-height:1.5}.row .tag:hover{background:#e0e7ff}.row .tag.more{color:var(--text3);background:var(--bg-hover);cursor:default}.row .url{min-width:0;color:var(--text3);white-space:nowrap;text-overflow:ellipsis;cursor:pointer;direction:ltr;font-size:12px;transition:color .15s;overflow:hidden}.row .url:hover{color:var(--primary)}.row .desc{min-width:0;color:var(--text2);white-space:nowrap;text-overflow:ellipsis;font-size:12px;overflow:hidden}.row .stars{flex-shrink:0;gap:1px;margin-left:auto;display:flex}.row .stars i{color:#d8dce2;cursor:pointer;font-size:13px;font-style:normal;line-height:1}.row .stars i.on,.row .stars i:hover{color:var(--gold)}.row .op{opacity:0;pointer-events:none;flex-shrink:0;gap:2px;transition:opacity .15s;display:flex}.row:hover .op{opacity:1;pointer-events:auto}.empty{text-align:center;color:var(--text3);padding:60px 0}.empty .e{margin-bottom:8px;font-size:34px}.empty .d{margin-bottom:14px;font-size:12.5px}
