/* ═══════════════════════════════════════════════════════════════════════════
   WhiteOak.IO — floorplan styles

   Every declaration here carries !important, and that is deliberate.

   wo-styles.css contains 69 catch-all attribute selectors — [class*="flag"],
   [class*="table"], [class*="-card"], [class*="title"], [class*="on"] and so
   on — and almost every one is itself !important. Between them they match 47
   of the classes in this file. That is why status tags rendered grey, why
   flagged rows filled with pink, and why the tables never quite looked like
   the rest of the product: a dozen rules written for other components were
   landing on these and could not be outranked by specificity.

   Rewriting those selectors would be the better fix, but they are load-bearing
   for the 33 existing modules and this is not the week to find out which. So
   this file wins on its own terms instead, and the collision is documented
   rather than rediscovered.
   ------------------------------------------------------------------------ */



/* ── Dynamic page ─────────────────────────────────────────────────────────*/
.wo-page{background:transparent !important}
.wo-page-hd{margin-bottom:18px !important;padding-bottom:14px !important;border-bottom:1px solid var(--line2) !important}
.wo-page-hd-title{display:flex !important;align-items:flex-start !important;justify-content:space-between !important;gap:14px !important;flex-wrap:wrap !important}
.wo-page-title-row{display:flex !important;align-items:center !important;gap:10px !important;flex-wrap:wrap !important}

/* the product's own title voice — serif, italic, 19px */
.wo-page-title{margin:0 !important;font-family:var(--serif) !important;font-size:19px !important;font-weight:400 !important;font-style:italic !important;color:var(--text) !important;letter-spacing:-.2px !important;line-height:1.25 !important}
.wo-page-sub{margin:5px 0 0 !important;font-size:11.5px !important;line-height:1.5 !important;letter-spacing:-.005em !important;color:var(--text2) !important;max-width:78ch !important}
.wo-page-sub b{color:var(--text) !important;font-weight:600 !important}
.wo-page-hd-actions{display:flex !important;gap:6px !important;flex-shrink:0 !important}
.wo-page-hd-content{margin-top:12px !important}
.wo-page-body{padding:0 !important}
.wo-page-ft{position:sticky !important;bottom:0 !important;background:var(--bg1) !important;border-top:1px solid var(--line) !important;padding:10px 0 !important;display:flex !important;justify-content:flex-end !important;gap:6px !important;margin-top:16px !important}

/* ── Breadcrumb ───────────────────────────────────────────────────────────*/
.wo-crumbs{display:flex !important;align-items:center !important;gap:5px !important;font-family:var(--mono) !important;font-size:9.5px !important;letter-spacing:.06em !important;text-transform:uppercase !important;color:var(--text3) !important;margin-bottom:6px !important}
.wo-crumb{color:var(--text3) !important;text-decoration:none !important}
.wo-crumb:hover{color:var(--accent) !important}
.wo-crumb--here{color:var(--text2) !important}
.wo-crumb-sep{opacity:.5 !important}

/* ── Message strip ────────────────────────────────────────────────────────*/
.wo-msg{margin-top:11px !important;padding:9px 12px !important;border-radius:var(--r) !important;border:1px solid var(--line) !important;border-left:3px solid var(--text3) !important;background:var(--bg1) !important;font-size:12px !important;line-height:1.55 !important;color:var(--text2) !important;box-shadow:var(--sh0) !important}
.wo-msg--negative{border-left-color:var(--red) !important;background:var(--red-bg) !important}
.wo-msg--critical{border-left-color:var(--amber) !important;background:var(--amber-bg) !important}
.wo-msg--positive{border-left-color:var(--green) !important;background:var(--green-bg) !important}
.wo-msg--informative{border-left-color:var(--blue) !important;background:var(--blue-bg) !important}

/* ── List report: search and filters ──────────────────────────────────────*/
.wo-search{margin-bottom:9px !important}
.wo-search-in{width:100% !important;max-width:340px !important;font-family:var(--ui) !important;font-size:12px !important;padding:6px 11px !important;border:1px solid var(--line2) !important;border-radius:var(--r) !important;background:var(--bg1) !important;color:var(--text) !important}
.wo-search-in:focus{outline:none !important;border-color:var(--accent) !important;box-shadow:0 0 0 3px var(--adim) !important}
.wo-filters{display:flex !important;gap:6px !important;flex-wrap:wrap !important}
.wo-filter{font-family:var(--ui) !important;font-size:11.5px !important;padding:4px 11px !important;border-radius:20px !important;border:1px solid var(--line2) !important;background:var(--bg1) !important;color:var(--text2) !important;cursor:pointer !important;display:inline-flex !important;align-items:center !important;gap:5px !important}
.wo-filter:hover{border-color:var(--line3) !important}
.wo-filter.is-active{border-color:var(--green-bdr) !important;background:var(--green-bg) !important;color:var(--green-dk) !important;font-weight:600 !important}
.wo-filter-n{font-family:var(--mono) !important;font-size:9.5px !important;opacity:.8 !important}
.wo-filter--clear{border-style:dashed !important;color:var(--text3) !important}

.wo-toolbar{display:flex !important;align-items:center !important;justify-content:space-between !important;gap:14px !important;margin-bottom:9px !important;flex-wrap:wrap !important}
.wo-count{font-size:12.5px !important;font-weight:600 !important;color:var(--text) !important}
.wo-count-lbl{font-weight:400 !important;color:var(--text3) !important}
.wo-sel{margin-left:10px !important;font-size:11.5px !important;color:var(--blue) !important;font-weight:500 !important}
.wo-toolbar-r{display:flex !important;gap:6px !important}

/* the table shell the platform already uses */
.wo-table-wrap{background:#fff !important;border:1px solid rgb(232,237,243) !important;border-radius:10px !important;overflow:auto !important;max-height:66vh !important;box-shadow:0 1px 3px rgba(0,0,0,.04),0 1px 2px rgba(0,0,0,.03) !important;margin-bottom:16px !important}

/* ── Table — defers to the platform's global table rules, adds only what
      those do not cover: sticky head, tabular numerics, a real totals row ──*/
.wo-table thead th{position:sticky !important;top:0 !important;z-index:2 !important;background:var(--bg1) !important;font-family:var(--mono) !important;font-size:8.5px !important;font-weight:800 !important;letter-spacing:.1em !important;text-transform:uppercase !important;color:var(--text3) !important;padding:9px 13px !important;border-bottom:1px solid var(--line2) !important}
.wo-table tbody td{padding:8px 13px !important;border-bottom:1px solid var(--line) !important;font-size:12px !important;letter-spacing:-.006em !important}
.wo-table tbody tr:last-child td{border-bottom:none !important}
.wo-table tbody tr:hover td{background:var(--bg2) !important}
.wo-table--compact tbody td{padding:6px 13px !important}
.wo-table tr.wo-total td{border-top:1.5px solid var(--line3) !important;border-bottom:none !important;padding-top:10px !important;font-weight:600 !important;background:var(--bg2) !important}
.wo-table tbody tr[data-href]{cursor:pointer !important}
.wo-table tbody tr[data-href]:hover td{background:var(--green-bg) !important}

/* ── Object page facets ───────────────────────────────────────────────────*/
.wo-facets{display:grid !important;grid-template-columns:repeat(auto-fit,minmax(160px,1fr)) !important;background:#fff !important;border:1px solid rgb(232,237,243) !important;border-radius:10px !important;overflow:hidden !important;box-shadow:0 1px 3px rgba(0,0,0,.04),0 1px 2px rgba(0,0,0,.03) !important;margin-bottom:16px !important}
.wo-facet{padding:12px 14px !important;border-right:1px solid var(--line) !important;display:flex !important;flex-direction:column !important;gap:3px !important}
.wo-facet:last-child{border-right:none !important}
.wo-facet-l{font-family:var(--ui) !important;font-size:8.5px !important;font-weight:700 !important;letter-spacing:.1em !important;text-transform:uppercase !important;color:var(--text3) !important}
.wo-facet-v{font-family:var(--mono) !important;font-variant-numeric:tabular-nums !important;font-size:22px !important;font-weight:800 !important;letter-spacing:-.04em !important;color:var(--text) !important;line-height:1.15 !important}
.wo-facet-v.wo-positive{color:var(--green) !important}
.wo-facet-v.wo-negative{color:var(--red) !important}
.wo-facet-v.wo-critical{color:var(--amber) !important}
.wo-facet-s{font-size:10px !important;color:var(--text3) !important;letter-spacing:-.005em !important}

/* ── Anchor bar ───────────────────────────────────────────────────────────*/
.wo-anchors{display:flex !important;gap:18px !important;border-bottom:1px solid var(--line2) !important;margin:16px 0 14px !important;overflow-x:auto !important}
.wo-anchor{padding:7px 0 !important;font-size:12.5px !important;color:var(--text2) !important;text-decoration:none !important;white-space:nowrap !important;border-bottom:2px solid transparent !important;margin-bottom:-1px !important;background:none !important;border-left:none !important;border-right:none !important;border-top:none !important;font-family:var(--ui) !important;cursor:pointer !important}
.wo-anchor:hover{color:var(--text) !important}
.wo-anchor.is-active{color:var(--accent) !important;border-bottom-color:var(--accent) !important;font-weight:600 !important}

.wo-sec{margin-bottom:18px !important}
.wo-sec-hd{display:flex !important;align-items:baseline !important;justify-content:space-between !important;margin-bottom:9px !important}
.wo-sec-title{margin:0 !important;font-family:var(--ui) !important;font-size:10px !important;font-weight:700 !important;letter-spacing:.08em !important;text-transform:uppercase !important;color:var(--text) !important}
.wo-sec-body{background:#fff !important;border:1px solid rgb(232,237,243) !important;border-radius:10px !important;overflow:hidden !important;box-shadow:0 1px 3px rgba(0,0,0,.04),0 1px 2px rgba(0,0,0,.03) !important}

/* ── Worklist — built on the platform's .exc-chip idea: hairline card with a
      3px semantic left border ───────────────────────────────────────────── */
.wo-wl{display:flex !important;flex-direction:column !important;gap:7px !important}
.wo-wl-item{display:flex !important;background:#fff !important;border:1px solid rgb(232,237,243) !important;border-left:3px solid var(--line) !important;border-radius:10px !important;overflow:hidden !important;box-shadow:0 1px 3px rgba(0,0,0,.04),0 1px 2px rgba(0,0,0,.03) !important;cursor:pointer !important;transition:box-shadow .15s,transform .12s !important}
.wo-wl-item:hover{box-shadow:var(--sh1) !important;transform:translateY(-1px) !important}
.wo-wl--negative{border-left-color:var(--red) !important}
.wo-wl--critical{border-left-color:var(--amber) !important}
.wo-wl--positive{border-left-color:var(--green) !important}
.wo-wl-rail{display:none !important}
.wo-wl-main{flex:1 !important;padding:11px 14px !important;min-width:0 !important}
.wo-wl-top{display:flex !important;align-items:center !important;gap:8px !important;flex-wrap:wrap !important}
.wo-wl-code{font-family:var(--mono) !important;font-size:8.5px !important;letter-spacing:.06em !important;padding:2px 7px !important;border-radius:3px !important;border:1px solid var(--line2) !important;color:var(--text3) !important}
.wo-wl-title{font-size:12px !important;font-weight:700 !important;color:var(--text) !important;letter-spacing:-.01em !important}
.wo-wl-detail{margin:4px 0 0 !important;font-size:11px !important;line-height:1.5 !important;color:var(--text2) !important;max-width:82ch !important}
.wo-wl-side{flex:0 0 150px !important;padding:11px 14px !important;text-align:right !important;display:flex !important;flex-direction:column !important;gap:2px !important}
.wo-wl-value{font-family:var(--mono) !important;font-variant-numeric:tabular-nums !important;font-size:12.5px !important;font-weight:600 !important;color:var(--text) !important}
.wo-wl-action{font-size:11px !important;color:var(--blue) !important;font-weight:500 !important}

/* ── Overview cards — use the platform's .panel look ──────────────────────*/
.wo-card-grid{display:grid !important;grid-template-columns:repeat(auto-fill,minmax(300px,1fr)) !important;gap:12px !important}
.wo-card{background:#fff !important;border:1px solid rgb(232,237,243) !important;border-radius:10px !important;overflow:hidden !important;box-shadow:0 1px 3px rgba(0,0,0,.04),0 1px 2px rgba(0,0,0,.03) !important}
.wo-card-hd{padding:10px 14px !important;border-bottom:1px solid var(--line) !important;display:flex !important;align-items:baseline !important;justify-content:space-between !important;gap:8px !important}
.wo-card-title{font-size:12.5px !important;font-weight:600 !important;color:var(--text) !important;letter-spacing:-.01em !important}
.wo-card-sub{font-size:11px !important;color:var(--text3) !important}
.wo-card-body{padding:14px !important}
.wo-card-ft{padding:8px 14px !important;border-top:1px solid var(--line) !important;font-size:11.5px !important}
.wo-card--span2{grid-column:span 2 !important}

/* ── Wizard ───────────────────────────────────────────────────────────────*/
.wo-steps{display:flex !important;gap:20px !important;list-style:none !important;margin:0 0 18px !important;padding:0 !important;flex-wrap:wrap !important}
.wo-step{display:flex !important;align-items:center !important;gap:7px !important;font-size:12.5px !important;color:var(--text3) !important}
.wo-step-n{width:20px !important;height:20px !important;border-radius:50% !important;display:flex !important;align-items:center !important;justify-content:center !important;font-family:var(--mono) !important;font-size:9.5px !important;border:1px solid var(--line2) !important;background:var(--bg1) !important}
.wo-step--done .wo-step-n{background:var(--green) !important;border-color:var(--green) !important;color:#fff !important}
.wo-step--done{color:var(--text2) !important}
.wo-step--now .wo-step-n{border-color:var(--green) !important;color:var(--green) !important;box-shadow:0 0 0 3px var(--green-bg) !important}
.wo-step--now{color:var(--text) !important;font-weight:600 !important}
.wo-wz-body{background:#fff !important;border:1px solid rgb(232,237,243) !important;border-radius:10px !important;padding:18px !important;box-shadow:0 1px 3px rgba(0,0,0,.04),0 1px 2px rgba(0,0,0,.03) !important}

/* ── Buttons: defer to .btn; only the modifiers are new ───────────────────*/
.wo-btn{display:inline-flex !important;align-items:center !important;gap:5px !important;padding:6px 12px !important;border-radius:var(--r) !important;font-family:var(--ui) !important;font-size:12px !important;font-weight:500 !important;cursor:pointer !important;border:1px solid var(--line2) !important;background:var(--bg1) !important;color:var(--text2) !important}
.wo-btn:hover{border-color:var(--line3) !important;color:var(--text) !important}
.wo-btn--primary{background:var(--accent) !important;border-color:var(--accent) !important;color:#fff !important}
.wo-btn--ghost{background:transparent !important;border-color:transparent !important;color:var(--text2) !important}

/* ── Detail list and blank states ─────────────────────────────────────────*/
.wo-dl{margin:0 !important;padding:13px 15px !important}
.wo-dl-r{display:grid !important;grid-template-columns:150px 1fr !important;gap:14px !important;padding:7px 0 !important;border-bottom:1px solid var(--line) !important}
.wo-dl-r:last-child{border-bottom:none !important}
.wo-dl dt{font-size:11.5px !important;color:var(--text3) !important}
.wo-dl dd{margin:0 !important;font-size:12.5px !important;color:var(--text) !important}
.wo-blank{padding:22px !important;text-align:center !important;font-size:12px !important;color:var(--text3) !important}

/* ── Status tag ────────────────────────────────────────────────────────────
   Named .wo-tag, not .wo-chip. wo-styles.css carries

       .rule-chip, .filter-chip, [class*="-chip"] { color:#475569 !important; ... }

   and that attribute selector catches any class containing "-chip" — including
   wo-chip. Every declaration in it is !important, so every status badge in the
   product rendered grey on grey no matter what colour was set: the severity was
   applied and invisible. Renaming steps out of its way without touching a rule
   the rest of the platform depends on. */
.wo-tag{display:inline-flex !important;align-items:center !important;gap:4px !important;font-family:var(--mono) !important;font-size:8.5px !important;font-weight:800 !important;letter-spacing:.085em !important;text-transform:uppercase !important;padding:2px 7px !important;border-radius:4px !important;border:1px solid var(--line2) !important;background:var(--bg2) !important;color:var(--text3) !important;white-space:nowrap !important;line-height:1.4 !important}
/* two class selectors, so a single-class rule elsewhere cannot override the
   status colour and leave every chip grey */
.wo-tag.wo-tag--positive{border-color:var(--green-bdr) !important;background:var(--green-bg) !important;color:var(--green-dk) !important}
.wo-tag.wo-tag--negative{border-color:rgba(220,38,38,.25) !important;background:var(--red-bg) !important;color:var(--red) !important}
.wo-tag.wo-tag--critical{border-color:rgba(217,119,6,.28) !important;background:var(--amber-bg) !important;color:var(--amber) !important}
.wo-tag.wo-tag--informative{border-color:rgba(37,99,235,.25) !important;background:var(--blue-bg) !important;color:var(--blue) !important}

.wo-num{font-family:var(--mono) !important;font-variant-numeric:tabular-nums !important;font-feature-settings:"tnum" 1 !important;text-align:right !important}

/* ── Sortable headers and flagged rows ────────────────────────────────────
   The first version tinted the whole row and put a 2px bar on it. With 11 of
   25 orders past 180 days that painted most of the register pink, and a flag
   carried by the majority is not a flag — it read as an error state rather
   than a ledger. The tint is gone. Severity now lives in the status tag and a
   single hairline at the left edge, which is legible at a glance and stays
   legible when half the rows carry it. */
.wo-table thead th[data-sort]{user-select:none !important}
.wo-table thead th[data-sort]:hover{color:var(--text2) !important}
.wo-table thead th.is-sorted{color:var(--text) !important;font-weight:600 !important}

/* wo-styles.css carries [class*="flag"]{background:#fee2e2 !important}, which
   catches .wo-flag and paints the entire row pink. Setting only a left edge
   here left that background unopposed — nothing competed with it, so severity
   read as an error state across half the register. The background has to be
   reset explicitly. */
.wo-table tbody tr.wo-flag td{background:transparent !important}
.wo-table tbody tr.wo-flag td:first-child{box-shadow:inset 2px 0 0 var(--line3) !important;background:transparent !important}
/* declared after the reset so hover still reads at equal specificity */
.wo-table tbody tr.wo-flag:hover td,
.wo-table tbody tr.wo-flag:hover td:first-child{background:var(--bg2) !important}
.wo-table tbody tr.wo-flag--negative td:first-child{box-shadow:inset 2px 0 0 var(--red) !important}
.wo-table tbody tr.wo-flag--critical td:first-child{box-shadow:inset 2px 0 0 var(--amber) !important}


/* a liquidated amount is money that landed — settled, not a cost */
.wo-liq{color:var(--green) !important}
/* a figure that is zero or absent should recede, not compete with real ones */
.wo-table td .wo-nil{color:var(--text3) !important}

/* ── Back control ─────────────────────────────────────────────────────────*/
.wo-back{display:inline-flex !important;align-items:center !important;gap:5px !important;font-family:var(--ui) !important;font-size:11.5px !important;font-weight:500 !important;color:var(--text2) !important;background:var(--bg1) !important;border:1px solid var(--line2) !important;border-radius:var(--r) !important;padding:4px 10px !important;cursor:pointer !important;margin-bottom:7px !important}
.wo-back:hover{border-color:var(--line3) !important;color:var(--text) !important;background:var(--bg2) !important}

/* ── Tie statement ────────────────────────────────────────────────────────
   Shown at the foot of every list report, identically, so a district learns
   where to look for it. Assertion becomes evidence when the control it is
   measured against is named beside it. */
.wo-tie{margin-top:0 !important;margin-bottom:16px !important;background:#fff !important;border:1px solid rgb(232,237,243) !important;border-left:3px solid var(--green) !important;border-radius:10px !important;overflow:hidden !important;box-shadow:0 1px 3px rgba(0,0,0,.04),0 1px 2px rgba(0,0,0,.03) !important}
.wo-tie.is-out{border-left-color:var(--red) !important}
.wo-tie-hd{padding:10px 14px !important;border-bottom:1px solid var(--line) !important;display:flex !important;align-items:baseline !important;gap:10px !important;flex-wrap:wrap !important}
.wo-tie-t{font-family:var(--ui) !important;font-size:10px !important;font-weight:700 !important;letter-spacing:.08em !important;text-transform:uppercase !important;color:var(--text) !important}
.wo-tie-s{font-size:11px !important;color:var(--text2) !important;letter-spacing:-.005em !important}
.wo-tie-row{display:grid !important;grid-template-columns:minmax(160px,1.4fr) 150px minmax(180px,1fr) 96px !important;gap:14px !important;padding:9px 15px !important;border-bottom:1px solid var(--line) !important;align-items:baseline !important}
.wo-tie-row:last-child{border-bottom:none !important}
.wo-tie-l{font-size:12px !important;color:var(--text) !important;letter-spacing:-.006em !important}
.wo-tie-v{font-family:var(--mono) !important;font-variant-numeric:tabular-nums !important;font-size:12px !important;font-weight:700 !important;text-align:right !important}
.wo-tie-c{font-size:11px !important;color:var(--text3) !important}
.wo-tie-d{font-family:var(--mono) !important;font-size:11px !important;text-align:right !important}
.wo-tie-d.is-ok{color:var(--green) !important}
.wo-tie-d.is-out{color:var(--red) !important;font-weight:600 !important}

/* a short module should not render half a screen and read as unfinished */
.wo-fp-list .wo-page-body,.wo-fp-object .wo-page-body{min-height:62vh !important}

/* every drillable row says so */
.wo-table tbody tr[data-href] td:last-child{position:relative !important}
.wo-table tbody tr[data-href]:hover td:last-child::after{content:'\203a' !important;position:absolute !important;right:8px !important;top:50% !important;transform:translateY(-50%) !important;color:var(--accent) !important;font-size:15px !important;line-height:1 !important}
.wo-tie.is-src{border-left-color:var(--line3) !important}
.wo-tie-src{padding:11px 15px !important;font-size:12px !important;line-height:1.6 !important;color:var(--text2) !important}
.wo-sec-note{font-size:11px !important;color:var(--text3) !important;
 letter-spacing:-.005em !important}
.wo-fp-list .wo-sec-hd{margin-bottom:8px !important}
.wo-fundtag{display:inline-flex !important;align-items:center !important;
 justify-content:center !important;min-width:24px !important;padding:1px 6px !important;
 border-radius:4px !important;background:var(--bg2) !important;color:var(--text2) !important;
 font-family:var(--mono) !important;font-size:9.5px !important;font-weight:700 !important;
 letter-spacing:.04em !important}
