/* BASTION — selected variant 5: dark graphite, blue/red volume. */
:root {
    color-scheme: dark;
    --theme-bg: #0f1520;
    --theme-surface: #1c2739;
    --theme-raised: #2b3b52;
    --theme-text: #eef4ff;
    --theme-muted: #b0c0d7;
    --theme-line: #425a78;
    --theme-accent: #4596ff;
}
body, body.login-page { background: var(--theme-bg); color: var(--theme-text); }
a { color: #8ebfff; }
a:hover { color: #bcd9ff; }
.sidebar, .mobile-bar { background: var(--theme-surface); color: var(--theme-text); }
.sidebar { border-right: 1px solid var(--theme-line); }
.sidebar .logo { color: var(--theme-text); border-bottom-color: var(--theme-line); }
.sidebar .server-stats { color: var(--theme-muted); border-bottom-color: var(--theme-line); }
.server-stats b { color: var(--theme-text); }
.sidebar nav a, .sidebar-bottom a { color: var(--theme-muted); }
.sidebar nav a { border-bottom-color: #425a786b; }
.sidebar nav a:hover, .sidebar nav a.active { background: #283953; color: var(--theme-text); }
.sidebar nav a.active { border-left-color: var(--theme-accent); }
.sidebar-bottom { border-top-color: var(--theme-line); }
.card, .login-box { background: var(--theme-surface); border: 1px solid var(--theme-line); border-radius: 12px; box-shadow: 0 8px 16px #0004, inset 0 1px #ffffff0b; }
.card-danger { border-color: #925466; }
.muted { color: var(--theme-muted); }
th { color: var(--theme-muted); border-bottom-color: var(--theme-line); }
td { border-bottom-color: #425a786b; }
tr:hover td { background: #26364e; }
.actions a, a.dirname { color: #8ebfff; }
a.dirname:hover { color: #bedbff; }
.badge { background: #293e5b; color: #c3ddff; border: 1px solid var(--theme-line); }
input[type=text], input[type=password], input[type=url], input[type=email], input[type=number], input[type=search], input[type=date], input[type=time], select, textarea {
    max-width: 100%; min-width: 0; padding: 8px 12px; border: 1px solid var(--theme-line); border-radius: 6px; background: var(--theme-raised); color: var(--theme-text); font-size: 14px; box-shadow: inset 0 1px 3px #0002;
}
input::placeholder, textarea::placeholder { color: var(--theme-muted); opacity: 1; }
input:focus, select:focus, textarea:focus { border-color: #7db5ff; box-shadow: 0 0 0 2px #4596ff35; }
input[type=checkbox], input[type=radio] { accent-color: var(--theme-accent); }
input[type=file] { color: var(--theme-muted); }
input[type=file]::file-selector-button { margin-right: 8px; padding: 7px 10px; border: 1px solid var(--theme-line); border-radius: 6px; background: var(--theme-raised); color: var(--theme-text); cursor: pointer; }
button { padding: 8px 14px; border: 1px solid #79b6ff; border-bottom-color: #1b4e93; border-radius: 6px; background: linear-gradient(#78b6ff, #4d95f0); color: #081e37; font-weight: 600; box-shadow: 0 3px 0 #163a6b; margin-bottom: 3px; }
button:hover { background: linear-gradient(#8ac1ff, #63a3f5); }
button:active { transform: translateY(2px); box-shadow: 0 1px 0 #163a6b; }
button.danger { background: linear-gradient(#cc465a, #ab263c); color: #fff; border-color: #ec8590; border-bottom-color: #872334; box-shadow: 0 3px 0 #6b1e2d; }
button.danger:hover { background: linear-gradient(#d14b5f, #b32b40); }
button.danger:active { box-shadow: 0 1px 0 #6b1e2d; }
button:disabled { opacity: .55; cursor: not-allowed; }
button:focus-visible, a:focus-visible { outline: 2px solid #9ac6ff; outline-offset: 3px; }
.menu-toggle, .sidebar-close { background: #283953; color: var(--theme-text); border-color: var(--theme-line); box-shadow: inset 0 1px #ffffff0b; margin-bottom: 0; }
.menu-toggle:hover, .sidebar-close:hover { background: #344961; }
.sidebar-backdrop, .sidebar-backdrop:hover { background: #0009; border: 0; box-shadow: none; margin: 0; }
.sidebar-backdrop:active { transform: none; }
.copy-btn { background: #293e5b; color: var(--theme-text); box-shadow: none; margin-bottom: 0; border-color: #546887; }
.flash-ok { background: #17372d; color: #b0ebcf; border-color: #3b7560; }
.flash-err { background: #402331; color: #ffbbc4; border-color: #854a5b; }
.status-ok { color: #9ee1bd; }
.status-off { color: #ffacb8; }
pre.log { background: #111b29; color: #d3e2f5; border: 1px solid var(--theme-line); }
.files-table tbody tr { border-color: var(--theme-line); }
.login-box { width: min(380px, calc(100% - 32px)); }
body.login-page { min-height: 100svh; }
@media (max-width: 900px) {
    .files-table tbody tr { background: #243349; box-shadow: inset 0 1px 5px #0003; }
    .files-table tr:hover td { background: transparent; }
    .sidebar .server-stats { border-bottom-color: var(--theme-line); }
}
