
:root{
 --hv-surface:#ffffff;--hv-surface-soft:#f4f7f8;--hv-ink:#102b36;--hv-muted:#64777f;
 --hv-border:#d5e0e3;--hv-action:#102b36;--hv-action-text:#ffffff;
 --hv-action-hover:#183e4b;--hv-light-action:#ffffff;--hv-light-action-text:#102b36;
 --hv-danger:#a52a2a;--hv-danger-text:#fff;
}
body{color:var(--hv-ink)}
.hv-topbar,.hv-card,.ops-card,.fs-panel,.fin-card,.tc-grid aside,.tc-grid section{background:var(--hv-surface)}
.hv-icon-btn,.hv-secondary,.ops-btn,.fin-nav,.admin-btn,.hv-primary,.hv-back-btn,.fs-tool,
button[data-owner-view]:not(.hv-secondary),.owner-workspace-nav button{
 box-sizing:border-box;min-height:40px;border:1px solid var(--hv-action)!important;border-radius:10px!important;
 background:var(--hv-action)!important;color:var(--hv-action-text)!important;
 font:inherit;font-weight:400!important;text-decoration:none!important;display:inline-flex;align-items:center;justify-content:center;
 gap:6px;padding:8px 12px;cursor:pointer;box-shadow:none!important;
}
.hv-icon-btn:hover,.hv-secondary:hover,.ops-btn:hover,.fin-nav:hover,.admin-btn:hover,.hv-primary:hover,.hv-back-btn:hover,.fs-tool:hover,
button[data-owner-view]:not(.hv-secondary):hover,.owner-workspace-nav button:hover{background:var(--hv-action-hover)!important;color:#fff!important}
/* V307: button[data-owner-view] used to beat sitewide-action-buttons-v253.css's
   .hv-secondary rule by specificity whenever a button carried both attributes
   (e.g. "Manage Aircraft", which sits outside .owner-workspace-nav) — painting
   it navy instead of the intended blue. Excluded .hv-secondary here so v253's
   blue/white rule is the sole authority for that combination. */
/* V321: this rule sets color back to dark ink for the white "secondary" button
   variant, but never set its -webkit-text-fill-color counterpart — the property
   Chrome/Safari actually paint glyphs with, and which this codebase pairs with
   color everywhere else it matters (see public-refinements-v235.css,
   sitewide-action-buttons-v253.css). With that property left unset here, the
   only rule in the cascade still setting it was sitewide-action-buttons-v253.css's
   blanket .admin-btn rule (var(--hv-action-text), i.e. white) — so the button
   painted white text on its own white background regardless of what `color`
   computed to. This is the actual root cause of the Master Admin Menu/Refresh
   "white on white" bug and any other .ops-btn.secondary/.admin-btn.secondary
   button sitewide. Added the missing pairing so both properties agree. */
.ops-btn.secondary,.admin-btn.secondary,.hv-secondary.secondary{background:#fff!important;color:var(--hv-ink)!important;-webkit-text-fill-color:var(--hv-ink)!important;border-color:var(--hv-border)!important}
.ops-btn.secondary:hover,.admin-btn.secondary:hover{background:var(--hv-surface-soft)!important;color:var(--hv-ink)!important;-webkit-text-fill-color:var(--hv-ink)!important}
/* V341: the blanket .admin-btn rule above (line 10) forces background, color and font-weight !important with no exclusion for .gold or .danger — .secondary already gets rescued by the rule directly above this comment, but .admin-btn.gold ("Publish") and .admin-btn.danger ("Reject") had no equivalent, so they were silently rendering plain Vector blue / dark navy instead of gold / red. Same fix pattern as .secondary: a same-specificity !important rule with an extra class wins on source order. */
/* V343: per explicit user decision, gold "commit" buttons (Save/Publish) are Vector Blue too now, matching every other action button in Master Admin. Only .admin-btn.danger (Reject/Delete) keeps its distinct red as a deliberate safety cue for destructive actions. */
.admin-btn.gold{background:var(--hv-vector-blue,#0877b9)!important;color:var(--hv-action-text,#fff)!important;-webkit-text-fill-color:var(--hv-action-text,#fff)!important;border-color:var(--hv-vector-blue,#0877b9)!important}
.admin-btn.danger{background:var(--danger)!important;color:#fff!important;-webkit-text-fill-color:#fff!important;border-color:var(--danger)!important}
.ops-btn.aog-trigger,.aog-trigger{background:var(--hv-danger)!important;color:var(--hv-danger-text)!important;border-color:var(--hv-danger)!important}
/* V306 note: these two rules used to double-govern .ops-tab (their compound
   ".ops-tabs button"/".shop-tabs button" selectors have higher specificity
   than sitewide-workspace-tabs-v272.css's plain ".ops-tab" class selector,
   so they were quietly winning over v272's intended styling the whole time,
   regardless of load order — the actual root cause behind the tab-bar color
   inconsistency this session, on top of the separate V305 fix). v272 is now
   this component's sole authority; removed rather than left to fight it. */
.admin-side,.admin-nav{background:#102b36;color:#fff}
/* V281 note: this used to force every sidebar nav item to a white box
   (!important), which is what was fighting master-admin.css's own flat/
   bulleted nav styling and rendering as solid blocks instead of the flat
   list the redesign preview shows. master-admin.css already owns complete,
   current styling for .admin-nav (transparent at rest, a soft highlight on
   the active item, bullet markers) — removing the conflicting override here
   instead of adding another layer on top of it. */
.hv-manager-launch{background:var(--hv-action)!important;color:#fff!important}
.hv-top-actions{display:flex;gap:7px;align-items:center;flex-wrap:wrap}
.hv-role-chip{display:inline-flex;padding:4px 8px;border-radius:999px;background:#e9f0f2;color:#163944;font-size:11px;font-weight:850}
.hv-empty-state{border:1px dashed #c8d6da;background:#f8fafb;border-radius:13px;padding:18px;text-align:center;color:#60737b}
.hv-empty-state b{display:block;color:#173b47;margin-bottom:5px}
@media(max-width:760px){
 .hv-icon-btn,.hv-secondary,.ops-btn,.fin-nav,.admin-btn,.hv-primary,.hv-back-btn,.fs-tool{min-height:44px}
 .hv-top-actions{flex-wrap:nowrap;overflow-x:auto;max-width:100%;padding-bottom:3px}
 .hv-top-actions>*{flex:0 0 auto}
}
