/* SunCharts portal theme (P.Industries black + green). Linked after v2.css on /admin/ only; forces the dark palette. */
:root, :root[data-theme="light"], :root[data-theme="dark"], :root:not([data-theme="light"]) {
  --fg: #eafaef; --dim: #7e9b86; --g1: #8df06a; --g2: #34c759; --g3: #159a3c; --glow: rgba(75,222,128,.45);
  --bg: #04060a; --card: rgba(10,22,14,.78); --card2: rgba(52,199,89,.06); --line: rgba(75,222,128,.18);
  --text: var(--fg); --text2: #b5cdbb; --text3: var(--dim);
  --ink100: rgba(52,199,89,.08); --ink50: #070b09; --ink200: rgba(75,222,128,.18);
  --accent: var(--g1); --accent-weak: rgba(52,199,89,.14); --primary: var(--g2); --primary-text: #04130a;
  --info: var(--g1); --info-bg: rgba(52,199,89,.12); --normal: var(--g2); --normal-bg: rgba(52,199,89,.12);
  --crit: #ff6b6b; --crit-bg: rgba(255,107,107,.12);
  --side: rgba(4,8,6,.82); --side-text: #b5cdbb; --side-active: rgba(52,199,89,.14);
  color-scheme: dark;
}
html, body { background: #04060a; }
body { display: flow-root; } /* stop #login margin collapsing through body (gradient seam) */
body { background: radial-gradient(1200px 700px at 85% -10%, rgba(52,199,89,.10), transparent 60%), radial-gradient(900px 600px at -10% 110%, rgba(21,154,60,.10), transparent 60%), #04060a; min-height: 100vh; }
#sc-bg { position: fixed; top: 0; left: 0; right: 0; bottom: 0; width: 100%; height: 100%; display: block; z-index: 0; pointer-events: none; }
/* Full-bleed field at every width: paint the gradient on the root (covers overscroll + scrollbar gutter), never scroll sideways. */
html { background: radial-gradient(1200px 700px at 85% -10%, rgba(52,199,89,.10), transparent 60%), radial-gradient(900px 600px at -10% 110%, rgba(21,154,60,.10), transparent 60%), #04060a fixed; min-height: 100%; overflow-x: hidden; scrollbar-color: rgba(75,222,128,.25) #04060a; }
body { background: transparent !important; overflow-x: hidden; width: 100%; max-width: 100%; }
#login, #appView, .sc-foot { position: relative; z-index: 1; }
.card, .panel, section.card { background: var(--card); border-color: var(--line); backdrop-filter: blur(6px); }
pre { background: #020403; border-color: var(--line); color: #cfe9d6; }
button, .btn { background: linear-gradient(150deg, var(--g1), var(--g2)); color: #04130a; }
button:hover, .btn:hover { box-shadow: 0 0 0 1px rgba(141,240,106,.4), 0 6px 22px -8px var(--glow); }
input:focus, select:focus, textarea:focus { outline-color: var(--g2); border-color: var(--g2); box-shadow: 0 0 0 3px rgba(52,199,89,.18); }
input, select, textarea { background: rgba(2,6,4,.7); }
.theme-toggle#themeBtn { display: none; }

/* login */
#login { max-width: 24rem; margin: 9vh auto 2rem; padding: 28px 28px 22px; border-radius: 16px;
  box-shadow: 0 0 0 1px rgba(75,222,128,.10), 0 30px 80px -30px var(--glow); }
.sc-login-logo { display: block; height: 44px; margin: 0 0 18px; }
#login h1 { font-size: 1.25rem; }

/* shell */
.side { border-right: 1px solid var(--line); backdrop-filter: blur(8px); }
.brand { padding: 2px 6px 16px; }
.brand img { height: 30px; display: block; }
.org { background: rgba(52,199,89,.06); border-color: var(--line); color: var(--fg); }
.nav a:hover { background: rgba(52,199,89,.08); color: var(--fg); }
.nav a.active { background: var(--side-active); color: var(--g1); box-shadow: inset 2px 0 0 var(--g2); }
.nav .sep, .side-foot { color: var(--dim); }

/* powered by */
.sc-foot { display: flex; align-items: center; justify-content: center; gap: 10px; padding: 18px 0 24px; color: var(--dim); font-size: 12px; letter-spacing: .02em; }
.sc-foot a { display: inline-flex; align-items: center; gap: 10px; color: var(--dim); text-decoration: none; }
.sc-foot a:hover { color: var(--fg); text-decoration: none; }
.sc-foot img { height: 22px; width: auto; opacity: .9; }
.side .sc-foot { justify-content: flex-start; padding: 12px 0 0; font-size: 11px; }
.side .sc-foot img { height: 18px; }
@media (prefers-reduced-motion: reduce) { * { transition: none !important; animation: none !important; } }
#login.hidden + #loginFoot { display: none; }
