/* Ra Books -- "Neon" theme: black, charcoal gray and the logo's lime green (#AFF926) with chrome-silver headings. Flat: no glows, no gradients.
   Loaded after hb.css when the Neon theme is on; everything here overrides the light "Harbor" look. */
:root{
  color-scheme:dark;
  --c-bg:#0B0D0C; --c-nav:#101411; --c-panel:#151917; --c-card:#202622; --c-line:#323A34;
  --c-text:#F3F6F4; --c-muted:#9AA69E; --c-neon:#AFF926; --c-neon-hover:#C4FD3D; --c-silver:#C9CDCA; --c-on-neon:#0B0D0C; --c-sel:#263314;
  --c-ok-bg:#1A3D14; --c-ok:#CDF7B0; --c-warn:#FFB020; --c-err:#FF6262;
  --c-row2:#1A1F1C; --field:var(--c-input); --c-hover:#1E2520; --c-line2:#262D28; --c-input:#0F1311;
  /* map the app's own variables onto the theme */
  --navy:var(--c-nav); --navy2:var(--c-card); --navy3:var(--c-sel); --amber:var(--c-neon); --amber2:var(--c-neon-hover); --amber-soft:var(--c-sel);
  --bg:var(--c-bg); --panel:var(--c-panel); --panel2:var(--c-card); --line:var(--c-line); --line2:var(--c-line2);
  --text:var(--c-text); --muted:var(--c-muted); --hdr:var(--c-nav); --sel:var(--c-sel); --neg:var(--c-err); --warn:var(--c-card);
  --accent:var(--c-neon); --blue:var(--c-text); --link:var(--c-neon); --ok:var(--c-ok); --radius:10px; --shadow:none;
}
body{background:var(--c-bg);color:var(--c-text)}
a{color:var(--c-neon)}
::selection{background:var(--c-neon);color:var(--c-on-neon)}

/* inputs */
input[type=text],input[type=password],input[type=email],input[type=date],input[type=number],input[type=search],select,textarea{
  background:var(--c-input);border-color:var(--c-line);color:var(--c-text)}
input::placeholder,textarea::placeholder{color:#6B756E}
input:focus,select:focus,textarea:focus{border-color:var(--c-neon);box-shadow:0 0 0 1px var(--c-neon)}
input.bad{background:#2A1414;border-color:var(--c-err)}
input[type=checkbox],input[type=radio]{accent-color:var(--c-neon)}

/* sidebar */
.sidebar{background:var(--c-nav);color:var(--c-muted);border-right:1px solid var(--c-line)}
.brand{color:var(--c-silver);letter-spacing:.4px;text-transform:uppercase;font-size:14px}
.brand .mark{background:var(--c-neon);color:var(--c-on-neon)}
.nav .grp{color:#6E7A72}
.nav a{color:#C9D2CC}
.nav a:hover{background:var(--c-card);color:var(--c-text)}
.nav a.on{background:var(--c-sel);color:var(--c-text);box-shadow:inset 3px 0 0 var(--c-neon)}
.nav svg{stroke:var(--c-muted)}
.nav a.on svg,.nav a:hover svg{stroke:var(--c-neon)}
.nav .badge{background:var(--c-neon);color:var(--c-on-neon)}
.side-foot{color:#6E7A72}

/* top bar + menus */
.topbar{background:var(--c-nav);border-bottom-color:var(--c-line)}
.co-switch:hover{background:var(--c-card)}
.search input{background:var(--c-panel);border-color:var(--c-line)}
.menu .drop{background:var(--c-card);border-color:var(--c-line);box-shadow:none}
.drop a{color:var(--c-text)}
.drop a:hover{background:var(--c-sel)}
.drop a svg{stroke:var(--c-muted)}
.drop a:hover svg{stroke:var(--c-neon)}
.drop hr{border-top-color:var(--c-line)}
.newbtn{background:var(--c-neon);color:var(--c-on-neon)}
.newbtn:hover{background:var(--c-neon-hover);color:var(--c-on-neon);text-decoration:none}
.avatar{background:var(--c-sel);color:var(--c-neon)}
.hamb{color:var(--c-text)}

/* page */
.page-head h1,h3.sec,h4,legend,.totals b,.infobox h2,.big,.kpi .v,.card>h3,.modal .mt,.rep-head .t,.repcenter h3,.chk-bank b,.wm-empty .box b{color:var(--c-text)}
.win{background:var(--c-panel);border-color:var(--c-line);box-shadow:none}
.flash{background:var(--c-card);border-color:var(--c-line);border-left:4px solid var(--c-warn);color:var(--c-text)}
.flash.err{background:#241414;border-color:#4A2626;border-left-color:var(--c-err)}
.toolbar,.btnbar{border-color:var(--c-line2)}

/* buttons */
.btn{background:var(--c-card);border-color:var(--c-line);color:var(--c-text)}
.btn:hover{background:#2A312C;border-color:var(--c-muted)}
.btn.primary{background:var(--c-neon);border-color:var(--c-neon);color:var(--c-on-neon)}
.btn.primary:hover{background:var(--c-neon-hover);border-color:var(--c-neon-hover);color:var(--c-on-neon)}
.btn.danger{color:var(--c-err)}
.tool{color:var(--c-text)}
.tool:hover{background:var(--c-card);border-color:var(--c-line)}
.tool svg{stroke:var(--c-muted)}
.tool:hover svg{stroke:var(--c-neon)}
.sep{background:var(--c-line)}

/* tables */
table.grid{background:var(--c-panel)}
.grid th{background:var(--c-nav);border-bottom-color:var(--c-line);color:var(--c-muted)}
.grid td{border-bottom-color:var(--c-line2)}
.grid tbody tr:hover td{background:var(--c-hover)}
.grid tr.sel td{background:var(--c-sel)!important}
.grid td.in{border-left-color:var(--c-line2)}
.grid td.in input:focus,.grid td.in select:focus{background:#1B2316;box-shadow:inset 0 -2px 0 var(--c-neon)}
.grid tfoot td{background:var(--c-card);border-top-color:var(--c-line)}
.scroll{border-color:var(--c-line)}
.hbgrid th.sortable:hover{color:var(--c-text)}
.hbgrid th.s-asc::after,.hbgrid th.s-desc::after{color:var(--c-neon)}
.col-grip:hover,.col-resizing .col-grip:active{background:none;box-shadow:inset -3px 0 0 var(--c-neon)}

/* status pills -- always shown with their text label */
.pill{background:var(--c-card);color:var(--c-muted);border:1px solid var(--c-line)}
.pill.green{background:var(--c-ok-bg);color:var(--c-ok);border-color:#255C1D}
.pill.blue{background:var(--c-card);color:var(--c-text)}
.pill.amber{background:#33260A;color:var(--c-warn);border-color:#5A4312}
.pill.red{background:#331414;color:var(--c-err);border-color:#5A2424}
.void{color:var(--c-err)}

/* forms */
.paper,.rep-filter{background:var(--c-card);border-color:var(--c-line)}
.form-top .bigname{border-color:var(--c-line);color:var(--c-muted)}
.tabs{border-bottom-color:var(--c-line)}
.tabs a:hover,.tabs button:hover{color:var(--c-text)}
.tabs .on{color:var(--c-text);border-bottom-color:var(--c-neon)}
fieldset{background:var(--c-panel);border-color:var(--c-line)}

/* centers / dashboard */
.center .list{border-color:var(--c-line)}
.infobox{background:var(--c-card);border-color:var(--c-line)}
.kpi,.card{background:var(--c-card);border-color:var(--c-line);box-shadow:none}
.kpi:hover{border-color:var(--c-neon)}
.kpi.hot{border-top:3px solid var(--c-neon)}
.card>h3{border-bottom-color:var(--c-line)}
.quick a{background:var(--c-panel);border-color:var(--c-line);color:var(--c-text)}
.quick a:hover{background:var(--c-sel);border-color:var(--c-neon)}
.quick svg{stroke:var(--c-neon)}
.list-plain li{border-bottom-color:var(--c-line2)}
/* dashboard chart: income = neon green, expenses = neutral gray */
.chart rect[fill="#27406a"]{fill:var(--c-neon)}
.chart rect[fill="#f2a33a"]{fill:#7D877F}
.chart text{fill:var(--c-muted)}
.chart line{stroke:var(--c-line)}

/* reports (on screen; printing stays black on white) */
.rep-page{background:var(--c-panel);color:var(--c-text);border:1px solid var(--c-line);border-radius:10px}
.rep th{border-bottom-color:var(--c-muted)}
.rep tr.line td.n{border-top-color:var(--c-muted)}
.rep tr.dline td.n{border-top-color:var(--c-text);border-bottom-color:var(--c-text)}
.rep tr:hover td{background:var(--c-hover)}
.repcenter h3{background:var(--c-nav);border-bottom-color:var(--c-line)}
.repcenter .card a{color:var(--c-text);border-bottom-color:var(--c-line2)}
.repcenter .card a:hover{background:var(--c-sel)}

/* bank activity */
.feedacct a{background:var(--c-card);border-color:var(--c-line);color:var(--c-text)}
.feedacct a.on{border-color:var(--c-neon);box-shadow:inset 0 0 0 1px var(--c-neon)}
.memo-full{color:var(--c-muted)}
.sugg.ai{color:var(--c-neon-hover)}.sugg.rule{color:var(--c-ok)}.sugg.shared{color:var(--c-neon)}.sugg.match{color:var(--c-text)}
[style*="border-bottom:1px solid #eee"]{border-bottom-color:var(--c-line)!important}
[style*="color:#999"]{color:#6E7A72!important}

/* modal + drop-downs */
.modal-bg,.rep-dlg-bg{background:rgba(0,0,0,.65);backdrop-filter:none}
.rep-dlg fieldset{border-color:var(--c-line)}.rep-dlg legend{color:var(--c-silver)}
.modal{background:var(--c-card);border:1px solid var(--c-line);box-shadow:none}
.modal .mt{border-bottom-color:var(--c-line)}
.modal .mf{background:var(--c-panel);border-top-color:var(--c-line)}
.combo-drop{background:var(--c-card);border-color:var(--c-line);box-shadow:none}
.combo-drop div.on{background:var(--c-sel);color:var(--c-text)}
.combo-drop div.on small{color:var(--c-muted)}
.combo-drop .add{color:var(--c-neon)}

/* login */
.login-wrap{background:var(--c-bg)}
.login{background:var(--c-panel);border:1px solid var(--c-line);box-shadow:none}
.login .top h1{color:var(--c-text)}
.login .top h1:before{background:var(--c-neon);color:var(--c-on-neon)}

/* receipts, imports, messages */
.rcpt-drop{background:var(--c-panel);border-color:var(--c-line)}
.rcpt-drop:hover{background:var(--c-sel);border-color:var(--c-neon)}
.rcpt-card{background:var(--c-card);border-color:var(--c-line);color:var(--c-text);box-shadow:none}
.rcpt-card .th{background:var(--c-nav)}
.rcpt-img{background:var(--c-nav);border-color:var(--c-line)}
.qbi-log{background:var(--c-nav);border-color:var(--c-line)}
[style*="background:#f4f6f8"]{background:var(--c-bg)!important}
[style*="background:#fff;"]{background:var(--c-card)!important}
[style*="background:#27406a"]{background:var(--c-sel)!important}
[style*="border:1px solid #d5dce3"]{border-color:var(--c-line)!important}

/* register (two lines per transaction) */
table.reg th{border-right-color:var(--c-line)}
table.reg th span{color:#6E7A72}
table.reg td{border-right-color:var(--c-line2)}
table.reg tr.l1 td{background:var(--c-panel);border-top-color:var(--c-line)}
table.reg tr.l2 td{background:var(--c-row2)}
table.reg tbody tr:hover td{background:var(--c-hover)}
table.reg tr.locked td[data-f="type"]{text-decoration-color:#6E7A72}
table.reg tr.cur td{background:var(--c-sel)!important}
table.reg tr.l1.cur td{border-top-color:var(--c-neon)}
table.reg tr.l2.cur td{border-bottom-color:var(--c-neon)}
table.reg tr.cur td:first-child{box-shadow:inset 2px 0 0 var(--c-neon)}
table.reg tr.cur td:last-child{box-shadow:inset -2px 0 0 var(--c-neon)}
table.reg td.on{outline-color:var(--c-neon);background:#2E3D18!important}
table.reg td.editing{outline-color:var(--c-neon)!important}
table.reg td.editing input.cell-in{background:var(--c-input);color:var(--c-text)}
table.reg td.editing input.bad{background:#2A1414}
table.reg td.clr{color:var(--c-ok)}
table.reg td.neg{color:var(--c-err)}
table.reg td.small{color:var(--c-muted)}
table.reg tfoot tr.l1 td{border-top-color:var(--c-line)}
table.reg tfoot tr.l1 td[data-f="payee"]:empty::before,table.reg tfoot tr.l2 td[data-f="account"]:empty::before,table.reg tfoot tr.l2 td[data-f="memo"]:empty::before{color:#56605A}

/* write checks */
.chk-lbl b{color:var(--c-text)}
.chk-lbl b.neg{color:var(--c-err)}
.check{background:var(--c-card);border-color:var(--c-line);border-radius:10px;box-shadow:none}
.check .lbl,.chk-dollar{color:var(--c-muted)}
.check input,.check select,.check textarea{background:var(--c-input)}
.chk-r3 #words{border-bottom-color:var(--c-muted);color:var(--c-text)}
/* line grids on forms */
#exp td,#itm td,#lines td{border-right-color:var(--c-line2)}
#exp tbody tr:nth-child(even) td,#itm tbody tr:nth-child(even) td,#lines tbody tr:nth-child(even) td{background:var(--c-row2)}
#exp tbody tr:hover td,#itm tbody tr:hover td,#lines tbody tr:hover td{background:var(--c-hover)}

/* open windows (desk) */
.winbtn{background:var(--c-card);border-color:var(--c-line);color:var(--c-text)}
.winbtn:hover{background:#2A312C;border-color:var(--c-muted)}
.wm-count{background:var(--c-neon);color:var(--c-on-neon)}
.wm-menu .drop a.on{color:var(--c-text)}
.wm-menu .drop a .ck,.wm-dot{color:var(--c-neon)}
.wm-tabs{background:var(--c-nav);border-bottom-color:var(--c-line)}
.wm-tab:hover{background:var(--c-card);color:var(--c-text)}
.wm-tab.on{background:var(--c-bg);border-color:var(--c-line);color:var(--c-text);box-shadow:inset 0 2px 0 var(--c-neon)}
.wm-tab.dirty .t::after{color:var(--c-neon)}
.wm-tab .x:hover{background:var(--c-line)}
.wm-bar{background:var(--c-card);color:var(--c-muted);border-bottom-color:var(--c-line)}
.wm-win.on .wm-bar{background:var(--c-sel);color:var(--c-text)}
.wm-area.tile .wm-win,.wm-area.cascade .wm-win{border-color:var(--c-line)}
.wm-area.tile .wm-win.on{border-color:var(--c-neon);box-shadow:none}
.wm-area.cascade .wm-win{box-shadow:none}
.wm-empty .box{background:var(--c-card);border-color:var(--c-line);box-shadow:none}

/* printing stays black on white */
@media print{
  :root{color-scheme:light}
  body,.win,.rep-page,table.grid,.grid th,.grid td{background:#fff!important;color:#000!important}
  .rep-page{border:0}
  .rep-head .t,.rep-head .co,.rep-head .b{color:#000!important}
  .rep th{border-bottom-color:#000}.rep tr.dline td.n{border-color:#000}
}
@media (max-width:900px){.sidebar{box-shadow:none;border-right:1px solid var(--c-line)}}
input[type=file]{color:var(--c-muted)}
input[type=file]::file-selector-button{background:var(--c-card);color:var(--c-text);border:1px solid var(--c-line);border-radius:7px;padding:4px 12px;margin-right:8px;cursor:pointer}
input[type=file]::file-selector-button:hover{border-color:var(--c-muted)}

/* chrome-silver headings like the wordmark */
.page-head h1,.login .top h1,.su .top h1{color:var(--c-silver)}
