/* HolonTable v1 styles — sort/reorder/filter chrome. Uses the admin --dd-* tokens. */
.ht-bar{display:flex;align-items:center;gap:6px;flex-wrap:wrap;padding:6px 10px;background:var(--dd-panel2);border-bottom:1px solid var(--dd-line);font-size:12px}
.ht-btn{border:1px solid var(--dd-line);background:var(--dd-panel);color:var(--dd-dim);font-size:11.5px;font-weight:700;padding:4px 10px;border-radius:7px;cursor:pointer;font-family:inherit;white-space:nowrap}
.ht-btn:hover{color:var(--dd-ink);border-color:var(--dd-blue)}
.ht-btn.on{background:var(--dd-blue);border-color:var(--dd-blue);color:#fff}
.ht-reset{margin-left:auto}
.ht-count{font-size:11.5px;color:var(--dd-dim);white-space:nowrap}
.ht-menu-wrap{position:relative;display:inline-block}
.ht-menu{position:absolute;top:calc(100% + 4px);left:0;z-index:40;min-width:200px;max-height:320px;overflow:auto;background:var(--dd-panel);border:1px solid var(--dd-line);border-radius:9px;box-shadow:0 8px 24px rgba(13,31,60,.16);padding:6px}
.ht-menu-it{display:flex;align-items:center;gap:8px;padding:6px 8px;border-radius:6px;font-size:12.5px;color:var(--dd-ink);cursor:pointer;white-space:nowrap}
.ht-menu-it:hover{background:var(--dd-panel2)}
.ht-menu-it input{accent-color:var(--dd-blue);width:14px;height:14px}
table.ht-on th.ht-th{cursor:pointer;user-select:none;position:relative}
table.ht-on th.ht-th:hover{color:var(--dd-ink)}
table.ht-on th.ht-th .ht-ic{display:inline-block;margin-left:5px;font-size:9px;opacity:.9;color:var(--dd-blue)}
table.ht-on th.ht-sorted{color:var(--dd-blue)}
table.ht-on th.ht-drag{opacity:.45}
table.ht-on th.ht-over{box-shadow:inset 3px 0 0 var(--dd-blue)}
table.ht-on th.ht-lock{cursor:default}
.ht-frow th{padding:4px 8px;background:var(--dd-panel);border-bottom:1px solid var(--dd-line)}
.ht-finp{width:100%;box-sizing:border-box;font:inherit;font-size:11.5px;padding:4px 7px;border:1px solid var(--dd-line);border-radius:6px;background:var(--dd-panel);color:var(--dd-ink);min-width:0}
.ht-finp:focus{outline:none;border-color:var(--dd-blue);box-shadow:0 0 0 2px rgba(91,141,255,.16)}

/* framed container: toolbar + table share one border, like the course picker */
.ht-frame{border:1px solid var(--dd-line);border-radius:10px;overflow:visible;background:var(--dd-panel);box-shadow:0 1px 3px rgba(15,23,42,.05)}.ht-bar{border-top-left-radius:10px;border-top-right-radius:10px}.ht-scroll{overflow-x:auto;overflow-y:visible;border-bottom-left-radius:10px;border-bottom-right-radius:10px}
.ht-frame>table{border:0!important;border-radius:0!important;box-shadow:none!important}
.ht-frame>table tr:last-child td{border-bottom:none}

/* column dividers — match the course picker grid (border-left on every cell but the first) */
table.ht-on>thead>tr>th+th,table.ht-on>tbody>tr>td+td,table.ht-on>tbody>tr>th+th{border-left:1px solid var(--dd-line,#e2e8f0)}
table.ht-on>tbody>tr.cu-band>td,table.ht-on>tbody>tr.cu-peek-tr>td,table.ht-on>tbody>tr.ht-peek>td{border-left:0}

/* Excel-style value filter */
.ht-th{ position:relative; }
.ht-funnel{ display:inline-flex; align-items:center; justify-content:center; margin-left:6px; width:18px; height:18px; padding:0; border:1px solid var(--dd-line,#d7dee9); border-radius:4px; background:#fff; color:#5a6473; font-size:10px; line-height:1; cursor:pointer; opacity:1; vertical-align:middle; box-shadow:0 1px 1px rgba(15,23,42,.05); }
.ht-funnel:hover{ border-color:var(--dd-blue,#2563eb); color:var(--dd-blue,#2563eb); background:rgba(37,99,235,.06); }
.ht-th:hover .ht-funnel{ opacity:1; }
.ht-funnel.on{ opacity:1; color:#fff; background:var(--dd-blue,#2563eb); border-color:var(--dd-blue,#2563eb); font-weight:700; }
.ht-vpop{ position:absolute; z-index:9999; min-width:220px; max-width:320px; background:var(--dd-card,#fff); color:var(--dd-ink,#1f2937); border:1px solid var(--dd-line,#e5e7eb); border-radius:8px; box-shadow:0 8px 28px rgba(0,0,0,.18); font-size:13px; }
.ht-vpop-h{ padding:8px 10px 6px; border-bottom:1px solid var(--dd-line,#eef1f5); }
.ht-vpop-s{ width:100%; box-sizing:border-box; padding:5px 8px; border:1px solid var(--dd-line,#e5e7eb); border-radius:6px; font-size:12.5px; }
.ht-vpop-tools{ margin-top:6px; font-size:11.5px; color:var(--dd-dim,#6b7280); }
.ht-vpop-tools a{ color:var(--dd-blue,#2563eb); text-decoration:none; }
.ht-vpop-l{ max-height:260px; overflow:auto; padding:4px 2px; }
.ht-vpop-it{ display:flex; align-items:center; gap:7px; padding:4px 10px; cursor:pointer; white-space:nowrap; }
.ht-vpop-it:hover{ background:var(--dd-hover,#f3f4f6); }
.ht-vpop-it span{ overflow:hidden; text-overflow:ellipsis; }
.ht-vpop-f{ display:flex; gap:8px; justify-content:flex-end; padding:8px 10px; border-top:1px solid var(--dd-line,#eef1f5); }

/* Excel-style per-column filter button (replaces the plain text filter input) */
.ht-funnel{ opacity:.85; }  /* always visible, not hover-only */
.ht-fbtn{ display:inline-flex; align-items:center; gap:5px; width:100%; box-sizing:border-box; justify-content:space-between; padding:5px 9px; border:1px solid var(--dd-line,#e5e7eb); border-radius:7px; background:var(--dd-card,#fff); color:var(--dd-dim,#64748b); font-size:12px; font-family:inherit; cursor:pointer; white-space:nowrap; }
.ht-fbtn:hover{ border-color:var(--dd-blue,#2563eb); color:var(--dd-ink,#1f2937); }
.ht-fbtn span{ overflow:hidden; text-overflow:ellipsis; }
.ht-fbtn.on{ border-color:var(--dd-blue,#2563eb); background:rgba(37,99,235,.06); color:var(--dd-blue,#2563eb); font-weight:700; }
/* v8: column resize grips */
table.ht-on th.ht-rzhost{position:relative}
.ht-rz{position:absolute;top:0;right:-4px;width:9px;height:100%;cursor:col-resize;z-index:3;user-select:none}
.ht-rz:hover,.ht-rz:active{background:rgba(37,99,235,.28);border-radius:2px}
