/* MERIDIAN polish v1 - global UX lift across every tab */
html{scroll-behavior:smooth}
*::selection{background:rgba(181,18,5,.16)}
:focus-visible{outline:2px solid #B0122E;outline-offset:2px;border-radius:4px}
::-webkit-scrollbar{width:11px;height:11px}
::-webkit-scrollbar-track{background:#eef0f3}
::-webkit-scrollbar-thumb{background:#c3c9d2;border-radius:6px;border:2px solid #eef0f3}
::-webkit-scrollbar-thumb:hover{background:#a9b1bd}
table thead th{position:sticky;top:0;z-index:5;background:#fff}
table tbody tr{transition:background .12s ease}
table tbody tr:hover{background:#f7f9fc}
button,.est-btn,a.est-btn,.btn{transition:transform .08s ease,box-shadow .12s ease,background .12s ease,opacity .12s ease}
button:active,.est-btn:active,.btn:active{transform:translateY(1px)}
.tool:hover,.ecard:hover{box-shadow:0 6px 20px rgba(16,24,40,.10)}
button[disabled],.est-btn[disabled]{opacity:.55;cursor:not-allowed}
a{transition:color .1s ease}
@media (prefers-reduced-motion:reduce){*{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important}}
@media print{.sidebar,header{display:none!important}body{display:block!important}}

/* polish v2 - deeper cross-tab consistency */
.est-empty{border:1px dashed #d7dbe2;border-radius:12px;padding:34px 20px;text-align:center;color:#8a8f98}
.est-empty b{display:block;font-size:15px;color:#374151;margin-bottom:4px}
.est-tool:focus-visible,.tool:focus-visible,a.est-tool:focus-visible{outline:2px solid #B0122E;outline-offset:3px}
.est-badge{letter-spacing:.2px}
tbody tr:focus-within{background:#eef4ff}
.sfchip{transition:background .12s ease,color .12s ease}
input,select,textarea{transition:border-color .12s ease,box-shadow .12s ease}
input:focus,select:focus,textarea:focus{box-shadow:0 0 0 3px rgba(181,18,5,.12)}
@keyframes mnpulse{0%{opacity:.55}50%{opacity:1}100%{opacity:.55}}
.mn-loading{animation:mnpulse 1.2s ease-in-out infinite}
.est-hero p{max-width:70ch}
a.est-btn,.est-btn{cursor:pointer}
::placeholder{color:#9aa3af;opacity:.9}

/* polish v3 - table + bulk-bar + chip hardening (grounded in screenshot review) */
.est-panel table,.wrap table{border-collapse:collapse}
tbody tr:nth-child(even){background:#fafbfc}
tbody tr:hover{background:#eef4ff}
td.mono,.mono,span[style*='monospace']{font-variant-numeric:tabular-nums}
thead th{position:sticky;top:0;background:#fff;z-index:2;box-shadow:inset 0 -1px 0 #e6e8ec}
/* sticky bulk bars (ibulkbar + session bulk) get a lift shadow so they read as floating */
[id$='bulkbar'],#ibulkbar{box-shadow:0 8px 26px rgba(16,24,40,.28)}
/* chip active-state contrast: on-chip should clearly win */
.est-chip{transition:background .12s ease,color .12s ease,border-color .12s ease}
.est-chip.on{background:#111827;color:#fff;border-color:#111827}
/* ghost-sm button sizing consistency across tabs */
.est-btn.ghost.sm,.est-btn.get.sm{font-size:12px;line-height:1.1;padding:5px 12px}
.est-btn.ghost.sm:hover{border-color:#B0122E;color:#B0122E}
/* keycode + IP columns align cleanly */
.keycode,code.keycode{font-variant-numeric:tabular-nums;letter-spacing:.3px}
/* empty-state inside panels breathes */
.est-panel .est-empty{margin:6px 0}
/* checkbox hit-area for bulk-select rows */
input[type=checkbox]{width:15px;height:15px;cursor:pointer;accent-color:#B0122E}
@media print{[id$='bulkbar'],#ibulkbar,.est-chip,.filters{display:none!important}}

/* polish v4 - command-center vocabulary + inline-link consistency (grounded in /command + cross-tab link additions) */
.cc-hero p,.card p{max-width:72ch}
.card{transition:box-shadow .14s ease,transform .1s ease}
.card:hover{box-shadow:0 6px 20px rgba(16,24,40,.10)}
.card h3{margin:0 0 8px}
/* command severity pills + any plink */
.pill,.plink{display:inline-block;padding:2px 10px;border-radius:11px;font-size:12px;line-height:1.5}
a.plink,a.pill{text-decoration:none;transition:filter .12s ease}
a.plink:hover,a.pill:hover{filter:brightness(1.07)}
a.plink:focus-visible,a.pill:focus-visible{outline:2px solid #B0122E;outline-offset:2px}
/* .btn / .btn.ghost2 used only on command center - align with estate buttons */
.btn:focus-visible,.btn.ghost2:focus-visible{outline:2px solid #B0122E;outline-offset:2px}
/* inline anchors inside data panels/cards (Export links, device drills) read as links, not raw blue */
.est-panel a:not(.est-btn):not(.est-chip):not(.est-badge),.card a:not(.btn):not(.pill):not(.plink){color:inherit;border-bottom:1px solid rgba(181,18,5,.25);text-decoration:none}
.est-panel a:not(.est-btn):not(.est-chip):not(.est-badge):hover,.card a:not(.btn):not(.pill):not(.plink):hover{border-bottom-color:#B0122E}
/* activity table (command) inherits zebra from v3; keep header legible on the card surface */
.card table th{color:#6b7280;font-size:11px;text-transform:uppercase;letter-spacing:.3px}
/* skeleton shimmer used on discovery load stays subtle */
.mnsk{border-radius:6px}
@media print{.btn,.pill,.plink,.cc-hero .stats{display:none!important}}
