/* Scoped Site Theme (does NOT affect standalone board / overlay components)
   Wrap page content in <div class="app-theme"> ... </div> to activate.
*/
.app-theme { --color-bg:#0f1014; --color-surface:#171a21; --color-surface-alt:#1f242c; --color-border:#2b313b; --color-border-soft:#303642; --color-input-bg:var(--color-text-muted); --color-input-text:var(--color-surface); --color-input-border:#4a5568; --color-text:#f4f6fa; --color-text-muted:#b9c4d3; --color-accent:#ff8a3c; --color-accent-alt:#ffb347; --color-accent-rgb:255,138,60; --color-focus:rgba(255,138,60,.38); --color-positive:#4ccd7b; --color-warning:#ffc85a; --color-danger:#ff625d; --radius-xs:4px; --radius-sm:6px; --radius:12px; --radius-lg:18px; --shadow-sm:0 2px 6px -1px rgba(0,0,0,.5); --shadow:0 6px 28px -8px rgba(0,0,0,.55); --gradient-accent:linear-gradient(135deg,var(--color-accent),var(--color-accent-alt)); --font-stack:system-ui,-apple-system,Segoe UI,Roboto,Inter,Helvetica,Arial,sans-serif; font-family:var(--font-stack); background:var(--color-bg); color:var(--color-text); -webkit-font-smoothing:antialiased; min-height:100vh; }

/* Layout */
.app-theme .top-bar { position:sticky; top:0; z-index:100; display:flex; align-items:center; gap:24px; padding:8px 20px; font-size:14px; background:var(--color-surface); color:var(--color-text); box-shadow:var(--shadow-sm); border-bottom:1px solid var(--color-border); }
.app-theme .top-bar .brand { font-weight:600; cursor:pointer; user-select:none; letter-spacing:.5px; }
.app-theme .nav-links { display:flex; gap:16px; }
.app-theme .nav-links a { color:var(--color-text-muted); text-decoration:none; padding:6px 6px 4px; border-radius:6px; font-weight:500; transition:.18s ease; }
.app-theme .nav-links a:hover { background:var(--color-surface-alt); color:var(--color-text); }
.app-theme .auth-block { margin-left:auto; display:flex; align-items:center; gap:12px; }
.app-theme .user-name { font-weight:500; max-width:180px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; color:var(--color-text-muted); }
.app-theme .btn-auth { color:#121317; text-decoration:none; background:var(--gradient-accent); padding:6px 12px; border-radius:6px; font-size:13px; font-weight:600; display:inline-flex; align-items:center; gap:.4rem; border:1px solid rgba(var(--color-accent-rgb),.45); box-shadow:0 4px 18px -6px rgba(var(--color-accent-rgb),.5); transition:.18s ease; }
.app-theme .btn-auth:hover { filter:brightness(1.07); }
.app-theme .page-shell { width:100%; margin:0; padding:16px clamp(12px,1.4vw,30px) 48px; background:linear-gradient(145deg,var(--color-surface-alt),var(--color-surface)); box-sizing:border-box; }

/* Panels / cards (Bootstrap card compatibility) */
.app-theme .card { background:var(--color-surface-alt); border:1px solid var(--color-border); border-radius:var(--radius); box-shadow:var(--shadow-sm); color:var(--color-text); }
.app-theme .card-header { background:var(--color-surface); border-bottom:1px solid var(--color-border-soft); padding:.65rem 1rem .55rem; font-weight:600; letter-spacing:.3px; }

/* Alerts */
.app-theme .alert { position:relative; padding:.75rem 1rem; border:1px solid var(--color-border); border-radius:var(--radius-sm); font-size:.8rem; display:flex; gap:.55rem; background:var(--color-surface-alt); }
.app-theme .alert-success { border-color:rgba(76,205,123,.35); background:rgba(76,205,123,.10); color:var(--color-positive); }
.app-theme .alert-info { border-color:rgba(255,138,60,.35); background:rgba(255,138,60,.12); color:var(--color-accent); }
.app-theme .alert-danger { border-color:rgba(255,98,93,.4); background:rgba(255,98,93,.12); color:var(--color-danger); }
.app-theme .alert-secondary { border-color:var(--color-border); background:var(--color-surface-alt); color:var(--color-text-muted); }
.app-theme .alert-warning { border-color:rgba(255,200,90,.35); background:rgba(255,200,90,.10); color:var(--color-warning); }
.app-theme .text-info { color:var(--color-accent) !important; }
.app-theme .text-muted { color:var(--color-text-muted) !important; }
.app-theme .form-control { background:var(--color-input-bg); border:1px solid var(--color-input-border); color:var(--color-input-text); }
.app-theme .form-control:focus { border-color:var(--color-accent); box-shadow:0 0 0 3px var(--color-focus); }
.app-theme .table-striped>tbody>tr:nth-of-type(odd) { --bs-table-striped-bg:var(--color-surface-alt); }
.app-theme .table { --bs-table-bg:var(--color-surface); --bs-table-color:var(--color-text); --bs-table-border-color:var(--color-border); }

/* Buttons */
.app-theme button, .app-theme .btn { font-family:var(--font-stack); font-weight:600; font-size:.75rem; letter-spacing:.4px; border-radius:var(--radius-sm); border:1px solid var(--color-border); background:var(--color-surface-alt); color:var(--color-text-muted); padding:.55rem 1rem; display:inline-flex; align-items:center; gap:.45rem; cursor:pointer; transition:.18s ease; }
.app-theme button:hover, .app-theme .btn:hover { background:var(--color-surface); color:var(--color-text); }
.app-theme button:focus-visible, .app-theme .btn:focus-visible { outline:0; box-shadow:0 0 0 3px var(--color-focus); }
.app-theme .btn-primary { background:var(--gradient-accent); color:#121317; border-color:var(--color-accent); box-shadow:0 4px 18px -6px rgba(var(--color-accent-rgb),.45); }
.app-theme .btn-primary:hover { filter:brightness(1.07); }
.app-theme .btn-success { background:var(--color-positive); border-color:var(--color-positive); color:#102016; }
.app-theme .btn-danger { background:var(--color-danger); border-color:var(--color-danger); color:#1a0505; }
.app-theme .btn-outline-secondary { background:transparent; color:var(--color-text-muted); }
.app-theme .btn-outline-secondary:hover { background:var(--color-surface-alt); color:var(--color-text); }
.app-theme .btn-outline-primary { background:transparent; color:var(--color-accent); border-color:var(--color-accent); }
.app-theme .btn-outline-primary:hover { background:var(--color-accent); color:#121317; }
.app-theme .btn-outline-danger { background:transparent; color:var(--color-danger); border-color:var(--color-danger); }
.app-theme .btn-outline-danger:hover { background:var(--color-danger); color:#fff; }

/* Forms */
.app-theme label { font-size:.62rem; letter-spacing:.14em; font-weight:600; text-transform:uppercase; color:var(--color-text-muted); margin-bottom:.35rem; display:inline-block; }
.app-theme input:not([type=checkbox]):not([type=radio]):not([type=range]):not([type=color]):not([type=file]):not([type=hidden]),
.app-theme textarea,
.app-theme select { background:var(--color-input-bg); border:1px solid var(--color-input-border); border-radius:var(--radius-sm); padding:.6rem .7rem; font:500 .8rem/1.2 var(--font-stack); color:var(--color-input-text); letter-spacing:.3px; transition:.18s ease; }
.app-theme input:not([type=checkbox]):not([type=radio]):not([type=range]):not([type=color]):not([type=file]):not([type=hidden]):focus,
.app-theme textarea:focus,
.app-theme select:focus { outline:0; border-color:var(--color-accent); box-shadow:0 0 0 3px var(--color-focus); }
.app-theme .form-check-input { width:1rem; height:1rem; accent-color:var(--color-accent); cursor:pointer; }

/* Tables */
.app-theme .table-clean { width:100%; border-collapse:collapse; font-size:.72rem; }
.app-theme .table-clean th { text-align:left; padding:.55rem .7rem; background:var(--color-surface); color:var(--color-text-muted); font-weight:600; letter-spacing:.5px; border-bottom:1px solid var(--color-border); }
.app-theme .table-clean td { padding:.5rem .7rem; border-top:1px solid var(--color-border); color:var(--color-text); }
.app-theme .table-clean tr:hover td { background:var(--color-surface-alt); }

/* Event log */
.app-theme .event-log .event-entry { padding:4px 0; border-bottom:1px solid var(--color-border); font-size:.68rem; }
.app-theme .event-log .event-entry:last-child { border-bottom:none; }
.app-theme .event-log .timestamp { color:var(--color-text-muted); font-family:monospace; margin-right:8px; }
.app-theme .event-log .event-message { color:var(--color-text); }
.app-theme .event-log .event-error { background:rgba(255,98,93,.08); border-left:3px solid var(--color-danger); padding-left:8px; }
.app-theme .event-log .event-xgid { background:rgba(255,138,60,.08); border-left:3px solid var(--color-accent); padding-left:8px; }
.app-theme .event-log .event-window { background:rgba(76,205,123,.10); border-left:3px solid var(--color-positive); padding-left:8px; }

/* Status blocks */
.app-theme .xg-status.running { color:var(--color-positive); background:rgba(76,205,123,.10); border:1px solid rgba(76,205,123,.35); border-radius:var(--radius-sm); padding:.75rem; font-size:.75rem; }
.app-theme .xg-status.not-running { color:var(--color-danger); background:rgba(255,98,93,.10); border:1px solid rgba(255,98,93,.35); border-radius:var(--radius-sm); padding:.75rem; font-size:.75rem; }

/* Responsive */
@media (max-width:780px){ .app-theme .top-bar{flex-wrap:wrap; gap:8px;} .app-theme .nav-links{order:3; width:100%;} .app-theme .auth-block{order:2; margin-left:0;} .app-theme .page-shell{padding:14px 14px 40px;} }

/* No global element selectors: board / overlay components remain unaffected unless wrapped */
