/* 表格视图: view chips, 列设置 window (like Shipthis' column settings). Calm colours: var(--acc), --line, --surface1. */
.tv-bar{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin:0 0 10px}
.tv-chip{display:inline-flex;align-items:center;border:1px solid var(--line,#d9dce6);border-radius:999px;background:var(--surface1,#fff);overflow:hidden}
.tv-chip button{border:0;background:none;padding:5px 12px;font:inherit;color:inherit;cursor:pointer}
.tv-chip.on{border-color:var(--acc,#6c7bff);background:color-mix(in srgb,var(--acc,#6c7bff) 10%,transparent)}
.tv-chip.on>button:first-child{font-weight:600}
.tv-chip .tv-x{padding:5px 9px 5px 2px;opacity:.5}.tv-chip .tv-x:hover{opacity:1}
.tv-cols{margin-left:auto;border:1px solid var(--line,#d9dce6);border-radius:8px;background:var(--surface1,#fff);padding:5px 12px;font:inherit;cursor:pointer}
.tv-err{color:#c0392b;font-size:12px}
.tv-sort{border:0;background:none;padding:0;font:inherit;color:inherit;cursor:pointer;white-space:nowrap}
.tv-sort.on{color:var(--acc,#6c7bff)}
.tv-backdrop{position:fixed;inset:0;background:rgba(15,20,40,.28);z-index:60}
.tv-panel{position:fixed;top:0;right:0;bottom:0;width:min(760px,100vw);background:var(--surface1,#fff);z-index:61;display:flex;flex-direction:column;box-shadow:-8px 0 30px rgba(0,0,0,.18)}
.tv-search{margin:14px 16px 8px;padding:8px 12px;border:1px solid var(--line,#d9dce6);border-radius:8px;font:inherit}
.tv-lists{flex:1;min-height:0;display:grid;grid-template-columns:1fr 1fr;gap:0;border-top:1px solid var(--line,#d9dce6)}
.tv-lists section{overflow:auto;padding:8px 12px}
.tv-lists section+section{border-left:1px solid var(--line,#d9dce6)}
.tv-lists h4{margin:6px 4px 8px;font-size:12px;font-weight:600;opacity:.7}
.tv-lists h4 small{font-weight:400;margin-left:6px}
.tv-lists ol{list-style:none;margin:0;padding:0}
.tv-item{display:flex;align-items:center;gap:6px;padding:6px 6px;border-radius:6px}
.tv-item:hover{background:color-mix(in srgb,var(--acc,#6c7bff) 6%,transparent)}
.tv-item[draggable=true]{cursor:grab}
.tv-grip{opacity:.4;letter-spacing:-2px}
.tv-name{flex:1;min-width:0}
.tv-name small{display:block;opacity:.6}
.tv-item button{border:0;background:none;cursor:pointer;font:inherit;padding:2px 6px;border-radius:4px;opacity:.65}
.tv-item button:hover{opacity:1;background:var(--line,#eef0f5)}
.tv-fixed{opacity:.35;padding:2px 6px}
.tv-rename{flex:1;min-width:0;padding:4px 8px;border:1px solid var(--acc,#6c7bff);border-radius:6px;font:inherit}
.tv-none{opacity:.4;padding:6px}
.tv-panel footer{border-top:1px solid var(--line,#d9dce6);padding:12px 16px;display:grid;gap:10px}
.tv-panel footer label{display:grid;gap:4px;font-size:12px}
.tv-panel footer input{padding:7px 10px;border:1px solid var(--line,#d9dce6);border-radius:8px;font:inherit}
.tv-buttons{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.tv-buttons button{border:1px solid var(--line,#d9dce6);background:var(--surface1,#fff);border-radius:8px;padding:6px 12px;font:inherit;cursor:pointer}
.tv-gap{flex:1}
.tv-buttons .tv-primary{background:var(--acc,#6c7bff);border-color:var(--acc,#6c7bff);color:#fff;box-shadow:0 0 0 3px color-mix(in srgb,var(--acc,#6c7bff) 25%,transparent)}
@media (max-width:640px){.tv-lists{grid-template-columns:1fr}.tv-lists section+section{border-left:0;border-top:1px solid var(--line,#d9dce6)}}
