/*!************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/.pnpm/next@15.5.25_@types+node@22.20.1_react-dom@19.2.8_react@19.2.8__react@19.2.8/node_modules/next/dist/build/webpack/loaders/css-loader/src/index.js??ruleSet[1].rules[14].oneOf[5].use[2]!./node_modules/.pnpm/next@15.5.25_@types+node@22.20.1_react-dom@19.2.8_react@19.2.8__react@19.2.8/node_modules/next/dist/build/webpack/loaders/postcss-loader/src/index.js??ruleSet[1].rules[14].oneOf[5].use[3]!./src/app/(app)/app.module.css ***!
  \************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/*
 * The cockpit's own stylesheet.
 *
 * A CSS module rather than more globals: globals.css styles bare elements (body, h1,
 * table, td) and the landing deck deliberately overrides them. Scoping the application
 * chrome here keeps the two from fighting, and means a change to the operator UI cannot
 * move a pixel on the marketing page.
 *
 * Density is the point. This is a screen a planner keeps open all day next to SAP, so it
 * is tuned for information per pixel: 12–13px type, tabular numerals so columns of money
 * line up, 28px table rows, and hairline rules instead of cards-with-shadows.
 */

/*
 * Light, and stated outright rather than inherited.
 *
 * globals.css is dark-by-default with a prefers-color-scheme override; this console is
 * light for everyone regardless of OS setting, so every colour is a token defined here.
 * The ink/muted/line/red values are the landing deck's, so the marketing page, the login
 * screen and the console read as one product rather than three.
 */
.app_app__FRQiV {
  --bg: #f4f6f8;
  --panel: #ffffff;
  --panel-2: #f7f8fa;
  --raised: #f0f2f5;
  --line: #dfe3e9;
  --line-soft: #edeff3;
  --ink: #0b1220;
  --ink-2: #333e50;
  --muted: #5a6472;
  --dim: #8b95a3;
  --accent: #0a58ca;
  --hw-red: #de1e34;
  --crit: #c9182c;
  --warn: #9a6700;
  --ok: #1a7f37;
  --itar: #7a3fd0;
  --mono: ui-monospace, "SF Mono", SFMono-Regular, "JetBrains Mono", Menlo, monospace;

  color-scheme: light;
  display: grid;
  grid-template-columns: 232px 1fr;
  grid-template-rows: 52px 1fr;
  grid-template-areas: "brand top" "nav main";
  /*
   * dvh, not svh. `svh` is the SMALL viewport height — it deliberately excludes any
   * retractable browser UI, so on a desktop window it leaves a strip of bare page
   * showing under the sidebar. `dvh` tracks the actual viewport; `vh` is the fallback
   * for anything that does not know the unit.
   */
  height: 100vh;
  height: 100dvh;
  overflow: hidden;
  background: var(--bg);
  color: var(--ink);
  font: 13px/1.5 ui-sans-serif, -apple-system, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
  -webkit-font-smoothing: antialiased;
}

/* ── chrome ─────────────────────────────────────────────────────────────── */

/*
 * `min-width: 0` + `overflow: hidden` are load-bearing, not tidiness. A grid item's
 * default `min-width: auto` lets an oversized child push the column wider than its
 * track instead of clipping — which is how the brand lockup ended up painted across
 * the topbar. Clipping here keeps a future oversized mark a cosmetic problem rather
 * than a broken header.
 */
.app_brand__R2Ikn {
  grid-area: brand;
  display: flex; align-items: center; gap: 9px;
  padding: 0 14px;
  min-width: 0; overflow: hidden;
  border-right: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
  background: var(--panel);
}
.app_brandRule__zi11f { width: 1px; height: 18px; background: var(--line); flex: 0 0 auto; }
.app_brandName__oUR1g { font-size: 13.5px; font-weight: 650; letter-spacing: -0.01em; min-width: 0;
             white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }

.app_top__H_vFM {
  grid-area: top;
  display: flex; align-items: center; gap: 14px;
  padding: 0 16px;
  min-width: 0; overflow: hidden;
  border-bottom: 1px solid var(--line);
  background: var(--panel);
}
.app_topTitle__9_Lis { font-size: 13px; font-weight: 600; letter-spacing: -.005em; white-space: nowrap; }
/* The breadcrumb is the only expendable text up here, so it is the one that truncates
   when the window narrows — the status pills and the signed-in user must not wrap. */
.app_topCrumb__Bg_le { color: var(--dim); font-size: 12px; min-width: 0;
            overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.app_spacer__n7DRW { flex: 1 1 auto; min-width: 8px; }

.app_env__I9R2p {
  display: flex; align-items: center; gap: 7px; flex: 0 0 auto;
  font-size: 11px; color: var(--muted); white-space: nowrap;
  padding: 3px 9px; border: 1px solid var(--line); border-radius: 5px;
  background: var(--panel-2);
}
/* Below this the pills are the first thing to go: the title, the user and the nav
   still tell you where you are and who you are, which the pills only decorate. */
@media (max-width: 1080px) { .app_env__I9R2p { display: none; } }
@media (max-width: 860px)  { .app_topCrumb__Bg_le { display: none; } }
.app_dot__R_2d6 { width: 6px; height: 6px; border-radius: 50%; background: var(--ok); flex: none; }
.app_dotWarn__GspvX { background: var(--warn); }
.app_dotCrit__iOqr8 { background: var(--crit); }

.app_who__kI1aT { display: flex; align-items: center; gap: 8px; flex: 0 0 auto;
        font-size: 12px; color: var(--ink-2); white-space: nowrap; }
.app_avatar__PlRD6 {
  width: 24px; height: 24px; border-radius: 50%; flex: none;
  display: grid; place-items: center;
  background: linear-gradient(140deg, #eef1f5, #dfe4ec);
  border: 1px solid var(--line);
  font-size: 10.5px; font-weight: 650; color: var(--ink-2);
}

/* ── navigation ─────────────────────────────────────────────────────────── */

.app_nav__fwlsv {
  grid-area: nav;
  border-right: 1px solid var(--line);
  background: var(--panel);
  overflow-y: auto;
  padding: 10px 0 24px;
}
.app_navGroup__6DXDv { padding: 14px 16px 5px; font-size: 10px; letter-spacing: .1em;
            text-transform: uppercase; color: var(--dim); font-weight: 600; }
.app_navItem__Li9e_ {
  display: flex; align-items: center; gap: 9px;
  padding: 6px 16px; color: var(--ink-2); text-decoration: none;
  font-size: 12.5px; border-left: 2px solid transparent;
}
.app_navItem__Li9e_:hover { background: var(--panel-2); color: var(--ink); }
.app_navItemActive__haLg2 {
  background: var(--panel-2); color: var(--ink);
  border-left-color: var(--hw-red); font-weight: 550;
}
.app_navCount__EHx9B {
  margin-left: auto; font: 500 10.5px/1 var(--mono); color: var(--dim);
  background: var(--raised); border: 1px solid var(--line);
  padding: 2px 5px; border-radius: 4px;
}

/* ── main ───────────────────────────────────────────────────────────────── */

.app_main__jGWuZ { grid-area: main; overflow-y: auto; }
.app_page__sS_Gv { padding: 18px 22px 60px; }

.app_h1__z8p0x { font-size: 18px; font-weight: 650; margin: 0 0 3px; letter-spacing: -.015em; }
.app_sub__vnD6B { color: var(--muted); font-size: 12.5px; margin: 0 0 16px; }

.app_sectionHead__mN2JS {
  display: flex; align-items: baseline; gap: 10px;
  margin: 22px 0 9px;
}
.app_sectionHead__mN2JS:first-child { margin-top: 0; }
.app_h2__chZLX { font-size: 11px; font-weight: 650; letter-spacing: .09em; text-transform: uppercase;
      color: var(--muted); margin: 0; }
.app_sectionNote__4cixB { font-size: 11.5px; color: var(--dim); }

/* ── KPI strip ──────────────────────────────────────────────────────────── */

.app_kpis__XUGcR {
  display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
  grid-gap: 1px;
  gap: 1px; background: var(--line); border: 1px solid var(--line);
  border-radius: 7px; overflow: hidden; margin-bottom: 18px;
  box-shadow: 0 1px 2px rgb(11 18 32 / 4%);
}
.app_kpi__qY6pn { background: var(--panel); padding: 11px 14px 12px; }
.app_kpiLabel__ofSdD { font-size: 10px; letter-spacing: .08em; text-transform: uppercase;
            color: var(--dim); font-weight: 600; }
.app_kpiValue__JNPWo { font: 650 21px/1.15 var(--mono); letter-spacing: -.02em; margin-top: 5px;
            font-feature-settings: "tnum";
            font-variant-numeric: tabular-nums; }
.app_kpiFoot__JoWjo { font-size: 11px; color: var(--muted); margin-top: 3px; }
.app_kpiCrit__jSixP .app_kpiValue__JNPWo { color: var(--crit); }
.app_kpiWarn__yz2iO .app_kpiValue__JNPWo { color: var(--warn); }
.app_kpiOk__8jpiP   .app_kpiValue__JNPWo { color: var(--ok); }

/* ── panels + grid ──────────────────────────────────────────────────────── */

.app_cols__J3qJL { display: grid; grid-template-columns: minmax(0,1fr) 340px; grid-gap: 16px; gap: 16px; align-items: start; }
.app_cols3__gOnud { display: grid; grid-template-columns: repeat(auto-fit, minmax(280px,1fr)); grid-gap: 16px; gap: 16px; }
@media (max-width: 1180px) { .app_cols__J3qJL { grid-template-columns: minmax(0,1fr); } }

.app_panel__drnJc { border: 1px solid var(--line); border-radius: 7px; background: var(--panel);
          overflow: hidden; box-shadow: 0 1px 2px rgb(11 18 32 / 4%); }
.app_panelHead__LSGhc {
  display: flex; align-items: center; gap: 8px;
  padding: 9px 12px; border-bottom: 1px solid var(--line); background: var(--panel-2);
}
.app_panelTitle__8CgoD { font-size: 11px; font-weight: 650; letter-spacing: .07em;
              text-transform: uppercase; color: var(--ink-2); }
.app_panelNote__gjC2v { margin-left: auto; font-size: 11px; color: var(--dim); font-family: var(--mono); }
.app_panelBody__AViYg { padding: 11px 12px; }
.app_panelBodyFlush__gIraZ { padding: 0; }

/* ── tables ─────────────────────────────────────────────────────────────── */

.app_tableWrap__NbJz6 { overflow-x: auto; }
.app_table__SMLiL { width: 100%; border-collapse: collapse; font-size: 12.5px; }
.app_table__SMLiL th {
  text-align: left; font-size: 10px; letter-spacing: .07em; text-transform: uppercase;
  color: var(--dim); font-weight: 650; padding: 7px 10px;
  border-bottom: 1px solid var(--line); background: var(--panel-2);
  position: -webkit-sticky;
  position: sticky; top: 0; white-space: nowrap;
}
.app_table__SMLiL td { padding: 6px 10px; border-bottom: 1px solid var(--line-soft); vertical-align: middle; }
.app_table__SMLiL tbody tr:hover td { background: var(--panel-2); }
.app_table__SMLiL tbody tr:last-child td { border-bottom: 0; }
.app_num__d1aGf { text-align: right; font-family: var(--mono); font-feature-settings: "tnum"; font-variant-numeric: tabular-nums; white-space: nowrap; }
.app_mono__8_9Ng { font-family: var(--mono); font-size: 11.5px; }
.app_strong__Ujf8M { font-weight: 600; }
.app_rank__k91Nf { color: var(--dim); font-family: var(--mono); font-size: 11px; text-align: right; width: 26px; }
.app_link__LW5_J { color: var(--accent); text-decoration: none; }
.app_link__LW5_J:hover { text-decoration: underline; }
.app_rowCrit__nkzVu td { box-shadow: inset 2px 0 0 var(--crit); background: color-mix(in srgb, var(--crit) 3%, #fff); }
.app_rowWarn__a_KQJ td { box-shadow: inset 2px 0 0 var(--warn); background: color-mix(in srgb, var(--warn) 3%, #fff); }
.app_rowCrit__nkzVu:hover td, .app_rowWarn__a_KQJ:hover td { background: var(--panel-2); }

/* ── tags ───────────────────────────────────────────────────────────────── */

.app_tags__hng23 { display: flex; gap: 5px; flex-wrap: wrap; }
.app_tag__KUEQu {
  font-size: 10.5px; line-height: 1.45; padding: 1px 6px; border-radius: 4px;
  border: 1px solid var(--line); color: var(--muted); background: var(--raised);
  white-space: nowrap;
}
.app_tagCrit__PyCed { color: var(--crit); border-color: color-mix(in srgb, var(--crit) 42%, transparent);
           background: color-mix(in srgb, var(--crit) 9%, #fff); }
.app_tagWarn__IMe_k { color: var(--warn); border-color: color-mix(in srgb, var(--warn) 42%, transparent);
           background: color-mix(in srgb, var(--warn) 9%, #fff); }
.app_tagOk__nfcox   { color: var(--ok);   border-color: color-mix(in srgb, var(--ok) 42%, transparent);
           background: color-mix(in srgb, var(--ok) 9%, #fff); }
.app_tagItar__BKqwF { color: var(--itar); border-color: color-mix(in srgb, var(--itar) 42%, transparent);
           background: color-mix(in srgb, var(--itar) 9%, #fff); }

/* ── meters ─────────────────────────────────────────────────────────────── */

.app_meter__rQILD { height: 4px; border-radius: 2px; background: var(--raised);
         overflow: hidden; min-width: 54px; }
.app_meterFill__9J3q0 { height: 100%; background: var(--accent); }
.app_meterCrit__y_IMY { background: var(--crit); }
.app_meterWarn__KnZLZ { background: var(--warn); }
.app_meterOk__3Z_gJ { background: var(--ok); }

.app_bars__5OnNC { display: flex; flex-direction: column; gap: 9px; }
.app_bar__IPA3l { display: grid; grid-template-columns: 1fr auto; grid-gap: 4px 10px; gap: 4px 10px; }
.app_barLabel__cLrFt { font-size: 12px; color: var(--ink-2); }
.app_barValue__on73k { font: 12px/1 var(--mono); color: var(--ink); font-feature-settings: "tnum"; font-variant-numeric: tabular-nums; }
.app_barTrack__mtM_E { grid-column: 1 / -1; height: 5px; border-radius: 3px; background: var(--raised); overflow: hidden; }
.app_barFill__L8L3r { height: 100%; background: linear-gradient(90deg, var(--hw-red), #ff5f6d); }

/* ── agent fleet ────────────────────────────────────────────────────────── */

.app_agentRow__R44Xi {
  display: grid; grid-template-columns: 8px 1fr auto; grid-gap: 9px; gap: 9px; align-items: center;
  padding: 8px 12px; border-bottom: 1px solid var(--line-soft);
}
.app_agentRow__R44Xi:last-child { border-bottom: 0; }
.app_agentName__l7hEy { font-size: 12.5px; font-weight: 550; }
.app_agentMeta__vAkCL { font-size: 11px; color: var(--dim); font-family: var(--mono); }
.app_pulse__706Xj { width: 7px; height: 7px; border-radius: 50%; background: var(--ok); }
.app_pulseIdle__l59Gr { background: var(--dim); }
.app_pulseBlocked__3QxH4 { background: var(--warn); }

/* ── derivation / audit strip ───────────────────────────────────────────── */

.app_why__60SV_ {
  font: 11.5px/1.65 var(--mono); color: var(--muted);
  background: var(--panel-2); border: 1px solid var(--line);
  border-radius: 5px; padding: 7px 9px; margin-top: 7px;
  overflow-x: auto; white-space: pre;
}
/*
 * The same block for prose. `.why` keeps `pre` because a derivation is column-aligned
 * arithmetic and rewrapping it destroys the alignment a buyer is checking; a prompt is
 * a paragraph and should wrap to the panel instead of scrolling sideways.
 */
.app_whyProse__MdH_z { white-space: pre-wrap; overflow-x: visible; }

.app_banner__33LWw {
  display: flex; gap: 10px; align-items: flex-start;
  border: 1px solid color-mix(in srgb, var(--warn) 35%, #fff);
  background: color-mix(in srgb, var(--warn) 7%, #fff);
  border-radius: 7px; padding: 10px 13px; margin-bottom: 16px; font-size: 12.5px;
}
.app_bannerTitle__PLqt5 { color: var(--warn); font-weight: 650; }

.app_empty__vNIUv { padding: 26px 12px; text-align: center; color: var(--dim); font-size: 12.5px; }

.app_foot__otICc { margin-top: 26px; padding-top: 14px; border-top: 1px solid var(--line);
        color: var(--dim); font-size: 11.5px; }

/* ── leverage: today's ordering against this one ────────────────────────── */

/*
 * The product's whole argument in one figure, so it gets real estate rather than a
 * table column. Two rankings of the same eight orders side by side, joined by the rank
 * each line moves. Nothing here is a new fact — it is the same rows sorted twice — and
 * that is the point: the reordering IS the insight.
 */
.app_leverage__pJuIn { display: grid; grid-template-columns: 1fr 34px 1fr; grid-gap: 0; gap: 0; align-items: stretch; }
@media (max-width: 900px) { .app_leverage__pJuIn { grid-template-columns: 1fr; } .app_leverageGap__tujO3 { display: none; } }
.app_leverageCol__aOkVD { min-width: 0; }
.app_leverageHead___I0DP {
  font-size: 10px; letter-spacing: .08em; text-transform: uppercase; font-weight: 650;
  color: var(--dim); padding: 0 10px 7px;
}
.app_leverageHeadNow__wfQM6 { color: var(--muted); }
.app_leverageHeadNew__IjYJU { color: var(--hw-red); }
.app_leverageGap__tujO3 { position: relative; }

.app_lev__646ao {
  display: grid; grid-template-columns: 20px 1fr auto; grid-gap: 8px; gap: 8px; align-items: baseline;
  padding: 5px 10px; border-top: 1px solid var(--line-soft); font-size: 12.5px;
}
.app_levRank__8dqCJ { font: 11px/1 var(--mono); color: var(--dim); text-align: right; }
.app_levName__aix1L { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.app_levValue__u7WA1 { font: 12px/1 var(--mono); font-feature-settings: "tnum"; font-variant-numeric: tabular-nums; }
.app_levMuted__gB9Fp { color: var(--muted); }
.app_levHot__yOL98 { background: color-mix(in srgb, var(--hw-red) 6%, #fff); }
.app_levHot__yOL98 .app_levValue__u7WA1 { color: var(--hw-red); font-weight: 650; }

/* Rank movement, printed beside the new ordering. */
.app_levMove__osyR6 { font: 10.5px/1 var(--mono); padding: 1px 5px; border-radius: 4px; white-space: nowrap; }
.app_levUp__BLA3V { color: var(--ok); background: color-mix(in srgb, var(--ok) 10%, #fff); }
.app_levDown__1JZXN { color: var(--muted); background: var(--raised); }
.app_levX__sbuvj { font: 650 12px/1 var(--mono); color: var(--hw-red); }

/* ── linked exposure ────────────────────────────────────────────────────── */

.app_linked__cb5ZZ { display: grid; grid-gap: 10px; gap: 10px; }
.app_linkRow__WwMtB {
  display: grid; grid-template-columns: 1fr 26px 1fr; grid-gap: 10px; gap: 10px; align-items: center;
  padding: 11px 12px; border: 1px solid color-mix(in srgb, var(--hw-red) 28%, #fff);
  background: color-mix(in srgb, var(--hw-red) 4%, #fff); border-radius: 6px;
}
@media (max-width: 760px) { .app_linkRow__WwMtB { grid-template-columns: 1fr; } }
.app_linkParty__um04p { min-width: 0; }
.app_linkPo__UB_Cb { font: 12px/1.4 var(--mono); color: var(--accent); }
.app_linkSupplier__wXW_9 { font-size: 13px; font-weight: 600; }
.app_linkPart__aHl6A { font: 11px/1.4 var(--mono); color: var(--muted); }
.app_linkArrow___abKG { text-align: center; color: var(--hw-red); font-size: 16px; }
.app_linkNote__Q3kq6 { grid-column: 1 / -1; font-size: 12px; color: var(--ink-2); }

.app_leveragePunch__pOrqm {
  margin: 14px 0 0; padding: 11px 13px; border-radius: 6px;
  border: 1px solid color-mix(in srgb, var(--hw-red) 26%, #fff);
  background: color-mix(in srgb, var(--hw-red) 5%, #fff);
  font-size: 13.5px; line-height: 1.55; color: var(--ink);
}

