:root{color-scheme:light}*{box-sizing:border-box}body{margin:0;padding:16px;font-family:var(--font-inter),Inter,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;background:#f5f3ee;color:#0a0a0a;font-size:14px;-webkit-font-smoothing:antialiased}h1{font-size:18px;margin:0 0 2px}.sub{color:#555b67;font-size:13px;margin-bottom:12px}.ui-crumb-inline{display:inline-flex;align-items:center;gap:6px;margin-right:10px;padding:2px 9px 2px 7px;border-radius:999px;background:var(--sec-wash);color:var(--sec);font-size:11.5px;font-weight:650;letter-spacing:.02em;vertical-align:1px}.ui-crumb-inline i{width:7px;height:7px;border-radius:2px;background:var(--sec)}.ui-refreshed{color:var(--ink-3)}.kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));grid-gap:16px;gap:16px;margin-bottom:20px}@media (max-width:1000px){.kpis{grid-template-columns:repeat(2,minmax(0,1fr))}}.kpi{--acc:var(--brand);--acc-wash:var(--brand-wash);position:relative;overflow:hidden;cursor:pointer;background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);padding:18px 20px 20px;box-shadow:var(--shadow-1);transition:border-color .15s,box-shadow .15s,transform .15s}.kpi:after{content:"";position:absolute;left:0;right:0;bottom:0;height:3px;background:var(--acc)}.kpi:hover{box-shadow:var(--shadow-2);transform:translateY(-1px)}.kpi.active{border-color:var(--acc);box-shadow:0 0 0 3px var(--acc-wash),var(--shadow-1)}.kpi.acc-blue{--acc:var(--brand);--acc-wash:var(--brand-wash)}.kpi.acc-orange{--acc:var(--warn);--acc-wash:var(--warn-wash)}.kpi.acc-green{--acc:var(--finance);--acc-wash:var(--finance-wash)}.kpi.acc-red{--acc:var(--bad);--acc-wash:var(--bad-wash)}.kpi.acc-amber{--acc:var(--books);--acc-wash:var(--books-wash)}.kpi .label{display:flex;align-items:center;gap:8px;font-size:12.5px;font-weight:600;color:var(--ink-2);margin-bottom:10px}.kpi .label:before{content:"";width:8px;height:8px;border-radius:3px;background:var(--acc);flex:none}.kpi .value{font-size:28px;font-weight:700;letter-spacing:-.03em;line-height:1.1;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;color:var(--ink)}.kpi.alert .value{color:var(--bad)}.kpi .hint{font-size:12.5px;color:var(--ink-3);margin-top:6px}.chip{display:inline-flex;align-items:center;gap:6px;margin-left:10px;padding:3px 10px;border-radius:999px;background:var(--brand-wash);color:var(--brand-ink);font-size:12px;font-weight:600;vertical-align:middle}.chip button{border:none;background:none;color:inherit;cursor:pointer;font-size:14px;padding:0;line-height:1;font-weight:700}.row{display:grid;grid-template-columns:1fr 1fr;grid-gap:16px;gap:16px;margin-bottom:20px}@media (max-width:860px){.row{grid-template-columns:1fr}}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);padding:20px;box-shadow:var(--shadow-1)}.card h2{display:flex;align-items:center;gap:8px;font-size:14.5px;font-weight:650;letter-spacing:-.01em;margin:0 0 14px;color:var(--ink)}.chartwrap{position:relative;height:230px}.chartwrap.tall{height:300px}.status-msg{padding:28px;text-align:center;color:var(--ink-3)}.errbox{display:flex;flex-wrap:wrap;gap:6px;align-items:center;padding:12px 16px;background:var(--bad-wash);border:1px solid var(--bad-line);border-radius:var(--r);color:var(--bad);margin-bottom:16px;font-size:13.5px}.errbox a{color:var(--bad);font-weight:650}.gridjs-container{color:var(--ink);padding:0}.gridjs-wrapper{border:1px solid var(--line)!important;border-radius:var(--r)!important;box-shadow:none!important}.gridjs-table{font-size:13px}th.gridjs-th{background:var(--surface-2)!important;color:var(--ink-3)!important;font-size:11.5px!important;font-weight:600!important;text-transform:uppercase;letter-spacing:.05em;border:0!important;border-bottom:1px solid var(--line)!important;padding:10px 14px!important}td.gridjs-td{border:0!important;border-bottom:1px solid var(--line-2)!important;padding:11px 14px!important}tr.gridjs-tr:hover td.gridjs-td{background:var(--surface-2)}.gridjs-search-input{border:1px solid var(--line)!important;border-radius:10px!important;font-size:13px!important;padding:8px 12px!important}.gridjs-footer{border:0!important;box-shadow:none!important;padding:12px 0 0!important;background:none!important}.gridjs-pagination .gridjs-pages button{border-color:var(--line)!important;font-size:12.5px!important}.gridjs-pagination .gridjs-pages button.gridjs-currentPage{background:var(--ink)!important;color:#fff!important}td.overdue-cell{color:var(--bad);font-weight:600}.badge{display:inline-flex;align-items:center;height:22px;padding:0 9px;border-radius:999px;font-size:11.5px;font-weight:600;white-space:nowrap}.badge.late{background:var(--warn-wash);color:var(--warn)}.badge.ok{background:var(--finance-wash);color:var(--finance)}.badge.credit{background:#f2ecfb;color:#8558d6}.badge.wait{background:var(--books-wash);color:var(--books)}.badge.fnx{background:var(--brand-wash);color:var(--brand-ink)}.badge.draftb{background:var(--books-wash);color:var(--books)}.badge.sentb{background:var(--finance-wash);color:var(--finance)}.badge.gts{background:var(--tech-wash);color:var(--tech)}.neg{color:#8558d6}.actbtn,.pdfbtn{display:inline-flex;align-items:center;gap:6px;height:28px;padding:0 11px;border:1px solid var(--line);background:var(--surface);border-radius:8px;font-size:12px;font-weight:600;cursor:pointer;color:var(--ink-2);font-family:inherit;transition:border-color .12s,color .12s,background .12s}.actbtn:hover,.pdfbtn:hover{border-color:#d3d6dd;color:var(--ink);background:var(--surface-2)}.pdfbtn:disabled{opacity:.5;cursor:wait}.actbtn.send:hover{border-color:var(--finance);color:var(--finance)}.actbtn.ack{border-color:var(--finance-line);background:var(--finance-wash);color:var(--finance)}.actbtn.ack:hover{border-color:var(--finance)}.note-form{display:flex;gap:10px;margin-bottom:14px;align-items:flex-end}.note-form textarea,.noteInput{flex:1 1;padding:10px 12px;border:1px solid var(--line);border-radius:var(--r);font-size:13.5px;font-family:inherit;background:var(--surface);color:var(--ink);resize:vertical;min-height:64px;transition:border-color .12s,box-shadow .12s}.note-form textarea:focus,.noteInput:focus{outline:none;border-color:var(--brand);box-shadow:0 0 0 3px var(--brand-wash)}.note-form button,.noteAdd{height:38px;padding:0 16px;border:none;border-radius:10px;background:var(--ink);color:#fff;font-size:13px;font-weight:600;cursor:pointer;white-space:nowrap;font-family:inherit}.note-form button:hover,.noteAdd:hover{background:#2a2d35}.note-form button:disabled,.noteAdd:disabled{opacity:.6;cursor:wait}.parse-preview{border:1px solid #cfe0fd;background:#f6f9ff;border-radius:var(--r);padding:14px 16px;margin-bottom:14px}.parse-preview .pp-head{font-size:11.5px;font-weight:650;color:var(--brand-ink);text-transform:uppercase;letter-spacing:.05em;margin-bottom:8px}.parse-preview .pp-row{font-size:13px;padding:7px 0;border-bottom:1px solid #e3ecfc}.parse-preview .pp-row:last-of-type{border-bottom:none}.parse-preview .pp-add{color:var(--finance)}.parse-preview .pp-bad{color:var(--warn)}.parse-preview .pp-actions{display:flex;gap:8px;margin-top:12px}.inv-req{position:relative;border:1px solid var(--line);border-radius:var(--r);padding:14px 16px 12px 18px;margin-bottom:10px;background:var(--surface);transition:border-color .12s,box-shadow .12s}.inv-req:before{content:"";position:absolute;left:0;top:10px;bottom:10px;width:3px;border-radius:0 3px 3px 0;background:var(--line)}.inv-req:hover{box-shadow:var(--shadow-1)}.inv-req.approved:before{background:var(--tech)}.inv-req.sent:before{background:var(--finance)}.inv-req.sent{background:#fbfefc}.inv-req.editing{border-color:var(--brand);box-shadow:0 0 0 3px var(--brand-wash)}.inv-req .head{display:flex;align-items:center;gap:8px;margin-bottom:6px;flex-wrap:wrap}.inv-req .entity{font-weight:650;font-size:14px;flex:1 1;min-width:160px}.inv-req .entity .recip{font-weight:400;color:var(--ink-3)}.inv-req .total{font-weight:700;font-size:14px;color:var(--ink);white-space:nowrap;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.inv-req ul{margin:4px 0 8px;padding-left:18px;color:var(--ink-2)}.inv-req li{font-size:13px;margin:3px 0}.inv-req .foot{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.inv-req .ndate{color:var(--ink-3);font-size:12px;flex:1 1}.erow{display:flex;gap:10px;align-items:flex-start;margin-bottom:8px}.erow label{width:76px;font-size:11.5px;font-weight:600;color:var(--ink-3);padding-top:8px;text-transform:uppercase;letter-spacing:.04em}.erow input,.erow select,.erow textarea{flex:1 1;padding:7px 10px;border:1px solid var(--line);border-radius:var(--r-sm);font-size:13px;font-family:inherit;background:var(--surface);color:var(--ink)}.erow input:focus,.erow select:focus,.erow textarea:focus{outline:none;border-color:var(--brand);box-shadow:0 0 0 3px var(--brand-wash)}.termsline{font-size:12.5px;color:var(--ink-3);margin:-2px 0 8px}.termsline b{color:var(--ink-2);font-weight:600}.draft{border:1px solid var(--books-line);background:#fffdf8;border-radius:var(--r);padding:14px 16px;margin-bottom:10px}.draft .head{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:8px}.draft .entity{font-weight:650;font-size:14px;flex:1 1}.dmeta,.draft .meta{color:var(--ink-3);font-size:12.5px;white-space:nowrap}.draft .total,.dtotal{font-weight:700;font-size:14px;color:var(--ink);white-space:nowrap;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.drows{width:100%;border-collapse:collapse;margin:6px 0 10px}.drows th{text-align:left;font-size:11px;font-weight:600;color:var(--ink-3);text-transform:uppercase;letter-spacing:.05em;padding:6px 8px;border-bottom:1px solid var(--books-line)}.drows td{font-size:13px;padding:7px 8px;border-bottom:1px solid #f7ecd6}.drows td.num,.drows th.num{text-align:right;white-space:nowrap;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.drows tr:last-child td{border-bottom:none}.dsummary{cursor:pointer;font-size:13.5px;font-weight:600;color:var(--ink);list-style-position:inside}.dsummary:hover{color:var(--brand-ink)}.dmatch{border:1px solid var(--books-line);background:#fffdf8;border-radius:var(--r-sm);padding:8px 12px;margin:6px 0 10px}.dmatch summary{cursor:pointer;font-size:12.5px;font-weight:600;color:var(--books);list-style-position:inside}.dmatch[open] summary{margin-bottom:8px}.dfoot{display:flex;align-items:center;gap:8px;margin:0}.dfoot .dmeta{flex:1 1}.ndel{border:none;background:none;color:var(--ink-3);cursor:pointer;font-size:16px;padding:0 4px;border-radius:6px}.ndel:hover{color:var(--bad);background:var(--bad-wash)}.notes-empty{color:var(--ink-3);font-size:13px;padding:10px 4px}.note-count{color:var(--ink-3);font-weight:500}.toast{position:fixed;bottom:20px;left:50%;transform:translateX(-50%);background:var(--ink);color:#fff;padding:10px 18px;border-radius:12px;font-size:13px;z-index:99;max-width:90%;box-shadow:var(--shadow-2)}.fbcats{display:flex;align-items:center;gap:6px;margin-bottom:10px;flex-wrap:wrap}.fbsel{padding:6px 8px;border:1px solid var(--line);border-radius:8px;font-size:12px;font-family:inherit;background:var(--surface);color:var(--ink)}.fbhint{font-size:12px;color:var(--ink-3)}.modalwrap{position:fixed;inset:0;background:rgba(17,19,24,.45);display:flex;align-items:flex-start;justify-content:center;padding:40px 16px;z-index:200;overflow:auto}.modal{background:var(--surface);border-radius:var(--r-lg);padding:22px 24px;width:560px;max-width:94vw;box-shadow:var(--shadow-2)}.modal h2{margin:0 0 14px}.lblwrap{display:flex;flex-wrap:wrap;gap:6px;flex:1 1}.filterbar{display:flex;gap:8px;margin-bottom:12px;flex-wrap:wrap}.fsearch{flex:1 1;min-width:200px;height:38px;padding:0 12px;border:1px solid var(--line);border-radius:10px;font-size:13.5px;font-family:inherit;background:var(--surface);color:var(--ink)}.fsearch:focus{outline:none;border-color:var(--brand);box-shadow:0 0 0 3px var(--brand-wash)}.catchips{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:12px}.catchip{height:30px;border:1px solid var(--line);background:var(--surface);border-radius:999px;padding:0 12px;font-size:12.5px;font-weight:600;color:var(--ink-2);cursor:pointer;font-family:inherit;transition:border-color .12s,color .12s,background .12s}.catchip:hover{border-color:#d3d6dd;color:var(--ink)}.catchip.on{background:var(--ink);color:#fff;border-color:var(--ink)}.catchip .cnt{color:var(--ink-3);font-weight:500;margin-left:3px}.catchip.on .cnt{color:rgba(255,255,255,.6)}.selbar{display:flex;align-items:center;gap:8px;flex-wrap:wrap;padding:9px 14px;margin-bottom:12px;background:var(--brand-wash);border-radius:var(--r);font-size:13px;color:var(--brand-ink)}.selbar b{font-weight:700}.artable{width:100%;border-collapse:separate;border-spacing:0;font-size:13px;border:1px solid var(--line);border-radius:var(--r);overflow:hidden}.artable th{text-align:left;font-size:11.5px;color:var(--ink-3);text-transform:uppercase;letter-spacing:.05em;padding:10px 12px;border-bottom:1px solid var(--line);font-weight:600;background:var(--surface-2)}.artable td{padding:11px 12px;border-bottom:1px solid var(--line-2);vertical-align:middle}.artable tbody tr:last-child td{border-bottom:0}.artable tbody tr:hover td{background:var(--surface-2)}.artable td.catcell{color:var(--ink-2)}.artable input[type=checkbox]{width:15px;height:15px;cursor:pointer;accent-color:var(--ink)}.shownfoot{display:flex;align-items:baseline;gap:8px;margin-top:12px;padding-top:12px;border-top:1px solid var(--line);font-size:13px;color:var(--ink-2)}.shownfoot b{font-size:20px;color:var(--ink);font-weight:700;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.actlog,.cmts{margin:6px 0 8px}.actlog summary,.cmts summary{cursor:pointer;font-size:12.5px;font-weight:600;color:var(--ink-2);list-style-position:inside}.actlog summary:hover,.cmts summary:hover{color:var(--brand-ink)}.actlog{margin-top:14px;border-top:1px solid var(--line);padding-top:10px}.cmt{display:flex;gap:8px;padding:5px 0 5px 14px;font-size:13px;align-items:baseline}.cmt-meta{color:var(--ink-3);font-size:11.5px;white-space:nowrap}.cmt-meta b{color:var(--ink-2)}.cmt-body{color:var(--ink)}.cmt-form{display:flex;gap:6px;padding:6px 0 2px 14px}.cmt-form input{flex:1 1;height:32px;padding:0 10px;border:1px solid var(--line);border-radius:8px;font-size:13px;font-family:inherit}.cmt-form input:focus{outline:none;border-color:var(--brand);box-shadow:0 0 0 3px var(--brand-wash)}.login-wrap{min-height:100vh;margin:-16px;display:grid;grid-template-columns:minmax(0,1.15fr) minmax(380px,1fr);background:#f5f3ee;color:#0a0a0a}.login-photo{position:relative;overflow:hidden;background:#1a1a1a}.login-photo img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:50% 60%}.login-photo:after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(10,10,10,0) 55%,rgba(10,10,10,.45))}.login-tag{position:absolute;left:32px;bottom:32px;z-index:1;display:inline-flex;align-items:center;gap:8px;padding:6px 12px;border-radius:6px;background:rgba(10,10,10,.55);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);color:rgba(255,255,255,.9);font-family:ui-monospace,JetBrains Mono,monospace;font-size:11.5px}.login-tag i{width:7px;height:7px;border-radius:50%;background:#22c55e;box-shadow:0 0 0 3px rgba(34,197,94,.25)}.login-card{align-self:center;justify-self:center;width:100%;max-width:440px;padding:48px 40px;background:none;border:0;box-shadow:none}.login-logo{height:46px;width:auto;display:block;margin-bottom:56px}.login-card h1{font-size:clamp(36px,3.6vw,48px);font-weight:400;letter-spacing:-.045em;line-height:1.02;margin:0 0 14px}.login-card .sub{font-size:15.5px;line-height:1.5;color:#4a4a4a;margin:0;max-width:34ch}.login-card form{display:flex;flex-direction:column;gap:10px;margin-top:36px;padding-top:24px;border-top:1px solid #0a0a0a}.login-card label{font-size:14px;font-weight:400;color:#4a4a4a}.login-card input{height:50px;padding:0 20px;border:1px solid rgba(10,10,10,.16);border-radius:100px;font-size:16px;font-family:inherit;background:#fff;color:#0a0a0a}.login-card input:focus{outline:none;border-color:#0a0a0a;box-shadow:0 0 0 3px rgba(10,10,10,.08)}.login-card button{height:50px;padding:0 22px;border:none;border-radius:100px;background:#0a0a0a;color:#f5f3ee;font-size:15px;font-weight:500;cursor:pointer;font-family:inherit;margin-top:6px}.login-card button:hover{background:#2a2a2a}.login-card button:disabled{opacity:.6;cursor:wait}.login-card a:focus-visible,.login-card button:focus-visible{outline:2px solid #4a8df6;outline-offset:3px}.login-card a{color:#0a0a0a;font-weight:500;text-underline-offset:3px}.login-err{padding:12px 16px;background:#fbeceb;border:1px solid rgba(179,38,30,.25);border-radius:14px;color:#b3261e;font-size:14px;margin-top:16px}.login-ok{padding:16px 18px;background:#fff;border:1px solid rgba(10,10,10,.12);border-radius:16px;color:#0a0a0a;font-size:15px;line-height:1.5;margin-top:36px}.login-foot{margin-top:48px;padding-top:18px;border-top:1px solid rgba(10,10,10,.12);font-size:13px;color:#8a877f;display:flex;justify-content:space-between;gap:12px}@media (max-width:860px){.login-wrap{grid-template-columns:1fr;grid-template-rows:240px auto}.login-tag{left:16px;bottom:16px}.login-card{padding:32px 20px 40px}.login-logo{height:38px;margin-bottom:32px}}