:root{--bg: #0b0f17;--panel: #141b28;--panel2: #1b2434;--border: #263043;--text: #eef2f8;--muted: #8b97ab;--accent: #4f8cff;--accent2: #22c58b;--warn: #f5a623;--danger: #ef5675;box-sizing:border-box;padding-top:env(safe-area-inset-top,0px);padding-bottom:env(safe-area-inset-bottom,0px)}@media (prefers-color-scheme: light){:root:not([data-theme=dark]){--bg: #f4f6fb;--panel: #fff;--panel2: #f0f3f9;--border: #e2e7f0;--text: #141a24;--muted: #6b7280;--accent: #3b6fe0;--accent2: #0ea36f}}*{box-sizing:border-box}html{scroll-padding-top:env(safe-area-inset-top,0px)}body{margin:0;background:var(--bg);color:var(--text);font-family:Inter,system-ui,sans-serif;min-height:100%;line-height:1.5;-webkit-font-smoothing:antialiased}.wrap{max-width:1180px;margin:0 auto;padding:20px 16px 60px}header{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:10px;margin-bottom:16px}h1{font-size:1.28rem;font-weight:700;letter-spacing:-.01em;margin:0}.sub{color:var(--muted);font-size:.82rem;margin-top:2px}.drop{border:2px dashed var(--border);border-radius:14px;padding:26px;text-align:center;cursor:pointer;background:var(--panel);transition:.15s}.drop.drag{border-color:var(--accent);background:var(--panel2)}.drop b{color:var(--accent)}input[type=file]{display:none}.filebar{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:10px;color:var(--muted);font-size:.8rem;margin:8px 2px}.filebar button,.filebarActions button{background:none;border:1px solid var(--border);color:var(--text);border-radius:8px;padding:5px 10px;cursor:pointer;font-size:.78rem;white-space:nowrap}.filebarActions{display:flex;gap:8px}#addPeriodBtn:hover{border-color:var(--accent);color:var(--accent)}.periodChips{display:flex;flex-wrap:wrap;gap:8px;flex:1}.periodChip{display:inline-flex;align-items:center;gap:6px;background:var(--panel);border:1px solid var(--border);border-radius:20px;padding:5px 6px 5px 12px;font-size:.78rem;cursor:pointer}.periodChip.active{border-color:var(--accent);color:var(--accent);background:var(--panel2)}.periodChip .chipRemove{background:none;border:none;color:var(--muted);cursor:pointer;font-size:.8rem;padding:2px 6px;line-height:1}.periodChip .chipRemove:hover{color:var(--danger)}.compareSelectors{display:flex;flex-wrap:wrap;gap:14px}.compareSelectors label{display:flex;align-items:center;gap:6px;color:var(--muted);font-size:.85rem}.compareSelectors select{padding:6px 10px;border-radius:8px;border:1px solid var(--border);background:var(--panel2);color:var(--text);font-family:inherit;font-size:.85rem;max-width:260px}.tabs{display:flex;gap:6px;margin-bottom:14px;border-bottom:1px solid var(--border);overflow-x:auto}.tab-btn{background:none;border:none;color:var(--muted);font-family:inherit;font-size:.85rem;font-weight:600;padding:10px 14px;cursor:pointer;border-bottom:2px solid transparent;white-space:nowrap}.tab-btn.active{color:var(--accent);border-bottom-color:var(--accent)}.cardHead{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap}.cardHead h3{margin:0}.exportBtn{background:var(--panel2);border:1px solid var(--border);color:var(--text);border-radius:8px;padding:6px 12px;cursor:pointer;font-size:.78rem;font-weight:600;white-space:nowrap}.exportBtn:hover{border-color:var(--accent);color:var(--accent)}.soaBtn{background:none;border:1px solid var(--border);color:var(--text);border-radius:6px;padding:3px 8px;cursor:pointer;font-size:.72rem;white-space:nowrap}.soaBtn:hover{border-color:var(--accent);color:var(--accent)}.filterBar{display:flex;align-items:center;flex-wrap:wrap;gap:14px;background:var(--panel);border:1px solid var(--border);border-radius:12px;padding:12px 16px;margin-bottom:14px;font-size:.85rem}.filterBar label{display:flex;align-items:center;gap:6px;color:var(--muted)}.filterBar input[type=date]{padding:5px 8px;border-radius:8px;border:1px solid var(--border);background:var(--panel2);color:var(--text);font-family:inherit}.filterBar select{padding:5px 8px;border-radius:8px;border:1px solid var(--border);background:var(--panel2);color:var(--text);font-family:inherit;font-size:.85rem;max-width:200px}.filterBar button{background:none;border:1px solid var(--border);color:var(--text);border-radius:8px;padding:5px 10px;cursor:pointer;font-size:.8rem}.kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:12px;margin:18px 0}.kpi{background:var(--panel);border:1px solid var(--border);border-radius:14px;padding:16px 18px}.kpi .l{color:var(--muted);font-size:.76rem;line-height:1.35}.kpi .v{font-size:clamp(.95rem,4.2vw,1.2rem);font-weight:700;letter-spacing:-.01em;margin-top:6px;font-variant-numeric:tabular-nums;overflow-wrap:anywhere;line-height:1.25}.kpi.clickable{cursor:pointer;transition:.12s}.kpi.clickable:hover{border-color:var(--accent);background:var(--panel2)}.kpi.clickable .l:after{content:" ›";opacity:.5}.modalBackdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#0009;display:flex;align-items:center;justify-content:center;padding:20px;z-index:100}.modalBackdrop[hidden]{display:none}.actionsCell{display:flex;gap:6px;flex-wrap:wrap}.actionsCell button{background:var(--panel2);border:1px solid var(--border);color:var(--text);border-radius:8px;padding:4px 8px;cursor:pointer;font-size:.74rem;white-space:nowrap}.actionsCell button:hover{border-color:var(--accent);color:var(--accent)}.modalBox{background:var(--panel);border:1px solid var(--border);border-radius:14px;padding:18px;width:100%;max-width:560px;max-height:82vh;display:flex;flex-direction:column;gap:10px}.modalHead{display:flex;align-items:center;justify-content:space-between}.modalHead h3{margin:0;font-size:.95rem}.modalDimTabs{display:flex;gap:6px}.modalDimBtn{background:var(--panel2);border:1px solid var(--border);color:var(--muted);border-radius:8px;padding:5px 12px;cursor:pointer;font-size:.78rem;font-weight:600;font-family:inherit}.modalDimBtn.active{color:var(--accent);border-color:var(--accent);background:var(--panel)}.modalClose{background:none;border:1px solid var(--border);color:var(--text);border-radius:8px;width:28px;height:28px;cursor:pointer;font-size:.8rem}.modalClose:hover{border-color:var(--accent);color:var(--accent)}#kpiModalSearch{padding:7px 10px;border-radius:8px;border:1px solid var(--border);background:var(--panel2);color:var(--text);font-family:inherit;font-size:.85rem}.modalTableWrap{overflow:auto}.modalTableWrap table{min-width:0}.modalFoot{text-align:right}.linkBtn{background:none;border:none;padding:0;color:var(--accent);cursor:pointer;font-family:inherit;font-size:inherit;text-align:left;text-decoration:underline;text-underline-offset:2px}.linkBtn:hover{opacity:.8}.chip{display:inline-flex;align-items:center;gap:6px;background:var(--panel2);border:1px solid var(--border);border-radius:20px;padding:2px 4px 2px 10px;font-size:.72rem;font-weight:600;vertical-align:middle}.chip button{background:none;border:none;color:var(--danger);cursor:pointer;font-size:.8rem;padding:2px 6px}.statusTip{position:absolute;top:0;left:0;z-index:60;width:220px;background:var(--panel);border:1px solid var(--border);border-radius:12px;padding:10px 12px;font-size:.76rem;box-shadow:0 8px 24px #00000047;opacity:0;pointer-events:none;transition:opacity .1s}.statusTipHead{font-weight:600;display:flex;justify-content:space-between;align-items:baseline;gap:6px;margin-bottom:2px}.statusTipHead span{font-weight:500;color:var(--muted);font-size:.68rem}.statusTipSum{color:var(--muted);margin-bottom:6px}.statusTipList{list-style:none;margin:0 0 4px;padding:0;display:flex;flex-direction:column;gap:3px}.statusTipList li{display:flex;justify-content:space-between;gap:8px}.statusTipList li span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.statusTipEmpty{color:var(--muted)}.statusTipMore{color:var(--muted);font-size:.68rem;margin-bottom:4px}.statusTipBtn{width:100%;background:var(--accent);border:none;color:#fff;border-radius:8px;padding:6px 8px;cursor:pointer;font-size:.74rem;font-weight:600;margin-top:2px}.statusTipBtn:hover{opacity:.9}.kpi .v.g{color:var(--accent2)}.kpi .v.w{color:var(--warn)}.kpi .v.d{color:var(--danger)}.grid2{display:grid;grid-template-columns:1.3fr 1fr;gap:14px;margin-bottom:14px}@media (max-width: 760px){.grid2{grid-template-columns:1fr}}.infoIcon{display:inline-flex;align-items:center;justify-content:center;width:15px;height:15px;border-radius:50%;flex:none;background:var(--panel2);border:1px solid var(--border);color:var(--muted);font-size:.64rem;font-style:normal;font-weight:700;cursor:help;margin-left:5px;position:relative;vertical-align:middle}.infoIcon:hover,.infoIcon:focus{color:var(--accent);border-color:var(--accent);outline:none}.infoIcon[data-tip]:hover:after,.infoIcon[data-tip]:focus:after{content:attr(data-tip);position:absolute;bottom:130%;left:50%;transform:translate(-50%);width:max-content;max-width:240px;background:var(--panel);color:var(--text);border:1px solid var(--border);border-radius:8px;padding:8px 10px;font-size:.72rem;font-weight:400;line-height:1.45;white-space:normal;box-shadow:0 8px 24px #00000047;z-index:70;text-align:left}.kpi .l{display:flex;align-items:center}.guideGroup{border-bottom:1px solid var(--border)}.guideGroup:last-child{border-bottom:none}.guideGroup summary{cursor:pointer;font-weight:600;font-size:.92rem;padding:12px 4px;list-style:none;display:flex;align-items:center;gap:8px}.guideGroup summary::-webkit-details-marker{display:none}.guideGroup summary:before{content:"▸";color:var(--accent);transition:transform .15s;display:inline-block}.guideGroup[open] summary:before{transform:rotate(90deg)}.guideBody{padding:2px 4px 16px 22px;font-size:.85rem;line-height:1.65;color:var(--text)}.guideBody p{margin:6px 0}.guideFormula{background:var(--panel2);border:1px solid var(--border);border-radius:8px;padding:8px 10px;margin:8px 0;font-family:SFMono-Regular,Consolas,monospace;font-size:.78rem;overflow-x:auto}.guideBadge{display:inline-block;font-size:.7rem;font-weight:600;padding:1px 8px;border-radius:10px;margin-right:5px;white-space:nowrap}.guideBadge.good{background:#0ea36f22;color:var(--accent2)}.guideBadge.warn{background:#f5a62322;color:var(--warn)}.guideBadge.bad{background:#ef567522;color:var(--danger)}.guideNote{color:var(--muted);font-size:.8rem;margin-top:6px}.card{background:var(--panel);border:1px solid var(--border);border-radius:14px;padding:16px}.card h3{margin:0 0 10px;font-size:.9rem}.tableWrap{overflow-x:auto}canvas{max-width:100%}.donutBox{position:relative;height:240px}.chartBox{position:relative;height:260px}.chartBox.chartBoxSm{height:200px}table{width:100%;border-collapse:collapse;font-size:.82rem;min-width:480px}th,td{padding:7px 8px;text-align:left;border-bottom:1px solid var(--border);white-space:nowrap}th{color:var(--muted);font-weight:600;font-size:.76rem}td{font-variant-numeric:tabular-nums}.empty{color:var(--muted);text-align:center;padding:40px 10px}.badge{display:inline-block;padding:2px 8px;border-radius:20px;font-size:.72rem;font-weight:600}.b-paid{background:#0ea36f22;color:var(--accent2)}.b-unpaid{background:#f5a62322;color:var(--warn)}.b-overdue{background:#ef567522;color:var(--danger)}.b-other{background:#4f8cff22;color:var(--accent)}.b-return{background:#a855f722;color:#a855f7}#custSearch{width:100%;padding:8px 10px;margin-bottom:10px;border-radius:8px;border:1px solid var(--border);background:var(--panel2);color:var(--text);font-family:inherit}.print-only{display:none}@media print{body *{visibility:hidden}#printReport,#printReport *{visibility:visible}#printReport{display:block!important;position:absolute;left:0;top:0;width:100%;background:#fff;color:#111;font-family:Inter,system-ui,sans-serif}.wrap{padding:0;max-width:none}#printReport h1{font-size:1.4rem;margin:0 0 4px}#printReport h2{font-size:1.05rem;margin:22px 0 8px;border-bottom:2px solid #111;padding-bottom:4px}#printReport h3{font-size:.88rem;margin:14px 0 6px;color:#333}.pr-header{border-bottom:3px solid #111;padding-bottom:10px;margin-bottom:6px}.pr-meta{font-size:.8rem;color:#333;display:flex;flex-direction:column;gap:2px;margin-top:6px}.pr-kpis{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:10px 0 4px}.pr-kpi{border:1px solid #999;border-radius:6px;padding:8px 10px;break-inside:avoid}.pr-kpi .pr-l{font-size:.7rem;color:#555}.pr-kpi .pr-v{font-size:1.05rem;font-weight:700;margin-top:2px;font-variant-numeric:tabular-nums}.pr-kpi .pr-v.pr-g{color:#0a7a4a}.pr-kpi .pr-v.pr-w{color:#a05a00}.pr-table{width:100%;table-layout:fixed;border-collapse:collapse;font-size:.74rem;margin-bottom:4px}.pr-table th,.pr-table td{border:1px solid #bbb;padding:4px 6px;text-align:left;word-wrap:break-word;overflow-wrap:break-word;word-break:break-word}.pr-table th{background:#eee;font-weight:600}.pr-table tr{break-inside:avoid}.pr-table td.pr-awb{word-break:break-all}.pr-tag{display:inline-block;font-size:.62rem;font-weight:700;padding:1px 6px;border-radius:8px;background:#f3d9ff;color:#7a1fa2}.pr-item-row td{border-top:none;padding:0 6px 4px 20px;background:#fafafa}.pr-subtable{width:100%;table-layout:fixed;border-collapse:collapse;font-size:.68rem}.pr-subtable th,.pr-subtable td{border:1px solid #ddd;padding:2px 6px;text-align:left;word-wrap:break-word;overflow-wrap:break-word;word-break:break-word}.pr-subtable th{background:#f2f2f2;font-weight:600;color:#555}.pr-subtable col.pr-col-code{width:10%}.pr-subtable col.pr-col-item,.pr-subtable col.pr-col-desc{width:15%}.pr-subtable col.pr-col-account{width:45%}.pr-subtable col.pr-col-net{width:15%}.pr-chart-img{max-width:100%;margin:6px 0 4px}.pr-pagebreak{break-before:page}.pr-footer{margin-top:22px;padding-top:8px;border-top:1px solid #999;font-size:.7rem;color:#555;text-align:center}@page{size:landscape;margin:12mm}}.alertOk{color:var(--accent2);font-weight:600;padding:4px 0}.alertGroup{border-radius:12px;padding:12px 14px;margin-bottom:10px}.alertGroup:last-child{margin-bottom:0}.alertGroup-warn{background:#f5a62318;border:1px solid #f5a62340}.alertGroup-bad{background:#ef567518;border:1px solid #ef567540}.alertGroupHead{font-weight:600;font-size:.88rem;margin-bottom:6px;display:flex;align-items:center}.alertList{margin:0;padding-left:18px;font-size:.84rem}.alertList li{margin-bottom:3px}.siteFooter{text-align:center;color:var(--muted);font-size:.78rem;padding:24px 16px 16px}.siteFooter a{color:var(--muted);text-decoration:underline;text-underline-offset:2px}.siteFooter a:hover{color:var(--accent)}
