body {
    background: #181818;
    color: #f4f4f4;
    font-family: Arial, sans-serif;
}
table:not(.sched-table) {
    width: 90%;
    margin: 20px auto;
    background: #222;
}
table:not(.sched-table) th, table:not(.sched-table) td {
    padding: 8px;
    text-align: center;
    background: #222;
}
button {
    background: #444;
    color: #fff;
    border: none;
    padding: 5px 15px;
    border-radius: 4px;
}
#logView {
    width: 90%;
    margin: 0 auto;
}
body {
    background: #181818;
    color: #f4f4f4;
    font-family: Arial, sans-serif;
}
.system-stats {
    margin: 10px 0;
    font-size: 1.1em;
}
.world-group {
    background: #242424;
    border-radius: 16px;
    margin: 24px auto;
    width: 94%;
    box-shadow: 0 4px 12px #0005;
    padding: 10px 0 20px 0;
}
.world-group h2 {
    text-align: center;
    margin-top: 10px;
    margin-bottom: 20px;
    color: #90f0a0;
}
.servers-container {
    display: flex;
    flex-wrap: wrap;
    gap: 16px;
    justify-content: center;
}
.server-card {
    background: #232a2f;
    border-radius: 12px;
    box-shadow: 0 2px 8px #0007;
    padding: 18px;
    margin: 10px;
    min-width: 250px;
    max-width: 340px;
    flex: 1 1 320px;
}
.server-card h3 {
    margin: 0 0 10px 0;
    color: #fffdd0;
}
.status {
    color: #4cf553;
    font-weight: bold;
}
button {
    background: #444;
    color: #fff;
    border: none;
    padding: 7px 18px;
    border-radius: 6px;
    margin: 5px 0;
    cursor: pointer;
    font-size: 1em;
}
button:hover {
    background: #55a;
}
.mini-console {
    background: #111;
    color: #c1f3c1;
    font-family: monospace;
    border-radius: 8px;
    padding: 8px;
    margin-top: 10px;
    min-height: 70px;
    max-height: 140px;
    overflow-y: auto;
    font-size: 0.92em;
}
.modal {
    display: none; 
    position: fixed;
    z-index: 9999;
    left: 0;
    top: 0;
    width: 100vw;
    height: 100vh;
    overflow: auto;
    background: rgba(0,0,0,0.8);
}
.modal-content {
    background: #232a2f;
    margin: 5% auto;
    padding: 20px;
    border-radius: 14px;
    width: 70%;
    max-width: 800px;
    color: #cff;
}
.close {
    color: #fff;
    float: right;
    font-size: 1.5em;
    font-weight: bold;
    cursor: pointer;
}
.mini-console {
    background-color: #000;
    color: #0f0;
    font-family: monospace;
    font-size: 12px;
    height: 120px;
    overflow-y: auto;
    border: 1px solid #444;
    padding: 5px;
    margin-top: 8px;
    white-space: pre-line;
}

.modal-content pre {
    background-color: #000;
    color: #0f0;
    font-family: monospace;
    font-size: 13px;
    padding: 10px;
    max-height: 80vh;
    overflow-y: auto;
    border: 1px solid #333;
}

.status {
    font-weight: bold;
    padding: 2px 6px;
    border-radius: 4px;
}
.status.Running {
    background-color: #0a0;
    color: white;
}
.status.Stopped {
    background-color: #a00;
    color: white;
}

button {
    margin: 5px 2px;
    padding: 6px 10px;
    cursor: pointer;
}
.command-bar {
    margin-top: 5px;
    display: flex;
    gap: 6px;
}
.command-bar input {
    flex: 1;
    padding: 4px;
    font-family: monospace;
}
.command-bar button {
    padding: 4px 8px;
    font-weight: bold;
}
.status {
    padding: 3px 12px;
    border-radius: 12px;
    font-weight: bold;
    color: white;
    display: inline-block;
    min-width: 75px;
    text-align: center;
}

.status.Running {
    background: #2ecc40;  /* Green */
}

.status.Stopped {
    background: #ff4136;  /* Red */
}

.status.Starting {
    background: #ffb800;  /* Orange/Yellow */
    color: #222;
}

.status.Stopping {
    background: #0074d9;  /* Blue */
}

/* ===== Moved from inline <style> in dashboard.html ===== */
#session-drawer {
  position: fixed; top: 60px; right: -400px; width: 350px;
  height: calc(100% - 80px); background: rgba(0,0,0,.5); backdrop-filter: blur(10px);
  border-left: 1px solid rgba(255,255,255,.2); padding: 8px; overflow: auto; resize: both;
  transition: right .3s ease; z-index: 1000; color: #eee; font-size: .85em;
}
#session-drawer.open { right: 0; }
#session-drawer h4 { margin: 0 0 8px; font-size: 1em; text-align: center; }
#session-drawer table { width: 100%; border-collapse: collapse; }
#session-drawer th, #session-drawer td {
  border-bottom: 1px solid rgba(255,255,255,.2); padding: 4px 6px; text-align: left;
}
#session-tab {
  position: fixed; top: 120px; right: 0; width: 32px; height: 80px;
  background: rgba(0,0,0,.7); backdrop-filter: blur(10px);
  border: 1px solid rgba(255,255,255,.2); border-right: none; border-radius: 4px 0 0 4px;
  display: flex; align-items: center; justify-content: center; color: #fff; cursor: pointer;
  z-index: 1001; writing-mode: vertical-rl; text-orientation: mixed; font-size: .8em; user-select: none;
}

/* ===== Small utilities replacing inline styles ===== */
.top-actions { float: right; }
.mr-8 { margin-right: 8px; }
.inline { display: inline; }
#settingsTextarea { width: 100%; height: 400px; font-family: monospace; }
.error { color: #f55; }

/* Top-right guidebook/logout bar */
.top-actions {
  float: right;
  display: flex;
  align-items: center;
  gap: 8px;
}

/* Active Sessions drawer */
#session-drawer {
  position: fixed;
  top: 60px;
  right: -400px;
  width: 350px;
  height: calc(100% - 80px);
  background: rgba(0,0,0,0.5);
  backdrop-filter: blur(10px);
  border-left: 1px solid rgba(255,255,255,0.2);
  padding: 8px;
  overflow: auto;
  resize: both;
  transition: right 0.3s ease;
  z-index: 1000;
  color: #eee;
  font-size: 0.85em;
}
#session-drawer.open {
  right: 0;
}
#session-drawer h4 {
  margin: 0 0 8px;
  font-size: 1em;
  text-align: center;
}
#session-drawer table {
  width: 100%;
  border-collapse: collapse;
}
#session-drawer th,
#session-drawer td {
  border-bottom: 1px solid rgba(255,255,255,0.2);
  padding: 4px 6px;
  text-align: left;
}

/* Sessions tab toggle button */
#session-tab {
  position: fixed;
  top: 120px;
  right: 0;
  width: 32px;
  height: 80px;
  background: rgba(0,0,0,0.7);
  backdrop-filter: blur(10px);
  border: 1px solid rgba(255,255,255,0.2);
  border-right: none;
  border-radius: 4px 0 0 4px;
  display: flex;
  align-items: center;
  justify-content: center;
  color: #fff;
  cursor: pointer;
  z-index: 1001;
  writing-mode: vertical-rl;
  text-orientation: mixed;
  font-size: 0.8em;
  user-select: none;
}

/* --- Fix header layout & drawer alignment --- */

/* Make room for a fixed header row */
body {
  padding-top: 72px; /* header height (48) + a bit of breathing room */
}

/* Fix the top-right action bar in place */
.top-actions {
  position: fixed;
  top: 12px;
  right: 12px;
  z-index: 1200;
  display: flex;
  align-items: center;
  gap: 8px;
}

/* Keep the page title from colliding with the header */
h1 {
  margin-top: 0;
  text-align: center;
}

/* Align the sessions drawer with the fixed header height */
#session-drawer {
  top: 60px; /* matches your old inline styles */
}

/* Sessions tab should align with the drawer top */
#session-tab {
  top: 120px; /* drawer top + a bit so it sits below header */
}

/* Ensure log text wraps nicely when ANSI -> HTML inserts spans */
.mini-console {
  white-space: pre-wrap; /* keeps newlines and doesn’t overflow */
  word-break: break-word;
}

/* Give servers-container some spacing below the fixed header on narrow screens */
.servers-container {
  margin-top: 4px;
}
/* === Hard fix: pin header, hide drawer by default, align tab === */

/* Make space for a fixed header bar */
body { padding-top: 72px !important; }

/* Fix the top-right action bar in place */
.top-actions {
  position: fixed !important;
  top: 12px !important;
  right: 12px !important;
  z-index: 1200 !important;
  display: flex !important;
  align-items: center !important;
  gap: 8px !important;
}

/* Sessions drawer: off-screen by default, fixed and glassy */
#session-drawer {
  position: fixed !important;
  top: 60px !important;           /* sit under header */
  right: -400px !important;       /* hidden by default */
  width: 350px !important;
  height: calc(100% - 80px) !important;
  background: rgba(0,0,0,0.5) !important;
  backdrop-filter: blur(10px) !important;
  border-left: 1px solid rgba(255,255,255,0.2) !important;
  padding: 8px !important;
  overflow: auto !important;
  resize: both !important;
  transition: right 0.3s ease !important;
  z-index: 1000 !important;
  color: #eee !important;
  font-size: 0.85em !important;
}
/* Slide in when JS toggles .open */
#session-drawer.open { right: 0 !important; }

/* Keep the tab aligned with the drawer and fixed on the edge */
#session-tab {
  position: fixed !important;
  top: 120px !important;
  right: 0 !important;
  width: 32px !important;
  height: 80px !important;
  background: rgba(0,0,0,0.7) !important;
  backdrop-filter: blur(10px) !important;
  border: 1px solid rgba(255,255,255,0.2) !important;
  border-right: none !important;
  border-radius: 4px 0 0 4px !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  color: #fff !important;
  cursor: pointer !important;
  z-index: 1001 !important;
  writing-mode: vertical-rl !important;
  text-orientation: mixed !important;
  font-size: 0.8em !important;
  user-select: none !important;
}

/* Let the H1 sit cleanly under the fixed header */
h1 { margin-top: 0 !important; }

/* Ensure the mini consoles wrap ANSI→HTML spans without overflow */
.mini-console { white-space: pre-wrap !important; word-break: break-word !important; }

/* === Dashboard header & sessions drawer — authoritative rules === */
:root { --hm-build: "2025-08-13-a"; } /* sanity flag so you know you have the new CSS */

body { padding-top: 72px; } /* room for fixed header */

.top-actions {
  position: fixed;
  top: 12px;
  right: 12px;
  z-index: 1200;
  display: flex;
  align-items: center;
  gap: 8px;
}

#session-drawer {
  position: fixed;
  top: 60px;                 /* below header */
  right: -400px;             /* hidden by default */
  width: 350px;
  height: calc(100% - 80px);
  background: rgba(0,0,0,0.5);
  backdrop-filter: blur(10px);
  border-left: 1px solid rgba(255,255,255,0.2);
  padding: 8px;
  overflow: auto;
  resize: both;
  transition: right .3s ease;
  z-index: 1000;
  color: #eee;
  font-size: .85em;
}
#session-drawer.open { right: 0; }

#session-tab {
  position: fixed;
  top: 120px;                /* aligned with drawer */
  right: 0;
  width: 32px;
  height: 80px;
  background: rgba(0,0,0,0.7);
  backdrop-filter: blur(10px);
  border: 1px solid rgba(255,255,255,0.2);
  border-right: none;
  border-radius: 4px 0 0 4px;
  display: flex;
  align-items: center;
  justify-content: center;
  color: #fff;
  cursor: pointer;
  z-index: 1001;
  writing-mode: vertical-rl;
  text-orientation: mixed;
  font-size: .8em;
  user-select: none;
}

/* keep the title tidy under the fixed header */
h1 { margin-top: 0; }

/* log wrap safety for ANSI→HTML */
.mini-console { white-space: pre-wrap; word-break: break-word; }

/* === Scheduling page === */
.sched-wrap { width: 96%; margin: 10px auto; }

.sched-toolbar {
  display: flex;
  gap: 8px;
  justify-content: flex-end;
  margin-bottom: 8px;
}

/* Keep these scoped so they override your global table/th/td rules */
.sched-table {
  width: 100%;
  border-collapse: collapse;
  background: #1f1f1f;
}

.sched-table th,
.sched-table td {
  border: 1px solid #333;
  padding: 6px;
  min-width: 120px;
  text-align: left;
}

.sched-table th {
  background: #263238;
  color: #cfe;
  position: sticky;
  top: 0;
}

.sched-table td[contenteditable="true"] {
  background: #111;
}


/* === Scheduler: selection, editing, and pointer-based DnD === */

/* Selection visuals */
.sched-table th.is-col-selected,
.sched-table td.is-col-selected {
  background: #103618;
  outline: 2px solid #5bd37a;
  outline-offset: -2px;
}

.sched-table tr.is-row-selected > th,
.sched-table tr.is-row-selected > td {
  background: #103618;
  outline: 2px solid #5bd37a;
  outline-offset: -2px;
}

/* Insert indicators while dragging */
.sched-table th.dnd-col-target-left  { box-shadow: inset 3px 0 0 0 #5bd37a; }
.sched-table th.dnd-col-target-right { box-shadow: inset -3px 0 0 0 #5bd37a; }
.sched-table tr.dnd-row-target-top   { box-shadow: inset 0 3px 0 0 #5bd37a; }
.sched-table tr.dnd-row-target-bot   { box-shadow: inset 0 -3px 0 0 #5bd37a; }

/* Drag handles */
.sched-table th .drag-handle,
.sched-table .row-handle {
  display: inline-block;
  cursor: grab;
  user-select: none;
  padding: 0 6px;
  opacity: 0.8;
}
.sched-table th .drag-handle:active,
.sched-table .row-handle:active { cursor: grabbing; }

/* While dragging, prevent accidental selection */
body.no-select, .sched-table.no-select * { user-select: none !important; }

/* Headers stay visible */
.sched-table th { position: sticky; top: 0; z-index: 2; }

/* Cells only become editable in "edit mode" */
.sched-table td[contenteditable="true"],
.sched-table th[contenteditable="true"] {
  background: #111;
  caret-color: #cfe;
}

/* === Scheduler: import/preview mode === */
.sched-toolbar input[type="file"] { max-width: 320px; }
.sched-table td, .sched-table th { user-select: text; }
.sched-status-ok { color: #8bc34a; }
.sched-status-err { color: #ef5350; }

/* === Scheduler blue selection theme (overrides) === */
.sched-table th.is-col-selected,
.sched-table td.is-col-selected,
.sched-table tr.is-row-selected > th,
.sched-table tr.is-row-selected > td {
  background: #0d2a4d !important;     /* deep blue fill */
  outline: 2px solid #4da3ff !important; /* bright blue edge */
  outline-offset: -2px !important;
}

/* Drag insert cues in blue */
.sched-table th.dnd-col-target-left  { box-shadow: inset 3px 0 0 0 #4da3ff !important; }
.sched-table th.dnd-col-target-right { box-shadow: inset -3px 0 0 0 #4da3ff !important; }
.sched-table tr.dnd-row-target-top   { box-shadow: inset 0 3px 0 0 #4da3ff !important; }
.sched-table tr.dnd-row-target-bot   { box-shadow: inset 0 -3px 0 0 #4da3ff !important; }

/* Strong blue highlight for column/row/cell selections */
.sched-table th.is-col-selected,
.sched-table td.is-col-selected,
.sched-table tr.is-row-selected > th,
.sched-table tr.is-row-selected > td {
  background: #0d2a4d !important;
  outline: 2px solid #4da3ff !important;
  outline-offset: -2px !important;
}

/* Optional: pop the *single* selected cell too */
.sched-table td.is-cell-selected {
  box-shadow: inset 0 0 0 2px #4da3ff !important;
}

/* Clearer drag insert cues (blue) */
.sched-table th.dnd-col-target-left  { box-shadow: inset 3px 0 0 0 #4da3ff !important; }
.sched-table th.dnd-col-target-right { box-shadow: inset -3px 0 0 0 #4da3ff !important; }
.sched-table tr.dnd-row-target-top   { box-shadow: inset 0 3px 0 0 #4da3ff !important; }
.sched-table tr.dnd-row-target-bot   { box-shadow: inset 0 -3px 0 0 #4da3ff !important; }

/* Tabulator selection blue theme (rows & cells) */
.tabulator .tabulator-row.tabulator-selected { background:#0d2a4d !important; color:#fff !important; }
.tabulator .tabulator-cell.tabulator-selected { background:#123a6d !important; color:#fff !important; }

/* column band highlight (we add/remove .col-selected on cells in JS) */
.tabulator .tabulator-cell.col-selected { background:#0d2a4d !important; color:#fff !important; }

/* focal cell outline */
.tabulator .tabulator-cell.cell-selected { box-shadow: inset 0 0 0 2px #4da3ff !important; }
.grid-70vh { height: 70vh; }

.grid-80vh { height: 80vh; }
#calendar { height: 100%; }

/* simple table look for triage */
#unparsed { width: 100%; border-collapse: collapse; }
#unparsed th, #unparsed td { border: 1px solid #333; padding: 6px; }

/* === Calendar page (dashboard) === */
.toolbar { display:flex; gap:.5rem; align-items:center; flex-wrap:wrap; margin:.5rem 0; }
.toolbar .group { display:flex; gap:.5rem; align-items:center; flex-wrap:wrap; }
.view-wrap { display:grid; grid-template-columns:1fr; gap:1rem; }
#calendar { min-height:70vh; }
#grid { height:70vh; }
.hidden { display:none; }
.map-label { font-size:.85rem; opacity:.8; }
select, button, input[type="file"] { padding:.4rem .6rem; border-radius:8px; border:1px solid #ccc; }
.status { font-size:.9rem; opacity:.8; margin-left:.5rem; }
.status.ok { color:#0a7f2e; }
.status.err { color:#9c2a10; }
.pill { padding:.25rem .5rem; border:1px solid #ccc; border-radius:999px; }

/* Optional: keep calendar grid heights consistent with your theme */
.grid-70vh { height:70vh; }
.grid-80vh { height:80vh; }


/* ===== Whitelist modal UI ===== */
.wl-row { display:flex; gap:.5rem; align-items:center; margin:.5rem 0; flex-wrap:wrap; }
.wl-row input[type="text"] { padding:.45rem .6rem; border-radius:8px; border:1px solid #333; background:#111; color:#cfe; }
.wl-section { border-top:1px solid #334; margin-top:.75rem; padding-top:.75rem; }
.wl-label { min-width:180px; opacity:.85; }
.wl-switch input { margin-right:.4rem; }
.wl-notice { background:#102a10; border:1px solid #1f6f2a; color:#bff0c9; padding:.5rem .75rem; border-radius:8px; }
.wl-notice.warn { background:#2a1b10; border-color:#7f4a1f; color:#ffd6b8; }
.wl-notice.info { background:#101f2a; border-color:#1f4a7f; color:#c8e3ff; }
.wl-notice.hidden { display:none; }

.wl-list-wrap { margin-top: 1rem; border-top:1px solid #334; padding-top:.5rem; }
.wl-list-head, .wl-row-item {
  display:grid; grid-template-columns: 1.2fr 2.8fr auto; gap:.5rem;
  align-items:center; padding:.4rem .3rem;
}
.wl-list-head { font-weight:600; opacity:.8; }
.wl-row-item { background:#1a1f24; border:1px solid #2b3640; border-radius:8px; }
.wl-row-item .name { font-weight:600; color:#fff; }
.wl-row-item .uuid { font-family: monospace; font-size:.92em; color:#cfe; overflow:auto; }
.wl-row-item button { padding:.35rem .6rem; }

.pill { padding:.25rem .6rem; border-radius:999px; border:1px solid #445; font-size:.85em; }
.pill.online { background:#0e2a10; border-color:#2e7d32; color:#b9f6ca; }
.pill.offline { background:#2a1a10; border-color:#a75f2c; color:#ffd7ba; }
button.secondary { background:#333; }

/* Whitelist list: add avatar column */
.wl-list-head, .wl-row-item {
  /* change from 3 to 4 columns: avatar | name | uuid | action */
  grid-template-columns: auto auto 1fr auto;
}

.wl-row-item .avatar {
  display:flex; align-items:center; justify-content:center;
}
.wl-row-item .avatar img {
  width:28px; height:28px; border-radius:6px; display:block;
  image-rendering: pixelated;
  border:1px solid #2b3640;
  background:#0e1318;
}
.pill.active   { box-shadow: 0 0 0 1px currentColor inset; }
.pill.dimmed   { opacity: .45; }
.flash { margin:8px 0; padding:8px 10px; border-radius:6px; font-size:0.95rem; }
.flash.ok { background:#0e1a12; color:#b7ffd1; border:1px solid #1e3b2a; }
.flash.err{ background:#1a0e0e; color:#ffb7b7; border:1px solid #3b1e1e; }

.pill.ok   { background:#103618; border-color:#5bd37a; color:#b7ffd1; }
.pill.warn { background:#2a1b10; border-color:#d28b2c; color:#ffd7ba; }
.pill.bad  { background:#2a1010; border-color:#d23c3c; color:#ffb7b7; }


/* === Automation Manager === */
.modal-content.wide { max-width: 980px; width: 80%; }
.auto-row { display:flex; align-items:center; gap:12px; margin:10px 0; flex-wrap: wrap; }
.auto-row label { opacity:.9; }
.auto-pane { padding:8px 10px; background:#1a1f24; border:1px solid #2b3640; border-radius:8px; margin-bottom:10px; }

.progress { width:240px; height:10px; background:#111; border:1px solid #333; border-radius:8px; overflow:hidden; display:inline-block; vertical-align:middle; }
.progress .bar { height:100%; background:#4a8; width:0%; transition: width .2s ease; }

.scrollbox { max-height:180px; overflow:auto; background:#0e1318; border:1px solid #2b3640; border-radius:8px; padding:8px; min-width:260px; }
.plan-box { background:#000; color:#0f0; max-height:40vh; overflow:auto; border:1px solid #333; padding:10px; }

#autoTargets { display:grid; gap:6px; grid-template-columns: repeat(auto-fill,minmax(220px,1fr)); width:100%; }
#autoTargets .target { background:#141a1f; border:1px solid #2b3640; border-radius:8px; padding:8px; }
#autoTargets .target h4 { margin:0 0 6px 0; font-size:.95rem; color:#cfe; }
#autoTargets .target label { display:block; font-size:.9rem; }

.muted { opacity:.7; font-size:.9rem; }
button.danger { background:#742a2a; }
/* Give the "Update:" row a specific id/class */
#autoPlanKindRow {
  order: 3; /* or whatever comes right after the copy-folder row */
}
.server-title[contenteditable="true"] { outline: 2px dashed rgba(255,255,255,.3); }
.card-top { display:flex; align-items:center; justify-content:flex-start; gap:8px; }
.coach-toggle { font-size:.9rem; opacity:.85; }
.toggle-autopilot-btn.is-on { border-color: #2ecc71; box-shadow: 0 0 0 2px rgba(46,204,113,.25); }

/* hide the "Manage" buttons and the embedded file manager auto-pane */
button.manage-btn, button.manage-btn * { display: none !important; }
#automationModal #efmPane { display: none !important; }
/* Also hide the per-world "World / Server files" detail if present */
#autoDetail, #autoFM, #autoBrowseResults { display: none !important; }


.target label > button.secondary { display: none !important; }

/* === JVM Config modal (works for <dialog> OR .modal markup) === */
#jvm-config-dialog,
dialog#jvm-config-dialog {
  background: #232a2f;
  color: #cfe;
  border: 1px solid #2b3640;
  border-radius: 14px;
  padding: 16px 18px;
  width: min(820px, 92vw);
  box-shadow: 0 12px 40px #000a;
}

/* Backdrop for <dialog> */
dialog#jvm-config-dialog::backdrop {
  background: rgba(0,0,0,.75);
}

/* If you mounted the dialog inside a .modal wrapper, style its content too */
#jvm-config-modal .modal-content {
  background: #232a2f;
  color: #cfe;
  border: 1px solid #2b3640;
  border-radius: 14px;
}

/* Form bits */
.jvm-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.jvm-grid .full { grid-column: 1 / -1; }
.jvm-grid label { font-size: .92rem; opacity: .9; }
.jvm-grid input[type="number"],
.jvm-grid input[type="text"],
.jvm-grid select {
  background: #141a1f; border: 1px solid #2b3640; color: #cfe;
  padding: 6px 8px; border-radius: 8px; width: 100%;
}
.jvm-note { background:#1a1f24; border:1px solid #2b3640; border-radius:8px; padding:8px 10px; }

#jvm-flags-preview {
  background:#000; color:#0f0; border:1px solid #333; padding:10px; border-radius:8px;
  font-family: monospace; font-size: 13px; max-height: 40vh; overflow:auto;
}

/* Buttons */
.jvm-actions { display:flex; gap:8px; justify-content:flex-end; margin-top: 8px; }
.jvm-actions button { background:#444; color:#fff; border:none; padding: 7px 14px; border-radius:8px; }
.jvm-actions button:hover { background:#55a; }
.jvm-actions button[disabled] { opacity:.6; cursor: not-allowed; }
