/*!*********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** 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[10].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[10].use[3]!./app/globals.css ***!
  \*********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
:root { --bg: #f6f7f9; --panel: #fff; --ink: #1c2330; --muted: #6b7280; --line: #e3e6eb; --accent: #0b6e4f; --accent-soft: #e6f2ee; }
* { box-sizing: border-box; }
body { margin: 0; background: var(--bg); color: var(--ink); font: 14px/1.45 -apple-system, "Segoe UI", Roboto, "Noto Sans Ethiopic", "Abyssinica SIL", sans-serif; }
header { background: var(--accent); color: #fff; padding: 12px 24px; display: flex; gap: 24px; align-items: baseline; }
header a { color: #fff; text-decoration: none; opacity: .85; } header a:hover { opacity: 1; } header b { font-size: 16px; }
main { max-width: 1200px; margin: 0 auto; padding: 24px; }
h1 { font-size: 22px; margin: 0 0 16px; } h2 { font-size: 16px; margin: 24px 0 8px; }
.card { background: var(--panel); border: 1px solid var(--line); border-radius: 8px; padding: 14px 16px; }
.card .k { color: var(--muted); font-size: 12px; text-transform: uppercase; letter-spacing: .04em; } .card .v { font-size: 22px; font-weight: 600; margin-top: 4px; }
table { border-collapse: collapse; width: 100%; background: var(--panel); border: 1px solid var(--line); border-radius: 8px; overflow: hidden; }
th, td { text-align: left; padding: 6px 10px; border-bottom: 1px solid var(--line); vertical-align: top; } th { background: #f0f2f5; font-weight: 600; font-size: 12px; }
tr:last-child td { border-bottom: 0; } td.num { text-align: right; font-feature-settings: "tnum"; font-variant-numeric: tabular-nums; }
.muted { color: var(--muted); } .pill { display: inline-block; background: var(--accent-soft); color: var(--accent); border-radius: 999px; padding: 1px 8px; font-size: 11px; }
.tree { list-style: none; padding-left: 18px; margin: 0; } .tree > li { margin: 2px 0; }
.node { cursor: pointer; display: inline-flex; gap: 8px; align-items: baseline; padding: 2px 6px; border-radius: 4px; } .node:hover { background: var(--accent-soft); }
.node .code { font-family: ui-monospace, Menlo, monospace; color: var(--muted); font-size: 12px; } .node .tw { width: 12px; display: inline-block; color: var(--muted); }
.row { display: flex; gap: 12px; align-items: center; flex-wrap: wrap; margin-bottom: 12px; }
select, input, button { font: inherit; padding: 6px 8px; border: 1px solid var(--line); border-radius: 6px; background: #fff; } button { background: var(--accent); color: #fff; border-color: var(--accent); cursor: pointer; }
pre { background: #0f172a; color: #e2e8f0; padding: 12px; border-radius: 8px; overflow: auto; font-size: 12px; max-height: 480px; }
.err { background: #fef2f2; color: #991b1b; border: 1px solid #fecaca; padding: 8px 12px; border-radius: 6px; }

/* organisation explorer */
.explorer { display: grid; grid-template-columns: minmax(360px, 1fr) minmax(420px, 1.2fr); grid-gap: 16px; gap: 16px; align-items: start; }
.pane { background: var(--panel); border: 1px solid var(--line); border-radius: 8px; padding: 12px; max-height: calc(100vh - 220px); overflow: auto; }
.search { width: 100%; margin-bottom: 8px; }
.hits { list-style: none; margin: 0; padding: 0; } .hits li { padding: 6px 8px; border-bottom: 1px solid var(--line); cursor: pointer; } .hits li:hover { background: var(--accent-soft); }
.tree .node.sel { background: var(--accent-soft); outline: 1px solid var(--accent); }
.tw { cursor: pointer; -webkit-user-select: none; -moz-user-select: none; user-select: none; }
.emph { font-weight: 700; }
.lv { display: inline-block; font-size: 10px; font-weight: 700; letter-spacing: .03em; text-transform: uppercase; padding: 1px 5px; border-radius: 3px; color: #fff; background: #64748b; line-height: 14px; }
.lv-r { background: #1e293b; } .lv-z { background: #0f766e; } .lv-w { background: #0369a1; } .lv-f { background: #7c3aed; } .lv-pb { background: #b45309; } .lv-p { background: #be123c; } .lv-sa { background: #15803d; } .lv-sp { background: #a21caf; } .lv-ps { background: #c2410c; }
.legend { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 12px; } .legend .lv { font-size: 11px; text-transform: none; letter-spacing: 0; padding: 2px 8px; } .legend .lv .muted { color: rgba(255,255,255,.75); }
.ph { display: inline-block; font-size: 10px; padding: 1px 6px; border-radius: 999px; border: 1px solid; } .ph-0 { color: #92400e; border-color: #f59e0b; background: #fffbeb; } .ph-1 { color: #1d4ed8; border-color: #60a5fa; background: #eff6ff; } .ph-2 { color: #166534; border-color: #4ade80; background: #f0fdf4; }
.crumbs { font-size: 12px; color: var(--muted); } .crumbs a { color: var(--accent); cursor: pointer; }
table.kv th { width: 130px; color: var(--muted); font-weight: 500; background: transparent; }
button.danger { background: #b91c1c; border-color: #b91c1c; } button.ghost { background: #fff; color: var(--ink); }
.ok { background: #f0fdf4; color: #166534; border: 1px solid #bbf7d0; padding: 8px 12px; border-radius: 6px; }

/* ===== legacy IBEX shell ===== */
:root { --navy: #1c3f8f; --navy-dark: #12305f; --sky: #e9eefb; --bar: #edf0f5; --tree-red: #c00; }
.ibex-home { min-height: 100vh; background: #4f74c8; color: #fff; padding: 24px 40px 60px; position: relative; font-family: Verdana, Tahoma, sans-serif; }
.home-topright { position: absolute; top: 8px; right: 16px; font-size: 11px; } .home-topright a { color: #d9e4ff; margin-left: 10px; }
.home-brand { margin: 32px 0 8px; } .home-brand img { max-width: 100%; height: auto; display: block; } .home-logo { font-size: 64px; font-weight: 700; letter-spacing: 2px; line-height: 1; } .home-logo span { font-size: 12px; font-weight: 400; margin-left: 8px; vertical-align: middle; }
.home-tag { font-size: 16px; margin-top: 4px; } .home-lines i { display: block; height: 1px; background: rgba(255,255,255,.35); margin: 10px 0; } .home-lines i:nth-child(n) { width: 240px; } .home-lines i:nth-child(2) { width: 200px; } .home-lines i:nth-child(3) { width: 180px; } .home-lines i:nth-child(4) { width: 160px; } .home-lines i:nth-child(5) { width: 140px; } .home-lines i:nth-child(6) { width: 120px; }
.home-body { font-size: 13px; line-height: 2; } .home-user { color: #ffe27a; } .home-lang { font-size: 12px; padding: 1px 4px; }
.home-modules ul { list-style: none; margin: 8px 0 0; padding: 0; width: 420px; }
.home-modules li:nth-child(odd) .mod-row { background: rgba(255,255,255,.06); }
.mod-row { display: flex; align-items: center; gap: 14px; color: #fff; text-decoration: none; font-weight: 700; font-size: 15px; padding: 11px 14px; margin-left: -14px; border-radius: 6px; line-height: 1.3; transition: background .1s ease; }
.mod-row:hover, .mod-row:focus-visible { background: rgba(255,255,255,.22) !important; outline: none; }
.home-modules li:nth-child(even) .mod-row:hover { background: rgba(0,0,0,.14) !important; }
.mod-row:active { background: rgba(255,255,255,.32) !important; }
.mod-icon { display: inline-grid; place-items: center; width: 32px; height: 32px; border-radius: 7px; background: rgba(255,255,255,.14); border: 1px solid rgba(255,255,255,.3); color: #fff; flex: none; }
.mod-icon svg { width: 20px; height: 20px; }
.home-foot { position: absolute; bottom: 16px; left: 40px; right: 40px; font-size: 10px; color: #d9e4ff; }

/* Centred portal layout. The legacy screens sat top-left in an 800x600 frameset; on a modern
   monitor that leaves the login form and the module list stranded in one corner. Blocks are
   centred as blocks, so text and the module rows keep their left alignment and the icon
   column still lines up. .home-topright and .home-foot are excluded: both are absolutely
   positioned with left/right set, and giving them a width would collapse the footer. */
.ibex-home { display: flex; flex-direction: column; align-items: center; }
.ibex-home > *:not(.home-topright):not(.home-foot) { width: 100%; max-width: 420px; }
/* The logo is wider than the column and keeps its own size. */
.ibex-home .home-brand { max-width: none; display: flex; justify-content: center; }
.home-modules ul { width: 100%; }

/* The login screen carries less, so centre it vertically as well and use a narrower column. */
.ibex-home.login { justify-content: center; }
.ibex-home.login > *:not(.home-topright):not(.home-foot) { max-width: 320px; }
.ibex-home.login .home-lines { width: 100%; margin: 4px 0 18px; }
.login-form { max-width: none; }

.shell { display: grid; grid-template-rows: auto auto 1fr auto; height: 100vh; font-family: Verdana, Tahoma, "Noto Sans Ethiopic", sans-serif; font-size: 12px; background: #fff; }
.menubar { background: var(--navy); color: #fff; display: flex; gap: 2px; padding: 0 6px; height: 24px; align-items: stretch; }
.menu { position: relative; display: flex; align-items: stretch; } .menu:hover, .menu.open { background: var(--navy-dark); }
.menu-label { background: transparent; border: 0; color: #fff; font: inherit; font-weight: 700; font-size: 11px; padding: 0 10px; cursor: pointer; height: 24px; }
.menu-drop { display: none; position: absolute; top: 24px; left: 0; background: #fff; color: var(--ink); border: 1px solid #9aa7c7; box-shadow: 0 4px 12px rgba(0,0,0,.15); min-width: 220px; z-index: 1000; font-weight: 400; padding: 4px 0; }
.menu.open .menu-drop, .menu:hover .menu-drop { display: block; }
.menu-item { display: block; width: 100%; text-align: left; background: transparent; border: 0; font: inherit; font-size: 12px; color: var(--ink); padding: 6px 12px; white-space: nowrap; cursor: pointer; } .menu-item:hover { background: var(--sky); }
.menubar { position: relative; z-index: 50; }
.toolbar { background: var(--bar); border-bottom: 1px solid #c9d0dc; display: flex; align-items: center; gap: 6px; padding: 3px 8px; height: 34px; }
.tb-year select { font-size: 11px; padding: 1px 4px; margin-left: 4px; } .tb-btn { background: #fff; border: 1px solid #b9c2d3; border-radius: 3px; padding: 2px 6px; font-size: 11px; display: inline-flex; gap: 4px; align-items: center; color: var(--ink); } .tb-btn:hover { background: var(--sky); }
.tb-text { display: none; } .tb-spacer { flex: 1 1; } .toolbar a { color: var(--navy); font-size: 11px; margin-left: 10px; }
.body { display: grid; grid-template-columns: 340px 1fr; min-height: 0; }
.leftpane { border-right: 1px solid #c9d0dc; display: flex; flex-direction: column; min-height: 0; background: #fff; }
.tabs { display: flex; background: var(--bar); border-bottom: 1px solid #c9d0dc; } .tabs button { flex: 1 1; border: 0; border-right: 1px solid #c9d0dc; background: #dfe4ee; padding: 4px 0; font-size: 11px; color: var(--ink); } .tabs button.on { background: #fff; font-weight: 700; }
.pane-body { overflow: auto; padding: 6px 4px; flex: 1 1; }
.bitree ul { list-style: none; margin: 0; padding-left: 14px; } .bitree > ul { padding-left: 2px; } .bitree li { line-height: 18px; white-space: nowrap; }
.tw { display: inline-block; width: 12px; color: #666; cursor: pointer; font-size: 11px; text-align: center; }
.glyph { display: inline-block; min-width: 18px; text-align: center; font-weight: 700; color: var(--tree-red); font-size: 10px; margin-right: 2px; }
.lbl { cursor: pointer; padding: 0 3px; border-radius: 2px; } .lbl:hover { background: var(--sky); } .lbl.sel { background: #ffe9a8; } .lbl.ru { font-weight: 700; }
.tree-loading { color: var(--muted); padding: 4px 8px; }
.content { overflow: auto; padding: 8px 12px; min-width: 0; }
.titlebar { background: var(--navy); color: #fff; font-weight: 700; font-size: 11px; letter-spacing: .04em; padding: 3px 8px; margin: 0 0 6px; }
.report-name { background: var(--sky); padding: 3px 8px; font-weight: 700; margin-bottom: 6px; }
.ctxtag { background: var(--sky); border-bottom: 1px solid #b7c4e8; margin-bottom: 10px; font-size: 11px; } .ctxtag th { text-align: left; padding: 1px 8px; font-weight: 700; width: 90px; } .ctxtag td { padding: 1px 8px; font-weight: 700; }
.content-blank { color: var(--muted); padding: 24px; } .hint { color: #1f3b73; font-size: 11px; margin: 6px 0; }
.params { border: 1px solid #b9c2d3; border-radius: 3px; margin: 8px 0; padding: 6px 10px; } .params legend { color: #1f3b73; font-size: 11px; padding: 0 4px; }
.prow { display: flex; align-items: center; gap: 8px; margin: 4px 0; } .prow label { min-width: 190px; font-size: 11px; } .prow select, .prow input { font-size: 11px; padding: 2px 4px; min-width: 160px; }
button.lg { background: #f3f4f6; color: var(--ink); border: 1px solid #9aa3b5; border-radius: 3px; padding: 2px 10px; font-size: 11px; margin-right: 6px; } button.lg:disabled { opacity: .45; }
.grid { font-size: 11px; } .grid th { background: #6b7280; color: #fff; font-weight: 700; } .grid td.code { font-family: ui-monospace, Menlo, monospace; } .rowlink { cursor: pointer; } .rowlink:hover td { background: #e6f2ee; }
.report { background: #fff; } .report-head { text-align: center; margin: 8px 0 10px; } .rh-title { font-weight: 700; font-size: 14px; text-transform: uppercase; } .rh-sub { font-size: 11px; color: #334; } .rh-meta { display: flex; justify-content: space-between; font-size: 11px; border-top: 1px solid #ccc; border-bottom: 1px solid #ccc; padding: 2px 6px; margin: 6px 0; }
.report-table { overflow-x: auto; } .report-table .grid th { background: #dfe4ee; color: var(--ink); border: 1px solid #b9c2d3; } .report-table .grid td { border: 1px solid #e3e6eb; }
.footer { background: var(--bar); border-top: 1px solid #c9d0dc; display: flex; justify-content: space-between; padding: 2px 10px; font-size: 11px; color: #334; }
@media print { .menubar, .toolbar, .leftpane, .footer, button { display: none !important; } .body { grid-template-columns: 1fr; } }

.body.noleft { grid-template-columns: 1fr; }
.con-placeholder { background: #4c6fd1; color: #fff; height: 100%; min-height: 60vh; display: flex; flex-direction: column; align-items: center; justify-content: center; margin: -8px -12px; }
.cp-title { font-size: 40px; font-weight: 700; letter-spacing: .06em; } .cp-sub { color: #ffe27a; font-size: 14px; margin-top: 8px; }

.ru-line { font-size: 11px; margin: 4px 0; } .section { background: var(--bar); border: 1px solid #c9d0dc; padding: 2px 6px; font-size: 11px; font-weight: 700; margin: 6px 0 4px; cursor: pointer; }
.filter { border: 1px solid #c9d0dc; padding: 6px 8px; margin-bottom: 6px; } .vt { display: grid; grid-template-columns: repeat(3, 70px); } .fgrid { display: grid; grid-template-columns: repeat(3, 1fr); grid-gap: 4px 12px; gap: 4px 12px; margin: 6px 0; } .fgrid label { font-size: 11px; display: flex; justify-content: space-between; gap: 6px; align-items: center; } .fgrid input { width: 120px; font-size: 11px; }
.matching { border: 1px solid #c9d0dc; padding: 4px; min-height: 120px; } .grid.tx td, .grid.tx th { padding: 2px 5px; font-size: 11px; vertical-align: top; } .grid.tx input, .grid.tx select { font-size: 11px; padding: 1px 3px; }
.entry { border: 1px solid #c9d0dc; background: #f7f8fa; padding: 4px; margin-top: 8px; } a.del { color: var(--navy); cursor: pointer; font-size: 10px; }

iframe.report-frame { width: 100%; height: calc(100vh - 160px); border: 1px solid #c9d0dc; background: #fff; }
button.lg.on { background: var(--sky); border-color: var(--navy); }

.home-lang { font-size: 12px; padding: 2px 6px; }
.lang-row { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; } .lang-group { display: inline-flex; gap: 8px; }
.ghost-btn { background: transparent; color: #fff; border: 1px solid rgba(255,255,255,.55); border-radius: 6px; padding: 5px 14px; font: inherit; font-size: 13px; line-height: 1.2; cursor: pointer; transition: background .1s ease, border-color .1s ease; }
.ghost-btn:hover { background: rgba(255,255,255,.14); border-color: #fff; }
.ghost-btn.on { background: #fff; color: #2f4fa0; border-color: #fff; font-weight: 700; }
/* login */
.ibex-home.login .home-lines i { display: block; height: 1px; background: rgba(255,255,255,.55); margin: 9px 0; } .ibex-home.login .home-lines { width: 240px; margin: 4px 0 18px; }
.login-form { display: grid; grid-template-columns: max-content 1fr; grid-gap: 10px 12px; gap: 10px 12px; align-items: center; max-width: 320px; font-size: 12px; }
.login-form label { display: contents; } .login-form input { font-size: 12px; padding: 3px 6px; width: 160px; border: 1px solid #b9c2d3; border-radius: 3px; }
.login-actions { grid-column: 2; } .login-btn { font-size: 11px; padding: 2px 10px; border: 1px solid #9aa3b5; border-radius: 3px; background: #f3f4f6; color: var(--ink); cursor: pointer; }
.login-error { grid-column: 1 / -1; color: #ffe27a; font-weight: 700; font-size: 12px; }

.vwiz { border: 1px solid #c9d0dc; padding: 10px 12px; max-width: 620px; } .vwiz-h { color: #1f3b73; font-weight: 700; font-size: 12px; margin: 8px 0 4px; }
.vform { border: 1px solid #c9d0dc; padding: 10px 12px; } .vform-top { display: flex; gap: 24px; align-items: baseline; background: var(--sky); padding: 4px 8px; font-size: 11px; margin: -10px -12px 10px; }
.vform-code { margin-left: auto; border: 1px solid #b9c2d3; padding: 1px 8px; background: #fff; font-weight: 700; }
.row.sigs { flex-wrap: wrap; gap: 18px; margin-top: 10px; border-top: 1px solid var(--line); padding-top: 10px; }


/* ---------------------------------------------------------------- Administration module (A-1 .. A-9) */
.adm-form { font-size: 11px; border-collapse: collapse; margin: 6px 0; }
.adm-form th { text-align: left; font-weight: 700; color: #1f3b73; padding: 3px 12px 3px 0; vertical-align: top; white-space: nowrap; }
.adm-form td { padding: 3px 0; }
.adm-form input[type=text], .adm-form input:not([type]), .adm-form input[type=password] { font-size: 11px; padding: 2px 5px; width: 260px; border: 1px solid #b9c2d3; border-radius: 3px; }
.adm-form select { font-size: 11px; }
.adm-inline { display: inline-flex; gap: 6px; align-items: center; }
.adm-inline input { width: 120px !important; }
.adm-err div { margin: 1px 0; }
.adm-tabs { display: flex; gap: 2px; border-bottom: 1px solid #b9c2d3; margin: 0 0 8px; }
.adm-tabs button { font-size: 11px; padding: 3px 12px; border: 1px solid #b9c2d3; border-bottom: none; border-radius: 3px 3px 0 0; background: #eef1f6; cursor: pointer; }
.adm-tabs button.on { background: var(--sky); font-weight: 700; }
.adm-dual { display: flex; gap: 10px; align-items: center; margin: 8px 0; }
.adm-dual select { font-size: 11px; min-width: 240px; }
.adm-dual .lbl { font-weight: 700; color: #1f3b73; font-size: 11px; margin-bottom: 2px; }
.adm-dual-btns { display: flex; flex-direction: column; gap: 6px; }
.adm-attrs { margin: 8px 0; } .adm-attrs .row { align-items: center; gap: 8px; flex-wrap: wrap; }
.adm-attrs input { font-size: 11px; padding: 2px 5px; width: 220px; border: 1px solid #b9c2d3; border-radius: 3px; }
.adm-roleform { display: flex; gap: 20px; align-items: flex-start; flex-wrap: wrap; }
.adm-roleform select { font-size: 11px; min-width: 260px; display: block; margin-bottom: 6px; }
.adm-chips { display: flex; flex-wrap: wrap; gap: 4px 16px; font-size: 11px; margin: 6px 0; }
.adm-chips label { white-space: nowrap; }

/* ---------------------------------------------------------------- Accounts Consolidation module (C-1 .. C-6) */
.con-three { display: grid; grid-template-columns: 1fr 1.1fr 1fr; grid-gap: 8px; gap: 8px; align-items: start; margin: 6px 0; }
.con-panel { border: 1px solid #b9c2d3; background: #fff; min-height: 260px; display: flex; flex-direction: column; }
.con-panel-title { background: #d7dce6; color: #1f3b73; font-weight: 700; font-size: 11px; padding: 3px 8px; border-bottom: 1px solid #b9c2d3; }
.con-panel-body { padding: 6px 8px; overflow: auto; max-height: 60vh; font-size: 11px; }
.con-centre .con-panel-body { background: #fbfcfe; }
.con-bar { background: #eef1f6; border: 1px solid #dfe3ea; padding: 3px 6px; margin: -6px -8px 6px; font-size: 11px; }
.con-sub { background: var(--sky); color: #1f3b73; font-weight: 700; font-size: 11px; padding: 2px 6px; margin: 8px -8px 6px; }
.con-detail { padding: 2px 0 4px; }
.con-prompt { color: #067a3f; font-weight: 700; padding: 4px 0; }
.con-confirm { border: 1px solid #d0b0b0; background: #fff6f6; padding: 6px 8px; margin: 6px 0; }
.con-empty { border: 1px solid #c9a227; background: #fffbe6; padding: 6px 10px; margin: 6px 0; font-size: 11px; }
.con-tree { font-size: 11px; line-height: 1.6; }
.con-node { display: flex; align-items: center; gap: 2px; white-space: nowrap; }
.con-node:hover { background: #eef4ff; }
.con-node.sel { background: #fdf6c8; }
.con-node.mapped .con-label { color: #067a3f; }
.con-exp { width: 13px; height: 13px; line-height: 1; font-size: 10px; border: 1px solid #9aa3b5; background: #fff; cursor: pointer; padding: 0; }
.con-exp-sp { display: inline-block; width: 15px; }
.con-label { cursor: pointer; padding: 0 3px; }
.con-file { margin: 8px 0; font-size: 11px; }
.con-reports { display: grid; grid-template-columns: 280px 1fr; grid-gap: 10px; gap: 10px; align-items: start; }
.con-repgroup { font-weight: 700; color: #1f3b73; margin: 6px 0 2px; }
.con-repleaf { padding: 2px 6px; cursor: pointer; }
.con-repleaf:hover { background: #eef4ff; }
.con-repleaf.sel { background: #fdf6c8; font-weight: 700; }
.con-repparams { min-width: 0; }
@media (max-width: 1100px) { .con-three { grid-template-columns: 1fr; } .con-reports { grid-template-columns: 1fr; } }

/* Change Password screen (manual ch.0.3) */
.cp-form { max-width: 400px; }
.cp-heading { grid-column: 1 / -1; font-size: 15px; font-weight: 700; margin-bottom: 4px; }
.cp-rule { grid-column: 1 / -1; font-size: 11px; opacity: .85; margin-top: 10px; max-width: 380px; line-height: 1.5; }


/* ---- Disbursement module (docs/analysis/06-ui-screens.md section 4) ---- */
.dis-ctxtag th { white-space: nowrap; }
.dis-pad { padding: 6px 8px; }
.dis-subtitle { padding: 4px 8px; font-weight: bold; background: #eef3fa; border-bottom: 1px solid #c3d3e6; }
.dis-form th { text-align: right; white-space: nowrap; padding-right: 6px; font-weight: bold; width: 1%; }
.dis-form td { padding: 2px 6px; }
.dis-form input[type=text], .dis-form input:not([type]) { min-width: 160px; }
.dis-form textarea { width: 320px; }
.dis-figs th { text-align: right; white-space: nowrap; background: #eef3fa; }
.dis-figs td.num { text-align: right; font-family: Consolas, "Courier New", monospace; }
.dis-errs { margin: 0; padding-left: 18px; }
.dis-errs li { margin: 2px 0; }
.dis-status { font-weight: bold; }
.dis-status-pending { color: #c60; }
.dis-status-approved { color: #080; }
.dis-total td { background: #f2f5f9; border-top: 2px solid #c3d3e6; }
.dis-lines td.num, .dis-deds td.num, .dis-weeks td.num { text-align: right; font-family: Consolas, "Courier New", monospace; }
.dis-sof td { padding: 2px 6px; }
.dis-entry { border: 1px solid #c3d3e6; background: #f7f9fc; padding: 4px 6px; margin: 6px 0; }
.dis-newlinks { flex-wrap: wrap; gap: 4px; }
.dis-bankpick select { max-width: 420px; }
.dis-scroll { overflow-x: auto; max-width: 100%; }
.dis-weeks th { white-space: nowrap; font-size: 10px; }
.dis-cell { width: 62px; text-align: right; font-family: Consolas, "Courier New", monospace; }

/* console: uses the IBEX shell chrome; only its own bits below */
.cons-cards { display: grid; grid-template-columns: repeat(auto-fit, minmax(190px, 1fr)); grid-gap: 12px; gap: 12px; margin-bottom: 12px; }
.content h3 { font-size: 13px; margin: 18px 0 6px; color: #1f3b73; }
.sel-row td { background: #e6f2ee; }
label.upload { cursor: pointer; display: inline-block; } .chk { display: flex; flex-direction: column; gap: 3px; } .chk label { font-size: 11px; }
.tb-btn.on { background: var(--sky); border-color: var(--navy); }

/* Budget, Budget Adjustment and Budget Control screens (docs/analysis/06-ui-screens.md sections 1-3). */
.bud-note { font-weight: 700; font-size: 11px; text-align: right; color: var(--ink); margin: 4px 0; }
.bud-errs { margin: 0; padding-left: 18px; } .bud-errs li { margin: 2px 0; }
.bud-form { font-size: 11px; border-collapse: collapse; margin: 8px 0; }
.bud-form th { text-align: left; font-weight: 700; padding: 3px 12px 3px 0; vertical-align: top; white-space: nowrap; color: #1f3b73; }
.bud-form td { padding: 3px 0; }
.bud-form input[type=text], .bud-form input:not([type]), .bud-name { font-size: 11px; padding: 1px 4px; border: 1px solid #b9c2d3; border-radius: 2px; }
.bud-name { width: 320px; } .bud-suffix { width: 46px; text-align: center; } .bud-prefix { font-family: ui-monospace, Menlo, monospace; color: var(--muted); }
.bud-amt { font-size: 11px; padding: 1px 4px; border: 1px solid #b9c2d3; border-radius: 2px; text-align: right; font-feature-settings: "tnum"; font-variant-numeric: tabular-nums; }
.bud-acct { font-family: ui-monospace, Menlo, monospace; font-size: 11px; padding: 1px 3px; border: 1px solid #b9c2d3; border-radius: 2px; }
.bud-grid th, .bud-grid td { padding: 2px 5px; font-size: 11px; vertical-align: middle; }
.bud-grid select { font-size: 11px; padding: 0 2px; }
.bud-narrow { max-width: 720px; }
.bud-total td { background: #eef1f6; font-weight: 700; border-top: 1px solid #b9c2d3; }
.bud-half { background: #4b5563; }
.bud-actions { margin-top: 10px; border-top: 1px solid var(--line); padding-top: 8px; }
.bud-link { color: var(--navy); cursor: pointer; text-decoration: underline; }
.bud-desc { color: var(--muted); max-width: 200px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.bud-current { font-weight: 700; border: 1px solid #9aa3b5; background: #f7f8fa; padding: 2px 10px; border-radius: 2px; }
.bud-mismatch td { background: #fef2f2; } .bud-mismatch-text { color: #991b1b; }
.bud-warn { color: #92400e; font-weight: 700; } .bud-purple { color: #6b21a8; font-weight: 700; }
.bud-before { color: #991b1b; font-weight: 400; }
.bud-certify { display: block; font-size: 11px; color: #166534; font-weight: 700; margin: 8px 0; }
.bud-donor { width: 380px; font-size: 11px; }
.bud-ref { display: grid; grid-template-columns: 1fr 1fr; grid-gap: 14px; gap: 14px; }
.bud-inline { margin-left: 10px; font-size: 11px; }

