/* Hotel Operations — SCALE 10 enterprise foundation contract
   Runtime styling is intentionally consolidated here. Historical PASS markers
   are retained as changelog anchors, but active table/list rhythm is owned by
   the PASS182 layout authority at the end of this file. */

:root{
  color-scheme:dark;
  --bg:#07111f;
  --bg2:#0a1628;
  --surface:#101b2b;
  --surface2:#16243a;
  --surface3:#1a2a42;
  --surface-2:var(--surface2);
  --surface-3:var(--surface3);
  --field-bg:rgba(255,255,255,.045);
  --surface-soft:rgba(255,255,255,.035);
  --surface-hover:rgba(148,167,255,.095);
  --line:rgba(154,176,214,.145);
  --line-strong:rgba(164,185,224,.24);
  --text:#e8eefc;
  --text-soft:#c7d2e8;
  --muted:#91a0bb;
  --muted2:#6f7f9a;
  --brand:#7f8cf4;
  --brand2:#58c8ad;
  --danger:#ef7283;
  --warning:#e9b84a;
  --good:#55c89d;
  --radius:20px;
  --radius-sm:14px;
  --shadow:0 18px 42px rgba(0,0,0,.24);
  --shadow-soft:0 10px 22px rgba(0,0,0,.14);
  --sidebar:248px;
  --rail:64px;
  --topbar:68px;
  --nav-row-h:38px;
  --nav-icon-box:40px;
  --edge-toggle-size:28px;
  --detail-width:clamp(440px,30vw,560px);
  --detail-overlay-w:clamp(420px,34vw,620px);
  --sidebar-solid:#07111f;
  --sidebar-solid-2:#0b1627;
  --gutter:18px;
  --gap:14px;
  --row-y:12px;
  --cell-x:14px;
  --control-h:42px;
  --font:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Arial,sans-serif;
  --filter-control-w:clamp(148px,13vw,220px);
  --filter-search-w:clamp(210px,20vw,340px);
  --panel-pad:17px;
  --card-pad:14px;
  --table-min:720px;
  --table-compact-min:580px;
  --z-popover:2000;
  --z-modal:1600;
  --premium-line:rgba(164,185,224,.16);
  --premium-line-soft:rgba(164,185,224,.10);
  --premium-row-selected:rgba(135,150,255,.060);
  --premium-row-selected-strong:rgba(145,158,255,.20);
  --preview-reader-width:min(1180px,calc(100vw - 48px));
  --preview-reader-height:min(92vh,980px);
  --row-selected-bg:rgba(135,150,255,.060);
  --row-selected-line:rgba(145,158,255,.20);
  --list-row-y:10px;
  --list-row-x:14px;
  --list-row-gap:10px;
  --list-row-min:56px;
  --list-row-compact-min:50px;
  --list-head-h:34px;
  --list-doc-col:8%;
  --list-control-gap:8px;
  --list-meta-size:9.5px;
  --document-row-thumb:48px;
  --document-row-pad:10px;
  --mobile-shell-authority-lock:1;
  --pass202-mobile-nav-logo-shell-lock:1;
  --mobile-topbar-h:64px;
  --mobile-tabbar-h:64px;
}


*{box-sizing:border-box}
html{height:100%;background:var(--bg)}
body{
  margin:0;
  min-height:100%;
  font-family:var(--font);
  font-size:13px;
  line-height:1.35;
  background:var(--bg);
  color:var(--text);
  overflow-x:hidden;
  -webkit-font-smoothing:antialiased;
  text-rendering:geometricPrecision;
}
button,input,select,textarea{font:inherit}
button{color:inherit}
a{color:inherit;text-decoration:none}
img,svg,canvas,iframe{max-width:100%}
.hidden{display:none!important}
[aria-hidden="true"].modal-overlay:not(.open){display:none}
body.document-preview-open{overflow:hidden}

.app,.shell,.main,.content,.workspace,.panel,.module-shell,.detail,.table-wrap{min-width:0}
.app{min-height:100vh;background:var(--bg)}
.app.boot-locked{opacity:.001;pointer-events:none}
.boot{
  position:fixed;inset:0;z-index:99999;display:grid;place-items:center;
  background:radial-gradient(circle at 50% 20%,rgba(135,150,255,.16),transparent 34%),var(--bg);
}
.boot-card{
  width:min(360px,calc(100vw - 32px));
  padding:28px 30px;
  border:1px solid var(--line);
  border-radius:24px;
  background:linear-gradient(180deg,rgba(255,255,255,.055),rgba(255,255,255,.025));
  box-shadow:var(--shadow);
  text-align:center;
}
.boot-brand-mark{min-height:auto;margin-bottom:14px}
.boot-logo{width:138px;height:auto;display:block;margin:0 auto}
.boot-spin{
  width:26px;height:26px;margin:8px auto 14px;border-radius:999px;
  border:3px solid rgba(255,255,255,.16);border-top-color:var(--brand);
  animation:spin .8s linear infinite;
}
.boot-title{font-weight:900;letter-spacing:.01em}
.boot-sub{margin-top:5px;color:var(--muted);font-size:12px}
@keyframes spin{to{transform:rotate(360deg)}}

.shell{
  display:grid;
  grid-template-columns:var(--rail) minmax(0,1fr);
  min-height:100vh;
  background:
    radial-gradient(circle at 72% -10%,rgba(135,150,255,.08),transparent 30%),
    var(--bg);
}
.sidebar{
  position:fixed;
  inset:0 auto 0 0;
  z-index:1220;
  width:var(--sidebar);
  height:100vh;
  display:flex;
  flex-direction:column;
  gap:12px;
  padding:16px 12px;
  overflow-y:auto;
  overflow-x:hidden;
  border-right:1px solid rgba(164,185,224,.14);
  background:linear-gradient(180deg,var(--sidebar-solid-2) 0%,var(--sidebar-solid) 100%);
  box-shadow:34px 0 86px rgba(0,0,0,.44);
  opacity:1;
  transform:translateX(0);
  transition:width .16s ease,box-shadow .16s ease,transform .16s ease;
}
body.sidebar-collapsed .shell,
body.sidebar-overlay-open .shell{grid-template-columns:var(--rail) minmax(0,1fr)}
body.sidebar-collapsed .main,
body.sidebar-overlay-open .main{grid-column:2;min-width:0}
body.sidebar-collapsed .sidebar{
  width:var(--rail);
  padding:12px 0;
  box-shadow:none;
}
body.sidebar-overlay-open .sidebar{
  width:var(--sidebar);
  box-shadow:34px 0 86px rgba(0,0,0,.44);
}
.brand{
  display:grid;
  padding:10px 4px 12px;
  min-width:0;
  position:relative;
}
.brand-mark{display:grid;place-items:center;width:100%;min-width:0;border:0;background:transparent;color:inherit;padding:0}
.brand-mark img{
  display:block;width:min(170px,100%);height:auto;object-fit:contain;
  filter:drop-shadow(0 16px 28px rgba(0,0,0,.22));
}
.sidebar-head{
  display:grid;
  grid-template-columns:1fr;
  place-items:center;
  gap:10px;
  min-height:104px;
  padding:4px 0 10px;
  margin:0;
  position:relative;
}
.chrome-toggle{
  width:40px;
  height:40px;
  min-width:40px;
  border:1px solid rgba(164,185,224,.18);
  border-radius:14px;
  display:inline-grid;
  place-content:center;
  gap:4px;
  padding:0;
  background:linear-gradient(180deg,rgba(255,255,255,.055),rgba(255,255,255,.024));
  color:var(--text);
  cursor:pointer;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.035);
}
.chrome-toggle span{display:block;width:16px;height:2px;border-radius:99px;background:currentColor;opacity:.86}
.chrome-toggle:hover{background:rgba(255,255,255,.035);border-color:transparent;box-shadow:none}
.top-brand-home:hover{background:transparent;border-color:transparent;box-shadow:none;filter:brightness(1.08)}
.sidebar-toggle,.chrome-toggle.sidebar-toggle{display:none!important}
.side-brand-home{display:grid;place-items:center;width:100%;height:auto;margin:0;padding:0;border:0;background:transparent;pointer-events:none;cursor:default}
.side-brand-home img{width:min(166px,100%);max-height:none;height:auto;object-fit:contain;filter:drop-shadow(0 18px 32px rgba(0,0,0,.24))}
.mobile-nav-toggle{display:none}
.nav-scrim{display:none}
body.sidebar-collapsed .sidebar-head{min-height:18px;padding:0;margin:0 0 9px}
body.sidebar-collapsed .side-brand-home,
body.sidebar-collapsed .nav-copy,
body.sidebar-collapsed .nav-chevron,
body.sidebar-collapsed .nav-children,
body.sidebar-collapsed .sidebar-footer{display:none!important}
body.sidebar-collapsed .nav{
  width:100%;
  display:grid;
  justify-items:center;
  gap:6px;
  padding-top:44px;
}
body.sidebar-collapsed .nav-group{
  width:100%;
  display:grid;
  justify-items:center;
}
body.sidebar-collapsed .nav-btn,
body.sidebar-collapsed .nav-parent{
  width:var(--nav-icon-box);
  height:var(--nav-row-h);
  min-height:var(--nav-row-h);
  margin:0 auto;
  padding:0;
  display:flex;
  align-items:center;
  justify-content:center;
}
body.sidebar-collapsed .nav-parent-main,
body.sidebar-collapsed .nav-label{
  width:var(--nav-icon-box);
  height:var(--nav-row-h);
  display:flex;
  align-items:center;
  justify-content:center;
  gap:0;
}
body.sidebar-collapsed .nav-icon{
  flex:0 0 20px;
  width:20px;
  height:20px;
  display:grid;
  place-items:center;
  margin:0;
}
body.sidebar-collapsed .nav-icon svg{
  width:18px;
  height:18px;
  display:block;
  margin:auto;
}
.edge-nav-toggle{
  position:fixed;
  top:10px;
  left:0;
  z-index:1280;
  width:var(--rail);
  height:40px;
  min-width:var(--rail);
  min-height:40px;
  display:grid;
  place-items:center;
  padding:0;
  border:0;
  outline:0;
  border-radius:0;
  color:rgba(224,232,248,.78);
  background:transparent;
  box-shadow:none;
  cursor:pointer;
  overflow:hidden;
  transition:color .14s ease,background .14s ease,transform .14s ease;
}
body.sidebar-overlay-open .edge-nav-toggle{
  left:calc(var(--sidebar) - var(--rail));
}
.edge-nav-toggle:hover{
  background:linear-gradient(90deg,transparent,rgba(255,255,255,.035),transparent);
  color:rgba(255,255,255,.95);
}
.edge-nav-toggle:active{transform:translateY(1px)}
.edge-nav-toggle:focus-visible{outline:1px solid rgba(164,185,224,.28);outline-offset:-8px}
.edge-nav-symbol{
  width:var(--nav-icon-box);
  height:var(--nav-row-h);
  display:grid;
  place-items:center;
  color:inherit;
  margin:0 auto;
}
.edge-nav-symbol::before{
  content:'\203A';
  display:block;
  font-size:18px;
  line-height:1;
  font-weight:760;
  transform:translateY(-1px);
}
body.sidebar-overlay-open .edge-nav-symbol::before{content:'\2039'}
body.sidebar-collapsed .shell{grid-template-columns:var(--rail) minmax(0,1fr)}
body.sidebar-collapsed .sidebar{width:var(--rail);padding:12px 8px;box-shadow:none}
body.sidebar-collapsed .sidebar-head{grid-template-columns:1fr;place-items:center;min-height:54px;padding:0 0 8px}
body.sidebar-collapsed .side-brand-home,
body.sidebar-collapsed .nav-copy,
body.sidebar-collapsed .nav-chevron,
body.sidebar-collapsed .nav-children,
body.sidebar-collapsed .sidebar-footer{display:none}
body.sidebar-collapsed .nav-label{justify-content:center}
body.sidebar-collapsed .nav-btn,body.sidebar-collapsed .nav-parent{justify-content:center;width:44px;height:38px;min-height:38px;margin-inline:auto;padding:0}
body.sidebar-collapsed .nav-icon{flex:0 0 18px}
body.sidebar-collapsed .sidebar-toggle{position:relative;left:auto;top:auto;transform:none;justify-self:center}
.nav{display:grid;gap:6px;min-width:0}
.nav-group{display:grid;gap:3px;min-width:0}
.nav-btn,.nav-parent,.nav-child{
  width:100%;
  border:1px solid transparent;
  background:transparent;
  color:var(--text-soft);
  text-align:left;
  cursor:pointer;
  min-width:0;
  user-select:none;
}
.nav-btn,.nav-parent{
  display:flex;align-items:center;justify-content:space-between;gap:10px;
  min-height:38px;
  padding:9px 10px;
  border-radius:13px;
  font-size:12px;
  font-weight:830;
}
.nav-parent-main,.nav-label{display:flex;align-items:center;gap:10px;min-width:0}
.nav-copy,.nav-child-copy{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.nav-icon{flex:0 0 17px;display:grid;place-items:center;opacity:.82}
.nav-icon svg{width:17px;height:17px;display:block}
.nav-badge,.nav-child-badge{
  flex:0 0 auto;
  min-width:24px;
  padding:3px 7px;
  border:1px solid var(--line);
  border-radius:999px;
  color:var(--muted);
  font-size:10px;
  font-weight:900;
  text-align:center;
}
.nav-chevron{flex:0 0 auto;color:var(--muted);font-size:12px}
.nav-btn:hover,.nav-parent:hover,.nav-child:hover{
  background:var(--surface-hover);
  border-color:var(--line);
  color:var(--text);
}
.nav-btn.active,.nav-parent.active,.nav-child.active{
  background:linear-gradient(180deg,rgba(135,150,255,.18),rgba(135,150,255,.075));
  border-color:rgba(135,150,255,.28);
  color:var(--text);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.045);
}
.nav-children{
  display:grid;
  gap:2px;
  max-height:0;
  overflow:hidden;
  opacity:0;
  transition:max-height .18s ease,opacity .14s ease;
}
.nav-group.is-open .nav-children{max-height:640px;opacity:1;padding:1px 0 4px}
.nav-child{
  display:flex;align-items:center;gap:9px;
  min-height:32px;
  padding:7px 10px 7px 36px;
  border-radius:11px;
  font-size:11px;
  font-weight:780;
}
.nav-child-dot{width:5px;height:5px;border-radius:99px;background:currentColor;opacity:.55;flex:0 0 auto}

.sidebar-footer{
  margin-top:auto;
  display:grid;
  gap:9px;
  min-width:0;
  padding-top:10px;
}
.sidebar-status,.session-chip{
  display:grid;
  gap:4px;
  min-width:0;
  max-width:100%;
  padding:10px 11px;
  border:1px solid var(--line);
  border-radius:14px;
  background:linear-gradient(180deg,rgba(255,255,255,.045),rgba(255,255,255,.02));
}
.sidebar-status .who,.session-chip .who{font-weight:900;font-size:11px;line-height:1.25;overflow-wrap:anywhere}
.sidebar-status .meta,.session-chip .meta{font-size:10px;line-height:1.3;color:var(--muted);overflow-wrap:anywhere}
.sidebar-status .dot{display:inline-block;width:7px;height:7px;border-radius:999px;background:var(--good);margin-right:6px}
.sidebar-status.syncing .dot{background:var(--warning)}

.main{
  display:grid;
  grid-column:2;
  grid-template-rows:var(--topbar) minmax(0,1fr);
  min-height:100vh;
  background:transparent;
}
.topbar{
  position:sticky;top:0;z-index:50;
  display:grid;
  grid-template-columns:minmax(240px,1fr) auto;
  align-items:center;
  gap:14px;
  min-width:0;
  padding:0 18px;
  border-bottom:1px solid var(--line);
  background:rgba(7,17,31,.78);
  backdrop-filter:blur(16px);
}
.top-left,.top-actions{display:flex;align-items:center;min-width:0}
.top-left{justify-self:start;gap:12px;padding-left:4px}
.top-center{display:none}
.top-actions{justify-self:end;gap:9px;position:relative}
.top-title{min-width:0}
.top-title h2{margin:0;font-size:15px;line-height:1.15;font-weight:900;letter-spacing:.01em}
.top-title .sub{margin-top:2px;color:var(--muted);font-size:11px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:36vw}
.workspace-title h2{font-size:14.5px;line-height:1.1;letter-spacing:.005em;max-width:min(52vw,680px);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.workspace-title .sub{font-size:11px;line-height:1.1;margin-top:2px;font-weight:850;color:rgba(183,197,221,.76);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:min(42vw,420px)}
.top-brand-home{display:grid;width:52px;height:42px;min-width:52px;border:0;border-radius:0;background:transparent;place-items:center;padding:0;cursor:pointer;overflow:visible;box-shadow:none;transform:translateX(4px)}
.top-brand-home:hover{background:transparent;border-color:transparent;box-shadow:none;filter:brightness(1.08)}
.top-brand-home img{width:42px;height:auto;display:block;filter:drop-shadow(0 10px 18px rgba(0,0,0,.20))}
.search-trigger{
  width:min(360px,32vw);
  justify-content:flex-start;
  color:var(--muted);
  background:rgba(255,255,255,.035);
}
.notif-wrap,.user-menu-wrap{position:relative;display:flex;align-items:center}

.btn{
  min-height:var(--control-h);
  display:inline-flex;align-items:center;justify-content:center;
  gap:8px;
  padding:0 14px;
  border:1px solid var(--line);
  border-radius:14px;
  background:linear-gradient(180deg,rgba(255,255,255,.06),rgba(255,255,255,.026));
  color:var(--text);
  font-weight:850;
  font-size:12px;
  line-height:1;
  cursor:pointer;
  white-space:nowrap;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.035);
}
.btn:hover{border-color:var(--line-strong);background:var(--surface-hover)}
.btn:disabled{opacity:.55;cursor:not-allowed}
.btn.primary{background:linear-gradient(135deg,var(--brand),#727cff);border-color:rgba(255,255,255,.20);color:#fff;box-shadow:0 12px 24px rgba(94,105,255,.22)}
.btn.ghost{background:transparent}
.btn.soft{background:rgba(255,255,255,.045)}
.btn.bad{color:#fecdd3;border-color:rgba(251,113,133,.32);background:rgba(251,113,133,.08)}
.btn.icon{width:38px;min-width:38px;height:38px;min-height:38px;padding:0;border-radius:13px}
.btn.icon.soft,.search-icon-btn{border-color:rgba(164,185,224,.14);background:rgba(255,255,255,.035);color:rgba(224,232,248,.86)}
.btn.icon.soft:hover,.search-icon-btn:hover{border-color:rgba(164,185,224,.30);background:rgba(135,150,255,.085);color:var(--text)}
.btn.sm{min-height:32px;padding:0 10px;border-radius:11px;font-size:11px}
.ico{display:inline-flex;align-items:center;justify-content:center;line-height:1;width:18px;height:18px;flex:0 0 18px;color:inherit}
.ico svg,.search-ico svg{width:18px;height:18px;display:block;overflow:visible;stroke:currentColor}

.user-avatar-btn{
  width:38px;height:38px;
  border:1px solid var(--line);
  border-radius:999px;
  background:linear-gradient(135deg,rgba(135,150,255,.28),rgba(99,213,180,.14));
  color:var(--text);
  font-weight:950;
  cursor:pointer;
}
.user-menu,.notif-menu{
  position:fixed;
  right:18px;
  top:calc(var(--topbar) + 8px);
  width:min(380px,calc(100vw - 32px));
  max-height:min(76vh,680px);
  overflow:auto;
  z-index:2000;
  padding:12px;
  border:1px solid var(--line-strong);
  border-radius:20px;
  background:linear-gradient(180deg,rgba(13,24,41,.985),rgba(8,18,33,.995));
  box-shadow:0 28px 60px rgba(0,0,0,.38);
}
.user-menu-card{display:flex;align-items:center;gap:12px;padding:10px;border:1px solid var(--line);border-radius:16px;background:var(--surface-soft)}
.user-menu-avatar{width:42px;height:42px;border-radius:999px;display:grid;place-items:center;background:rgba(135,150,255,.18);font-weight:950}
.user-menu-copy{min-width:0}
.user-menu-name{font-weight:950;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.user-menu-email{margin-top:2px;color:var(--muted);font-size:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.user-menu-section{margin-top:10px;padding:10px;border:1px solid var(--line);border-radius:16px;background:rgba(255,255,255,.025)}
.user-menu-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:7px 0;color:var(--muted)}
.user-menu-row strong{color:var(--text);text-align:right;overflow-wrap:anywhere}
.user-menu-section-title{font-weight:900;margin-bottom:8px}
.user-menu-signout{width:100%;margin-top:10px}

.notif-badge{
  position:absolute;top:-4px;right:-4px;
  min-width:18px;height:18px;padding:0 5px;
  display:flex;align-items:center;justify-content:center;
  border-radius:99px;background:var(--brand);color:white;
  font-size:10px;font-weight:950;border:2px solid var(--bg);
}
.notif-menu{display:none;visibility:hidden;opacity:0;pointer-events:none;transform:translateY(-4px);transition:.14s ease}
.notif-menu.open{display:block;visibility:visible;opacity:1;pointer-events:auto;transform:translateY(0)}
.notif-head{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:4px 4px 10px}
.notif-title{font-weight:950}
.notif-list{display:grid;gap:9px}
.notif-item{position:relative;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;border:1px solid var(--line);border-radius:15px;background:var(--surface-soft)}
.notif-item-main{min-width:0;border:0;background:transparent;text-align:left;color:inherit;padding:11px;cursor:pointer}
.notif-item-delete{width:28px;border:0;background:transparent;color:var(--muted);cursor:pointer}
.notif-item.unread{border-color:rgba(135,150,255,.36)}
.notif-item.read{opacity:.76}
.notif-item-top{display:flex;justify-content:space-between;gap:8px;align-items:flex-start}
.notif-item-title{font-weight:900;min-width:0}
.notif-item-meta{font-size:11px;color:var(--muted);white-space:nowrap}
.notif-item-sub{margin-top:5px;color:var(--muted);font-size:12px;line-height:1.4}
.notif-item-tag{display:inline-flex;margin-top:8px;padding:3px 7px;border:1px solid var(--line);border-radius:999px;color:var(--muted);font-size:10px;text-transform:uppercase;letter-spacing:.05em}
.notif-empty{padding:16px;text-align:center;color:var(--muted);border:1px dashed var(--line);border-radius:14px}

.content{
  display:grid;
  grid-template-columns:minmax(0,1fr);
  align-items:start;
  gap:var(--gutter);
  width:100%;
  padding:var(--gutter);
  min-width:0;
}
.content.with-detail{
  grid-template-columns:minmax(0,1fr);
}
.content.mobile-detail-only{grid-template-columns:1fr}
.mobile-tabbar{display:none}
.workspace{display:grid;gap:var(--gap);width:100%;max-width:none;min-width:0}
.panel{
  width:100%;
  min-width:0;
  border:1px solid var(--line);
  border-radius:22px;
  background:linear-gradient(180deg,rgba(255,255,255,.043),rgba(255,255,255,.019));
  box-shadow:inset 0 1px 0 rgba(255,255,255,.026);
}
.module-shell{
  display:grid;
  gap:14px;
  padding:17px;
  overflow:visible;
}
.module-head{
  display:flex;align-items:flex-start;justify-content:space-between;gap:14px;min-width:0;
}
.module-title-wrap{min-width:0}
.panel-title,.module-title,.surface-title{
  font-size:16px;
  line-height:1.22;
  font-weight:950;
  letter-spacing:.005em;
}
.module-sub,.module-mini-note,.helper-text,.muted,.sub{
  color:var(--muted);
  font-size:12px;
  line-height:1.4;
}
/* Canonical module summary / KPI system.
   PASS131: adaptive KPI grid balance. Compact content stays inside each card,
   while summary rows use the available module width instead of becoming left
   aligned islands on wide screens. Keep this as the single source of truth for
   module summary strips; do not add per-page appended KPI overrides. */
.module-summary{min-width:0;max-width:100%;container-type:inline-size}
.summary-grid{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(min(100%,var(--kpi-track-min)),1fr));
  justify-content:stretch;
  align-items:stretch;
  gap:var(--kpi-gap);
  min-width:0;
  max-width:100%;
}
.summary-grid.compact,.summary-grid.cost-kpi-strip,.summary-grid.overview-kpi-strip{
  grid-template-columns:repeat(auto-fit,minmax(min(100%,var(--kpi-track-min)),1fr));
}
.module-shell[data-module-shell="overview"] .summary-grid.overview-kpi-strip,
.module-shell[data-module-shell="costsOverview"] .summary-grid.cost-kpi-strip,
.module-shell[data-module-shell="costsReports"] .summary-grid,
.module-shell[data-module-shell="cases"] .summary-grid,
.module-shell[data-module-shell="assets"] .summary-grid,
.module-shell[data-module-shell="service"] .summary-grid{
  grid-template-columns:repeat(4,minmax(0,1fr));
}
.summary-card{
  --metric-accent:rgba(164,185,224,.70);
  --metric-soft:rgba(164,185,224,.045);
  position:relative;
  isolation:isolate;
  min-width:0;
  width:100%;
  max-width:none;
  min-height:var(--kpi-height);
  padding:var(--kpi-pad-y) var(--kpi-pad-x);
  display:grid;
  grid-template-rows:auto minmax(1px,1fr) auto;
  gap:5px;
  overflow:hidden;
  border:1px solid rgba(164,185,224,.135);
  border-radius:15px;
  background:
    linear-gradient(180deg,rgba(255,255,255,.026),rgba(255,255,255,.010));
  box-shadow:inset 0 1px 0 rgba(255,255,255,.020);
  contain:layout paint;
}
.summary-card.tone-neutral{--metric-accent:rgba(164,185,224,.70);--metric-soft:rgba(164,185,224,.045)}
.summary-card.tone-good,.summary-card.tone-service{--metric-accent:var(--chart-good);--metric-soft:rgba(88,200,173,.050)}
.summary-card.tone-warning,.summary-card.tone-plan{--metric-accent:var(--chart-warn);--metric-soft:rgba(233,184,74,.052)}
.summary-card.tone-risk{--metric-accent:var(--chart-danger);--metric-soft:rgba(239,114,131,.058)}
.summary-card.tone-cost{--metric-accent:var(--chart-plan);--metric-soft:rgba(105,167,247,.052)}
.summary-card.tone-work,.summary-card.tone-report{--metric-accent:var(--chart-info);--metric-soft:rgba(127,140,244,.052)}
.summary-card::before{
  content:'';
  position:absolute;
  left:0;
  top:12px;
  bottom:12px;
  width:2px;
  border-radius:0 999px 999px 0;
  background:var(--metric-accent);
  opacity:.36;
}
.summary-card::after{
  content:'';
  position:absolute;
  inset:0;
  background:linear-gradient(135deg,var(--metric-soft),transparent 42%);
  opacity:.035;
  pointer-events:none;
}
.summary-card{cursor:pointer}
.summary-card :is(.label,.value,.sub,.summary-trend,.summary-icon,span,strong,small,svg){cursor:pointer}
.summary-card-top,.summary-card-foot{position:relative;z-index:1;min-width:0;max-width:100%}
.summary-card-top{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:6px}
.summary-card-foot{display:flex;align-items:center;justify-content:space-between;gap:6px;overflow:hidden;min-height:13px}
.summary-icon{
  flex:0 0 auto;
  width:var(--kpi-icon-size);
  height:var(--kpi-icon-size);
  min-width:var(--kpi-icon-size);
  display:inline-grid;
  place-items:center;
  border:1px solid color-mix(in srgb,var(--metric-accent) 24%,rgba(255,255,255,.052));
  border-radius:10px;
  background:color-mix(in srgb,var(--metric-accent) 6%,rgba(255,255,255,.010));
  color:color-mix(in srgb,var(--metric-accent) 88%,#eef4ff);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.024);
}
.summary-icon svg{width:var(--kpi-icon-svg);height:var(--kpi-icon-svg);display:block;overflow:visible}
.summary-card .label,.summary-card .sub,.summary-trend{
  min-width:0;
  max-width:100%;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.summary-card .label,.label,.compact-row-label,.surface-eyebrow{
  color:var(--muted);
  font-size:10px;
  line-height:1.2;
  text-transform:uppercase;
  letter-spacing:.07em;
  font-weight:900;
}
.summary-card .label{color:rgba(199,210,232,.68)}
.summary-card .value,.value{
  min-width:0;
  max-width:100%;
  margin-top:0;
  color:var(--text);
  font-weight:950;
  font-size:clamp(17px,.60vw + 10px,23px);
  line-height:1.03;
  letter-spacing:-.024em;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
  overflow-wrap:normal;
}
.summary-card .sub{font-size:clamp(10.5px,.22vw + 8.7px,11.5px);line-height:1.2;color:rgba(199,210,232,.60);flex:1 1 auto}
.summary-trend{flex:0 1 46%;color:var(--metric-accent);font-size:clamp(9.5px,.18vw + 8px,10.5px);font-weight:900;line-height:1.12;text-align:right}
.summary-card:hover,.summary-card.is-clickable:hover{
  border-color:color-mix(in srgb,var(--metric-accent) 16%,rgba(164,185,224,.16));
  background:linear-gradient(180deg,rgba(255,255,255,.035),rgba(255,255,255,.014));
  box-shadow:inset 0 1px 0 rgba(255,255,255,.022);
  transform:none;
}
.summary-card.is-clickable:focus-visible{
  outline:2px solid color-mix(in srgb,var(--metric-accent) 54%,transparent);
  outline-offset:2px;
}

.module-filters{
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  align-items:center;
  gap:12px;
  min-width:0;
  padding:12px;
  border:1px solid var(--line);
  border-radius:18px;
  background:var(--surface-soft);
}
.module-filter-left,.module-filter-right,.cost-hub-controls,.toolbar,.action-bar,.action-bar-start,.action-bar-end,.overview-section-actions,.table-actions,.maintenance-actions,.notify-action-row,.planned-action-row,.report-export-controls,.report-history-toolbar{
  display:flex;
  align-items:center;
  gap:10px;
  min-width:0;
  flex-wrap:wrap;
}
.module-filter-right,.action-bar-end,.overview-section-actions{justify-content:flex-end}
.module-search{width:clamp(220px,22vw,360px);max-width:100%}
.module-section-head{
  display:flex;align-items:center;gap:10px;min-width:0;
  margin-top:1px;
}
.module-section-label{
  flex:0 0 auto;
  color:var(--muted);
  font-size:10px;
  font-weight:950;
  text-transform:uppercase;
  letter-spacing:.08em;
}
.module-section-line{height:1px;background:var(--line);flex:1 1 auto}
.module-table{min-width:0}

.input,.select,.textarea,select,input[type="date"],input[type="number"],input[type="search"],input[type="email"],input[type="text"],input[type="password"],textarea{
  width:100%;
  min-height:var(--control-h);
  border:1px solid var(--line);
  border-radius:13px;
  background:rgba(255,255,255,.045);
  color:var(--text);
  padding:0 12px;
  outline:none;
  min-width:0;
}
.textarea,textarea{min-height:96px;padding:11px 12px;resize:vertical;line-height:1.45}
.input:focus,.select:focus,.textarea:focus,select:focus,input:focus,textarea:focus{
  border-color:rgba(135,150,255,.55);
  box-shadow:0 0 0 3px rgba(135,150,255,.13);
}
.field{display:grid;gap:7px;min-width:0}
.field label,.field>label{
  color:var(--muted);
  font-size:11px;
  font-weight:850;
}
.field.full{grid-column:1 / -1}
.filter-grid,.detail-grid,.platform-form-grid,.admin-grid,.lookups-grid,.planned-cost-form-grid,.cost-plan-settings-grid,.compact-modal-grid{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(min(220px,100%),1fr));
  gap:12px;
  min-width:0;
}
.detail-grid.three,.cost-executive-grid .detail-grid.three{grid-template-columns:repeat(3,minmax(0,1fr))}
.detail-grid.two{grid-template-columns:repeat(2,minmax(min(220px,100%),1fr))}
.compact-modal-two{display:grid;grid-template-columns:repeat(2,minmax(min(220px,100%),1fr));gap:12px;min-width:0;align-items:stretch}
.modal-body .compact-modal-grid{grid-template-columns:1fr;align-items:start;gap:12px}
.modal-body .compact-modal-two{grid-template-columns:repeat(2,minmax(min(220px,100%),1fr));align-items:stretch;gap:12px}
.modal-body .compact-modal-card{min-width:0;overflow:hidden;padding:14px;display:grid;gap:7px}
.modal-body .compact-modal-card .title{font-weight:950;line-height:1.25;overflow-wrap:anywhere;word-break:normal}.modal-body .compact-modal-card .sub{color:var(--muted);line-height:1.35;overflow-wrap:anywhere;word-break:normal}.modal-body .compact-modal-card .label{display:block;margin:0;color:var(--muted);font-size:10px;line-height:1.15;text-transform:uppercase;letter-spacing:.07em;font-weight:900}
.activity-modal-open .modal-body{padding-top:12px;padding-bottom:12px}
.activity-modal-open .compact-modal-grid{gap:12px}
.activity-modal-open .compact-modal-two{display:grid;gap:12px}
.activity-modal-open .compact-modal-card{padding:12px 14px;border-radius:16px;gap:5px}
.activity-modal-open .compact-modal-card .title{font-size:13px;line-height:1.22}
.activity-modal-open .compact-modal-card .sub{font-size:11px;line-height:1.32}
.activity-modal-open .kv-row{padding:7px 0;grid-template-columns:minmax(108px,160px) minmax(0,1fr)}
.activity-modal-open .detail-inline-actions{margin-top:2px}
.section-stack{display:grid;gap:14px;min-width:0}
.data-chip,.status-pill,.type-chip,.search-tag,.overview-pill,.doc-badge,.work-badge,.activity-view-chip{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:6px;
  min-height:24px;
  max-width:100%;
  padding:4px 8px;
  border:1px solid var(--line);
  border-radius:999px;
  background:rgba(255,255,255,.045);
  color:var(--text-soft);
  font-size:10px;
  line-height:1;
  font-weight:900;
  white-space:nowrap;
}
.status-pill.live,.data-chip.live{color:#bbf7d0;border-color:rgba(52,211,153,.30);background:rgba(52,211,153,.09)}
.status-pill.dormant,.data-chip.dormant{color:#fed7aa;border-color:rgba(251,191,36,.30);background:rgba(251,191,36,.09)}

.table-wrap{
  width:100%;
  max-width:100%;
  min-width:0;
  overflow:hidden;
  border:1px solid var(--line);
  border-radius:18px;
  background:rgba(255,255,255,.018);
}
.table{
  width:100%;
  min-width:0;
  border-collapse:separate;
  border-spacing:0;
  table-layout:fixed;
}
.table th,.table td{
  padding:var(--list-row-y) var(--list-row-x);
  border-bottom:1px solid var(--line);
  text-align:left;
  vertical-align:middle;
  min-width:0;
}
.table th{
  height:var(--list-head-h);
  color:var(--muted);
  font-size:10px;
  line-height:1.2;
  font-weight:950;
  letter-spacing:.07em;
  text-transform:uppercase;
  background:rgba(255,255,255,.028);
}
.table td{
  height:var(--list-row-min);
  color:var(--text-soft);
  font-size:11.7px;
  line-height:1.32;
  overflow:hidden;
}
.table tbody tr:last-child td{border-bottom:0}
.table tbody tr:hover{background:rgba(135,150,255,.055)}
:where(.row-open,.cost-row,.activity-row,.urgent-row,.today-row,.work-row,.overview-item[data-open-kind],.detail-item[data-open-kind],[data-open-kind],[data-inspect-history],[data-inspect-service-log],[data-open-lookup-row],[data-platform-edit-hotel],[data-platform-open-access-modal],[data-platform-open-super-admin-modal],[data-report-year],[data-preview-document],[data-open-notification],[data-kpi-module],.summary-card.is-clickable){cursor:pointer}
:where(.row-open,.cost-row,.activity-row,.urgent-row,.today-row,.work-row,.overview-item[data-open-kind],.detail-item[data-open-kind],[data-open-kind],[data-inspect-history],[data-inspect-service-log],[data-open-lookup-row],[data-platform-edit-hotel],[data-platform-open-access-modal],[data-platform-open-super-admin-modal],[data-report-year],[data-preview-document],[data-open-notification],[data-kpi-module],.summary-card.is-clickable) :is(td,div,span,strong,small,button){cursor:pointer}
.table tbody tr:is(.row-open,.cost-row,.activity-row,.urgent-row,.today-row,.work-row,[data-open-kind],[data-inspect-history],[data-inspect-service-log]):hover td{background:rgba(135,150,255,.055)}
.table tbody tr:is(.row-open,.cost-row,.activity-row,.urgent-row,.today-row,.work-row,[data-open-kind],[data-inspect-history],[data-inspect-service-log]) td{cursor:pointer}
.table .primary-line,.primary-line,.table .secondary-line,.secondary-line,.table .tertiary-line,.tertiary-line{
  display:block;
  min-width:0;
  max-width:100%;
  overflow:hidden;
  text-overflow:ellipsis;
  overflow-wrap:anywhere;
}
.primary-line{color:var(--text);font-weight:920;line-height:1.24}
.secondary-line{color:var(--muted);font-size:11px;line-height:1.28;margin-top:4px}
.tertiary-line{color:var(--muted2);font-size:10px;line-height:1.25;margin-top:3px}
.title-clamp{
  display:-webkit-box;
  -webkit-line-clamp:1;
  -webkit-box-orient:vertical;
  white-space:normal;
}
.row-open,.cost-row,.activity-row{cursor:pointer}
.active-row,.row-open.active-row,.cost-row.active-row{
  background:linear-gradient(90deg,rgba(135,150,255,.16),rgba(135,150,255,.055));
}
.inline-pending,.row-op-note{margin-top:5px;color:var(--warning);font-size:10px;font-weight:900}

.empty{
  min-height:54px;
  display:grid;
  place-items:center;
  gap:6px;
  padding:16px;
  border:1px dashed var(--line);
  border-radius:15px;
  color:var(--muted);
  text-align:center;
  line-height:1.4;
}
.compact-empty{min-height:44px}
.list-controls{
  display:inline-flex;
  align-items:center;
  justify-content:flex-end;
  gap:var(--list-control-gap);
  margin:0;
  padding:0;
  min-width:0;
  width:auto;
  background:transparent;
  border:0;
  box-shadow:none;
}
.surface-action-row{display:flex;align-items:center;justify-content:space-between;gap:12px;min-width:0}

.detail{
  position:sticky;
  top:calc(var(--topbar) + var(--gutter));
  max-height:calc(100vh - var(--topbar) - (var(--gutter) * 2));
  overflow:auto;
  border:1px solid var(--line);
  border-radius:22px;
  background:linear-gradient(180deg,#0d1829,#081221);
  box-shadow:var(--shadow);
  min-width:0;
}
.detail-head{
  position:sticky;top:0;z-index:2;
  display:flex;align-items:flex-start;justify-content:space-between;gap:12px;
  padding:16px;
  border-bottom:1px solid var(--line);
  background:linear-gradient(180deg,#0d1829,#0b1627);
}
.detail-title{font-size:17px;font-weight:950;line-height:1.2}
.detail-body{display:grid;gap:13px;padding:14px;min-width:0}
.detail-section,.detail-item,.soft-card,.compact-modal-card,.platform-card,.platform-pane,.overview-item,.cockpit-card{
  min-width:0;
  border:1px solid var(--line);
  border-radius:18px;
  background:rgba(255,255,255,.032);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.022);
}
.detail-section{padding:14px;display:grid;gap:12px;overflow:hidden}
.detail-section-head{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:12px;
  min-width:0;
}
.detail-section-head.compact{align-items:center}
.detail-section-title{font-size:13px;font-weight:950;line-height:1.25}
.detail-item{padding:12px}
.detail-kpis,.cost-plan-snapshot-grid,.report-package-grid,.report-grid,.report-flow-grid,.overview-cockpit-grid,.cost-dashboard-grid,.cost-overview-flow,.uniform-two-column-flow,.overview-cockpit-columns{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:14px;
  min-width:0;
}
.detail-kpi,.soft-card{padding:13px;border-radius:16px}
.detail-kpi .label{font-size:10px}
.detail-kpi .value{font-size:18px}
.stat-line,.kv-row,.platform-context-row{
  display:grid;
  grid-template-columns:minmax(120px,180px) minmax(0,1fr);
  gap:12px;
  align-items:start;
  padding:9px 0;
  border-bottom:1px solid var(--line);
}
.stat-line:last-child,.kv-row:last-child{border-bottom:0}
.stat-line .name,.kv-label{color:var(--muted);font-size:11px;font-weight:850}
.stat-line .value,.kv-value{min-width:0;overflow-wrap:anywhere;word-break:normal;color:var(--text);font-size:12px}
.modal-body .kv-row{grid-template-columns:minmax(110px,170px) minmax(0,1fr)}

.detail-list{display:grid;gap:var(--list-row-gap);min-width:0}
.doc-row{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:var(--list-row-gap);
  min-width:0;
  padding:var(--document-row-pad);
  border:1px solid var(--line);
  border-radius:15px;
  background:rgba(255,255,255,.03);
}
.doc-row:hover{border-color:var(--line-strong);background:var(--surface-hover)}
.doc-row-main{display:flex;gap:12px;align-items:center;min-width:0;flex:1 1 auto}
.doc-thumb{
  width:var(--document-row-thumb);height:var(--document-row-thumb);flex:0 0 var(--document-row-thumb);
  border-radius:13px;
  border:1px solid var(--line);
  display:grid;place-items:center;
  object-fit:cover;
  background:rgba(255,255,255,.04);
  color:var(--muted);
  font-size:10px;
  font-weight:950;
  text-transform:uppercase;
}
.doc-row-meta{min-width:0;flex:1 1 auto}
.doc-row-title{display:flex;align-items:center;gap:7px;min-width:0;font-weight:900;color:var(--text)}
.doc-row-title span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.doc-row-sub{margin-top:4px;color:var(--muted);font-size:11px;line-height:1.3;overflow-wrap:anywhere}
.doc-row-actions{display:flex;align-items:center;gap:9px;flex:0 0 auto;flex-wrap:wrap;justify-content:flex-end}

.search-overlay,.modal-overlay{
  position:fixed;inset:0;z-index:1600;
  display:none;place-items:center;
  padding:24px;
  background:rgba(2,8,18,.58);
  backdrop-filter:blur(10px);
}
.search-overlay.open,.modal-overlay.open{display:grid}
.search-box,.modal-card{
  width:clamp(640px,62vw,980px);
  max-width:calc(100vw - 36px);
  overflow:hidden;
  border:1px solid var(--line-strong);
  border-radius:22px;
  background:linear-gradient(180deg,rgba(13,24,41,.985),rgba(8,18,33,.995));
  box-shadow:0 32px 80px rgba(0,0,0,.45);
}
.search-box{max-height:min(86vh,820px)}
.search-box.preview-box{
  width:var(--preview-reader-width);
  height:var(--preview-reader-height);
  max-width:calc(100vw - 48px);
  max-height:calc(100dvh - 32px);
  min-height:min(620px,calc(100dvh - 32px));
  display:grid;
  grid-template-rows:auto minmax(0,1fr);
  overflow:hidden;
}
.preview-box.is-image-preview{width:min(1280px,calc(100vw - 48px));height:var(--preview-reader-height)}
.preview-box .preview-head{min-width:0}
.preview-box .preview-body{
  min-height:0;
  max-height:none;
  display:grid;
  grid-template-rows:minmax(0,1fr) auto;
  gap:8px;
  padding:10px;
  overflow:hidden;
}
.preview-box .preview-frame{
  display:block;
  width:100%;
  height:100%;
  min-height:0;
  border:1px solid var(--line);
  border-radius:16px;
  background:#fff;
}
.preview-box .preview-image{
  display:block;
  width:100%;
  height:100%;
  max-height:none;
  object-fit:contain;
  border-radius:16px;
  border:1px solid var(--line);
  background:rgba(255,255,255,.03);
}
.preview-fallback{display:flex;align-items:center;justify-content:flex-end;gap:10px;padding:0 4px 2px;color:var(--muted);font-size:11px;font-weight:800;min-height:32px}
.preview-frame.pdf-frame{background:#fff}

.modal-card{
  max-height:calc(100dvh - 48px);
  display:flex;
  flex-direction:column;
  min-height:0;
}
.search-head,.modal-head{
  display:flex;align-items:center;justify-content:space-between;gap:12px;
  padding:16px;
  border-bottom:1px solid var(--line);
}
.modal-head{flex:0 0 auto}
.search-list{padding:16px;overflow:auto;max-height:calc(86vh - 96px);min-width:0}
.modal-body{
  flex:1 1 auto;
  min-height:0;
  padding:16px;
  overflow:auto;
  overscroll-behavior:contain;
  scrollbar-gutter:stable;
}
.modal-title,.preview-title{font-size:16px;font-weight:950}
.modal-sub{margin-top:3px;color:var(--muted);font-size:12px}
.modal-actions{
  flex:0 0 auto;
  display:flex;justify-content:flex-end;align-items:center;gap:10px;flex-wrap:wrap;
  padding:14px 16px max(14px,env(safe-area-inset-bottom));
  border-top:1px solid var(--line);
  background:linear-gradient(180deg,rgba(8,18,33,.94),rgba(8,18,33,.995));
}
.search-item{
  width:100%;
  display:grid;
  gap:4px;
  min-width:0;
  padding:12px;
  border:1px solid var(--line);
  border-radius:15px;
  background:rgba(255,255,255,.025);
  color:inherit;
  text-align:left;
  cursor:pointer;
}
.search-item+.search-item{margin-top:9px}
.search-item:hover{border-color:var(--line-strong);background:var(--surface-hover)}
.search-item-title{font-weight:920}
.search-item-sub,.search-item-meta{color:var(--muted);font-size:12px}

.overview-shell,.costs-command-surface{display:grid;gap:14px;min-width:0}
.overview-kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:12px}
.overview-grid,.overview-command-grid,.overview-premium-grid,.premium-overview-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:14px;
  min-width:0;
}
.overview-column,.overview-cockpit-column,.flow-column{display:grid;gap:14px;min-width:0;align-content:start}
.overview-list,.flow-list-section{display:grid;gap:9px;min-width:0}
.overview-item{
  padding:12px;
  display:grid;
  gap:7px;
  cursor:pointer;
}
.overview-item:hover{border-color:var(--line-strong);background:var(--surface-hover)}
.overview-item-head{display:flex;justify-content:space-between;gap:10px;align-items:flex-start}
.overview-item-title{font-weight:920;min-width:0}
.overview-item-meta,.overview-section-note{color:var(--muted);font-size:11px}
.overview-item-amount{font-weight:950}
.cockpit-visual-row{
  display:grid;
  grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr);
  gap:12px;
  align-items:stretch;
}
.visual-section{min-height:0}

.cost-mini-chart{
  height:176px;
  display:flex;
  align-items:end;
  gap:8px;
  min-width:0;
  padding:12px 10px 8px;
  border:1px solid var(--line);
  border-radius:15px;
  background:rgba(255,255,255,.022);
  overflow:hidden;
}
.cost-mini-bar{
  flex:1 1 0;
  min-width:0;
  height:100%;
  display:flex;
  flex-direction:column;
  justify-content:flex-end;
  gap:7px;
  border:0;
  background:transparent;
  color:var(--muted);
  cursor:pointer;
  padding:0;
}
.cost-mini-bar span{
  display:block;
  width:100%;
  min-height:5px;
  border-radius:10px 10px 3px 3px;
  background:linear-gradient(180deg,#9ba7ff,#61d4b3);
  box-shadow:0 0 12px rgba(127,140,244,.14);
}
.cost-mini-bar small{font-size:9px;line-height:1;white-space:nowrap;overflow:hidden;text-overflow:clip}
.cost-mini-bar .service{background:#8191ff}
.horizon-legend,.report-legend{
  display:flex;align-items:center;gap:12px;flex-wrap:wrap;color:var(--muted);font-size:11px;
}
.horizon-legend i,.report-legend i{
  display:inline-block;width:9px;height:9px;border-radius:99px;margin-right:5px;background:var(--brand);
}
.horizon-legend .other{background:var(--brand2)}
.horizon-legend .planned-costs{background:var(--warning)}

.horizon-chart{display:grid;gap:12px;min-width:0}
.horizon-scroll{overflow-x:auto;max-width:100%;padding-bottom:4px}
.horizon-grid{
  min-width:min(900px,100%);
  display:grid;
  grid-template-columns:repeat(var(--horizon-years,6),minmax(92px,1fr));
  gap:10px;
  align-items:end;
}
.horizon-year{
  min-width:0;
  height:190px;
  display:grid;
  grid-template-rows:1fr auto;
  gap:7px;
  border:1px solid var(--line);
  border-radius:15px;
  background:rgba(255,255,255,.025);
  padding:10px 8px;
  color:inherit;
  cursor:pointer;
}
.horizon-bars{height:140px;display:flex;gap:5px;align-items:end;justify-content:center}
.horizon-bar{width:14px;min-height:4px;border-radius:8px 8px 3px 3px;background:var(--brand)}
.horizon-bar.other{background:var(--brand2)}
.horizon-bar.service-forecast{background:#60a5fa}
.horizon-bar.planned-costs{background:var(--warning)}
.horizon-year-label{text-align:center;color:var(--muted);font-size:11px;font-weight:900}
.horizon-scale{margin-left:auto}
.report-surface,.report-package-section,.cost-plan-overview-grid,.cost-planning-compact{
  display:grid;gap:14px;min-width:0;
}
.report-grid,.report-flow-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
.report-package-grid,.cost-plan-snapshot-grid{grid-template-columns:repeat(auto-fit,minmax(180px,1fr))}
.report-history-card{
  display:grid;
  align-content:center;
  gap:5px;
  min-width:0;
  min-height:68px;
  padding:10px 12px;
  text-align:left;
  color:inherit;
  cursor:pointer;
}
.report-history-card strong{font-size:13px;line-height:1.2;color:var(--text)}
.report-history-card small,.report-history-card .report-history-label{color:var(--muted);font-size:10px;line-height:1.2;font-weight:900;text-transform:uppercase;letter-spacing:.06em}
.report-history-card .report-history-affordance{margin-top:1px;color:var(--text-soft);font-size:11px;font-weight:950}
.report-history-card:hover{border-color:rgba(135,150,255,.34);background:rgba(135,150,255,.065)}
.report-history-console{display:grid;gap:10px;min-width:0}
.detail[data-detail-kind="reportHistory"]{--detail-overlay-w:clamp(560px,42vw,760px)}
.detail[data-detail-kind="reportHistory"] .detail-body{gap:10px}
.detail[data-detail-kind="reportHistory"] .detail-section{padding:12px;gap:10px}
.report-history-toolbar.compact{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:8px;
  align-items:stretch;
}
.report-history-toolbar.compact>div{min-width:0}
.report-year-list{display:grid;gap:8px}
.report-year-row{
  display:grid;
  grid-template-columns:minmax(78px,.85fr) repeat(3,minmax(96px,1fr));
  align-items:center;
  gap:10px;
  padding:9px 10px;
  border:1px solid var(--line);
  border-radius:14px;
  background:rgba(255,255,255,.025);
  min-width:0;
  text-align:left;
}
.report-year-row:hover,.report-year-row.active{border-color:rgba(135,150,255,.36);background:rgba(135,150,255,.07)}
.report-year-row span{min-width:0}
.report-year-row .year-main,.report-year-row .year-metric{display:grid;gap:2px;min-width:0}
.report-year-row .year-main strong,.report-year-row .year-metric b{font-size:12px;line-height:1.15;color:var(--text);font-weight:950;white-space:nowrap}
.report-year-row .year-main em,.report-year-row .year-metric small{font-size:10px;line-height:1.2;color:var(--muted);font-style:normal;overflow-wrap:anywhere}
.report-history-note{line-height:1.35}
.report-year-metrics{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}

.platform-card,.platform-pane{padding:14px;display:grid;gap:12px}
.platform-pane-head,.platform-context-card,.platform-access-row,.platform-superadmin-row,.platform-hotel-row{
  display:flex;align-items:center;justify-content:space-between;gap:12px;min-width:0;
}
.platform-pane-title{font-weight:950}
.platform-pane-sub,.platform-kicker,.platform-context-meta,.platform-readonly-note{color:var(--muted);font-size:12px}
.platform-tabs,.admin-tabs,.submodule-nav{display:flex;gap:8px;flex-wrap:wrap;min-width:0}
.admin-tab-chip,.submodule-chip,.seg-btn{
  min-height:34px;
  border:1px solid var(--line);
  border-radius:12px;
  background:transparent;
  color:var(--text-soft);
  padding:0 12px;
  font-weight:850;
  cursor:pointer;
}
.admin-tab-chip.active,.submodule-chip.active,.seg-btn.active{background:rgba(135,150,255,.15);border-color:rgba(135,150,255,.28);color:var(--text)}
.platform-table-wrap{overflow:hidden;border:1px solid var(--line);border-radius:18px;min-width:0}
.platform-table{width:100%;border-collapse:separate;border-spacing:0;table-layout:fixed}
.platform-table th,.platform-table td{padding:12px 14px;border-bottom:1px solid var(--line);text-align:left;vertical-align:middle;overflow:hidden;text-overflow:ellipsis}
.platform-table th{font-size:10px;color:var(--muted);text-transform:uppercase;letter-spacing:.07em}
.platform-table tr:last-child td{border-bottom:0}

.success-toast{
  position:fixed;right:18px;bottom:18px;z-index:2200;
  max-width:min(380px,calc(100vw - 32px));
  padding:12px 14px;
  border:1px solid var(--line-strong);
  border-radius:16px;
  background:linear-gradient(180deg,rgba(13,24,41,.99),rgba(8,18,33,.995));
  box-shadow:var(--shadow);
  opacity:0;transform:translateY(8px);
  pointer-events:none;
  transition:.16s ease;
}
.success-toast.open{opacity:1;transform:translateY(0)}
.success-toast-title{font-weight:950}
.success-toast-sub{margin-top:3px;color:var(--muted);font-size:12px}

.chart-tooltip-layer{
  position:fixed;
  left:0;
  top:0;
  z-index:2300;
  pointer-events:none;
  max-width:320px;
  padding:10px 11px;
  border:1px solid var(--line-strong);
  border-radius:13px;
  background:linear-gradient(180deg,rgba(13,24,41,.985),rgba(8,18,33,.995));
  box-shadow:var(--shadow-soft);
  color:var(--text);
  opacity:0;
  visibility:hidden;
  transform:translate3d(-9999px,-9999px,0);
  transition:opacity .06s linear;
  will-change:transform;
}
.chart-tooltip-title{font-weight:950;margin-bottom:6px}
.chart-tooltip-row{display:flex;justify-content:space-between;gap:14px;color:var(--muted);font-size:12px}
.chart-tooltip-layer.show{opacity:1;visibility:visible}


.detail-intro-action,.detail-intro-note{margin:0 0 12px 0}
.detail-note{margin-top:10px}
.empty-title{font-weight:900;margin-bottom:8px}
.empty-note{margin-top:8px}
.empty-actions{justify-content:center;margin-top:12px}
.detail-inline-actions{margin-top:4px}
.notif-title-line{display:flex;gap:8px;align-items:flex-start;min-width:0}
.notif-dot{width:8px;height:8px;border-radius:999px;background:var(--brand);margin-top:4px;flex:0 0 auto}

/* SCALE 10 enterprise UI lock — consolidated authority, no historical pass stack. */
html,body,#app,.app,.shell,.main,.content,.workspace{width:100%;max-width:100%}
body{overflow-x:clip}
@supports not (overflow:clip){body{overflow-x:hidden}}
.app,.shell,.main,.content,.workspace,.panel,.module-shell,.module-table,.detail,.detail-body,.detail-section,.table-wrap,.soft-card,.summary-card,.overview-item,.cockpit-card,.platform-pane,.platform-card,.modal-card,.modal-body{min-width:0;max-width:100%}
.panel,.module-shell,.detail-section,.summary-card,.soft-card,.overview-item,.cockpit-card,.platform-pane,.platform-card,.doc-row,.modal-card{overflow:hidden}
.panel-title,.module-title,.surface-title,.module-sub,.helper-text,.primary-line,.secondary-line,.tertiary-line,.detail-title,.detail-section-title,.overview-item-title,.overview-item-meta,.stat-line .value,.kv-value,.user-menu-name,.user-menu-email,.notif-item-title,.notif-item-sub{min-width:0;max-width:100%;overflow-wrap:anywhere;word-break:normal}
.primary-line,.secondary-line,.tertiary-line,.row-text-main,.row-text-sub{white-space:normal}
.title-clamp{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;white-space:normal}
button,[role="button"],a[href],select,input[type="button"],input[type="submit"],.btn,.summary-card,.summary-card *,.row-open,[data-open-kind],[data-nav],[data-nav-toggle],[data-costs-tab],[data-cost-plan-tab],[data-preview-document],[data-report-year],[data-list-toggle],[data-overview-focus]{cursor:pointer}
.detail-item:not(button):not([data-open-kind]):not([data-report-year]),.table th,.table td{cursor:default}

.shell{grid-template-columns:var(--sidebar) minmax(0,1fr)}
.sidebar{scrollbar-gutter:stable;scrollbar-width:thin}
.brand-mark img{max-width:min(170px,100%)}
.topbar{min-width:0;isolation:isolate;background:rgba(7,17,31,.86)}
.top-left,.top-center,.top-actions,.top-title{min-width:0}
.top-title .sub{max-width:min(46vw,640px)}
.search-trigger{max-width:100%}
.user-menu,.notif-menu{z-index:var(--z-popover);background:linear-gradient(180deg,rgba(13,24,41,.992),rgba(8,18,33,.998));border-color:var(--line-strong);overflow:auto;overscroll-behavior:contain}
.user-menu-card,.user-menu-section{min-width:0;overflow:hidden}
.user-menu-row{display:grid;grid-template-columns:minmax(80px,auto) minmax(0,1fr);align-items:start;gap:12px}
.user-menu-row strong{text-align:right}

.nav-parent-main,.nav-label{gap:8px;min-width:0}
.nav-chevron{transform:rotate(-90deg);transition:transform .14s ease}
.nav-parent.is-open .nav-chevron,.nav-group.is-open>.nav-parent .nav-chevron,.nav-parent[aria-expanded="true"] .nav-chevron{transform:rotate(0deg)}
.nav-signal-dot,.nav-child-dot{width:7px;height:7px;flex:0 0 7px;border-radius:999px;border:1px solid transparent;background:transparent;box-shadow:none;opacity:0;transition:opacity .14s ease,background .14s ease,border-color .14s ease,box-shadow .14s ease}
.nav-signal-dot.is-active,.nav-child-dot.is-active{opacity:1;border-color:rgba(135,150,255,.9);background:linear-gradient(135deg,var(--brand),var(--brand2));box-shadow:0 0 0 3px rgba(135,150,255,.10),0 0 14px rgba(135,150,255,.30)}
.nav-child.has-data{background:rgba(135,150,255,.045);border-color:rgba(135,150,255,.18);color:var(--text)}
.nav-badge,.nav-child-badge{display:none}
#notifBtn:not(.has-unread){border-color:var(--line);box-shadow:none;background:var(--surface2);color:var(--muted);filter:grayscale(1);opacity:.76}
#notifBtn.has-unread{border-color:rgba(135,150,255,.48);box-shadow:0 0 0 3px rgba(135,150,255,.12),inset 0 1px 0 rgba(255,255,255,.05);color:var(--text);filter:none;opacity:1}
.notif-badge.hidden{display:none!important}

.module-shell{gap:14px;padding:var(--panel-pad)}
.module-head{min-width:0}.module-title-wrap{min-width:0;max-width:100%}
.module-filters{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:12px;min-width:0;max-width:100%;overflow:hidden;padding:12px;border:1px solid var(--line);border-radius:18px;background:var(--surface-soft)}
.module-filter-left,.module-filter-right,.cost-hub-controls,.report-export-controls,.toolbar,.action-bar,.action-bar-start,.action-bar-end,.overview-section-actions,.table-actions,.maintenance-actions,.notify-action-row,.planned-action-row,.report-history-toolbar{display:flex;align-items:center;gap:10px;min-width:0;max-width:100%;flex-wrap:wrap}
.module-filter-right,.action-bar-end,.overview-section-actions{justify-content:flex-end}
.cost-hub-controls .filter-grid,.cost-hub-controls .filter-grid.wide,.cost-hub-controls .filter-grid.compact{display:flex;grid-template-columns:none;align-items:center;gap:10px;flex-wrap:wrap;min-width:0;width:auto;max-width:100%}
.module-filters .module-search,.cost-hub-controls .module-search{width:var(--filter-search-w);max-width:100%;flex:1 1 var(--filter-search-w)}
.module-filters select,.module-filters .select,.module-filters input[type="date"],.cost-hub-controls select,.cost-hub-controls .select,.cost-hub-controls input[type="date"],.report-export-controls select,.report-export-controls .select,.report-export-controls input[type="date"]{width:var(--filter-control-w);min-width:132px;max-width:100%;flex:0 1 var(--filter-control-w)}
.report-export-summary{display:flex;align-items:center;gap:7px;white-space:normal;min-width:0;overflow-wrap:anywhere}.report-export-summary span{color:var(--muted);font-size:11px}.report-export-summary strong{display:inline;max-width:100%;overflow-wrap:anywhere}

select,.select,input,textarea{min-width:0;max-width:100%;color:var(--text);background-color:var(--field-bg);border-color:var(--line);overflow-wrap:anywhere}
select,.select{appearance:none;-webkit-appearance:none;color-scheme:dark;background-image:linear-gradient(45deg,transparent 50%,var(--muted) 50%),linear-gradient(135deg,var(--muted) 50%,transparent 50%);background-position:calc(100% - 18px) 50%,calc(100% - 13px) 50%;background-size:5px 5px,5px 5px;background-repeat:no-repeat;padding-right:34px}
select option,.select option{background:#111c2d;color:#e8efff}

.summary-card.is-clickable{transition:border-color .14s ease,background .14s ease,box-shadow .14s ease}
.summary-card.is-clickable.active,.summary-card.is-clickable:focus-visible{border-color:color-mix(in srgb,var(--metric-accent) 38%,rgba(164,185,224,.18));background:linear-gradient(180deg,rgba(255,255,255,.044),rgba(255,255,255,.016));box-shadow:inset 0 1px 0 rgba(255,255,255,.024)}

.table-wrap{overflow-x:auto;overflow-y:hidden;overscroll-behavior-x:contain;border-radius:18px}.table{width:100%;min-width:min(var(--table-min),100%);table-layout:fixed}.compact-table .table,.compact-ledger-table{min-width:min(var(--table-compact-min),100%)}.table th,.table td{padding:var(--list-row-y) var(--list-row-x);vertical-align:middle}.table td{height:var(--list-row-min);line-height:1.32;overflow:hidden}.table .primary-line,.table .secondary-line,.table .tertiary-line{overflow:hidden;text-overflow:ellipsis}.table th{white-space:normal;overflow-wrap:anywhere}.table-actions,.table td .toolbar{justify-content:flex-start;flex-wrap:wrap}
.table tbody tr.active-row,.table tbody tr.active-row:hover{background:var(--row-selected-bg);box-shadow:inset 0 1px 0 rgba(255,255,255,.024),inset 0 -1px 0 rgba(145,158,255,.10)}
.table tbody tr.active-row td{background:transparent;border-top:1px solid var(--row-selected-line);border-bottom:1px solid rgba(145,158,255,.11);border-left:0;border-right:0;border-radius:0;box-shadow:none}
.table tbody tr.active-row td:first-child,.table tbody tr.active-row td:last-child{border-radius:0;border-left:0;border-right:0}
.row-open.active-row,.cost-row.active-row,.activity-row.active-row,.work-row.active-row,.detail-item.active-row,.overview-item.active-row,.platform-row-active{border-radius:10px;background:rgba(135,150,255,.058);box-shadow:0 0 0 1px rgba(145,158,255,.13),inset 0 1px 0 rgba(255,255,255,.024)}
.cockpit-card .compact-table .table td{height:var(--list-row-compact-min);padding-top:8px;padding-bottom:8px}

.detail{
  position:fixed;
  top:calc(var(--topbar) + var(--gutter));
  right:var(--gutter);
  bottom:var(--gutter);
  left:auto;
  width:min(var(--detail-overlay-w),calc(100vw - var(--rail) - (var(--gutter) * 2)));
  max-width:calc(100vw - var(--rail) - (var(--gutter) * 2));
  max-height:none;
  z-index:1260;
  border-radius:22px;
  min-width:0;
  background:linear-gradient(180deg,#0d1829,#081221);
}.detail-head{min-height:calc(var(--topbar) - 2px);min-width:0}.detail-head>div,.detail-section-head>div{min-width:0}.detail-body{display:grid;gap:13px;padding:14px}.detail-section{padding:14px;display:grid;gap:12px}.detail-section-actions,.planned-action-row{display:flex;align-items:center;justify-content:flex-end;gap:10px;flex-wrap:wrap;min-width:0}.detail-grid,.planned-cost-form-grid,.platform-form-grid,.compact-modal-grid{align-items:start}.detail .btn,.modal-body .btn{white-space:normal;line-height:1.15;min-width:0}.detail .input,.detail .select,.detail select,.modal-body .input,.modal-body .select,.modal-body select{max-width:100%}.detail-section .input[type="file"],.detail-section input[type="file"],.modal-body input[type="file"]{height:auto;min-height:var(--control-h);padding:8px 10px;line-height:1.3}
.doc-row{align-items:center}.doc-row-main,.doc-row-meta,.doc-row-title{min-width:0}.doc-row-actions{min-width:0}.doc-row-title span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.doc-row-sub{white-space:normal;overflow-wrap:anywhere}


.notif-menu{display:none;visibility:hidden;opacity:0;pointer-events:none;transform:translateY(-4px);transition:.14s ease;width:min(500px,calc(100vw - 28px));max-height:min(80vh,760px);padding:0;overflow:hidden}.notif-menu.open{display:grid;visibility:visible;opacity:1;pointer-events:auto;transform:translateY(0);grid-template-rows:auto minmax(0,1fr)}.notif-head{min-height:76px;padding:16px 18px 14px;display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.notif-list{width:100%;box-sizing:border-box;padding:14px;gap:12px;min-height:0;max-height:calc(min(80vh,760px) - 76px);overflow-y:auto;overflow-x:hidden;display:grid;grid-auto-rows:max-content;align-content:start;scrollbar-gutter:stable}.notif-item{position:relative;width:100%;box-sizing:border-box;display:block;min-width:0;min-height:72px;flex:0 0 auto;border:1px solid rgba(164,185,224,.16);border-radius:16px;background:linear-gradient(180deg,rgba(22,35,57,.78),rgba(14,26,46,.88));box-shadow:inset 0 1px 0 rgba(255,255,255,.026);overflow:hidden}.notif-item.unread{border-color:rgba(135,150,255,.38);background:linear-gradient(180deg,rgba(31,46,76,.94),rgba(17,30,53,.96))}.notif-item.read{opacity:.82}.notif-item-main{display:block;width:100%;box-sizing:border-box;padding:14px 44px 14px 15px;min-width:0;text-align:left;background:transparent}.notif-item-top{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px;align-items:start;min-width:0;width:100%}.notif-title-line{display:flex;align-items:flex-start;gap:8px;min-width:0;max-width:100%}.notif-dot{margin-top:5px;width:7px;height:7px;flex:0 0 7px;border-radius:999px;background:var(--brand);box-shadow:0 0 0 3px rgba(135,150,255,.13)}.notif-item-title{font-size:13px;line-height:1.32;font-weight:950;color:var(--text);white-space:normal;overflow:visible;display:block;-webkit-line-clamp:unset;overflow-wrap:anywhere;word-break:normal}.notif-item-meta{font-size:11px;line-height:1.3;color:rgba(183,197,221,.78);white-space:nowrap;padding-top:1px}.notif-item-sub{margin-top:6px;color:rgba(183,197,221,.88);font-size:11.9px;line-height:1.44;white-space:normal;overflow:visible;display:block;-webkit-line-clamp:unset;overflow-wrap:anywhere;word-break:normal}.notif-item-tag{margin-top:9px;display:inline-flex;align-items:center;min-height:22px;padding:3px 8px;border-radius:999px;border:1px solid rgba(164,185,224,.16);background:rgba(255,255,255,.028);color:rgba(183,197,221,.86);font-size:10.25px;font-weight:880;letter-spacing:.015em;text-transform:uppercase}.notif-item-delete{position:absolute;right:8px;top:8px;width:28px;height:28px;margin:0;border-radius:10px;color:rgba(183,197,221,.72);z-index:2}.notif-item-delete:hover{background:rgba(255,255,255,.055);color:var(--text)}.notif-empty{box-sizing:border-box;width:100%;display:grid;place-items:center;margin:0;min-height:58px;padding:16px;border-radius:15px;color:var(--muted);background:rgba(255,255,255,.024);border:1px dashed rgba(164,185,224,.18);text-align:center}


.platform-row,.platform-access-row,.platform-superadmin-row,.platform-hotel-row{min-width:0;overflow:hidden}
.platform-console{display:grid;gap:14px;min-width:0}
.platform-pane{padding:14px;display:grid;gap:12px;min-width:0;overflow:hidden}
.platform-pane-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;min-width:0}
.platform-pane-title{font-size:13px;font-weight:950;line-height:1.25}
.platform-pane-sub{margin-top:3px;color:var(--muted);font-size:11px;line-height:1.35;overflow-wrap:anywhere}
.platform-toolbar{align-items:center}
.platform-toolbar .module-filter-left{display:flex;align-items:center;gap:10px;min-width:0;flex-wrap:wrap}
.platform-toolbar .module-filter-right{display:flex;align-items:center;justify-content:flex-end;gap:10px;min-width:0;flex-wrap:wrap}
.platform-working-context{display:flex;align-items:flex-end;gap:10px;min-width:min(520px,100%);flex:1 1 520px}
.platform-working-field{width:min(520px,100%)}
.platform-context-select{width:min(520px,100%)}
.platform-table-shell{border:1px solid var(--line);border-radius:18px;background:rgba(255,255,255,.018);overflow:hidden;min-width:0}
.platform-table-head,.platform-table-row{display:grid;align-items:center;gap:18px;min-width:0}
.platform-hotels-list .platform-table-head,.platform-hotels-list .platform-table-row{grid-template-columns:minmax(260px,1fr) minmax(100px,130px) minmax(220px,320px)}
.platform-access-list .platform-table-head,.platform-access-list .platform-table-row{grid-template-columns:minmax(260px,1fr) minmax(160px,220px) minmax(120px,160px)}
.platform-superadmin-list .platform-table-head,.platform-superadmin-list .platform-table-row{grid-template-columns:minmax(260px,1fr) minmax(120px,160px)}
.platform-table-head{padding:10px 14px;border-bottom:1px solid rgba(154,176,214,.13);background:rgba(255,255,255,.026);color:var(--muted);font-size:10px;font-weight:950;text-transform:uppercase;letter-spacing:.07em}
.platform-table-row{min-height:64px;padding:13px 14px;border-bottom:1px solid rgba(154,176,214,.13);background:rgba(255,255,255,.018);cursor:pointer}
.platform-table-row:last-child{border-bottom:0}
.platform-table-row:hover{background:rgba(135,150,255,.075)}
.platform-table-main,.platform-table-cell{min-width:0;display:grid;gap:3px}
.platform-table-main strong,.platform-table-main small,.platform-table-cell span,.platform-table-cell small{min-width:0;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.platform-table-main strong,.platform-table-cell span{font-weight:900;color:var(--text)}
.platform-table-main small,.platform-table-cell small{color:var(--muted);font-size:11px}
.platform-modal-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap;justify-content:flex-end}
.platform-modal-actions.full{grid-column:1/-1;justify-content:flex-start;padding-top:2px}
.platform-modal-actions .btn{white-space:nowrap}
.platform-form-grid,.admin-grid,.lookups-grid,.planned-cost-form-grid,.cost-plan-settings-grid{grid-template-columns:repeat(auto-fit,minmax(min(220px,100%),1fr))}
.platform-table-wrap{overflow:auto}.platform-table{min-width:760px}
.cost-mini-chart,.horizon-smooth-plot,.cockpit-chart,.visual-section .cost-mini-chart{border:0;background:transparent;box-shadow:none}.cost-overview-flow .flow-column,.report-flow-grid .flow-column{display:grid;gap:14px;align-content:start}.monthly-actual-trend,.cost-mix-panel{height:320px;min-height:320px;display:grid;grid-template-rows:52px minmax(0,1fr);overflow:hidden}.monthly-actual-trend .cost-mini-chart{height:228px;min-height:228px;align-self:stretch}.report-flow-grid{align-items:stretch}.report-flow-grid .flow-column{display:grid;gap:14px;align-content:start}.report-monthly-actuals,.report-forecast-horizon{height:360px;min-height:360px;display:grid;grid-template-rows:52px minmax(0,1fr);overflow:hidden}.report-monthly-actuals .detail-section-head,.report-forecast-horizon .detail-section-head{min-height:52px;align-items:start}.report-monthly-actuals .cost-mini-chart,.report-forecast-horizon .horizon-smooth-plot{height:270px;min-height:270px;align-self:stretch}.report-forecast-horizon .horizon-chart{display:grid;grid-template-rows:auto minmax(0,1fr);min-height:0;height:100%}.report-forecast-horizon .horizon-smooth-plot{padding:10px 8px 8px;overflow-x:auto;overflow-y:hidden}.horizon-smooth-grid{min-width:max(100%,calc(var(--horizon-years,6) * 86px));grid-template-columns:repeat(var(--horizon-years,6),minmax(76px,1fr))}.horizon-smooth-bars{min-height:190px}.horizon-scale{margin-left:auto;font-size:10.75px;color:rgba(183,197,221,.74)}
.overview-cockpit-columns.enterprise-overview{grid-template-columns:repeat(2,minmax(0,1fr));align-items:start;gap:14px}.enterprise-overview>.overview-cockpit-column{min-width:0;display:grid;gap:14px;align-content:start}.enterprise-overview>.overview-cockpit-column:first-child{grid-template-rows:auto auto}.cockpit-attention,.cockpit-service{height:auto;min-height:0}.cockpit-service .compact-empty{min-height:56px}.cockpit-cost .cockpit-visual-row{min-height:218px;display:grid;grid-template-columns:minmax(0,1fr) minmax(330px,.9fr);align-items:center;gap:16px}.cockpit-cost .cost-mini-chart{height:172px;align-self:center}.cockpit-cost .cockpit-split{align-self:center;display:grid;align-content:center;gap:10px}
.report-history-console.report-history-row-mode{gap:12px}.report-year-row{border-radius:14px;background:rgba(255,255,255,.024);border-color:var(--premium-line)}.report-year-row.active{box-shadow:inset 3px 0 0 rgba(135,150,255,.42),0 0 0 1px rgba(145,158,255,.12)}

@media (max-width:1420px){
  .overview-cockpit-grid,.cost-dashboard-grid,.cost-overview-flow,.uniform-two-column-flow,.overview-grid,.overview-command-grid{grid-template-columns:1fr}
  .cockpit-visual-row{grid-template-columns:1fr}
}
@media (max-width:1180px){
  :root{--sidebar:252px;--gutter:14px;--detail-width:clamp(360px,38vw,520px)}
  .content.with-detail{grid-template-columns:1fr}
  .detail{position:fixed;top:calc(var(--topbar) + 8px);right:12px;bottom:12px;width:min(520px,calc(100vw - 24px));max-height:none;z-index:1000;box-shadow:0 24px 80px rgba(0,0,0,.38)}
  .module-filters{grid-template-columns:1fr}.module-filter-right,.action-bar-end{justify-content:flex-start}
  .detail-grid.three,.report-flow-grid,.report-grid{grid-template-columns:1fr}
  .overview-cockpit-columns.enterprise-overview,.cost-overview-flow,.report-flow-grid{grid-template-columns:1fr}
  .report-monthly-actuals,.report-forecast-horizon,.monthly-actual-trend,.cost-mix-panel{height:auto;min-height:0}.report-monthly-actuals .cost-mini-chart,.report-forecast-horizon .horizon-smooth-plot,.monthly-actual-trend .cost-mini-chart{height:220px;min-height:220px}
  .cockpit-cost .cockpit-visual-row{grid-template-columns:1fr;min-height:auto}
  .cost-plan-settings-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.platform-hotels-list .platform-table-head,.platform-access-list .platform-table-head,.platform-superadmin-list .platform-table-head{display:none}.platform-hotels-list .platform-table-row,.platform-access-list .platform-table-row,.platform-superadmin-list .platform-table-row{grid-template-columns:1fr;gap:8px}.platform-modal-actions{justify-content:flex-start}
}
@media (max-width:980px){
  :root{--sidebar:286px;--rail:58px;--topbar:64px;--gutter:12px;--table-min:680px;--table-compact-min:560px;--nav-icon-box:42px}
  .shell{grid-template-columns:var(--rail) minmax(0,1fr)}
  .sidebar{position:fixed;top:0;left:0;bottom:0;width:var(--sidebar);height:100vh;max-height:none;overflow-x:hidden;padding:16px 12px;border-right:1px solid var(--line);border-bottom:0}
  body.sidebar-collapsed .sidebar{width:var(--rail);padding:12px 0;box-shadow:none} body.sidebar-overlay-open .sidebar{width:var(--sidebar);box-shadow:28px 0 76px rgba(0,0,0,.32)}
  .brand{display:grid;padding:4px}.nav-signal-dot{position:absolute;right:9px;top:9px}
  .main{grid-template-rows:var(--topbar) minmax(0,1fr)}.topbar{top:0;grid-template-columns:minmax(0,1fr) auto;grid-template-areas:none;min-height:var(--topbar);height:var(--topbar);padding:0 12px}.top-left,.top-actions{grid-area:auto}.top-center{display:none}.top-title .sub{max-width:36vw}
  .content{padding:var(--gutter)}.module-shell{padding:14px}.detail{left:88px;right:10px;top:calc(var(--topbar) + 8px);width:auto;max-width:none}
  .table{min-width:var(--table-min)}.compact-table .table,.compact-ledger-table{min-width:var(--table-compact-min)}
}
@media (max-width:720px){
  .modal-overlay{padding:12px}
  .modal-card{width:calc(100vw - 24px);max-width:calc(100vw - 24px);max-height:calc(100dvh - 24px);border-radius:18px}
  .modal-head,.modal-body,.modal-actions{padding-left:12px;padding-right:12px}

  :root{--sidebar:100%;--rail:0px;--topbar:64px;--mobile-topbar-h:64px;--mobile-tabbar-h:64px;--gutter:10px;--panel-pad:12px;--row-y:10px;--cell-x:12px;--control-h:40px}
  body{font-size:13px}
  .shell{grid-template-columns:1fr}
  .sidebar{position:fixed;top:0;left:0;bottom:0;z-index:1300;width:min(320px,86vw);height:100dvh;max-height:none;display:flex;flex-direction:column;padding:14px 12px;border-right:1px solid var(--line);border-bottom:0;transform:translateX(-105%);transition:transform .18s ease;box-shadow:28px 0 80px rgba(0,0,0,.38);overflow-y:auto;background:linear-gradient(180deg,var(--bg2),rgba(8,18,33,.99))}
  body.mobile-nav-open .sidebar{transform:translateX(0)}
  .nav-scrim{position:fixed;inset:0;z-index:1290;background:rgba(0,0,0,.48);backdrop-filter:blur(3px);display:none}
  body.mobile-nav-open .nav-scrim{display:block}
  .sidebar-head{grid-template-columns:1fr;place-items:center;min-height:66px;padding:0 0 12px}
  .side-brand-home{display:grid;height:46px}.side-brand-home img{max-height:46px;width:min(156px,100%)}
  .nav{display:grid;gap:6px;overflow:visible;padding-bottom:0}.nav-group{display:grid;gap:3px}.nav-btn,.nav-parent,.nav-child{width:100%;min-width:0;min-height:40px}.nav-copy,.nav-child-copy,.nav-chevron{display:inline}.nav-children{display:grid}.nav-child{padding-left:36px}.nav-label{justify-content:flex-start}.nav-icon{flex:0 0 18px}
  .sidebar-footer{display:grid}.sidebar-status{padding:9px 10px}
  .mobile-nav-toggle{display:inline-grid}.edge-nav-toggle{display:none}
  .mobile-tabbar{position:fixed;left:0;right:0;bottom:0;z-index:1200;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:4px;height:calc(var(--mobile-tabbar-h) + env(safe-area-inset-bottom,0px));padding:4px 8px calc(4px + env(safe-area-inset-bottom,0px));align-items:center;border-top:1px solid rgba(176,196,224,.12);background:linear-gradient(180deg,rgba(13,20,33,.96),rgba(9,15,26,.99));box-shadow:0 -8px 22px rgba(0,0,0,.24);overflow:visible}
  .mobile-tabbar-item{appearance:none;-webkit-appearance:none;min-width:0;height:calc(var(--mobile-tabbar-h) - 8px);border:0;border-radius:16px;background:transparent;color:rgba(222,230,244,.62);display:grid;grid-template-rows:24px 14px;place-items:center;align-content:center;gap:2px;font-size:9.5px;font-weight:900;padding:3px 2px 4px;overflow:visible}
  .mobile-tabbar-item .nav-icon{width:24px;height:24px;display:grid;place-items:center;overflow:visible}.mobile-tabbar-item .nav-icon svg{width:21px;height:21px;stroke-width:1.8;display:block}.mobile-tabbar-item.active{background:rgba(137,126,255,.14);color:#9d95ff}.mobile-tabbar-label{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;line-height:1.05;font-size:9.5px;font-weight:900}.mobile-tabbar:empty::before{content:'Navigation unavailable';grid-column:1/-1;display:grid;place-items:center;color:rgba(222,230,244,.72);font-size:11px;font-weight:800}
  .main{grid-column:1;grid-template-rows:var(--mobile-topbar-h) minmax(0,1fr);min-height:100vh}
  .topbar{position:sticky;top:0;grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"left actions";min-height:var(--topbar);height:var(--topbar);padding:8px 10px;gap:8px}
  .top-left{grid-area:left;gap:9px}.top-center{display:none}.top-actions{grid-area:actions}.top-brand-home{width:38px;height:36px;min-width:38px;border-radius:0;background:transparent}.top-brand-home img{width:30px}.workspace-title h2{font-size:14px}.top-title .sub{max-width:50vw}
  .content{padding:10px 10px calc(var(--mobile-tabbar-h) + 18px + env(safe-area-inset-bottom,0px))}.module-shell{padding:var(--panel-pad)}.module-head{gap:10px}.module-sub{font-size:11px}.summary-grid,.summary-grid.compact,.summary-grid.cost-kpi-strip,.summary-grid.overview-kpi-strip.four,.report-history-toolbar,.report-year-metrics,.overview-kpis{grid-template-columns:1fr}.module-filters{grid-template-columns:1fr;overflow:visible}.module-filter-left,.module-filter-right,.cost-hub-controls,.report-export-controls{width:100%;justify-content:flex-start}.module-filters .module-search,.cost-hub-controls .module-search,.module-filters select,.module-filters .select,.module-filters input[type="date"],.cost-hub-controls select,.cost-hub-controls .select,.cost-hub-controls input[type="date"]{width:100%;flex:1 1 100%;min-width:0}
  .detail{position:fixed;top:calc(var(--mobile-topbar-h) + 8px);left:8px;right:8px;bottom:8px;width:auto;max-width:none;border-radius:20px;overflow:hidden}.detail-body{padding:12px;max-height:calc(100vh - var(--mobile-topbar-h) - 20px);overflow:auto;-webkit-overflow-scrolling:touch}.detail-grid,.detail-grid.two,.detail-grid.three,.compact-modal-two,.cost-plan-settings-grid{grid-template-columns:1fr}
  .user-menu,.notif-menu{right:8px;left:8px;top:calc(var(--topbar) + 8px);bottom:8px;width:auto;max-height:none}.notif-list{max-height:calc(100vh - 104px)}
  .doc-row{align-items:flex-start;flex-direction:column}.doc-row-actions{width:100%;justify-content:flex-start}.modal-overlay.open{place-items:start center;padding:10px}.modal-card{width:calc(100vw - 20px);max-width:calc(100vw - 20px)}.modal-body{max-height:calc(100vh - 170px)}.modal-body .detail-grid,.modal-body .platform-form-grid,.modal-body .compact-modal-grid,.modal-body .compact-modal-two,.modal-body .kv-row{grid-template-columns:1fr}
  .horizon-grid{grid-template-columns:repeat(var(--horizon-years,6),minmax(104px,1fr))}.horizon-smooth-grid{min-width:max(100%,calc(var(--horizon-years,6) * 76px))}.report-history-toolbar.compact,.report-year-row,.report-package-section .report-package-grid{grid-template-columns:1fr}.boot-card{width:calc(100vw - 34px);padding:32px 26px;border-radius:26px}.boot-logo{width:168px}
}
@media (max-width:430px){
  :root{--gutter:8px;--card-pad:12px;--table-min:640px;--table-compact-min:540px}
  body{font-size:12px}.btn{min-height:38px;padding-inline:11px}.btn.icon{width:36px;min-width:36px;height:36px}.top-left{gap:7px}.top-brand-home{display:none}.top-title .sub{display:none}.workspace-title h2{font-size:13px}.module-title{font-size:15px}.panel-title,.surface-title{font-size:15px}.content{padding:8px 8px calc(var(--mobile-tabbar-h) + 18px + env(safe-area-inset-bottom,0px))}.module-shell{padding:12px}.summary-card,.detail-section,.detail-item,.soft-card,.platform-card,.platform-pane,.overview-item,.cockpit-card{border-radius:15px}.detail{top:calc(var(--topbar) + 6px);left:6px;right:6px;bottom:6px;border-radius:18px}.detail-head{padding:13px}.detail-body{padding:10px}.notif-head{min-height:68px;padding:13px 14px 11px}.notif-list{padding:10px;gap:10px;max-height:calc(100vh - 96px)}.notif-item-main{padding:12px 40px 12px 13px}.cost-mini-chart{gap:5px}.cost-mini-bar small{font-size:8px}
}

.boot.boot-fatal .boot-spin{display:none}
.boot.boot-fatal .boot-card{border-color:rgba(255,118,118,.38);box-shadow:0 24px 70px rgba(0,0,0,.52)}
.boot.boot-fatal .boot-sub{color:var(--text);line-height:1.55;text-align:left}
.boot-diagnostic{margin:12px 0 0;padding:12px;border:1px solid var(--line);border-radius:12px;background:rgba(0,0,0,.22);color:var(--muted);white-space:pre-wrap;font-size:11px;max-height:180px;overflow:auto}

/* Stability lock: reserve geometry during optimistic/save/load states. */
.btn{min-width:max-content}
.btn.primary,.btn.bad,.module-filter-right .btn,.platform-modal-actions .btn,.action-bar-end .btn{min-width:118px}
.btn.sm{min-width:76px}
.metric-card{contain:layout paint;min-height:92px}
.module-shell,.panel,.table-wrap,.platform-pane{contain:layout paint}
.table tbody tr{min-height:58px}
.table td,.table th{vertical-align:middle}
.sidebar-status{min-height:58px}
.sidebar-status .who,.sidebar-status .meta{min-height:14px}
.module-filters,.platform-toolbar{min-height:54px}
.detail-section,.detail-item,.overview-item,.platform-table-row{transform:translateZ(0);backface-visibility:hidden}
body.is-mutating .module-shell,body.is-syncing .module-shell{animation:none!important}

/* Storage admin IA */
.storage-admin-overview{align-items:stretch}
.storage-action-card{appearance:none;width:100%;text-align:left;cursor:pointer;color:inherit;background:rgba(255,255,255,.035);border:1px solid rgba(148,163,184,.18);border-radius:16px;padding:14px;transition:border-color .16s ease, background .16s ease, transform .16s ease}
.storage-action-card:hover{background:rgba(255,255,255,.055);border-color:rgba(148,163,184,.32);transform:translateY(-1px)}
.storage-action-card.danger-card{border-color:rgba(248,113,113,.28);background:rgba(127,29,29,.12)}
.storage-admin-panel{margin-top:10px}
.storage-admin-panel .helper-item{min-height:72px}
.danger-zone{border-color:rgba(248,113,113,.28)!important;background:linear-gradient(180deg,rgba(127,29,29,.12),rgba(15,23,42,.18))}

.field-label{font-size:.72rem;font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);margin-bottom:.45rem;display:block}

/* Native service notification delivery radio cards */
.service-notify-field{gap:9px;border:0;margin:0;padding:0;min-width:0}
.service-notify-field legend{padding:0}
.service-notify-grid{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:10px;
  min-width:0;
}
.service-notify-option{
  position:relative;
  display:block;
  min-width:0;
  margin:0;
  cursor:pointer;
}
.service-notify-option>input{
  position:absolute;
  inset:0;
  opacity:0;
  width:100%;
  height:100%;
  margin:0;
  cursor:pointer;
  z-index:2;
}
.service-notify-card{
  position:relative;
  min-width:0;
  min-height:74px;
  display:flex;
  align-items:stretch;
  border:1px solid var(--line);
  border-radius:16px;
  background:linear-gradient(180deg,rgba(255,255,255,.052),rgba(255,255,255,.021));
  box-shadow:inset 0 1px 0 rgba(255,255,255,.026);
  transition:border-color .16s ease,background .16s ease,transform .16s ease,box-shadow .16s ease;
  overflow:hidden;
}
.service-notify-option:hover .service-notify-card{
  border-color:var(--line-strong);
  background:var(--surface-hover);
  transform:translateY(-1px);
}
.service-notify-card-main{
  width:100%;
  display:grid;
  align-content:center;
  gap:6px;
  min-width:0;
  padding:12px 13px;
}
.service-notify-card-main strong{
  color:var(--text);
  font-size:12px;
  line-height:1.15;
  font-weight:950;
  letter-spacing:.01em;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.service-notify-card-main small{
  color:var(--muted);
  font-size:10px;
  line-height:1.3;
  font-weight:760;
  overflow-wrap:anywhere;
}
.service-notify-option>input:checked + .service-notify-card{
  border-color:rgba(135,150,255,.58);
  background:linear-gradient(180deg,rgba(135,150,255,.18),rgba(99,213,180,.055));
  box-shadow:0 0 0 1px rgba(135,150,255,.08),inset 0 1px 0 rgba(255,255,255,.045);
}
.service-notify-option>input:focus-visible + .service-notify-card{
  outline:2px solid rgba(135,150,255,.42);
  outline-offset:2px;
}
.service-notify-option>input:checked + .service-notify-card::after{
  content:'✓';
  position:absolute;
  top:8px;
  right:9px;
  width:18px;
  height:18px;
  display:grid;
  place-items:center;
  border-radius:999px;
  background:rgba(135,150,255,.24);
  border:1px solid rgba(174,185,255,.38);
  color:#dfe7ff;
  font-size:12px;
  font-weight:950;
}
@media (max-width:900px){.service-notify-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:560px){.service-notify-grid{grid-template-columns:1fr}.service-notify-card{min-height:62px}}


/* Adaptive SaaS visual foundation.
   This block intentionally refines the existing information architecture without
   adding a separate styling stack. It defines the dashboard/card/chart rhythm
   used by Overview, Costs overview and Reports across desktop, laptop,
   Chromebook and narrow laptop widths. */
:root{
  --dash-gap:clamp(10px,.82vw,15px);
  --dash-card-pad:clamp(10px,.72vw,13px);
  --dash-chart-h:clamp(198px,19vh,270px);
  --dash-chart-h-lg:clamp(232px,24vh,330px);
  --kpi-gap:10px;
  --kpi-track-min:184px;
  --kpi-track-max:226px;
  --kpi-height:clamp(72px,4.9vw,88px);
  --kpi-pad-y:clamp(10px,.58vw,12px);
  --kpi-pad-x:clamp(11px,.68vw,14px);
  --kpi-icon-size:clamp(28px,1.65vw,38px);
  --kpi-icon-svg:clamp(15px,.84vw,20px);
  --dash-list-row-min:52px;
  --chart-line:rgba(180,195,218,.075);
  --chart-glow:rgba(104,132,182,.035);
  --chart-good:#5a948c;
  --chart-info:#7e96c2;
  --chart-plan:#7f6aa4;
  --chart-warn:#a97935;
  --chart-danger:#b8737a;
}
.module-shell[data-module-shell="overview"],
.module-shell[data-module-shell="costsOverview"],
.module-shell[data-module-shell="costsReports"]{
  gap:var(--dash-gap);
  background:linear-gradient(180deg,rgba(255,255,255,.028),rgba(255,255,255,.012));
}

.detail-section.visual-section,.cockpit-card,.report-package-section{
  border-color:rgba(164,185,224,.16);
  background:linear-gradient(180deg,rgba(255,255,255,.034),rgba(255,255,255,.014));
}
.detail-section-head{min-height:0}.detail-section-head .helper-text{max-width:64ch}
.monthly-actual-trend,.cost-mix-panel,.report-monthly-actuals,.report-forecast-horizon{
  height:auto;
  min-height:calc(var(--dash-chart-h-lg) + 78px);
  grid-template-rows:auto minmax(var(--dash-chart-h),1fr);
}
.monthly-actual-trend .cost-mini-chart,
.report-monthly-actuals .cost-mini-chart{
  height:var(--dash-chart-h);
  min-height:var(--dash-chart-h);
}
.cost-mini-chart{
  align-items:end;
  padding:14px 12px 10px;
  border:1px solid rgba(164,185,224,.13);
  border-radius:18px;
  background:
    linear-gradient(to top,rgba(164,185,224,.060) 1px,transparent 1px) 0 0/100% 25%,
    linear-gradient(180deg,rgba(255,255,255,.035),rgba(255,255,255,.012));
  overflow:hidden;
}
.cost-mini-bar{
  position:relative;
  border-radius:12px;
  min-width:0;
  outline:none;
}
.cost-mini-bar span{
  background:linear-gradient(180deg,#7a9ad8 0%,#6688c5 55%,#4aa895 100%);
  box-shadow:0 0 14px rgba(127,140,244,.13);
  transition:filter .10s linear;
}
.cost-mini-bar:hover span,.cost-mini-bar:focus-visible span{
  filter:saturate(1.06) brightness(1.04);
}
.cost-mini-bar small{color:rgba(199,210,232,.72);font-weight:850;letter-spacing:-.01em}
.horizon-legend,.report-legend{gap:9px 14px;line-height:1.25}
.horizon-smooth-plot{
  min-width:0;
  max-width:100%;
  border:1px solid rgba(164,185,224,.13);
  border-radius:18px;
  background:
    linear-gradient(to top,rgba(164,185,224,.060) 1px,transparent 1px) 0 0/100% 25%,
    linear-gradient(180deg,rgba(255,255,255,.032),rgba(255,255,255,.012));
}
.horizon-smooth-grid{
  display:grid;
  align-items:end;
  gap:10px;
  min-width:max(100%,calc(var(--horizon-years,6) * 84px));
}
.horizon-smooth-year{
  min-width:0;
  height:100%;
  min-height:var(--dash-chart-h);
  display:grid;
  grid-template-rows:minmax(0,1fr) auto;
  gap:8px;
  border:0;
  border-radius:14px;
  background:transparent;
  color:inherit;
  padding:8px 4px 4px;
  cursor:pointer;
  outline:none;
}
.horizon-smooth-year:hover,.horizon-smooth-year:focus-visible{background:rgba(135,150,255,.055)}
.horizon-smooth-bars{height:100%;min-height:0;display:flex;gap:5px;align-items:end;justify-content:center}
.horizon-smooth-bar{width:min(16px,18%);min-height:5px;border-radius:9px 9px 3px 3px;background:var(--chart-info);transition:filter .10s linear}
.horizon-smooth-bar.other{background:var(--chart-good)}.horizon-smooth-bar.service-forecast{background:var(--chart-plan)}.horizon-smooth-bar.planned-costs{background:var(--chart-warn)}
.horizon-smooth-year:hover .horizon-smooth-bar,.horizon-smooth-year:focus-visible .horizon-smooth-bar{filter:saturate(1.08) brightness(1.06)}
.horizon-smooth-label{font-size:10px;font-weight:900;color:rgba(199,210,232,.72);text-align:center;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.chart-tooltip-layer{
  max-width:min(340px,calc(100vw - 28px));
  border-color:rgba(164,185,224,.24);
  background:linear-gradient(180deg,rgba(14,25,44,.985),rgba(7,17,31,.995));
  backdrop-filter:blur(10px);
}
.overview-cockpit-columns.enterprise-overview,
.cost-overview-flow,
.report-flow-grid{
  gap:var(--dash-gap);
}
[data-tip],.cost-mini-bar,.horizon-smooth-year,.cost-composition-segment{cursor:help}
.cost-composition-row{cursor:default}
.compact-ledger-table th{color:rgba(199,210,232,.64);font-size:10px;letter-spacing:.075em}
.compact-ledger-table td{min-height:58px}
.module-shell[data-module-shell="overview"] .module-section-head{display:none}
.module-shell[data-module-shell="overview"] .module-table{margin-top:2px}
.cockpit-card .compact-table{border-radius:16px}
.cockpit-attention .compact-ledger-table tbody tr:first-child td{border-top-color:rgba(239,114,131,.18)}
.cockpit-cost .cockpit-visual-row{gap:var(--dash-gap)}
.compact-table.no-x-scroll{overflow-x:auto;scrollbar-width:thin}.compact-table.no-x-scroll .table{width:100%}
@media (min-width:1580px){
  :root{--dash-chart-h:clamp(230px,22vh,300px);--dash-chart-h-lg:clamp(270px,27vh,354px);--kpi-track-max:232px;--kpi-icon-size:40px;--kpi-icon-svg:21px}
  .overview-cockpit-columns.enterprise-overview{grid-template-columns:minmax(0,.95fr) minmax(0,1.05fr)}
}
@media (max-width:1360px){
  :root{--dash-gap:12px;--dash-chart-h:204px;--dash-chart-h-lg:252px;--kpi-track-min:174px;--kpi-track-max:218px;--panel-pad:15px;--kpi-icon-size:29px;--kpi-icon-svg:17px}
  .cockpit-cost .cockpit-visual-row{grid-template-columns:1fr}
}
@media (max-width:1180px){
  :root{--dash-chart-h:194px;--dash-chart-h-lg:232px;--kpi-track-min:160px;--kpi-track-max:1fr;--kpi-icon-size:27px;--kpi-icon-svg:16px}
  .monthly-actual-trend,.cost-mix-panel,.report-monthly-actuals,.report-forecast-horizon{min-height:0}
}
@media (max-width:980px){
  .module-shell[data-module-shell="overview"] .summary-grid.overview-kpi-strip,
  .module-shell[data-module-shell="costsOverview"] .summary-grid.cost-kpi-strip,
  .module-shell[data-module-shell="costsReports"] .summary-grid,
  .module-shell[data-module-shell="cases"] .summary-grid,
  .module-shell[data-module-shell="assets"] .summary-grid,
  .module-shell[data-module-shell="service"] .summary-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media (max-width:900px){
  :root{--dash-gap:11px;--dash-chart-h:184px;--dash-chart-h-lg:220px;--kpi-track-min:148px;--kpi-track-max:1fr;--kpi-icon-size:23px;--kpi-icon-svg:14px}
  .detail-section-head{display:grid;grid-template-columns:1fr;gap:8px}.detail-section-head .data-chip{justify-self:start}
  .cost-mini-chart{gap:6px;padding-inline:9px}.horizon-smooth-grid{min-width:max(100%,calc(var(--horizon-years,6) * 72px))}
  .summary-card::after{display:none}
}
@media (max-width:720px){
  :root{--dash-gap:10px;--dash-chart-h:176px;--dash-chart-h-lg:206px;--kpi-track-min:100%;--kpi-track-max:1fr;--kpi-height:64px;--kpi-pad-y:9px;--kpi-pad-x:11px;--kpi-icon-size:22px;--kpi-icon-svg:13px}
  .module-shell[data-module-shell="overview"] .summary-grid.overview-kpi-strip,
  .summary-grid,.summary-grid.compact,.summary-grid.cost-kpi-strip{grid-template-columns:1fr}
  .summary-card{max-width:100%}
  .horizon-smooth-grid{min-width:max(100%,calc(var(--horizon-years,6) * 68px))}
}
@media (max-width:430px){
  :root{--dash-chart-h:156px;--dash-chart-h-lg:190px;--dash-gap:8px}
  .summary-card .label,.summary-card .sub,.summary-trend{white-space:nowrap;display:block}
  .summary-card .value{white-space:nowrap;overflow-wrap:normal}
  .cost-mini-chart{gap:4px;padding:10px 6px 8px}.cost-mini-bar small{font-size:8px;writing-mode:vertical-rl;transform:rotate(180deg);justify-self:center}
}
/* Module list/table parity refinements. */
.module-table{min-width:0;max-width:100%}
.module-shell[data-module-shell="cases"] .module-table,
.module-shell[data-module-shell="assets"] .module-table,
.module-shell[data-module-shell="service"] .module-table{
  margin-top:2px;
}
.table-wrap{border-radius:16px}
.table th{font-size:10px;letter-spacing:.075em;color:rgba(199,210,232,.62)}
.table td{line-height:1.32}


/* PASS136: premium chart revision + de-toy cleanup.
   Canonical presentation layer for KPI cards and charts across Overview,
   Costs and Reports. This replaces the prior PASS135 chart layer in place; do not
   append cosmetic overrides below this block. */
.cost-trend-area{
  height:var(--dash-chart-h);
  min-height:var(--dash-chart-h);
  min-width:0;
  display:grid;
  grid-template-columns:34px minmax(0,1fr);
  grid-template-rows:minmax(0,1fr) 22px;
  gap:7px 10px;
  padding:16px 16px 12px 12px;
  color:var(--chart-info);
  border:1px solid rgba(178,194,218,.105);
  border-radius:18px;
  background:linear-gradient(180deg,rgba(255,255,255,.022),rgba(255,255,255,.008));
  box-shadow:inset 0 1px 0 rgba(255,255,255,.014);
  overflow:hidden;
  cursor:default;
}
.cost-trend-yaxis{grid-column:1;grid-row:1;display:grid;grid-template-rows:auto 1fr auto;align-items:start;justify-items:end;padding-top:2px;padding-bottom:3px;color:rgba(202,212,230,.55);font-size:10px;font-weight:800;line-height:1;min-width:0;overflow:hidden}
.cost-trend-yaxis span:nth-child(2){align-self:center}
.cost-trend-yaxis span:last-child{align-self:end}
.cost-trend-plot{grid-column:2;grid-row:1;position:relative;min-width:0;min-height:0;height:100%;overflow:hidden;border-radius:12px}
.cost-trend-plot svg{position:absolute;inset:0;display:block;width:100%;height:100%;overflow:hidden}
.cost-trend-grid-line{stroke:rgba(178,194,218,.070);stroke-width:1;vector-effect:non-scaling-stroke}
.cost-trend-fill{fill:url(#costTrendFill)}
.cost-trend-line{fill:none;stroke:currentColor;stroke-width:2.35;stroke-linecap:round;stroke-linejoin:round;filter:none;vector-effect:non-scaling-stroke}
.cost-trend-hit{
  position:absolute;
  top:0;
  bottom:0;
  left:var(--x);
  width:max(var(--w),18px);
  transform:translateX(-50%);
  border:0;
  padding:0;
  margin:0;
  background:transparent;
  color:inherit;
  cursor:help;
  outline:none;
}
.cost-trend-hit::before{
  content:'';
  position:absolute;
  top:4px;
  bottom:5px;
  left:50%;
  width:1px;
  transform:translateX(-50%);
  background:linear-gradient(180deg,transparent,rgba(178,194,218,.22),transparent);
  opacity:0;
  transition:opacity .10s ease;
}
.cost-trend-hit span{
  position:absolute;
  left:50%;
  top:var(--y);
  width:6px;
  height:6px;
  border-radius:999px;
  transform:translate(-50%,-50%) scale(.68);
  background:#b7c9ed;
  border:1px solid rgba(7,17,31,.92);
  box-shadow:0 0 0 2px rgba(120,147,200,.13);
  opacity:0;
  transition:opacity .10s ease,transform .10s ease;
  pointer-events:none;
}
.cost-trend-hit:hover::before,.cost-trend-hit:focus-visible::before{opacity:1}
.cost-trend-hit:hover span,.cost-trend-hit:focus-visible span{opacity:1;transform:translate(-50%,-50%) scale(1)}
.cost-trend-months{
  grid-column:2;
  grid-row:2;
  display:grid;
  grid-template-columns:repeat(12,minmax(0,1fr));
  gap:2px;
  align-items:end;
  min-width:0;
  color:rgba(202,212,230,.66);
  font-size:10.25px;
  line-height:1;
  font-weight:850;
  letter-spacing:.005em;
}
.cost-trend-months span{min-width:0;overflow:hidden;text-overflow:clip;white-space:nowrap;text-align:center}
.cockpit-chart .cost-trend-area{height:190px;min-height:190px;border:0;background:transparent;border-radius:14px;padding:10px 10px 8px 4px}
.cost-composition{
  display:grid;
  grid-template-rows:auto minmax(1px,1fr) auto;
  gap:10px;
  min-width:0;
  width:100%;
  align-self:center;
}
.cost-composition-bar{
  display:flex;
  width:100%;
  min-width:0;
  min-height:36px;
  overflow:hidden;
  border-radius:9px;
  border:1px solid rgba(178,194,218,.105);
  background:rgba(255,255,255,.014);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.012);
}
.cost-composition-segment{
  flex:0 0 calc(var(--pct,0) * 1%);
  min-width:0;
  border:0;
  border-right:1px solid rgba(7,17,31,.34);
  color:rgba(246,249,255,.92);
  display:grid;
  place-items:center;
  padding:0 8px;
  font:900 12px/1 var(--font,inherit);
  cursor:help;
  outline:none;
  transition:filter .12s ease,opacity .12s ease,box-shadow .12s ease;
}
.cost-composition-segment:last-child{border-right:0}
.cost-composition-segment span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}
.cost-composition-segment.is-zero{display:none}
.cost-composition-segment.service{background:linear-gradient(180deg,#7e96c2,#697fa8)}
.cost-composition-segment.other{background:linear-gradient(180deg,#5a948c,#477a73)}
.cost-composition-segment.planned-service{background:linear-gradient(180deg,#7f6aa4,#6d5a8d)}
.cost-composition-segment.planned-other{background:linear-gradient(180deg,#a97935,#8f672f)}
.cost-composition-segment:hover,.cost-composition-segment:focus-visible{filter:brightness(1.08) saturate(1.04);box-shadow:inset 0 0 0 1px rgba(255,255,255,.18)}
.cost-composition-empty{display:grid;place-items:center;width:100%;font-size:12px;font-weight:850;color:rgba(202,212,230,.62)}
.cost-composition-rows{display:grid;gap:6px;min-width:0}
.cost-composition-row{
  width:100%;
  min-width:0;
  display:grid;
  grid-template-columns:auto minmax(0,1fr) minmax(88px,max-content) max-content auto;
  gap:9px;
  align-items:center;
  padding:7px 6px;
  border:0;
  border-top:1px solid rgba(178,194,218,.090);
  border-radius:0;
  background:transparent;
  color:inherit;
  text-align:left;
  cursor:default;
  outline:none;
  transition:none;
}
.cost-composition-row:hover,.cost-composition-row:focus-visible{background:transparent;border-color:rgba(178,194,218,.090)}
.cost-composition-dot{width:7px;height:7px;border-radius:999px;background:var(--chart-info);box-shadow:none}
.cost-composition-row.other .cost-composition-dot{background:var(--chart-good);box-shadow:none}
.cost-composition-row.planned-service .cost-composition-dot{background:var(--chart-plan);box-shadow:none}
.cost-composition-row.planned-other .cost-composition-dot{background:var(--chart-warn);box-shadow:none}
.cost-composition-name,.cost-composition-row strong,.cost-composition-row small{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.cost-composition-name{font-size:11px;color:rgba(202,212,230,.78);font-weight:850}
.cost-composition-row strong{font-size:11px;color:rgba(244,248,255,.92);font-weight:920;text-align:right}
.cost-composition-row small{font-size:10px;color:rgba(202,212,230,.62);font-weight:850;text-align:right}
.cost-composition-affordance{color:rgba(202,212,230,.40);font-size:14px;line-height:1}
.cost-composition-total{display:flex;justify-content:space-between;gap:12px;align-items:center;padding:8px 2px 0;border-top:1px solid rgba(178,194,218,.13);min-width:0}
.cost-composition-total span{font-size:11px;color:rgba(202,212,230,.66);font-weight:850;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.cost-composition-total strong{font-size:12px;color:rgba(244,248,255,.95);font-weight:940;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;text-align:right}
.cost-mix-panel .cost-composition,.report-split-panel .cost-composition{min-height:calc(var(--dash-chart-h) - 12px);align-content:center}
.cockpit-cost .cockpit-visual-row{grid-template-columns:minmax(0,1fr) minmax(360px,.94fr)}
.cockpit-cost .cost-composition{min-height:176px;gap:8px}
.cockpit-cost .cost-composition-bar{min-height:32px}
.cockpit-cost .cost-composition-row{padding:6px 7px;grid-template-columns:auto minmax(0,1fr) minmax(76px,max-content) max-content auto}
.horizon-chart.horizon-smooth{display:grid;grid-template-rows:auto minmax(0,1fr);gap:10px;min-height:0;height:100%}
.horizon-smooth .horizon-legend{align-items:center;gap:8px 12px;color:rgba(202,212,230,.70);font-size:10.5px;line-height:1.2;min-width:0}
.horizon-smooth .horizon-legend span{white-space:nowrap;min-width:0;max-width:100%;overflow:hidden;text-overflow:ellipsis}
.horizon-scale{margin-left:auto;color:rgba(202,212,230,.55);font-size:10px}
.horizon-smooth-plot{
  min-width:0;
  max-width:100%;
  min-height:0;
  overflow-x:auto;
  overflow-y:hidden;
  padding:12px 12px 10px;
  border:1px solid rgba(164,185,224,.105);
  border-radius:18px;
  background:
    linear-gradient(to top,rgba(164,185,224,.045) 1px,transparent 1px) 0 0/100% 25%,
    linear-gradient(180deg,rgba(255,255,255,.020),rgba(255,255,255,.008));
}
.horizon-smooth-grid{display:grid;grid-template-columns:repeat(var(--horizon-years,6),minmax(72px,1fr));gap:12px;align-items:stretch;min-width:max(100%,calc(var(--horizon-years,6) * 84px));height:100%}
.horizon-smooth-year{min-width:0;height:100%;min-height:0;display:grid;grid-template-rows:minmax(0,1fr) 18px;gap:7px;border:0;border-radius:12px;background:transparent;color:inherit;padding:0 2px;cursor:help;outline:none}
.horizon-smooth-year:hover,.horizon-smooth-year:focus-visible{background:rgba(111,143,202,.050)}
.horizon-smooth-bars{height:100%;min-height:128px;display:flex;gap:6px;align-items:end;justify-content:center;border-radius:10px;overflow:hidden}
.horizon-smooth-bar{width:min(13px,17%);min-height:5px;border-radius:8px 8px 3px 3px;background:var(--chart-info);transition:filter .10s linear,opacity .10s linear;box-shadow:none}
.horizon-smooth-bar.other{background:var(--chart-good)}
.horizon-smooth-bar.service-forecast{background:var(--chart-plan)}
.horizon-smooth-bar.planned-costs{background:var(--chart-warn)}
.horizon-smooth-year:hover .horizon-smooth-bar,.horizon-smooth-year:focus-visible .horizon-smooth-bar{filter:saturate(1.03) brightness(1.06)}
.horizon-smooth-label{font-size:9.8px;font-weight:850;color:rgba(202,212,230,.68);text-align:center;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;line-height:18px}
[data-tip],.cost-trend-hit,.horizon-smooth-year{cursor:help}
.cost-composition-segment{cursor:help}
.cost-composition-row{cursor:default}
@media (max-width:1580px){
  .cockpit-cost .cockpit-visual-row{grid-template-columns:1fr}
  .cockpit-cost .cost-composition{min-height:0}
}
@media (max-width:760px){
  .cost-trend-area{height:220px;min-height:220px}
  .cost-composition{min-height:0}
  .cost-composition-row{grid-template-columns:auto minmax(0,1fr) max-content auto}
  .cost-composition-bar{min-height:30px}
  .horizon-smooth-grid{min-width:max(100%,calc(var(--horizon-years,6) * 64px))}
}

/* PASS143: one placement contract for list visibility controls */
.module-section-head{display:flex;align-items:center;gap:10px;min-width:0}
.module-section-tools{display:flex;align-items:center;justify-content:flex-end;gap:8px;min-width:0;flex:0 0 auto}
.detail-section-head .list-controls,
.module-section-tools .list-controls,
.action-bar-end .list-controls,
.overview-section-actions .list-controls,
.list-header-actions .list-controls{
  margin:0;
  width:auto;
  justify-content:flex-end;
  align-self:center;
}
.module-table>.list-controls{
  margin:0 0 10px auto;
  justify-content:flex-end;
}
.list-controls{
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:8px;
  min-width:0;
  margin:0 0 10px auto;
}
.list-controls .list-count-chip{white-space:nowrap;max-width:100%;overflow:hidden;text-overflow:ellipsis}
.list-controls .btn{white-space:nowrap}
.detail-section-head>.list-controls{margin-left:auto}
.list-header-actions{display:flex;align-items:center;justify-content:flex-end;gap:8px;flex-wrap:wrap;min-width:0}
.lookups-grid .list-controls{margin:0 0 8px auto}
@media (max-width:720px){
  .module-section-head{align-items:flex-start;flex-wrap:wrap}
  .module-section-line{min-width:60px}
  .module-section-tools{width:100%;justify-content:flex-start}
  .detail-section-head .list-controls,
  .overview-section-actions .list-controls,
  .list-header-actions{justify-content:flex-start}
  .list-controls{margin-left:0}
}

/* PASS145: uniform list control chrome */
.list-controls{
  display:inline-flex;
  align-items:center;
  justify-content:flex-end;
  gap:7px;
  min-width:0;
  width:auto;
  margin:0;
  flex:0 0 auto;
}
.list-controls.is-complete .list-toggle-btn{display:none}
.list-controls .list-count-chip{
  white-space:nowrap;
  max-width:100%;
  overflow:hidden;
  text-overflow:ellipsis;
  min-height:24px;
  display:inline-flex;
  align-items:center;
}
.list-controls .btn{
  min-height:24px;
  white-space:nowrap;
}
.module-section-tools,
.list-header-actions,
.overview-section-actions,
.action-bar-end{
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:8px;
  min-width:0;
  flex-wrap:wrap;
}
.module-section-tools .list-controls,
.detail-section-head .list-controls,
.overview-section-actions .list-controls,
.list-header-actions .list-controls,
.action-bar-end .list-controls{
  margin:0;
}
.module-table>.list-controls{
  margin:0 0 10px auto;
  justify-content:flex-end;
}
.list-meta-row{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  min-width:0;
  margin:12px 0 8px;
  padding-top:10px;
  border-top:1px solid rgba(148,163,184,.10);
}
.list-meta-copy{min-width:0}
.list-meta-title{
  font-size:11px;
  font-weight:950;
  letter-spacing:.08em;
  text-transform:uppercase;
  color:var(--muted);
  line-height:1.2;
}
.list-meta-actions{
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:8px;
  flex:0 0 auto;
  min-width:0;
}
.cockpit-cost .detail-section-head .list-controls{display:none}
.cockpit-cost .list-meta-row{margin-top:14px}
@media (max-width:720px){
  .list-meta-row{align-items:flex-start;flex-direction:column}
  .list-meta-actions,.module-section-tools,.list-header-actions,.overview-section-actions,.action-bar-end{justify-content:flex-start}
}

/* PASS159 — Visual hierarchy and analytics clarity lock
   Baseline-preserving refinement: clearer surfaces, fixed four-way cost model,
   aligned financial rows, compact semantic KPIs, lower nested-card weight. */
:root{
  --bg:#081320;
  --bg2:#0c1828;
  --surface:#141f31;
  --surface2:#19263a;
  --surface3:#202e44;
  --field-bg:rgba(236,244,255,.060);
  --surface-soft:rgba(236,244,255,.040);
  --surface-hover:rgba(138,164,214,.105);
  --line:rgba(174,194,226,.185);
  --line-strong:rgba(184,204,234,.30);
  --text:#f0f5ff;
  --text-soft:#d6e0f2;
  --muted:#a7b6ce;
  --muted2:#7f90aa;
  --chart-info:#91a8d2;
  --chart-good:#68c6ad;
  --chart-plan:#a17bc7;
  --chart-warn:#c58b3b;
  --chart-danger:#e07683;
  --chart-line:rgba(191,208,238,.115);
  --chart-glow:rgba(117,149,206,.050);
  --kpi-height:72px;
  --kpi-pad-y:12px;
  --kpi-pad-x:13px;
  --kpi-icon-size:25px;
  --kpi-icon-svg:14px;
}
body{background:var(--bg);color:var(--text)}
.shell{background:linear-gradient(180deg,#091522 0%,#07111d 100%)}
.content{padding:16px 18px 20px}
.module-shell{
  background:linear-gradient(180deg,rgba(255,255,255,.038),rgba(255,255,255,.020));
  border-color:rgba(174,194,226,.18);
  box-shadow:0 18px 44px rgba(0,0,0,.20),inset 0 1px 0 rgba(255,255,255,.030);
}
.module-title{font-size:18px;letter-spacing:-.02em}.module-sub{color:var(--muted);font-size:12px}
.summary-card{
  min-height:72px;
  padding:11px 12px;
  border-color:rgba(174,194,226,.17);
  background:linear-gradient(180deg,rgba(255,255,255,.040),rgba(255,255,255,.018));
  border-radius:13px;
  gap:4px;
}
.summary-card::before{width:3px;top:14px;bottom:14px;opacity:.78}
.summary-card::after{opacity:.060;background:linear-gradient(120deg,color-mix(in srgb,var(--metric-accent) 12%,transparent),transparent 54%)}
.summary-card .label{color:rgba(214,224,242,.76);font-size:9.5px;letter-spacing:.075em}
.summary-card .value{font-size:clamp(18px,.45vw + 12px,22px);color:#f7faff;letter-spacing:-.026em}
.summary-card .sub{color:rgba(214,224,242,.72);font-size:10.5px}
.summary-trend{font-size:10px;color:color-mix(in srgb,var(--metric-accent) 92%,#f4f7ff);font-weight:900}
.summary-icon{opacity:.78;border-color:color-mix(in srgb,var(--metric-accent) 28%,rgba(255,255,255,.08));background:color-mix(in srgb,var(--metric-accent) 10%,rgba(255,255,255,.012))}
.summary-card.tone-good{--metric-accent:var(--chart-good);--metric-soft:rgba(104,198,173,.08)}
.summary-card.tone-risk{--metric-accent:var(--chart-danger);--metric-soft:rgba(224,118,131,.08)}
.summary-card.tone-warning,.summary-card.tone-plan{--metric-accent:var(--chart-warn);--metric-soft:rgba(197,139,59,.07)}
.summary-card.tone-cost{--metric-accent:var(--chart-info);--metric-soft:rgba(145,168,210,.07)}
.detail-section,.cockpit-card,.soft-card,.platform-card,.platform-pane{
  border-color:rgba(174,194,226,.16);
  background:linear-gradient(180deg,rgba(255,255,255,.035),rgba(255,255,255,.016));
  box-shadow:inset 0 1px 0 rgba(255,255,255,.026);
}
.detail-section-title{font-size:13.2px;color:#f3f7ff;letter-spacing:-.012em}.helper-text{color:rgba(214,224,242,.68)}
.table-wrap{border:1px solid rgba(174,194,226,.145);background:rgba(5,13,24,.18);box-shadow:none}
.table th{background:rgba(236,244,255,.050);color:rgba(214,224,242,.72);font-size:10px;letter-spacing:.065em}
.table td{border-top-color:rgba(174,194,226,.105);color:var(--text-soft)}
.table tr:hover td{background:rgba(145,168,210,.050)}
.primary-line{color:#f3f7ff}.secondary-line{color:rgba(214,224,242,.72)}.tertiary-line{color:rgba(214,224,242,.56)}
.list-controls,.data-chip{background:rgba(236,244,255,.050);border-color:rgba(174,194,226,.14);color:rgba(214,224,242,.72)}
.cost-mini-chart,.horizon-smooth-plot,.visual-section .cost-mini-chart{background:transparent;border:0;box-shadow:none}
.monthly-actual-trend,.cost-mix-panel{height:304px;min-height:304px;grid-template-rows:48px minmax(0,1fr)}
.monthly-actual-trend .cost-mini-chart{height:220px;min-height:220px}.cost-mini-chart{padding:8px 10px 6px}.cost-trend-line{stroke-width:2.1}.cost-trend-grid-line{stroke:rgba(191,208,238,.12)}
.report-monthly-actuals,.report-forecast-horizon{height:342px;min-height:342px;grid-template-rows:48px minmax(0,1fr)}
.report-monthly-actuals .cost-mini-chart,.report-forecast-horizon .horizon-smooth-plot{height:256px;min-height:256px}
.horizon-smooth-bar{width:min(14px,17%);opacity:.88}.horizon-smooth-bar.other{opacity:.64}.horizon-smooth-plot{background:linear-gradient(to top,rgba(191,208,238,.050) 1px,transparent 1px) 0 0/100% 25%,rgba(5,13,24,.080);border-color:rgba(174,194,226,.12)}
.cost-composition{gap:9px;grid-template-rows:auto auto auto;align-self:stretch;align-content:center}
.cost-composition-bar{min-height:28px;border-radius:8px;border-color:rgba(174,194,226,.14);background:rgba(5,13,24,.22)}
.cost-composition-segment{flex:0 0 max(8px,calc(var(--pct,0) * 1%));font-size:11px;padding:0 6px;border-right:1px solid rgba(5,13,24,.52)}
.cost-composition-segment.is-zero{display:grid;min-width:8px;opacity:.42;filter:saturate(.55);box-shadow:inset 0 0 0 1px rgba(255,255,255,.08)}
.cost-composition-segment.is-zero span{display:none}.cost-composition-segment.service{background:linear-gradient(180deg,#8da6d0,#7b93bf)}.cost-composition-segment.other{background:linear-gradient(180deg,#67b5a4,#529887)}.cost-composition-segment.planned-service{background:linear-gradient(180deg,#9a7abb,#82649f)}.cost-composition-segment.planned-other{background:linear-gradient(180deg,#bd873d,#a27232)}
.cost-composition-rows{gap:0;border-top:1px solid rgba(174,194,226,.10)}
.cost-composition-row,.cost-composition-total{
  display:grid;
  grid-template-columns:10px minmax(0,1fr) minmax(104px,128px) minmax(42px,54px);
  gap:8px;
  align-items:center;
  min-height:34px;
  padding:7px 2px;
  border-top:0;
  border-bottom:1px solid rgba(174,194,226,.095);
  background:transparent;
}
.cost-composition-row.is-zero .cost-composition-name,.cost-composition-row.is-zero .cost-composition-amount,.cost-composition-row.is-zero .cost-composition-share{color:rgba(214,224,242,.48)}
.cost-composition-dot{width:7px;height:7px;align-self:center;justify-self:center}.cost-composition-name{font-size:11px;color:rgba(226,234,247,.78);font-weight:850}.cost-composition-amount,.cost-composition-row strong{font-size:11.2px;color:#f3f7ff;font-weight:930;text-align:right;font-variant-numeric:tabular-nums}.cost-composition-share,.cost-composition-row small{font-size:10.3px;color:rgba(214,224,242,.62);font-weight:850;text-align:right;font-variant-numeric:tabular-nums}.cost-composition-total{border-top:1px solid rgba(174,194,226,.16);border-bottom:0;padding-top:9px}.cost-composition-total::before{content:'';width:7px;height:7px}.cost-composition-total-label{font-size:11px;color:rgba(226,234,247,.78);font-weight:900}.cost-composition-total .cost-composition-amount{font-size:12px}.cost-composition-total .cost-composition-share{color:rgba(214,224,242,.44)}
.cost-composition-affordance{display:none}.cost-mix-panel .cost-composition,.report-split-panel .cost-composition{min-height:0}.cockpit-cost .cost-composition-row{grid-template-columns:10px minmax(0,1fr) minmax(92px,118px) minmax(42px,52px)}
@media (max-width:1180px){.monthly-actual-trend,.cost-mix-panel,.report-monthly-actuals,.report-forecast-horizon{height:auto;min-height:0}.report-monthly-actuals .cost-mini-chart,.report-forecast-horizon .horizon-smooth-plot,.monthly-actual-trend .cost-mini-chart{height:220px;min-height:220px}.cost-composition-row,.cost-composition-total{grid-template-columns:10px minmax(0,1fr) minmax(92px,116px) minmax(38px,48px)}}
@media (max-width:980px){.module-shell[data-module-shell="overview"] .summary-grid.overview-kpi-strip,.module-shell[data-module-shell="costsOverview"] .summary-grid.cost-kpi-strip,.module-shell[data-module-shell="costsReports"] .summary-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.summary-card{min-height:68px}}

/* PASS160 — Semantic surface clarity lock
   Expert correction pass: neutral base, semantic KPI accents, fewer nested frames,
   clearer row hierarchy, and consistent financial grids without changing layout/logic. */
:root{
  --bg:#0a1624;
  --bg2:#0d1b2b;
  --surface:#172235;
  --surface2:#1b2940;
  --surface3:#223249;
  --field-bg:rgba(233,242,255,.070);
  --surface-soft:rgba(235,244,255,.050);
  --surface-hover:rgba(128,158,206,.115);
  --line:rgba(190,210,236,.205);
  --line-soft:rgba(190,210,236,.105);
  --line-strong:rgba(205,222,246,.32);
  --row-line:rgba(190,210,236,.125);
  --text:#f5f8ff;
  --text-soft:#dce7f7;
  --muted:#b2c0d4;
  --muted2:#8999b0;
  --chart-info:#9fb3d8;
  --chart-good:#66c8aa;
  --chart-plan:#a684c8;
  --chart-warn:#c58b3e;
  --chart-danger:#e37582;
  --kpi-height:62px;
  --kpi-pad-y:8px;
  --kpi-pad-x:11px;
  --kpi-icon-size:22px;
  --kpi-icon-svg:13px;
  --dash-gap:12px;
}
body{background:var(--bg);color:var(--text);font-synthesis-weight:none}
.shell{background:linear-gradient(180deg,#0a1624 0%,#091522 100%)}
.content{padding:14px 16px 18px}
.module-shell{
  background:linear-gradient(180deg,rgba(255,255,255,.052),rgba(255,255,255,.028));
  border:1px solid var(--line);
  box-shadow:0 14px 34px rgba(0,0,0,.16),inset 0 1px 0 rgba(255,255,255,.038);
}
.module-title{font-size:17px;letter-spacing:-.018em;color:#fbfdff}.module-sub{color:var(--muted);font-size:12px}.module-section-label,.surface-eyebrow{color:rgba(184,199,220,.82);letter-spacing:.085em}.module-section-line{background:rgba(190,210,236,.125)}
.module-summary.slim{margin-bottom:10px}.summary-grid{gap:9px}
.module-shell[data-module-shell="overview"] .summary-grid.overview-kpi-strip{grid-template-columns:repeat(8,minmax(0,1fr))}
.module-shell[data-module-shell="costsOverview"] .summary-grid.cost-kpi-strip,.module-shell[data-module-shell="costsReports"] .summary-grid{grid-template-columns:repeat(4,minmax(0,1fr))}
.summary-card{
  min-height:var(--kpi-height);
  padding:var(--kpi-pad-y) var(--kpi-pad-x);
  gap:2px;
  border:1px solid var(--line-soft);
  border-left:3px solid var(--metric-accent);
  border-radius:12px;
  background:linear-gradient(180deg,rgba(255,255,255,.044),rgba(255,255,255,.020));
  box-shadow:inset 0 1px 0 rgba(255,255,255,.032);
}
.summary-card::before{display:none}.summary-card::after{opacity:.045;background:linear-gradient(110deg,color-mix(in srgb,var(--metric-accent) 14%,transparent),transparent 54%)}
.summary-card.tone-neutral{--metric-accent:rgba(170,190,218,.62);--metric-soft:rgba(170,190,218,.040)}
.summary-card.tone-good{--metric-accent:var(--chart-good);--metric-soft:rgba(102,200,170,.060)}
.summary-card.tone-service{--metric-accent:#72b9d7;--metric-soft:rgba(114,185,215,.050)}
.summary-card.tone-warning,.summary-card.tone-plan{--metric-accent:var(--chart-warn);--metric-soft:rgba(197,139,62,.060)}
.summary-card.tone-risk{--metric-accent:var(--chart-danger);--metric-soft:rgba(227,117,130,.070)}
.summary-card.tone-cost,.summary-card.tone-work,.summary-card.tone-report{--metric-accent:var(--chart-info);--metric-soft:rgba(159,179,216,.045)}
.summary-card .label{font-size:9px;letter-spacing:.075em;color:rgba(220,231,247,.78)}
.summary-card .value{font-size:clamp(17px,.38vw + 12px,21px);line-height:1.05;color:#fbfdff;letter-spacing:-.025em}
.summary-card .sub{font-size:10px;color:rgba(220,231,247,.72)}
.summary-trend{font-size:9.6px;color:color-mix(in srgb,var(--metric-accent) 88%,#f8fbff);font-weight:900;letter-spacing:-.005em}
.summary-icon{opacity:.74;border-color:color-mix(in srgb,var(--metric-accent) 24%,rgba(255,255,255,.075));background:color-mix(in srgb,var(--metric-accent) 8%,rgba(255,255,255,.012));color:var(--metric-accent)}
.detail-section,.cockpit-card,.soft-card,.platform-card,.platform-pane{
  background:linear-gradient(180deg,rgba(255,255,255,.046),rgba(255,255,255,.022));
  border:1px solid var(--line-soft);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.030);
}
.detail-section-title{font-size:13px;color:#f7faff}.helper-text{color:rgba(220,231,247,.70)}
.detail-section-head{padding-bottom:0;border-bottom:0}.detail-section-head.compact{gap:8px}
/* Flatten nested cards/tables: card owns the frame, rows own the reading rhythm. */
.detail-section>.table-wrap,.cockpit-card>.table-wrap,.flow-list-section>.table-wrap,.module-table>.table-wrap,.planned-overview-ledger>.table-wrap{
  border:0;
  background:transparent;
  border-radius:0;
  box-shadow:none;
}
.table{border-collapse:collapse;border-spacing:0}.table th,.table td{border-bottom:1px solid var(--row-line)}.table th{height:var(--list-head-h);background:rgba(255,255,255,.035);color:rgba(220,231,247,.76);font-size:9.7px;letter-spacing:.065em}.table td{height:var(--list-row-min);color:rgba(232,239,249,.86);font-size:11.7px}.compact-ledger-table td{height:var(--list-row-compact-min);padding-top:8px;padding-bottom:8px}.table tbody tr:last-child td{border-bottom:0}.table tbody tr:hover td{background:rgba(133,162,209,.070)}
.primary-line{color:#fbfdff}.secondary-line{color:rgba(220,231,247,.70)}.tertiary-line{color:rgba(220,231,247,.54)}
.data-chip,.list-controls .list-count-chip,.status-pill,.type-chip,.doc-badge,.work-badge{background:rgba(255,255,255,.042);border-color:rgba(190,210,236,.14);color:rgba(220,231,247,.74);box-shadow:none}.list-controls .btn{background:rgba(255,255,255,.042);border-color:rgba(190,210,236,.14);color:rgba(220,231,247,.78)}
.list-meta-row{border-top:0;margin-top:12px;padding-top:0}.list-meta-title{color:rgba(220,231,247,.74);font-size:10.6px;letter-spacing:.075em}
.cost-mini-chart,.horizon-smooth-plot,.visual-section .cost-mini-chart,.cockpit-chart{background:transparent;border:0;box-shadow:none}.cost-trend-area{background:transparent}.cost-trend-grid-line{stroke:rgba(208,224,248,.155)}.cost-trend-line{stroke-width:2.15}.cost-trend-months span,.cost-trend-yaxis span{color:rgba(220,231,247,.66)}
.monthly-actual-trend,.cost-mix-panel{height:292px;min-height:292px;grid-template-rows:44px minmax(0,1fr)}.monthly-actual-trend .cost-mini-chart{height:216px;min-height:216px}.report-monthly-actuals,.report-forecast-horizon{height:332px;min-height:332px;grid-template-rows:44px minmax(0,1fr)}.report-monthly-actuals .cost-mini-chart,.report-forecast-horizon .horizon-smooth-plot{height:254px;min-height:254px}
.cockpit-cost .cockpit-visual-row{gap:16px}.cockpit-cost .cost-mini-chart{height:170px}.cockpit-cost .cost-composition{min-height:0}
.cost-composition{gap:8px}.cost-composition-bar{min-height:25px;border:1px solid rgba(190,210,236,.12);background:rgba(5,14,26,.18);border-radius:7px;overflow:hidden}.cost-composition-segment{border-right:1px solid rgba(6,15,28,.42);font-size:10.6px}.cost-composition-segment.is-zero{min-width:7px;opacity:.50;filter:saturate(.70)}
.cost-composition-row,.cost-composition-total{grid-template-columns:10px minmax(0,1fr) minmax(108px,132px) minmax(44px,58px);min-height:30px;padding:5px 0;border-bottom:1px solid rgba(190,210,236,.095);gap:8px}.cost-composition-name{font-size:10.8px;color:rgba(232,239,249,.80)}.cost-composition-amount{font-size:11px;color:#fbfdff;text-align:right;font-variant-numeric:tabular-nums}.cost-composition-share{font-size:10px;color:rgba(220,231,247,.58);text-align:right;font-variant-numeric:tabular-nums}.cost-composition-total{border-top:1px solid rgba(190,210,236,.16);padding-top:7px}.cost-composition-total-label{color:rgba(232,239,249,.82)}.cost-composition-total .cost-composition-share{color:rgba(220,231,247,.48)}
.horizon-smooth-plot{background:linear-gradient(to top,rgba(208,224,248,.070) 1px,transparent 1px) 0 0/100% 25%;border:0}.horizon-smooth-bar{opacity:.86}.horizon-smooth-bar.other{opacity:.72}.horizon-smooth-label{color:rgba(220,231,247,.68)}
@media (max-width:1500px){.module-shell[data-module-shell="overview"] .summary-grid.overview-kpi-strip{grid-template-columns:repeat(4,minmax(0,1fr))}}
@media (max-width:1180px){.monthly-actual-trend,.cost-mix-panel,.report-monthly-actuals,.report-forecast-horizon{height:auto;min-height:0}.monthly-actual-trend .cost-mini-chart,.report-monthly-actuals .cost-mini-chart,.report-forecast-horizon .horizon-smooth-plot{height:216px;min-height:216px}.cost-composition-row,.cost-composition-total{grid-template-columns:10px minmax(0,1fr) minmax(92px,116px) minmax(38px,50px)}}
@media (max-width:760px){.content{padding:10px}.summary-card{min-height:58px}.module-shell[data-module-shell="overview"] .summary-grid.overview-kpi-strip{grid-template-columns:repeat(2,minmax(0,1fr))}.table td{height:var(--list-row-compact-min)}}

/* PASS161 — Surface simplification and UI repair
   Removes remaining inner-frame/"card-in-card" chrome, fixes list-count chips,
   and restores professional reading rhythm without changing layout or data logic. */
:root{
  --line:rgba(202,220,244,.18);
  --line-soft:rgba(202,220,244,.095);
  --line-hair:rgba(202,220,244,.072);
  --row-line:rgba(202,220,244,.105);
  --surface:#162235;
  --surface2:#1b2940;
  --surface3:#223247;
  --text:#f7faff;
  --text-soft:#dde8f7;
  --muted:#b8c6da;
  --muted2:#91a1b8;
}
/* Count/show controls are metadata, not pills. This repairs the square "Showing x of x" chrome everywhere. */
.list-controls,
.detail-section-head .list-controls,
.module-section-tools .list-controls,
.action-bar-end .list-controls,
.overview-section-actions .list-controls,
.list-header-actions .list-controls{
  display:inline-flex;
  align-items:center;
  justify-content:flex-end;
  gap:8px;
  margin:0;
  padding:0;
  width:auto;
  min-width:0;
  background:transparent;
  border:0;
  border-radius:0;
  box-shadow:none;
}
.list-controls .list-count-chip,
.list-count-chip,
.action-bar-end>.list-count-chip,
.module-section-tools>.list-count-chip,
.overview-section-actions>.list-count-chip{
  display:inline-flex;
  align-items:center;
  min-height:0;
  height:auto;
  padding:0;
  border:0;
  border-radius:0;
  background:transparent;
  box-shadow:none;
  color:rgba(216,228,244,.56);
  font-size:9.5px;
  line-height:1.2;
  font-weight:850;
  letter-spacing:.015em;
  white-space:nowrap;
}
.list-controls .btn,
.list-controls .list-toggle-btn{
  min-height:0;
  height:auto;
  padding:0;
  border:0;
  background:transparent;
  box-shadow:none;
  color:rgba(196,211,236,.72);
  font-size:9.5px;
  line-height:1.2;
  font-weight:900;
}
.list-controls .btn:hover,.list-controls .list-toggle-btn:hover{color:var(--text);background:transparent;border:0}
/* Keep ordinary data chips as chips, but make archive/admin showing-counts plain when migrated to list-count-chip. */
.action-bar-end>.data-chip:first-child:has(+ .btn),
.module-section-tools>.data-chip:first-child:has(+ .btn){
  background:transparent;
  border-color:transparent;
  box-shadow:none;
}

/* Surface model: outer cards own the frame; charts/tables/lists do not create new card levels. */
.detail-section,.cockpit-card,.soft-card,.platform-card,.platform-pane,.overview-item{
  border-color:var(--line-soft);
  background:linear-gradient(180deg,rgba(255,255,255,.044),rgba(255,255,255,.019));
  box-shadow:inset 0 1px 0 rgba(255,255,255,.026);
}
.detail-section-head{border-bottom:0;padding-bottom:0;margin-bottom:2px}
.detail-section-title{color:var(--text);letter-spacing:-.012em}.helper-text{color:rgba(216,228,244,.68)}

/* Analytics content should read as zones on one surface, not nested panels. */
.cost-mini-chart,
.horizon-smooth-plot,
.cockpit-chart,
.visual-section .cost-mini-chart,
.report-monthly-actuals .cost-mini-chart,
.report-forecast-horizon .horizon-smooth-plot{
  border:0;
  border-radius:0;
  background:transparent;
  box-shadow:none;
}
.cost-trend-area,
.cockpit-chart .cost-trend-area{
  border:0;
  border-radius:0;
  background:transparent;
  box-shadow:none;
  padding:10px 6px 8px 0;
}
.cost-trend-plot{border-radius:0}.cost-trend-grid-line{stroke:rgba(220,232,250,.115)}
.cost-trend-months span,.cost-trend-yaxis span{color:rgba(220,232,250,.62)}

/* Remove table inner-card feel while keeping row readability. */
.table-wrap,
.detail-section>.table-wrap,
.cockpit-card>.table-wrap,
.flow-list-section>.table-wrap,
.module-table>.table-wrap,
.planned-overview-ledger>.table-wrap{
  border:0;
  border-radius:0;
  background:transparent;
  box-shadow:none;
  overflow:hidden;
}
.table th{
  height:32px;
  background:rgba(255,255,255,.034);
  border-bottom:1px solid var(--row-line);
  color:rgba(219,230,247,.70);
}
.table td{border-bottom:1px solid var(--row-line);color:rgba(236,242,252,.88)}
.table tbody tr:last-child td{border-bottom:0}.table tbody tr:hover td{background:rgba(137,165,212,.055)}
.primary-line{color:var(--text)}.secondary-line{color:rgba(216,228,244,.67)}.tertiary-line{color:rgba(216,228,244,.49)}

/* Cost composition: fixed financial grid, clear columns, no box-inside-box. */
.cost-composition{gap:7px;align-self:stretch;align-content:start}
.cost-composition-bar{
  min-height:24px;
  border:0;
  border-radius:6px;
  background:rgba(255,255,255,.035);
  box-shadow:none;
  overflow:hidden;
}
.cost-composition-segment{border-right:1px solid rgba(8,18,32,.42);font-size:10.4px;font-weight:950}
.cost-composition-segment:last-child{border-right:0}
.cost-composition-segment.is-zero{min-width:8px;opacity:.62;filter:saturate(.75)}
.cost-composition-rows{display:grid;gap:0}
.cost-composition-row,
.cost-composition-total{
  display:grid;
  grid-template-columns:10px minmax(0,1fr) minmax(104px,128px) minmax(48px,58px);
  gap:8px;
  align-items:center;
  min-height:28px;
  padding:4px 0;
  border-bottom:1px solid var(--line-hair);
}
.cost-composition-name{color:rgba(235,242,252,.80);font-size:10.7px;font-weight:850}
.cost-composition-amount,.cost-composition-share{font-variant-numeric:tabular-nums;text-align:right}
.cost-composition-amount{color:#f7faff;font-size:10.9px;font-weight:950}
.cost-composition-share{color:rgba(216,228,244,.55);font-size:10px;font-weight:850}
.cost-composition-total{border-top:1px solid rgba(202,220,244,.15);border-bottom:0;margin-top:3px;padding-top:6px}
.cost-composition-total::before{content:'';width:7px;height:7px}.cost-composition-total-label{color:rgba(235,242,252,.78);font-size:10.8px;font-weight:950}
.cost-composition-total .cost-composition-share{color:rgba(216,228,244,.50)}

/* Make Cost pulse read as one analytic surface: chart + split + actual rows. */
.cockpit-cost .cockpit-visual-row{gap:18px;align-items:start;min-height:0}
.cockpit-cost .cockpit-chart{min-height:0;padding:0;border:0;background:transparent}
.cockpit-cost .cost-mini-chart{height:152px;min-height:152px;padding:4px 0 0}
.cockpit-cost .cockpit-split{padding-top:2px;align-self:start}
.cockpit-cost .list-meta-row{margin-top:12px;padding-top:10px;border-top:1px solid var(--line-hair)}
.cockpit-cost .compact-ledger-table{margin-top:0}

/* Chart pair contract: same optical height, same header rhythm. */
.monthly-actual-trend,.cost-mix-panel{height:282px;min-height:282px;grid-template-rows:42px minmax(0,1fr)}
.monthly-actual-trend .cost-mini-chart{height:210px;min-height:210px}
.report-monthly-actuals,.report-forecast-horizon{height:322px;min-height:322px;grid-template-rows:42px minmax(0,1fr)}
.report-monthly-actuals .cost-mini-chart,.report-forecast-horizon .horizon-smooth-plot{height:248px;min-height:248px}
.horizon-smooth-plot{padding:8px 2px 4px;background:transparent}.horizon-smooth-bars{min-height:170px}.horizon-smooth-bar{box-shadow:none}

/* KPI status remains semantic but subtle. No color blocks. */
.summary-card{border-left-width:3px;background:linear-gradient(180deg,rgba(255,255,255,.041),rgba(255,255,255,.018));box-shadow:inset 0 1px 0 rgba(255,255,255,.024)}
.summary-card .value{color:#fbfdff}.summary-card .sub{color:rgba(218,230,246,.70)}.summary-trend{color:color-mix(in srgb,var(--metric-accent) 88%,#f5f8ff)}
.summary-icon{background:rgba(255,255,255,.035);border-color:color-mix(in srgb,var(--metric-accent) 22%,rgba(255,255,255,.08))}

/* Admin/operations panels use the same flat table/list reading model. */
.storage-admin-panel .action-bar-end,.detail-section .action-bar-end{gap:10px}.empty{background:transparent;border-color:rgba(202,220,244,.13);color:rgba(216,228,244,.62)}
@media (max-width:1180px){
  .monthly-actual-trend,.cost-mix-panel,.report-monthly-actuals,.report-forecast-horizon{height:auto;min-height:0}
  .monthly-actual-trend .cost-mini-chart,.report-monthly-actuals .cost-mini-chart,.report-forecast-horizon .horizon-smooth-plot{height:210px;min-height:210px}
  .cost-composition-row,.cost-composition-total{grid-template-columns:10px minmax(0,1fr) minmax(92px,114px) minmax(42px,52px)}
}

/* PASS171 — Full UI cascade sanitation and design system lock
   Single current UI authority for page shells, KPI cards, filter bars, tables,
   analytics cards, cost composition and right-side detail overlays. This replaces
   the stacked analytics/layout passes that were fighting each other in the cascade. */
:root{
  --ui-gap-xs:8px;
  --ui-gap-sm:10px;
  --ui-gap:14px;
  --ui-gap-lg:18px;
  --ui-card-radius:18px;
  --ui-card-pad:14px;
  --ui-control-h:38px;
  --ui-kpi-min-h:72px;
  --ui-table-row-min:46px;
  --ui-table-head-h:32px;
  --ui-section-line:rgba(202,220,244,.105);
  --ui-section-line-soft:rgba(202,220,244,.072);
  --ui-surface-shadow:0 18px 52px rgba(0,0,0,.16);

  --analytics-min-column:680px;
  --analytics-report-card-h:clamp(372px,36vh,430px);
  --analytics-report-plot-h:clamp(258px,27vh,318px);
  --analytics-cost-card-h:clamp(318px,32vh,372px);
  --analytics-cost-plot-h:clamp(226px,25vh,276px);
  --analytics-cockpit-plot-h:clamp(168px,19vh,210px);
  --analytics-grid-gap:clamp(10px,.75vw,14px);

  --composition-dot-col:10px;
  --composition-amount-col:12ch;
  --composition-share-col:6ch;
  --composition-row-gap:10px;
  --composition-row-h:28px;
  --composition-bar-h:28px;
  --composition-stack-gap:9px;
  --composition-total-line:rgba(202,220,244,.13);

  --detail-workspace-top:calc(var(--topbar) + 14px);
  --detail-overlay-top:var(--detail-workspace-top);
  --detail-overlay-right:var(--gutter);
  --detail-overlay-bottom:var(--gutter);
}

/* Page/module shell primitives */
.module-shell[data-module-shell="overview"],
.module-shell[data-module-shell="costsOverview"],
.module-shell[data-module-shell="costsReports"],
.module-shell[data-module-shell="cases"],
.module-shell[data-module-shell="serviceCosts"],
.module-shell[data-module-shell="otherCosts"],
.module-shell[data-module-shell="plannedCosts"]{
  overflow:visible;
}
.cockpit-card,
.summary-card,
.detail-section,
.soft-card,
.platform-card,
.platform-pane{
  border-radius:var(--ui-card-radius);
  min-width:0;
}
.summary-grid{
  gap:var(--ui-gap-sm);
  align-items:stretch;
}
.summary-grid>.summary-card{
  min-height:var(--ui-kpi-min-h);
  display:grid;
  align-content:space-between;
  overflow:hidden;
}
.report-package-grid>.report-package-card,
.report-year-metrics>.report-metric-card{
  min-height:var(--ui-kpi-min-h);
}

/* Filter bars and list controls */
.module-filters,
.filters-panel,
.filter-grid,
.filter-grid.wide{
  min-width:0;
}
.module-filters{
  align-items:center;
  gap:var(--ui-gap-sm);
}
.input,
.select,
.btn{
  min-height:var(--ui-control-h);
}
.list-controls.is-complete .list-count-chip,
.detail-section-head .list-count-chip,
.section-stack .list-count-chip,
.detail-list-head .list-count-chip,
.attachments-head .list-count-chip,
.history-head .list-count-chip{
  background:transparent;
  border:0;
  border-radius:0;
  box-shadow:none;
  padding:0;
}

/* Table/list primitive */
.table-wrap,
.table-wrap.tight-table{
  min-width:0;
  max-width:100%;
  overflow:auto;
  scrollbar-width:thin;
}
.table.ledger-table{
  table-layout:fixed;
  width:100%;
}
.table.ledger-table th,
.table.ledger-table td{
  min-width:0;
  vertical-align:middle;
}
.table.ledger-table thead th{
  height:var(--ui-table-head-h);
}
.table.ledger-table tbody tr{
  min-height:var(--ui-table-row-min);
}
.row-title,
.row-sub,
.row-meta,
.module-mini-note,
.table.ledger-table td,
.table.ledger-table th{
  overflow-wrap:anywhere;
}

/* Responsive workspace grids */
.cost-overview-flow,
.report-flow-grid,
.overview-cockpit-columns.enterprise-overview,
.uniform-two-column-flow{
  grid-template-columns:repeat(auto-fit,minmax(min(100%,var(--analytics-min-column)),1fr));
  align-items:start;
  gap:var(--analytics-grid-gap);
}
.cost-overview-flow>.flow-column,
.report-flow-grid>.flow-column,
.overview-cockpit-columns.enterprise-overview>.overview-cockpit-column{
  min-width:0;
  max-width:100%;
  display:grid;
  gap:var(--analytics-grid-gap);
  align-content:start;
}

/* Analytics card primitives */
.monthly-actual-trend,
.cost-mix-panel,
.report-monthly-actuals,
.report-forecast-horizon{
  display:grid;
  grid-template-rows:auto minmax(0,1fr);
  align-content:stretch;
  min-width:0;
  overflow:hidden;
  box-sizing:border-box;
}
.cost-overview-flow>.flow-column>.monthly-actual-trend:first-child,
.cost-overview-flow>.flow-column>.cost-mix-panel:first-child{
  height:var(--analytics-cost-card-h);
  min-height:var(--analytics-cost-card-h);
}
.report-flow-grid>.flow-column>.report-monthly-actuals:first-child,
.report-flow-grid>.flow-column>.report-forecast-horizon:first-child{
  height:var(--analytics-report-card-h);
  min-height:var(--analytics-report-card-h);
}
.monthly-actual-trend .cost-mini-chart,
.monthly-actual-trend .cost-trend-area,
.report-monthly-actuals .cost-mini-chart,
.report-monthly-actuals .cost-trend-area,
.report-forecast-horizon .horizon-chart,
.report-forecast-horizon .horizon-smooth-plot{
  min-height:0;
  max-height:none;
  width:100%;
  max-width:100%;
  box-sizing:border-box;
}
.cost-overview-flow .monthly-actual-trend .cost-mini-chart,
.cost-overview-flow .monthly-actual-trend .cost-trend-area{
  height:100%;
}
.report-flow-grid .report-monthly-actuals .cost-mini-chart,
.report-flow-grid .report-monthly-actuals .cost-trend-area{
  height:100%;
}
.cost-trend-area,
.cockpit-chart .cost-trend-area{
  background:transparent;
  border:0;
  box-shadow:none;
  grid-template-columns:clamp(30px,2.6vw,38px) minmax(0,1fr);
  grid-template-rows:minmax(0,1fr) 22px;
  gap:7px 10px;
  padding:12px 10px 8px 2px;
  overflow:hidden;
}
.cost-trend-plot,
.cost-trend-plot svg{
  min-width:0;
  min-height:0;
  width:100%;
  height:100%;
  max-width:100%;
  max-height:100%;
  overflow:hidden;
}
.cost-trend-grid-line{stroke:rgba(208,224,248,.13)}
.cost-trend-line{stroke-width:2.05}
.cost-trend-yaxis,
.cost-trend-yaxis span,
.cost-trend-months,
.cost-trend-months span,
.horizon-smooth-label,
.horizon-legend,
.report-legend{
  font-stretch:normal;
  letter-spacing:0;
  text-transform:none;
  transform:none;
  font-kerning:normal;
}
.cost-trend-yaxis,
.cost-trend-months{
  min-width:0;
  overflow:hidden;
  font-size:9.5px;
  color:rgba(220,231,247,.62);
}
.cost-trend-months span{
  min-width:0;
  max-width:100%;
  text-align:center;
  overflow:hidden;
  text-overflow:clip;
}

/* Forecast horizon primitive */
.report-forecast-horizon .horizon-chart,
.report-forecast-horizon .horizon-chart.horizon-smooth,
.horizon-chart.horizon-smooth{
  display:grid;
  grid-template-rows:auto minmax(0,1fr);
  gap:10px;
  min-width:0;
  min-height:0;
  height:100%;
  max-width:100%;
  overflow:hidden;
}
.horizon-smooth .horizon-legend,
.report-forecast-horizon .horizon-legend{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:8px 12px;
  min-width:0;
  line-height:1.15;
}
.horizon-smooth .horizon-legend span,
.report-forecast-horizon .horizon-legend span{
  min-width:0;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}
.horizon-scale{
  flex:1 1 100%;
  margin-left:0;
  text-align:right;
  color:rgba(216,228,244,.52);
}
.horizon-smooth-plot,
.report-forecast-horizon .horizon-smooth-plot{
  height:100%;
  min-height:0;
  width:100%;
  max-width:100%;
  padding:8px 4px 4px;
  overflow-x:auto;
  overflow-y:hidden;
  overscroll-behavior-x:contain;
  scrollbar-width:thin;
  scrollbar-gutter:stable;
  contain:layout paint;
  background:transparent;
  border:0;
  box-shadow:none;
}
.horizon-smooth-grid,
.report-forecast-horizon .horizon-smooth-grid{
  display:grid;
  grid-template-columns:repeat(var(--horizon-years,6),minmax(64px,1fr));
  min-width:max(100%,calc(var(--horizon-years,6) * 68px));
  gap:6px;
  height:100%;
  align-items:stretch;
}
.horizon-smooth-year,
.report-forecast-horizon .horizon-smooth-year{
  min-width:0;
  min-height:0;
  height:100%;
  display:grid;
  grid-template-rows:minmax(0,1fr) 18px;
  gap:6px;
  padding:0 3px;
  overflow:hidden;
  cursor:help;
}
.horizon-smooth-bars,
.report-forecast-horizon .horizon-smooth-bars{
  height:100%;
  min-height:0;
  display:flex;
  align-items:flex-end;
  justify-content:center;
  gap:clamp(3px,.45vw,6px);
  padding-top:8px;
  border-bottom:1px solid rgba(202,220,244,.085);
  overflow:hidden;
}
.horizon-smooth-bar,
.report-forecast-horizon .horizon-smooth-bar{
  width:clamp(8px,1.05vw,14px);
  max-width:18%;
  min-height:0;
  border-radius:9px 9px 3px 3px;
  box-shadow:none;
}
.horizon-smooth-bar.other{background:var(--chart-good)}
.horizon-smooth-bar.service-forecast{background:var(--chart-plan)}
.horizon-smooth-bar.planned-costs{background:var(--chart-warn)}
.horizon-smooth-bar.is-zero{height:0;min-height:0;opacity:.22}
.horizon-smooth-label,
.report-forecast-horizon .horizon-smooth-label{
  line-height:18px;
  font-size:9.7px;
  font-weight:850;
  color:rgba(216,228,244,.68);
  text-align:center;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}
.horizon-smooth-year:hover,
.horizon-smooth-year:focus-visible{
  background:rgba(145,168,210,.050);
}
.horizon-smooth-year:hover .horizon-smooth-bar,
.horizon-smooth-year:focus-visible .horizon-smooth-bar{
  filter:saturate(1.04) brightness(1.06);
}
.horizon-smooth-year:hover .horizon-smooth-label,
.horizon-smooth-year:focus-visible .horizon-smooth-label{
  color:rgba(247,250,255,.82);
}
.horizon-legend i.service,.report-legend i.service{background:var(--chart-info)}
.horizon-legend i.other,.report-legend i.other{background:var(--chart-good)}
.horizon-legend i.service-forecast,.report-legend i.service-forecast{background:var(--chart-plan)}
.horizon-legend i.planned-costs,.report-legend i.planned-costs{background:var(--chart-warn)}

/* Cost composition primitive: one grid for Cost mix, Selected-year split and Cost pulse. */
.cost-composition,
.cost-mix-panel .cost-composition,
.report-split-panel .cost-composition,
.cockpit-split .cost-composition,
.cockpit-cost .cost-composition{
  display:grid;
  grid-template-rows:auto auto auto;
  gap:var(--composition-stack-gap);
  align-content:start;
  min-width:0;
  min-height:0;
  height:auto;
  width:100%;
}
.cost-overview-flow>.flow-column>.cost-mix-panel:first-child .cost-composition{
  align-self:center;
  transform:translateY(3px);
}
.report-split-panel .cost-composition,
.cockpit-split .cost-composition{
  align-self:start;
  transform:none;
}
.cost-composition-bar{
  display:flex;
  width:100%;
  min-width:0;
  height:var(--composition-bar-h);
  min-height:var(--composition-bar-h);
  max-height:var(--composition-bar-h);
  overflow:hidden;
  border-radius:8px;
  border:1px solid rgba(190,210,236,.10);
  background:rgba(5,14,26,.15);
}
.cost-composition-segment{
  flex:0 0 max(8px,calc(var(--pct,0) * 1%));
  min-width:0;
  display:grid;
  place-items:center;
  border-right:1px solid rgba(8,18,32,.42);
  color:#f8fbff;
  font-size:10.4px;
  font-weight:950;
  font-variant-numeric:tabular-nums;
  font-feature-settings:"tnum" 1,"lnum" 1;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:clip;
}
.cost-composition-segment:last-child{border-right:0}
.cost-composition-segment.is-zero{min-width:8px;opacity:.62;filter:saturate(.75)}
.cost-composition-rows{
  display:grid;
  gap:0;
  align-content:start;
  min-width:0;
}
.cost-composition-row,
.cost-composition-total,
.cockpit-cost .cost-composition-row,
.cockpit-cost .cost-composition-total,
.cost-mix-panel .cost-composition-row,
.cost-mix-panel .cost-composition-total,
.report-split-panel .cost-composition-row,
.report-split-panel .cost-composition-total,
.cockpit-split .cost-composition-row,
.cockpit-split .cost-composition-total{
  display:grid;
  grid-template-columns:var(--composition-dot-col) minmax(0,1fr) var(--composition-amount-col) var(--composition-share-col);
  column-gap:var(--composition-row-gap);
  align-items:center;
  min-width:0;
  min-height:var(--composition-row-h);
  padding:3px 0;
  border:0;
  background:transparent;
  box-shadow:none;
}
.cost-composition-row .cost-composition-dot{
  grid-column:1;
  justify-self:center;
  align-self:center;
  opacity:.92;
}
.cost-composition-row .cost-composition-name{
  grid-column:2;
  justify-self:stretch;
}
.cost-composition-row .cost-composition-amount,
.cost-composition-row strong.cost-composition-amount{
  grid-column:3;
}
.cost-composition-row .cost-composition-share,
.cost-composition-row small.cost-composition-share{
  grid-column:4;
}
.cost-composition-total{
  margin-top:7px;
  padding-top:8px;
  border-top:1px solid var(--composition-total-line);
}
.cost-composition-total::before{display:none;content:none}
.cost-composition-total .cost-composition-total-label{grid-column:2;justify-self:start}
.cost-composition-total .cost-composition-amount{grid-column:3;font-size:11.4px;font-weight:950}
.cost-composition-total .cost-composition-share{grid-column:4;color:rgba(216,228,244,.50)}
.cost-composition-name,
.cost-composition-total-label,
.cost-composition-amount,
.cost-composition-share{
  min-width:0;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}
.cost-composition-name,
.cost-composition-total-label{
  color:rgba(235,242,252,.80);
  font-size:10.7px;
  font-weight:850;
}
.cost-composition-amount,
.cost-composition-share{
  justify-self:end;
  text-align:right;
  font-variant-numeric:tabular-nums;
  font-feature-settings:"tnum" 1,"lnum" 1;
}
.cost-composition-amount{color:#f7faff;font-size:10.9px;font-weight:950}
.cost-composition-share{color:rgba(216,228,244,.56);font-size:10px;font-weight:850}
.cost-composition-row:hover,
.cost-composition-row:focus-visible{
  background:transparent;
  border-color:transparent;
  box-shadow:none;
}

/* Overview Cost pulse composition */
.cockpit-cost .cockpit-visual-row{
  min-height:0;
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(360px,.94fr);
  gap:var(--ui-gap-lg);
  align-items:start;
}
.cockpit-cost .cockpit-chart,
.cockpit-cost .cockpit-split{
  min-width:0;
  max-width:100%;
}
.cockpit-cost .cockpit-chart{
  min-height:var(--analytics-cockpit-plot-h);
  padding:0;
  border:0;
  background:transparent;
  box-shadow:none;
}
.cockpit-cost .cockpit-chart .cost-trend-area{
  height:var(--analytics-cockpit-plot-h);
  min-height:var(--analytics-cockpit-plot-h);
  max-height:none;
  grid-template-columns:clamp(28px,2.4vw,34px) minmax(0,1fr);
  grid-template-rows:minmax(0,1fr) 21px;
  gap:6px 9px;
  padding:9px 8px 6px 0;
}
.cockpit-cost .cockpit-split{
  align-self:start;
  padding-top:0;
}
.cockpit-cost .cost-composition{
  gap:8px;
}

/* Chart hover semantics */
.chart-tooltip-layer{
  border-color:rgba(202,220,244,.22);
  background:linear-gradient(180deg,rgba(14,26,43,.988),rgba(7,17,31,.996));
}
.chart-tooltip-title,
.chart-tooltip-row{
  display:grid;
  grid-template-columns:9px minmax(0,1fr);
  column-gap:8px;
  align-items:center;
  min-width:0;
}
.chart-tooltip-title{margin-bottom:7px;color:#f7faff}
.chart-tooltip-title span:last-child,
.chart-tooltip-label{
  min-width:0;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.chart-tooltip-row{
  justify-content:stretch;
  gap:0 8px;
  color:rgba(220,231,247,.74);
  font-size:11.5px;
  line-height:1.45;
}
.chart-tooltip-dot{
  width:7px;
  height:7px;
  border-radius:999px;
  justify-self:center;
  background:rgba(220,231,247,.44);
  box-shadow:0 0 0 2px rgba(220,231,247,.055);
}
.chart-tooltip-dot[data-tone="service"]{background:var(--chart-info);box-shadow:0 0 0 2px color-mix(in srgb,var(--chart-info) 20%,transparent)}
.chart-tooltip-dot[data-tone="other"]{background:var(--chart-good);box-shadow:0 0 0 2px color-mix(in srgb,var(--chart-good) 20%,transparent)}
.chart-tooltip-dot[data-tone="planned-service"]{background:var(--chart-plan);box-shadow:0 0 0 2px color-mix(in srgb,var(--chart-plan) 20%,transparent)}
.chart-tooltip-dot[data-tone="planned-other"]{background:var(--chart-warn);box-shadow:0 0 0 2px color-mix(in srgb,var(--chart-warn) 20%,transparent)}
.chart-tooltip-dot[data-tone="share"]{background:rgba(220,231,247,.56);box-shadow:none}
.chart-tooltip-dot[data-tone="total"]{background:rgba(247,250,255,.72);box-shadow:none}
.cost-trend-hit span{
  background:var(--chart-info);
  box-shadow:0 0 0 2px color-mix(in srgb,var(--chart-info) 18%,transparent);
}
.cost-trend-hit:hover::before,
.cost-trend-hit:focus-visible::before{
  background:linear-gradient(180deg,transparent,color-mix(in srgb,var(--chart-info) 32%,transparent),transparent);
}

/* Right detail overlay: overlay only, no layout squeeze. */
.content.with-detail:not(.mobile-detail-only){
  grid-template-columns:minmax(0,1fr);
}
.content.with-detail:not(.mobile-detail-only)>.workspace{
  grid-column:1;
  min-width:0;
  max-width:100%;
}
.content.with-detail:not(.mobile-detail-only)>.detail:not(.hidden),
.detail:not(.hidden){
  position:fixed;
  top:var(--detail-overlay-top);
  right:var(--detail-overlay-right);
  bottom:var(--detail-overlay-bottom);
  left:auto;
  width:min(var(--detail-overlay-w),calc(100vw - var(--rail) - (var(--gutter) * 2)));
  max-width:calc(100vw - var(--rail) - (var(--gutter) * 2));
  max-height:none;
  z-index:1260;
  align-self:auto;
  grid-column:auto;
  transform:none;
  margin-top:0;
  box-shadow:0 26px 84px rgba(0,0,0,.42),0 0 0 1px rgba(202,220,244,.10);
}
.detail-body,
.detail-section,
.detail-grid{
  min-width:0;
}

@media (max-width:1500px){
  :root{
    --analytics-min-column:100%;
    --analytics-report-card-h:clamp(342px,36vh,390px);
    --analytics-report-plot-h:clamp(232px,27vh,286px);
    --analytics-cost-card-h:clamp(306px,32vh,352px);
    --analytics-cost-plot-h:clamp(214px,25vh,260px);
    --analytics-cockpit-plot-h:clamp(162px,18vh,192px);
    --composition-amount-col:11ch;
    --composition-share-col:5.5ch;
    --composition-row-gap:8px;
  }
  .module-shell[data-module-shell="overview"] .summary-grid.overview-kpi-strip,
  .module-shell[data-module-shell="costsOverview"] .summary-grid.cost-kpi-strip,
  .module-shell[data-module-shell="costsReports"] .summary-grid{
    grid-template-columns:repeat(auto-fit,minmax(min(100%,176px),1fr));
  }
  .cockpit-cost .cockpit-visual-row{
    grid-template-columns:1fr;
  }
}
@media (max-width:1180px){
  :root{
    --analytics-report-card-h:auto;
    --analytics-cost-card-h:auto;
    --composition-dot-col:9px;
    --composition-amount-col:10ch;
    --composition-share-col:5ch;
    --composition-row-gap:7px;
    --composition-bar-h:26px;
  }
  .cost-overview-flow>.flow-column>.monthly-actual-trend:first-child,
  .cost-overview-flow>.flow-column>.cost-mix-panel:first-child,
  .report-flow-grid>.flow-column>.report-monthly-actuals:first-child,
  .report-flow-grid>.flow-column>.report-forecast-horizon:first-child{
    height:auto;
    min-height:0;
  }
  .monthly-actual-trend .cost-mini-chart,
  .monthly-actual-trend .cost-trend-area,
  .report-monthly-actuals .cost-mini-chart,
  .report-monthly-actuals .cost-trend-area,
  .report-forecast-horizon .horizon-smooth-plot{
    height:220px;
    min-height:220px;
  }
  .cost-overview-flow>.flow-column>.cost-mix-panel:first-child .cost-composition{
    align-self:start;
    transform:none;
  }
  .horizon-scale{text-align:left}
}
/* PASS177 — Desktop density-before-stack adaptive layout lock.
   Corrects PASS176's over-eager stacking. Laptop/Chromebook widths keep the
   desktop information architecture longer by tightening density before any
   major section stacks. Mobile operations mode remains a separate redesign. */
:root{
  --viewport-matrix-lock:1;
  --density-before-stack-lock:1;
  --viewport-density-mode:normal;
  --viewport-kpi-min:176px;
  --viewport-kpi-gap:10px;
  --viewport-table-min:var(--table-min);
  --viewport-filter-min:132px;
  --viewport-shell-max:none;
  --composition-panel-min:320px;
}
.content,
.workspace,
.module-shell,
.module-head,
.module-filters,
.summary-grid,
.table-wrap,
.cost-overview-flow,
.report-flow-grid,
.overview-cockpit-columns.enterprise-overview,
.uniform-two-column-flow,
.cockpit-cost .cockpit-visual-row{
  min-width:0;
  max-width:100%;
}
.workspace{
  width:100%;
  max-width:var(--viewport-shell-max);
  margin-inline:auto;
}
.module-shell{overflow:hidden}
.summary-grid,
.summary-grid.compact,
.summary-grid.overview-kpi-strip,
.summary-grid.cost-kpi-strip,
.report-year-metrics,
.overview-kpis,
.module-shell[data-module-shell="overview"] .summary-grid.overview-kpi-strip,
.module-shell[data-module-shell="costsOverview"] .summary-grid.cost-kpi-strip,
.module-shell[data-module-shell="costsReports"] .summary-grid,
.module-shell[data-module-shell="cases"] .summary-grid,
.module-shell[data-module-shell="assets"] .summary-grid,
.module-shell[data-module-shell="service"] .summary-grid{
  grid-template-columns:repeat(auto-fit,minmax(min(100%,var(--viewport-kpi-min)),1fr));
  gap:var(--viewport-kpi-gap);
}
.module-filters,
.filters-panel{overflow:hidden}
.module-filter-left,
.module-filter-right,
.cost-hub-controls,
.report-export-controls,
.action-bar,
.action-bar-start,
.action-bar-end{
  min-width:0;
  max-width:100%;
}
.module-filter-left > *,
.module-filter-right > *,
.cost-hub-controls > *,
.report-export-controls > *{min-width:0}
.module-filters .module-search,
.cost-hub-controls .module-search{
  flex:1 1 min(100%,var(--filter-search-w));
  min-width:min(100%,var(--viewport-filter-min));
}
.module-filters select,
.module-filters .select,
.module-filters input[type="date"],
.cost-hub-controls select,
.cost-hub-controls .select,
.cost-hub-controls input[type="date"],
.report-export-controls select,
.report-export-controls .select{
  flex:0 1 var(--filter-control-w);
  min-width:min(100%,var(--viewport-filter-min));
}
.table-wrap{
  overflow-x:auto;
  overflow-y:visible;
  overscroll-behavior-x:contain;
  scrollbar-gutter:stable;
}
.table,
.table.ledger-table,
.compact-ledger-table{min-width:min(var(--viewport-table-min),100%)}
.cost-trend-yaxis,
.cost-trend-months,
.horizon-smooth-label,
.horizon-legend,
.report-legend,
.cost-composition-name,
.cost-composition-amount,
.cost-composition-share{
  font-stretch:normal;
  letter-spacing:0;
  transform:none;
  min-width:0;
}
.content.with-detail:not(.mobile-detail-only)>.detail:not(.hidden),
.detail:not(.hidden){
  top:var(--detail-overlay-top);
  right:var(--detail-overlay-right);
  bottom:var(--detail-overlay-bottom);
  width:min(var(--detail-overlay-w),calc(100vw - var(--rail) - (var(--gutter) * 2)));
  max-width:calc(100vw - var(--rail) - (var(--gutter) * 2));
}
.cost-overview-flow,
.report-flow-grid,
.overview-cockpit-columns.enterprise-overview,
.uniform-two-column-flow{
  grid-template-columns:repeat(auto-fit,minmax(min(100%,var(--analytics-min-column)),1fr));
}
.cockpit-cost .cockpit-visual-row{
  grid-template-columns:minmax(0,1fr) minmax(var(--composition-panel-min),.86fr);
}

@media (min-width:2300px){
  :root{
    --viewport-shell-max:none;
    --analytics-min-column:760px;
    --analytics-grid-gap:16px;
    --viewport-kpi-min:196px;
    --viewport-kpi-gap:12px;
    --composition-panel-min:340px;
    --analytics-report-card-h:clamp(386px,32vh,456px);
    --analytics-cost-card-h:clamp(334px,30vh,392px);
    --analytics-cockpit-plot-h:clamp(184px,17vh,226px);
  }
}
@media (min-width:1800px) and (max-width:2299px){
  :root{
    --viewport-shell-max:none;
    --analytics-min-column:700px;
    --analytics-grid-gap:15px;
    --viewport-kpi-min:188px;
    --composition-panel-min:330px;
    --analytics-report-card-h:clamp(376px,34vh,438px);
    --analytics-cost-card-h:clamp(326px,31vh,380px);
  }
}
@media (min-width:1537px) and (max-width:1799px){
  :root{
    --analytics-min-column:600px;
    --analytics-grid-gap:14px;
    --viewport-kpi-min:158px;
    --viewport-table-min:700px;
    --detail-overlay-w:clamp(400px,32vw,570px);
    --composition-panel-min:300px;
    --composition-amount-col:11ch;
    --composition-share-col:5.5ch;
  }
}
@media (min-width:1181px) and (max-width:1536px){
  :root{
    --viewport-density-mode:compact;
  }
  .summary-grid>.summary-card{
    grid-template-rows:auto auto;
    min-height:var(--ui-kpi-min-h);
    padding-block:clamp(8px,.7vw,11px);
    padding-inline:clamp(10px,.9vw,13px);
    gap:4px;
  }
  .summary-card-top{
    grid-template-columns:minmax(0,1fr) auto;
    gap:4px;
    align-items:start;
  }
  .summary-card .label{
    white-space:normal;
    overflow:visible;
    text-overflow:clip;
    line-height:1.08;
    font-size:clamp(8.35px,.33vw + 4.4px,9.25px);
    letter-spacing:.058em;
  }
  .summary-card .value{
    font-size:clamp(15.5px,.58vw + 8px,19px);
    line-height:1.02;
    text-overflow:clip;
  }
  .summary-card-foot{
    min-height:0;
  }
  .summary-card .sub,
  .summary-trend{
    display:none;
  }
  .summary-icon{
    width:clamp(20px,1.45vw,24px);
    height:clamp(20px,1.45vw,24px);
    min-width:clamp(20px,1.45vw,24px);
    border-radius:8px;
  }
  .summary-icon svg{
    width:clamp(12px,.9vw,14px);
    height:clamp(12px,.9vw,14px);
  }
  .module-filters{
    grid-template-columns:minmax(0,1fr) auto;
    align-items:start;
  }
  .module-filter-left,
  .module-filter-right,
  .action-bar-end,
  .overview-section-actions{
    align-items:center;
  }
  .module-filter-right,
  .action-bar-end,
  .overview-section-actions{
    justify-content:flex-end;
  }
}
@media (min-width:1441px) and (max-width:1536px){
  :root{
    --analytics-min-column:540px;
    --analytics-grid-gap:12px;
    --gutter:16px;
    --panel-pad:14px;
    --viewport-kpi-min:146px;
    --viewport-kpi-gap:8px;
    --viewport-table-min:680px;
    --filter-search-w:clamp(180px,21vw,286px);
    --filter-control-w:clamp(122px,14vw,174px);
    --detail-overlay-w:clamp(390px,34vw,550px);
    --composition-panel-min:284px;
    --composition-amount-col:10.4ch;
    --composition-share-col:5.2ch;
    --analytics-report-card-h:clamp(340px,34vh,388px);
    --analytics-cost-card-h:clamp(300px,31vh,348px);
    --analytics-cockpit-plot-h:clamp(152px,17vh,182px);
  }
}
@media (min-width:1367px) and (max-width:1440px){
  :root{
    --sidebar:232px;
    --analytics-min-column:520px;
    --analytics-grid-gap:11px;
    --gutter:14px;
    --panel-pad:13px;
    --viewport-kpi-min:138px;
    --viewport-kpi-gap:8px;
    --viewport-filter-min:116px;
    --viewport-table-min:650px;
    --filter-search-w:clamp(168px,22vw,270px);
    --filter-control-w:clamp(116px,15vw,166px);
    --analytics-report-card-h:clamp(326px,34vh,374px);
    --analytics-cost-card-h:clamp(288px,31vh,334px);
    --analytics-cockpit-plot-h:clamp(144px,17vh,172px);
    --detail-overlay-w:clamp(374px,36vw,520px);
    --composition-panel-min:268px;
    --composition-dot-col:9px;
    --composition-amount-col:10ch;
    --composition-share-col:5ch;
    --composition-row-gap:7px;
  }
  .summary-icon{display:none}
}
@media (min-width:1281px) and (max-width:1366px){
  :root{
    --sidebar:224px;
    --topbar:64px;
    --gutter:12px;
    --panel-pad:12px;
    --gap:11px;
    --analytics-min-column:500px;
    --analytics-grid-gap:10px;
    --viewport-kpi-min:130px;
    --viewport-kpi-gap:7px;
    --viewport-filter-min:108px;
    --viewport-table-min:620px;
    --filter-search-w:clamp(156px,23vw,252px);
    --filter-control-w:clamp(108px,15vw,154px);
    --analytics-report-card-h:clamp(312px,34vh,358px);
    --analytics-cost-card-h:clamp(276px,31vh,318px);
    --analytics-cockpit-plot-h:clamp(136px,17vh,166px);
    --composition-panel-min:246px;
    --composition-dot-col:8px;
    --composition-amount-col:9.4ch;
    --composition-share-col:4.7ch;
    --composition-row-gap:6px;
    --detail-workspace-top:calc(var(--topbar) + var(--gutter));
    --detail-overlay-w:clamp(356px,38vw,486px);
  }
  .summary-icon{display:none}
  .summary-grid>.summary-card{min-height:62px}
  .cost-composition-name,
  .cost-composition-total-label{font-size:10px}
  .cost-composition-amount{font-size:10.25px}
  .cost-composition-share{font-size:9.4px}
  .module-filters{padding:10px}
}
@media (min-width:1181px) and (max-width:1280px){
  :root{
    --sidebar:216px;
    --topbar:64px;
    --gutter:11px;
    --panel-pad:11px;
    --gap:10px;
    --analytics-min-column:488px;
    --analytics-grid-gap:9px;
    --viewport-kpi-min:124px;
    --viewport-kpi-gap:7px;
    --viewport-filter-min:104px;
    --viewport-table-min:600px;
    --filter-search-w:clamp(144px,23vw,232px);
    --filter-control-w:clamp(104px,15vw,144px);
    --analytics-report-card-h:clamp(300px,33vh,342px);
    --analytics-cost-card-h:clamp(266px,30vh,306px);
    --analytics-cockpit-plot-h:clamp(130px,16vh,156px);
    --composition-panel-min:230px;
    --composition-dot-col:8px;
    --composition-amount-col:9ch;
    --composition-share-col:4.5ch;
    --composition-row-gap:6px;
    --composition-bar-h:26px;
    --detail-workspace-top:calc(var(--topbar) + var(--gutter));
    --detail-overlay-w:clamp(342px,40vw,466px);
  }
  .summary-icon{display:none}
  .summary-grid>.summary-card{min-height:60px}
  .summary-card .label{font-size:8.3px;letter-spacing:.052em}
  .summary-card .value{font-size:clamp(14.8px,.55vw + 8px,18px)}
  .module-filters{padding:9px;gap:8px}
  .cost-trend-area,
  .cockpit-chart .cost-trend-area{
    grid-template-columns:28px minmax(0,1fr);
    gap:6px 7px;
    padding-right:5px;
  }
  .horizon-smooth-grid,
  .report-forecast-horizon .horizon-smooth-grid{
    min-width:max(100%,calc(var(--horizon-years,6) * 58px));
    grid-template-columns:repeat(var(--horizon-years,6),minmax(56px,1fr));
  }
}
@media (min-width:981px) and (max-width:1180px){
  :root{
    --analytics-min-column:100%;
    --analytics-grid-gap:10px;
    --viewport-kpi-min:148px;
    --viewport-table-min:580px;
    --detail-workspace-top:calc(var(--topbar) + var(--gutter));
  }
  .cost-overview-flow,
  .report-flow-grid,
  .overview-cockpit-columns.enterprise-overview,
  .uniform-two-column-flow,
  .cockpit-cost .cockpit-visual-row{
    grid-template-columns:1fr;
  }
  .module-filters{
    grid-template-columns:1fr;
  }
  .module-filter-right,
  .action-bar-end,
  .overview-section-actions{
    justify-content:flex-start;
  }
}
@media (min-width:721px) and (max-width:980px){
  :root{
    --viewport-kpi-min:150px;
    --viewport-table-min:560px;
    --analytics-min-column:100%;
    --analytics-report-card-h:auto;
    --analytics-cost-card-h:auto;
    --detail-workspace-top:calc(var(--topbar) + 8px);
  }
  .summary-grid,
  .summary-grid.compact,
  .summary-grid.overview-kpi-strip,
  .summary-grid.cost-kpi-strip,
  .report-year-metrics,
  .overview-kpis{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
  .module-filters{
    grid-template-columns:1fr;
    overflow:visible;
  }
  .module-filter-left,
  .module-filter-right,
  .cost-hub-controls,
  .report-export-controls{
    width:100%;
    justify-content:flex-start;
  }
}
@media (min-width:721px) and (max-height:780px){
  :root{
    --topbar:62px;
    --gutter:10px;
    --panel-pad:11px;
    --ui-kpi-min-h:60px;
    --analytics-report-card-h:clamp(276px,46vh,324px);
    --analytics-cost-card-h:clamp(252px,42vh,296px);
    --analytics-cockpit-plot-h:clamp(126px,23vh,154px);
  }
  .module-shell{gap:9px}
  .summary-grid>.summary-card{min-height:60px}
  .module-filters{min-height:46px;padding:8px}
  .summary-card .sub,
  .summary-trend{display:none}
}
/* PASS178 — Wide-screen shell restore lock.
   Keeps PASS177 density behavior for laptop/Chromebook widths, but restores
   full-width workspace usage on 2300px+ displays. Wide screens must not become
   centered dashboard islands with artificial side margins. */
@media (min-width:1800px){
  :root{
    --viewport-shell-max:none;
  }
  .workspace{
    width:100%;
    max-width:none;
    margin-inline:0;
  }
}

/* PASS179 — KPI content preservation and adaptive wrap lock.
   Corrects PASS177 compact density: KPI cards may tighten, wrap or move to a
   second row, but titles and values must never collapse into a numbers-only
   state on desktop/laptop/Chromebook widths. */
:root{
  --kpi-content-preservation-lock:1;
}
.summary-grid,
.summary-grid.compact,
.summary-grid.overview-kpi-strip,
.summary-grid.cost-kpi-strip,
.report-year-metrics,
.overview-kpis,
.module-shell[data-module-shell="overview"] .summary-grid.overview-kpi-strip,
.module-shell[data-module-shell="costsOverview"] .summary-grid.cost-kpi-strip,
.module-shell[data-module-shell="costsReports"] .summary-grid,
.module-shell[data-module-shell="cases"] .summary-grid,
.module-shell[data-module-shell="assets"] .summary-grid,
.module-shell[data-module-shell="service"] .summary-grid{
  grid-template-columns:repeat(auto-fit,minmax(min(100%,var(--viewport-kpi-min)),1fr));
}
.summary-card{
  grid-template-rows:auto auto auto;
  min-height:max(var(--kpi-height),68px);
}
.summary-card-top{
  grid-template-columns:minmax(0,1fr) auto;
  min-width:0;
}
.summary-card .label,
.summary-card .value{
  display:block;
  visibility:visible;
  opacity:1;
  min-width:0;
  max-width:100%;
}
.summary-card .label{
  white-space:normal;
  overflow:visible;
  text-overflow:clip;
  overflow-wrap:normal;
  word-break:normal;
  line-height:1.12;
}
.summary-card .value{
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}
.summary-card-foot{
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(0,.92fr);
  align-items:end;
  gap:4px 7px;
  min-height:14px;
  overflow:visible;
}
.summary-card .sub,
.summary-card .summary-trend,
.summary-trend{
  display:block;
  visibility:visible;
  opacity:1;
  min-width:0;
  max-width:100%;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}
.summary-trend{
  justify-self:end;
  text-align:right;
}
@media (min-width:1537px) and (max-width:1799px){
  :root{--viewport-kpi-min:176px}
}
@media (min-width:1441px) and (max-width:1536px){
  :root{--viewport-kpi-min:166px;--viewport-kpi-gap:8px}
}
@media (min-width:1367px) and (max-width:1440px){
  :root{--viewport-kpi-min:158px;--viewport-kpi-gap:8px}
}
@media (min-width:1281px) and (max-width:1366px){
  :root{--viewport-kpi-min:154px;--viewport-kpi-gap:7px}
}
@media (min-width:1181px) and (max-width:1280px){
  :root{--viewport-kpi-min:148px;--viewport-kpi-gap:7px}
}
@media (min-width:1181px) and (max-width:1536px){
  .summary-grid>.summary-card{
    grid-template-rows:auto auto auto;
    min-height:72px;
  }
  .summary-card .label{
    font-size:clamp(8.8px,.30vw + 4.9px,9.8px);
    letter-spacing:.054em;
  }
  .summary-card .sub,
  .summary-trend{
    font-size:clamp(9.4px,.18vw + 7.2px,10.4px);
    line-height:1.12;
  }
}
@media (min-width:721px) and (max-height:780px){
  .summary-grid>.summary-card{
    min-height:68px;
  }
  .summary-card-foot{
    min-height:13px;
  }
  .summary-card .sub,
  .summary-trend{
    display:block;
    visibility:visible;
  }
}

/* PASS182 — List and table layout authority lock.
   One final list primitive owns row rhythm, document columns and list-count chrome
   across modules. Earlier PASS markers remain for history, but this block is the
   only active authority for ledger tables, document rows and "Showing x of x" controls. */
:root{
  --list-layout-authority-lock:1;
}
.table-wrap{
  max-width:100%;
  min-width:0;
  overflow-x:auto;
  overflow-y:visible;
  overscroll-behavior-x:contain;
  scrollbar-gutter:stable;
}
.table.ledger-table[data-ledger-schema]{
  width:100%;
  min-width:min(var(--viewport-table-min),100%);
  table-layout:fixed;
  border-collapse:collapse;
  border-spacing:0;
}
.table.ledger-table[data-ledger-schema] th,
.table.ledger-table[data-ledger-schema] td,
.platform-line-table th,
.platform-line-table td{
  height:var(--list-row-min);
  padding:var(--list-row-y) var(--list-row-x);
  vertical-align:middle;
  border-bottom:1px solid var(--row-line);
  overflow:hidden;
}
.table.ledger-table[data-ledger-schema] thead th,
.platform-line-table thead th{
  height:var(--list-head-h);
  color:rgba(220,231,247,.76);
  font-size:9.7px;
  line-height:1.15;
  letter-spacing:.058em;
  text-transform:uppercase;
}
.table.ledger-table[data-ledger-schema] th:last-child,
.table.ledger-table[data-ledger-schema] td:last-child{
  width:var(--list-doc-col);
  text-align:center;
}
.table.ledger-table[data-ledger-schema] .ledger-doc-head{
  font-size:8.7px;
  letter-spacing:.03em;
  white-space:nowrap;
}
.table.ledger-table[data-ledger-schema] .doc-badge{
  margin-inline:auto;
}
.detail-list{
  display:grid;
  gap:var(--list-row-gap);
  min-width:0;
}
.detail-item,
.overview-item,
.doc-row,
.platform-table-row{
  border-radius:15px;
}
.doc-row{
  min-height:var(--list-row-min);
  padding:var(--document-row-pad);
  gap:var(--list-row-gap);
}
.doc-row-main{
  gap:var(--list-row-gap);
}
.doc-thumb{
  width:var(--document-row-thumb);
  height:var(--document-row-thumb);
  flex-basis:var(--document-row-thumb);
}
.list-controls,
.detail-section-head .list-controls,
.module-section-tools .list-controls,
.action-bar-end .list-controls,
.overview-section-actions .list-controls,
.list-header-actions .list-controls{
  display:inline-flex;
  align-items:center;
  justify-content:flex-end;
  gap:var(--list-control-gap);
  margin:0;
  padding:0;
  width:auto;
  min-width:0;
  flex:0 0 auto;
  background:transparent;
  border:0;
  border-radius:0;
  box-shadow:none;
}
.module-table>.list-controls{
  margin:0 0 var(--list-row-gap) auto;
}
.list-controls .list-count-chip,
.list-count-chip{
  display:inline-flex;
  align-items:center;
  min-height:0;
  height:auto;
  padding:0;
  border:0;
  border-radius:0;
  background:transparent;
  box-shadow:none;
  color:rgba(216,228,244,.58);
  font-size:var(--list-meta-size);
  line-height:1.2;
  font-weight:850;
  letter-spacing:.015em;
  white-space:nowrap;
  max-width:100%;
  overflow:hidden;
  text-overflow:ellipsis;
}
.list-controls .btn,
.list-controls .list-toggle-btn,
.list-controls .list-open-module-btn{
  min-height:0;
  height:auto;
  padding:0;
  border:0;
  background:transparent;
  box-shadow:none;
  color:rgba(196,211,236,.74);
  font-size:var(--list-meta-size);
  line-height:1.2;
  font-weight:900;
  white-space:nowrap;
}
.list-controls .btn:hover,
.list-controls .list-toggle-btn:hover,
.list-controls .list-open-module-btn:hover{
  color:var(--text);
  background:transparent;
  border:0;
}
.list-meta-row{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  min-width:0;
  margin:12px 0 8px;
  padding-top:0;
  border-top:0;
}
.list-meta-actions,
.module-section-tools,
.list-header-actions,
.overview-section-actions,
.action-bar-end{
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:var(--list-control-gap);
  min-width:0;
  flex-wrap:wrap;
}
@media (max-width:760px){
  .table.ledger-table[data-ledger-schema] th,
  .table.ledger-table[data-ledger-schema] td,
  .platform-line-table th,
  .platform-line-table td{
    height:var(--list-row-compact-min);
    padding-block:8px;
  }
  .list-meta-row{align-items:flex-start;flex-direction:column}
  .list-meta-actions,.module-section-tools,.list-header-actions,.overview-section-actions,.action-bar-end{justify-content:flex-start}
}


/* PASS183 — Overview compact layout lock.
   Fixes the remaining overview-specific gap: KPI cards must not form a 7+1 row,
   and cockpit compact tables must have explicit colgroups so document badges do
   not steal space from content on laptop/Chromebook widths. */
:root{
  --overview-compact-layout-lock:1;
  --compact-doc-col:8%;
}
.module-shell[data-module-shell="overview"] .summary-grid.overview-kpi-strip{
  grid-template-columns:repeat(8,minmax(0,1fr));
  align-items:stretch;
}
.compact-table[data-compact-schema],
.compact-table.no-x-scroll[data-compact-schema]{
  overflow-x:hidden;
  overflow-y:visible;
  scrollbar-gutter:auto;
}
.compact-ledger-table[data-compact-schema]{
  width:100%;
  min-width:0;
  table-layout:fixed;
  border-collapse:collapse;
  border-spacing:0;
}
.compact-ledger-table[data-compact-schema] th,
.compact-ledger-table[data-compact-schema] td{
  height:var(--list-row-compact-min);
  padding:8px 12px;
  overflow:hidden;
  vertical-align:middle;
}
.compact-ledger-table[data-compact-schema] th:last-child,
.compact-ledger-table[data-compact-schema] td:last-child{
  width:var(--compact-doc-col);
  min-width:38px;
  padding-left:4px;
  padding-right:8px;
  text-align:center;
}
.compact-ledger-table[data-compact-schema] .compact-doc-head{
  font-size:8.4px;
  letter-spacing:.035em;
  text-align:center;
  white-space:nowrap;
}
.compact-ledger-table[data-compact-schema] .doc-badge{
  margin-inline:auto;
  max-width:100%;
}
.compact-ledger-table[data-compact-schema] .primary-line,
.compact-ledger-table[data-compact-schema] .secondary-line,
.compact-ledger-table[data-compact-schema] .tertiary-line,
.compact-ledger-table[data-compact-schema] .title-clamp{
  display:block;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
  overflow-wrap:normal;
  word-break:normal;
  -webkit-line-clamp:1;
}
@media (min-width:1800px){
  .module-shell[data-module-shell="overview"] .summary-grid.overview-kpi-strip{grid-template-columns:repeat(8,minmax(0,1fr))}
}
@media (max-width:1799px){
  .module-shell[data-module-shell="overview"] .summary-grid.overview-kpi-strip{grid-template-columns:repeat(4,minmax(0,1fr))}
}
@media (max-width:980px){
  .module-shell[data-module-shell="overview"] .summary-grid.overview-kpi-strip{grid-template-columns:repeat(2,minmax(0,1fr))}
  .compact-ledger-table[data-compact-schema] th,
  .compact-ledger-table[data-compact-schema] td{padding-left:10px;padding-right:10px}
}
@media (max-width:760px){
  .compact-ledger-table[data-compact-schema] th:last-child,
  .compact-ledger-table[data-compact-schema] td:last-child{min-width:32px;padding-inline:3px}
  .compact-ledger-table[data-compact-schema] .doc-badge span{display:none}
}
@media (max-width:520px){
  .module-shell[data-module-shell="overview"] .summary-grid.overview-kpi-strip{grid-template-columns:1fr}
}

/* PASS184 — Overview mosaic and ultra-narrow document affordance lock.
   Moves Overview from two independent column stacks to a single four-card mosaic,
   and makes compact-table document badges survive ultra-narrow/mobile compression. */
:root{
  --overview-mobile-affordance-lock:1;
  --compact-doc-col:44px;
  --compact-doc-icon-w:28px;
}
.overview-cockpit-columns.enterprise-overview.overview-mosaic{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:14px;
  align-items:stretch;
}
.overview-cockpit-columns.enterprise-overview.overview-mosaic>.cockpit-card{
  min-width:0;
  height:100%;
  display:grid;
  grid-template-rows:auto minmax(0,auto);
  align-content:start;
}
.overview-cockpit-columns.enterprise-overview.overview-mosaic>.cockpit-cost{
  grid-template-rows:auto auto auto minmax(0,auto);
}
.compact-ledger-table[data-compact-schema] th:last-child,
.compact-ledger-table[data-compact-schema] td:last-child{
  width:var(--compact-doc-col);
  min-width:var(--compact-doc-col);
  max-width:var(--compact-doc-col);
  padding-left:4px;
  padding-right:8px;
  text-align:center;
}
.compact-ledger-table[data-compact-schema] .doc-badge,
.table.ledger-table[data-ledger-schema] .doc-badge{
  width:max-content;
  min-width:var(--compact-doc-icon-w);
  flex:0 0 auto;
  overflow:visible;
}
.doc-badge .clip-icon{
  flex:0 0 auto;
  min-width:12px;
}
@media (max-width:1180px){
  .overview-cockpit-columns.enterprise-overview.overview-mosaic{
    grid-template-columns:1fr;
  }
}
@media (max-width:640px){
  .compact-table[data-compact-schema],
  .compact-table.no-x-scroll[data-compact-schema]{
    overflow-x:visible;
  }
  .compact-ledger-table[data-compact-schema],
  .compact-ledger-table[data-compact-schema] thead,
  .compact-ledger-table[data-compact-schema] tbody,
  .compact-ledger-table[data-compact-schema] tr,
  .compact-ledger-table[data-compact-schema] th,
  .compact-ledger-table[data-compact-schema] td{
    display:block;
    width:100%;
    min-width:0;
    max-width:none;
  }
  .compact-ledger-table[data-compact-schema]{
    min-width:0;
  }
  .compact-ledger-table[data-compact-schema] thead{
    display:none;
  }
  .compact-ledger-table[data-compact-schema] tbody{
    display:grid;
    gap:8px;
  }
  .compact-ledger-table[data-compact-schema] tr{
    position:relative;
    padding:10px 46px 10px 10px;
    border:1px solid rgba(202,220,244,.095);
    border-radius:13px;
    background:rgba(255,255,255,.026);
  }
  .compact-ledger-table[data-compact-schema] td{
    height:auto;
    min-height:0;
    padding:0;
    border:0;
    overflow:visible;
    text-align:left;
  }
  .compact-ledger-table[data-compact-schema] td + td{
    margin-top:5px;
  }
  .compact-ledger-table[data-compact-schema] td:last-child{
    position:absolute;
    top:10px;
    right:10px;
    width:var(--compact-doc-icon-w);
    min-width:var(--compact-doc-icon-w);
    max-width:var(--compact-doc-icon-w);
    margin:0;
    padding:0;
    text-align:center;
  }
  .compact-ledger-table[data-compact-schema] td:last-child:empty{
    display:none;
  }
  .compact-ledger-table[data-compact-schema] .doc-badge,
  .table.ledger-table[data-ledger-schema] .doc-badge{
    width:var(--compact-doc-icon-w);
    min-width:var(--compact-doc-icon-w);
    height:24px;
    padding:0;
    gap:0;
    overflow:visible;
  }
  .compact-ledger-table[data-compact-schema] .doc-badge span,
  .table.ledger-table[data-ledger-schema] .doc-badge.compact span{
    display:none;
  }
}

/* PASS185 — Overview compact row rhythm and document count capacity lock.
   Keeps Service pulse from rendering as a visually thinner selected line than
   neighbouring overview tables, and reserves enough document affordance width
   for two/three digit attachment counts without squeezing the paperclip badge. */
:root{
  --overview-compact-rhythm-lock:1;
  --compact-doc-col:56px;
  --compact-doc-icon-w:30px;
  --compact-doc-badge-w:44px;
  --overview-compact-row-min:58px;
}
.compact-ledger-table[data-compact-schema]{
  --compact-row-min:var(--overview-compact-row-min);
}
.compact-ledger-table[data-compact-schema] tbody tr{
  height:var(--compact-row-min);
}
.compact-ledger-table[data-compact-schema] th,
.compact-ledger-table[data-compact-schema] td{
  height:var(--compact-row-min);
  min-height:var(--compact-row-min);
  padding-top:9px;
  padding-bottom:9px;
}
.cockpit-service .compact-ledger-table[data-compact-schema] tbody tr,
.cockpit-service .compact-ledger-table[data-compact-schema] td{
  height:var(--compact-row-min);
  min-height:var(--compact-row-min);
}
.compact-ledger-table[data-compact-schema] th:last-child,
.compact-ledger-table[data-compact-schema] td:last-child{
  width:var(--compact-doc-col);
  min-width:var(--compact-doc-col);
  max-width:var(--compact-doc-col);
  padding-left:6px;
  padding-right:10px;
}
.compact-ledger-table[data-compact-schema] .doc-badge,
.table.ledger-table[data-ledger-schema] .doc-badge{
  min-width:var(--compact-doc-badge-w);
  max-width:var(--compact-doc-col);
  padding-inline:7px;
  justify-content:center;
  overflow:visible;
}
.compact-ledger-table[data-compact-schema] .doc-badge span,
.table.ledger-table[data-ledger-schema] .doc-badge span{
  min-width:1.15em;
  text-align:center;
  font-variant-numeric:tabular-nums;
}
@media (max-width:760px){
  .compact-ledger-table[data-compact-schema] th:last-child,
  .compact-ledger-table[data-compact-schema] td:last-child{
    min-width:40px;
    width:40px;
    max-width:40px;
    padding-inline:4px;
  }
  .compact-ledger-table[data-compact-schema] .doc-badge,
  .table.ledger-table[data-ledger-schema] .doc-badge.compact{
    min-width:30px;
    width:30px;
    max-width:30px;
    padding-inline:0;
  }
}
@media (max-width:640px){
  .compact-ledger-table[data-compact-schema] tbody tr,
  .compact-ledger-table[data-compact-schema] th,
  .compact-ledger-table[data-compact-schema] td{
    height:auto;
    min-height:0;
  }
  .compact-ledger-table[data-compact-schema] td:last-child{
    width:30px;
    min-width:30px;
    max-width:30px;
  }
}

:root{--pass206-resume-sync-coordinator-lock:1}

:root{--pass205-overlay-focus-live-lock:1}

/* PASS213 — Overview all-clear empty state and monthly trend bars lock */

.cockpit-attention.is-all-clear [data-list-controls="overviewAttentionList"]{display:none}
.cockpit-attention.is-all-clear .detail-section-head{align-items:start}
.overview-all-clear{
  display:grid;
  gap:14px;
  min-height:214px;
  padding:12px;
  border:1px solid rgba(107,232,199,.13);
  border-radius:16px;
  background:linear-gradient(180deg,rgba(107,232,199,.045),rgba(255,255,255,.012));
  box-shadow:inset 0 1px 0 rgba(255,255,255,.022);
}
.overview-clear-hero{
  display:grid;
  grid-template-columns:auto minmax(0,1fr);
  gap:12px;
  align-items:center;
  padding:8px 8px 12px;
  border-bottom:1px solid rgba(202,220,244,.10);
}
.overview-clear-mark{
  width:30px;
  height:30px;
  border-radius:999px;
  display:grid;
  place-items:center;
  color:rgba(196,255,239,.96);
  font-size:15px;
  font-weight:950;
  background:rgba(107,232,199,.105);
  border:1px solid rgba(107,232,199,.22);
  box-shadow:0 0 0 3px rgba(107,232,199,.035);
}
.overview-clear-title{
  color:#f8fbff;
  font-size:13px;
  font-weight:950;
  letter-spacing:-.01em;
}
.overview-clear-sub{
  margin-top:2px;
  color:rgba(216,228,244,.66);
  font-size:11px;
  font-weight:750;
}
.overview-clear-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:8px;
}
.overview-clear-row,
.overview-clear-next{
  min-width:0;
  display:grid;
  gap:3px;
  padding:10px 11px;
  border:1px solid rgba(202,220,244,.10);
  border-radius:13px;
  background:rgba(255,255,255,.020);
}
.overview-clear-row span,
.overview-clear-next span{
  color:rgba(216,228,244,.58);
  font-size:10px;
  font-weight:850;
}
.overview-clear-row strong,
.overview-clear-next strong{
  min-width:0;
  color:#f8fbff;
  font-size:11.2px;
  font-weight:950;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}
.overview-clear-row.is-good strong{color:rgba(154,255,228,.94)}
.overview-clear-row.is-warning strong{color:rgba(255,210,141,.94)}
.overview-clear-row.is-risk strong{color:rgba(255,154,170,.94)}
.overview-clear-next{
  grid-template-columns:minmax(0,1fr);
  border-color:rgba(255,190,93,.13);
  background:rgba(255,190,93,.030);
}
@media (max-width:720px){
  .overview-clear-grid{grid-template-columns:1fr}
  .overview-all-clear{min-height:0;padding:10px}
}


/* PASS215 — Monthly trend reverted to the clean premium line chart; cost mix labels stay non-misleading. */

/* PASS219 — Reports revision and rolling horizon presentation lock.
   Rebuild only the Reports composition contract: charts pair in one row,
   selected-year split and report package pair in one equal-height row, and
   lists sit below without forcing excessive empty height. */
:root{--pass219-report-revision-lock:1;--report-chart-min-h:clamp(268px,30vh,360px);--report-pair-min-h:clamp(190px,21vh,248px)}
.report-revised-surface{display:grid;gap:14px;min-width:0}
.report-primary-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);grid-auto-rows:auto;gap:14px;align-items:stretch;min-width:0}
.report-primary-grid>.detail-section{min-width:0;height:100%}
.report-primary-grid>.report-monthly-actuals,
.report-primary-grid>.report-forecast-horizon{min-height:var(--report-chart-min-h);grid-template-rows:auto minmax(0,1fr)}
.report-primary-grid>.report-split-panel,
.report-primary-grid>.report-package-section{min-height:var(--report-pair-min-h)}
.report-primary-grid>.report-package-section{grid-template-rows:auto minmax(0,1fr)}
.report-package-section .report-package-grid{height:100%;align-content:stretch;grid-template-columns:repeat(2,minmax(0,1fr));grid-auto-rows:minmax(0,1fr)}
.report-package-section .detail-item{display:grid;align-content:center;min-height:0}
.report-package-section .report-history-card{min-height:0}
.report-list-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:14px;align-items:start;min-width:0}
.report-list-grid>.detail-section{min-width:0}
.report-export-controls select optgroup{background:#0d1b2b;color:rgba(216,228,244,.72);font-weight:950}
.report-export-controls select option{background:#0d1b2b;color:#edf5ff}
.horizon-chart.horizon-smooth.is-empty{min-height:0;display:grid;place-items:center;border:1px dashed rgba(202,220,244,.12);border-radius:16px;background:rgba(255,255,255,.018)}
.horizon-empty-state{color:rgba(216,228,244,.62);font-size:12px;font-weight:850;text-align:center;padding:18px}
.report-forecast-horizon .horizon-smooth-grid{grid-template-columns:repeat(var(--horizon-years,5),minmax(72px,1fr));min-width:max(100%,calc(var(--horizon-years,5) * 78px))}
@media (min-width:1440px){.report-revised-surface{gap:16px}.report-primary-grid,.report-list-grid{gap:16px}}
@media (max-width:1180px){.report-primary-grid,.report-list-grid{grid-template-columns:1fr}.report-primary-grid>.report-monthly-actuals,.report-primary-grid>.report-forecast-horizon,.report-primary-grid>.report-split-panel,.report-primary-grid>.report-package-section{min-height:0}.report-package-section .report-package-grid{height:auto;grid-auto-rows:auto}}
@media (max-width:720px){.report-primary-grid,.report-list-grid{gap:10px}.report-package-section .report-package-grid{grid-template-columns:1fr}.report-forecast-horizon .horizon-smooth-grid{grid-template-columns:repeat(var(--horizon-years,5),minmax(68px,1fr));min-width:max(100%,calc(var(--horizon-years,5) * 72px))}}

/* PASS221 — Robust report scope, refresh and readable empty-data surfaces. */
:root{--pass221-report-scope-refresh-lock:1}
.report-chart-empty{min-height:calc(var(--report-chart-min-h) - 78px);display:grid;place-items:center;border:1px dashed rgba(202,220,244,.12);border-radius:16px;background:rgba(255,255,255,.018);color:rgba(216,228,244,.62);font-size:13px;font-weight:850;text-align:center;padding:18px}
.report-primary-grid>.report-split-panel,.report-primary-grid>.report-package-section{align-self:stretch;height:100%}
.report-package-section .report-package-grid>.detail-item{overflow:hidden}
.report-history-console .report-year-list{max-height:min(60vh,720px);overflow:auto;padding-right:2px}

/* PASS222 — Stability, mobile access and service due polish from pass221 baseline.
   Scope: service-related due markers only, mobile list disclosure, compact mobile PDF flow. */
:root{--pass222-stability-service-due-lock:1}
.service-plan-quality-table tr[data-service-due],
.asset-quality-table tr[data-service-due],
[data-compact-schema="overviewService"] tr[data-service-due],
.mobile-service .mobile-card[data-service-due],
.mobile-overview .mobile-card[data-service-due],
.mobile-assets .mobile-card[data-service-due]{position:relative}
.service-plan-quality-table tr[data-service-due] td:first-child,
.asset-quality-table tr[data-service-due] td:first-child,
[data-compact-schema="overviewService"] tr[data-service-due] td:first-child{box-shadow:inset 3px 0 0 rgba(160,185,220,.20)}
.service-plan-quality-table tr[data-service-due="overdue"] td:first-child,
.asset-quality-table tr[data-service-due="overdue"] td:first-child,
[data-compact-schema="overviewService"] tr[data-service-due="overdue"] td:first-child{box-shadow:inset 3px 0 0 rgba(255,137,160,.42)}
.service-plan-quality-table tr[data-service-due="due7"] td:first-child,
.asset-quality-table tr[data-service-due="due7"] td:first-child,
[data-compact-schema="overviewService"] tr[data-service-due="due7"] td:first-child{box-shadow:inset 3px 0 0 rgba(255,195,112,.40)}
.service-plan-quality-table tr[data-service-due="due14"] td:first-child,
.asset-quality-table tr[data-service-due="due14"] td:first-child,
[data-compact-schema="overviewService"] tr[data-service-due="due14"] td:first-child{box-shadow:inset 3px 0 0 rgba(122,221,204,.34)}
.service-plan-quality-table tr[data-service-due="due30"] td:first-child,
.asset-quality-table tr[data-service-due="due30"] td:first-child,
[data-compact-schema="overviewService"] tr[data-service-due="due30"] td:first-child{box-shadow:inset 3px 0 0 rgba(121,173,255,.30)}
.mobile-service .mobile-card[data-service-due],
.mobile-overview .mobile-card[data-service-due],
.mobile-assets .mobile-card[data-service-due]{overflow:hidden}
.mobile-service .mobile-card[data-service-due]::before,
.mobile-overview .mobile-card[data-service-due]::before,
.mobile-assets .mobile-card[data-service-due]::before{content:"";position:absolute;left:0;top:12px;bottom:12px;width:3px;border-radius:999px;background:rgba(160,185,220,.24)}
.mobile-service .mobile-card[data-service-due="overdue"]::before,
.mobile-overview .mobile-card[data-service-due="overdue"]::before,
.mobile-assets .mobile-card[data-service-due="overdue"]::before{background:rgba(255,137,160,.55)}
.mobile-service .mobile-card[data-service-due="due7"]::before,
.mobile-overview .mobile-card[data-service-due="due7"]::before,
.mobile-assets .mobile-card[data-service-due="due7"]::before{background:rgba(255,195,112,.52)}
.mobile-service .mobile-card[data-service-due="due14"]::before,
.mobile-overview .mobile-card[data-service-due="due14"]::before,
.mobile-assets .mobile-card[data-service-due="due14"]::before{background:rgba(122,221,204,.44)}
.mobile-service .mobile-card[data-service-due="due30"]::before,
.mobile-overview .mobile-card[data-service-due="due30"]::before,
.mobile-assets .mobile-card[data-service-due="due30"]::before{background:rgba(121,173,255,.38)}
.mobile-section .list-controls{margin-top:10px;display:flex;align-items:center;justify-content:space-between;gap:8px;flex-wrap:wrap}
.mobile-section .list-controls.is-complete{justify-content:flex-end;opacity:.72}
.mobile-section .list-toggle-btn{min-height:34px;border-radius:12px}

/* PASS224 — KPI layout, status semantics and mobile value lock.
   Scope: assets KPI contract, overview attention markers and mobile KPI value containment. */
:root{--pass224-kpi-layout-status-mobile-value-lock:1}
[data-compact-schema="overviewAttention"] tr[data-service-due]{position:relative}
[data-compact-schema="overviewAttention"] tr[data-service-due] td:first-child{box-shadow:inset 3px 0 0 rgba(160,185,220,.20)}
[data-compact-schema="overviewAttention"] tr[data-service-due="overdue"] td:first-child{box-shadow:inset 3px 0 0 rgba(255,137,160,.42)}
[data-compact-schema="overviewAttention"] tr[data-service-due="due7"] td:first-child{box-shadow:inset 3px 0 0 rgba(255,195,112,.40)}
/* PASS225 compact KPI value lock: full values on wide cards, compact money on narrow KPI layouts. */
.summary-card .value{position:relative}

.summary-card .label .kpi-label-full,.summary-card .label .kpi-label-compact{white-space:nowrap}
.summary-card .label .kpi-label-compact{position:absolute;inline-size:1px;block-size:1px;overflow:hidden;clip-path:inset(50%);opacity:0;pointer-events:none}
.summary-card .label .kpi-label-full{position:static;opacity:1}
@media (max-width:1180px){
  .summary-card .label .kpi-label-full{position:absolute;inline-size:1px;block-size:1px;overflow:hidden;clip-path:inset(50%);opacity:0;pointer-events:none}
  .summary-card .label .kpi-label-compact{position:static;inline-size:auto;block-size:auto;overflow:visible;clip-path:none;opacity:1;pointer-events:auto}
}
.summary-card .value .kpi-value-full,.summary-card .value .kpi-value-compact{white-space:nowrap}
.summary-card .value .kpi-value-compact{position:absolute;inline-size:1px;block-size:1px;overflow:hidden;clip-path:inset(50%);opacity:0;pointer-events:none}
.summary-card .value .kpi-value-full{position:static;opacity:1}
@media (max-width:1180px){
  .summary-card .value .kpi-value-full{position:absolute;inline-size:1px;block-size:1px;overflow:hidden;clip-path:inset(50%);opacity:0;pointer-events:none}
  .summary-card .value .kpi-value-compact{position:static;inline-size:auto;block-size:auto;overflow:visible;clip-path:none;opacity:1;pointer-events:auto}
}

.field-note-inline{color:var(--muted);font-size:11px;font-weight:800;text-transform:none;letter-spacing:0}
.field-note{display:block;margin-top:6px;color:var(--muted);font-size:11px;line-height:1.35}

/* PASS186 — Mobile operations foundation lock.
   Mobile is an operations surface, not a compressed desktop dashboard. Keep
   desktop analytics intact, but shift phones to Today, service, cases and
   document actions with card-based rows and no graph squeeze. */
:root{
  --mobile-ops-foundation-lock:1;
  --mobile-ops-bottom-safe:calc(12px + env(safe-area-inset-bottom,0px));
}

/* PASS244 — Mobile viewport, preview and shell sanitized contract.
   This is the final active CSS authority block. It owns mobile safe-area,
   top/bottom chrome, document preview sizing and media touch behavior as one
   layout model instead of patching separate pass fragments. */
:root{
  --pass244-mobile-viewport-preview-shell-sanitized-lock:1;
  --mobile-topbar-core-h:56px;
  --mobile-tabbar-core-h:58px;
  --mobile-card-radius:16px;
  --mobile-card-bg:rgba(255,255,255,.032);
  --mobile-card-line:rgba(164,185,224,.14);
}
@media (max-width:920px){
  html.mobile-shell,
  body.mobile-shell{
    width:100%;
    min-height:var(--app-vh,100svh);
    overflow-x:hidden;
  }
  body.mobile-shell{
    font-size:12px;
  }
  body.mobile-shell:not(.document-preview-open){
    overflow-y:auto;
    -webkit-overflow-scrolling:touch;
    touch-action:pan-y pinch-zoom;
  }
  body.mobile-shell .app,
  body.mobile-shell .shell,
  body.mobile-shell .main{
    min-height:var(--app-vh,100svh);
  }
  body.mobile-shell .shell{
    display:block;
    width:100%;
  }
  body.mobile-shell .main{
    grid-column:1;
    display:grid;
    grid-template-rows:calc(var(--mobile-topbar-core-h) + env(safe-area-inset-top,0px)) minmax(0,1fr);
    width:100%;
    min-height:var(--app-vh,100svh);
    overflow:visible;
  }
  body.mobile-shell .topbar{
    position:sticky;
    top:0;
    z-index:900;
    display:grid;
    grid-template-columns:minmax(0,1fr) auto;
    grid-template-areas:"left actions";
    align-items:center;
    gap:7px;
    min-height:calc(var(--mobile-topbar-core-h) + env(safe-area-inset-top,0px));
    height:calc(var(--mobile-topbar-core-h) + env(safe-area-inset-top,0px));
    max-height:calc(var(--mobile-topbar-core-h) + env(safe-area-inset-top,0px));
    padding:env(safe-area-inset-top,0px) 8px 0;
    overflow:hidden;
  }
  body.mobile-shell .top-left{
    grid-area:left;
    min-width:0;
    gap:7px;
    padding-left:0;
    overflow:hidden;
  }
  body.mobile-shell .top-actions{
    grid-area:actions;
    flex:0 0 auto;
    gap:6px;
  }
  body.mobile-shell .mobile-nav-toggle{
    display:inline-grid;
    flex:0 0 36px;
    width:36px;
    min-width:36px;
    height:36px;
  }
  body.mobile-shell .top-brand-home{
    flex:0 0 32px;
    width:32px;
    min-width:32px;
    height:34px;
    transform:none;
  }
  body.mobile-shell .top-brand-home img{
    width:25px;
    max-height:28px;
  }
  body.mobile-shell .workspace-title{
    min-width:0;
    overflow:hidden;
  }
  body.mobile-shell .workspace-title h2{
    max-width:100%;
    font-size:12.5px;
    line-height:1.08;
    white-space:nowrap;
    overflow:hidden;
    text-overflow:ellipsis;
  }
  body.mobile-shell .workspace-title .sub,
  body.mobile-shell .top-title .sub{
    max-width:100%;
    font-size:9.5px;
    line-height:1.05;
    margin-top:1px;
    white-space:nowrap;
    overflow:hidden;
    text-overflow:ellipsis;
  }
  body.mobile-shell .top-actions .btn.icon,
  body.mobile-shell .user-avatar-btn{
    width:34px;
    min-width:34px;
    height:34px;
    min-height:34px;
    padding:0;
    border-radius:12px;
  }
  body.mobile-shell .content{
    min-height:calc(var(--app-vh,100svh) - var(--mobile-topbar-core-h) - env(safe-area-inset-top,0px));
    overflow:visible;
    align-content:start;
    padding:8px 8px calc(var(--mobile-tabbar-core-h) + env(safe-area-inset-bottom,0px) + 14px);
  }
  body.mobile-shell .workspace{
    align-content:start;
    gap:10px;
    overflow:visible;
  }
  body.mobile-shell .mobile-tabbar{
    position:fixed;
    left:0;
    right:0;
    bottom:0;
    z-index:1200;
    display:grid;
    grid-template-columns:repeat(5,minmax(0,1fr));
    gap:3px;
    height:calc(var(--mobile-tabbar-core-h) + env(safe-area-inset-bottom,0px));
    padding:4px 7px calc(4px + env(safe-area-inset-bottom,0px));
    align-items:center;
    border-top:1px solid rgba(176,196,224,.12);
    background:linear-gradient(180deg,rgba(13,20,33,.96),rgba(9,15,26,.99));
    box-shadow:0 -8px 22px rgba(0,0,0,.24);
    overflow:hidden;
    transform:none;
  }
  body.mobile-shell .mobile-tabbar-item{
    min-width:0;
    height:calc(var(--mobile-tabbar-core-h) - 8px);
    grid-template-rows:22px 12px;
    gap:2px;
    padding:3px 2px;
    border-radius:14px;
    font-size:9px;
  }
  body.mobile-shell .mobile-tabbar-item .nav-icon{
    width:22px;
    height:22px;
  }
  body.mobile-shell .mobile-tabbar-item .nav-icon svg{
    width:19px;
    height:19px;
  }
  body.mobile-shell .mobile-tabbar-label{
    font-size:9px;
    line-height:1;
  }

  .mobile-screen{
    display:grid;
    gap:10px;
    min-width:0;
    width:100%;
    align-content:start;
    padding-bottom:0;
  }
  .mobile-screen-head{
    display:flex;
    align-items:flex-start;
    justify-content:space-between;
    gap:10px;
    min-width:0;
    padding:1px 1px 0;
  }
  .mobile-screen-title{
    color:var(--text);
    font-size:16px;
    line-height:1.12;
    font-weight:950;
    letter-spacing:-.012em;
  }
  .mobile-screen-sub{
    margin-top:3px;
    color:var(--muted);
    font-size:10.5px;
    line-height:1.28;
  }
  .mobile-stat-strip{
    display:grid;
    grid-template-columns:repeat(4,minmax(0,1fr));
    gap:8px;
    min-width:0;
  }
  .mobile-stat{
    appearance:none;
    -webkit-appearance:none;
    display:grid;
    gap:4px;
    min-width:0;
    min-height:58px;
    padding:9px 8px;
    border:1px solid var(--mobile-card-line);
    border-radius:15px;
    background:linear-gradient(180deg,rgba(255,255,255,.046),rgba(255,255,255,.020));
    color:inherit;
    text-align:left;
  }
  .mobile-stat span{
    min-width:0;
    color:rgba(199,210,232,.66);
    font-size:9.7px;
    line-height:1.12;
    font-weight:950;
    letter-spacing:.055em;
    text-transform:uppercase;
    white-space:nowrap;
    overflow:hidden;
    text-overflow:ellipsis;
  }
  .mobile-stat strong{
    min-width:0;
    color:var(--text);
    font-size:16px;
    line-height:1.05;
    font-weight:950;
    white-space:nowrap;
    overflow:hidden;
    text-overflow:ellipsis;
  }
  .mobile-section{
    display:grid;
    gap:10px;
    min-width:0;
    padding:12px;
    border:1px solid var(--mobile-card-line);
    border-radius:18px;
    background:linear-gradient(180deg,rgba(18,32,54,.66),rgba(9,20,36,.66));
    box-shadow:inset 0 1px 0 rgba(255,255,255,.032);
  }
  .mobile-section-head{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:10px;
    min-width:0;
  }
  .mobile-section-title{
    min-width:0;
    color:var(--text);
    font-size:13px;
    line-height:1.16;
    font-weight:950;
    overflow:hidden;
    text-overflow:ellipsis;
    white-space:nowrap;
  }
  .mobile-section-meta{
    flex:0 0 auto;
    color:var(--muted);
    font-size:10px;
    font-weight:900;
  }
  .mobile-filterbar{
    display:grid;
    grid-template-columns:minmax(0,1fr) minmax(112px,auto) auto;
    align-items:center;
    gap:8px;
    min-width:0;
  }
  .mobile-filterbar .input,
  .mobile-filterbar .select,
  .mobile-filterbar select,
  .mobile-filterbar .btn{
    width:100%;
    min-width:0;
  }
  .mobile-list{
    display:grid;
    gap:8px;
    min-width:0;
  }
  .mobile-card{
    appearance:none;
    -webkit-appearance:none;
    width:100%;
    min-width:0;
    min-height:64px;
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:10px;
    padding:11px 12px;
    border:1px solid var(--mobile-card-line);
    border-radius:var(--mobile-card-radius);
    background:var(--mobile-card-bg);
    color:inherit;
    text-align:left;
    box-shadow:inset 0 1px 0 rgba(255,255,255,.026);
  }
  button.mobile-card:focus-visible,
  .mobile-card.row-open:focus-visible{
    outline:2px solid rgba(135,150,255,.55);
    outline-offset:2px;
  }
  .mobile-card-main{
    display:grid;
    gap:3px;
    min-width:0;
    flex:1 1 auto;
  }
  .mobile-card-kicker{
    min-width:0;
    color:rgba(199,210,232,.58);
    font-size:9px;
    line-height:1.08;
    font-weight:950;
    letter-spacing:.07em;
    text-transform:uppercase;
    white-space:nowrap;
    overflow:hidden;
    text-overflow:ellipsis;
  }
  .mobile-card-main strong{
    min-width:0;
    color:var(--text);
    font-size:13px;
    line-height:1.18;
    font-weight:950;
    white-space:nowrap;
    overflow:hidden;
    text-overflow:ellipsis;
  }
  .mobile-card-main small{
    min-width:0;
    color:var(--muted);
    font-size:10.5px;
    line-height:1.28;
    white-space:nowrap;
    overflow:hidden;
    text-overflow:ellipsis;
  }
  .mobile-card-side,
  .mobile-card-docs{
    display:inline-flex;
    align-items:center;
    justify-content:flex-end;
    gap:6px;
    min-width:0;
  }
  .mobile-card-side{flex:0 1 42%;max-width:42%}
  .mobile-card-badge{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    min-height:24px;
    max-width:100%;
    padding:4px 8px;
    border:1px solid rgba(164,185,224,.14);
    border-radius:999px;
    background:rgba(255,255,255,.045);
    color:rgba(220,231,247,.78);
    font-size:9px;
    line-height:1;
    font-weight:950;
    white-space:nowrap;
    overflow:hidden;
    text-overflow:ellipsis;
  }
  .mobile-empty{
    min-height:54px;
    display:grid;
    place-items:center;
    text-align:center;
    color:var(--muted);
    border:1px dashed rgba(164,185,224,.16);
    border-radius:14px;
    background:rgba(255,255,255,.020);
    padding:12px;
  }
  .mobile-segment{
    display:grid;
    grid-template-columns:repeat(auto-fit,minmax(88px,1fr));
    gap:6px;
    min-width:0;
    padding:4px;
    border:1px solid rgba(164,185,224,.12);
    border-radius:16px;
    background:rgba(255,255,255,.025);
  }
  .mobile-segment-btn{
    appearance:none;
    -webkit-appearance:none;
    min-width:0;
    min-height:34px;
    border:1px solid transparent;
    border-radius:12px;
    background:transparent;
    color:var(--muted);
    font-size:11px;
    font-weight:950;
  }
  .mobile-segment-btn.active{
    border-color:rgba(135,150,255,.22);
    background:rgba(135,150,255,.12);
    color:var(--text);
  }
  .mobile-menu-row{
    appearance:none;
    -webkit-appearance:none;
    width:100%;
    min-width:0;
    min-height:58px;
    display:grid;
    grid-template-columns:34px minmax(0,1fr) auto;
    align-items:center;
    gap:10px;
    padding:10px 12px;
    border:1px solid var(--mobile-card-line);
    border-radius:16px;
    background:var(--mobile-card-bg);
    color:inherit;
    text-align:left;
  }
  .mobile-menu-icon{display:grid;place-items:center;width:34px;height:34px;border-radius:12px;background:rgba(135,150,255,.10);color:var(--text)}
  .mobile-menu-copy{display:grid;gap:2px;min-width:0}
  .mobile-menu-copy strong{min-width:0;color:var(--text);font-size:13px;font-weight:950;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .mobile-menu-copy small{min-width:0;color:var(--muted);font-size:10.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .mobile-menu-chevron{color:var(--muted);font-size:18px;line-height:1}
}
@media (max-width:720px){
  body.mobile-shell.document-preview-open{
    overflow:hidden;
    touch-action:none;
  }
  body.mobile-shell.document-preview-open .mobile-tabbar{
    display:none;
  }
  body.mobile-shell #previewOverlay.open{
    position:fixed;
    inset:0;
    width:var(--app-vw,100vw);
    height:var(--app-vh,100svh);
    max-height:var(--app-vh,100svh);
    padding:0;
    place-items:stretch;
    align-items:stretch;
    justify-items:stretch;
    overflow:hidden;
    touch-action:pan-x pan-y pinch-zoom;
    overscroll-behavior:contain;
  }
  body.mobile-shell #previewOverlay.open .search-box.preview-box,
  body.mobile-shell #previewOverlay.open .search-box.preview-box.is-image-preview{
    width:var(--app-vw,100vw);
    max-width:none;
    height:var(--app-vh,100svh);
    min-height:0;
    max-height:var(--app-vh,100svh);
    border-radius:0;
    border-left:0;
    border-right:0;
    display:grid;
    grid-template-rows:minmax(48px,auto) minmax(0,1fr);
    overflow:hidden;
  }
  body.mobile-shell #previewOverlay.open .preview-head{
    min-height:48px;
    max-height:96px;
    padding:calc(6px + env(safe-area-inset-top,0px)) max(8px,env(safe-area-inset-right,0px)) 6px max(8px,env(safe-area-inset-left,0px));
    gap:7px;
    align-items:center;
    overflow:hidden;
  }
  body.mobile-shell #previewOverlay.open .preview-title{
    max-width:100%;
    font-size:12.5px;
    line-height:1.12;
    white-space:nowrap;
    overflow:hidden;
    text-overflow:ellipsis;
  }
  body.mobile-shell #previewOverlay.open #previewMeta{
    max-width:100%;
    font-size:9.5px;
    line-height:1.1;
    white-space:nowrap;
    overflow:hidden;
    text-overflow:ellipsis;
  }
  body.mobile-shell #previewOverlay.open .preview-head .toolbar{
    flex:0 0 auto;
    gap:5px;
    flex-wrap:nowrap;
  }
  body.mobile-shell #previewOverlay.open .preview-head .btn{
    min-width:0;
    min-height:34px;
    height:34px;
    padding-inline:9px;
    border-radius:11px;
    font-size:11px;
  }
  body.mobile-shell #previewOverlay.open .preview-body{
    min-height:0;
    max-height:none;
    display:grid;
    grid-template-rows:minmax(0,1fr) auto;
    gap:6px;
    padding:6px max(6px,env(safe-area-inset-right,0px)) calc(6px + env(safe-area-inset-bottom,0px)) max(6px,env(safe-area-inset-left,0px));
    overflow:auto;
    -webkit-overflow-scrolling:touch;
    overscroll-behavior:contain;
    touch-action:pan-x pan-y pinch-zoom;
  }
  body.mobile-shell #previewOverlay.open .preview-frame{
    display:block;
    width:100%;
    height:100%;
    min-height:0;
    max-height:none;
    border-radius:10px;
    touch-action:pan-x pan-y pinch-zoom;
  }
  body.mobile-shell #previewOverlay.open .preview-image{
    display:block;
    justify-self:center;
    align-self:center;
    width:auto;
    height:auto;
    max-width:100%;
    max-height:calc(var(--app-vh,100svh) - 78px - env(safe-area-inset-top,0px) - env(safe-area-inset-bottom,0px));
    object-fit:contain;
    border-radius:10px;
    touch-action:pan-x pan-y pinch-zoom;
  }
  body.mobile-shell #previewOverlay.open .preview-fallback{
    min-height:28px;
    padding:0 2px;
    font-size:10px;
  }
}
@media (max-width:520px){
  .mobile-filterbar{
    grid-template-columns:1fr;
  }
  .mobile-stat-strip{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
  .mobile-card{
    align-items:flex-start;
  }
  .mobile-card-side{
    max-width:38%;
  }
}

.mobile-ops-only{display:none}
.mobile-ops-panel{
  border:1px solid rgba(164,185,224,.16);
  border-radius:17px;
  background:linear-gradient(180deg,rgba(18,32,54,.72),rgba(9,20,36,.72));
  box-shadow:inset 0 1px 0 rgba(255,255,255,.035);
  padding:12px;
  gap:12px;
  min-width:0;
}
.mobile-ops-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;min-width:0}
.mobile-ops-eyebrow{font-size:9px;font-weight:950;letter-spacing:.08em;text-transform:uppercase;color:rgba(114,233,203,.88)}
.mobile-ops-title{font-size:18px;line-height:1.05;font-weight:950;color:var(--text)}
.mobile-ops-sub{font-size:11px;line-height:1.3;color:var(--muted);margin-top:3px}
.mobile-ops-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;min-width:0}
.mobile-ops-action{
  display:grid;
  gap:3px;
  min-width:0;
  min-height:72px;
  text-align:left;
  border:1px solid rgba(164,185,224,.14);
  border-radius:14px;
  background:rgba(255,255,255,.032);
  color:inherit;
  padding:10px;
  cursor:pointer;
  box-shadow:inset 3px 0 0 rgba(135,150,255,.34);
}
.mobile-ops-action:hover,.mobile-ops-action:focus-visible{background:rgba(135,150,255,.070);outline:none;border-color:rgba(164,185,224,.24)}
.mobile-ops-action.tone-risk{box-shadow:inset 3px 0 0 rgba(239,114,131,.78)}
.mobile-ops-action.tone-warning{box-shadow:inset 3px 0 0 rgba(236,166,75,.78)}
.mobile-ops-action.tone-good{box-shadow:inset 3px 0 0 rgba(114,233,203,.70)}
.mobile-ops-action.tone-service{box-shadow:inset 3px 0 0 rgba(109,211,255,.72)}
.mobile-ops-action-label{font-size:9px;font-weight:950;text-transform:uppercase;letter-spacing:.06em;color:rgba(199,210,232,.72);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.mobile-ops-action strong{font-size:19px;line-height:1.05;font-weight:950;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.mobile-ops-action small{font-size:10px;line-height:1.2;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.mobile-ops-list{display:grid;gap:8px;min-width:0}
.mobile-ops-list .work-row{
  width:100%;
  min-height:58px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  border:1px solid rgba(164,185,224,.12);
  border-radius:14px;
  background:rgba(255,255,255,.030);
  color:inherit;
  padding:10px;
  text-align:left;
}
.mobile-ops-list .work-row:hover,.mobile-ops-list .work-row:focus-visible{background:rgba(135,150,255,.075);outline:none;border-color:rgba(164,185,224,.24)}
.mobile-ops-list .work-main{display:grid;gap:3px;min-width:0}
.mobile-ops-list .work-main strong,.mobile-ops-list .work-main small{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.mobile-ops-list .work-main strong{font-size:12px;font-weight:950;color:var(--text)}
.mobile-ops-list .work-main small{font-size:10px;color:var(--muted)}
.mobile-ops-list .work-actions{display:inline-flex;align-items:center;gap:6px;flex:0 0 auto}
.mobile-ops-list .work-badge{font-size:9px;font-weight:950;color:rgba(220,231,247,.84);border:1px solid rgba(164,185,224,.14);background:rgba(255,255,255,.045);border-radius:999px;padding:4px 7px;white-space:nowrap}
.mobile-ops-quickbar{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;min-width:0}
.mobile-ops-quick{width:100%;justify-content:center;white-space:nowrap}
.mobile-ops-empty{min-height:52px;display:grid;place-items:center;text-align:center}
@media (max-width:720px){
  .mobile-ops-only{display:grid}
  .module-shell[data-module-shell="overview"]>.module-summary{display:none}
  .module-shell[data-module-shell="overview"] .module-section-head{display:none}
  .overview-cockpit-columns.enterprise-overview.overview-mosaic{grid-template-columns:1fr;gap:10px}
  .overview-cockpit-columns.enterprise-overview.overview-mosaic>.mobile-ops-panel{order:0}
  .overview-cockpit-columns.enterprise-overview.overview-mosaic>.cockpit-attention{order:1}
  .overview-cockpit-columns.enterprise-overview.overview-mosaic>.cockpit-service{order:2}
  .overview-cockpit-columns.enterprise-overview.overview-mosaic>.cockpit-cost,
  .overview-cockpit-columns.enterprise-overview.overview-mosaic>.cockpit-planned{display:none}
  .cockpit-attention,.cockpit-service{padding:12px;gap:10px}
  .cockpit-attention .detail-section-head,.cockpit-service .detail-section-head{gap:6px}
  .module-shell[data-module-shell="costsOverview"] .monthly-actual-trend,
  .module-shell[data-module-shell="costsOverview"] .cost-mix-panel,
  .module-shell[data-module-shell="costsReports"] .report-monthly-actuals,
  .module-shell[data-module-shell="costsReports"] .report-forecast-horizon{display:none}
  .module-shell[data-module-shell="costsOverview"] .cost-dashboard-grid,
  .module-shell[data-module-shell="costsReports"] .report-flow-grid{grid-template-columns:1fr;gap:10px}
}
@media (max-width:640px){
  .table.ledger-table[data-ledger-schema],
  .table.ledger-table[data-ledger-schema] colgroup,
  .table.ledger-table[data-ledger-schema] thead,
  .table.ledger-table[data-ledger-schema] tbody,
  .table.ledger-table[data-ledger-schema] tr,
  .table.ledger-table[data-ledger-schema] th,
  .table.ledger-table[data-ledger-schema] td{
    display:block;
    width:100%;
    min-width:0;
    max-width:none;
  }
  .table.ledger-table[data-ledger-schema]{min-width:0;table-layout:auto;border-collapse:separate;border-spacing:0}
  .table.ledger-table[data-ledger-schema] colgroup,
  .table.ledger-table[data-ledger-schema] thead{display:none}
  .table.ledger-table[data-ledger-schema] tbody{display:grid;gap:8px}
  .table.ledger-table[data-ledger-schema] tr{
    position:relative;
    min-height:0;
    padding:10px;
    border:1px solid rgba(202,220,244,.095);
    border-radius:14px;
    background:rgba(255,255,255,.026);
  }
  .table.ledger-table[data-ledger-schema] tr:has(.doc-badge){padding-right:48px}
  .table.ledger-table[data-ledger-schema] td{
    height:auto;
    min-height:0;
    padding:0;
    border:0;
    overflow:visible;
    text-align:left;
  }
  .table.ledger-table[data-ledger-schema] td + td{margin-top:6px}
  .table.ledger-table[data-ledger-schema] td[data-label]::before{
    content:attr(data-label);
    display:block;
    margin-bottom:2px;
    font-size:8.6px;
    line-height:1.1;
    font-weight:950;
    letter-spacing:.06em;
    text-transform:uppercase;
    color:rgba(199,210,232,.52);
  }
  .table.ledger-table[data-ledger-schema] td[data-label="Documents"]::before,
  .table.ledger-table[data-ledger-schema] td:empty::before{display:none}
  .table.ledger-table[data-ledger-schema] td:empty{display:none}
  .table.ledger-table[data-ledger-schema] tr:has(.doc-badge) td:last-child{
    position:absolute;
    top:10px;
    right:10px;
    width:30px;
    min-width:30px;
    max-width:30px;
    margin:0;
  }
  .table.ledger-table[data-ledger-schema] tr:has(.doc-badge) td:last-child .doc-badge{
    width:30px;
    min-width:30px;
    max-width:30px;
    height:24px;
    padding:0;
    gap:0;
  }
  .table.ledger-table[data-ledger-schema] tr:has(.doc-badge) td:last-child .doc-badge span{display:none}
}
@media (max-width:430px){
  .mobile-ops-actions{grid-template-columns:1fr 1fr}
  .mobile-ops-quickbar{grid-template-columns:1fr}
  .mobile-ops-action{min-height:66px;padding:9px}
}
