/* ============================================================
   0vo · Glass Console 2026-09-08
   Signature: frosted glass panels over drifting color glows.
   NO grid patterns anywhere. Local-only assets (pure CSS/SVG).
   Loaded last in every page head, so it wins the cascade.
   ============================================================ */

/* ---------- 1. Tokens ---------- */
:root {
  --font-ui: -apple-system, 'Segoe UI', 'PingFang SC', 'Microsoft YaHei', 'Noto Sans SC', sans-serif;
  --font-display: VoLocal, -apple-system, 'Segoe UI', 'PingFang SC', 'Microsoft YaHei', sans-serif;
  --gl-glass: rgba(255, 255, 255, .52);
  --gl-glass-strong: rgba(255, 255, 255, .66);
  --gl-glass-deep: rgba(255, 255, 255, .78);
  --gl-edge: rgba(255, 255, 255, .66);
  --gl-hi: inset 0 1px 0 rgba(255, 255, 255, .72);
  --gl-blur: blur(18px) saturate(160%);
  --gl-blur-strong: blur(26px) saturate(170%);
  --gl-dark-glass: rgba(10, 20, 32, .55);
  --gl-dark-glass-strong: rgba(8, 16, 27, .72);
  --gl-dark-edge: rgba(140, 186, 255, .16);
  --gl-dark-hi: inset 0 1px 0 rgba(190, 220, 255, .10);
  --accent: #ff6a3d;
  --accent-2: #2f7dff;
  --accent-3: #12a984;
  --gl-radius-card: 20px;
  --gl-shadow-card: 0 10px 34px rgba(13, 32, 54, .10), 0 2px 8px rgba(13, 32, 54, .06);
  --gl-shadow-float: 0 18px 44px rgba(13, 32, 54, .16), 0 4px 12px rgba(13, 32, 54, .08);
}

/* ---------- 2. Ambient background: color glows + grain (no grid) ---------- */
html {
  background: linear-gradient(158deg, #e9f1f8 0%, #f7f3ec 34%, #eef5f1 62%, #e9eef9 100%);
  background-attachment: fixed;
}
html[data-theme="dark"] {
  background: linear-gradient(158deg, #05080f 0%, #0a1220 40%, #071017 70%, #090d18 100%);
  background-attachment: fixed;
}
body {
  background: transparent;
}
body::before {
  content: "";
  position: fixed;
  inset: -6%;
  z-index: 0;
  pointer-events: none;
  background:
    radial-gradient(44% 40% at 14% 10%, rgba(58, 150, 255, .66), transparent 64%),
    radial-gradient(40% 36% at 86% 14%, rgba(255, 116, 61, .6), transparent 64%),
    radial-gradient(48% 44% at 80% 88%, rgba(37, 199, 180, .55), transparent 64%),
    radial-gradient(32% 30% at 18% 92%, rgba(140, 116, 255, .38), transparent 70%);
  animation: ambient-drift 26s ease-in-out infinite alternate;
}
[data-theme="dark"] body::before {
  background:
    radial-gradient(44% 40% at 14% 10%, rgba(56, 189, 248, .20), transparent 68%),
    radial-gradient(40% 36% at 86% 14%, rgba(255, 110, 60, .16), transparent 68%),
    radial-gradient(48% 44% at 80% 88%, rgba(45, 212, 191, .14), transparent 68%),
    radial-gradient(32% 30% at 18% 92%, rgba(139, 92, 246, .18), transparent 70%);
}
@keyframes ambient-drift {
  0%   { transform: translate3d(-1.6%, -1.2%, 0) scale(1); }
  100% { transform: translate3d(1.8%, 1.6%, 0) scale(1.07); }
}
body::after {
  content: "";
  position: fixed;
  inset: 0;
  z-index: 2147483000;
  pointer-events: none;
  opacity: .05;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
}
[data-theme="dark"] body::after { opacity: .06; }

/* ---------- 3. Typography ---------- */
h1, h2, h3, .wordmark, .brand-lockup-mark {
  font-family: var(--font-display);
  font-weight: 700;
  letter-spacing: -.02em;
}
body { -webkit-font-smoothing: antialiased; text-rendering: optimizeLegibility; }
::selection { background: #ffb79e; color: #101820; }
[data-theme="dark"] ::selection { background: #ff7a52; color: #0a0f16; }

/* ---------- 4. Frosted glass surfaces ---------- */
.app-shell, .main-content, .admin-main { position: relative; }

.topbar {
  background: var(--gl-glass);
  -webkit-backdrop-filter: var(--gl-blur);
  backdrop-filter: var(--gl-blur);
  border: 1px solid var(--gl-edge);
  box-shadow: var(--gl-hi), 0 10px 32px rgba(13, 32, 54, .10);
}
[data-theme="dark"] .topbar {
  background: var(--gl-dark-glass);
  border-color: var(--gl-dark-edge);
  box-shadow: var(--gl-dark-hi), 0 12px 36px rgba(0, 0, 0, .35);
}
.wordmark { background: none; }
.wordmark span { color: var(--accent) !important; }
.topnav a { transition: background .18s ease, color .18s ease, border-color .18s ease; }
.topnav a:hover, .topnav a:focus-visible, .topnav a.is-active {
  background: rgba(255, 255, 255, .72);
  border-color: rgba(18, 169, 132, .35);
  color: var(--ink);
  box-shadow: 0 4px 14px rgba(13, 32, 54, .08);
}
[data-theme="dark"] .topnav a:hover,
[data-theme="dark"] .topnav a:focus-visible,
[data-theme="dark"] .topnav a.is-active {
  background: rgba(148, 190, 255, .12);
  border-color: rgba(140, 186, 255, .28);
  color: #eaf3ff;
}


/* ---------- 4b. High-specificity fixes for old theme rules ---------- */
[data-theme="light"] .brand-surface .topbar,
[data-theme="dark"] .brand-surface .topbar,
.brand-surface .topbar {
  background: var(--gl-glass);
  -webkit-backdrop-filter: var(--gl-blur);
  backdrop-filter: var(--gl-blur);
  border: 1px solid var(--gl-edge);
  border-bottom: 0;
  box-shadow: var(--gl-hi), 0 10px 32px rgba(13, 32, 54, .10);
  color: var(--ink);
}
[data-theme="dark"] .brand-surface .topbar {
  background: var(--gl-dark-glass);
  border-color: var(--gl-dark-edge);
  box-shadow: var(--gl-dark-hi), 0 12px 36px rgba(0, 0, 0, .35);
  color: #eaf3ff;
}
[data-theme="light"] .brand-surface .icon-button,
[data-theme="dark"] .brand-surface .icon-button,
.brand-surface .icon-button {
  background: rgba(255, 255, 255, .55);
  border-color: rgba(16, 42, 64, .16);
  color: var(--ink);
}
[data-theme="dark"] .brand-surface .icon-button {
  background: rgba(148, 190, 255, .08);
  border-color: rgba(140, 186, 255, .2);
  color: #dbe9ff;
}
[data-theme="light"] .brand-surface .button-outline,
[data-theme="dark"] .brand-surface .button-outline,
.brand-surface .button-outline {
  color: var(--ink);
  border-color: rgba(16, 42, 64, .24);
  background: rgba(255, 255, 255, .5);
}
[data-theme="dark"] .brand-surface .button-outline {
  color: #dbe9ff;
  border-color: rgba(140, 186, 255, .24);
  background: rgba(148, 190, 255, .08);
}
.brand-surface .user-chip { color: var(--ink); }
[data-theme="dark"] .brand-surface .user-chip { color: #eaf3ff; }
/* ---------- 5. Buttons & controls ---------- */
.button {
  transition: transform .16s ease, box-shadow .2s ease, background .16s ease, filter .16s ease;
}
.button:hover { transform: translateY(-1px); }
.button:active { transform: translateY(0); }
.button-primary {
  background: linear-gradient(135deg, #ff7a45 0%, #f0552b 100%);
  border: 0;
  color: #fff;
  box-shadow: 0 10px 24px rgba(240, 85, 43, .32), inset 0 1px 0 rgba(255, 255, 255, .28);
}
.button-primary:hover, .button-primary:focus-visible {
  background: linear-gradient(135deg, #ff8a58 0%, #e8481f 100%);
  filter: brightness(1.03);
  box-shadow: 0 14px 30px rgba(240, 85, 43, .4), inset 0 1px 0 rgba(255, 255, 255, .28);
}
.button-outline {
  background: rgba(255, 255, 255, .5);
  -webkit-backdrop-filter: blur(8px);
  backdrop-filter: blur(8px);
  border: 1px solid rgba(16, 42, 64, .22);
}
[data-theme="dark"] .button-outline {
  background: rgba(148, 190, 255, .08);
  border-color: rgba(140, 186, 255, .24);
  color: #dbe9ff;
}
.button-quiet { background: rgba(64, 160, 255, .08); border: 1px solid transparent; }
.icon-button {
  background: rgba(255, 255, 255, .55);
  -webkit-backdrop-filter: blur(8px);
  backdrop-filter: blur(8px);
  border-color: rgba(16, 42, 64, .16);
  transition: transform .16s ease, box-shadow .2s ease, background .16s ease;
}
[data-theme="dark"] .icon-button {
  background: rgba(148, 190, 255, .08);
  border-color: rgba(140, 186, 255, .2);
  color: #dbe9ff;
}
.icon-button:hover { transform: translateY(-1px); }
:focus-visible { outline: 2px solid var(--accent); outline-offset: 2px; border-radius: 6px; }

/* ---------- 6. Panels & cards ---------- */
.page-intro {
  background: var(--gl-glass);
  -webkit-backdrop-filter: var(--gl-blur-strong);
  backdrop-filter: var(--gl-blur-strong);
  border: 1px solid var(--gl-edge);
  box-shadow: var(--gl-hi), var(--gl-shadow-card);
  overflow: hidden;
}
.page-intro::after, .brand-route::after, .auth-intro::after { content: none !important; }
.page-intro::before {
  content: "";
  position: absolute;
  inset: 0;
  background:
    radial-gradient(60% 120% at 92% 0%, rgba(64, 160, 255, .16), transparent 60%),
    radial-gradient(50% 120% at 100% 100%, rgba(255, 122, 69, .14), transparent 62%);
  pointer-events: none;
}
[data-theme="dark"] .page-intro {
  background: var(--gl-dark-glass);
  border-color: var(--gl-dark-edge);
  box-shadow: var(--gl-dark-hi), 0 18px 46px rgba(0, 0, 0, .3);
}
.announcement-panel, .carousel-panel, .workspace-main, .utility-panel,
.profile-card, .account-status-panel, .admin-panel, .settings-panel, .security-section,
.stat-block, .admin-stat-grid > div, .account-card {
  background: var(--gl-glass);
  -webkit-backdrop-filter: var(--gl-blur);
  backdrop-filter: var(--gl-blur);
  border: 1px solid var(--gl-edge);
  box-shadow: var(--gl-hi), var(--gl-shadow-card);
  transition: transform .18s ease, box-shadow .22s ease;
}
[data-theme="dark"] .announcement-panel, [data-theme="dark"] .carousel-panel,
[data-theme="dark"] .workspace-main, [data-theme="dark"] .utility-panel,
[data-theme="dark"] .profile-card, [data-theme="dark"] .account-status-panel,
[data-theme="dark"] .admin-panel, [data-theme="dark"] .settings-panel,
[data-theme="dark"] .security-section, [data-theme="dark"] .stat-block,
[data-theme="dark"] .admin-stat-grid > div, [data-theme="dark"] .account-card {
  background: var(--gl-dark-glass);
  border-color: var(--gl-dark-edge);
  box-shadow: var(--gl-dark-hi), 0 14px 38px rgba(0, 0, 0, .32);
}
.stat-block:hover, .account-card:hover, .announcement-panel:hover {
  transform: translateY(-3px);
  box-shadow: var(--gl-hi), var(--gl-shadow-float);
}
[data-theme="dark"] .stat-block:hover, [data-theme="dark"] .account-card:hover,
[data-theme="dark"] .announcement-panel:hover {
  box-shadow: var(--gl-dark-hi), 0 22px 52px rgba(0, 0, 0, .44);
}
.eyebrow, .panel-kicker {
  color: var(--accent-2);
  font-weight: 700;
}
[data-theme="dark"] .eyebrow, [data-theme="dark"] .panel-kicker { color: #7cb1ff; }


/* ---------- 6b. Admin panel glass (beats future-console solid white) ---------- */
.admin-panel, .settings-panel, .security-section, .admin-stat-grid > div {
  background: var(--gl-glass) !important;
  -webkit-backdrop-filter: var(--gl-blur);
  backdrop-filter: var(--gl-blur);
}
[data-theme="dark"] .admin-panel, [data-theme="dark"] .settings-panel,
[data-theme="dark"] .security-section, [data-theme="dark"] .admin-stat-grid > div {
  background: var(--gl-dark-glass) !important;
}
/* ---------- 7. Forms ---------- */
.console-form, .stack-form { }
label input, label select, .console-form input, .console-form select,
.stack-form input, .form-row input, .form-row select, .admin-panel input,
.admin-panel select, .admin-panel textarea, .install-form input,
.admin-login-card input, .auth-panel input {
  background: rgba(255, 255, 255, .68);
  border: 1px solid rgba(16, 42, 64, .18);
  transition: border-color .16s ease, box-shadow .2s ease, background .16s ease;
}
[data-theme="dark"] label input, [data-theme="dark"] label select,
[data-theme="dark"] .console-form input, [data-theme="dark"] .console-form select,
[data-theme="dark"] .stack-form input, [data-theme="dark"] .form-row input,
[data-theme="dark"] .form-row select, [data-theme="dark"] .admin-panel input,
[data-theme="dark"] .admin-panel select, [data-theme="dark"] .admin-panel textarea,
[data-theme="dark"] .install-form input, [data-theme="dark"] .admin-login-card input,
[data-theme="dark"] .auth-panel input {
  background: rgba(5, 12, 22, .5);
  border-color: rgba(140, 186, 255, .2);
  color: #eaf3ff;
}
label input:focus, label select:focus, .console-form input:focus,
.console-form select:focus, .stack-form input:focus, .admin-panel input:focus,
.admin-panel textarea:focus, .install-form input:focus, .admin-login-card input:focus {
  border-color: var(--accent-2);
  box-shadow: 0 0 0 4px rgba(47, 125, 255, .14);
  background: rgba(255, 255, 255, .88);
}

/* ---------- 8. Tables ---------- */
.log-table-wrap, .table-scroll {
  background: rgba(255, 255, 255, .42);
  border: 1px solid rgba(16, 42, 64, .14);
}
[data-theme="dark"] .log-table-wrap, [data-theme="dark"] .table-scroll {
  background: rgba(6, 13, 24, .42);
  border-color: rgba(140, 186, 255, .14);
}
.data-table thead th, .admin-data-table thead th {
  background: rgba(64, 160, 255, .10);
  color: var(--ink);
  font-weight: 700;
}
[data-theme="dark"] .data-table thead th, [data-theme="dark"] .admin-data-table thead th {
  background: rgba(56, 189, 248, .08);
  color: #dbe9ff;
}
.data-table tbody tr, .admin-data-table tbody tr { transition: background .14s ease; }
.data-table tbody tr:hover, .admin-data-table tbody tr:hover,
.admin-list-row:hover { background: rgba(64, 160, 255, .07); }

/* ---------- 9. Status chips, toasts, empty states ---------- */
.status-chip, .tag, .mini-list span, .status-text {
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, .35);
}
.toast {
  background: var(--gl-glass-strong);
  -webkit-backdrop-filter: var(--gl-blur);
  backdrop-filter: var(--gl-blur);
  border: 1px solid var(--gl-edge);
  box-shadow: var(--gl-hi), 0 12px 30px rgba(13, 32, 54, .18);
}
[data-theme="dark"] .toast {
  background: var(--gl-dark-glass-strong);
  border-color: var(--gl-dark-edge);
  box-shadow: var(--gl-dark-hi), 0 14px 34px rgba(0, 0, 0, .4);
}
.toast.is-success { border-top: 2px solid var(--accent-3); }
.toast.is-error { border-top: 2px solid #e0455a; }
.empty-state {
  background: rgba(255, 255, 255, .35);
  border: 1px dashed rgba(16, 42, 64, .24);
}
[data-theme="dark"] .empty-state {
  background: rgba(6, 13, 24, .35);
  border-color: rgba(140, 186, 255, .2);
}

/* ---------- 10. Modals & slider ---------- */
.modal-backdrop {
  background: rgba(7, 14, 24, .42);
  -webkit-backdrop-filter: blur(10px);
  backdrop-filter: blur(10px);
}
.modal-card {
  background: var(--gl-glass-deep);
  -webkit-backdrop-filter: var(--gl-blur-strong);
  backdrop-filter: var(--gl-blur-strong);
  border: 1px solid var(--gl-edge);
  box-shadow: var(--gl-hi), 0 26px 70px rgba(8, 20, 34, .34);
}
[data-theme="dark"] .modal-card {
  background: var(--gl-dark-glass-strong);
  border-color: var(--gl-dark-edge);
  box-shadow: var(--gl-dark-hi), 0 30px 80px rgba(0, 0, 0, .55);
}
.slider-track { background: rgba(255, 255, 255, .5); border: 1px solid rgba(16, 42, 64, .2); }
[data-theme="dark"] .slider-track { background: rgba(5, 12, 22, .55); border-color: rgba(140, 186, 255, .22); }
.slider-thumb {
  background: linear-gradient(135deg, #ff7a45, #f0552b);
  border: 0;
  box-shadow: 0 6px 16px rgba(240, 85, 43, .4);
}
.task-status, .verification-box {
  background: rgba(255, 255, 255, .45);
}
[data-theme="dark"] .task-status, [data-theme="dark"] .verification-box {
  background: rgba(6, 13, 24, .5);
}

/* ---------- 11. Brand (public home) ---------- */
.brand-page, [data-theme="light"] .brand-page, [data-theme="dark"] .brand-page { background: transparent; }
.brand-surface, [data-theme="light"] .brand-surface, [data-theme="dark"] .brand-surface {
  background: transparent;
  color: var(--ink);
}
.brand-hero h1 span, .brand-manifesto h2 span { color: var(--accent); }
.brand-route {
  background: var(--gl-glass);
  -webkit-backdrop-filter: var(--gl-blur-strong);
  backdrop-filter: var(--gl-blur-strong);
  border: 1px solid var(--gl-edge);
  border-radius: 22px;
  color: var(--ink);
  box-shadow: var(--gl-hi), 0 22px 54px rgba(13, 32, 54, .16);
  transform: none;
}
[data-theme="dark"] .brand-route {
  background: var(--gl-dark-glass);
  border-color: var(--gl-dark-edge);
  box-shadow: var(--gl-dark-hi), 0 24px 60px rgba(0, 0, 0, .4);
  color: #eaf3ff;
}
.brand-route-top .mono, .brand-route-readout { color: var(--accent-3); }
[data-theme="dark"] .brand-route-top .mono, [data-theme="dark"] .brand-route-readout { color: #4adec5; }
.brand-route-top, .brand-route-line, .brand-route-readout { border-color: rgba(16, 42, 64, .2); }
[data-theme="dark"] .brand-route-top, [data-theme="dark"] .brand-route-line,
[data-theme="dark"] .brand-route-readout { border-color: rgba(140, 186, 255, .18); }
.brand-route-readout strong { color: var(--ink); }
[data-theme="dark"] .brand-route-readout strong { color: #eaf3ff; }
.route-node {
  background: rgba(255, 255, 255, .6);
  -webkit-backdrop-filter: blur(6px);
  backdrop-filter: blur(6px);
  box-shadow: 0 2px 10px rgba(13, 32, 54, .1);
}
[data-theme="dark"] .route-node { background: rgba(148, 190, 255, .1); }
.route-node-start {
  background: linear-gradient(135deg, #ff7a45, #f0552b);
  color: #fff;
  border: 0;
}
.route-bar {
  background: linear-gradient(90deg, var(--accent), var(--accent-2));
  opacity: .55;
}
.brand-primary {
  background: linear-gradient(135deg, #ff7a45 0%, #f0552b 100%);
  border: 0;
  color: #fff !important;
  box-shadow: 0 12px 28px rgba(240, 85, 43, .36), inset 0 1px 0 rgba(255, 255, 255, .3);
}
.brand-primary:hover, .brand-primary:focus-visible {
  background: linear-gradient(135deg, #ff8a58, #e8481f);
  color: #fff !important;
}
.brand-manifesto, .brand-steps article { border-color: rgba(16, 42, 64, .16); background: transparent; }
[data-theme="dark"] .brand-manifesto, [data-theme="dark"] .brand-steps article { border-color: rgba(140, 186, 255, .14); }
.brand-steps { border-color: rgba(16, 42, 64, .16); }
[data-theme="dark"] .brand-steps { border-color: rgba(140, 186, 255, .14); }
.brand-footer { border-color: rgba(16, 42, 64, .16); color: #5b6b7d; }
[data-theme="dark"] .brand-footer { border-color: rgba(140, 186, 255, .14); color: #7d93ab; }

/* ---------- 12. Auth pages ---------- */
.auth-page, .admin-login, .install-page { background: transparent; }
.auth-intro {
  background: linear-gradient(160deg, rgba(6, 16, 26, .94), rgba(9, 26, 38, .9)) !important;
  -webkit-backdrop-filter: var(--gl-blur-strong);
  backdrop-filter: var(--gl-blur-strong);
  border: 1px solid rgba(148, 190, 255, .16) !important;
  border-radius: 24px;
  box-shadow:
    inset 0 1px 0 rgba(190, 220, 255, .12),
    0 26px 70px rgba(4, 12, 20, .36);
  overflow: hidden;
}
.auth-intro::before {
  content: "" !important;
  position: absolute;
  inset: 0;
  z-index: 1;
  background:
    radial-gradient(70% 90% at 88% 6%, rgba(56, 189, 248, .34), transparent 58%),
    radial-gradient(60% 80% at 6% 96%, rgba(255, 110, 60, .3), transparent 60%);
  pointer-events: none;
}
.auth-panel, .admin-login-card, .install-shell {
  background: var(--gl-glass-deep);
  -webkit-backdrop-filter: var(--gl-blur-strong);
  backdrop-filter: var(--gl-blur-strong);
  border: 1px solid var(--gl-edge);
  box-shadow: var(--gl-hi), 0 24px 64px rgba(13, 32, 54, .2);
}
[data-theme="dark"] .auth-panel, [data-theme="dark"] .admin-login-card,
[data-theme="dark"] .install-shell {
  background: var(--gl-dark-glass-strong);
  border-color: var(--gl-dark-edge);
  box-shadow: var(--gl-dark-hi), 0 26px 70px rgba(0, 0, 0, .5);
}

/* ---------- 13. Admin ---------- */
.admin-page { background: transparent; }
.admin-sidebar {
  background:
    radial-gradient(120% 60% at 0% 0%, rgba(56, 189, 248, .18), transparent 55%),
    radial-gradient(120% 60% at 100% 100%, rgba(255, 110, 60, .16), transparent 55%),
    var(--gl-dark-glass-strong) !important;
  -webkit-backdrop-filter: var(--gl-blur-strong) !important;
  backdrop-filter: var(--gl-blur-strong) !important;
  border: 1px solid var(--gl-dark-edge);
  box-shadow: var(--gl-dark-hi), 0 22px 56px rgba(3, 10, 18, .5);
}
.admin-nav a, .admin-nav-group summary { transition: background .16s ease, color .16s ease, box-shadow .2s ease; }
.admin-nav a:hover, .admin-nav a:focus-visible, .admin-nav a.is-active,
.admin-nav-group summary:hover, .admin-nav-group summary:focus-visible,
.admin-nav-group.is-active > summary {
  background: linear-gradient(135deg, #ff7a45, #f0552b);
  border-color: transparent;
  box-shadow: 0 8px 20px rgba(240, 85, 43, .34);
}
.admin-topbar {
  background: var(--gl-glass);
  -webkit-backdrop-filter: var(--gl-blur);
  backdrop-filter: var(--gl-blur);
  border: 1px solid var(--gl-edge);
  box-shadow: var(--gl-hi), 0 8px 24px rgba(13, 32, 54, .08);
}
[data-theme="dark"] .admin-topbar {
  background: var(--gl-dark-glass);
  border-color: var(--gl-dark-edge);
  box-shadow: var(--gl-dark-hi), 0 10px 28px rgba(0, 0, 0, .3);
}
.admin-data-table { border: 0; }
.admin-list-row, .health-list > div, .node-row, .management-row { border-color: rgba(16, 42, 64, .12); }
[data-theme="dark"] .admin-list-row, [data-theme="dark"] .health-list > div,
[data-theme="dark"] .node-row, [data-theme="dark"] .management-row { border-color: rgba(140, 186, 255, .12); }
.management-list {
  background: rgba(255, 255, 255, .35);
  border: 1px solid rgba(16, 42, 64, .14);
}
[data-theme="dark"] .management-list {
  background: rgba(6, 13, 24, .35);
  border-color: rgba(140, 186, 255, .14);
}
.admin-overlay {
  background: rgba(7, 14, 24, .4);
  -webkit-backdrop-filter: blur(8px);
  backdrop-filter: blur(8px);
}

/* ---------- 14. Mobile bottom nav ---------- */
.bottom-nav {
  background: var(--gl-glass-deep);
  -webkit-backdrop-filter: var(--gl-blur-strong);
  backdrop-filter: var(--gl-blur-strong);
  border: 1px solid var(--gl-edge);
  box-shadow: var(--gl-hi), 0 -12px 34px rgba(13, 32, 54, .14);
  padding-bottom: max(10px, env(safe-area-inset-bottom));
}
[data-theme="dark"] .bottom-nav {
  background: var(--gl-dark-glass-strong);
  border-color: var(--gl-dark-edge);
  box-shadow: var(--gl-dark-hi), 0 -14px 40px rgba(0, 0, 0, .4);
}
.bottom-nav a { transition: color .16s ease, background .16s ease; border-radius: 14px; }
.bottom-nav a:hover, .bottom-nav a.is-active { background: rgba(64, 160, 255, .12); }

/* ---------- 15. Motion ---------- */
.page-intro, .brand-hero-copy, .brand-route {
  animation: rise-in .5s cubic-bezier(.2, .7, .3, 1) both;
}
.stat-block:nth-child(1) { animation-delay: .04s; }
.stat-block:nth-child(2) { animation-delay: .08s; }
.stat-block:nth-child(3) { animation-delay: .12s; }
.stat-block:nth-child(4) { animation-delay: .16s; }
.split-section > *, .workspace-grid > *, .profile-grid > *, .account-grid { animation: rise-in .5s cubic-bezier(.2, .7, .3, 1) both; }
.split-section > :nth-child(2), .workspace-grid > :nth-child(2), .profile-grid > :nth-child(2) { animation-delay: .06s; }
@keyframes rise-in {
  from { opacity: 0; transform: translateY(14px); }
  to   { opacity: 1; transform: translateY(0); }
}
@media (prefers-reduced-motion: reduce) {
  body::before { animation: none; }
  .page-intro, .brand-hero-copy, .brand-route, .stat-block,
  .split-section > *, .workspace-grid > *, .profile-grid > *, .account-grid { animation: none; }
  .stat-block:hover, .account-card:hover, .announcement-panel:hover { transform: none; }
}

/* ---------- 16. Small polish ---------- */
input, select, textarea, button { caret-color: var(--accent); }
.button-wide { min-height: 48px; }
.avatar { box-shadow: 0 0 0 2px rgba(255, 255, 255, .8), 0 4px 12px rgba(13, 32, 54, .18); }
[data-theme="dark"] .avatar { box-shadow: 0 0 0 2px rgba(140, 186, 255, .2), 0 4px 12px rgba(0, 0, 0, .4); }











/* ---------- 17. Dashboard v2: carousel + notice board (2026-09-08) ---------- */
.home-carousel-section { margin-bottom: 30px; }
.carousel-heading { margin-bottom: 16px; }
.carousel-frame {
  position: relative;
  border-radius: 22px;
  border: 1px solid var(--gl-edge);
  background: var(--gl-glass);
  -webkit-backdrop-filter: var(--gl-blur);
  backdrop-filter: var(--gl-blur);
  box-shadow: var(--gl-hi), var(--gl-shadow-card);
  overflow: hidden;
}
[data-theme="dark"] .carousel-frame {
  background: var(--gl-dark-glass);
  border-color: var(--gl-dark-edge);
  box-shadow: var(--gl-dark-hi), 0 14px 38px rgba(0,0,0,.32);
}
.carousel-track { display: flex; overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: none; }
.carousel-track::-webkit-scrollbar { display: none; }
.carousel-slide {
  flex: 0 0 100%;
  scroll-snap-align: start;
  position: relative;
  min-height: clamp(220px, 30vw, 380px);
  display: flex;
  align-items: flex-end;
  overflow: hidden;
  text-decoration: none;
}
.carousel-slide img, .carousel-slide-ph {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
.carousel-slide-ph {
  background:
    radial-gradient(60% 90% at 85% 10%, rgba(56, 189, 248, .35), transparent 60%),
    radial-gradient(50% 80% at 8% 90%, rgba(255, 110, 60, .3), transparent 60%),
    linear-gradient(140deg, #0c1f2e, #123047);
}
.carousel-caption {
  position: relative;
  z-index: 1;
  width: 100%;
  padding: 22px 26px;
  background: linear-gradient(transparent, rgba(4, 12, 20, .78));
  color: #f3f9ff;
}
.carousel-caption strong { font-size: 1.12rem; }
.carousel-fallback {
  min-height: clamp(220px, 30vw, 380px);
  display: flex;
  align-items: center;
  padding: clamp(28px, 5vw, 64px);
  background:
    radial-gradient(70% 120% at 88% 0%, rgba(56, 189, 248, .28), transparent 58%),
    radial-gradient(60% 120% at 4% 100%, rgba(255, 110, 60, .26), transparent 60%),
    linear-gradient(140deg, #0b1e2d, #13324a);
  color: #f3f9ff;
}
.carousel-fallback h3 { font-size: clamp(1.8rem, 3.4vw, 2.6rem); margin: 12px 0; color: #f3f9ff; }
.carousel-fallback p { color: #c3d7e6; max-width: 46ch; }
.carousel-dots { display: flex; gap: 8px; justify-content: center; padding: 14px 0 16px; }
.carousel-dots span { width: 8px; height: 8px; border-radius: 50%; background: rgba(16, 42, 64, .24); transition: background .2s, transform .2s; }
.carousel-dots span.is-active { background: var(--accent); transform: scale(1.3); }
[data-theme="dark"] .carousel-dots span { background: rgba(200, 225, 255, .25); }

/* Dashboard lower area: recent logs + side column (stats on top, notice below) */
.home-lower { display: grid; grid-template-columns: minmax(0, 1fr) 360px; align-items: start; }
.home-side { display: flex; flex-direction: column; gap: 18px; }
.stat-panel, .notice-panel {
  background: var(--gl-glass);
  -webkit-backdrop-filter: var(--gl-blur);
  backdrop-filter: var(--gl-blur);
  border: 1px solid var(--gl-edge);
  border-radius: var(--radius-lg);
  box-shadow: var(--gl-hi), var(--gl-shadow-card);
  padding: 20px 22px;
}
[data-theme="dark"] .stat-panel, [data-theme="dark"] .notice-panel {
  background: var(--gl-dark-glass);
  border-color: var(--gl-dark-edge);
  box-shadow: var(--gl-dark-hi), 0 14px 38px rgba(0,0,0,.32);
}
.stat-panel .stat-grid { grid-template-columns: repeat(2, 1fr); gap: 10px; border: 0; }
.stat-panel .stat-block { min-height: 0; padding: 14px; border: 1px solid rgba(16, 42, 64, .12); border-radius: 14px; background: rgba(255, 255, 255, .4); }
[data-theme="dark"] .stat-panel .stat-block { border-color: rgba(140, 186, 255, .14); background: rgba(6, 13, 24, .4); }
.stat-panel .stat-block strong { font-size: 1.6rem; }
.notice-list { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 12px; }
.notice-list li {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  gap: 10px;
  align-items: start;
  padding: 12px;
  border: 1px solid rgba(16, 42, 64, .12);
  border-radius: 14px;
  background: rgba(255, 255, 255, .42);
  transition: transform .16s ease, box-shadow .2s ease;
}
[data-theme="dark"] .notice-list li { border-color: rgba(140, 186, 255, .14); background: rgba(6, 13, 24, .42); }
.notice-list li:hover { transform: translateY(-1px); box-shadow: 0 8px 20px rgba(13, 32, 54, .1); }
.notice-list strong { display: block; font-size: .92rem; }
.notice-list p { margin: 3px 0 0; font-size: .8rem; color: var(--ink-soft); line-height: 1.55; }
.notice-list time { font-size: .72rem; color: var(--ink-soft); white-space: nowrap; }
.notice-pin {
  font-size: .68rem;
  padding: 2px 8px;
  border-radius: 999px;
  background: rgba(255, 106, 61, .14);
  color: var(--accent);
  font-weight: 700;
  white-space: nowrap;
}
@media (max-width: 1100px) {
  .home-lower { grid-template-columns: 1fr; }
  .home-side { flex-direction: row; }
  .home-side > * { flex: 1; }
}
@media (max-width: 700px) {
  .home-side { flex-direction: column; }
  .stat-panel, .notice-panel { padding: 16px; }
}

/* ---------- 18. Dark theme brand/home polish ---------- */
[data-theme="dark"] .brand-page, [data-theme="dark"] .brand-surface { background: transparent; }
[data-theme="dark"] .brand-hero h1, [data-theme="dark"] .brand-manifesto h2,
[data-theme="dark"] .brand-steps h3, [data-theme="dark"] .brand-route-readout strong { color: #eaf3ff; }
[data-theme="dark"] .brand-lead, [data-theme="dark"] .brand-manifesto p,
[data-theme="dark"] .brand-steps p { color: #a8bfd2; }
[data-theme="dark"] .brand-lockup, [data-theme="dark"] .brand-session,
[data-theme="dark"] .brand-route-top .mono, [data-theme="dark"] .brand-route-readout { color: #4adec5; }
[data-theme="dark"] .brand-lockup-meta, [data-theme="dark"] .brand-manifesto-mark,
[data-theme="dark"] .brand-footer { color: #7d93ab; }
[data-theme="dark"] .brand-hero, [data-theme="dark"] .brand-manifesto,
[data-theme="dark"] .brand-steps, [data-theme="dark"] .brand-steps article,
[data-theme="dark"] .brand-footer, [data-theme="dark"] .brand-manifesto-mark {
  border-color: rgba(140, 186, 255, .14);
}
[data-theme="dark"] .brand-route-top, [data-theme="dark"] .brand-route-line,
[data-theme="dark"] .brand-route-readout { border-color: rgba(140, 186, 255, .16); }
[data-theme="dark"] .page-intro { color: #eaf3ff; }
[data-theme="dark"] .page-intro p:not(.eyebrow) { color: #a8bfd2; }
[data-theme="dark"] .section-heading h2, [data-theme="dark"] .stat-panel h2,
[data-theme="dark"] .notice-panel h2, [data-theme="dark"] .announcement-panel h2 { color: #eaf3ff; }
[data-theme="dark"] .data-table, [data-theme="dark"] .admin-data-table { color: #dbe9ff; }
[data-theme="dark"] .data-table thead th, [data-theme="dark"] .admin-data-table thead th { color: #9db8d8; }


/* ---------- 19. Admin content stretch (2026-09-08): fill the area, sidebar untouched ---------- */
.admin-shell { padding: 18px 18px 18px 0; gap: 18px; }
.admin-main { min-width: 0; }
.admin-topbar {
  width: 100%;
  max-width: none;
  margin: 0 0 18px;
  padding: 22px 28px;
  border-radius: var(--radius-lg);
}
.admin-content {
  width: 100%;
  max-width: none;
  margin: 0;
  padding: 0 0 40px;
}
@media (min-width: 901px) {
  .admin-content { padding-right: 26px; }
}
@media (max-width: 900px) {
  .admin-shell { padding: 0; }
  .admin-topbar { margin: 16px; width: auto; }
  .admin-content { width: auto; margin: 0 16px; padding: 0 0 40px; }
}
