/* Duskvale · presentation layer for Crafty. No branding images or API overrides. */
:root, :root.default, :root[data-theme] {
  --bg:#120e11; --soft:#1b1419; --ink:#ffffff; --mute:#b9aab1;
  --line:#33262d; --pink:#f7a8c4; --rose:#e0457b; --dark:#000000;
  --on-dark:#ffffff; --card:#1b1419; --success:#3ccf7a; --warning:#e7a93b;
  --danger:#d94b62; --info:#6d9ce8;
  --success-ink:#79e6a5; --warning-ink:#f0c977; --danger-ink:#ff9daf;
  --info-ink:#a5c6fa; --link:#f7a8c4; --button-ink:#161216;
  --focus:#f7a8c4; --terminal-bg:#161216; --terminal-ink:#f8f3f5;
  --shadow:0 12px 30px -24px rgba(0,0,0,.65);
  --overlay:rgba(22,18,22,.5); --disabled:#33262d;
  --space-1:4px; --space-2:8px; --space-3:12px; --space-4:16px;
  --space-5:20px; --space-6:24px; --space-7:32px; --space-8:40px;
  --space-9:48px; --space-10:64px;
  --dv-header:76px; --dv-sidebar:248px;
  /* Bridge existing Crafty themes without changing their controls or templates. */
  --primary:var(--rose); --secondary:var(--soft); --purple:var(--rose);
  --indigo:var(--rose); --blue:var(--info); --red:var(--danger);
  --green:var(--success); --yellow:var(--warning); --orange:var(--warning);
  --teal:var(--success); --cyan:var(--info); --light:var(--soft);
  --base-bg:var(--bg); --base-text:var(--ink); --select-bg:var(--card);
  --ram-bg:var(--soft); --outline:var(--line); --card-banner-bg:var(--soft);
  --deep-bg:var(--card); --dropdown-bg:var(--card); --tooltip-bg:var(--ink);
  --gray:var(--mute); --gray-light:var(--mute); --gray-lightest:var(--soft);
  --gray-dark:var(--ink); --white-smoke:var(--soft);
  --font-family-sans-serif:'Figtree','Atkinson Hyperlegible Next',sans-serif;
  color-scheme:dark;
}
html { scroll-padding-top:calc(var(--dv-header) + 16px); }
html, body { background-color:var(--bg); color:var(--ink); }
body, input, select, textarea, button, .btn, .table, .tooltip, .popover {
  font-family:var(--font-family-sans-serif) !important;
  font-size:15px; line-height:1.55;
}
body { -webkit-font-smoothing:antialiased; }
h1,h2,h3,h4,h5,h6,.page-title,.card-title,.dv-metric-value {
  font-family:'Bricolage Grotesque','Figtree',sans-serif !important;
  color:var(--ink); font-weight:750; line-height:1.25;
}
h1 { font-size:2rem; } h2 { font-size:1.7rem; } h3 { font-size:1.5rem; }
h4 { font-size:1.2rem; } h5 { font-size:1rem; }
p, label, li { line-height:1.6; }
a { color:var(--link); }
a:hover { color:var(--rose); text-decoration:none; }
small, .text-muted, .text-secondary { color:var(--mute) !important; }
.text-primary, .text-info { color:var(--link) !important; }
.text-success { color:var(--success-ink) !important; }
.text-warning { color:var(--warning-ink) !important; }
.text-danger { color:var(--danger-ink) !important; }
hr { border-color:var(--line); }
::selection { background:var(--pink); color:var(--button-ink); }
:focus-visible { outline:3px solid var(--focus) !important; outline-offset:3px; }
.dv-skip-link { position:fixed; top:8px; left:8px; z-index:3000; transform:translateY(-180%);
  background:var(--pink); color:var(--button-ink); padding:12px 20px; border-radius:12px; }
.dv-skip-link:focus { transform:translateY(0); }
/* Existing persistent navigation, including Crafty's collapse and mobile menu. */
.navbar.default-layout { height:var(--dv-header); background:var(--card) !important;
  box-shadow:none; border-bottom:1px solid var(--line); }
.navbar.default-layout .navbar-brand-wrapper { width:var(--dv-sidebar); height:var(--dv-header);
  background:var(--card) !important; padding:16px 22px; border-right:1px solid var(--line); }
.navbar.default-layout .navbar-brand-wrapper .navbar-brand { padding:0; margin:auto; }
.navbar.default-layout .navbar-brand-wrapper .navbar-brand img {
  max-width:100%; max-height:44px; width:auto; height:auto; object-fit:contain; }
.navbar.default-layout .navbar-menu-wrapper { width:calc(100% - var(--dv-sidebar));
  height:var(--dv-header); background:var(--card) !important; color:var(--ink); padding:0 24px; gap:8px; }
.navbar .navbar-toggler { color:var(--mute) !important; border:1px solid var(--line);
  border-radius:12px; width:40px; min-height:40px; padding:6px; }
.navbar .nav-link, .navbar .navbar-nav .nav-item .nav-link { color:var(--ink) !important; }
.page-body-wrapper:not(.full-page-wrapper) { padding-top:var(--dv-header); }
nav.sidebar { top:var(--dv-header); bottom:0; width:var(--dv-sidebar); height:auto;
  background:var(--card) !important; border-right:1px solid var(--line); padding:20px 12px;
  overflow-y:auto; overscroll-behavior:contain; }
nav.sidebar > .nav { background:transparent !important; padding:0; }
.sidebar .nav .nav-item { margin:3px 0; border:0; }
.sidebar .nav .nav-item .nav-link { color:var(--mute) !important; background:transparent;
  min-height:46px; padding:12px 14px; border-radius:12px; font-size:14px; font-weight:500; }
.sidebar .nav .nav-item .nav-link i { color:inherit !important; font-size:19px; }
.sidebar .nav .nav-item .nav-link .menu-title { font-size:14px; line-height:1.4; }
.sidebar .nav .nav-item .nav-link:hover { background:var(--soft) !important; color:var(--ink) !important; }
.sidebar .nav .nav-item.active > .nav-link,
.sidebar .nav .nav-item .nav-link[aria-current="page"] {
  background:var(--pink) !important; color:var(--button-ink) !important; font-weight:700; }
.sidebar .nav .nav-item > .nav-link::before { display:none !important; }
.sidebar .nav .sub-menu { background:transparent !important; border-left:1px solid var(--line);
  margin:4px 0 12px 22px; padding:0 0 0 8px; }
.sidebar .nav .sub-menu .nav-link { min-height:40px; font-size:13px; white-space:normal; }
.main-panel { min-width:0; background:var(--bg); }
.main-panel .content-wrapper { background:var(--bg); padding:32px; width:100%; max-width:1640px;
  margin:0 auto; flex:1; min-width:0; }
.page-title-header { margin-bottom:24px; }
.page-title-header .page-header { border:0; padding:0; margin:0; }
.page-title { font-size:28px; font-weight:800; margin:0; overflow-wrap:anywhere; }
.page-title small { font:400 12px var(--font-family-sans-serif); letter-spacing:.03em; }
.page-title #sync { font-size:18px; margin-left:14px !important; color:var(--success-ink); }
.dv-page-note { color:var(--mute); margin:10px 0 0; max-width:65ch; font-size:14px; }
.dv-page-eyebrow { color:var(--link); font-size:11px; font-weight:700; letter-spacing:.13em;
  text-transform:uppercase; margin-bottom:8px; }
/* Panels and operational metrics. The live metric nodes retain their original IDs. */
.main-panel .card { background:var(--card); color:var(--ink); border:1px solid var(--line);
  border-radius:20px; box-shadow:var(--shadow); overflow:visible; }
.card .card-body { padding:24px; min-width:0; }
.card .card-header { border-bottom:1px solid var(--line); background:var(--soft);
  color:var(--ink); padding:18px 24px; border-radius:20px 20px 0 0; min-height:64px; gap:12px; flex-wrap:wrap; }
.card .card-title { font-size:17px; font-weight:750; margin-bottom:0; text-transform:none; }
.card-header .nav-link { padding:6px 10px; border-radius:10px; font-size:13px; font-weight:600; }
.card-header .nav-link:hover { background:var(--card); }
.grid-margin { margin-bottom:24px; }
.dv-host-overview { border-top:3px solid var(--pink) !important; }
.dv-host-overview .card-body > .row > [class*="col-"] { position:relative; }
.dv-host-overview h3 { font-size:32px; font-weight:800; margin-top:8px; }
.dv-host-overview h5 { font:600 12px var(--font-family-sans-serif) !important;
  color:var(--mute) !important; text-transform:uppercase; letter-spacing:.06em; }
.dv-host-overview p { font-size:13px; }
.dv-host-overview #cpu_data, .dv-host-overview #mem_usage { color:var(--ink) !important; }
.dv-host-overview #cpu_usage, .dv-host-overview #mem_percent { font-weight:700; }
.dv-host-overview #storage_data { margin-top:12px; }
.dv-host-overview .storage-heading { color:var(--mute); font-size:12px; }
/* Compact controls: semantic colors remain distinct and never depend on color alone. */
.btn, .btn.btn-lg { font-size:14px; font-weight:600; min-height:40px; border-radius:10px;
  padding:9px 16px; box-shadow:none !important; line-height:1.4;
  transition:transform .2s ease,background-color .2s ease,border-color .2s ease,box-shadow .2s ease; }
.btn:hover { transform:translateY(-1px); }
.btn:active { transform:translateY(0); }
.btn-primary, .btn-primary:not(:disabled):not(.disabled):active,
.btn-primary:focus { background:var(--pink) !important; color:var(--button-ink) !important; border-color:var(--pink) !important; }
.btn-primary:hover { background:var(--rose) !important; color:var(--button-ink) !important; border-color:var(--rose) !important; }
.btn-secondary, .btn-light, .btn-default, .btn-outline-secondary, .btn-outline-primary {
  background:var(--card) !important; color:var(--ink) !important; border:1px solid var(--line) !important; }
.btn-secondary:hover, .btn-light:hover, .btn-default:hover, .btn-outline-secondary:hover,
.btn-outline-primary:hover { background:var(--soft) !important; border-color:var(--pink) !important; }
.btn-danger, .btn-danger:hover { background:var(--danger) !important; color:var(--button-ink) !important;
  border-color:var(--danger) !important; }
.btn-success { background:var(--success) !important; color:var(--button-ink) !important; border-color:var(--success) !important; }
.btn-warning { background:var(--warning) !important; color:var(--button-ink) !important; border-color:var(--warning) !important; }
.btn-info { background:var(--info) !important; color:var(--button-ink) !important; border-color:var(--info) !important; }
.btn:disabled, .btn.disabled, input:disabled, select:disabled, textarea:disabled {
  opacity:.65; cursor:not-allowed; background-color:var(--disabled) !important; transform:none; }
.actions_serverlist { white-space:nowrap; }
.actions_serverlist a, .actions_serveritem { display:inline-flex; align-items:center; justify-content:center;
  min-width:34px; min-height:36px; padding:6px !important; border-radius:9px; margin:0 2px; }
.actions_serverlist a:hover { background:var(--soft); }
.actions_serverlist .stop_button, .actions_serverlist .kill_button { color:var(--danger-ink) !important; }
.actions_serverlist .restart_button { color:var(--warning-ink) !important; }
.actions_serverlist .play_button { color:var(--success-ink) !important; }
/* Readable form controls, including plugin widgets used by Crafty. */
label, .form-check-label, .col-form-label { color:var(--ink); font-weight:600; font-size:14px; }
.form-control, .custom-select, .select2-container--default .select2-selection--single,
.login-text-input, input[type="text"], input[type="password"], input[type="number"],
input[type="email"], input[type="search"], select, textarea {
  background-color:var(--card) !important; color:var(--ink) !important;
  border:1px solid var(--line) !important; border-radius:10px; min-height:42px;
  font-size:14px; box-shadow:none; }
textarea.form-control { min-height:110px; }
.form-control::placeholder { color:var(--mute); opacity:.85; }
.form-control:focus, .login-text-input:focus { border-color:var(--rose) !important; box-shadow:0 0 0 3px var(--soft) !important; }
.input-group-text { background:var(--soft); color:var(--mute); border-color:var(--line); border-radius:10px; }
select option { background:var(--card) !important; color:var(--ink) !important; }
input[type="checkbox"], input[type="radio"], input[type="range"] { accent-color:var(--rose); }
.form-group { margin-bottom:20px; }
.form-text, .help-block { color:var(--mute); font-size:13px; }
.invalid-feedback, .error { color:var(--danger-ink); }
/* Operational tables stay tables: all columns and actions remain available. */
.table-responsive { overflow-x:auto !important; scrollbar-width:thin; scrollbar-color:var(--line) var(--soft); }
.table, .table td, .table th { color:var(--ink); border-color:var(--line) !important; font-size:14px; }
.table { margin-bottom:0; }
.table thead th { background:var(--soft); color:var(--mute); border-top:0; border-bottom:1px solid var(--line);
  font-size:11px; font-weight:700; letter-spacing:.055em; text-transform:uppercase; padding:14px 16px; }
.table tbody td { background:var(--card); padding:18px 16px; vertical-align:middle; border-bottom:1px solid var(--line); }
.table-hover tbody tr:hover, .table-hover tbody tr:hover td { background:var(--soft) !important; color:var(--ink); }
.table-striped tbody tr:nth-of-type(odd) { background:var(--soft); }
#servers_table { min-width:980px; }
#servers_table .col-server { min-width:180px; }
#servers_table .col-server > a { color:var(--ink); font-weight:650; }
#servers_table .col-server > i { color:var(--rose); font-size:18px; margin-right:6px; }
#servers_table .col-version { font-size:12px; }
#servers_table .col-memUsage { white-space:nowrap; }
#servers_table .col-status { font-weight:600; }
.badge, .badge-pill { border-radius:8px; padding:6px 9px; font-size:11px; font-weight:650; line-height:1.35; }
.badge-success, .bg-success { background-color:var(--success) !important; }
.badge-warning, .bg-warning { background-color:var(--warning) !important; }
.badge-danger, .bg-danger { background-color:var(--danger) !important; }
.badge-info, .bg-info { background-color:var(--info) !important; }
.badge-primary, .bg-primary { background-color:var(--pink) !important; color:var(--button-ink) !important; }
.badge-success, .badge-warning, .badge-info { color:var(--button-ink) !important; }
.badge-danger { color:var(--button-ink) !important; }
.progress { background:var(--soft); height:6px; border-radius:8px; overflow:hidden; }
.progress-bar { border-radius:8px; }
.disk-usage { height:20px; }
.disk-usage .progress-bar { color:var(--button-ink); min-height:20px; font-size:11px; }
/* Dialogs, tabs and activity feedback share the same palette. */
.nav-tabs { border-color:var(--line); gap:4px; flex-wrap:wrap; }
.nav-tabs .nav-link { color:var(--mute); border:0; padding:12px 16px; border-radius:10px 10px 0 0; }
.nav-tabs .nav-link.active, .nav-pills .nav-link.active { color:var(--button-ink) !important; background:var(--pink) !important; border-color:var(--pink); }
.dropdown-menu, .popover, .modal-content { background:var(--card); color:var(--ink);
  border:1px solid var(--line); border-radius:16px; box-shadow:var(--shadow); }
.dropdown-item { color:var(--ink); padding:10px 16px; }
.dropdown-item:hover, .dropdown-item:focus { color:var(--ink); background:var(--soft); }
.modal-header, .modal-footer { border-color:var(--line); padding:20px 24px; }
.modal-body { padding:24px; overflow-wrap:anywhere; }
.modal-title { font-size:20px; }
.close { color:var(--mute); text-shadow:none; opacity:1; }
.alert { border-radius:12px; border:1px solid var(--line); color:var(--ink); padding:14px 18px; }
.alert-warning { background:var(--soft); border-left:4px solid var(--warning); }
.alert-danger { background:var(--soft); border-left:4px solid var(--danger); color:var(--danger-ink); }
.alert-info { background:var(--soft); border-left:4px solid var(--info); }
.alert-success { background:var(--soft); border-left:4px solid var(--success); }
.pagination .page-link { background:var(--card); color:var(--ink); border-color:var(--line); }
.pagination .page-item.active .page-link { background:var(--pink); color:var(--button-ink); border-color:var(--pink); }
footer.footer { background:var(--bg); border-top:1px solid var(--line); color:var(--mute); font-size:12px; padding:20px 32px; }
/* Logs and code retain their monospace formatting and high-contrast working area. */
#virt_console, #virt_console pre, #logview, .terminal, .xterm, .ace_editor {
  background:var(--terminal-bg) !important; color:var(--terminal-ink) !important; border-radius:12px; }
pre, code, kbd, samp { font-family:var(--font-family-monospace); }
pre { max-width:100%; overflow:auto; }
/* Login customization remains the source of background, logo, name and opacity. */
.auth .auto-form-wrapper.login-modal { border:1px solid var(--line); border-radius:24px !important;
  padding:32px !important; box-shadow:var(--shadow) !important; color:var(--ink); }
.auth .auto-form-logo { margin-bottom:28px; }
.auth .auto-form-logo img { max-width:100%; max-height:110px; object-fit:contain; }
.auth .label { color:var(--ink); }
.auth .submit-btn { min-height:46px; }
.auth .form-control { min-height:46px; }
.dv-sr-only { position:absolute !important; width:1px; height:1px; padding:0; margin:-1px;
  overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }
.dv-confirm { background:var(--card); color:var(--ink); border:1px solid var(--line);
  border-radius:20px; padding:28px; width:min(440px,calc(100vw - 32px)); box-shadow:var(--shadow); }
.dv-confirm::backdrop { background:var(--overlay); }
.dv-confirm h2 { font-size:23px; margin:0 0 12px; }
.dv-confirm p { color:var(--mute); margin:0 0 24px; }
.dv-confirm-actions { display:flex; justify-content:flex-end; gap:10px; flex-wrap:wrap; }
@media (min-width:992px) {
  .main-panel { margin-left:var(--dv-sidebar); width:calc(100% - var(--dv-sidebar)); }
  body.sidebar-icon-only .main-panel { margin-left:76px; width:calc(100% - 76px); }
  body.sidebar-icon-only nav.sidebar { width:76px; padding:20px 8px; overflow:visible; }
  body.sidebar-icon-only .navbar .navbar-brand-wrapper { width:76px; padding:12px; }
  body.sidebar-icon-only .navbar .navbar-menu-wrapper { width:calc(100% - 76px); }
}
@media (max-width:1199px) and (min-width:992px) {
  .main-panel .content-wrapper { padding:24px; }
}
@media (max-width:991px) {
  .main-panel { margin-left:0; width:100%; }
  .navbar.default-layout .navbar-brand-wrapper { width:170px; border:0; padding:14px 18px; }
  .navbar.default-layout .navbar-menu-wrapper { width:calc(100% - 170px); padding:0 14px; }
  nav.sidebar.sidebar-offcanvas { top:var(--dv-header); right:calc(-1 * var(--dv-sidebar)); left:auto; z-index:1040; }
  nav.sidebar.sidebar-offcanvas.active { right:0; }
  .main-panel .content-wrapper { padding:24px; }
  .dv-theme-toggle span { display:none; }
}
@media (max-width:860px) {
  .card .card-body { padding:20px; }
  .page-title { font-size:25px; }
  .card-header .d-flex { flex-wrap:wrap; }
  .table-responsive { max-width:100%; }
  .card-header .nav-link { padding:8px; }
}
@media (max-width:520px) {
  :root { --dv-header:68px; }
  .navbar.default-layout .navbar-brand-wrapper { width:136px; padding:12px; }
  .navbar.default-layout .navbar-menu-wrapper { width:calc(100% - 136px); padding:0 8px; gap:4px; }
  .navbar.default-layout .navbar-brand-wrapper .navbar-brand img { max-height:38px; }
  .navbar .navbar-toggler { min-width:36px; width:36px; min-height:40px; }
  .main-panel .content-wrapper { padding:20px 14px; }
  .page-title { font-size:24px; }
  .page-title-header { margin-bottom:20px; }
  .card .card-body { padding:18px 14px; }
  .card .card-header { padding:16px; align-items:flex-start !important; }
  .card .card-header .card-title { font-size:16px; }
  .card-header .nav-link { font-size:12px; }
  .grid-margin { margin-bottom:18px; }
  .dv-host-overview .card-body > .row > [class*="col-"] { margin-top:18px !important; }
  .dv-host-overview .card-body > .row > [class*="col-"]:first-child { margin-top:0 !important; }
  .dv-host-overview .d-flex { gap:10px; }
  .dv-host-overview h3 { font-size:28px; }
  .auth .row.w-100 { margin:0; }
  .auth .auto-form-wrapper.login-modal { padding:24px !important; }
  .form-control, input, select, textarea { max-width:100%; }
  .modal-dialog { margin:12px; }
  .modal-body, .modal-header, .modal-footer { padding:18px; }
  footer.footer { padding:20px 16px; }
  .actions_serveritem { min-width:44px; min-height:44px; }
}
@media (prefers-reduced-motion:reduce) {
  *, *::before, *::after { animation-duration:.01ms !important; animation-iteration-count:1 !important;
    transition-duration:.01ms !important; scroll-behavior:auto !important; }
}
/* Integration refinements for Crafty's older Bootstrap theme rules. */
html body, body .container-scroller { background-color:var(--bg) !important; }
nav.navbar.default-layout { box-shadow:none !important; }
.navbar.default-layout .navbar-brand-wrapper .navbar-brand { width:100%; min-width:0; height:44px; align-items:center; }
.navbar.default-layout .navbar-brand-wrapper .navbar-brand img { width:100%; height:44px; object-fit:contain; }
nav.sidebar { min-height:0 !important; height:calc(100dvh - var(--dv-header)); max-height:calc(100dvh - var(--dv-header)); }
nav.sidebar > ul.nav.sidebar { width:100%; min-height:0; height:auto; }
nav.sidebar > .nav > .nav-item { width:100%; }
nav.sidebar .nav .nav-item .nav-link { white-space:normal; }
footer.footer { background:var(--bg) !important; }
footer.footer a { text-decoration:underline; text-underline-offset:3px; }
#servers_table { width:100% !important; table-layout:auto; }
#servers_table thead th { white-space:normal !important; max-width:156px; line-height:1.5; }
#servers_table .col-serverIcon { min-width:48px; width:56px; }
#servers_table .col-cpuUsage { min-width:90px; }
#servers_table .col-size { min-width:100px; }
#servers_table .col-players { min-width:100px; }
#servers_table .col-port { min-width:56px; }
#servers_table .col-version { min-width:100px; }
#servers_table .col-status { min-width:80px; }
.popover .popover-header { background:var(--soft); color:var(--ink); border-color:var(--line); }
.popover .popover-body { color:var(--ink); }
.progress.disk-usage { background:var(--soft) !important; }
.nav-tabs .nav-item a.nav-link { display:inline-flex; align-items:center; gap:7px; min-height:44px; }
.auth .auto-form-wrapper .label { color:var(--on-dark) !important; text-shadow:0 1px 4px var(--terminal-bg); }
.auth .auto-form-wrapper a:not(.btn) { color:var(--pink); text-shadow:0 1px 4px var(--terminal-bg); }
.auth .auto-form-wrapper .form-group > .label { display:block; width:fit-content; }
@media (max-width:520px) {
  :root, :root.default, :root[data-theme] { --dv-header:68px; }
  .navbar.default-layout .navbar-brand-wrapper .navbar-brand img { max-height:36px; }
}
#server-name-nav { color:var(--link) !important; border-color:var(--line) !important; background:var(--soft); }
.popover .popover-body, .popover .popover-body p, .popover .popover-content { color:var(--ink) !important; }
#storage_data .disk-usage { width:100% !important; max-width:260px; height:8px; margin:8px 0 4px; }
#storage_data .disk-usage .progress-bar { font-size:0 !important; color:transparent !important; min-height:8px; height:8px; }
.dv-storage-value { display:block; color:var(--mute); font-size:12px; line-height:1.5; }
.dv-server-state { display:flex; align-items:center; gap:6px; width:fit-content;
  font-size:11px; font-weight:600; line-height:1.5; margin:7px 0 0 27px; padding:2px 7px; border-radius:6px; }
.dv-server-state::before { content:''; width:5px; height:5px; border-radius:50%; background:var(--success); }
.dv-status-online { color:var(--success-ink); background:color-mix(in srgb,var(--success) 10%,var(--card)); }
.dv-status-offline { color:var(--danger-ink); background:color-mix(in srgb,var(--danger) 10%,var(--card)); }
.dv-status-offline::before { background:var(--danger); }
/* Dark-only refinement, matching duskvale-site.netlify.app without decorative animation. */
.main-panel .card { border-radius:24px; }
.card .card-header { border-radius:24px 24px 0 0; }
.btn, .actions_serverlist a, .actions_serveritem, .animated-table tr { transform:none !important; }
.animated-table tbody tr:hover td:first-child::before { content:none !important; animation:none !important; }
.navbar, #sidebar, .navbar-menu-wrapper { transition:none !important; }
.tooltip { z-index:3000; pointer-events:none; }
.tooltip .tooltip-inner { background:var(--card) !important; color:var(--ink) !important;
  border:1px solid var(--line); border-radius:10px; padding:8px 12px; max-width:min(280px,calc(100vw - 24px));
  font-size:13px; box-shadow:var(--shadow); overflow-wrap:anywhere; }
.tooltip .arrow::before { border-top-color:var(--card); border-bottom-color:var(--card); }
#sidebar > .nav { overflow:visible; }
#sidebar .nav .nav-item { min-width:0; }
#sidebar .nav .nav-item > .nav-link,
#sidebar .nav .nav-item > .nav-link:hover,
#sidebar .nav .nav-item > .nav-link:focus { padding:12px 14px !important; transform:none !important; }
#sidebar .nav .nav-item .nav-link .menu-title { min-width:0; white-space:normal; overflow-wrap:anywhere; }
#sidebar .nav .nav-item .nav-link i { flex-shrink:0; }
#sidebar #sidebar-servers { margin:10px 0 16px; padding:0; border:0; display:grid; gap:6px; }
#sidebar #sidebar-servers .nav-item { margin:0; }
#sidebar #sidebar-servers .nav-link { display:flex; align-items:center; justify-content:flex-start;
  gap:8px; border:1px solid var(--line); border-radius:12px; padding:11px 12px !important;
  background:var(--bg); color:var(--ink) !important; width:100%; min-width:0; min-height:44px;
  white-space:normal; line-height:1.45; font-size:13px; }
#sidebar #sidebar-servers .nav-link:hover { border-color:var(--pink); background:var(--soft) !important; }
#sidebar #sidebar-servers .nav-link[aria-current="page"] { color:var(--button-ink) !important; background:var(--pink) !important; border-color:var(--pink); }
.dv-server-link-label { display:block; min-width:0; overflow-wrap:anywhere; }
#sidebar #sidebar-servers .nav-link i { font-size:17px; margin:0; }
#sidebar #sidebar-servers .nav-link::before { display:none !important; }
@media(min-width:992px) {
  body.sidebar-icon-only #sidebar { overflow:visible !important; z-index:1050; }
  body.sidebar-icon-only #sidebar > .nav > .nav-item { position:relative; }
  body.sidebar-icon-only #sidebar > .nav > .nav-item > .nav-link { justify-content:center; }
  body.sidebar-icon-only #sidebar > .nav > .nav-item.hover-open > .nav-link .menu-title,
  body.sidebar-icon-only #sidebar > .nav > .nav-item:focus-within > .nav-link .menu-title {
    display:flex !important; align-items:center; position:absolute; left:64px; top:0; width:232px;
    height:auto; min-height:46px; padding:12px 16px; background:var(--card) !important;
    color:var(--ink) !important; border:1px solid var(--line); border-radius:12px; z-index:1100;
    white-space:normal; overflow-wrap:anywhere; opacity:1; visibility:visible; box-shadow:var(--shadow); }
  body.sidebar-icon-only #sidebar > .nav > .nav-item.hover-open > .collapse,
  body.sidebar-icon-only #sidebar > .nav > .nav-item:focus-within > .collapse {
    display:block !important; position:absolute; left:64px; top:45px; width:232px; height:auto;
    background:var(--card) !important; padding:8px; border:1px solid var(--line); border-radius:12px;
    z-index:1100; max-height:calc(100dvh - 180px); overflow-y:auto; }
  body.sidebar-icon-only #sidebar #sidebar-servers { margin:0; }
}
/* File manager: flexible actions, readable paths, and menus that remain within the viewport. */
body:has(#files_table) .main-panel { height:calc(100dvh - var(--dv-header)); }
#context-container { border:1px solid var(--line); border-radius:16px; background:var(--card); }
#context-container .table-nav-container { display:flex; flex-direction:column; gap:16px;
  position:static; padding:18px; background:var(--soft); min-width:0; }
#context-container .table-nav-container > br { display:none; }
#table-nav { display:flex; align-items:center; flex-wrap:wrap; gap:6px; min-width:0; width:100%; }
#table-nav .tree-nav { max-width:100%; white-space:normal; overflow-wrap:anywhere; padding:5px 9px;
  color:var(--link); background:var(--card); border:1px solid var(--line); border-radius:8px; }
#table-nav-buttons { display:flex; flex-wrap:wrap; gap:8px; align-items:center; font-size:0; }
#table-nav-buttons .btn { flex:0 1 auto; min-height:44px; margin:0; background:var(--card) !important;
  border:1px solid var(--line) !important; color:var(--ink) !important; opacity:1; font-size:13px; }
#table-nav-buttons .btn:hover { border-color:var(--pink) !important; color:var(--pink) !important; }
#files_table { width:100%; background:var(--card); border-spacing:0; padding:0; }
#files_table td, #files_table th { white-space:normal; overflow-wrap:anywhere; }
#files_table td.column-1 { min-width:160px; max-width:360px; }
#files_table .file:hover td, #files_table .directory:hover td { background:var(--soft); }
.context-menu { max-width:calc(100vw - 24px); background:var(--card) !important; color:var(--ink); border-color:var(--line); }
/* The editor uses blank_base, so it needs its own full-width shell, not the login shell. */
body:has(#editor-wrapper) { overflow:auto; background:var(--bg) !important; }
body:has(#editor-wrapper) .container-scroller { min-height:100dvh; width:100%; }
body:has(#editor-wrapper) .full-page-wrapper { display:block; width:100%; min-height:100dvh; padding:0; }
body:has(#editor-wrapper) .content-wrapper.auth { display:block !important; align-items:stretch !important;
  padding:24px; min-height:100dvh; width:100%; background:var(--bg) !important; }
body:has(#editor-wrapper) .auth > .row.w-100 { display:block; width:100% !important; margin:0; }
body:has(#editor-wrapper) .auth > .row > .mx-auto { width:100%; max-width:1440px; min-width:0; }
#editor-wrapper { width:100% !important; max-width:1440px; margin:0 auto; padding:0 !important; background:var(--bg); }
#editor-wrapper .page-title-header { margin:0 0 20px !important; display:flex; align-items:center;
  justify-content:space-between; flex-wrap:wrap; gap:16px; }
#editor-wrapper #server-name { align-items:flex-start; gap:10px; margin:0; min-width:0; max-width:100%; }
#editor-wrapper #file-name { display:flex; align-items:center; gap:8px; max-width:100%; min-width:0; }
#editor-wrapper #file-name .badge { white-space:normal; overflow-wrap:anywhere; font-size:13px; text-align:left; }
#editor-wrapper #file-info { flex-direction:row; justify-content:flex-start; flex-wrap:wrap; gap:8px 20px;
  background:var(--card); border:1px solid var(--line); border-radius:12px; padding:12px 16px; margin:0; }
#editor-wrapper #uuid-container { overflow-wrap:anywhere; }
#editor_container { width:100%; max-width:100%; padding:0; min-width:0; }
#editor-wrapper .editorManager { display:flex; flex-direction:column; min-width:0; border:1px solid var(--line);
  border-radius:20px; background:var(--card); overflow:hidden; }
#editorParent { width:100%; min-width:0; }
#editor-wrapper #editor { width:100% !important; max-width:100%; min-width:0; height:calc(100dvh - 240px) !important;
  min-height:320px; resize:none !important; border-radius:0; }
#editor-wrapper #save-container { display:flex; align-items:center; justify-content:flex-end; flex-wrap:wrap;
  gap:12px; border-top:1px solid var(--line); padding:14px 18px; background:var(--card); }
#editor-wrapper #saveButton { width:auto; min-width:160px; max-width:100%; min-height:44px;
  background:var(--pink); color:var(--button-ink); border:1px solid var(--pink); border-radius:12px; }
#editor-wrapper .ace_gutter { background:var(--card) !important; color:var(--mute) !important; }
#editor-wrapper .ace_scroller { background:var(--bg) !important; }
#editor-wrapper .ace_gutter-active-line, #editor-wrapper .ace_marker-layer .ace_active-line { background:var(--soft) !important; }
#editor-wrapper .ace_keyword { color:var(--pink); }
#editor-wrapper .ace_string { color:var(--success-ink); }
.dv-editor-back { display:inline-flex; align-items:center; gap:8px; min-height:44px; white-space:normal; }
@media(max-width:860px) {
  .card-header > .d-flex { gap:8px; width:100%; }
  .card-header a[href="/server/step1"] { display:inline-flex; align-items:center; gap:6px;
    border:1px solid var(--line); background:var(--pink); color:var(--button-ink); border-radius:12px;
    min-height:44px; padding:10px 14px; max-width:100%; white-space:normal; }
  #context-container .table-nav-container { padding:14px; }
  #table-nav-buttons .btn { flex:1 1 135px; }
  body:has(#editor-wrapper) .content-wrapper.auth { padding:18px; }
}
@media(max-width:520px) {
  .navbar.default-layout .navbar-brand-wrapper { width:112px; }
  .navbar.default-layout .navbar-menu-wrapper { width:calc(100% - 112px); }
  .card-header > .d-flex { flex-direction:column; align-items:stretch !important; }
  .card-header > .d-flex > a { justify-content:center; width:100%; }
  #context-container .table-nav-container { padding:12px; }
  #table-nav-buttons .btn { flex:1 1 calc(50% - 8px); font-size:12px; padding:10px; }
  #files_table td.column-1 { min-width:0; max-width:calc(100vw - 90px); }
  #files_table td, #files_table th { padding:13px 10px; }
  body:has(#editor-wrapper) .content-wrapper.auth { padding:14px; }
  #editor-wrapper .page-title-header { gap:12px; margin-bottom:14px !important; }
  #editor-wrapper .info-flex { width:100%; }
  #editor-wrapper #file-info { display:flex !important; font-size:12px; padding:10px 12px; }
  #editor-wrapper #editor { height:calc(100dvh - 300px) !important; min-height:280px; }
  #editor-wrapper #save-container { padding:12px; }
  #editor-wrapper #saveButton { width:100%; }
  .dv-editor-back { width:100%; justify-content:center; }
}
#editor-wrapper #file-name .badge { border:1px solid var(--line); background:var(--card); color:var(--ink); }
#editor-wrapper #file-name .badge #editingFile { color:var(--ink) !important; }
@media(max-width:860px) {
  .navbar .navbar-menu-wrapper #server-name-nav { display:none !important; }
  .navbar .navbar-menu-wrapper .navbar-nav { margin-left:auto !important; flex-shrink:0; }
}
#editor-wrapper #editor { min-height:180px !important; }
#sidebar .collapsing { transition:none !important; }
@media(min-width:992px) {
  body.sidebar-icon-only #sidebar > .nav > .nav-item.hover-open::after,
  body.sidebar-icon-only #sidebar > .nav > .nav-item:focus-within::after {
    content:''; position:absolute; left:100%; top:0; width:12px; height:100%; }
}
/* Refined Duskvale workspace: floating navigation, distinct metrics, rounded working surfaces. */
:root, :root.default, :root[data-theme] { --dv-header:96px; --dv-radius:28px; }
nav.navbar.default-layout { top:14px; left:16px; width:calc(100% - 32px); height:64px;
  border:1px solid var(--line); border-radius:24px; box-shadow:var(--shadow) !important; }
.navbar.default-layout .navbar-brand-wrapper { height:62px; border-radius:24px 0 0 24px; }
.navbar.default-layout .navbar-menu-wrapper { height:62px; border-radius:0 24px 24px 0; }
nav#sidebar.sidebar { top:var(--dv-header); left:16px; bottom:16px; width:calc(var(--dv-sidebar) - 16px);
  height:calc(100dvh - var(--dv-header) - 16px); max-height:calc(100dvh - var(--dv-header) - 16px);
  border:1px solid var(--line); border-radius:24px; padding:16px 10px; }
#sidebar .nav > .nav-item > .nav-link { border-radius:14px; }
#sidebar #sidebar-servers .nav-link { border-radius:14px; }
.main-panel .content-wrapper { padding-top:12px; }
.page-title { font-size:30px; letter-spacing:-.025em; }
.dv-page-eyebrow { color:var(--pink); }
.main-panel .card { border-radius:var(--dv-radius); }
.card .card-header { border-radius:var(--dv-radius) var(--dv-radius) 0 0; background:var(--card); padding:22px 24px; }
.card .card-title { font-size:20px; }
.btn, .btn.btn-lg, .dv-editor-back, #editor-wrapper #saveButton { border-radius:999px; }
.card-header a[href="/server/step1"] { display:inline-flex; align-items:center; gap:8px;
  border-radius:999px; background:var(--pink); color:var(--button-ink); padding:10px 16px; min-height:42px; }
.card-header a[href="/server/step1"]:hover { background:var(--rose); color:var(--button-ink); }
.dv-host-overview.card { border:0 !important; background:transparent; box-shadow:none; border-radius:0; }
.dv-host-overview > .card-body { padding:0; }
.dv-metrics-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:16px; margin:0 !important; }
.dv-metrics-grid > [class*="col-"] { width:auto; max-width:none; min-width:0; padding:24px;
  margin:0 !important; border:1px solid var(--line); border-radius:24px; background:var(--card); }
.dv-metrics-grid > .col-12 { grid-column:1 / -1; }
.dv-metrics-grid > .col-12 .wrapper.w-100 { display:grid; grid-template-columns:160px minmax(0,1fr); gap:24px; align-items:center; }
.dv-host-overview h3 { font-size:40px; line-height:1.1; }
.dv-host-overview #storage_data { margin-top:0; }
.dv-host-overview #storage_data > .row { margin:0; }
.dv-host-overview #storage_data > .row > [class*="col-"] { flex:1; max-width:none; padding:0; }
.dv-host-overview #storage_data .disk-usage { max-width:none; }
#servers_table { border-collapse:separate; border-spacing:0 10px; }
#servers_table thead th { background:transparent; border:0 !important; padding-top:8px; padding-bottom:8px; }
#servers_table tbody td { background:var(--bg); border-top:1px solid var(--line) !important;
  border-bottom:1px solid var(--line) !important; padding:18px 14px; }
#servers_table tbody td:first-child { border-left:1px solid var(--line) !important; border-radius:18px 0 0 18px; }
#servers_table tbody td:last-child { border-right:1px solid var(--line) !important; border-radius:0 18px 18px 0; }
.actions_serverlist a, .actions_serveritem { border-radius:50%; min-width:34px; min-height:34px;
  background:var(--card); border:1px solid var(--line); }
.actions_serverlist a:hover, .actions_serveritem:hover { border-color:var(--pink); }
.nav-tabs { border:0; padding:18px 0; gap:8px; }
.nav-tabs .nav-item a.nav-link { border:1px solid var(--line); border-radius:999px; padding:10px 15px; background:var(--bg); }
.nav-tabs .nav-link.active { border-color:var(--pink); }
#accordionServers > .card { border-radius:20px; margin-bottom:12px; box-shadow:none; overflow:hidden; background:var(--bg); }
#accordionServers > .card > .card-header { border:0; border-radius:20px; background:var(--bg); padding:14px; }
#accordionServers .card-header h2.container { padding:0; }
#accordionServers .card-header .btn-link:not(.actions_serveritem) { color:var(--ink); }
#accordionServers .card-header .btn-link[href] { font-weight:700; white-space:normal; }
#context-container { border-radius:22px; padding:8px; background:var(--bg); }
#context-container .table-nav-container { border-radius:16px; background:var(--card); }
#files_table { border-collapse:separate; border-spacing:0 8px; background:var(--bg); }
#files_table tbody td { background:var(--card); border:0 !important; }
#files_table tbody td:first-child { border-radius:14px 0 0 14px; }
#files_table tbody td:last-child { border-radius:0 14px 14px 0; }
#files_table tbody td.column-1 { border-radius:14px 0 0 14px; }
.dv-editor-title { font-size:30px; font-weight:800; letter-spacing:-.025em; margin:0 0 22px; }
#editor-wrapper .page-title-header { padding:20px; border:1px solid var(--line); border-radius:24px; background:var(--card); }
#editor-wrapper .editorManager { border-radius:var(--dv-radius); }
#editor-wrapper #save-container { padding:16px 20px; }
#editor-wrapper .dv-editor-back { border:1px solid var(--line); background:var(--bg) !important; }
#editor-wrapper #file-info { background:var(--bg); }
@media(min-width:992px) {
  body.sidebar-icon-only nav#sidebar.sidebar { width:60px; padding:16px 6px; }
}
@media(max-width:991px) {
  :root, :root.default, :root[data-theme] { --dv-header:92px; }
  nav#sidebar.sidebar-offcanvas { left:auto; right:calc(-1 * var(--dv-sidebar) - 20px); width:var(--dv-sidebar); }
  nav#sidebar.sidebar-offcanvas.active { right:16px; }
  .main-panel .content-wrapper { padding-top:8px; }
}
@media(max-width:860px) {
  .dv-metrics-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; }
  .dv-metrics-grid > [class*="col-"]:first-child { grid-column:1 / -1; }
  .dv-metrics-grid > [class*="col-"] { padding:20px; }
  .dv-metrics-grid > :nth-child(2) > .d-flex, .dv-metrics-grid > :nth-child(3) > .d-flex { display:block !important; }
  .dv-metrics-grid > :nth-child(2) .wrapper.my-auto, .dv-metrics-grid > :nth-child(3) .wrapper.my-auto { margin:12px 0 0 !important; }
}
@media(max-width:520px) {
  :root, :root.default, :root[data-theme] { --dv-header:84px; }
  nav.navbar.default-layout { top:10px; left:10px; width:calc(100% - 20px); height:60px; border-radius:20px; }
  .navbar.default-layout .navbar-brand-wrapper { height:58px; width:96px; border-radius:20px 0 0 20px; }
  .navbar.default-layout .navbar-menu-wrapper { height:58px; width:calc(100% - 96px); border-radius:0 20px 20px 0; }
  nav#sidebar.sidebar-offcanvas.active { right:10px; }
  .main-panel .content-wrapper { padding-top:8px; }
  .page-title, .dv-editor-title { font-size:25px; }
  .dv-metrics-grid > [class*="col-"] { padding:16px; border-radius:20px; }
  .dv-host-overview h3 { font-size:34px; }
  .dv-host-overview h5 { font-size:11px !important; }
  .dv-metrics-grid > .col-12 .wrapper.w-100 { display:block; }
  .dv-metrics-grid > .col-12 #storage_data { margin-top:12px; }
  .dv-metrics-grid > :nth-child(2) .wrapper.my-auto, .dv-metrics-grid > :nth-child(3) .wrapper.my-auto { margin-top:8px !important; }
  #editor-wrapper .page-title-header { padding:14px; }
  #editor-wrapper #save-container { padding:12px; }
  .card .card-header { padding:18px; }
}
@media(min-width:992px) {
  body.sidebar-icon-only #sidebar > .nav > .nav-item > .nav-link { padding:12px 10px !important; }
  body.sidebar-icon-only #sidebar > .nav > .nav-item.hover-open > .nav-link .menu-title,
  body.sidebar-icon-only #sidebar > .nav > .nav-item:focus-within > .nav-link .menu-title,
  body.sidebar-icon-only #sidebar > .nav > .nav-item.hover-open > .collapse,
  body.sidebar-icon-only #sidebar > .nav > .nav-item:focus-within > .collapse { left:calc(100% + 4px); }
}
.dv-host-overview .card-body > .dv-metrics-grid > [class*="col-"] { margin:0 !important; }
#editor-wrapper #editor { min-height:160px !important; }
#servers_table { border-collapse:separate !important; border-spacing:0 10px !important; }
#servers_table th { width:auto !important; }
#servers_table .col-server { min-width:160px; white-space:normal; }
#servers_table .col-serverIcon { min-width:48px; }
#servers_table .col-cpuUsage { min-width:88px; }
#servers_table .col-size { min-width:96px; }
#servers_table .col-players { min-width:92px; }
#servers_table .col-version { min-width:96px; }
body:not(:has(#editor-wrapper)) .container-scroller > .page-body-wrapper:not(.full-page-wrapper) { padding-top:var(--dv-header) !important; }
#servers_table tbody td { padding-left:10px; padding-right:10px; }
#servers_table thead th { padding-left:10px; padding-right:10px; }
#servers_table .col-version { white-space:normal; }
#servers_table .actions_serverlist a { margin-left:1px; margin-right:1px; }
@media(max-width:520px) {
  .actions_serveritem { min-width:44px; min-height:44px; }
  .card-header a[href="/server/step1"] { min-height:44px; }
}
/* Server sections are revealed on demand, using the same rounded button language as the server list. */
.dv-hidden-section-nav { display:none !important; }
.dv-section-picker { position:relative; width:100%; margin:20px 0 24px; padding:0; min-width:0; }
.dv-section-picker > .dv-section-current { display:flex; align-items:center; gap:10px; list-style:none;
  width:100%; min-height:48px; padding:12px 16px; border:1px solid var(--pink); border-radius:14px;
  background:var(--pink); color:var(--button-ink); cursor:pointer; font-size:14px; font-weight:650; }
.dv-section-picker > .dv-section-current::-webkit-details-marker { display:none; }
.dv-section-current-name { min-width:0; flex:1; overflow-wrap:anywhere; }
.dv-section-current > i { flex-shrink:0; font-size:18px; }
.dv-section-picker[open] > .dv-section-current { border-radius:14px 14px 0 0; }
.dv-section-menu { border:1px solid var(--line); border-top:0; border-radius:0 0 16px 16px;
  background:var(--card); padding:10px; max-height:min(460px,60dvh); overflow-y:auto; overscroll-behavior:contain; }
.dv-section-picker:not([open]) > .dv-section-menu { display:none !important; }
.dv-section-picker .dv-section-options { display:grid !important; grid-template-columns:minmax(0,1fr);
  gap:7px; width:100%; max-width:none; margin:0 !important; padding:0 !important; border:0; background:transparent; }
.dv-section-picker .dv-section-options > .nav-item { width:100%; min-width:0; margin:0; }
.dv-section-picker .dv-section-options .nav-link { display:flex !important; align-items:center; justify-content:flex-start;
  gap:9px; width:100%; min-height:44px; white-space:normal; overflow-wrap:anywhere; padding:11px 12px;
  border:1px solid var(--line); border-radius:14px; background:var(--bg); color:var(--ink); font-size:14px; }
.dv-section-picker .dv-section-options .nav-link:hover { background:var(--soft); border-color:var(--pink); color:var(--ink); }
.dv-section-picker .dv-section-options .nav-link.active { background:var(--pink) !important; color:var(--button-ink) !important; border-color:var(--pink); }
.dv-section-picker .dv-section-options .nav-link i { font-size:18px; flex-shrink:0; }
@media(max-width:520px) {
  .dv-section-picker { margin:16px 0 20px; }
  .dv-section-picker > .dv-section-current { min-height:48px; }
  .dv-section-menu { padding:8px; }
}
.dv-section-picker { max-width:340px; }
.dv-section-picker .dv-section-options .nav-item a.nav-link { border-radius:14px !important;
  padding:11px 12px !important; min-height:44px; line-height:1.45; }
/* Duskvale file workspace and upload review. All original file operations remain intact. */
#context-container { border-radius:26px; padding:16px; background:var(--bg); }
.dv-file-heading { display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:12px;
  padding:8px 4px 22px; border-bottom:1px solid var(--line); margin-bottom:16px; }
.dv-file-heading h2 { font-size:22px; font-weight:750; margin:0 0 5px; }
.dv-file-heading p { font-size:13px; color:var(--mute); margin:0; }
.dv-file-count { padding:7px 12px; border:1px solid var(--line); border-radius:999px; color:var(--mute); font-size:12px; white-space:nowrap; }
#context-container .table-nav-container { padding:16px; border:1px solid var(--line); border-radius:18px; margin-bottom:12px; gap:14px; }
#table-nav-buttons button { margin-bottom:0; }
#table-nav-buttons #upload-file { background:var(--pink) !important; color:var(--button-ink) !important; border-color:var(--pink) !important; }
#table-nav-buttons #upload-file:hover { background:var(--rose) !important; color:var(--button-ink) !important; }
#files_table { border-collapse:separate !important; border-spacing:0 8px !important; width:100%; }
#files_table thead th { padding:12px 10px; background:transparent; color:var(--mute); border:0 !important; font-size:11px; line-height:1.5; }
#files_table tbody td { padding:14px 10px; background:var(--card); border-top:1px solid var(--line) !important;
  border-bottom:1px solid var(--line) !important; vertical-align:middle; font-size:13px; }
#files_table tbody td:first-child { border-left:1px solid var(--line) !important; border-radius:16px 0 0 16px; }
#files_table tbody td:last-child { border-right:1px solid var(--line) !important; border-radius:0 16px 16px 0; }
#files_table tbody tr:hover td { background:var(--soft) !important; }
#files_table tbody tr:has(.row-select:checked) td { background:color-mix(in srgb,var(--pink) 9%,var(--card)) !important; border-color:color-mix(in srgb,var(--pink) 45%,var(--line)) !important; }
#files_table td.column-1 { position:relative; width:30%; min-width:220px; max-width:360px; white-space:normal !important; }
.dv-file-icon { display:inline-flex; align-items:center; justify-content:center; width:38px; height:38px;
  margin-right:10px; vertical-align:middle; border-radius:12px; background:var(--soft); border:1px solid var(--line); }
.dv-file-icon i { font-size:21px; }
.dv-file-copy { display:inline-flex; flex-direction:column; gap:4px; vertical-align:middle; max-width:calc(100% - 54px); }
.dv-file-name { font-size:14px; font-weight:600; line-height:1.5; color:var(--ink); overflow-wrap:anywhere; }
.dv-file-meta { display:none; color:var(--mute); font-size:12px; font-weight:400; }
#files_table td:nth-child(3), #files_table td:nth-child(4), #files_table td:nth-child(5) { color:var(--mute); font-size:12px; }
#files_table td:nth-child(4) { min-width:130px; }
#files_table td:nth-child(6) { min-width:90px; color:var(--mute); white-space:nowrap; }
#files_table td:nth-child(6) i { font-size:17px; }
#files_table .custom-check { display:flex; align-items:center; justify-content:center; min-height:44px; }
#files_table .root-select, #files_table .row-select { width:24px; height:24px; border-radius:7px; border:1px solid var(--line); background:var(--bg); flex-shrink:0; }
#files_table .root-select:checked, #files_table .row-select:checked { background:var(--pink); border-color:var(--pink); }
#files_table .root-select:checked::after, #files_table .row-select:checked::after { border-color:var(--button-ink); left:9px; top:4px; }
#files_table td.context-button { width:58px; min-width:58px; text-align:center; }
#files_table td.context-button > .options, .dv-file-actions { display:inline-flex; align-items:center; justify-content:center;
  width:40px; height:40px; border:1px solid var(--line); border-radius:12px; background:var(--bg); color:var(--ink); cursor:pointer; }
#files_table .options i { font-size:22px; }
.dv-file-actions { position:absolute; right:10px; top:50%; transform:translateY(-50%); width:44px; height:44px; }
.dv-file-actions:hover, #files_table td.context-button > .options:hover { border-color:var(--pink); color:var(--pink); }
#context-menu.context-menu { min-width:220px; padding:7px; border-radius:18px; border:1px solid var(--line); background:var(--card); box-shadow:var(--shadow); }
#context-menu .menu-item { display:flex; align-items:center; gap:10px; min-height:44px; padding:10px 12px; border-radius:11px; color:var(--ink); }
#context-menu .menu-item h6 { margin:0; font:500 14px var(--font-family-sans-serif) !important; color:inherit; }
#context-menu .menu-item .dv-context-icon { font-size:19px; color:var(--mute); }
#context-menu .menu-item:hover { background:var(--soft); }
#context-menu .menu-item#delete { margin-top:5px; border-top:1px solid var(--line); color:var(--danger-ink); }
#context-menu .menu-item#delete .dv-context-icon { color:var(--danger-ink); }
#file-status { width:min(330px,calc(100% - 24px)); border:1px solid var(--line); outline:0; border-radius:16px;
  background:var(--card); color:var(--ink); padding:14px 16px; bottom:12px; box-shadow:var(--shadow); }
#file-status-content { border-radius:18px; background:var(--card); border-color:var(--line); padding:16px; margin-bottom:8px; }
#upload-progress-bar-parent > div { padding:12px; border:1px solid var(--line); border-radius:12px; margin-bottom:8px; overflow-wrap:anywhere; }
#upload-progress-bar-parent .progress-bar { background-color:var(--pink); min-height:8px; border-radius:999px; }
#upload-progress-bar-parent .upload-percent { min-width:42px; margin-right:8px; color:var(--mute); font-size:12px; }
#drop-zone-overlay { border:2px dashed var(--pink); background:color-mix(in srgb,var(--bg) 92%,transparent); border-radius:20px; }
#drop-zone-overlay #drop-zone-img { scale:1 !important; font-size:56px; color:var(--pink); }
/* Upload modal: original input, form, submit handler and upload queue are preserved. */
.dv-upload-modal .modal-dialog { max-width:600px; width:calc(100% - 32px); margin:24px auto; }
.dv-upload-modal .modal-content { display:flex; flex-direction:column; max-height:calc(100dvh - 48px);
  border:1px solid var(--line); border-radius:28px; overflow:hidden; background:var(--card); }
.dv-upload-modal .modal-header { padding:22px 24px; align-items:center; flex-shrink:0; }
.dv-upload-modal .modal-title { font-size:24px; font-weight:750; }
.dv-upload-modal .modal-body { padding:24px; min-height:0; overflow-y:auto; }
.dv-upload-modal .modal-footer { padding:18px 24px; flex-shrink:0; gap:8px; }
.dv-upload-modal .modal-footer .btn { min-height:44px; margin:0; padding:10px 20px; }
.dv-upload-modal .dv-upload-submit { background:var(--pink) !important; border-color:var(--pink) !important; color:var(--button-ink) !important; }
.dv-upload-modal .dv-upload-submit:disabled { opacity:.45; background:var(--disabled) !important; border-color:var(--line) !important; color:var(--mute) !important; }
.dv-upload-destination { display:flex; flex-direction:column; gap:5px; padding:12px 14px; margin-bottom:18px;
  border:1px solid var(--line); border-radius:12px; background:var(--bg); }
.dv-upload-destination > span { color:var(--mute); font-size:11px; font-weight:600; text-transform:uppercase; letter-spacing:.05em; }
.dv-upload-destination code { color:var(--ink); font-size:13px; overflow-wrap:anywhere; }
.dv-upload-modal .upload-area { display:flex !important; position:relative; flex-direction:column; align-items:center; justify-content:center;
  width:100% !important; min-height:230px; gap:12px; padding:24px 20px; margin:0; border:1px dashed var(--pink);
  border-radius:22px; background:var(--bg); color:var(--ink); cursor:pointer; text-align:center; }
.dv-upload-modal .upload-area:hover { background:var(--soft); border-color:var(--rose); }
.dv-upload-symbol { display:grid; place-items:center; width:60px; height:60px; border-radius:18px; background:var(--soft); color:var(--pink); border:1px solid var(--line); }
.dv-upload-symbol i { font-size:32px; }
.dv-upload-modal .upload-area strong { font-family:'Bricolage Grotesque',sans-serif; font-size:19px; font-weight:700; line-height:1.3; }
.dv-upload-hint { color:var(--mute); font-size:13px; font-weight:400; }
.dv-upload-choose { display:inline-flex; padding:8px 14px; border:1px solid var(--line); border-radius:999px; font-size:12px; font-weight:600; color:var(--ink); }
.dv-upload-input { position:absolute !important; width:1px !important; height:1px !important; min-height:0 !important;
  margin:0 !important; padding:0 !important; opacity:0; overflow:hidden; border:0 !important; }
.dv-upload-summary { color:var(--mute); font-size:12px; margin:16px 0 10px; }
.dv-upload-list { list-style:none; padding:0 !important; margin:0 !important; max-height:220px; overflow-y:auto; }
.dv-upload-file { display:flex; align-items:center; gap:10px; border:1px solid var(--line); border-radius:12px;
  background:var(--bg); padding:12px; margin:0 0 8px; min-width:0; }
.dv-upload-file > i { color:var(--pink); font-size:21px; flex-shrink:0; }
.dv-upload-file > span { min-width:0; flex:1; color:var(--ink); overflow-wrap:anywhere; font-size:13px; line-height:1.5; }
.dv-upload-file > small { flex-shrink:0; color:var(--mute); font-size:11px; }
@media(min-width:576px) {
  #files_table { min-width:840px; }
  #files_table tbody td:first-child { width:44px; }
}
@media(max-width:575px) {
  #context-container { padding:10px; border-radius:22px; }
  .dv-file-heading { padding:6px 3px 16px; margin-bottom:12px; }
  .dv-file-heading h2 { font-size:20px; }
  .dv-file-heading p { font-size:12px; }
  .dv-file-count { padding:5px 9px; font-size:11px; }
  #files_table { min-width:0; }
  #files_table td.column-1 { width:100%; max-width:none; min-width:0; padding:14px 62px 14px 10px; border-radius:16px !important; border:1px solid var(--line) !important; }
  .dv-file-icon { width:34px; height:34px; margin-right:8px; border-radius:10px; }
  .dv-file-copy { max-width:calc(100% - 46px); }
  .dv-file-name { font-size:13px; }
  .dv-file-meta { display:block; }
  .dv-upload-modal .modal-dialog { width:calc(100% - 20px); margin:10px auto; }
  .dv-upload-modal .modal-content { max-height:calc(100dvh - 20px); border-radius:22px; }
  .dv-upload-modal .modal-header, .dv-upload-modal .modal-body { padding:18px; }
  .dv-upload-modal .modal-title { font-size:22px; }
  .dv-upload-modal .modal-footer { padding:14px 18px; display:grid; grid-template-columns:1fr 1fr; }
  .dv-upload-modal .modal-footer .btn { padding:10px; font-size:13px; width:100%; }
  .dv-upload-modal .upload-area { min-height:220px; padding:20px 12px; }
  .dv-upload-file { padding:10px; gap:8px; }
}
.dv-upload-modal .upload-area:focus-within { outline:3px solid var(--focus); outline-offset:3px; }
@media(min-width:576px) { #files_table td.column-1 { border-radius:0 !important; } }
.dv-file-actions { display:none; }
@media(max-width:575px) {
  #files_table tbody tr.file > td:not(.column-1), #files_table tbody tr.directory > td:not(.column-1) { display:none !important; }
  #files_table .dv-file-actions { display:inline-flex; }
}
.dv-upload-modal .bootbox-close-button { display:grid; place-items:center; width:40px; height:40px;
  padding:0 !important; margin:0 !important; flex-shrink:0; border:1px solid var(--line); border-radius:50%;
  background:var(--bg); color:var(--mute); opacity:1; font-size:24px; line-height:1; }
.dv-upload-modal .bootbox-close-button:hover { color:var(--ink); border-color:var(--pink); }
@media(max-width:575px) { .dv-upload-modal .bootbox-close-button { width:44px; height:44px; } }
.dv-upload-modal .modal-footer button.dv-upload-submit { transition:none !important; }
.dv-upload-modal .modal-footer button.dv-upload-submit:not(:disabled) { background:var(--pink) !important;
  color:var(--button-ink) !important; border-color:var(--pink) !important; opacity:1; }

/* Duskvale identity and background customization */
.dv-brand {display:flex!important;align-items:center;justify-content:center;gap:12px;color:var(--ink)!important;font-family:"Bricolage Grotesque",sans-serif;font-weight:800;font-size:25px;}
.dv-brand svg {width:40px;height:40px;flex:0 0 40px;}
.dv-brand.brand-logo-mini span {display:none;}
.auto-form-logo.dv-brand {margin:0 0 28px!important;font-size:32px;}
.auto-form-logo.dv-brand svg {width:54px;height:54px;flex-basis:54px;}
#login-form-background {border:1px solid var(--line)!important;border-radius:24px!important;box-shadow:0 18px 60px #0005;padding:32px!important;max-width:100%;}
.image-picker[hidden],.form-group[hidden],h4[hidden],hr[hidden] {display:none!important;}
.image-picker[data-id="background"] {padding:24px;border:1px solid var(--line);border-radius:20px;background:var(--soft);margin-bottom:24px;}
.image-picker > .d-flex {gap:20px;}
.image-picker .flex-grow-1 {min-width:0;}
.image-picker .brand-thumb {flex-shrink:0;width:160px;max-width:100%;margin:0!important;}
.image-picker .brand-thumb img {width:100%;height:108px;object-fit:cover;border-radius:12px;border:1px solid var(--line);}
.image-picker-row {display:flex;gap:8px;align-items:center;flex-wrap:wrap;}
.image-picker-row select {flex:1 1 160px;min-width:0;width:auto!important;}
.image-picker-row .btn {flex-shrink:0;min-width:44px;min-height:44px;border-radius:12px!important;}
#login_preview {overflow:hidden;border:1px solid var(--line);border-radius:20px;background:var(--soft);}
#login-form-preview {max-width:100%;}
@media(max-width:860px){.image-picker > .d-flex {flex-direction:column;}.image-picker .flex-grow-1{width:100%;}.image-picker .brand-thumb{width:100%;}.image-picker .brand-thumb img{height:160px;}}
@media(max-width:520px){.image-picker[data-id="background"]{padding:16px;}#login-form-background{padding:24px!important;} .auto-form-logo.dv-brand{font-size:28px;} .dv-brand{font-size:22px;}}

#login-form-background {background:rgb(27 20 25 / var(--dv-login-opacity,.95))!important;}
.navbar.default-layout .navbar-brand-wrapper .brand-logo-mini.dv-brand {display:none!important;}
.navbar.default-layout .navbar-brand-wrapper .brand-logo.dv-brand {display:flex!important;}
body.sidebar-icon-only .navbar.default-layout .navbar-brand-wrapper .brand-logo.dv-brand {display:none!important;}
body.sidebar-icon-only .navbar.default-layout .navbar-brand-wrapper .brand-logo-mini.dv-brand {display:flex!important;}
@media(max-width:991px){
.navbar.default-layout .navbar-brand-wrapper .brand-logo.dv-brand {display:none!important;}
.navbar.default-layout .navbar-brand-wrapper .brand-logo-mini.dv-brand {display:flex!important;}
}

/* One brand element at every breakpoint, including the collapsed sidebar. */
.navbar.default-layout .navbar-brand-wrapper .brand-logo.dv-brand,
body.sidebar-icon-only .navbar.default-layout .navbar-brand-wrapper .brand-logo.dv-brand {display:flex!important;}
body.sidebar-icon-only .navbar-brand.dv-brand span {display:none;}
@media(max-width:991px){.navbar-brand.dv-brand span{display:none;}}
/* Public login: intrinsic card sizing, scrollable on short screens. */
.dv-public-login .page-body-wrapper,.dv-public-status .page-body-wrapper {min-height:100vh;min-height:100dvh;padding:0!important;}
.dv-public-login .auth {min-height:100vh;min-height:100dvh;height:auto!important;padding:32px 16px!important;align-items:center!important;}
.dv-public-login .auth > .row {width:100%!important;margin:0!important;}
.dv-public-login .auth > .row > .mx-auto {flex:0 1 460px;max-width:460px;width:100%;padding:0;}
.dv-public-login #login-form-background {width:100%;min-width:0;margin:0!important;}
.dv-public-login #login-form {min-width:0;}
.dv-public-login .form-group {min-width:0;}
.dv-public-login .form-control {width:100%!important;min-width:0;max-width:100%;font-size:16px!important;}
.dv-public-login #multi-label {display:block;width:100%;margin-bottom:12px;}
.dv-public-login #multi-label .input-group {margin-top:12px;width:100%;}
.dv-public-login #totp_container {width:100%;min-width:0;}
.dv-public-login [id="2fa-type"] {position:static!important;float:none!important;margin:0!important;max-width:100%!important;width:100%!important;}
.dv-public-login .auto-form-logo {flex-wrap:wrap;}
.dv-public-login .forgot-password {white-space:normal;overflow-wrap:anywhere;}
.dv-public-login .login-input {border-radius:12px!important;}
/* Public status retains Crafty's live data and mobile accordion. */
.dv-public-status .auth {min-height:100vh;min-height:100dvh;padding:40px 24px!important;background:var(--bg)!important;align-items:flex-start!important;}
.dv-public-status .auth > .mx-auto {width:100%;max-width:1120px;min-width:0;}
.dv-public-status .auth > .mx-auto > .auto-form-wrapper {padding:0!important;background:transparent!important;box-shadow:none!important;}
.dv-status-heading {text-align:center;margin:0 0 32px;}
.dv-status-heading .auto-form-logo.dv-brand {margin-bottom:20px!important;}
.dv-status-heading h1 {font-size:28px;font-weight:800;margin-bottom:12px;}
.dv-status-heading p {color:var(--mute);line-height:1.6;}
.dv-status-heading .btn {margin-top:8px;min-height:44px;}
.dv-public-status .login-modal {margin:0!important;min-width:0;padding:24px!important;background:var(--card)!important;border:1px solid var(--line);border-radius:20px!important;box-shadow:var(--shadow)!important;}
.dv-public-status .login-modal > hr,.dv-public-status .login-modal > .row.text-center {display:none;}
.dv-public-status .login-modal table {margin:0;}
.dv-public-status .login-modal td {white-space:normal;overflow-wrap:anywhere;}
.dv-public-status .login-modal td img {max-width:40px;max-height:40px;}
.dv-public-status #accordionServers {display:grid;gap:12px;}
.dv-public-status #accordionServers .card {border-radius:16px!important;overflow:hidden;background:var(--soft)!important;border:1px solid var(--line)!important;}
.dv-public-status #accordionServers .card-header {padding:16px!important;background:transparent!important;}
.dv-public-status #accordionServers h2 {padding:0;overflow:visible!important;}
.dv-public-status #accordionServers h2 > .row {margin:0;gap:12px;align-items:center;}
.dv-public-status #accordionServers h2 .col-8 {flex:1 1 170px;max-width:100%;}
.dv-public-status #accordionServers h2 .col-4 {flex:0 1 auto;max-width:100%;}
.dv-public-status #accordionServers .btn-link {padding:0!important;min-height:44px;font-size:16px;gap:8px;justify-content:flex-start!important;white-space:normal;text-align:left;overflow-wrap:anywhere;}
.dv-public-status #accordionServers .card-body {padding:16px!important;border-top:1px solid var(--line);}
@media(max-width:520px){
.dv-public-login .auth {padding:20px 12px!important;}
.dv-public-login #login-form-background {padding:24px 20px!important;}
.dv-public-status .auth {padding:28px 16px!important;}
.dv-public-status .login-modal {padding:16px!important;}
.dv-status-heading h1 {font-size:24px;}
}
@media(max-height:600px){.dv-public-login .auth {align-items:flex-start!important;padding-top:16px!important;padding-bottom:16px!important;}}
.dv-public-login #multi-label .input-group {display:flex!important;flex-direction:column;align-items:stretch;height:auto!important;min-height:0;gap:12px;}
.dv-public-login #totp_container {flex:0 0 auto;}
.dv-public-login #multi-label {height:auto!important;}
.dv-public-status .auth > .mx-auto > .auto-form-wrapper > .row {margin-left:0;margin-right:0;}
.dv-public-status [id^="m_server_online_status_"] .text-success::before {content:"Online · ";}
.dv-public-status [id^="m_server_name_"]::after {content:"⌄";margin-left:auto;color:var(--pink);}

/* Brand stays centered before and after progressive enhancement. */
.navbar.default-layout .navbar-brand-wrapper {align-items:center!important;padding-top:0!important;padding-bottom:0!important;}
.navbar.default-layout .navbar-brand-wrapper .brand-logo-mini {display:none!important;}
.navbar.default-layout .navbar-brand-wrapper .brand-logo {display:flex!important;align-items:center!important;justify-content:center!important;margin:0 auto!important;line-height:1!important;}
.navbar.default-layout .navbar-brand-wrapper .brand-logo img {width:40px!important;height:40px!important;object-fit:contain;}
.dv-brand {line-height:1.15!important;text-align:center;}
.dv-brand span {display:block;line-height:1.15;}
.auto-form-logo {text-align:center;}
.auto-form-logo:not(.dv-brand) img {width:54px;height:54px;object-fit:contain;}
@media(max-width:991px){.navbar-brand.dv-brand span{display:none;}}
body.sidebar-icon-only .navbar-brand.dv-brand span{display:none;}
/* Compact login, with natural scrolling reserved for constrained mobile screens. */
.dv-public-login .auth {padding:16px!important;}
.dv-public-login .auth > .row > .mx-auto {flex-basis:400px;max-width:400px;}
.dv-public-login #login-form-background {padding:24px!important;}
.dv-public-login .auto-form-logo.dv-brand {font-size:28px;margin-bottom:20px!important;gap:10px;}
.dv-public-login .auto-form-logo.dv-brand svg {width:44px;height:44px;flex-basis:44px;}
.dv-public-login .form-group {margin-bottom:12px!important;}
.dv-public-login .form-group:has(> #error-field:empty) {margin:0!important;}
.dv-public-login .label {margin-bottom:6px;}
.dv-public-login .text-block.my-3 {margin-top:8px!important;margin-bottom:8px!important;}
.dv-public-login #multi-label {margin-bottom:0;}
.dv-public-login #multi-label .input-group {margin-top:8px;}
@media(min-width:861px){
.dv-public-login .auth {align-items:center!important;}
.dv-public-login #multi-label .input-group {flex-direction:row;gap:8px;}
.dv-public-login #totp_container {flex:1 1 40%;width:40%;}
.dv-public-login [id="2fa-type"] {flex:1 1 60%;width:60%!important;}
}
@media(min-width:861px) and (max-height:650px){
.dv-public-login #login-form-background {padding:18px 24px!important;}
.dv-public-login .auto-form-logo.dv-brand {font-size:25px;margin-bottom:12px!important;}
.dv-public-login .auto-form-logo.dv-brand svg {width:36px;height:36px;flex-basis:36px;}
.dv-public-login .form-group {margin-bottom:8px!important;}
.dv-public-login .form-control,.dv-public-login .submit-btn {min-height:40px!important;height:40px!important;padding-top:8px!important;padding-bottom:8px!important;}
.dv-public-login .text-block.my-3 {margin-top:4px!important;margin-bottom:4px!important;}
}
@media(max-width:520px){.dv-public-login .auth{padding:16px 12px!important;}.dv-public-login #login-form-background{padding:20px!important;}}
@media(min-width:861px){
.dv-public-login #multi-label .input-group {display:grid!important;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:8px;}
.dv-public-login #totp_container,.dv-public-login [id="2fa-type"] {width:100%!important;}
}
@media(min-width:861px) and (max-height:520px){
.dv-public-login .auth {padding:8px!important;}
.dv-public-login #login-form-background {padding:14px 24px!important;}
.dv-public-login .form-group {margin-bottom:6px!important;}
.dv-public-login .auto-form-logo.dv-brand {margin-bottom:8px!important;}
}
