/* V2 unified interface layer. Business templates stay intact; this file owns presentation. */
:root{
  --v2-ink:#14213d;
  --v2-ink-2:#243653;
  --v2-muted:#66758d;
  --v2-accent:#1769d2;
  --v2-accent-strong:#0e56b3;
  --v2-accent-soft:#eaf3ff;
  --v2-canvas:#f3f6fa;
  --v2-surface:#ffffff;
  --v2-surface-2:#f8fafc;
  --v2-line:#dce4ee;
  --v2-line-strong:#c7d3e1;
  --v2-success:#16845b;
  --v2-warning:#a96808;
  --v2-danger:#c23c4b;
  --v2-radius:14px;
  --v2-radius-sm:9px;
  --v2-shadow:0 12px 34px rgba(28,48,78,.08);
  --v2-shadow-hover:0 18px 44px rgba(28,48,78,.13);
  --v2-font:"HarmonyOS Sans SC","MiSans","Microsoft YaHei UI","Microsoft YaHei","PingFang SC",sans-serif;
}

*{scrollbar-color:#b7c4d4 transparent;scrollbar-width:thin}
*::-webkit-scrollbar{width:9px;height:9px}
*::-webkit-scrollbar-track{background:transparent}
*::-webkit-scrollbar-thumb{background:#b7c4d4;border:2px solid transparent;border-radius:8px;background-clip:padding-box}
html{background:var(--v2-canvas)}
body,
body[class*="page-"],
body.clean-page,
body.page-report-center{
  color:var(--v2-ink) !important;
  font-family:var(--v2-font) !important;
  background:
    radial-gradient(circle at 7% 0,rgba(23,105,210,.07),transparent 27rem),
    linear-gradient(180deg,#f8fafc 0,#f2f5f9 22rem,#f3f6fa 100%) !important;
}

a,button,input,select,textarea{font:inherit}
a{color:var(--v2-accent)}
:focus-visible{outline:3px solid rgba(23,105,210,.25) !important;outline-offset:2px}
::selection{background:#cfe4ff;color:#0b3f83}

/* Common application frame */
body[class*="page-"] .layout{
  display:block !important;
  width:100% !important;
  min-height:100dvh !important;
  background:transparent !important;
}
body[class*="page-"] .content-shell{width:100% !important;min-width:0 !important}
body[class*="page-"] .content,
body.page-report-center main{
  width:100% !important;
  max-width:1680px !important;
  margin:0 auto !important;
  padding:22px clamp(16px,2vw,34px) 48px !important;
}
body.clean-page .clean-wrap,
.standalone-shell,
.resident-shell,
.window,
.wrap{
  width:100% !important;
  max-width:1680px !important;
  margin:0 auto !important;
  padding:22px clamp(16px,2vw,34px) 48px !important;
}
body.clean-page{overflow:auto !important}
body.clean-page .clean-wrap{height:auto !important;min-height:100dvh !important;overflow:visible !important}
body:not(.v2-portal):not(.v2-login) > .page{
  width:100% !important;
  max-width:1680px !important;
  min-height:100dvh !important;
  margin:0 auto !important;
  padding:22px clamp(16px,2vw,34px) 48px !important;
}
body:not(.v2-portal):not(.v2-login) > .page > .topbar{
  display:flex !important;
  align-items:center !important;
  justify-content:space-between !important;
  gap:18px !important;
  min-height:82px !important;
  margin:0 0 18px !important;
  padding:18px 20px !important;
  border:1px solid var(--v2-line) !important;
  border-radius:var(--v2-radius) !important;
  background:rgba(255,255,255,.9) !important;
  box-shadow:var(--v2-shadow) !important;
  backdrop-filter:blur(12px) !important;
}
body:not(.v2-portal):not(.v2-login) > .page > .topbar h1,
body:not(.v2-portal):not(.v2-login) > .page > .topbar h2{
  margin:0 !important;
  color:var(--v2-ink) !important;
  font-size:clamp(24px,2vw,34px) !important;
  font-weight:850 !important;
  letter-spacing:-.035em !important;
}

body[class*="page-"] .sidebar{display:none !important}
body[class*="page-"] .mobile-sidebar-mask,.mobile-menu-btn{display:none !important}

body[class*="page-"] .topbar,
body[class*="page-"] .topbar.topbar-compact,
body.page-report-center .topbar{
  position:sticky !important;
  top:0 !important;
  z-index:40 !important;
  display:grid !important;
  grid-template-columns:minmax(190px,280px) minmax(0,1fr) auto !important;
  align-items:center !important;
  gap:18px !important;
  width:100% !important;
  min-height:72px !important;
  height:auto !important;
  padding:10px clamp(16px,2vw,34px) !important;
  border:0 !important;
  border-bottom:1px solid rgba(199,211,225,.88) !important;
  border-radius:0 !important;
  background:rgba(248,250,252,.91) !important;
  box-shadow:0 7px 24px rgba(28,48,78,.055) !important;
  backdrop-filter:blur(18px) saturate(130%) !important;
}
.topbar-left{min-width:0 !important}
.topbar-title-solo,
.topbar-title,
.topbar-module{
  color:var(--v2-ink) !important;
  font-size:clamp(22px,1.6vw,30px) !important;
  font-weight:850 !important;
  letter-spacing:-.035em !important;
  line-height:1.12 !important;
  white-space:nowrap !important;
}
.topbar-time,.topbar-chip{
  min-width:160px !important;
  padding:9px 13px !important;
  color:#52627a !important;
  font-size:13px !important;
  font-weight:700 !important;
  text-align:center !important;
  white-space:nowrap !important;
  border:1px solid var(--v2-line) !important;
  border-radius:var(--v2-radius-sm) !important;
  background:rgba(255,255,255,.78) !important;
  box-shadow:none !important;
}

.top-nav,.topbar-nav,.top-nav-header{
  display:flex !important;
  align-items:center !important;
  justify-content:center !important;
  gap:5px !important;
  min-width:0 !important;
  overflow-x:auto !important;
  scrollbar-width:none !important;
}
.top-nav::-webkit-scrollbar,.topbar-nav::-webkit-scrollbar{display:none}
.top-nav-link,.topbar-nav a,.top-nav-button{
  flex:0 0 auto !important;
  min-height:38px !important;
  padding:0 13px !important;
  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;
  color:#52627a !important;
  font-size:13px !important;
  font-weight:750 !important;
  line-height:1 !important;
  white-space:nowrap !important;
  text-decoration:none !important;
  border:1px solid transparent !important;
  border-radius:var(--v2-radius-sm) !important;
  background:transparent !important;
  box-shadow:none !important;
  transition:background .16s ease,color .16s ease,border-color .16s ease,transform .16s ease !important;
}
.top-nav-link:hover,.topbar-nav a:hover,.top-nav-button:hover{
  color:var(--v2-ink) !important;
  border-color:var(--v2-line) !important;
  background:#fff !important;
}
.top-nav-link.active,.topbar-nav a.active,.top-nav-button.active{
  color:#fff !important;
  border-color:var(--v2-accent) !important;
  background:var(--v2-accent) !important;
}
.top-nav-link:active,.topbar-nav a:active,.top-nav-button:active{transform:translateY(1px) !important}

/* Page headings and hierarchy */
.page-head,.clean-topbar,.standalone-top,.resident-hero,.inspection-hero,.page-header{
  display:flex !important;
  align-items:center !important;
  justify-content:space-between !important;
  gap:18px !important;
  min-height:82px !important;
  margin:0 0 18px !important;
  padding:18px 20px !important;
  color:var(--v2-ink) !important;
  border:1px solid var(--v2-line) !important;
  border-radius:var(--v2-radius) !important;
  background:rgba(255,255,255,.88) !important;
  box-shadow:var(--v2-shadow) !important;
  backdrop-filter:blur(12px) !important;
}
.page-head h1,.page-head h2,.clean-title,.standalone-title h1,.resident-hero h1,.inspection-hero h1,.page-header h1{
  margin:0 !important;
  color:var(--v2-ink) !important;
  font-size:clamp(24px,2vw,34px) !important;
  font-weight:850 !important;
  letter-spacing:-.035em !important;
  line-height:1.15 !important;
}
.page-head p,.clean-subtitle,.standalone-title p,.resident-hero p,.inspection-hero p,.page-header p,
.panel-head p,.muted,.hint,.sub,.subtitle{
  color:var(--v2-muted) !important;
}

/* Containers: only real sections receive elevation */
.panel,.card-panel,.section-card,.content-card,.table-card,
body.clean-page .panel,body.clean-page .table-wrap,
.standalone-shell .panel,.resident-shell .panel,.window .panel,.wrap .panel{
  border:1px solid var(--v2-line) !important;
  border-radius:var(--v2-radius) !important;
  background:rgba(255,255,255,.94) !important;
  box-shadow:var(--v2-shadow) !important;
}
.panel,.card-panel,.section-card,.content-card,.table-card{padding:18px !important}
.panel + .panel,.card-panel + .card-panel,.section-card + .section-card{margin-top:16px !important}
.panel-head,.section-head,.card-head{
  display:flex !important;
  align-items:flex-start !important;
  justify-content:space-between !important;
  gap:14px !important;
  margin:0 0 14px !important;
  padding:0 0 12px !important;
  border-bottom:1px solid var(--v2-line) !important;
}
.panel-head h2,.panel-head h3,.section-head h2,.section-head h3,.card-head h2,.card-head h3{
  margin:0 !important;
  color:var(--v2-ink) !important;
  font-size:20px !important;
  font-weight:820 !important;
  letter-spacing:-.02em !important;
}
.ui-balanced-section{min-height:0 !important;height:auto !important}

/* Metrics are a strip, not a collection of floating boxes */
.cards,.stats,.stat-grid,.summary-grid,.metric-grid{
  gap:1px !important;
  padding:1px !important;
  overflow:hidden !important;
  border:1px solid var(--v2-line) !important;
  border-radius:var(--v2-radius) !important;
  background:var(--v2-line) !important;
  box-shadow:var(--v2-shadow) !important;
}
.cards .card,.stats .stat,.stats .stat-card,.stat-grid .stat,.summary-grid > *, .metric-grid > *{
  min-height:96px !important;
  margin:0 !important;
  padding:16px 18px !important;
  border:0 !important;
  border-radius:0 !important;
  background:var(--v2-surface) !important;
  box-shadow:none !important;
}
.card-label,.stat-title,.stat .label,.stat-card .label,.metric-label{color:var(--v2-muted) !important;font-size:13px !important;font-weight:700 !important}
.num,.stat-value,.stat .value,.stat-card .value,.metric-value{color:var(--v2-ink) !important;font-size:30px !important;font-weight:850 !important;letter-spacing:-.04em !important}

/* Forms and actions */
label,.form-label,.field-label{color:var(--v2-ink-2) !important;font-weight:750 !important}
input:not([type="checkbox"]):not([type="radio"]),select,textarea{
  min-height:42px !important;
  color:var(--v2-ink) !important;
  border:1px solid var(--v2-line-strong) !important;
  border-radius:var(--v2-radius-sm) !important;
  background:#fff !important;
  box-shadow:0 1px 1px rgba(28,48,78,.025) !important;
}
textarea{min-height:92px !important;padding:10px 12px !important}
input::placeholder,textarea::placeholder{color:#7c899d !important;opacity:1 !important}
input:focus,select:focus,textarea:focus{
  border-color:var(--v2-accent) !important;
  box-shadow:0 0 0 3px rgba(23,105,210,.12) !important;
  outline:0 !important;
}
.btn,button,.button,.compact-btn,.status-pill-btn,.ui-page-button{
  min-height:40px !important;
  padding:0 15px !important;
  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;
  color:#fff !important;
  font-weight:750 !important;
  line-height:1 !important;
  white-space:nowrap !important;
  text-decoration:none !important;
  border:1px solid var(--v2-accent) !important;
  border-radius:var(--v2-radius-sm) !important;
  background:var(--v2-accent) !important;
  box-shadow:none !important;
  cursor:pointer !important;
  transition:background .16s ease,border-color .16s ease,transform .16s ease !important;
}
.btn:hover,button:hover,.button:hover,.compact-btn:hover,.status-pill-btn:hover,.ui-page-button:hover:not(:disabled){background:var(--v2-accent-strong) !important;border-color:var(--v2-accent-strong) !important}
.btn:active,button:active,.button:active,.compact-btn:active,.status-pill-btn:active,.ui-page-button:active{transform:translateY(1px) !important}
.btn-secondary,.btn-gray,.btn-outline,.secondary,.ghost,.ui-page-button{
  color:var(--v2-ink-2) !important;
  border-color:var(--v2-line-strong) !important;
  background:#fff !important;
}
.btn-secondary:hover,.btn-gray:hover,.btn-outline:hover,.secondary:hover,.ghost:hover,.ui-page-button:hover:not(:disabled){color:var(--v2-accent) !important;background:var(--v2-accent-soft) !important;border-color:#b8d5f8 !important}
.btn-danger,.danger-btn,button.danger{color:#fff !important;background:var(--v2-danger) !important;border-color:var(--v2-danger) !important}
button:disabled,.btn:disabled,.ui-page-button:disabled{opacity:.45 !important;cursor:not-allowed !important;transform:none !important}
.link-btn{
  min-height:0 !important;
  padding:0 !important;
  color:var(--v2-accent) !important;
  border:0 !important;
  border-radius:0 !important;
  background:transparent !important;
  font-weight:700 !important;
}
.link-btn:hover{color:var(--v2-accent-strong) !important;background:transparent !important;text-decoration:underline !important}

/* Dense operational tables */
.table-wrap,.table-scroll,.table-container,.resident-table-wrap,.system-log-table-wrap{
  width:100% !important;
  max-width:100% !important;
  overflow:auto !important;
  border:1px solid var(--v2-line) !important;
  border-radius:var(--v2-radius-sm) !important;
  background:#fff !important;
  box-shadow:none !important;
}
table{width:100%;border-collapse:separate !important;border-spacing:0 !important;color:var(--v2-ink-2) !important;background:#fff !important}
th{
  position:sticky;
  top:0;
  z-index:2;
  height:42px !important;
  padding:9px 11px !important;
  color:#4c5d75 !important;
  font-size:12px !important;
  font-weight:800 !important;
  text-align:left !important;
  white-space:nowrap !important;
  border:0 !important;
  border-bottom:1px solid var(--v2-line-strong) !important;
  background:#f2f6fa !important;
}
td{
  height:42px !important;
  padding:8px 11px !important;
  color:var(--v2-ink-2) !important;
  font-size:13px !important;
  line-height:1.45 !important;
  vertical-align:middle !important;
  border:0 !important;
  border-bottom:1px solid #e8edf3 !important;
  background:#fff !important;
}
tbody tr:last-child td{border-bottom:0 !important}
tbody tr:hover td{background:#f5f9fe !important}
td .btn,td button,td .button{
  min-height:32px !important;
  padding:0 10px !important;
  border-radius:7px !important;
  font-size:12px !important;
}
.ui-table-pager,.pager-bar,.pagination,.pager-actions{
  display:flex !important;
  align-items:center !important;
  justify-content:flex-end !important;
  gap:10px !important;
  min-height:54px !important;
  padding:9px 0 !important;
  color:var(--v2-muted) !important;
  font-size:13px !important;
}

/* Long operational lists stay inside a predictable workspace on desktop. */
@media (min-width:901px){
  body.page-users .table-wrap,
  body.page-tasks .table-wrap,
  body.page-alerts .table-wrap,
  body.page-repair_management .table-wrap,
  body.page-repairs .table-wrap,
  body.page-meter_management .table-wrap,
  body.page-meters .table-wrap,
  body.page-inspections .table-wrap,
  body.page-nonresident_inspection_records .table-wrap,
  body.page-settings .system-log-table-wrap,
  body.page-settings_home .system-log-table-wrap{
    max-height:min(58dvh,680px) !important;
    overflow:auto !important;
    overscroll-behavior:contain;
    scrollbar-gutter:stable;
  }

  body.page-tasks .task-collapse .table-wrap,
  body.page-alerts .task-collapse .table-wrap{
    max-height:min(48dvh,520px) !important;
  }

  body.page-repair_management .ui-table-pager,
  body.page-repairs .ui-table-pager,
  body.page-meter_management .ui-table-pager,
  body.page-meters .ui-table-pager,
  body.page-tasks .ui-table-pager,
  body.page-alerts .ui-table-pager{
    position:sticky;
    bottom:0;
    z-index:4;
    margin-top:0 !important;
    padding:9px 12px !important;
    border:1px solid var(--v2-line) !important;
    border-top:0 !important;
    border-radius:0 0 var(--v2-radius-sm) var(--v2-radius-sm) !important;
    background:rgba(249,251,253,.96) !important;
    backdrop-filter:blur(10px);
  }
}
.badge,.pill,.tag,.status-badge{
  border-radius:999px !important;
  border:1px solid #c9ddf6 !important;
  background:#eef6ff !important;
  color:#185baf !important;
  box-shadow:none !important;
}
.badge.success,.badge.done,.pill.success,.status-badge.success{border-color:#bfe4d4 !important;background:#edf9f4 !important;color:var(--v2-success) !important}
.badge.warn,.badge.pending,.pill.warn,.status-badge.warn{border-color:#ead5aa !important;background:#fff8e9 !important;color:var(--v2-warning) !important}
.badge.danger,.pill.danger,.status-badge.danger{border-color:#efc3c9 !important;background:#fff1f3 !important;color:var(--v2-danger) !important}

.flash,.notice,.readonly-tip{
  padding:11px 14px !important;
  color:#174f94 !important;
  border:1px solid #bed7f5 !important;
  border-radius:var(--v2-radius-sm) !important;
  background:#edf6ff !important;
  box-shadow:none !important;
}
.flash-stack{display:grid;gap:8px;margin:0 0 14px}
.flash-stack .flash{margin:0 !important}
.empty{
  min-height:110px !important;
  display:flex !important;
  align-items:center !important;
  justify-content:center !important;
  color:var(--v2-muted) !important;
  background:#fafbfd !important;
}

/* Portal: an operational map with asymmetric rhythm, not a tile wall. */
body.v2-portal{
  min-height:100dvh !important;
  overflow-x:hidden !important;
  background:
    radial-gradient(circle at 82% 0,rgba(23,105,210,.08),transparent 32rem),
    linear-gradient(180deg,#fbfcfe,#f2f5f9 58%) !important;
}
body.v2-portal .page{width:100%;min-height:100dvh;padding:0 !important}
body.v2-portal .shell{
  width:100% !important;
  max-width:1680px !important;
  min-height:100dvh !important;
  margin:0 auto !important;
  padding:28px clamp(18px,3vw,48px) 42px !important;
  border:0 !important;
  border-radius:0 !important;
  background:transparent !important;
  box-shadow:none !important;
  backdrop-filter:none !important;
}
body.v2-portal .topbar{
  display:grid !important;
  grid-template-columns:minmax(0,1fr) auto !important;
  align-items:center !important;
  min-height:82px !important;
  margin:0 0 22px !important;
  padding:0 !important;
  border:0 !important;
  background:transparent !important;
  box-shadow:none !important;
}
body.v2-portal .system-title{
  max-width:760px;
  margin:0 !important;
  color:var(--v2-ink) !important;
  font-size:clamp(31px,3vw,48px) !important;
  font-weight:900 !important;
  letter-spacing:-.055em !important;
  text-shadow:none !important;
}
body.v2-portal .topbar-right{display:flex !important;align-items:stretch !important;gap:10px !important}
body.v2-portal .task-badge,body.v2-portal .clock{
  min-width:0 !important;
  min-height:64px !important;
  padding:11px 15px !important;
  border:1px solid #c9d9eb !important;
  border-radius:var(--v2-radius) !important;
  background:linear-gradient(145deg,#edf4fc 0%,#e3edf8 100%) !important;
  box-shadow:var(--v2-shadow) !important;
}
body.v2-portal .task-badge{display:flex !important;align-items:center !important;gap:10px !important;color:var(--v2-ink) !important}
body.v2-portal .task-icon{display:none !important}
body.v2-portal .task-count{height:30px !important;min-width:30px !important;padding:0 9px !important;background:var(--v2-danger) !important}
body.v2-portal .clock .time{font-size:25px !important;color:var(--v2-ink) !important}
body.v2-portal .clock .date{margin-top:4px !important;font-size:11px !important;color:var(--v2-muted) !important}

body.v2-portal .hero{
  display:grid !important;
  grid-template-columns:minmax(260px,.34fr) minmax(0,1fr) !important;
  align-items:center !important;
  gap:24px !important;
  min-height:132px !important;
  margin:0 0 18px !important;
  padding:24px 26px !important;
  color:var(--v2-ink) !important;
  border:1px solid #cbd8e8 !important;
  border-radius:var(--v2-radius) !important;
  background:
    linear-gradient(100deg,#edf4fd 0,#f8fbff 52%,#eef8f8 100%) !important;
  box-shadow:var(--v2-shadow) !important;
}
body.v2-portal .hero::after{display:none !important}
body.v2-portal .hero-head h2{color:var(--v2-ink) !important;font-size:26px !important;letter-spacing:-.03em !important}
body.v2-portal .hero-head h2::after{display:none !important}
body.v2-portal .searchbox{margin:0 !important;padding:7px !important;border:1px solid var(--v2-line) !important;border-radius:12px !important;background:rgba(255,255,255,.82) !important;backdrop-filter:none !important}
body.v2-portal .searchbox form{grid-template-columns:minmax(0,1fr) 108px !important;gap:7px !important}
body.v2-portal .searchbox input{height:48px !important;border:0 !important;background:#fff !important;box-shadow:none !important}
body.v2-portal .searchbox button{height:48px !important;margin:0 !important;border-radius:9px !important;background:var(--v2-accent) !important;box-shadow:none !important}

body.v2-portal .workspace-grid{
  display:grid !important;
  grid-template-columns:repeat(12,minmax(0,1fr)) !important;
  gap:14px !important;
  margin:0 0 18px !important;
}
body.v2-portal .workspace-card{
  position:relative !important;
  min-height:230px !important;
  padding:22px !important;
  overflow:hidden !important;
  color:var(--v2-ink) !important;
  border:1px solid var(--v2-line) !important;
  border-radius:var(--v2-radius) !important;
  background:rgba(255,255,255,.93) !important;
  box-shadow:var(--v2-shadow) !important;
  transition:transform .18s ease,border-color .18s ease,box-shadow .18s ease !important;
}
body.v2-portal .workspace-card::before{
  content:"";
  position:absolute;
  left:0;
  top:0;
  bottom:0;
  width:4px;
  background:var(--v2-accent);
}
body.v2-portal .workspace-card:hover{transform:translateY(-2px) !important;border-color:#b9cae0 !important;box-shadow:var(--v2-shadow-hover) !important}
body.v2-portal .workspace-nonresident{grid-column:span 6 !important}
body.v2-portal .workspace-resident,body.v2-portal .workspace-coal{grid-column:span 3 !important}
body.v2-portal .workspace-operations{grid-column:span 7 !important;min-height:190px !important}
body.v2-portal .workspace-system{grid-column:span 5 !important;min-height:190px !important}
body.v2-portal .workspace-heading span{color:var(--v2-accent) !important;font-size:12px !important;font-weight:800 !important;letter-spacing:.04em !important}
body.v2-portal .workspace-heading h2{margin:5px 0 14px !important;color:var(--v2-ink) !important;font-size:28px !important;font-weight:870 !important;letter-spacing:-.04em !important}
body.v2-portal .workspace-links{border-top:1px solid var(--v2-line) !important}
body.v2-portal .workspace-link{
  min-height:43px !important;
  padding:0 3px !important;
  color:var(--v2-ink-2) !important;
  border-bottom:1px solid #e7edf3 !important;
  background:transparent !important;
  font-size:14px !important;
  font-weight:720 !important;
}
body.v2-portal .workspace-link:hover{color:var(--v2-accent) !important;padding-left:8px !important;background:transparent !important}
body.v2-portal .workspace-link b{color:var(--v2-accent) !important;font-size:20px !important}
body.v2-portal .stats{
  display:grid !important;
  grid-template-columns:repeat(4,minmax(0,1fr)) !important;
  margin:0 !important;
}
body.v2-portal .stat-card{min-height:96px !important;padding:16px 20px !important;border-radius:0 !important;background:#fff !important;box-shadow:none !important}
body.v2-portal .stat-card::after{display:none !important}
body.v2-portal .stat-card .value{margin-top:7px !important;color:var(--v2-ink) !important;font-size:30px !important}

/* Login: stable split layout. Focus improves clarity without moving the page. */
body.v2-login{
  min-height:100dvh !important;
  overflow:auto !important;
  background:
    radial-gradient(circle at 14% 12%,rgba(23,105,210,.12),transparent 30rem),
    linear-gradient(145deg,#f8fafc,#eef3f8) !important;
}
body.v2-login::before{display:none !important}
body.v2-login .stage{
  grid-template-columns:minmax(0,1.08fr) minmax(390px,.72fr) !important;
  gap:clamp(36px,6vw,94px) !important;
  width:min(1280px,calc(100vw - 64px)) !important;
  min-height:100dvh !important;
  padding:48px 0 !important;
}
body.v2-login .brand-panel{
  min-height:510px !important;
  padding:52px 0 !important;
  color:var(--v2-ink) !important;
  border:0 !important;
  border-radius:0 !important;
  background:transparent !important;
  box-shadow:none !important;
  overflow:visible !important;
  transform:none !important;
  filter:none !important;
  opacity:1 !important;
}
body.v2-login .brand-mark{padding:8px 11px !important;color:#4c5c72 !important;border:1px solid var(--v2-line) !important;background:rgba(255,255,255,.72) !important;letter-spacing:.05em !important}
body.v2-login .brand-dot{width:9px !important;height:9px !important;background:var(--v2-accent) !important;box-shadow:0 0 0 5px rgba(23,105,210,.1) !important}
body.v2-login .brand-title{max-width:700px !important;margin:72px 0 18px !important;color:var(--v2-ink) !important;font-size:clamp(42px,5vw,68px) !important;line-height:1.03 !important;letter-spacing:-.065em !important}
body.v2-login .brand-subtitle{color:var(--v2-muted) !important;font-size:16px !important;line-height:1.75 !important}
body.v2-login .signal-row{left:0 !important;right:0 !important;bottom:36px !important;gap:1px !important;overflow:hidden !important;border:1px solid var(--v2-line) !important;border-radius:var(--v2-radius) !important;background:var(--v2-line) !important}
body.v2-login .signal-card{padding:16px !important;border:0 !important;border-radius:0 !important;background:rgba(255,255,255,.88) !important;backdrop-filter:none !important}
body.v2-login .signal-card strong{color:var(--v2-ink) !important}
body.v2-login .signal-card span{color:var(--v2-muted) !important}
body.v2-login .login-card{
  min-height:520px !important;
  padding:38px !important;
  border:1px solid var(--v2-line) !important;
  border-radius:18px !important;
  background:rgba(255,255,255,.94) !important;
  box-shadow:0 28px 70px rgba(28,48,78,.14) !important;
  backdrop-filter:blur(14px) !important;
  transform:none !important;
  transition:border-color .18s ease,box-shadow .18s ease !important;
}
body.v2-login .login-card:hover,body.v2-login .login-card:focus-within{transform:none !important;border-color:#bdd2ea !important;box-shadow:0 34px 78px rgba(28,48,78,.18) !important}
body.v2-login .login-card::before{display:none !important}
body.v2-login .login-kicker{color:var(--v2-accent) !important;letter-spacing:.05em !important}
body.v2-login .login-kicker::before{background:var(--v2-accent) !important}
body.v2-login h1{color:var(--v2-ink) !important;font-size:34px !important;letter-spacing:-.04em !important}
body.v2-login input{height:50px !important;border-radius:10px !important;background:#fff !important}
body.v2-login button{height:50px !important;margin-top:8px !important;border-radius:10px !important;background:var(--v2-accent) !important;box-shadow:none !important}
body.v2-login .hint{color:#174f94 !important;border-color:#c9def7 !important;background:#eff6ff !important}

/* The running software version stays visible on every V2 page. */
.lnrq-app-version{
  position:fixed;
  left:14px;
  bottom:12px;
  z-index:2200;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:28px;
  padding:0 10px;
  border:1px solid rgba(181,198,218,.9);
  border-radius:999px;
  background:rgba(255,255,255,.9);
  box-shadow:0 8px 24px rgba(28,48,78,.12);
  color:#53657d;
  font-size:12px;
  font-weight:800;
  font-variant-numeric:tabular-nums;
  letter-spacing:.025em;
  line-height:1;
  white-space:nowrap;
  pointer-events:none;
  backdrop-filter:blur(12px);
}

/* Motion communicates hierarchy and feedback only. */
@keyframes v2-rise{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
body.v2-portal .hero,body.v2-portal .workspace-card,body.v2-portal .stats,
.page-head,.clean-topbar,.standalone-top{animation:v2-rise .36s both}
body.v2-portal .workspace-card:nth-child(2){animation-delay:50ms}
body.v2-portal .workspace-card:nth-child(3){animation-delay:90ms}
body.v2-portal .workspace-card:nth-child(4){animation-delay:130ms}
body.v2-portal .workspace-card:nth-child(5){animation-delay:170ms}

@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{scroll-behavior:auto !important;animation-duration:.01ms !important;animation-iteration-count:1 !important;transition-duration:.01ms !important}
}

@media (max-width:1100px){
  body[class*="page-"] .topbar,body[class*="page-"] .topbar.topbar-compact,body.page-report-center .topbar{
    grid-template-columns:auto minmax(0,1fr) !important;
  }
  .topbar-time,.topbar-chip{display:none !important}
  body.v2-portal .workspace-nonresident{grid-column:span 12 !important}
  body.v2-portal .workspace-resident,body.v2-portal .workspace-coal{grid-column:span 6 !important}
  body.v2-portal .workspace-operations,body.v2-portal .workspace-system{grid-column:span 12 !important}
}

@media (max-width:760px){
  .lnrq-app-version{left:8px;bottom:8px;min-height:25px;padding:0 8px;font-size:11px}
  body[class*="page-"] .content,body.page-report-center main,
  body.clean-page .clean-wrap,.standalone-shell,.resident-shell,.window,.wrap{padding:14px 12px 34px !important}
  body:not(.v2-portal):not(.v2-login) > .page{padding:14px 12px 34px !important}
  body:not(.v2-portal):not(.v2-login) > .page > .topbar{align-items:flex-start !important;flex-direction:column !important;padding:15px !important}
  body[class*="page-"] .topbar,body[class*="page-"] .topbar.topbar-compact,body.page-report-center .topbar{
    position:sticky !important;
    display:flex !important;
    flex-direction:column !important;
    align-items:stretch !important;
    gap:9px !important;
    min-height:0 !important;
    padding:10px 12px !important;
  }
  .topbar-title-solo,.topbar-title,.topbar-module{font-size:21px !important}
  .top-nav,.topbar-nav,.top-nav-header{justify-content:flex-start !important;width:100% !important}
  .top-nav-link,.topbar-nav a,.top-nav-button{min-height:34px !important;padding:0 11px !important;font-size:12px !important}
  .page-head,.clean-topbar,.standalone-top,.resident-hero,.inspection-hero,.page-header{align-items:flex-start !important;flex-direction:column !important;padding:15px !important}
  .panel,.card-panel,.section-card,.content-card,.table-card{padding:14px !important}
  .cards,.stats,.stat-grid,.summary-grid,.metric-grid{grid-template-columns:repeat(2,minmax(0,1fr)) !important}
  .cards .card,.stats .stat,.stats .stat-card,.stat-grid .stat,.summary-grid > *,.metric-grid > *{min-height:82px !important;padding:13px !important}
  th{height:39px !important;padding:8px 9px !important}
  td{height:39px !important;padding:7px 9px !important}

  body.v2-portal .shell{padding:18px 12px 34px !important}
  body.v2-portal .topbar{display:flex !important;align-items:stretch !important;flex-direction:column !important;gap:14px !important;margin-bottom:16px !important}
  body.v2-portal .system-title{font-size:30px !important;line-height:1.1 !important}
  body.v2-portal .topbar-right{display:grid !important;grid-template-columns:1fr 1fr !important}
  body.v2-portal .task-badge,body.v2-portal .clock{min-height:58px !important;padding:9px 11px !important}
  body.v2-portal .hero{grid-template-columns:1fr !important;gap:14px !important;padding:18px !important}
  body.v2-portal .hero-head h2{font-size:22px !important}
  body.v2-portal .searchbox form{grid-template-columns:minmax(0,1fr) 80px !important}
  body.v2-portal .workspace-grid{grid-template-columns:1fr !important}
  body.v2-portal .workspace-card,body.v2-portal .workspace-nonresident,body.v2-portal .workspace-resident,body.v2-portal .workspace-coal,body.v2-portal .workspace-operations,body.v2-portal .workspace-system{grid-column:auto !important;min-height:0 !important;padding:18px !important}
  body.v2-portal .workspace-heading h2{font-size:24px !important}
  body.v2-portal .stats{grid-template-columns:repeat(2,minmax(0,1fr)) !important}

  body.v2-login .stage{display:block !important;width:100% !important;min-height:100dvh !important;padding:12px !important}
  body.v2-login .brand-panel{min-height:auto !important;padding:18px 6px 22px !important}
  body.v2-login .brand-title{margin:28px 0 10px !important;font-size:34px !important}
  body.v2-login .brand-subtitle{font-size:13px !important}
  body.v2-login .signal-row{position:relative !important;left:auto !important;right:auto !important;bottom:auto !important;margin-top:20px !important}
  body.v2-login .signal-card{padding:11px !important}
  body.v2-login .signal-card strong{font-size:17px !important}
  body.v2-login .login-card{min-height:auto !important;padding:24px !important;border-radius:14px !important}
}
