:root{--green:#2ca01c;--green-d:#108000;--side:#21262d;--side-2:#2d333b;--bg:#f4f5f8;--ink:#393a3d;--line:#dcdfe4}
body{background:var(--bg);color:var(--ink);font-family:"Avenir Next","Segoe UI",system-ui,-apple-system,sans-serif;font-size:14px}
a{color:#0077c5;text-decoration:none}a:hover{text-decoration:underline}
.app{display:flex;min-height:100vh}
.sidebar{width:228px;background:var(--side);color:#fff;display:flex;flex-direction:column;position:sticky;top:0;height:100vh;overflow-y:auto;flex-shrink:0;z-index:1030}
.sidebar .brand{display:flex;gap:.6rem;align-items:center;padding:1rem}
.sidebar .logo{width:34px;height:34px;border-radius:50%;background:var(--green);display:grid;place-items:center;font-weight:700}
.sidebar nav a{display:flex;align-items:center;gap:.65rem;color:#d1d5db;padding:.55rem 1rem;border-left:4px solid transparent;text-decoration:none}
.sidebar nav a:hover{background:var(--side-2);color:#fff}
.sidebar nav a.active{background:#393f47;color:#fff;border-left-color:var(--green);font-weight:600}
.sidebar .ico{width:1.2rem;text-align:center;opacity:.8}
.btn-new{background:#fff;color:var(--ink);border-radius:20px;font-weight:600;border:0}
.btn-new:hover{background:#eef0f2}
.new-menu{min-width:520px}.new-menu a{color:var(--ink)}
.content{flex:1;min-width:0;display:flex;flex-direction:column}
.topbar{background:#fff;border-bottom:1px solid var(--line);padding:.75rem 1.5rem;position:sticky;top:0;z-index:1020}
.page{padding:1.25rem 1.5rem;flex:1}
.card{border:1px solid var(--line);border-radius:6px;box-shadow:0 1px 2px rgba(0,0,0,.03)}
.card-header{background:#fff;font-weight:600}
.btn-success{background:var(--green);border-color:var(--green)}.btn-success:hover{background:var(--green-d);border-color:var(--green-d)}
.num{text-align:right;font-variant-numeric:tabular-nums}
input.num{text-align:right}
.table>thead th{font-size:.75rem;text-transform:uppercase;letter-spacing:.03em;color:#6b6c72;font-weight:600;background:#f9fafb}
.kpi{font-size:1.6rem;font-weight:700}
.kpi-label{font-size:.75rem;text-transform:uppercase;color:#6b6c72;letter-spacing:.04em}
.bar{height:10px;border-radius:5px;background:#e9ecef;overflow:hidden;display:flex}
.bar>span{display:block;height:100%}
.status{font-size:.75rem;padding:.15rem .5rem;border-radius:10px;white-space:nowrap}
.status.open{background:#e8f4fd;color:#0b5c99}.status.overdue{background:#fdecea;color:#b42318}.status.paid,.status.closed{background:#e7f6e5;color:#1d6b14}
.status.partial{background:#fff4e5;color:#8a5300}.status.void{background:#eee;color:#666}.status.posted{background:#eef0f2;color:#444}
/* forms */
.txn-form{background:#fff;border:1px solid var(--line);border-radius:6px;padding:1.25rem 1.25rem 5rem}
.txn-form .big-total{font-size:.75rem;text-transform:uppercase;color:#6b6c72}
.txn-form .big-total div{font-size:2rem;font-weight:700;color:var(--ink);text-transform:none}
.lines td{vertical-align:middle}.lines .form-control,.lines .form-select{border-color:transparent;background-color:transparent}
.lines tr:hover .form-control,.lines tr:hover .form-select,.lines .form-control:focus,.lines .form-select:focus{border-color:var(--line);background-color:#fff}
.form-actions{position:fixed;bottom:0;left:228px;right:0;background:#393a3d;padding:.65rem 1.5rem;z-index:1010}
.form-actions .btn-outline-light{border-color:#8d9096}
@media(max-width:991px){.sidebar{position:fixed;left:-240px;transition:left .2s}.sidebar.open{left:0}.form-actions{left:0}.new-menu{min-width:280px}}
/* reports */
.report-paper{background:#fff;border:1px solid var(--line);border-radius:6px;padding:2rem;max-width:1100px;margin:0 auto}
.report td,.report th{border-color:#eef0f2}
.report tr.section td{font-weight:700;padding-top:.9rem}
.report tr.group td{font-weight:600}
.report tr.subtotal td{font-weight:600;border-top:1px solid #c4c7cc}
.report tr.total td{font-weight:700;border-top:1px solid #9a9da3}
.report tr.grand td{font-weight:700;border-top:2px solid #393a3d;border-bottom:3px double #393a3d}
.report tr.muted td{color:#6b6c72;font-style:italic}
.report-card a{color:var(--ink)}.report-card a:hover{color:#0077c5}
.filters{background:#fff;border:1px solid var(--line);border-radius:6px;padding:.75rem 1rem;margin-bottom:1rem}
@media print{.sidebar,.topbar,.filters,.no-print,footer,.form-actions,.alert{display:none!important}.page{padding:0}.report-paper{border:0;padding:0;max-width:none}body{background:#fff}}
