
input[type=number]{-moz-appearance:textfield}
input[type=number]::-webkit-inner-spin-button,input[type=number]::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}
::-webkit-scrollbar{width:4px;height:4px}
::-webkit-scrollbar-track{background:transparent}
::-webkit-scrollbar-thumb{background:var(--g3);border-radius:2px}
::-webkit-scrollbar-thumb:hover{background:var(--g4)}
*{scrollbar-width:thin;scrollbar-color:#d8d5d0 transparent}
/* ── OVERFLOW FIX: dropdowns escape without shifting layout ── */
td,tr,tbody,thead,table,
.je-form,.pg,.app-frame,.sb-open,
.custom-select-wrap,.acct-search-wrap,.custom-date-wrap,
div:not(.main-content):not(.acct-dropdown):not(.custom-select-list):not(.sb-section-body):not(.modal):not(.sb-inner):not(.client-sb-inner){overflow:visible}
.main-content{flex:1;overflow-y:auto;overflow-x:hidden;min-height:0}
.custom-select-list{max-height:160px;overflow-y:auto}
.acct-dropdown{max-height:160px;overflow-y:auto}.sb-inner,.client-sb-inner{overflow-y:auto;overflow-x:hidden}

@font-face{font-family:'AdobeCaslon';src:url('fonts/AdobeCaslonPro-Regular.woff2') format('woff2');font-display:block;font-weight:400;font-style:normal}
@font-face{font-family:'AdobeCaslon';src:url('fonts/AdobeCaslonPro-Italic.woff2') format('woff2');font-display:block;font-weight:400;font-style:italic}
@font-face{font-family:EngraversGothic;src:url('fonts/EngraversGothic.woff2') format('woff2');font-display:block;font-weight:400}
@font-face{font-family:'Lato';src:url('fonts/Lato-Light.woff2') format('woff2');font-display:block;font-weight:300}
@font-face{font-family:'Lato';src:url('fonts/Lato-Regular.woff2') format('woff2');font-display:block;font-weight:400}
@font-face{font-family:'Lato';src:url('fonts/Lato-Bold.woff2') format('woff2');font-display:block;font-weight:700}

*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}

:root{
  --k:#0a0a0a;
  --bg:#ffffff;
  --sb:#f7f7f5;
  --g1:#f5f5f5;
  --g2:#e8e8e8;
  --g3:#d0d0d0;
  --g4:#888;
  --g5:#555;
  --g6:#333;
  --accent:#0a0a0a;
  --w:#ffffff;
  --inp-h:34px;
  --r-sm:4px;
  --r-md:5px;
  --r-lg:8px;
}
[data-theme="dark"]{
  --k:#f0f0f0;
  --bg:#1e1e1e;
  --sb:#181818;
  --g1:#2a2a2a;
  --g2:#383838;
  --g3:#444;
  --g4:#999;
  --g5:#bbb;
  --g6:#ddd;
  --accent:#f0f0f0;
  --w:#1e1e1e;
}
[data-theme="midnight"]{
  --k:#ebebeb;
  --bg:#0a0a0a;
  --sb:#050505;
  --g1:#111111;
  --g2:#1a1a1a;
  --g3:#252525;
  --g4:#888;
  --g5:#aaa;
  --g6:#ccc;
  --accent:#ebebeb;
  --w:#0a0a0a;
}

html,body{height:100%;background:var(--w);color:var(--k);font-family:Lato,sans-serif;font-weight:400;-webkit-font-smoothing:antialiased}

/* ── SCREENS ── */
#screen-auth{display:flex;flex-direction:column;min-height:100vh}
#screen-app{display:none;flex-direction:column;height:100vh;overflow:hidden}
body.authed #screen-auth{display:none}
body.authed #screen-app{display:flex}

/* ══════════════════════════════════════
   AUTH SCREEN
══════════════════════════════════════ */
.auth-header{height:64px;display:flex;align-items:center;justify-content:space-between;padding:0 2.5rem;border-bottom:1px solid var(--g2)}
.auth-main{flex:1;display:flex;align-items:center;justify-content:center;padding:2rem 1.5rem}
.auth-footer{height:56px;border-top:1px solid var(--g2);display:flex;align-items:center;justify-content:space-between;padding:0 2.5rem;flex-wrap:wrap;gap:.5rem}

.wm{text-decoration:none}
.wm-n{font-family:Lato,sans-serif;font-weight:700;font-size:20px;color:var(--k);letter-spacing:0;display:block;line-height:1.1}
.wm-f{font-family:EngraversGothic,sans-serif;font-size:10px;letter-spacing:0;color:var(--g4);display:block}
.hl{font-size:13px;font-weight:300;color:var(--g6);text-decoration:none;transition:color .15s}
.hl:hover{color:var(--k)}

.acard{width:100%;max-width:380px}
.act{font-family:AdobeCaslon,serif;font-weight:400;font-size:20px;color:var(--k);letter-spacing:.01em;margin-bottom:4px}
.acd{font-size:13px;font-weight:300;color:var(--g6);margin-bottom:2rem}

.tabs{display:flex;border-bottom:1px solid var(--g2);margin-bottom:1.75rem}
.tab{font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--g4);background:none;border:none;border-bottom:2px solid transparent;padding:0 0 11px;margin-bottom:-1px;margin-right:2rem;cursor:pointer;transition:color .15s,border-color .15s;font-family:Lato,sans-serif}
.tab:hover{color:var(--g6)}
.tab.on{color:var(--k);border-bottom-color:var(--k)}
.pnl{display:none}.pnl.on{display:block}

.field{margin-bottom:1.1rem}
label{display:block;font-size:10px;letter-spacing:.12em;text-transform:uppercase;color:var(--g6);margin-bottom:6px;font-family:Lato,sans-serif}
input[type=email],input[type=password],input[type=text],input[type=number]{display:block;width:100%;height:44px;border:1px solid var(--g2);background:var(--w);color:var(--k);font-family:Lato,sans-serif;font-size:15px;padding:0 13px;outline:none;border-radius:0;-webkit-appearance:none;transition:border-color .15s}
input:focus{border-color:var(--k)}
input::placeholder{color:var(--g4);font-weight:300}
select{display:block;width:100%;height:40px;border:1px solid var(--g2);background:var(--w);color:var(--k);font-family:Lato,sans-serif;font-size:13px;padding:0 32px 0 12px;outline:none;border-radius:0;-webkit-appearance:none;appearance:none;cursor:pointer;transition:border-color .15s;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%23a8a8a8' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 12px center}
select:focus{border-color:var(--k)}
textarea{width:100%;border:1px solid var(--g2);background:var(--w);color:var(--k);font-family:Lato,sans-serif;font-size:13px;padding:10px 12px;outline:none;border-radius:0;resize:vertical;transition:border-color .15s}
textarea:focus{border-color:var(--k)}

.btn{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;height:44px;background:var(--k);color:var(--w);border:none;font-family:Lato,sans-serif;font-weight:700;font-size:11px;letter-spacing:.12em;text-transform:uppercase;text-decoration:none;cursor:pointer;border-radius:5px;transition:opacity .15s;margin-top:.25rem}
.btn:hover{opacity:.82}
.btn:disabled{opacity:.35;cursor:not-allowed}
.btn-o{background:var(--g1);color:var(--k);border:1px solid var(--g2)}
.btn-o:hover{background:var(--g2);opacity:1}
.btn-sm{height:32px;font-size:10px;padding:0 1rem;width:auto;margin-top:0}
.btn-outline{background:var(--g1);color:var(--k);border:1px solid var(--g2)}
.btn-outline:hover{background:var(--g2);opacity:1}
.btn-ghost{background:transparent;color:var(--g6);border:none}
.btn-ghost:hover{color:var(--k);opacity:1}

.dv{display:flex;align-items:center;gap:10px;margin:1.5rem 0}
.dv-l{flex:1;height:1px;background:var(--g2)}
.dv-t{font-size:10px;letter-spacing:.1em;text-transform:uppercase;color:var(--g4);white-space:nowrap}
.divider{height:1px;background:var(--g2);margin:1.75rem 0}

.msg{display:none;padding:10px 13px;font-size:13px;line-height:1.5;margin-bottom:1rem;border-left:3px solid var(--k);background:var(--g1);color:var(--k)}
.msg.on{display:block}
.fn{text-align:center;margin-top:1.1rem}
.tb{background:none;border:none;font-family:Lato,sans-serif;font-size:13px;font-weight:300;color:var(--g6);cursor:pointer;transition:color .15s}
.tb:hover{color:var(--k)}
.kb{border:1px solid var(--g2);padding:1.25rem;margin-bottom:1.5rem}
.kb-n{font-family:AdobeCaslon,serif;font-weight:400;font-size:16px;color:var(--k);margin-bottom:6px}
.kb-b{font-size:13px;font-weight:300;color:var(--g6);line-height:1.65;margin-bottom:1rem}

.ov{display:none;position:fixed;inset:0;background:rgba(255,255,255,.97);z-index:500;align-items:center;justify-content:center;padding:2rem 1.5rem}
[data-theme="dark"] .ov{background:rgba(18,18,18,.97)}
[data-theme="midnight"] .ov{background:rgba(0,0,0,.98)}
.ov.on{display:flex}
.ov-i{width:100%;max-width:360px;position:relative}
.ov-t{font-family:AdobeCaslon,serif;font-weight:400;font-size:20px;margin-bottom:6px}
.ov-d{font-size:13px;font-weight:300;color:var(--g6);line-height:1.65;margin-bottom:1.5rem}
.ov-x{position:absolute;top:-4px;right:0;background:none;border:none;font-size:20px;color:var(--g4);cursor:pointer;line-height:1;padding:4px}
.ov-x:hover{color:var(--k)}

.ff{font-family:EngraversGothic,sans-serif;font-size:10px;letter-spacing:0;color:var(--g4);text-decoration:none;transition:color .15s}
.ff:hover{color:var(--k)}
.fl{display:flex;gap:1.5rem}
.fla{font-size:12px;font-weight:300;color:var(--g4);text-decoration:none;transition:color .15s}
.fla:hover{color:var(--k)}

.sp{width:13px;height:13px;border:2px solid rgba(255,255,255,.35);border-top-color:#fff;border-radius:50%;animation:spin .65s linear infinite;margin-right:8px;flex-shrink:0;display:inline-block;vertical-align:middle}
@keyframes spin{to{transform:rotate(360deg)}}

/* ══════════════════════════════════════
   APP SCREEN
══════════════════════════════════════ */
.app-header{height:var(--hh);border-bottom:1px solid var(--g2);display:flex;align-items:center;justify-content:center;flex-shrink:0;background:var(--w);z-index:100}
.app-header-inner{width:100%;padding:0 1.5rem;display:flex;align-items:center;gap:1rem}

.hamburger{position:relative;display:flex;align-items:center;justify-content:center;background:none;border:none;cursor:pointer;margin-left:0;width:32px;height:32px;flex-shrink:0}
.hamburger span{position:absolute;display:block;width:22px;height:1.5px;background:var(--k);transition:transform .3s ease,opacity .2s;transform-origin:center;left:5px}
.hamburger span:nth-child(1){transform:translateY(-6px)}.hamburger span:nth-child(2){display:none}.hamburger span:nth-child(3){transform:translateY(6px)}.sb-open .hamburger span:nth-child(1){transform:translateY(0) rotate(45deg)}

.sb-open .hamburger span:nth-child(3){transform:translateY(0) rotate(-45deg)}

.app-wm{text-decoration:none;flex-shrink:0}
.app-wm-n{font-family:Lato,sans-serif;font-weight:700;font-size:18px;color:var(--k);letter-spacing:0;display:block;line-height:1.1}
.app-wm-f{font-family:EngraversGothic,sans-serif;font-size:10px;letter-spacing:0;color:var(--g4);display:block}

.hdr-actions{display:flex;align-items:center;gap:.5rem;margin-left:auto}
.hdr-btn{width:34px;height:34px;display:flex;align-items:center;justify-content:center;background:none;border:1px solid var(--g2);cursor:pointer;color:var(--g6);transition:border-color .15s,color .15s}
.hdr-btn:hover{border-color:var(--k);color:var(--k)}
.hdr-btn svg{width:15px;height:15px;stroke:currentColor;fill:none;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}

.app-frame{flex:1;display:flex;width:100%;overflow:hidden;min-height:0}

.sidebar{width:0;flex-shrink:0;border-right:0px solid var(--g2);transition:width var(--ease),border-width var(--ease);background:var(--w);display:flex;flex-direction:column;height:100%;overflow:hidden}
.sb-open .sidebar{width:var(--sw);border-right-width:1px}
.sb-inner{width:var(--sw);display:flex;flex-direction:column;flex:1;min-height:0;overflow-y:auto;padding:1.25rem 0;scrollbar-width:none;-ms-overflow-style:none}.sb-inner::-webkit-scrollbar{display:none}

.nsl{font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:var(--g4);padding:0 1.25rem;margin:1.25rem 0 .5rem;font-family:Lato,sans-serif}
.nsl:first-child{margin-top:0}
.sb-section{border-bottom:1px solid var(--g2)}
.client-sb{width:0;overflow:hidden;flex-shrink:0;border-right:0px solid var(--g2);transition:width var(--ease),border-width var(--ease);background:var(--w);position:sticky;top:var(--hh);height:calc(100vh - var(--hh))}
.client-sb.open{width:var(--sw);border-right-width:1px}
.client-sb-inner{width:var(--sw);display:flex;flex-direction:column;height:100%;overflow-y:auto;padding:.5rem 0;scrollbar-width:none;-ms-overflow-style:none}.client-sb-inner::-webkit-scrollbar{display:none}
.client-sb-back{display:flex;align-items:center;gap:8px;padding:10px 1.25rem;font-size:11px;font-weight:300;color:var(--g6);background:none;border:none;border-bottom:1px solid var(--g2);cursor:pointer;font-family:Lato,sans-serif;width:100%;text-align:left;transition:color .15s;margin-bottom:.25rem;white-space:nowrap}
.client-sb-back:hover{color:var(--k)}
.client-sb-name{font-size:12px;font-weight:700;color:var(--k);padding:8px 1.25rem 6px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;border-bottom:1px solid var(--g2);margin-bottom:.25rem}
.sb-section:last-of-type{border-bottom:none}
.sb-section-toggle{display:flex;align-items:center;justify-content:space-between;padding:10px 1.25rem;cursor:pointer;background:none;border:none;width:100%;font-family:Lato,sans-serif;font-size:11px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--k);transition:background .12s}
.sb-section-toggle:hover{background:var(--g1)}
.sb-section-toggle svg{width:10px;height:10px;stroke:currentColor;fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;transition:transform .2s;flex-shrink:0}
.sb-section-toggle.open svg{transform:rotate(180deg)}
.sb-section-body{display:none;padding-bottom:.5rem}
.sb-section-body.open{display:block}
.sb-standalone{padding:.75rem 0}
.ni{display:flex;align-items:center;gap:10px;padding:9px 1.25rem;font-size:13px;font-weight:400;color:var(--g6);text-decoration:none;cursor:pointer;background:none;border:none;width:100%;text-align:left;font-family:Lato,sans-serif;letter-spacing:.01em;transition:color .12s,background .12s;white-space:nowrap}
.ni:hover{color:var(--k);background:var(--g1)}
.ni.on{color:var(--k);font-weight:700;background:var(--g1)}
.ni svg{width:15px;height:15px;stroke:currentColor;fill:none;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round;flex-shrink:0}

.sb-foot{padding:1.25rem;border-top:1px solid var(--g2);background:var(--sb);flex-shrink:0}
.sb-user{font-size:12px;font-weight:300;color:var(--g6);margin-bottom:10px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.so-btn{font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--g4);background:none;border:none;cursor:pointer;font-family:Lato,sans-serif;transition:color .15s;padding:0}
.so-btn:hover{color:var(--k)}
/* ── GL MODULE ──────────────────────────────────────────────────────── */
.gl-toolbar{display:flex;align-items:center;gap:.75rem;margin-bottom:1.25rem;flex-wrap:wrap}
.gl-toolbar input[type=date]{width:auto;font-size:12px}
.gl-table{width:100%;border-collapse:collapse;table-layout:fixed}
.gl-table th{font-size:10px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--g4);padding:6px 8px;border-bottom:2px solid var(--g2);text-align:left;white-space:nowrap}
.gl-table th.r,.gl-table td.r{text-align:right}
.gl-table td{font-size:12px;padding:9px 8px;border-bottom:0.5px solid var(--rule);vertical-align:middle}
.gl-table tr{cursor:pointer;transition:background .1s}
.gl-table tr:hover td{background:var(--g1)}
.gl-table tr.selected td{background:rgba(57,73,171,.1)}
.je-status{font-size:10px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;padding:2px 8px;border:none;border-radius:5px}
.je-status.posted{background:rgba(46,125,50,.12);color:#2e7d32}
.je-status.draft{background:var(--g1);color:var(--g4)}
.je-status.void{background:rgba(192,57,43,.12);color:#c0392b}
.je-status.reversal{background:rgba(229,81,0,.12);color:#e65100}
.je-form{max-width:900px}
.je-lines{width:100%;border-collapse:collapse;margin-bottom:.75rem;table-layout:fixed}
.je-lines th{font-size:10px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--g4);padding:5px 6px;border-bottom:2px solid var(--g2);text-align:left}
.je-lines th.r{text-align:right}
.je-lines td{padding:4px 6px;border-bottom:0.5px solid var(--rule);vertical-align:middle}
.je-lines td input,.je-lines td select{border:none;background:transparent;font-size:12px;font-family:inherit;color:var(--k);padding:4px 2px;width:100%;outline:none}
.je-lines td input:focus,.je-lines td select:focus{background:var(--g1)}
.je-lines td.amt input{font-family:Lato,sans-serif;text-align:right}
.je-balance{display:flex;align-items:center;gap:1.5rem;padding:.75rem 0;font-size:12px;border-top:1px solid var(--g2);margin-top:auto;position:sticky;bottom:0;background:var(--bg);z-index:50}
.je-form-scroll{flex:1;overflow-y:overlay;padding-bottom:1rem}
.je-form-footer{position:sticky;bottom:0;background:var(--bg);padding:.75rem 0 0;z-index:50;border-top:1px solid var(--g2)}
.je-balance .bal-item{display:flex;gap:.5rem;align-items:baseline}
.je-balance .bal-lbl{font-size:10px;text-transform:uppercase;letter-spacing:.06em;color:var(--g4)}
.je-balance .bal-val{font-family:Lato,sans-serif;font-size:13px;font-weight:400}
.je-balance .bal-diff{font-family:Lato,sans-serif;font-size:13px}
.je-balance .bal-diff.ok{color:var(--k)}
.je-balance .bal-diff.err{color:#c0392b}
.pg-loading{width:100%;padding:2rem 0;display:flex;justify-content:flex-start}
.pg-loading-bar{height:2px;width:0;background:var(--k);border-radius:1px;animation:pg-load .8s ease-in-out forwards}
@keyframes pg-load{0%{width:0;opacity:1}70%{width:85%;opacity:1}100%{width:100%;opacity:0}}

/* ── JE NOTES ──────────────────────────────────────────────────────────────── */
.je-notes-section{margin-top:1.5rem}
.je-note-item{padding:10px 0;border-bottom:.5px solid var(--rule);display:flex;flex-direction:column;gap:4px}
.je-note-item:last-child{border-bottom:none}
.je-note-meta{display:flex;align-items:center;gap:8px;font-size:11px;color:var(--g4)}
.je-note-author{font-weight:700;color:var(--g6)}
.je-note-text{font-size:13px;font-weight:300;color:var(--k);line-height:1.5;white-space:pre-wrap}
.je-note-del{background:none;border:none;cursor:pointer;color:var(--g4);font-size:13px;padding:0 2px;margin-left:auto;transition:color .15s;line-height:1}
.je-note-del:hover{color:#c0392b}
.je-note-input{width:100%;border:1px solid var(--g2);border-radius:5px;padding:8px 10px;font-size:12px;font-family:Lato,sans-serif;font-weight:300;color:var(--k);resize:none;min-height:60px;background:var(--g1);outline:none;transition:border-color .15s}
.je-note-input:focus{border-color:var(--k);background:var(--bg)}

/* ── AR MODULE ───────────────────────────────────────────────────────────────── */
.ar-status{font-size:10px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;padding:2px 8px;border:none;border-radius:5px}
.ar-status.draft{background:var(--g1);color:var(--g4)}
.ar-status.sent{background:rgba(21,101,192,.12);color:#1565c0}
.ar-status.paid{background:rgba(46,125,50,.12);color:#2e7d32}
.ar-status.partial{background:rgba(245,127,23,.12);color:#f57f17}
.ar-status.void{background:rgba(192,57,43,.12);color:#c0392b}
.inv-form-section{margin-bottom:1.5rem}
.inv-form-section .sec-title{margin-bottom:.5rem}
.inv-line-table{width:100%;border-collapse:collapse;table-layout:fixed}
.inv-line-table th{font-size:10px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--g4);padding:4px 6px;border-bottom:2px solid var(--g2);text-align:left}
.inv-line-table td{padding:4px 6px;border-bottom:.5px solid var(--rule);vertical-align:middle}
.inv-line-table input,.inv-line-table textarea{width:100%;border:none;background:transparent;font-size:12px;font-family:Lato,sans-serif;font-weight:300;color:var(--k);outline:none;padding:2px 0}
.inv-line-table input:focus,.inv-line-table textarea:focus{background:var(--g1);border-radius:3px;padding:2px 4px}
.inv-line-table input[type=number]{text-align:right}
.inv-totals{margin-left:auto;width:280px;margin-top:1rem}
.inv-totals-row{display:flex;justify-content:space-between;padding:5px 0;font-size:13px;font-weight:300}
.inv-totals-row.total{font-size:15px;font-weight:400;border-top:1.5px solid var(--k);padding-top:8px;margin-top:4px}
.inv-totals-row .label{color:var(--g4)}
.inv-pdf-preview{border:1px solid var(--g2);padding:2rem;background:var(--bg);max-width:700px;font-family:Lato,sans-serif}
.cust-card{padding:12px 0;border-bottom:.5px solid var(--rule);display:flex;align-items:center;gap:1rem;cursor:pointer;transition:background .12s}
.cust-card:hover{background:var(--g1)}
.cust-avatar{width:34px;height:34px;border-radius:50%;background:var(--g2);display:flex;align-items:center;justify-content:center;font-size:13px;font-weight:700;color:var(--g6);flex-shrink:0}
.cust-name{font-size:13px;font-weight:400;color:var(--k)}
.cust-meta{font-size:11px;color:var(--g4)}
.je-autosave{font-size:10px;color:var(--g4);letter-spacing:.04em}
/* ── AUDIT TRAIL ─────────────────────────────────────────────────────────────── */
.audit-table{width:100%;border-collapse:collapse;table-layout:fixed}
.audit-table th{font-size:10px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--g4);padding:6px 8px;border-bottom:2px solid var(--g2);text-align:left;white-space:nowrap}
.audit-table td{font-size:12px;padding:8px 8px;border-bottom:.5px solid var(--rule);vertical-align:top}
.audit-action{display:inline-block;font-size:10px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;padding:2px 8px;border:none;border-radius:5px}
.audit-action.create{background:var(--g1);color:#2e7d32}
.audit-action.update{background:var(--g1);color:var(--g6)}
.audit-action.delete{background:var(--g1);color:#c0392b}
.audit-action.post{background:var(--g1);color:#3949ab}
.audit-action.void{background:var(--g1);color:#c0392b}
.audit-action.reverse{background:var(--g1);color:#e65100}
.audit-action.pay{background:#e3f2fd;color:#1565c0}
.audit-ts{font-size:11px;color:var(--g4);white-space:nowrap}
.audit-user{font-size:12px;color:var(--k)}
.audit-desc{font-size:12px;color:var(--g6)}
/* ── CUSTOM UI COMPONENTS ──────────────────────────────────────────────────── */
/* Custom checkbox */
.cb-check{display:inline-flex;align-items:center;justify-content:center;width:16px;height:16px;border:1.5px solid var(--g3);border-radius:3px;cursor:pointer;flex-shrink:0;transition:background .12s,border-color .12s;background:var(--bg);position:relative}
.cb-check.checked{background:var(--k);border-color:var(--k)}
.cb-check.checked::after{content:'';position:absolute;top:2px;left:3px;width:8px;height:4px;border-left:2px solid var(--bg);border-bottom:2px solid var(--bg);transform:rotate(-45deg)}
/* Custom date picker */
.custom-date-wrap{position:relative;display:inline-block}
.custom-date-input{background:var(--g1);border:none;border-radius:5px;padding:0 12px;font-size:12px;font-family:'Lato',sans-serif;color:var(--k);cursor:pointer;white-space:nowrap;display:flex;align-items:center;gap:6px;height:34px;width:100%;box-sizing:border-box}
.custom-date-input:hover{background:var(--g2)}
.custom-date-input svg{width:12px;height:12px;stroke:currentColor;fill:none;stroke-width:2;stroke-linecap:round;flex-shrink:0}
.date-picker-popup{position:absolute;top:calc(100% + 2px);bottom:auto;left:0;z-index:600;background:var(--bg);border:1px solid var(--g2);border-radius:6px;box-shadow:0 4px 16px rgba(0,0,0,.1);padding:12px;min-width:240px}
.dp-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px}
.dp-nav{background:none;border:none;cursor:pointer;color:var(--g4);padding:4px 8px;border-radius:4px;font-size:16px;line-height:1;transition:color .12s}
.dp-nav:hover{color:var(--k)}
.dp-month-year{font-size:13px;font-weight:700;letter-spacing:.04em;color:var(--k);cursor:pointer}
.dp-grid{display:grid;grid-template-columns:repeat(7,1fr);grid-auto-rows:28px;gap:2px}
.dp-dow{font-size:10px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--g4);text-align:center;padding:4px 0}
.dp-day{font-size:12px;text-align:center;padding:0;line-height:28px;cursor:pointer;border-radius:4px;transition:background .1s,color .1s;color:var(--k)}
.dp-day:hover{background:var(--g1)}
.dp-day.today{font-weight:700;color:var(--k)}
.dp-day.selected{background:var(--k);color:#fff}
.dp-day.other-month{color:var(--g3)}
.dp-day.empty{cursor:default;height:28px}
/* Custom select dropdown */
.custom-select-wrap{position:relative}
.custom-select-trigger{display:flex;align-items:center;justify-content:space-between;background:transparent;border:none;border-radius:5px;padding:3px 6px;font-size:11px;font-family:'Lato',sans-serif;color:var(--k);cursor:pointer;height:24px;min-width:80px;gap:6px;white-space:nowrap;transition:background .12s}
.custom-select-trigger:hover{background:var(--g1)}
.custom-select-trigger svg{width:10px;height:10px;stroke:currentColor;fill:none;stroke-width:2;flex-shrink:0;transition:transform .15s}
.custom-select-trigger.open svg{transform:rotate(180deg)}
.custom-select-popup{position:absolute;top:calc(100% + 2px);bottom:auto;left:0;min-width:200px;z-index:600;background:var(--bg);border:1px solid var(--g2);border-radius:6px;box-shadow:0 4px 16px rgba(0,0,0,.1);overflow:hidden;width:max-content;max-width:320px}
.custom-select-search{padding:8px 10px;border-bottom:1px solid var(--g2)}
.custom-select-search input{width:100%;border:none;background:transparent;font-size:12px;font-family:'Lato',sans-serif;outline:none;color:var(--k)}
.custom-select-list{max-height:160px;overflow-y:overlay}
.custom-select-item{padding:8px 12px;font-size:12px;cursor:pointer;color:var(--k);transition:background .1s}
.custom-select-item:hover,.custom-select-item.active{background:var(--g1)}
.custom-select-item.selected{font-weight:700}
/* GL filter row custom inputs */
.gl-col-filter{position:relative}
.gl-col-filter-input{background:transparent;border:none;border-bottom:1px solid var(--g2);font-size:11px;font-family:'Lato',sans-serif;color:var(--k);padding:3px 4px;width:100%;outline:none;transition:border-color .15s}
.gl-col-filter-input:focus{border-bottom-color:var(--k)}


/* Row action menu */
.row-menu{position:fixed;z-index:700;background:var(--bg);border:1px solid var(--g2);border-radius:6px;box-shadow:0 4px 16px rgba(0,0,0,.1);min-width:140px;overflow:hidden}
.row-menu-item{display:block;width:100%;text-align:left;padding:9px 14px;font-size:12px;font-family:"Lato",sans-serif;font-weight:300;color:var(--k);background:none;border:none;cursor:pointer;transition:background .1s}
.row-menu-item:hover{background:var(--g1)}
.row-menu-item.danger{color:#c0392b}
.row-menu-item.danger:hover{background:rgba(192,57,43,.08)}
.row-menu-divider{height:1px;background:var(--g2);margin:3px 0}
.acct-search-wrap{position:relative}
.acct-search-input{width:100%;font-size:12px;background:transparent;border:none;font-family:Lato,sans-serif;color:var(--k);padding:4px 2px;outline:none}
.acct-search-input:focus{background:var(--g1)}
.acct-dropdown{position:absolute;top:100%;bottom:auto;left:0;right:0;background:var(--bg);border:1px solid var(--g2);border-top:none;max-height:160px;overflow-y:overlay;z-index:600;box-shadow:0 4px 12px rgba(0,0,0,.08)}
.acct-dropdown-item{padding:6px 10px;font-size:12px;cursor:pointer;display:flex;gap:8px;align-items:baseline}
.acct-dropdown-item:hover,.acct-dropdown-item.active{background:var(--g1)}
.acct-dropdown-item .acct-dd-num{font-size:10px;color:var(--g4);flex-shrink:0;width:48px}
.acct-dropdown-item .acct-dd-name{color:var(--k)}
.acct-dropdown-empty{padding:8px 10px;font-size:12px;color:var(--g4)}
.gl-filter-row{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:.75rem;align-items:center}
.gl-filter-chip{display:inline-flex;align-items:center;gap:4px;padding:3px 8px;background:var(--g1);border-radius:4px;font-size:11px;color:var(--g6)}
.gl-filter-chip button{background:none;border:none;cursor:pointer;color:var(--g4);font-size:13px;line-height:1;padding:0 0 0 2px}
.gl-th-sort{cursor:pointer;user-select:none;white-space:nowrap}
.gl-th-sort:hover{color:var(--k)}
.gl-th-sort .sort-arrow{font-size:10px;margin-left:3px;color:var(--g4)}
.je-attachments{margin-top:1.5rem}
.openInvoiceForm .custom-date-input{height:34px!important;box-sizing:border-box}
.je-drop-zone{border:1.5px dashed var(--g3);padding:1.5rem;text-align:center;cursor:pointer;transition:border-color .15s,background .15s;border-radius:5px}
.je-upload-progress{height:2px;background:var(--g2);border-radius:1px;overflow:hidden;margin-top:4px}
.je-upload-progress-bar{height:100%;background:var(--k);width:0%;transition:width .3s ease;border-radius:1px}
.je-drop-zone:hover,.je-drop-zone.drag-over{border-color:var(--k);background:var(--g1)}
.je-drop-zone p{font-size:12px;font-weight:300;color:var(--g4);margin:0}
.je-drop-zone strong{font-weight:400;color:var(--k)}
.je-file-list{margin-top:.75rem;display:flex;flex-direction:column;gap:6px}
.je-file-item{display:flex;align-items:center;gap:10px;padding:8px 10px;background:var(--g1);border-radius:4px;font-size:12px}
.je-file-item .je-file-name{flex:1;color:var(--k);cursor:pointer;text-decoration:none}
.je-file-item .je-file-name:hover{text-decoration:underline}
.je-file-item .je-file-size{color:var(--g4);font-size:11px;white-space:nowrap}
.je-file-item .je-file-del{background:none;border:none;cursor:pointer;color:var(--g4);font-size:16px;line-height:1;padding:0 2px;transition:color .15s}
.je-file-item .je-file-del:hover{color:#c0392b}

.sb-subsection{margin:0}
.sb-subsection-toggle{display:flex;align-items:center;width:100%}
.sb-subsection-toggle .sb-chevron{transition:transform .2s}
.sb-subsection-body{display:none;padding-left:0}
.sb-subsection.open .sb-subsection-body{display:block}
.sb-subsection.open .sb-subsection-toggle svg:last-child{transform:rotate(180deg)}
.ni-sub{padding-left:2.5rem !important;font-size:12px !important;color:var(--g6);background:var(--g1) !important;border-radius:0}
.ni-sub:hover{background:var(--g2) !important;color:var(--k) !important}
.ni-sub.on{background:var(--g1) !important;color:var(--k) !important;font-weight:700}
.coa-section{margin-bottom:2rem}
.coa-section-header{font-size:10px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--g4);padding:12px 0 8px;border-bottom:1px solid var(--g2);margin-bottom:4px}
.coa-row{display:grid;grid-template-columns:80px 1fr 110px 60px 70px 180px 130px;align-items:center;padding:8px 0;border-bottom:0.5px solid var(--rule);gap:0}
.coa-row.account{cursor:pointer;transition:background .1s}
.coa-row.account:hover{background:var(--g1)}
.coa-row.category{cursor:default;background:var(--g1);margin-top:4px}
.coa-row.category .coa-name{font-size:11px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--g4)}
.coa-row.category .coa-num{color:var(--g4)}
.coa-row.subaccount{cursor:pointer;transition:background .1s}
.coa-row.subaccount:hover{background:var(--g1)}
.coa-row.subaccount .coa-num{padding-left:2.5rem;color:var(--g4)}
.coa-row.subaccount .coa-name{color:var(--g6);font-size:12px}
.coa-row.account .coa-num{padding-left:1.25rem}
.coa-num{font-family:Lato,sans-serif;font-size:11px;color:var(--g4);letter-spacing:.04em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.coa-name{font-size:13px;line-height:1.4;padding-right:8px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.coa-type{font-size:10px;letter-spacing:.06em;text-transform:uppercase;color:var(--g4);text-align:right;white-space:nowrap}
.coa-tax{font-size:10px;color:var(--g4);text-align:right;white-space:nowrap;text-overflow:ellipsis;overflow:hidden}
.coa-bal{font-size:11px;font-family:Lato,sans-serif;text-align:right;white-space:nowrap;color:var(--k)}
.coa-bal.negative{color:#c0392b}
.coa-txcount{font-size:11px;text-align:right;color:var(--g4);white-space:nowrap}
.coa-filter-bar{display:flex;gap:.75rem;margin-bottom:1.5rem;flex-wrap:wrap;align-items:center}
.acct-drill-back{background:none;border:none;cursor:pointer;color:var(--g4);font-size:13px;font-weight:300;font-family:"Lato",sans-serif;padding:0;transition:color .15s;margin-bottom:1rem;display:flex;align-items:center;gap:6px}
.acct-drill-back:hover{color:var(--k)}
.acct-header{margin-bottom:1.5rem}
.acct-header-num{font-size:11px;font-family:Lato,sans-serif;color:var(--g4);letter-spacing:.06em;margin-bottom:4px}
.acct-header-name{font-family:"AdobeCaslon",serif;font-size:20px;font-weight:400;color:var(--k);margin-bottom:4px}
.acct-header-tax{font-size:11px;font-weight:300;color:var(--g4)}
.acct-balance-row{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem;margin-bottom:2rem}
.acct-balance-card{border:1px solid var(--g2);padding:1rem}
.acct-balance-label{font-size:10px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--g4);margin-bottom:6px}
.acct-balance-val{font-family:"AdobeCaslon",serif;font-size:20px;font-weight:400;color:var(--k);line-height:1}
.signout-btn{display:flex;align-items:center;justify-content:center;width:100%;height:36px;background:none;border:1px solid var(--g2);color:var(--g6);font-family:Lato,sans-serif;font-size:11px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;cursor:pointer;transition:border-color .15s,color .15s;margin-top:1rem}
.signout-btn:hover{border-color:var(--k);color:var(--k)}
.sb-name{font-size:13px;font-weight:700;color:var(--k);margin-bottom:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.sb-email{font-size:11px;font-weight:300;color:var(--g6);margin-bottom:8px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.sb-role-row{display:flex;align-items:center;gap:6px;margin-bottom:8px}
.sb-badge{font-size:10px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;padding:2px 8px;border:none;border-radius:5px;font-family:Lato,sans-serif;background:var(--g1);color:var(--g6)}
.sb-badge.role-owner{background:var(--k);color:var(--bg)}
.sb-firm{font-size:10px;font-weight:400;letter-spacing:.06em;text-transform:uppercase;color:var(--g4);margin-bottom:12px;line-height:1.5}

.sb-backdrop{display:none;position:fixed;inset:0;background:transparent;z-index:90}
.sb-backdrop.on{display:block}

.main-content{flex:1;min-width:0;padding:2rem 2rem 4rem;height:100%;box-sizing:border-box}
.pg{display:none}.pg.on{display:block}
#page-loading-overlay{display:none;position:fixed;inset:0;background:rgba(255,255,255,.72);z-index:9000;align-items:center;justify-content:center;backdrop-filter:blur(2px)}
#page-loading-overlay.on{display:flex}
.pl-spinner{width:32px;height:32px;border:2.5px solid var(--g2);border-top-color:var(--k);border-radius:50%;animation:spin .7s linear infinite}
[data-theme="dark"] #page-loading-overlay{background:rgba(18,18,18,.78)}
[data-theme="midnight"] #page-loading-overlay{background:rgba(0,0,0,.85)}
@keyframes spin{to{transform:rotate(360deg)}}

.page-title{font-family:AdobeCaslon,serif;font-size:20px;font-weight:400;color:var(--k);letter-spacing:.01em;margin-bottom:4px}
.page-sub{font-size:13px;font-weight:300;color:var(--g6);letter-spacing:.02em;margin-bottom:2rem}
.sec-title{font-size:10px;letter-spacing:.12em;text-transform:uppercase;color:var(--g4);margin-bottom:1rem;font-family:Lato,sans-serif}

.card{border:1px solid var(--g2);background:var(--w);padding:1.25rem;margin-bottom:1rem}
.card-title{font-family:AdobeCaslon,serif;font-weight:400;font-size:16px;color:var(--k);margin-bottom:4px}
.card-meta{font-size:12px;font-weight:300;color:var(--g6);letter-spacing:.02em}

.widget-grid{display:grid;grid-template-columns:repeat(12,1fr);gap:1rem;margin-bottom:2rem}
.widget{border:1px solid var(--g2);background:var(--w);padding:1.25rem;position:relative;min-height:120px}
.w1{grid-column:span 3}.w2{grid-column:span 4}.w3{grid-column:span 6}.w4{grid-column:span 8}.wf{grid-column:span 12}
.wlbl{font-size:10px;letter-spacing:.12em;text-transform:uppercase;color:var(--g4);margin-bottom:8px}
.wval{font-family:AdobeCaslon,serif;font-weight:400;font-size:20px;letter-spacing:.01em;color:var(--k);line-height:1}
.wsub{font-size:12px;font-weight:300;color:var(--g6);margin-top:6px}
.wdh{position:absolute;top:8px;right:8px;opacity:0;transition:opacity .15s;cursor:grab;color:var(--g3)}
.widget:hover .wdh{opacity:1}
.wdh svg{width:14px;height:14px;stroke:currentColor;fill:none;stroke-width:1.5}
.edit-mode .widget{border-style:dashed;cursor:move}
.edit-mode .wdh{opacity:1}
.edit-bar{display:none;align-items:center;justify-content:space-between;padding:10px 1rem;border:1px solid var(--g2);background:var(--g1);margin-bottom:1rem}
.edit-bar.on{display:flex}
.edit-bar-lbl{font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--g6)}

.proj-list{display:flex;flex-direction:column}
.proj-row{display:grid;grid-template-columns:1fr auto auto auto;align-items:center;gap:1rem;padding:14px 0;border-bottom:1px solid var(--g2);cursor:pointer;transition:background .12s}
.proj-row:last-child{border-bottom:none}
.proj-row:hover{background:var(--g1);margin:0 -1rem;padding-left:1rem;padding-right:1rem}
.proj-name{font-size:13px;color:var(--k)}
.proj-num{font-size:12px;font-weight:300;color:var(--g6);margin-top:2px}
.proj-stat{text-align:right}
.proj-sv{font-size:13px;color:var(--k)}
.proj-sl{font-size:10px;font-weight:300;color:var(--g4);letter-spacing:.04em}

.badge{display:inline-block;font-size:10px;letter-spacing:.1em;text-transform:uppercase;padding:3px 8px;font-family:Lato,sans-serif;font-weight:700}
.badge-active{border:1px solid var(--k);color:var(--k)}
.badge-closed{border:1px solid var(--g3);color:var(--g4)}
.badge-bid{border:1px solid var(--g3);color:var(--g6)}

table{width:100%;border-collapse:collapse}
th{font-size:10px;letter-spacing:.1em;text-transform:uppercase;color:var(--g4);font-weight:400;text-align:left;padding:0 12px 10px;border-bottom:1px solid var(--g2)}
td{padding:12px;font-size:13px;color:var(--k);border-bottom:1px solid var(--g2)}
tr:last-child td{border-bottom:none}
tr:hover td{background:var(--g1)}
.mono{letter-spacing:.02em}
.muted{color:var(--g6);font-weight:300}

.empty{padding:3rem 0;text-align:center}
.empty-title{font-family:AdobeCaslon,serif;font-weight:400;font-size:20px;color:var(--k);margin-bottom:6px}
.empty-desc{font-size:13px;font-weight:300;color:var(--g6);line-height:1.7}

.alert{display:none;padding:10px 13px;font-size:13px;line-height:1.5;margin-bottom:1rem}
.alert.on{display:block}
.alert-err{border-left:2px solid var(--k);background:var(--g1);color:var(--k)}

.modal-bd{display:none;position:fixed;inset:0;background:rgba(255,255,255,.92);z-index:200;align-items:center;justify-content:center;padding:1.5rem}
[data-theme="dark"] .modal-bd{background:rgba(10,10,10,.88)}
[data-theme="midnight"] .modal-bd{background:rgba(0,0,0,.92)}
.modal-bd.on{display:flex}
.modal{width:100%;max-width:480px;border:1px solid var(--g2);background:var(--w);padding:2rem;position:relative;max-height:90vh;overflow-y:overlay}
.modal-title{font-family:AdobeCaslon,serif;font-weight:400;font-size:20px;margin-bottom:1.5rem}
.modal-x{position:absolute;top:1.25rem;right:1.25rem;background:none;border:none;cursor:pointer;color:var(--g4);font-size:20px;line-height:1;transition:color .15s}
.modal-x:hover{color:var(--k)}
.modal-foot{display:flex;gap:.75rem;justify-content:flex-end;margin-top:1.5rem;padding-top:1.25rem;border-top:1px solid var(--g2)}
[style*="text-align:center"] .modal-foot,[style*="text-align: center"] .modal-foot{justify-content:center;border-top:none;padding-top:0}

.g2{display:grid;grid-template-columns:1fr 1fr;gap:1rem}

/* ── RESPONSIVE ── */
@media(max-width:900px){.w1{grid-column:span 6}.w2{grid-column:span 6}.w3{grid-column:span 12}.w4{grid-column:span 12}}
@media(max-width:768px){
  .sidebar{position:fixed;top:0;left:0;height:100vh;z-index:95;width:0;border-right-width:0}
  .sb-open .sidebar{width:var(--sw);border-right-width:1px;box-shadow:2px 0 12px rgba(0,0,0,.08)}
}
@media(max-width:600px){
  .w1,.w2,.w3,.w4{grid-column:span 12}
  .main-content{padding:1.25rem 1rem 4rem}
  .proj-row{grid-template-columns:1fr auto}
  .proj-row .proj-stat:not(:last-child){display:none}
}
@media(display-mode:standalone){
  .auth-header{padding:0 1.25rem}
  .app-header{height:56px}
  :root{--hh:56px}
}
@media(max-width:500px){
  .auth-header{padding:0 1.25rem}
  .auth-main{padding:1.75rem 1.25rem;align-items:flex-start}
  .auth-footer{padding:0 1.25rem}
  .fl{gap:1rem}
  .act{font-size:20px}
}
.ap-status{display:inline-block;font-size:10px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;padding:2px 8px;border-radius:5px}
.ap-status.draft{background:var(--g1);color:var(--g4)}
.ap-status.posted{background:rgba(57,73,171,.12);color:#3949ab}
.ap-status.paid{background:rgba(46,125,50,.12);color:#2e7d32}
.ap-status.partial{background:rgba(245,127,23,.12);color:#f57f17}
.ap-status.reversed{background:rgba(192,57,43,.12);color:#c0392b}
.jc-progress-bar{height:4px;background:var(--g2);border-radius:2px;overflow:hidden;margin-top:3px}
.jc-progress-fill{height:100%;background:var(--k);border-radius:2px;transition:width .3s}
.jc-progress-fill.over{background:#c0392b}
.recon-banner{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--g2);border:1px solid var(--g2);margin-bottom:1.5rem}
.recon-stat{background:var(--bg);padding:.75rem 1rem}
.recon-stat-lbl{font-size:10px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--g4);margin-bottom:4px}
.recon-stat-val{font-size:16px;font-weight:300}
.recon-stat-val.match{color:#2e7d32}
.recon-stat-val.mismatch{color:#c0392b}
.report-section-header{font-size:10px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--g4);padding:10px 0 6px;border-bottom:1.5px solid var(--k);margin-top:1.25rem}
.report-row{display:flex;justify-content:space-between;padding:4px 0 4px 12px;font-size:12px;border-bottom:.5px solid var(--g1)}
.report-row.indent{padding-left:24px}
.report-row.subtotal{font-weight:700;border-top:1px solid var(--g2);border-bottom:2px solid var(--g2);padding-left:12px}
.report-row.bold{font-weight:700;border-top:2px solid var(--k);border-bottom:2px solid var(--k)}
.report-row.total{font-weight:700;font-size:13px;border-top:2px solid var(--k)}
.inv-level-ok{color:#2e7d32}
.inv-level-warn{color:#f57f17}
.inv-level-low{color:#c0392b}
.depr-bar{height:4px;background:var(--g2);border-radius:2px;overflow:hidden;margin-top:3px}
.depr-fill{height:100%;background:var(--k);border-radius:2px}
.g703-table{width:100%;border-collapse:collapse;font-size:12px}
.g703-table th{font-size:10px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--g4);padding:5px 8px;border-bottom:2px solid var(--k);text-align:right}
.g703-table th:nth-child(1),.g703-table th:nth-child(2){text-align:left}
.g703-table td{padding:5px 8px;border-bottom:.5px solid var(--g2);text-align:right}
.g703-table td:nth-child(1),.g703-table td:nth-child(2){text-align:left}
.g703-table tfoot tr{font-weight:700;border-top:2px solid var(--k)}
.cap-zone{border:2px dashed var(--g2);padding:2.5rem 2rem;text-align:center;cursor:pointer;transition:border-color .15s;border-radius:5px}
.cap-zone:hover,.cap-zone.drag-over{border-color:var(--k)}
.cap-zone-icon{width:36px;height:36px;margin:0 auto .75rem;color:var(--g4)}
.cap-zone-title{font-family:AdobeCaslon,serif;font-size:18px;font-weight:400;margin-bottom:4px}
.cap-zone-sub{font-size:12px;font-weight:300;color:var(--g6)}
.cap-preview{margin-top:1rem;border:1px solid var(--g2);background:var(--g1);display:flex;align-items:center;justify-content:center;max-height:220px;overflow:hidden}
.cap-preview img{max-height:220px;max-width:100%;object-fit:contain}
.cap-ai-fields{display:grid;grid-template-columns:1fr 1fr;gap:.6rem .75rem;margin-bottom:.75rem}
.cap-field label{font-size:10px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--g4);display:block;margin-bottom:3px}
.cap-field input{width:100%;border:1px solid var(--g2);border-radius:5px;padding:0 10px;height:34px;font-size:12px;font-family:Lato,sans-serif;outline:none;background:var(--bg);box-sizing:border-box}
.audit-entry{padding:10px 0;border-bottom:.5px solid var(--g2);display:grid;grid-template-columns:90px 80px 1fr auto;gap:4px 12px;align-items:start;font-size:12px}
.audit-entry:last-child{border-bottom:none}
.audit-time{font-size:10px;color:var(--g4);margin-top:2px}
.audit-module{display:inline-block;font-size:10px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;padding:2px 8px;background:var(--g1);color:var(--g4);border-radius:5px;margin-top:2px}
.audit-desc{font-size:12px;color:var(--g6);padding-top:2px}
.audit-action{display:inline-block;font-size:10px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;padding:2px 8px;border-radius:5px}
.audit-action.create{background:var(--g1);color:#2e7d32}
.audit-action.update{background:var(--g1);color:var(--g6)}
.audit-action.delete{background:var(--g1);color:#c0392b}
.audit-action.post{background:var(--g1);color:#3949ab}
.audit-action.reverse{background:var(--g1);color:#e65100}
.audit-action.pay{background:var(--g1);color:#1565c0}
.row-menu{border-radius:0}
.ni{transition:background .08s,opacity .08s}
.ni:active{opacity:.65}
.ni-sub:active{background:var(--g2)!important}
.btn:active{opacity:.75}
.btn-outline:active{opacity:.75}
.acct-drill-back:active{opacity:.65}
.sb-subsection-toggle:active{opacity:.65}
.gl-table tbody tr:active{background:var(--g1)}
/* All app tables inherit gl-table style */
.main-content table:not(.g703-table):not(.wip-table){width:100%;border-collapse:collapse;font-size:13px}
.main-content table:not(.g703-table):not(.wip-table) thead th{font-size:10px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--g4);padding:8px 12px 8px;border-bottom:1.5px solid var(--k);white-space:nowrap;text-align:left}
.main-content table:not(.g703-table):not(.wip-table) tbody tr{cursor:pointer;border-bottom:.5px solid var(--g2);transition:background .1s}
.main-content table:not(.g703-table):not(.wip-table) tbody tr:hover{background:var(--g1)}
.main-content table:not(.g703-table):not(.wip-table) tbody td{padding:10px 12px;font-size:12px;font-weight:300;vertical-align:middle}
.main-content table:not(.g703-table):not(.wip-table) tbody td strong{font-weight:400}


/* === LATE-BIND === */


/* LATE BIND - overflow fix, wins over everything */
td,tr,tbody,thead,table,.je-form,.je-lines,.pg,.app-frame,.sb-open,
.custom-select-wrap,.acct-search-wrap,.custom-date-wrap,
div:not(.main-content):not(.acct-dropdown):not(.custom-select-list):not(.sb-section-body):not(.modal):not(.sb-inner):not(.client-sb-inner){overflow:visible !important}
.main-content{overflow-y:auto !important;overflow-x:hidden !important}
.custom-select-list{max-height:160px !important;overflow-y:auto !important}
.acct-dropdown{max-height:160px !important;overflow-y:auto !important}
.sidebar{overflow:hidden !important}.sb-inner,.client-sb-inner{overflow-y:auto !important;overflow-x:hidden !important;scrollbar-width:none !important;-ms-overflow-style:none !important}.sb-inner::-webkit-scrollbar,.client-sb-inner::-webkit-scrollbar{display:none !important}

/* ── DESIGN SYSTEM ──────────────────────────────────────────────────────── */
body{background:var(--bg);color:var(--k);}
#sb-front,#sb-back,#client-sidebar,.sidebar-inner{background:var(--sb)!important;}
.gl-table{background:var(--bg);color:var(--k);}
.gl-table thead tr{background:var(--g1);}
.gl-table td,.gl-table th{color:var(--k);border-color:var(--g2);}
.gl-table tbody tr:hover td{background:var(--g1);}
.row-menu{background:var(--bg);border-color:var(--g2);}
.row-menu button{color:var(--k);}
.row-menu button:hover{background:var(--g1);}
.custom-select-dropdown{background:var(--bg);border-color:var(--g2);}
.custom-select-option{color:var(--k);}
.custom-select-option:hover,.custom-select-option.active{background:var(--g1);}
.je-drop-zone{background:var(--g1);border-color:var(--g3);}
.je-note-item{background:var(--g1);}
.je-note-text,.je-note-author{color:var(--k);}
.modal-bd{background:rgba(0,0,0,.5);}
.page-title{font-size:16px;}
.page-sub,.muted{color:var(--g4);}
.sec-title{font-size:10px;}
.gl-col-filter-input{height:24px!important;font-size:11px!important;}
input[type="text"]:not(.gl-col-filter-input),
input[type="email"],input[type="tel"],input[type="number"]:not(.gl-col-filter-input),
input[type="password"],input[type="date"]{
  background:var(--bg);color:var(--k);border-color:var(--g2);
}
textarea{background:var(--bg);color:var(--k);border-color:var(--g2);}
.btn{font-family:Lato,sans-serif;}
.acct-search-input{background:var(--g1)!important;color:var(--k)!important;}
.acct-drill-back{color:var(--g4);}
.acct-drill-back:hover{color:var(--k);}


/* Uniform inputs - all theme-aware */
input,select,textarea{
  color:var(--k) !important;
  background:var(--bg) !important;
  border-color:var(--g2) !important;
}
input::placeholder,textarea::placeholder{color:var(--g4) !important;}
input:focus,select:focus,textarea:focus{
  border-color:var(--k) !important;
  outline:none;
}
/* Uniform input height for form inputs */
.field input[type="text"],
.field input[type="email"],
.field input[type="tel"],
.field input[type="number"],
.field input[type="password"],
.field input[type="date"]{
  height:34px;
  box-sizing:border-box;
  padding:0 10px;
  border-radius:5px;
  font-size:12px;
  font-family:Lato,sans-serif;
  width:100%;
}
/* Sidebar items */
.ni,.ni-sub{
  background:transparent;
  color:var(--g5);
  transition:background .12s, color .12s;
}
.ni:hover,.ni-sub:hover{
  background:var(--g1);
  color:var(--k);
}
.ni.on,.ni-sub.on{
  background:var(--g1) !important;
  color:var(--k) !important;
  font-weight:600;
}
/* Cards */
.card{
  background:var(--bg);
  border:1px solid var(--g2);
  border-radius:8px;
  padding:1.25rem;
}
/* Page */
.pg{background:var(--bg);}
main,#screen-app,.screen-inner{background:var(--bg);}


/* Theme-aware status badges */
.ar-status.partial{background:var(--g1);color:var(--g5);}
.je-status.reversal{background:var(--g1);color:var(--g5);}
/* Sticky footers */
.je-form-footer,.form-footer-sticky{background:var(--bg) !important;}
/* Input focus */
input:focus,select:focus,textarea:focus{background:var(--bg) !important;}

/* Dark/Midnight: brighten semantic colors for readability */
[data-theme="dark"] .ar-status.sent,[data-theme="midnight"] .ar-status.sent{color:#64b5f6}
[data-theme="dark"] .ar-status.paid,[data-theme="midnight"] .ar-status.paid{color:#81c784}
[data-theme="dark"] .ar-status.partial,[data-theme="midnight"] .ar-status.partial{color:#ffb74d}
[data-theme="dark"] .ar-status.void,[data-theme="midnight"] .ar-status.void,[data-theme="dark"] .ar-status.reversed,[data-theme="midnight"] .ar-status.reversed{color:#e57373}
[data-theme="dark"] .audit-action.create,[data-theme="midnight"] .audit-action.create{color:#81c784}
[data-theme="dark"] .audit-action.post,[data-theme="midnight"] .audit-action.post{color:#9fa8da}
[data-theme="dark"] .audit-action.delete,[data-theme="midnight"] .audit-action.delete,[data-theme="dark"] .audit-action.void,[data-theme="midnight"] .audit-action.void{color:#e57373}
[data-theme="dark"] .audit-action.reverse,[data-theme="midnight"] .audit-action.reverse{color:#ffcc80}
[data-theme="dark"] .audit-action.pay,[data-theme="midnight"] .audit-action.pay{color:#64b5f6}
[data-theme="dark"] .je-status.posted,[data-theme="midnight"] .je-status.posted{color:#81c784}
[data-theme="dark"] .je-status.void,[data-theme="midnight"] .je-status.void{color:#e57373}
[data-theme="dark"] .je-status.reversal,[data-theme="midnight"] .je-status.reversal{color:#ffcc80}

