:root{font-family:Arial,"Segoe UI",sans-serif;color:#142c35;background:#f2f5f4;font-synthesis:none;--green:#00694f;--red:#b72c3a;--muted:#536b72;--line:#aebfc5}*{box-sizing:border-box}body{margin:0}button,input,select{font:inherit}button{cursor:pointer}button:focus-visible,input:focus-visible,select:focus-visible,[tabindex]:focus-visible{outline:3px solid #178c92;outline-offset:-3px}[hidden]{display:none!important}header{height:49px;background:#102a31;color:white;padding:7px 10px;display:flex;align-items:center;justify-content:space-between}.brand{display:flex;align-items:center;gap:9px}.mark{font-size:29px;font-weight:800;color:#89d9c8}.brand strong{letter-spacing:1px;font-size:19px}.brand small{display:block;font-size:9px;letter-spacing:1px;color:#9ebdbd}.read-only{font-size:10px;background:#204741;color:#aff0da;padding:6px;border-radius:3px}main{padding:0 6px}body.dashboard-open{height:100dvh;overflow:hidden}body.dashboard-open main{height:calc(100dvh - 49px)}#dashboard{height:100%;display:flex;flex-direction:column;min-height:0}.login{max-width:440px;margin:28px auto;padding:16px}.eyebrow{font-size:11px;letter-spacing:1.5px;color:var(--green);font-weight:700}h1{font-size:34px;line-height:1.12;letter-spacing:-1px;margin:18px 0}.login p{line-height:1.6;color:var(--muted)}.login label{display:block;font-size:13px;font-weight:bold;margin:26px 0 8px}.login input{width:100%;padding:14px 12px;border:1px solid #98b0aa;border-radius:5px;background:white;font-size:16px}.primary{padding:11px 16px;border:0;border-radius:4px;background:var(--green);color:white;font-weight:bold}.login .primary{width:100%;margin-top:12px}.fine{font-size:12px}.connection{display:flex;align-items:center;gap:4px;padding:8px 2px;flex-shrink:0}.connection>div{flex:1;min-width:0}.connection b{font-size:11px}.connection small{display:block;font-size:10px;color:var(--muted);margin:3px 0 0 10px}.dot{display:inline-block;width:6px;height:6px;border-radius:50%;background:#9a6c00;margin-right:4px}.dot.fresh{background:#07805f}.quiet,.text-button{background:white;border:1px solid var(--line);border-radius:4px;color:#185d5d;padding:8px;font-size:12px}.text-button{border:0;background:transparent;padding:5px}nav{display:flex;gap:2px;background:#e4ece9;border:1px solid var(--line);padding:2px;flex-shrink:0}nav button{flex:1;background:transparent;border:0;padding:9px 2px;font-weight:bold;font-size:12px;color:#536c6c}nav button.active{background:white;color:#075f55;box-shadow:0 1px 3px #183b3722}.quick-filters{display:grid;grid-template-columns:minmax(0,1fr) 82px;gap:5px;padding-top:7px;flex-shrink:0}.quick-filters input,.quick-filters select,.quick-filters button,.filter-panel select,.filter-panel input{min-width:0;width:100%;border:1px solid var(--line);background:white;border-radius:3px;padding:8px 6px;font-size:12px;color:#24424b}.star-filter[aria-pressed=true]{background:#ffe38a;border-color:#966100;font-weight:800}.filter-panel{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:9px;padding:10px;background:#eaf0ef;border:1px solid var(--line);overflow:auto;max-height:min(36vh,max(65px,calc(100dvh - 310px)));flex-shrink:0}.filter-panel label{font-size:11px;font-weight:700;display:flex;flex-direction:column;gap:4px}.filter-panel small{font-size:10px;font-weight:400;color:var(--muted)}.filter-panel label.check{flex-direction:row;align-items:center;font-size:12px}.filter-panel .check input{width:17px;height:17px;accent-color:var(--green)}.filter-actions{display:flex;gap:7px;grid-column:1/-1}.filter-actions button{flex:1}.table-meta{display:flex;align-items:center;justify-content:space-between;color:var(--muted);font-size:11px;min-height:28px;flex-shrink:0}.view-note{font-size:10px;color:var(--muted);margin:0 1px 5px;line-height:1.3;flex-shrink:0}.table-scroll{overflow:auto;flex:1;min-height:48px;overscroll-behavior:contain;background:white;border:1px solid #7d999e;-webkit-overflow-scrolling:touch}table{border-collapse:separate;border-spacing:0;width:max-content;min-width:100%;font-size:12px;font-variant-numeric:tabular-nums}th,td{border-right:1px solid var(--line);border-bottom:1px solid var(--line);padding:7px 8px;text-align:right;white-space:nowrap;background:white;height:36px}th{position:sticky;top:0;z-index:3;background:#e3edef;text-align:center;font-size:11px;font-weight:700;padding:0}th button{display:block;width:100%;height:100%;min-height:43px;padding:6px 8px;background:transparent;color:#284950;border:0;font-size:11px;font-weight:700}th button small{display:block;font-size:10px;font-weight:600;margin-top:3px}th[aria-sort=ascending],th[aria-sort=descending]{background:#c7e6e1;color:#004c41}.star-cell{position:sticky;left:0;z-index:2;width:38px;min-width:38px;max-width:38px;padding:0;text-align:center}th.star-cell{z-index:5}.stock-cell{position:sticky;left:38px;z-index:2;text-align:left;min-width:112px;max-width:180px;font-weight:600;box-shadow:1px 0 #7d999e}th.stock-cell{z-index:5}.star{display:block;width:100%;min-height:36px;padding:2px 4px;border:0;background:transparent;color:#82681b;font-size:23px;font-weight:900}.star[aria-pressed=true]{color:#784700}tbody tr:nth-child(even) td{background:#f2f6f7}td.price{background:#edf6fc}td.iv{background:#f1eefb}tbody tr:nth-child(even) td.price{background:#e6f0f8}tbody tr:nth-child(even) td.iv{background:#eae6f6}tbody tr.starred td{background:#ffe6a0!important;color:#3e2c05;font-weight:800}tbody tr.starred .stock-cell{box-shadow:inset 3px 0 #a96900,1px 0 #7d999e}tbody tr.focused td{box-shadow:inset 0 2px #284a63,inset 0 -2px #284a63}tbody tr.focused .stock-cell{box-shadow:inset 0 2px #284a63,inset 0 -2px #284a63,1px 0 #7d999e}.positive{color:var(--green)!important;font-weight:800}.negative{color:var(--red)!important;font-weight:800}.net-day{font-size:17px;font-weight:800;letter-spacing:.35px}.status-cell{font-size:10px;color:#785100}.status-cell.live{color:#006b4c}.column-panel{border:1px solid var(--line);background:#fff;padding:9px;max-height:min(32vh,max(65px,calc(100dvh - 310px)));overflow:auto;flex-shrink:0;font-size:12px}.column-panel p{margin:0 0 8px}.column-panel #column-options{display:grid;grid-template-columns:1fr 1fr;gap:8px}.column-panel label{display:flex;gap:5px;align-items:center}.column-panel input{width:16px;height:16px;accent-color:var(--green)}.column-panel button{margin-top:10px}.empty{padding:12px;margin:4px 0;font-size:12px;color:var(--muted);text-align:center}.more{border:1px solid var(--line);background:white;padding:8px;color:var(--green);font-weight:700;flex-shrink:0}footer{padding:5px 0;font-size:9px;color:var(--muted);flex-shrink:0}#login-error,#filter-error{color:var(--red);font-size:12px}#filter-error{margin:4px 0}@media(min-width:760px){.quick-filters{grid-template-columns:minmax(150px,1fr) 95px minmax(220px,1fr) 90px}.filter-panel{grid-template-columns:repeat(5,minmax(0,1fr))}.filter-actions{grid-column:auto}.column-panel #column-options{grid-template-columns:repeat(5,1fr)}main{padding:0 10px}table{font-size:13px}}
/* Per-column styling uses validated CSS properties; data/status highlights stay visible. */
th button{font-family:inherit;font-size:inherit;font-weight:inherit;color:inherit}th button small{font-family:inherit}td.fixed-width{overflow:hidden;text-overflow:ellipsis}th.fixed-width button{white-space:normal;overflow:hidden;overflow-wrap:anywhere}tbody tr.starred td{font-weight:800!important}tbody tr.focused td{outline:1px solid #284a63;outline-offset:-1px}
#column-panel{padding:0;border:1px solid #58747a;border-radius:8px;width:min(520px,calc(100vw - 16px));max-height:calc(100dvh - 16px);color:#142c35;background:#fff;overflow:hidden}#column-panel::backdrop{background:#102a3190}.column-dialog{display:flex;flex-direction:column;max-height:calc(100dvh - 20px)}.column-dialog-heading{padding:13px 14px 9px;border-bottom:1px solid #bccacc;flex-shrink:0}.column-dialog-heading h2{font-size:19px;margin:0 0 4px}.column-dialog-heading span{font-size:12px;color:#526c73}.column-dialog-body{padding:10px 14px;overflow:auto;min-height:0}.column-dialog-body p{font-size:11px;color:#526c73;line-height:1.4;margin:0 0 10px}.column-dialog-body label{display:flex;flex-direction:column;gap:5px;font-size:12px;font-weight:bold}.column-dialog-body input,.column-dialog-body select{border:1px solid #98afb3;border-radius:4px;padding:8px;width:100%;min-width:0;background:#fff;color:#142c35;font-size:16px}.column-grid{display:grid;grid-template-columns:1fr 1fr;gap:13px;margin:14px 0}.column-dialog-body small{font-size:10px;font-weight:400;color:#526c73}.column-dialog-body .column-check{display:flex;flex-direction:row;align-items:center;gap:7px;font-size:12px;font-weight:400}.column-dialog-body input[type=checkbox]{width:18px;height:18px;accent-color:#00694f}.column-dialog-body input[type=color]{height:40px;padding:3px}.column-dialog-body input:disabled{opacity:.4}.column-order{display:flex;align-items:center;justify-content:space-between;gap:5px;margin:10px 0}.column-order span{font-size:11px;text-align:center;color:#526c73}.column-dialog button{padding:9px;border:1px solid #98afb3;border-radius:4px;background:#f3f7f7;color:#164149;font-size:12px}.column-dialog button:disabled{opacity:.4;cursor:default}#column-preview{padding:10px;border:1px solid #98afb3;background:#edf6fc;text-align:center;font-variant-numeric:tabular-nums;font-size:16px}.column-dialog-body p.column-note{margin:8px 0;font-size:10px}.column-resets{display:flex;flex-wrap:wrap;gap:5px}.column-dialog-actions{display:flex;gap:8px;border-top:1px solid #bccacc;padding:10px 14px;flex-shrink:0}.column-dialog-actions button{flex:1;font-weight:bold}.column-dialog-actions button.primary{background:#00694f;color:#fff;border-color:#00694f}

.positive,.negative,.net-day{font-weight:800!important}

/* Complete box grid on every header and data cell, including coloured/starred cells. */
.table-scroll{border-color:#7d8f9d}th,td{border:1px solid #7d8f9d}

/* Setup is a dialog; it never consumes the table's standing height. */
#control-panel{border:1px solid #7d8f9d;border-radius:14px;padding:0;width:min(640px,calc(100vw - 20px));max-height:calc(100dvh - 24px);color:#173746;background:#f8fbfc}
#control-panel::backdrop{background:#102a3177}.control-shell{display:flex;flex-direction:column;max-height:calc(100dvh - 28px)}
.control-heading,.control-footer{display:flex;justify-content:space-between;align-items:center;padding:12px 16px;background:#e8f1f3;flex-shrink:0}.control-heading h2{font-size:19px;margin:0}.control-footer{justify-content:flex-end;border-top:1px solid #b7c8ce}
.control-body{overflow:auto;padding:0 16px 12px;overscroll-behavior:contain}.control-body section{border-top:1px solid #b7c8ce;padding:12px 0}.control-body h3{margin:0 0 10px;font-size:16px}.control-body p{font-size:13px;line-height:1.5;margin:8px 0}.control-body label{display:flex;flex-direction:column;gap:4px;font-size:13px;margin:9px 0}.control-body input{width:100%;min-width:0;box-sizing:border-box}.control-body details{margin-top:12px}.control-body summary{cursor:pointer;padding:8px 0;font-weight:600}.control-buttons{display:flex;flex-wrap:wrap;gap:8px}.atm-grid{display:grid;grid-template-columns:1fr 1fr;gap:0 12px}.control-summary{padding:12px;border:1px solid #b7c8ce;background:white;border-radius:8px}.control-summary p{overflow-wrap:anywhere;white-space:pre-line}#control-message{font-weight:700;color:#075a56;overflow-wrap:anywhere}.stop-button{color:#9b2929;border-color:#c88d8d}.control-body button{min-height:40px}button:disabled{opacity:.5;cursor:wait}
@media(max-width:540px){.connection{flex-wrap:wrap;gap:6px}.connection>div{flex:1 0 100%}.connection>button{flex:1;padding:8px 6px;font-size:13px}.control-heading{padding:10px}.control-body{padding:0 12px 12px}}

.report-link{display:inline-block;padding:10px;margin:4px;border:1px solid #708790;border-radius:6px;color:#087f76}#server-groups{white-space:pre-wrap;font:inherit;font-size:.85rem}#server-alerts{white-space:pre-wrap}
