body{font-family:var(--font-body);background:var(--bg);color:var(--text-100);min-height:100vh;overflow-x:hidden;font-size:15px;font-weight:400;line-height:1.5;letter-spacing:0;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility;transition:var(--theme-transition)}html.is-switching-theme *,html.is-switching-theme ::after,html.is-switching-theme ::before{transition:background-color .3s ease,background .3s ease,color .3s ease,border-color .3s ease,box-shadow .3s ease,fill .3s ease,stroke .3s ease!important}.bd-header-name,.detail-branch-name,.modal-title,.phase-acc-title,.rep-title,.report-card-title,.section-title,h1,h2,h3,h4,h5,h6{font-family:var(--font-display);font-weight:700;letter-spacing:-.01em}.stat-val{font-weight:700;letter-spacing:-.01em}.branch-name,.card-title,.drawer-title,.page-title,.topbar-title{font-family:var(--font-display);font-weight:700;letter-spacing:-.01em}.nav-label,.stat-label{font-family:var(--font-display);font-weight:600}.bd-count-badge,.mini-bar-pct,.nav-badge,.pct-val,.phase-pct-badge,.phase-report-pct,.phase-strip-pct,.rep-kpi-val,.rep-ring-val,.stat-val,.table-count,td,th{font-family:var(--font-num)}.mini-bar-pct,.nav-badge,.pct-val,.phase-pct-badge,.phase-report-pct,.phase-strip-fill,.stat-val,.table-count,td{font-variant-numeric:tabular-nums}::selection{background:var(--brand);color:#fff}.login-identity-panel ::selection{background:rgba(255,255,255,.35);color:#fff}.bg-atmosphere{position:fixed;inset:0;z-index:0;pointer-events:none;overflow:hidden}.bg-grid{position:absolute;inset:0;background-image:radial-gradient(var(--grid-color) 1.2px,transparent 1.2px);background-size:22px 22px;-webkit-mask-image:linear-gradient(to bottom,#000,transparent 72%);mask-image:linear-gradient(to bottom,#000,transparent 72%)}.bg-atmosphere::before{content:"";position:absolute;inset:0;background:0 0}.bg-orb,.bg-particle,.bg-particles,.bg-scanlines,.login-grid,.login-orb,.login-particles,.login-scanlines{display:none!important}@media (prefers-reduced-motion:reduce){*,::after,::before{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}